import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * This resource manages the Gateway Templates.
 *
 * A Gateway template is used to define the static ip address and subnet mask of the hub device, along with the gateway. It also allows for the selection of options such as enabling source nat and overriding the public ip for the hub if needed. the endpoint selected in the gateway template ties the hub and spoke devices together and creates the auto-vpn tunnel.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as junipermist from "@pulumi/juniper-mist";
 *
 * const gatewaytemplateOne = new junipermist.org.Gatewaytemplate("gatewaytemplate_one", {
 *     type: "spoke",
 *     name: "gatewaytemplate_one",
 *     orgId: terraformTest.id,
 *     portConfig: {
 *         "ge-0/0/3": {
 *             name: "FTTH",
 *             usage: "wan",
 *             aggregated: false,
 *             redundant: false,
 *             critical: false,
 *             wanType: "broadband",
 *             ipConfig: {
 *                 type: "static",
 *                 ip: "192.168.1.8",
 *                 netmask: "/24",
 *                 gateway: "192.168.1.1",
 *             },
 *             disableAutoneg: false,
 *             speed: "auto",
 *             duplex: "auto",
 *             wanSourceNat: {
 *                 disabled: false,
 *             },
 *             vpnPaths: {
 *                 "SSR_HUB_DC-MPLS.OrgOverlay": {
 *                     key: 0,
 *                     role: "spoke",
 *                     bfdProfile: "broadband",
 *                 },
 *             },
 *         },
 *         "ge-0/0/5": {
 *             usage: "lan",
 *             critical: false,
 *             aggregated: true,
 *             aeDisableLacp: false,
 *             aeLacpForceUp: true,
 *             aeIdx: "0",
 *             redundant: false,
 *             networks: [
 *                 "PRD-Core",
 *                 "PRD-Mgmt",
 *                 "PRD-Lab",
 *             ],
 *         },
 *     },
 *     ipConfigs: {
 *         "PRD-Core": {
 *             type: "static",
 *             ip: "10.3.100.9",
 *             netmask: "/24",
 *         },
 *         "PRD-Mgmt": {
 *             type: "static",
 *             ip: "10.3.172.1",
 *             netmask: "/24",
 *         },
 *         "PRD-Lab": {
 *             type: "static",
 *             ip: "10.3.171.1",
 *             netmask: "/24",
 *         },
 *     },
 *     servicePolicies: [{
 *         name: "Policy-14",
 *         tenants: ["PRD-Core"],
 *         services: ["any"],
 *         action: "allow",
 *         pathPreference: "HUB",
 *         idp: {
 *             enabled: true,
 *             profile: "critical",
 *             alertOnly: false,
 *         },
 *     }],
 * });
 * ```
 *
 * ## Import
 *
 * Using `pulumi import`, import `junipermist.org.Gatewaytemplate` with:
 * Gateway Template can be imported by specifying the orgId and the gatewaytemplateId
 *
 * ```sh
 * $ pulumi import junipermist:org/gatewaytemplate:Gatewaytemplate gatewaytemplate_one 17b46405-3a6d-4715-8bb4-6bb6d06f316a.d3c42998-9012-4859-9743-6b9bee475309
 * ```
 */
export declare class Gatewaytemplate extends pulumi.CustomResource {
    /**
     * Get an existing Gatewaytemplate 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?: GatewaytemplateState, opts?: pulumi.CustomResourceOptions): Gatewaytemplate;
    /**
     * Returns true if the given object is an instance of Gatewaytemplate.  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 Gatewaytemplate;
    /**
     * Additional CLI configuration commands provided by this gateway template
     */
    readonly additionalConfigCmds: pulumi.Output<string[] | undefined>;
    /**
     * BGP routing defaults for this gateway template. Property key is the BGP session name
     */
    readonly bgpConfig: pulumi.Output<{
        [key: string]: outputs.org.GatewaytemplateBgpConfig;
    } | undefined>;
    /**
     * DHCP server defaults provided by this gateway template
     */
    readonly dhcpdConfig: pulumi.Output<outputs.org.GatewaytemplateDhcpdConfig | undefined>;
    /**
     * Whether DNS server and suffix settings in this template override inherited values
     */
    readonly dnsOverride: pulumi.Output<boolean | undefined>;
    /**
     * DNS servers provided by this gateway template
     */
    readonly dnsServers: pulumi.Output<string[] | undefined>;
    /**
     * DNS search suffixes provided by this gateway template
     */
    readonly dnsSuffixes: pulumi.Output<string[] | undefined>;
    /**
     * Additional IPv4 route defaults in this gateway template
     */
    readonly extraRoutes: pulumi.Output<{
        [key: string]: outputs.org.GatewaytemplateExtraRoutes;
    } | undefined>;
    /**
     * Additional IPv6 route defaults in this gateway template
     */
    readonly extraRoutes6: pulumi.Output<{
        [key: string]: outputs.org.GatewaytemplateExtraRoutes6;
    } | undefined>;
    /**
     * Management-plane defaults provided by this gateway template
     */
    readonly gatewayMgmt: pulumi.Output<outputs.org.GatewaytemplateGatewayMgmt | undefined>;
    /**
     * Intrusion detection and prevention profile defaults in this gateway template
     */
    readonly idpProfiles: pulumi.Output<{
        [key: string]: outputs.org.GatewaytemplateIdpProfiles;
    } | undefined>;
    /**
     * Gateway interface IP configuration defaults by network name
     */
    readonly ipConfigs: pulumi.Output<{
        [key: string]: outputs.org.GatewaytemplateIpConfigs;
    } | undefined>;
    /**
     * Display name of the gateway template
     */
    readonly name: pulumi.Output<string>;
    /**
     * Layer 3 networks configured by this gateway template
     */
    readonly networks: pulumi.Output<outputs.org.GatewaytemplateNetwork[] | undefined>;
    /**
     * Whether NTP servers in this template override inherited values
     */
    readonly ntpOverride: pulumi.Output<boolean | undefined>;
    /**
     * NTP servers provided by this gateway template
     */
    readonly ntpServers: pulumi.Output<string[] | undefined>;
    /**
     * Out-of-band management IP defaults in this gateway template
     */
    readonly oobIpConfig: pulumi.Output<outputs.org.GatewaytemplateOobIpConfig>;
    /**
     * Organization that owns this gateway template
     */
    readonly orgId: pulumi.Output<string>;
    /**
     * Property key is the path name
     */
    readonly pathPreferences: pulumi.Output<{
        [key: string]: outputs.org.GatewaytemplatePathPreferences;
    } | undefined>;
    /**
     * Property key is the Port Name (i.e. "ge-0/0/0"), the Ports Range (i.e. "ge-0/0/0-10"), the List of Ports (i.e. "ge-0/0/0,ge-1/0/0", only allowed for Aggregated or Redundant interfaces) or a Variable (i.e. "{{myvar}}").
     */
    readonly portConfig: pulumi.Output<{
        [key: string]: outputs.org.GatewaytemplatePortConfig;
    } | undefined>;
    /**
     * Auto assigned if not set
     */
    readonly routerId: pulumi.Output<string | undefined>;
    /**
     * Routing policy defaults applied by this gateway template
     */
    readonly routingPolicies: pulumi.Output<{
        [key: string]: outputs.org.GatewaytemplateRoutingPolicies;
    } | undefined>;
    /**
     * Traffic service policy defaults enforced by this gateway template
     */
    readonly servicePolicies: pulumi.Output<outputs.org.GatewaytemplateServicePolicy[] | undefined>;
    /**
     * 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.org.GatewaytemplateTunnelConfigs;
    } | undefined>;
    /**
     * Provider-specific tunnel options defined by this gateway template
     */
    readonly tunnelProviderOptions: pulumi.Output<outputs.org.GatewaytemplateTunnelProviderOptions | undefined>;
    /**
     * Gateway template deployment type
     */
    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>;
    /**
     * VRF defaults applied by this gateway template
     */
    readonly vrfConfig: pulumi.Output<outputs.org.GatewaytemplateVrfConfig | undefined>;
    /**
     * VRF instances configured by this gateway template
     */
    readonly vrfInstances: pulumi.Output<{
        [key: string]: outputs.org.GatewaytemplateVrfInstances;
    } | undefined>;
    /**
     * Create a Gatewaytemplate 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: GatewaytemplateArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering Gatewaytemplate resources.
 */
export interface GatewaytemplateState {
    /**
     * Additional CLI configuration commands provided by this gateway template
     */
    additionalConfigCmds?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * BGP routing defaults for this gateway template. Property key is the BGP session name
     */
    bgpConfig?: pulumi.Input<{
        [key: string]: pulumi.Input<inputs.org.GatewaytemplateBgpConfig>;
    } | undefined>;
    /**
     * DHCP server defaults provided by this gateway template
     */
    dhcpdConfig?: pulumi.Input<inputs.org.GatewaytemplateDhcpdConfig | undefined>;
    /**
     * Whether DNS server and suffix settings in this template override inherited values
     */
    dnsOverride?: pulumi.Input<boolean | undefined>;
    /**
     * DNS servers provided by this gateway template
     */
    dnsServers?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * DNS search suffixes provided by this gateway template
     */
    dnsSuffixes?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Additional IPv4 route defaults in this gateway template
     */
    extraRoutes?: pulumi.Input<{
        [key: string]: pulumi.Input<inputs.org.GatewaytemplateExtraRoutes>;
    } | undefined>;
    /**
     * Additional IPv6 route defaults in this gateway template
     */
    extraRoutes6?: pulumi.Input<{
        [key: string]: pulumi.Input<inputs.org.GatewaytemplateExtraRoutes6>;
    } | undefined>;
    /**
     * Management-plane defaults provided by this gateway template
     */
    gatewayMgmt?: pulumi.Input<inputs.org.GatewaytemplateGatewayMgmt | undefined>;
    /**
     * Intrusion detection and prevention profile defaults in this gateway template
     */
    idpProfiles?: pulumi.Input<{
        [key: string]: pulumi.Input<inputs.org.GatewaytemplateIdpProfiles>;
    } | undefined>;
    /**
     * Gateway interface IP configuration defaults by network name
     */
    ipConfigs?: pulumi.Input<{
        [key: string]: pulumi.Input<inputs.org.GatewaytemplateIpConfigs>;
    } | undefined>;
    /**
     * Display name of the gateway template
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Layer 3 networks configured by this gateway template
     */
    networks?: pulumi.Input<pulumi.Input<inputs.org.GatewaytemplateNetwork>[] | undefined>;
    /**
     * Whether NTP servers in this template override inherited values
     */
    ntpOverride?: pulumi.Input<boolean | undefined>;
    /**
     * NTP servers provided by this gateway template
     */
    ntpServers?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Out-of-band management IP defaults in this gateway template
     */
    oobIpConfig?: pulumi.Input<inputs.org.GatewaytemplateOobIpConfig | undefined>;
    /**
     * Organization that owns this gateway template
     */
    orgId?: pulumi.Input<string | undefined>;
    /**
     * Property key is the path name
     */
    pathPreferences?: pulumi.Input<{
        [key: string]: pulumi.Input<inputs.org.GatewaytemplatePathPreferences>;
    } | undefined>;
    /**
     * Property key is the Port Name (i.e. "ge-0/0/0"), the Ports Range (i.e. "ge-0/0/0-10"), the List of Ports (i.e. "ge-0/0/0,ge-1/0/0", only allowed for Aggregated or Redundant interfaces) or a Variable (i.e. "{{myvar}}").
     */
    portConfig?: pulumi.Input<{
        [key: string]: pulumi.Input<inputs.org.GatewaytemplatePortConfig>;
    } | undefined>;
    /**
     * Auto assigned if not set
     */
    routerId?: pulumi.Input<string | undefined>;
    /**
     * Routing policy defaults applied by this gateway template
     */
    routingPolicies?: pulumi.Input<{
        [key: string]: pulumi.Input<inputs.org.GatewaytemplateRoutingPolicies>;
    } | undefined>;
    /**
     * Traffic service policy defaults enforced by this gateway template
     */
    servicePolicies?: pulumi.Input<pulumi.Input<inputs.org.GatewaytemplateServicePolicy>[] | 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.org.GatewaytemplateTunnelConfigs>;
    } | undefined>;
    /**
     * Provider-specific tunnel options defined by this gateway template
     */
    tunnelProviderOptions?: pulumi.Input<inputs.org.GatewaytemplateTunnelProviderOptions | undefined>;
    /**
     * Gateway template deployment type
     */
    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>;
    /**
     * VRF defaults applied by this gateway template
     */
    vrfConfig?: pulumi.Input<inputs.org.GatewaytemplateVrfConfig | undefined>;
    /**
     * VRF instances configured by this gateway template
     */
    vrfInstances?: pulumi.Input<{
        [key: string]: pulumi.Input<inputs.org.GatewaytemplateVrfInstances>;
    } | undefined>;
}
/**
 * The set of arguments for constructing a Gatewaytemplate resource.
 */
export interface GatewaytemplateArgs {
    /**
     * Additional CLI configuration commands provided by this gateway template
     */
    additionalConfigCmds?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * BGP routing defaults for this gateway template. Property key is the BGP session name
     */
    bgpConfig?: pulumi.Input<{
        [key: string]: pulumi.Input<inputs.org.GatewaytemplateBgpConfig>;
    } | undefined>;
    /**
     * DHCP server defaults provided by this gateway template
     */
    dhcpdConfig?: pulumi.Input<inputs.org.GatewaytemplateDhcpdConfig | undefined>;
    /**
     * Whether DNS server and suffix settings in this template override inherited values
     */
    dnsOverride?: pulumi.Input<boolean | undefined>;
    /**
     * DNS servers provided by this gateway template
     */
    dnsServers?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * DNS search suffixes provided by this gateway template
     */
    dnsSuffixes?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Additional IPv4 route defaults in this gateway template
     */
    extraRoutes?: pulumi.Input<{
        [key: string]: pulumi.Input<inputs.org.GatewaytemplateExtraRoutes>;
    } | undefined>;
    /**
     * Additional IPv6 route defaults in this gateway template
     */
    extraRoutes6?: pulumi.Input<{
        [key: string]: pulumi.Input<inputs.org.GatewaytemplateExtraRoutes6>;
    } | undefined>;
    /**
     * Management-plane defaults provided by this gateway template
     */
    gatewayMgmt?: pulumi.Input<inputs.org.GatewaytemplateGatewayMgmt | undefined>;
    /**
     * Intrusion detection and prevention profile defaults in this gateway template
     */
    idpProfiles?: pulumi.Input<{
        [key: string]: pulumi.Input<inputs.org.GatewaytemplateIdpProfiles>;
    } | undefined>;
    /**
     * Gateway interface IP configuration defaults by network name
     */
    ipConfigs?: pulumi.Input<{
        [key: string]: pulumi.Input<inputs.org.GatewaytemplateIpConfigs>;
    } | undefined>;
    /**
     * Display name of the gateway template
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Layer 3 networks configured by this gateway template
     */
    networks?: pulumi.Input<pulumi.Input<inputs.org.GatewaytemplateNetwork>[] | undefined>;
    /**
     * Whether NTP servers in this template override inherited values
     */
    ntpOverride?: pulumi.Input<boolean | undefined>;
    /**
     * NTP servers provided by this gateway template
     */
    ntpServers?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Out-of-band management IP defaults in this gateway template
     */
    oobIpConfig?: pulumi.Input<inputs.org.GatewaytemplateOobIpConfig | undefined>;
    /**
     * Organization that owns this gateway template
     */
    orgId: pulumi.Input<string>;
    /**
     * Property key is the path name
     */
    pathPreferences?: pulumi.Input<{
        [key: string]: pulumi.Input<inputs.org.GatewaytemplatePathPreferences>;
    } | undefined>;
    /**
     * Property key is the Port Name (i.e. "ge-0/0/0"), the Ports Range (i.e. "ge-0/0/0-10"), the List of Ports (i.e. "ge-0/0/0,ge-1/0/0", only allowed for Aggregated or Redundant interfaces) or a Variable (i.e. "{{myvar}}").
     */
    portConfig?: pulumi.Input<{
        [key: string]: pulumi.Input<inputs.org.GatewaytemplatePortConfig>;
    } | undefined>;
    /**
     * Auto assigned if not set
     */
    routerId?: pulumi.Input<string | undefined>;
    /**
     * Routing policy defaults applied by this gateway template
     */
    routingPolicies?: pulumi.Input<{
        [key: string]: pulumi.Input<inputs.org.GatewaytemplateRoutingPolicies>;
    } | undefined>;
    /**
     * Traffic service policy defaults enforced by this gateway template
     */
    servicePolicies?: pulumi.Input<pulumi.Input<inputs.org.GatewaytemplateServicePolicy>[] | 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.org.GatewaytemplateTunnelConfigs>;
    } | undefined>;
    /**
     * Provider-specific tunnel options defined by this gateway template
     */
    tunnelProviderOptions?: pulumi.Input<inputs.org.GatewaytemplateTunnelProviderOptions | undefined>;
    /**
     * Gateway template deployment type
     */
    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>;
    /**
     * VRF defaults applied by this gateway template
     */
    vrfConfig?: pulumi.Input<inputs.org.GatewaytemplateVrfConfig | undefined>;
    /**
     * VRF instances configured by this gateway template
     */
    vrfInstances?: pulumi.Input<{
        [key: string]: pulumi.Input<inputs.org.GatewaytemplateVrfInstances>;
    } | undefined>;
}
//# sourceMappingURL=gatewaytemplate.d.ts.map