import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * This resource manages the Gateway configuration.
 *
 * It can be used to define specific configuration at the device level or to override Org Gateway template settings.
 *
 * > **WARNING** For **adopted** devices, make sure to set `mistConfigured`=`true` to allow Mist to manage the gateway
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as junipermist from "@pulumi/juniper-mist";
 *
 * const gatewayOne = new junipermist.device.Gateway("gateway_one", {
 *     name: "gateway_one",
 *     deviceId: clusterOne.deviceId,
 *     siteId: clusterOne.siteId,
 *     oobIpConfig: {
 *         type: "dhcp",
 *     },
 *     dnsServers: ["8.8.8.8"],
 *     additionalConfigCmds: [
 *         "annotate system \" -- custom-main -- Template level --\"",
 *         "delete apply-groups custom-main",
 *         "delete groups custom-main",
 *         "set groups custom-main",
 *         "set groups custom-main system services ssh root-login allow",
 *         "set apply-groups custom-main",
 *     ],
 * });
 * ```
 *
 * ## Import
 *
 * Using `pulumi import`, import `junipermist.device.Gateway` with:
 * Gateway Configuration can be imported by specifying the siteId and the deviceId
 *
 * ```sh
 * $ pulumi import junipermist:device/gateway:Gateway gateway_one 17b46405-3a6d-4715-8bb4-6bb6d06f316a.d3c42998-9012-4859-9743-6b9bee475309
 * ```
 */
export declare class Gateway extends pulumi.CustomResource {
    /**
     * Get an existing Gateway resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param state Any extra arguments used during the lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, state?: GatewayState, opts?: pulumi.CustomResourceOptions): Gateway;
    /**
     * Returns true if the given object is an instance of Gateway.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is Gateway;
    /**
     * Additional CLI configuration commands to apply to this gateway
     */
    readonly additionalConfigCmds: pulumi.Output<string[] | undefined>;
    /**
     * BGP routing configuration for this gateway. Property key is the BGP session name
     */
    readonly bgpConfig: pulumi.Output<{
        [key: string]: outputs.device.GatewayBgpConfig;
    } | undefined>;
    readonly deviceId: pulumi.Output<string>;
    /**
     * DHCP server configuration served by this gateway
     */
    readonly dhcpdConfig: pulumi.Output<outputs.device.GatewayDhcpdConfig | undefined>;
    /**
     * DNS servers configured for this gateway
     */
    readonly dnsServers: pulumi.Output<string[] | undefined>;
    /**
     * DNS search suffixes configured for this gateway
     */
    readonly dnsSuffixes: pulumi.Output<string[] | undefined>;
    /**
     * Additional IPv4 routes configured on this gateway
     */
    readonly extraRoutes: pulumi.Output<{
        [key: string]: outputs.device.GatewayExtraRoutes;
    } | undefined>;
    /**
     * Additional IPv6 routes configured on this gateway
     */
    readonly extraRoutes6: pulumi.Output<{
        [key: string]: outputs.device.GatewayExtraRoutes6;
    } | undefined>;
    /**
     * Management-plane settings for this gateway
     */
    readonly gatewayMgmt: pulumi.Output<outputs.device.GatewayGatewayMgmt | undefined>;
    /**
     * Intrusion detection and prevention profiles configured for this gateway
     */
    readonly idpProfiles: pulumi.Output<{
        [key: string]: outputs.device.GatewayIdpProfiles;
    } | undefined>;
    /**
     * First custom image URL associated with the gateway
     */
    readonly image1Url: pulumi.Output<string>;
    /**
     * Second custom image URL associated with the gateway
     */
    readonly image2Url: pulumi.Output<string>;
    /**
     * Third custom image URL associated with the gateway
     */
    readonly image3Url: pulumi.Output<string>;
    /**
     * Gateway interface IP configurations by network name
     */
    readonly ipConfigs: pulumi.Output<{
        [key: string]: outputs.device.GatewayIpConfigs;
    } | undefined>;
    /**
     * Gateway MAC address used to identify the device
     */
    readonly mac: pulumi.Output<string>;
    /**
     * Whether the device is managed by Mist. Deprecated in favour of mist_configured.
     *
     * @deprecated This attribute is being deprecated, please use `mistConfigured` instead
     */
    readonly managed: pulumi.Output<boolean>;
    /**
     * Map where the device belongs to
     */
    readonly mapId: pulumi.Output<string | undefined>;
    /**
     * whether the device can be configured by Mist or not. This deprecates `managed` for adopted devices.
     */
    readonly mistConfigured: pulumi.Output<boolean>;
    /**
     * Gateway model reported for the device
     */
    readonly model: pulumi.Output<string>;
    /**
     * MSP that manages this gateway, when applicable
     */
    readonly mspId: pulumi.Output<string | undefined>;
    /**
     * Friendly display name assigned to the gateway
     */
    readonly name: pulumi.Output<string>;
    /**
     * Layer 3 networks configured for use by this gateway
     */
    readonly networks: pulumi.Output<outputs.device.GatewayNetwork[] | undefined>;
    /**
     * Free-form administrative notes for this gateway
     */
    readonly notes: pulumi.Output<string | undefined>;
    /**
     * NTP servers used by this gateway
     */
    readonly ntpServers: pulumi.Output<string[] | undefined>;
    /**
     * Out-of-band management IP configuration for this gateway
     */
    readonly oobIpConfig: pulumi.Output<outputs.device.GatewayOobIpConfig>;
    /**
     * Organization that owns this gateway
     */
    readonly orgId: pulumi.Output<string>;
    /**
     * Property key is the path name
     */
    readonly pathPreferences: pulumi.Output<{
        [key: string]: outputs.device.GatewayPathPreferences;
    } | undefined>;
    /**
     * Property key is the port name or range (e.g. "ge-0/0/0-10")
     */
    readonly portConfig: pulumi.Output<{
        [key: string]: outputs.device.GatewayPortConfig;
    } | undefined>;
    /**
     * Port mirroring configuration for this gateway
     */
    readonly portMirroring: pulumi.Output<outputs.device.GatewayPortMirroring | undefined>;
    /**
     * Auto assigned if not set
     */
    readonly routerId: pulumi.Output<string | undefined>;
    /**
     * Routing policies applied by this gateway
     */
    readonly routingPolicies: pulumi.Output<{
        [key: string]: outputs.device.GatewayRoutingPolicies;
    } | undefined>;
    /**
     * Manufacturer serial number for the gateway
     */
    readonly serial: pulumi.Output<string>;
    /**
     * Traffic service policies enforced by this gateway
     */
    readonly servicePolicies: pulumi.Output<outputs.device.GatewayServicePolicy[] | undefined>;
    /**
     * Site where this gateway is assigned
     */
    readonly siteId: pulumi.Output<string>;
    /**
     * additional CLI commands to append to the generated SSR config. **Note**: no check is done
     */
    readonly ssrAdditionalConfigCmds: pulumi.Output<string[] | undefined>;
    /**
     * Property key is the tunnel name
     */
    readonly tunnelConfigs: pulumi.Output<{
        [key: string]: outputs.device.GatewayTunnelConfigs;
    } | undefined>;
    /**
     * Provider-specific options for tunnels terminated by this gateway
     */
    readonly tunnelProviderOptions: pulumi.Output<outputs.device.GatewayTunnelProviderOptions | undefined>;
    /**
     * Device type discriminator for gateway records
     */
    readonly type: pulumi.Output<string>;
    /**
     * When a service policy denies a app_category, what message to show in user's browser
     */
    readonly urlFilteringDenyMsg: pulumi.Output<string | undefined>;
    /**
     * Variable values that override site variables for this gateway
     */
    readonly vars: pulumi.Output<{
        [key: string]: string;
    } | undefined>;
    /**
     * VRF configuration applied to this gateway
     */
    readonly vrfConfig: pulumi.Output<outputs.device.GatewayVrfConfig | undefined>;
    /**
     * VRF instances configured on this gateway
     */
    readonly vrfInstances: pulumi.Output<{
        [key: string]: outputs.device.GatewayVrfInstances;
    } | undefined>;
    /**
     * Horizontal map position of the gateway, in pixels
     */
    readonly x: pulumi.Output<number | undefined>;
    /**
     * Vertical map position of the gateway, in pixels
     */
    readonly y: pulumi.Output<number | undefined>;
    /**
     * Create a Gateway resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args: GatewayArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering Gateway resources.
 */
export interface GatewayState {
    /**
     * Additional CLI configuration commands to apply to this gateway
     */
    additionalConfigCmds?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * BGP routing configuration for this gateway. Property key is the BGP session name
     */
    bgpConfig?: pulumi.Input<{
        [key: string]: pulumi.Input<inputs.device.GatewayBgpConfig>;
    } | undefined>;
    deviceId?: pulumi.Input<string | undefined>;
    /**
     * DHCP server configuration served by this gateway
     */
    dhcpdConfig?: pulumi.Input<inputs.device.GatewayDhcpdConfig | undefined>;
    /**
     * DNS servers configured for this gateway
     */
    dnsServers?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * DNS search suffixes configured for this gateway
     */
    dnsSuffixes?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Additional IPv4 routes configured on this gateway
     */
    extraRoutes?: pulumi.Input<{
        [key: string]: pulumi.Input<inputs.device.GatewayExtraRoutes>;
    } | undefined>;
    /**
     * Additional IPv6 routes configured on this gateway
     */
    extraRoutes6?: pulumi.Input<{
        [key: string]: pulumi.Input<inputs.device.GatewayExtraRoutes6>;
    } | undefined>;
    /**
     * Management-plane settings for this gateway
     */
    gatewayMgmt?: pulumi.Input<inputs.device.GatewayGatewayMgmt | undefined>;
    /**
     * Intrusion detection and prevention profiles configured for this gateway
     */
    idpProfiles?: pulumi.Input<{
        [key: string]: pulumi.Input<inputs.device.GatewayIdpProfiles>;
    } | undefined>;
    /**
     * First custom image URL associated with the gateway
     */
    image1Url?: pulumi.Input<string | undefined>;
    /**
     * Second custom image URL associated with the gateway
     */
    image2Url?: pulumi.Input<string | undefined>;
    /**
     * Third custom image URL associated with the gateway
     */
    image3Url?: pulumi.Input<string | undefined>;
    /**
     * Gateway interface IP configurations by network name
     */
    ipConfigs?: pulumi.Input<{
        [key: string]: pulumi.Input<inputs.device.GatewayIpConfigs>;
    } | undefined>;
    /**
     * Gateway MAC address used to identify the device
     */
    mac?: pulumi.Input<string | undefined>;
    /**
     * Whether the device is managed by Mist. Deprecated in favour of mist_configured.
     *
     * @deprecated This attribute is being deprecated, please use `mistConfigured` instead
     */
    managed?: pulumi.Input<boolean | undefined>;
    /**
     * Map where the device belongs to
     */
    mapId?: pulumi.Input<string | undefined>;
    /**
     * whether the device can be configured by Mist or not. This deprecates `managed` for adopted devices.
     */
    mistConfigured?: pulumi.Input<boolean | undefined>;
    /**
     * Gateway model reported for the device
     */
    model?: pulumi.Input<string | undefined>;
    /**
     * MSP that manages this gateway, when applicable
     */
    mspId?: pulumi.Input<string | undefined>;
    /**
     * Friendly display name assigned to the gateway
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Layer 3 networks configured for use by this gateway
     */
    networks?: pulumi.Input<pulumi.Input<inputs.device.GatewayNetwork>[] | undefined>;
    /**
     * Free-form administrative notes for this gateway
     */
    notes?: pulumi.Input<string | undefined>;
    /**
     * NTP servers used by this gateway
     */
    ntpServers?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Out-of-band management IP configuration for this gateway
     */
    oobIpConfig?: pulumi.Input<inputs.device.GatewayOobIpConfig | undefined>;
    /**
     * Organization that owns this gateway
     */
    orgId?: pulumi.Input<string | undefined>;
    /**
     * Property key is the path name
     */
    pathPreferences?: pulumi.Input<{
        [key: string]: pulumi.Input<inputs.device.GatewayPathPreferences>;
    } | undefined>;
    /**
     * Property key is the port name or range (e.g. "ge-0/0/0-10")
     */
    portConfig?: pulumi.Input<{
        [key: string]: pulumi.Input<inputs.device.GatewayPortConfig>;
    } | undefined>;
    /**
     * Port mirroring configuration for this gateway
     */
    portMirroring?: pulumi.Input<inputs.device.GatewayPortMirroring | undefined>;
    /**
     * Auto assigned if not set
     */
    routerId?: pulumi.Input<string | undefined>;
    /**
     * Routing policies applied by this gateway
     */
    routingPolicies?: pulumi.Input<{
        [key: string]: pulumi.Input<inputs.device.GatewayRoutingPolicies>;
    } | undefined>;
    /**
     * Manufacturer serial number for the gateway
     */
    serial?: pulumi.Input<string | undefined>;
    /**
     * Traffic service policies enforced by this gateway
     */
    servicePolicies?: pulumi.Input<pulumi.Input<inputs.device.GatewayServicePolicy>[] | undefined>;
    /**
     * Site where this gateway is assigned
     */
    siteId?: pulumi.Input<string | undefined>;
    /**
     * additional CLI commands to append to the generated SSR config. **Note**: no check is done
     */
    ssrAdditionalConfigCmds?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Property key is the tunnel name
     */
    tunnelConfigs?: pulumi.Input<{
        [key: string]: pulumi.Input<inputs.device.GatewayTunnelConfigs>;
    } | undefined>;
    /**
     * Provider-specific options for tunnels terminated by this gateway
     */
    tunnelProviderOptions?: pulumi.Input<inputs.device.GatewayTunnelProviderOptions | undefined>;
    /**
     * Device type discriminator for gateway records
     */
    type?: pulumi.Input<string | undefined>;
    /**
     * When a service policy denies a app_category, what message to show in user's browser
     */
    urlFilteringDenyMsg?: pulumi.Input<string | undefined>;
    /**
     * Variable values that override site variables for this gateway
     */
    vars?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * VRF configuration applied to this gateway
     */
    vrfConfig?: pulumi.Input<inputs.device.GatewayVrfConfig | undefined>;
    /**
     * VRF instances configured on this gateway
     */
    vrfInstances?: pulumi.Input<{
        [key: string]: pulumi.Input<inputs.device.GatewayVrfInstances>;
    } | undefined>;
    /**
     * Horizontal map position of the gateway, in pixels
     */
    x?: pulumi.Input<number | undefined>;
    /**
     * Vertical map position of the gateway, in pixels
     */
    y?: pulumi.Input<number | undefined>;
}
/**
 * The set of arguments for constructing a Gateway resource.
 */
export interface GatewayArgs {
    /**
     * Additional CLI configuration commands to apply to this gateway
     */
    additionalConfigCmds?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * BGP routing configuration for this gateway. Property key is the BGP session name
     */
    bgpConfig?: pulumi.Input<{
        [key: string]: pulumi.Input<inputs.device.GatewayBgpConfig>;
    } | undefined>;
    deviceId: pulumi.Input<string>;
    /**
     * DHCP server configuration served by this gateway
     */
    dhcpdConfig?: pulumi.Input<inputs.device.GatewayDhcpdConfig | undefined>;
    /**
     * DNS servers configured for this gateway
     */
    dnsServers?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * DNS search suffixes configured for this gateway
     */
    dnsSuffixes?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Additional IPv4 routes configured on this gateway
     */
    extraRoutes?: pulumi.Input<{
        [key: string]: pulumi.Input<inputs.device.GatewayExtraRoutes>;
    } | undefined>;
    /**
     * Additional IPv6 routes configured on this gateway
     */
    extraRoutes6?: pulumi.Input<{
        [key: string]: pulumi.Input<inputs.device.GatewayExtraRoutes6>;
    } | undefined>;
    /**
     * Management-plane settings for this gateway
     */
    gatewayMgmt?: pulumi.Input<inputs.device.GatewayGatewayMgmt | undefined>;
    /**
     * Intrusion detection and prevention profiles configured for this gateway
     */
    idpProfiles?: pulumi.Input<{
        [key: string]: pulumi.Input<inputs.device.GatewayIdpProfiles>;
    } | undefined>;
    /**
     * Gateway interface IP configurations by network name
     */
    ipConfigs?: pulumi.Input<{
        [key: string]: pulumi.Input<inputs.device.GatewayIpConfigs>;
    } | undefined>;
    /**
     * Whether the device is managed by Mist. Deprecated in favour of mist_configured.
     *
     * @deprecated This attribute is being deprecated, please use `mistConfigured` instead
     */
    managed?: pulumi.Input<boolean | undefined>;
    /**
     * Map where the device belongs to
     */
    mapId?: pulumi.Input<string | undefined>;
    /**
     * whether the device can be configured by Mist or not. This deprecates `managed` for adopted devices.
     */
    mistConfigured?: pulumi.Input<boolean | undefined>;
    /**
     * MSP that manages this gateway, when applicable
     */
    mspId?: pulumi.Input<string | undefined>;
    /**
     * Friendly display name assigned to the gateway
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Layer 3 networks configured for use by this gateway
     */
    networks?: pulumi.Input<pulumi.Input<inputs.device.GatewayNetwork>[] | undefined>;
    /**
     * Free-form administrative notes for this gateway
     */
    notes?: pulumi.Input<string | undefined>;
    /**
     * NTP servers used by this gateway
     */
    ntpServers?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Out-of-band management IP configuration for this gateway
     */
    oobIpConfig?: pulumi.Input<inputs.device.GatewayOobIpConfig | undefined>;
    /**
     * Property key is the path name
     */
    pathPreferences?: pulumi.Input<{
        [key: string]: pulumi.Input<inputs.device.GatewayPathPreferences>;
    } | undefined>;
    /**
     * Property key is the port name or range (e.g. "ge-0/0/0-10")
     */
    portConfig?: pulumi.Input<{
        [key: string]: pulumi.Input<inputs.device.GatewayPortConfig>;
    } | undefined>;
    /**
     * Port mirroring configuration for this gateway
     */
    portMirroring?: pulumi.Input<inputs.device.GatewayPortMirroring | undefined>;
    /**
     * Auto assigned if not set
     */
    routerId?: pulumi.Input<string | undefined>;
    /**
     * Routing policies applied by this gateway
     */
    routingPolicies?: pulumi.Input<{
        [key: string]: pulumi.Input<inputs.device.GatewayRoutingPolicies>;
    } | undefined>;
    /**
     * Traffic service policies enforced by this gateway
     */
    servicePolicies?: pulumi.Input<pulumi.Input<inputs.device.GatewayServicePolicy>[] | undefined>;
    /**
     * Site where this gateway is assigned
     */
    siteId: pulumi.Input<string>;
    /**
     * additional CLI commands to append to the generated SSR config. **Note**: no check is done
     */
    ssrAdditionalConfigCmds?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Property key is the tunnel name
     */
    tunnelConfigs?: pulumi.Input<{
        [key: string]: pulumi.Input<inputs.device.GatewayTunnelConfigs>;
    } | undefined>;
    /**
     * Provider-specific options for tunnels terminated by this gateway
     */
    tunnelProviderOptions?: pulumi.Input<inputs.device.GatewayTunnelProviderOptions | undefined>;
    /**
     * When a service policy denies a app_category, what message to show in user's browser
     */
    urlFilteringDenyMsg?: pulumi.Input<string | undefined>;
    /**
     * Variable values that override site variables for this gateway
     */
    vars?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * VRF configuration applied to this gateway
     */
    vrfConfig?: pulumi.Input<inputs.device.GatewayVrfConfig | undefined>;
    /**
     * VRF instances configured on this gateway
     */
    vrfInstances?: pulumi.Input<{
        [key: string]: pulumi.Input<inputs.device.GatewayVrfInstances>;
    } | undefined>;
    /**
     * Horizontal map position of the gateway, in pixels
     */
    x?: pulumi.Input<number | undefined>;
    /**
     * Vertical map position of the gateway, in pixels
     */
    y?: pulumi.Input<number | undefined>;
}
//# sourceMappingURL=gateway.d.ts.map