@pulumi/juniper-mist
Version:
A Pulumi package for creating and managing Juniper Mist resources.
585 lines (584 loc) • 22 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
* This resource manages the Switch configuration.
*
* It can be used to define specific configuration at the device level or to override Org/Site Network template settings.
*
* > **WARNING** For **adopted** devices, make sure to set `managed`=`true` to allow Mist to manage the switch
*
* ## Import
*
* Using `pulumi import`, import `mist_device_switch` with:
*
* Switch Configuration can be imported by specifying the site_id and the device_id
*
* ```sh
* $ pulumi import junipermist:device/switch:Switch switch_one 17b46405-3a6d-4715-8bb4-6bb6d06f316a.d3c42998-9012-4859-9743-6b9bee475309
* ```
*/
export declare class Switch extends pulumi.CustomResource {
/**
* Get an existing Switch 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?: SwitchState, opts?: pulumi.CustomResourceOptions): Switch;
/**
* Returns true if the given object is an instance of Switch. 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 Switch;
readonly aclPolicies: pulumi.Output<outputs.device.SwitchAclPolicy[] | undefined>;
/**
* ACL Tags to identify traffic source or destination. Key name is the tag name
*/
readonly aclTags: pulumi.Output<{
[key: string]: outputs.device.SwitchAclTags;
} | undefined>;
/**
* additional CLI commands to append to the generated Junos config. **Note**: no check is done
*/
readonly additionalConfigCmds: pulumi.Output<string[] | undefined>;
readonly deviceId: pulumi.Output<string>;
readonly dhcpSnooping: pulumi.Output<outputs.device.SwitchDhcpSnooping | undefined>;
readonly dhcpdConfig: pulumi.Output<outputs.device.SwitchDhcpdConfig | undefined>;
/**
* This disables the default behavior of a cloud-ready switch/gateway being managed/configured by Mist. Setting this to
* `true` means you want to disable the default behavior and do not want the device to be Mist-managed.
*/
readonly disableAutoConfig: pulumi.Output<boolean>;
/**
* Global dns settings. To keep compatibility, dns settings in `ipConfig` and `oobIpConfig` will overwrite this setting
*/
readonly dnsServers: pulumi.Output<string[]>;
/**
* Global dns settings. To keep compatibility, dns settings in `ipConfig` and `oobIpConfig` will overwrite this setting
*/
readonly dnsSuffixes: pulumi.Output<string[]>;
/**
* Property key is the destination CIDR (e.g. "10.0.0.0/8")
*/
readonly extraRoutes: pulumi.Output<{
[key: string]: outputs.device.SwitchExtraRoutes;
} | undefined>;
/**
* Property key is the destination CIDR (e.g. "2a02:1234:420a:10c9::/64")
*/
readonly extraRoutes6: pulumi.Output<{
[key: string]: outputs.device.SwitchExtraRoutes6;
} | undefined>;
readonly image1Url: pulumi.Output<string>;
readonly image2Url: pulumi.Output<string>;
readonly image3Url: pulumi.Output<string>;
/**
* Junos IP Config
*/
readonly ipConfig: pulumi.Output<outputs.device.SwitchIpConfig | undefined>;
/**
* Local port override, overriding the port configuration from `portConfig`. Property key is the port name or range (e.g.
* "ge-0/0/0-10")
*/
readonly localPortConfig: pulumi.Output<{
[key: string]: outputs.device.SwitchLocalPortConfig;
} | undefined>;
/**
* Device MAC address
*/
readonly mac: pulumi.Output<string>;
/**
* An adopted switch/gateway will not be managed/configured by Mist by default. Setting this parameter to `true` enables
* the adopted switch/gateway to be managed/configured by Mist.
*/
readonly managed: pulumi.Output<boolean>;
/**
* Map where the device belongs to
*/
readonly mapId: pulumi.Output<string | undefined>;
/**
* Enable mistNac to use RadSec
*/
readonly mistNac: pulumi.Output<outputs.device.SwitchMistNac | undefined>;
/**
* Device Model
*/
readonly model: pulumi.Output<string>;
readonly name: pulumi.Output<string>;
/**
* Property key is network name
*/
readonly networks: pulumi.Output<{
[key: string]: outputs.device.SwitchNetworks;
} | undefined>;
readonly notes: pulumi.Output<string | undefined>;
/**
* List of NTP servers specific to this device. By default, those in Site Settings will be used
*/
readonly ntpServers: pulumi.Output<string[]>;
/**
* Switch OOB IP Config: - If HA configuration: key parameter will be nodeX (eg: node1) - If there are 2 routing engines,
* re1 mgmt IP has to be set separately (if desired): key parameter = `re1`
*/
readonly oobIpConfig: pulumi.Output<outputs.device.SwitchOobIpConfig | undefined>;
readonly orgId: pulumi.Output<string>;
/**
* Junos OSPF areas. Property key is the OSPF Area (Area should be a number (0-255) / IP address)
*/
readonly ospfAreas: pulumi.Output<{
[key: string]: outputs.device.SwitchOspfAreas;
} | undefined>;
readonly ospfConfig: pulumi.Output<outputs.device.SwitchOspfConfig | undefined>;
/**
* Property key is the network name. Defines the additional IP Addresses configured on the device.
*/
readonly otherIpConfigs: pulumi.Output<{
[key: string]: outputs.device.SwitchOtherIpConfigs;
} | undefined>;
/**
* Property key is the port name or range (e.g. "ge-0/0/0-10")
*/
readonly portConfig: pulumi.Output<{
[key: string]: outputs.device.SwitchPortConfig;
} | undefined>;
/**
* Property key is the port mirroring instance name. `portMirroring` can be added under device/site settings. It takes
* interface and ports as input for ingress, interface as input for egress and can take interface and port as output. A
* maximum 4 mirroring ports is allowed
*/
readonly portMirroring: pulumi.Output<{
[key: string]: outputs.device.SwitchPortMirroring;
} | undefined>;
/**
* Property key is the port usage name. Defines the profiles of port configuration configured on the switch
*/
readonly portUsages: pulumi.Output<{
[key: string]: outputs.device.SwitchPortUsages;
} | undefined>;
/**
* Junos Radius config
*/
readonly radiusConfig: pulumi.Output<outputs.device.SwitchRadiusConfig | undefined>;
readonly remoteSyslog: pulumi.Output<outputs.device.SwitchRemoteSyslog | undefined>;
readonly role: pulumi.Output<string | undefined>;
/**
* Used for OSPF / BGP / EVPN
*/
readonly routerId: pulumi.Output<string>;
/**
* Device Serial
*/
readonly serial: pulumi.Output<string>;
readonly siteId: pulumi.Output<string>;
readonly snmpConfig: pulumi.Output<outputs.device.SwitchSnmpConfig | undefined>;
readonly stpConfig: pulumi.Output<outputs.device.SwitchStpConfig | undefined>;
/**
* Switch settings
*/
readonly switchMgmt: pulumi.Output<outputs.device.SwitchSwitchMgmt | undefined>;
/**
* Device Type. enum: `switch`
*/
readonly type: pulumi.Output<string>;
/**
* Whether to use it for snmp / syslog / tacplus / radius
*/
readonly useRouterIdAsSourceIp: pulumi.Output<boolean>;
/**
* 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>;
/**
* Required for preprovisioned Virtual Chassis
*/
readonly virtualChassis: pulumi.Output<outputs.device.SwitchVirtualChassis | undefined>;
readonly vrfConfig: pulumi.Output<outputs.device.SwitchVrfConfig | undefined>;
/**
* Property key is the network name
*/
readonly vrfInstances: pulumi.Output<{
[key: string]: outputs.device.SwitchVrfInstances;
} | undefined>;
/**
* Junos VRRP config
*/
readonly vrrpConfig: pulumi.Output<outputs.device.SwitchVrrpConfig | undefined>;
/**
* X in pixel
*/
readonly x: pulumi.Output<number | undefined>;
/**
* Y in pixel
*/
readonly y: pulumi.Output<number | undefined>;
/**
* Create a Switch 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: SwitchArgs, opts?: pulumi.CustomResourceOptions);
}
/**
* Input properties used for looking up and filtering Switch resources.
*/
export interface SwitchState {
aclPolicies?: pulumi.Input<pulumi.Input<inputs.device.SwitchAclPolicy>[]>;
/**
* ACL Tags to identify traffic source or destination. Key name is the tag name
*/
aclTags?: pulumi.Input<{
[key: string]: pulumi.Input<inputs.device.SwitchAclTags>;
}>;
/**
* additional CLI commands to append to the generated Junos config. **Note**: no check is done
*/
additionalConfigCmds?: pulumi.Input<pulumi.Input<string>[]>;
deviceId?: pulumi.Input<string>;
dhcpSnooping?: pulumi.Input<inputs.device.SwitchDhcpSnooping>;
dhcpdConfig?: pulumi.Input<inputs.device.SwitchDhcpdConfig>;
/**
* This disables the default behavior of a cloud-ready switch/gateway being managed/configured by Mist. Setting this to
* `true` means you want to disable the default behavior and do not want the device to be Mist-managed.
*/
disableAutoConfig?: pulumi.Input<boolean>;
/**
* 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")
*/
extraRoutes?: pulumi.Input<{
[key: string]: pulumi.Input<inputs.device.SwitchExtraRoutes>;
}>;
/**
* Property key is the destination CIDR (e.g. "2a02:1234:420a:10c9::/64")
*/
extraRoutes6?: pulumi.Input<{
[key: string]: pulumi.Input<inputs.device.SwitchExtraRoutes6>;
}>;
image1Url?: pulumi.Input<string>;
image2Url?: pulumi.Input<string>;
image3Url?: pulumi.Input<string>;
/**
* Junos IP Config
*/
ipConfig?: pulumi.Input<inputs.device.SwitchIpConfig>;
/**
* Local port override, overriding the port configuration from `portConfig`. Property key is the port name or range (e.g.
* "ge-0/0/0-10")
*/
localPortConfig?: pulumi.Input<{
[key: string]: pulumi.Input<inputs.device.SwitchLocalPortConfig>;
}>;
/**
* Device MAC address
*/
mac?: pulumi.Input<string>;
/**
* An adopted switch/gateway will not be managed/configured by Mist by default. Setting this parameter to `true` enables
* the adopted switch/gateway to be managed/configured by Mist.
*/
managed?: pulumi.Input<boolean>;
/**
* Map where the device belongs to
*/
mapId?: pulumi.Input<string>;
/**
* Enable mistNac to use RadSec
*/
mistNac?: pulumi.Input<inputs.device.SwitchMistNac>;
/**
* Device Model
*/
model?: pulumi.Input<string>;
name?: pulumi.Input<string>;
/**
* Property key is network name
*/
networks?: pulumi.Input<{
[key: string]: pulumi.Input<inputs.device.SwitchNetworks>;
}>;
notes?: pulumi.Input<string>;
/**
* List of NTP servers specific to this device. By default, those in Site Settings will be used
*/
ntpServers?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Switch OOB IP Config: - If HA configuration: key parameter will be nodeX (eg: node1) - If there are 2 routing engines,
* re1 mgmt IP has to be set separately (if desired): key parameter = `re1`
*/
oobIpConfig?: pulumi.Input<inputs.device.SwitchOobIpConfig>;
orgId?: pulumi.Input<string>;
/**
* Junos OSPF areas. Property key is the OSPF Area (Area should be a number (0-255) / IP address)
*/
ospfAreas?: pulumi.Input<{
[key: string]: pulumi.Input<inputs.device.SwitchOspfAreas>;
}>;
ospfConfig?: pulumi.Input<inputs.device.SwitchOspfConfig>;
/**
* Property key is the network name. Defines the additional IP Addresses configured on the device.
*/
otherIpConfigs?: pulumi.Input<{
[key: string]: pulumi.Input<inputs.device.SwitchOtherIpConfigs>;
}>;
/**
* Property key is the port name or range (e.g. "ge-0/0/0-10")
*/
portConfig?: pulumi.Input<{
[key: string]: pulumi.Input<inputs.device.SwitchPortConfig>;
}>;
/**
* Property key is the port mirroring instance name. `portMirroring` can be added under device/site settings. It takes
* interface and ports as input for ingress, interface as input for egress and can take interface and port as output. A
* maximum 4 mirroring ports is allowed
*/
portMirroring?: pulumi.Input<{
[key: string]: pulumi.Input<inputs.device.SwitchPortMirroring>;
}>;
/**
* Property key is the port usage name. Defines the profiles of port configuration configured on the switch
*/
portUsages?: pulumi.Input<{
[key: string]: pulumi.Input<inputs.device.SwitchPortUsages>;
}>;
/**
* Junos Radius config
*/
radiusConfig?: pulumi.Input<inputs.device.SwitchRadiusConfig>;
remoteSyslog?: pulumi.Input<inputs.device.SwitchRemoteSyslog>;
role?: pulumi.Input<string>;
/**
* Used for OSPF / BGP / EVPN
*/
routerId?: pulumi.Input<string>;
/**
* Device Serial
*/
serial?: pulumi.Input<string>;
siteId?: pulumi.Input<string>;
snmpConfig?: pulumi.Input<inputs.device.SwitchSnmpConfig>;
stpConfig?: pulumi.Input<inputs.device.SwitchStpConfig>;
/**
* Switch settings
*/
switchMgmt?: pulumi.Input<inputs.device.SwitchSwitchMgmt>;
/**
* Device Type. enum: `switch`
*/
type?: pulumi.Input<string>;
/**
* Whether to use it for snmp / syslog / tacplus / radius
*/
useRouterIdAsSourceIp?: pulumi.Input<boolean>;
/**
* 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>;
}>;
/**
* Required for preprovisioned Virtual Chassis
*/
virtualChassis?: pulumi.Input<inputs.device.SwitchVirtualChassis>;
vrfConfig?: pulumi.Input<inputs.device.SwitchVrfConfig>;
/**
* Property key is the network name
*/
vrfInstances?: pulumi.Input<{
[key: string]: pulumi.Input<inputs.device.SwitchVrfInstances>;
}>;
/**
* Junos VRRP config
*/
vrrpConfig?: pulumi.Input<inputs.device.SwitchVrrpConfig>;
/**
* X in pixel
*/
x?: pulumi.Input<number>;
/**
* Y in pixel
*/
y?: pulumi.Input<number>;
}
/**
* The set of arguments for constructing a Switch resource.
*/
export interface SwitchArgs {
aclPolicies?: pulumi.Input<pulumi.Input<inputs.device.SwitchAclPolicy>[]>;
/**
* ACL Tags to identify traffic source or destination. Key name is the tag name
*/
aclTags?: pulumi.Input<{
[key: string]: pulumi.Input<inputs.device.SwitchAclTags>;
}>;
/**
* additional CLI commands to append to the generated Junos config. **Note**: no check is done
*/
additionalConfigCmds?: pulumi.Input<pulumi.Input<string>[]>;
deviceId: pulumi.Input<string>;
dhcpSnooping?: pulumi.Input<inputs.device.SwitchDhcpSnooping>;
dhcpdConfig?: pulumi.Input<inputs.device.SwitchDhcpdConfig>;
/**
* This disables the default behavior of a cloud-ready switch/gateway being managed/configured by Mist. Setting this to
* `true` means you want to disable the default behavior and do not want the device to be Mist-managed.
*/
disableAutoConfig?: pulumi.Input<boolean>;
/**
* 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")
*/
extraRoutes?: pulumi.Input<{
[key: string]: pulumi.Input<inputs.device.SwitchExtraRoutes>;
}>;
/**
* Property key is the destination CIDR (e.g. "2a02:1234:420a:10c9::/64")
*/
extraRoutes6?: pulumi.Input<{
[key: string]: pulumi.Input<inputs.device.SwitchExtraRoutes6>;
}>;
/**
* Junos IP Config
*/
ipConfig?: pulumi.Input<inputs.device.SwitchIpConfig>;
/**
* Local port override, overriding the port configuration from `portConfig`. Property key is the port name or range (e.g.
* "ge-0/0/0-10")
*/
localPortConfig?: pulumi.Input<{
[key: string]: pulumi.Input<inputs.device.SwitchLocalPortConfig>;
}>;
/**
* An adopted switch/gateway will not be managed/configured by Mist by default. Setting this parameter to `true` enables
* the adopted switch/gateway to be managed/configured by Mist.
*/
managed?: pulumi.Input<boolean>;
/**
* Map where the device belongs to
*/
mapId?: pulumi.Input<string>;
/**
* Enable mistNac to use RadSec
*/
mistNac?: pulumi.Input<inputs.device.SwitchMistNac>;
name?: pulumi.Input<string>;
/**
* Property key is network name
*/
networks?: pulumi.Input<{
[key: string]: pulumi.Input<inputs.device.SwitchNetworks>;
}>;
notes?: pulumi.Input<string>;
/**
* List of NTP servers specific to this device. By default, those in Site Settings will be used
*/
ntpServers?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Switch OOB IP Config: - If HA configuration: key parameter will be nodeX (eg: node1) - If there are 2 routing engines,
* re1 mgmt IP has to be set separately (if desired): key parameter = `re1`
*/
oobIpConfig?: pulumi.Input<inputs.device.SwitchOobIpConfig>;
/**
* Junos OSPF areas. Property key is the OSPF Area (Area should be a number (0-255) / IP address)
*/
ospfAreas?: pulumi.Input<{
[key: string]: pulumi.Input<inputs.device.SwitchOspfAreas>;
}>;
ospfConfig?: pulumi.Input<inputs.device.SwitchOspfConfig>;
/**
* Property key is the network name. Defines the additional IP Addresses configured on the device.
*/
otherIpConfigs?: pulumi.Input<{
[key: string]: pulumi.Input<inputs.device.SwitchOtherIpConfigs>;
}>;
/**
* Property key is the port name or range (e.g. "ge-0/0/0-10")
*/
portConfig?: pulumi.Input<{
[key: string]: pulumi.Input<inputs.device.SwitchPortConfig>;
}>;
/**
* Property key is the port mirroring instance name. `portMirroring` can be added under device/site settings. It takes
* interface and ports as input for ingress, interface as input for egress and can take interface and port as output. A
* maximum 4 mirroring ports is allowed
*/
portMirroring?: pulumi.Input<{
[key: string]: pulumi.Input<inputs.device.SwitchPortMirroring>;
}>;
/**
* Property key is the port usage name. Defines the profiles of port configuration configured on the switch
*/
portUsages?: pulumi.Input<{
[key: string]: pulumi.Input<inputs.device.SwitchPortUsages>;
}>;
/**
* Junos Radius config
*/
radiusConfig?: pulumi.Input<inputs.device.SwitchRadiusConfig>;
remoteSyslog?: pulumi.Input<inputs.device.SwitchRemoteSyslog>;
role?: pulumi.Input<string>;
/**
* Used for OSPF / BGP / EVPN
*/
routerId?: pulumi.Input<string>;
siteId: pulumi.Input<string>;
snmpConfig?: pulumi.Input<inputs.device.SwitchSnmpConfig>;
stpConfig?: pulumi.Input<inputs.device.SwitchStpConfig>;
/**
* Switch settings
*/
switchMgmt?: pulumi.Input<inputs.device.SwitchSwitchMgmt>;
/**
* Whether to use it for snmp / syslog / tacplus / radius
*/
useRouterIdAsSourceIp?: pulumi.Input<boolean>;
/**
* 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>;
}>;
/**
* Required for preprovisioned Virtual Chassis
*/
virtualChassis?: pulumi.Input<inputs.device.SwitchVirtualChassis>;
vrfConfig?: pulumi.Input<inputs.device.SwitchVrfConfig>;
/**
* Property key is the network name
*/
vrfInstances?: pulumi.Input<{
[key: string]: pulumi.Input<inputs.device.SwitchVrfInstances>;
}>;
/**
* Junos VRRP config
*/
vrrpConfig?: pulumi.Input<inputs.device.SwitchVrrpConfig>;
/**
* X in pixel
*/
x?: pulumi.Input<number>;
/**
* Y in pixel
*/
y?: pulumi.Input<number>;
}