@pulumi/juniper-mist
Version:
A Pulumi package for creating and managing Juniper Mist resources.
448 lines (447 loc) • 15.7 kB
TypeScript
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 `managed`=`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 `mist_device_gateway` with:
*
* Gateway Configuration can be imported by specifying the site_id and the device_id
*
* ```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 commands to append to the generated Junos config. **Note**: no check is done
*/
readonly additionalConfigCmds: pulumi.Output<string[] | undefined>;
readonly bgpConfig: pulumi.Output<{
[key: string]: outputs.device.GatewayBgpConfig;
} | undefined>;
readonly deviceId: pulumi.Output<string>;
readonly dhcpdConfig: pulumi.Output<outputs.device.GatewayDhcpdConfig | undefined>;
/**
* Global dns settings. To keep compatibility, dns settings in `ipConfig` and `oobIpConfig` will overwrite this setting
*/
readonly dnsServers: pulumi.Output<string[] | undefined>;
/**
* Global dns settings. To keep compatibility, dns settings in `ipConfig` and `oobIpConfig` will overwrite this setting
*/
readonly dnsSuffixes: pulumi.Output<string[] | undefined>;
/**
* Property key is the destination CIDR (e.g. "10.0.0.0/8"), the destination Network name or a variable (e.g. "{{myvar}}")
*/
readonly extraRoutes: pulumi.Output<{
[key: string]: outputs.device.GatewayExtraRoutes;
} | undefined>;
/**
* Property key is the destination CIDR (e.g. "2a02:1234:420a:10c9::/64"), the destination Network name or a variable (e.g.
* "{{myvar}}")
*/
readonly extraRoutes6: pulumi.Output<{
[key: string]: outputs.device.GatewayExtraRoutes6;
} | undefined>;
/**
* Property key is the profile name
*/
readonly idpProfiles: pulumi.Output<{
[key: string]: outputs.device.GatewayIdpProfiles;
} | undefined>;
readonly image1Url: pulumi.Output<string>;
readonly image2Url: pulumi.Output<string>;
readonly image3Url: pulumi.Output<string>;
/**
* Property key is the network name
*/
readonly ipConfigs: pulumi.Output<{
[key: string]: outputs.device.GatewayIpConfigs;
} | undefined>;
/**
* Device MAC address
*/
readonly mac: pulumi.Output<string>;
readonly managed: pulumi.Output<boolean | undefined>;
/**
* Map where the device belongs to
*/
readonly mapId: pulumi.Output<string | undefined>;
/**
* Device Model
*/
readonly model: pulumi.Output<string>;
readonly mspId: pulumi.Output<string | undefined>;
readonly name: pulumi.Output<string>;
readonly networks: pulumi.Output<outputs.device.GatewayNetwork[] | undefined>;
readonly notes: pulumi.Output<string | undefined>;
readonly ntpServers: pulumi.Output<string[] | undefined>;
/**
* Out-of-band (vme/em0/fxp0) IP config
*/
readonly oobIpConfig: pulumi.Output<outputs.device.GatewayOobIpConfig>;
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>;
readonly portMirroring: pulumi.Output<outputs.device.GatewayPortMirroring | undefined>;
/**
* Auto assigned if not set
*/
readonly routerId: pulumi.Output<string | undefined>;
/**
* Property key is the routing policy name
*/
readonly routingPolicies: pulumi.Output<{
[key: string]: outputs.device.GatewayRoutingPolicies;
} | undefined>;
/**
* Device Serial
*/
readonly serial: pulumi.Output<string>;
readonly servicePolicies: pulumi.Output<outputs.device.GatewayServicePolicy[] | undefined>;
readonly siteId: pulumi.Output<string>;
/**
* Property key is the tunnel name
*/
readonly tunnelConfigs: pulumi.Output<{
[key: string]: outputs.device.GatewayTunnelConfigs;
} | undefined>;
readonly tunnelProviderOptions: pulumi.Output<outputs.device.GatewayTunnelProviderOptions | undefined>;
/**
* Device Type. enum: `gateway`
*/
readonly type: pulumi.Output<string>;
/**
* Dictionary of name->value, the vars can then be used in Wlans. This can overwrite those from Site Vars
*/
readonly vars: pulumi.Output<{
[key: string]: string;
} | undefined>;
readonly vrfConfig: pulumi.Output<outputs.device.GatewayVrfConfig | undefined>;
/**
* Property key is the network name
*/
readonly vrfInstances: pulumi.Output<{
[key: string]: outputs.device.GatewayVrfInstances;
} | undefined>;
/**
* X in pixel
*/
readonly x: pulumi.Output<number | undefined>;
/**
* Y in pixel
*/
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 commands to append to the generated Junos config. **Note**: no check is done
*/
additionalConfigCmds?: pulumi.Input<pulumi.Input<string>[]>;
bgpConfig?: pulumi.Input<{
[key: string]: pulumi.Input<inputs.device.GatewayBgpConfig>;
}>;
deviceId?: pulumi.Input<string>;
dhcpdConfig?: pulumi.Input<inputs.device.GatewayDhcpdConfig>;
/**
* Global dns settings. To keep compatibility, dns settings in `ipConfig` and `oobIpConfig` will overwrite this setting
*/
dnsServers?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Global dns settings. To keep compatibility, dns settings in `ipConfig` and `oobIpConfig` will overwrite this setting
*/
dnsSuffixes?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Property key is the destination CIDR (e.g. "10.0.0.0/8"), the destination Network name or a variable (e.g. "{{myvar}}")
*/
extraRoutes?: pulumi.Input<{
[key: string]: pulumi.Input<inputs.device.GatewayExtraRoutes>;
}>;
/**
* Property key is the destination CIDR (e.g. "2a02:1234:420a:10c9::/64"), the destination Network name or a variable (e.g.
* "{{myvar}}")
*/
extraRoutes6?: pulumi.Input<{
[key: string]: pulumi.Input<inputs.device.GatewayExtraRoutes6>;
}>;
/**
* Property key is the profile name
*/
idpProfiles?: pulumi.Input<{
[key: string]: pulumi.Input<inputs.device.GatewayIdpProfiles>;
}>;
image1Url?: pulumi.Input<string>;
image2Url?: pulumi.Input<string>;
image3Url?: pulumi.Input<string>;
/**
* Property key is the network name
*/
ipConfigs?: pulumi.Input<{
[key: string]: pulumi.Input<inputs.device.GatewayIpConfigs>;
}>;
/**
* Device MAC address
*/
mac?: pulumi.Input<string>;
managed?: pulumi.Input<boolean>;
/**
* Map where the device belongs to
*/
mapId?: pulumi.Input<string>;
/**
* Device Model
*/
model?: pulumi.Input<string>;
mspId?: pulumi.Input<string>;
name?: pulumi.Input<string>;
networks?: pulumi.Input<pulumi.Input<inputs.device.GatewayNetwork>[]>;
notes?: pulumi.Input<string>;
ntpServers?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Out-of-band (vme/em0/fxp0) IP config
*/
oobIpConfig?: pulumi.Input<inputs.device.GatewayOobIpConfig>;
orgId?: pulumi.Input<string>;
/**
* Property key is the path name
*/
pathPreferences?: pulumi.Input<{
[key: string]: pulumi.Input<inputs.device.GatewayPathPreferences>;
}>;
/**
* 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>;
}>;
portMirroring?: pulumi.Input<inputs.device.GatewayPortMirroring>;
/**
* Auto assigned if not set
*/
routerId?: pulumi.Input<string>;
/**
* Property key is the routing policy name
*/
routingPolicies?: pulumi.Input<{
[key: string]: pulumi.Input<inputs.device.GatewayRoutingPolicies>;
}>;
/**
* Device Serial
*/
serial?: pulumi.Input<string>;
servicePolicies?: pulumi.Input<pulumi.Input<inputs.device.GatewayServicePolicy>[]>;
siteId?: pulumi.Input<string>;
/**
* Property key is the tunnel name
*/
tunnelConfigs?: pulumi.Input<{
[key: string]: pulumi.Input<inputs.device.GatewayTunnelConfigs>;
}>;
tunnelProviderOptions?: pulumi.Input<inputs.device.GatewayTunnelProviderOptions>;
/**
* Device Type. enum: `gateway`
*/
type?: pulumi.Input<string>;
/**
* Dictionary of name->value, the vars can then be used in Wlans. This can overwrite those from Site Vars
*/
vars?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
vrfConfig?: pulumi.Input<inputs.device.GatewayVrfConfig>;
/**
* Property key is the network name
*/
vrfInstances?: pulumi.Input<{
[key: string]: pulumi.Input<inputs.device.GatewayVrfInstances>;
}>;
/**
* X in pixel
*/
x?: pulumi.Input<number>;
/**
* Y in pixel
*/
y?: pulumi.Input<number>;
}
/**
* The set of arguments for constructing a Gateway resource.
*/
export interface GatewayArgs {
/**
* additional CLI commands to append to the generated Junos config. **Note**: no check is done
*/
additionalConfigCmds?: pulumi.Input<pulumi.Input<string>[]>;
bgpConfig?: pulumi.Input<{
[key: string]: pulumi.Input<inputs.device.GatewayBgpConfig>;
}>;
deviceId: pulumi.Input<string>;
dhcpdConfig?: pulumi.Input<inputs.device.GatewayDhcpdConfig>;
/**
* Global dns settings. To keep compatibility, dns settings in `ipConfig` and `oobIpConfig` will overwrite this setting
*/
dnsServers?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Global dns settings. To keep compatibility, dns settings in `ipConfig` and `oobIpConfig` will overwrite this setting
*/
dnsSuffixes?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Property key is the destination CIDR (e.g. "10.0.0.0/8"), the destination Network name or a variable (e.g. "{{myvar}}")
*/
extraRoutes?: pulumi.Input<{
[key: string]: pulumi.Input<inputs.device.GatewayExtraRoutes>;
}>;
/**
* Property key is the destination CIDR (e.g. "2a02:1234:420a:10c9::/64"), the destination Network name or a variable (e.g.
* "{{myvar}}")
*/
extraRoutes6?: pulumi.Input<{
[key: string]: pulumi.Input<inputs.device.GatewayExtraRoutes6>;
}>;
/**
* Property key is the profile name
*/
idpProfiles?: pulumi.Input<{
[key: string]: pulumi.Input<inputs.device.GatewayIdpProfiles>;
}>;
/**
* Property key is the network name
*/
ipConfigs?: pulumi.Input<{
[key: string]: pulumi.Input<inputs.device.GatewayIpConfigs>;
}>;
managed?: pulumi.Input<boolean>;
/**
* Map where the device belongs to
*/
mapId?: pulumi.Input<string>;
mspId?: pulumi.Input<string>;
name?: pulumi.Input<string>;
networks?: pulumi.Input<pulumi.Input<inputs.device.GatewayNetwork>[]>;
notes?: pulumi.Input<string>;
ntpServers?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Out-of-band (vme/em0/fxp0) IP config
*/
oobIpConfig?: pulumi.Input<inputs.device.GatewayOobIpConfig>;
/**
* Property key is the path name
*/
pathPreferences?: pulumi.Input<{
[key: string]: pulumi.Input<inputs.device.GatewayPathPreferences>;
}>;
/**
* 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>;
}>;
portMirroring?: pulumi.Input<inputs.device.GatewayPortMirroring>;
/**
* Auto assigned if not set
*/
routerId?: pulumi.Input<string>;
/**
* Property key is the routing policy name
*/
routingPolicies?: pulumi.Input<{
[key: string]: pulumi.Input<inputs.device.GatewayRoutingPolicies>;
}>;
servicePolicies?: pulumi.Input<pulumi.Input<inputs.device.GatewayServicePolicy>[]>;
siteId: pulumi.Input<string>;
/**
* Property key is the tunnel name
*/
tunnelConfigs?: pulumi.Input<{
[key: string]: pulumi.Input<inputs.device.GatewayTunnelConfigs>;
}>;
tunnelProviderOptions?: pulumi.Input<inputs.device.GatewayTunnelProviderOptions>;
/**
* Dictionary of name->value, the vars can then be used in Wlans. This can overwrite those from Site Vars
*/
vars?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
vrfConfig?: pulumi.Input<inputs.device.GatewayVrfConfig>;
/**
* Property key is the network name
*/
vrfInstances?: pulumi.Input<{
[key: string]: pulumi.Input<inputs.device.GatewayVrfInstances>;
}>;
/**
* X in pixel
*/
x?: pulumi.Input<number>;
/**
* Y in pixel
*/
y?: pulumi.Input<number>;
}