UNPKG

@pulumi/juniper-mist

Version:

A Pulumi package for creating and managing Juniper Mist resources.

1,567 lines 730 kB
import * as outputs from "../types/output"; export interface GetConstAlarmsConstAlarm { /** * Description of the alarm type */ display: string; /** * Group to which the alarm belongs */ group: string; /** * Key name of the alarm type */ key: string; /** * Severity of the alarm */ severity: string; } export interface GetConstAppCategoriesConstAppCategory { /** * Description of the app category */ display: string; filters: outputs.GetConstAppCategoriesConstAppCategoryFilters; /** * List of other App Categories contained by this one */ includes: string[]; /** * Key name of the app category */ key: string; } export interface GetConstAppCategoriesConstAppCategoryFilters { srxes: string[]; ssrs: string[]; } export interface GetConstAppSubCategoriesConstAppSubCategory { /** * Description of the app subcategory */ display: string; /** * Key name of the app subcategory */ key: string; /** * Type of traffic (QoS) of the app subcategory */ trafficType: string; } export interface GetConstApplicationsConstApplication { appId: boolean; appImageUrl: string; appProbe: boolean; category: string; group: string; key: string; name: string; signatureBased: boolean; ssrAppId: boolean; } export interface GetConstCountriesConstCountry { /** * Country code, in two-character */ alpha2: string; certified: boolean; name: string; /** * Country code, ISO 3166-1 numeric */ numeric: number; } export interface GetConstTrafficTypesConstTrafficType { display: string; dscp: number; failoverPolicy: string; maxJitter: number; maxLatency: number; maxLoss: number; name: string; trafficClass: string; } export interface GetConstWebhooksConstWebhook { /** * supports single event per message results */ allowsSingleEventPerMessage: boolean; /** * Can be used in org webhooks, optional */ forOrg: boolean; /** * Supports webhook delivery results /api/v1/:scope/:scope*id/webhooks/:webhook*id/events/search */ hasDeliveryResults: boolean; /** * Internal topic (not selectable in site/org webhooks) */ internal: boolean; /** * Webhook topic name */ key: string; } export interface GetSitesSite { /** * full address of the site */ address: string; /** * Alarm Template ID, this takes precedence over the Org-level alarmtemplate_id */ alarmtemplateId: string; /** * AP Template ID, used by APs */ aptemplateId: string; /** * country code for the site (for AP config generation), in two-character */ countryCode: string; createdTime: number; /** * Gateway Template ID, used by gateways */ gatewaytemplateId: string; id: string; latlng: outputs.GetSitesSiteLatlng; modifiedTime: number; name: string; /** * Network Template ID, this takes precedence over Site Settings */ networktemplateId: string; /** * optional, any notes about the site */ notes: string; orgId: string; /** * RF Template ID, this takes precedence over Site Settings */ rftemplateId: string; /** * SecPolicy ID */ secpolicyId: string; /** * sitegroups this site belongs to */ sitegroupIds: string[]; /** * Site Template ID */ sitetemplateId: string; /** * Timezone the site is at */ timezone: string; } export interface GetSitesSiteLatlng { lat: number; lng: number; } export interface UpgradeDeviceAutoUpgradeStat { lastcheck: number; } export interface UpgradeDeviceFwupdate { progress: number; /** * enum: `inprogress`, `failed`, `upgraded`, `success`, `scheduled`, `error` */ status: string; statusId: number; /** * Epoch (seconds) */ timestamp: number; willRetry: boolean; } export declare namespace device { interface ApAeroscout { /** * Whether to enable aeroscout config */ enabled: boolean; /** * Required if enabled, aeroscout server host */ host: string; /** * Whether to enable the feature to allow wireless clients data received and sent to AES server for location calculation */ locateConnected: boolean; port: number; } interface ApAirista { /** * Whether to enable Airista config */ enabled?: boolean; /** * Required if enabled, Airista server host */ host?: string; port?: number; } interface ApBleConfig { /** * Whether Mist beacons is enabled */ beaconEnabled: boolean; /** * Required if `beaconRateMode`==`custom`, 1-10, in number-beacons-per-second */ beaconRate?: number; /** * enum: `custom`, `default` */ beaconRateMode?: string; /** * List of AP BLE location beam numbers (1-8) which should be disabled at the AP and not transmit location information (where beam 1 is oriented at the top the AP, growing counter-clock-wise, with 9 being the omni BLE beam) */ beamDisableds?: number[]; /** * Can be enabled if `beaconEnabled`==`true`, whether to send custom packet */ customBlePacketEnabled?: boolean; /** * The custom frame to be sent out in this beacon. The frame must be a hexstring */ customBlePacketFrame?: string; /** * Frequency (msec) of data emitted by custom ble beacon */ customBlePacketFreqMsec?: number; /** * Advertised TX Power, -100 to 20 (dBm), omit this attribute to use default */ eddystoneUidAdvPower?: number; eddystoneUidBeams?: string; /** * Only if `beaconEnabled`==`false`, Whether Eddystone-UID beacon is enabled */ eddystoneUidEnabled?: boolean; /** * Frequency (msec) of data emit by Eddystone-UID beacon */ eddystoneUidFreqMsec?: number; /** * Eddystone-UID instance for the device */ eddystoneUidInstance?: string; /** * Eddystone-UID namespace */ eddystoneUidNamespace?: string; /** * Advertised TX Power, -100 to 20 (dBm), omit this attribute to use default */ eddystoneUrlAdvPower?: number; eddystoneUrlBeams?: string; /** * Only if `beaconEnabled`==`false`, Whether Eddystone-URL beacon is enabled */ eddystoneUrlEnabled?: boolean; /** * Frequency (msec) of data emit by Eddystone-UID beacon */ eddystoneUrlFreqMsec?: number; /** * URL pointed by Eddystone-URL beacon */ eddystoneUrlUrl?: string; /** * Advertised TX Power, -100 to 20 (dBm), omit this attribute to use default */ ibeaconAdvPower?: number; ibeaconBeams?: string; /** * Can be enabled if `beaconEnabled`==`true`, whether to send iBeacon */ ibeaconEnabled?: boolean; /** * Frequency (msec) of data emit for iBeacon */ ibeaconFreqMsec?: number; /** * Major number for iBeacon */ ibeaconMajor?: number; /** * Minor number for iBeacon */ ibeaconMinor?: number; /** * Optional, if not specified, the same UUID as the beacon will be used */ ibeaconUuid?: string; /** * Required if `powerMode`==`custom`; else use `powerMode` as default */ power?: number; /** * enum: `custom`, `default` */ powerMode?: string; } interface ApCentrak { enabled: boolean; } interface ApClientBridge { auth?: outputs.device.ApClientBridgeAuth; /** * When acted as client bridge: * * only 5G radio can be used * * will not serve as AP on any radios */ enabled: boolean; ssid?: string; } interface ApClientBridgeAuth { psk?: string; /** * wpa2-AES/CCMPp is assumed when `type`==`psk`. enum: `open`, `psk` */ type: string; } interface ApEslConfig { /** * Only if `type`==`imagotag` or `type`==`native` */ cacert?: string; /** * Only if `type`==`imagotag` or `type`==`native` */ channel?: number; /** * usb_config is ignored if eslConfig enabled */ enabled: boolean; /** * Only if `type`==`imagotag` or `type`==`native` */ host: string; /** * Only if `type`==`imagotag` or `type`==`native` */ port?: number; /** * note: bleConfig will be ignored if eslConfig is enabled and with native mode. enum: `hanshow`, `imagotag`, `native`, `solum` */ type: string; /** * Only if `type`==`imagotag` or `type`==`native` */ verifyCert?: boolean; /** * Only if `type`==`solum` or `type`==`hanshow` */ vlanId: number; } interface ApIpConfig { /** * If `type`==`static` */ dns?: string[]; /** * Required if `type`==`static` */ dnsSuffixes?: string[]; /** * Required if `type`==`static` */ gateway?: string; gateway6?: string; /** * Required if `type`==`static` */ ip?: string; ip6?: string; mtu: number; /** * Required if `type`==`static` */ netmask?: string; netmask6?: string; /** * enum: `dhcp`, `static` */ type: string; /** * enum: `autoconf`, `dhcp`, `disabled`, `static` */ type6?: string; /** * Management VLAN id, default is 1 (untagged) */ vlanId?: number; } interface ApLacpConfig { enabled: boolean; } interface ApLed { brightness: number; enabled: boolean; } interface ApMesh { /** * List of bands that the mesh should apply to. For relay, the first viable one will be picked. For relay, the first viable one will be picked. enum: `24`, `5`, `6` */ bands?: string[]; /** * Whether mesh is enabled on this AP */ enabled: boolean; /** * Mesh group, base AP(s) will only allow remote AP(s) in the same mesh group to join, 1-9, optional */ group?: number; /** * enum: `base`, `remote` */ role?: string; } interface ApPortConfig { disabled: boolean; /** * Optional dynamic vlan */ dynamicVlan?: outputs.device.ApPortConfigDynamicVlan; enableMacAuth: boolean; /** * enum: * * `all`: local breakout, All VLANs * * `limited`: local breakout, only the VLANs configured in `portVlanId` and `vlanIds` * * `mxtunnel`: central breakout to an Org Mist Edge (requires `mxtunnelId`) * * `siteMxedge`: central breakout to a Site Mist Edge (requires `mxtunnelName`) * * `wxtunnel`': central breakout to an Org WxTunnel (requires `wxtunnelId`) */ forwarding: string; /** * When `true`, we'll do dot1x then mac_auth. enable this to prefer mac_auth */ macAuthPreferred: boolean; /** * if `enableMacAuth`==`true`, allows user to select an authentication protocol. enum: `eap-md5`, `eap-peap`, `pap` */ macAuthProtocol: string; mistNac?: outputs.device.ApPortConfigMistNac; /** * If `forwarding`==`mxtunnel`, vlanIds comes from mxtunnel */ mxTunnelId: string; /** * If `forwarding`==`siteMxedge`, vlanIds comes from siteMxedge (`mxtunnels` under site setting) */ mxtunnelName: string; /** * When doing port auth. enum: `dot1x`, `none` */ portAuth: string; /** * If `forwarding`==`limited` */ portVlanId?: number; /** * Junos Radius config */ radiusConfig?: outputs.device.ApPortConfigRadiusConfig; /** * RadSec settings */ radsec?: outputs.device.ApPortConfigRadsec; /** * Optional to specify the vlan id for a tunnel if forwarding is for `wxtunnel`, `mxtunnel` or `siteMxedge`. * * if vlanId is not specified then it will use first one in vlan_ids[] of the mxtunnel. * * if forwarding == site_mxedge, vlanIds comes from siteMxedge (`mxtunnels` under site setting) */ vlanId?: number; /** * If `forwarding`==`limited`, comma separated list of additional vlan ids allowed on this port */ vlanIds?: string; /** * If `forwarding`==`wxtunnel`, the port is bridged to the vlan of the session */ wxtunnelId: string; /** * If `forwarding`==`wxtunnel`, the port is bridged to the vlan of the session */ wxtunnelRemoteId: string; } interface ApPortConfigDynamicVlan { defaultVlanId?: number; enabled?: boolean; type?: string; vlans?: { [key: string]: string; }; } interface ApPortConfigMistNac { /** * How frequently should interim accounting be reported, 60-65535. default is 0 (use one specified in Access-Accept request from Server). Very frequent messages can affect the performance of the radius server, 600 and up is recommended when enabled. */ acctInterimInterval?: number; /** * Radius auth session retries. Following fast timers are set if `fastDot1xTimers` knob is enabled. "retries" are set to value of `authServersTimeout`. "max-requests" is also set when setting `authServersRetries` is set to default value to 3. */ authServersRetries?: number; /** * Radius auth session timeout. Following fast timers are set if `fastDot1xTimers` knob is enabled. "quite-period" and "transmit-period" are set to half the value of `authServersTimeout`. "supplicant-timeout" is also set when setting `authServersTimeout` is set to default value of 10. */ authServersTimeout?: number; /** * Allows a RADIUS server to dynamically modify the authorization status of a user session. */ coaEnabled?: boolean; /** * the communication port used for “Change of Authorization” (CoA) messages */ coaPort?: number; /** * When enabled: * * `authServers` is ignored * * `acctServers` is ignored * * `auth_servers_*` are ignored * * `coaServers` is ignored * * `radsec` is ignored * * `coaEnabled` is assumed */ enabled: boolean; /** * If set to true, sets default fast-timers with values calculated from `authServersTimeout` and `authServerRetries`. */ fastDot1xTimers?: boolean; /** * Which network the mist nac server resides in */ network?: string; /** * In case there is a static IP for this network, we can specify it using source ip */ sourceIp?: string; } interface ApPortConfigRadiusConfig { /** * How frequently should interim accounting be reported, 60-65535. default is 0 (use one specified in Access-Accept request from RADIUS Server). Very frequent messages can affect the performance of the radius server, 600 and up is recommended when enabled */ acctInterimInterval: number; acctServers?: outputs.device.ApPortConfigRadiusConfigAcctServer[]; authServers?: outputs.device.ApPortConfigRadiusConfigAuthServer[]; /** * radius auth session retries */ authServersRetries: number; /** * radius auth session timeout */ authServersTimeout: number; coaEnabled: boolean; coaPort: number; /** * use `network`or `sourceIp`, which network the RADIUS server resides, if there's static IP for this network, we'd use it as source-ip */ network?: string; /** * use `network`or `sourceIp` */ sourceIp?: string; } interface ApPortConfigRadiusConfigAcctServer { /** * IP/ hostname of RADIUS server */ host: string; keywrapEnabled?: boolean; /** * enum: `ascii`, `hex` */ keywrapFormat?: string; keywrapKek?: string; keywrapMack?: string; port?: string; /** * Secret of RADIUS server */ secret: string; } interface ApPortConfigRadiusConfigAuthServer { /** * IP/ hostname of RADIUS server */ host: string; keywrapEnabled?: boolean; /** * enum: `ascii`, `hex` */ keywrapFormat?: string; keywrapKek?: string; keywrapMack?: string; port?: string; /** * Whether to require Message-Authenticator in requests */ requireMessageAuthenticator: boolean; /** * Secret of RADIUS server */ secret: string; } interface ApPortConfigRadsec { coaEnabled: boolean; enabled?: boolean; idleTimeout?: string; /** * To use Org mxedges when this WLAN does not use mxtunnel, specify their mxcluster_ids. Org mxedge(s) identified by mxcluster_ids */ mxclusterIds?: string[]; /** * Default is site.mxedge.radsec.proxy_hosts which must be a superset of all `wlans[*].radsec.proxy_hosts`. When `radsec.proxy_hosts` are not used, tunnel peers (org or site mxedges) are used irrespective of `useSiteMxedge` */ proxyHosts?: string[]; /** * Name of the server to verify (against the cacerts in Org Setting). Only if not Mist Edge. */ serverName?: string; /** * List of RadSec Servers. Only if not Mist Edge. */ servers?: outputs.device.ApPortConfigRadsecServer[]; /** * use mxedge(s) as RadSec Proxy */ useMxedge?: boolean; /** * To use Site mxedges when this WLAN does not use mxtunnel */ useSiteMxedge: boolean; } interface ApPortConfigRadsecServer { host?: string; port?: number; } interface ApPwrConfig { /** * Additional power to request during negotiating with PSE over PoE, in mW */ base: number; /** * Whether to enable power out to peripheral, meanwhile will reduce power to Wi-Fi (only for AP45 at power mode) */ preferUsbOverWifi: boolean; } interface ApRadioConfig { allowRrmDisable?: boolean; /** * Antenna gain for 2.4G - for models with external antenna only */ antGain24?: number; /** * Antenna gain for 5G - for models with external antenna only */ antGain5?: number; /** * Antenna gain for 6G - for models with external antenna only */ antGain6?: number; /** * enum: `1x1`, `2x2`, `3x3`, `4x4`, `default` */ antennaMode?: string; /** * Antenna Mode for AP which supports selectable antennas. enum: `""` (default), `external`, `internal` */ antennaSelect?: string; /** * Radio Band AP settings */ band24?: outputs.device.ApRadioConfigBand24; /** * enum: `24`, `5`, `6`, `auto` */ band24Usage?: string; /** * Radio Band AP settings */ band5?: outputs.device.ApRadioConfigBand5; /** * Radio Band AP settings */ band5On24Radio?: outputs.device.ApRadioConfigBand5On24Radio; /** * Radio Band AP settings */ band6?: outputs.device.ApRadioConfigBand6; /** * Let RRM control everything, only the `channels` and `antGain` will be honored (i.e. disabled/bandwidth/power/band_24_usage are all controlled by RRM) */ fullAutomaticRrm: boolean; /** * To make an outdoor operate indoor. For an outdoor-ap, some channels are disallowed by default, this allows the user to use it as an indoor-ap */ indoorUse?: boolean; /** * Enable RRM to manage all radio settings (ignores all bandXxx configs) */ rrmManaged?: boolean; /** * Whether scanning radio is enabled */ scanningEnabled?: boolean; } interface ApRadioConfigBand24 { allowRrmDisable: boolean; antGain: number; /** * enum: `1x1`, `2x2`, `3x3`, `4x4`, `default` */ antennaMode: string; /** * channel width for the 2.4GHz band. enum: `0`(disabled, response only), `20`, `40` */ bandwidth: number; /** * For Device. (primary) channel for the band, 0 means using the Site Setting */ channel: number; /** * For RFTemplates. List of channels, null or empty array means auto */ channels?: number[]; /** * Whether to disable the radio */ disabled: boolean; /** * TX power of the radio. For Devices, 0 means auto. -1 / -2 / -3 / …: treated as 0 / -1 / -2 / … */ power: number; /** * When power=0, max tx power to use, HW-specific values will be used if not set */ powerMax: number; /** * When power=0, min tx power to use, HW-specific values will be used if not set */ powerMin: number; /** * enum: `auto`, `long`, `short` */ preamble: string; } interface ApRadioConfigBand5 { allowRrmDisable: boolean; antGain: number; /** * enum: `narrow`, `medium`, `wide` */ antennaBeamPattern?: string; /** * enum: `1x1`, `2x2`, `3x3`, `4x4`, `default` */ antennaMode: string; /** * channel width for the 5GHz band. enum: `0`(disabled, response only), `20`, `40`, `80` */ bandwidth: number; /** * For Device. (primary) channel for the band, 0 means using the Site Setting */ channel: number; /** * For RFTemplates. List of channels, null or empty array means auto */ channels?: number[]; /** * Whether to disable the radio */ disabled: boolean; /** * TX power of the radio. For Devices, 0 means auto. -1 / -2 / -3 / …: treated as 0 / -1 / -2 / … */ power: number; /** * When power=0, max tx power to use, HW-specific values will be used if not set */ powerMax: number; /** * When power=0, min tx power to use, HW-specific values will be used if not set */ powerMin: number; /** * enum: `auto`, `long`, `short` */ preamble: string; } interface ApRadioConfigBand5On24Radio { allowRrmDisable: boolean; antGain: number; /** * enum: `narrow`, `medium`, `wide` */ antennaBeamPattern?: string; /** * enum: `1x1`, `2x2`, `3x3`, `4x4`, `default` */ antennaMode: string; /** * channel width for the 5GHz band. enum: `0`(disabled, response only), `20`, `40`, `80` */ bandwidth: number; /** * For Device. (primary) channel for the band, 0 means using the Site Setting */ channel: number; /** * For RFTemplates. List of channels, null or empty array means auto */ channels?: number[]; /** * Whether to disable the radio */ disabled: boolean; /** * TX power of the radio. For Devices, 0 means auto. -1 / -2 / -3 / …: treated as 0 / -1 / -2 / … */ power: number; /** * When power=0, max tx power to use, HW-specific values will be used if not set */ powerMax: number; /** * When power=0, min tx power to use, HW-specific values will be used if not set */ powerMin: number; /** * enum: `auto`, `long`, `short` */ preamble: string; } interface ApRadioConfigBand6 { allowRrmDisable: boolean; antGain: number; /** * enum: `narrow`, `medium`, `wide` */ antennaBeamPattern?: string; /** * enum: `1x1`, `2x2`, `3x3`, `4x4`, `default` */ antennaMode: string; /** * channel width for the 6GHz band. enum: `0`(disabled, response only), `20`, `40`, `80`, `160` */ bandwidth: number; /** * For Device. (primary) channel for the band, 0 means using the Site Setting */ channel: number; /** * For RFTemplates. List of channels, null or empty array means auto */ channels?: number[]; /** * Whether to disable the radio */ disabled: boolean; /** * TX power of the radio. For Devices, 0 means auto. -1 / -2 / -3 / …: treated as 0 / -1 / -2 / … */ power: number; /** * When power=0, max tx power to use, HW-specific values will be used if not set */ powerMax: number; /** * When power=0, min tx power to use, HW-specific values will be used if not set */ powerMin: number; /** * enum: `auto`, `long`, `short` */ preamble: string; /** * For 6GHz Only, standard-power operation, AFC (Automatic Frequency Coordination) will be performed, and we'll fall back to Low Power Indoor if AFC failed */ standardPower: boolean; } interface ApUplinkPortConfig { /** * Whether to do 802.1x against uplink switch. When enabled, AP cert will be used to do EAP-TLS and the Org's CA Cert has to be provisioned at the switch */ dot1x: boolean; /** * By default, WLANs are disabled when uplink is down. In some scenario, like SiteSurvey, one would want the AP to keep sending beacons. */ keepWlansUpIfDown?: boolean; } interface ApUsbConfig { /** * Only if `type`==`imagotag` */ cacert: string; /** * Only if `type`==`imagotag`, channel selection, not needed by default, required for manual channel override only */ channel?: number; /** * Whether to enable any usb config */ enabled?: boolean; /** * Only if `type`==`imagotag` */ host: string; /** * Only if `type`==`imagotag` */ port?: number; /** * usb config type. enum: `hanshow`, `imagotag`, `solum` */ type?: string; /** * Only if `type`==`imagotag`, whether to turn on SSL verification */ verifyCert?: boolean; /** * Only if `type`==`solum` or `type`==`hanshow` */ vlanId?: number; } interface BaseLatlng { lat: number; lng: number; } interface GatewayBgpConfig { /** * Optional if `via`==`lan`, `via`==`tunnel` or `via`==`wan` */ authKey?: string; /** * Optional if `via`==`lan`, `via`==`tunnel` or `via`==`wan`, when bfdMultiplier is configured alone. Default: * * 1000 if `type`==`external` * * 350 `type`==`internal` */ bfdMinimumInterval?: number; /** * Optional if `via`==`lan`, `via`==`tunnel` or `via`==`wan`, when bfdMinimumIntervalIsConfigured alone */ bfdMultiplier?: number; /** * Optional if `via`==`lan`, `via`==`tunnel` or `via`==`wan`. BFD provides faster path failure detection and is enabled by default */ disableBfd?: boolean; export?: string; /** * Default export policies if no per-neighbor policies defined */ exportPolicy?: string; /** * Optional if `via`==`lan`, `via`==`tunnel` or `via`==`wan`. By default, either inet/net6 unicast depending on neighbor IP family (v4 or v6). For v6 neighbors, to exchange v4 nexthop, which allows dual-stack support, enable this */ extendedV4Nexthop?: boolean; /** * Optional if `via`==`lan`, `via`==`tunnel` or `via`==`wan`. `0` means disable */ gracefulRestartTime?: number; /** * Optional if `via`==`lan`, `via`==`tunnel` or `via`==`wan`. Default is 90. */ holdTime?: number; import?: string; /** * Optional if `via`==`lan`, `via`==`tunnel` or `via`==`wan`. Default import policies if no per-neighbor policies defined */ importPolicy?: string; /** * Required if `via`==`lan`, `via`==`tunnel` or `via`==`wan`. BGPLocal AS. Value must be in range 1-4294967295 or a variable (e.g. `{{as_variable}}`) */ localAs?: string; /** * Neighbor AS. If `type`==`internal`, must be equal to `localAs`. Value must be in range 1-4294967295 or a variable (e.g. `{{as_variable}}`) */ neighborAs?: string; /** * Required if `via`==`lan`, `via`==`tunnel` or `via`==`wan`. If per-neighbor as is desired. Property key is the neighbor address */ neighbors?: { [key: string]: outputs.device.GatewayBgpConfigNeighbors; }; /** * Optional if `via`==`lan`. List of networks where we expect BGP neighbor to connect to/from */ networks?: string[]; /** * Optional if `via`==`lan`, `via`==`tunnel` or `via`==`wan`. If true, we will not advertise private ASNs (AS 64512-65534) to this neighbor */ noPrivateAs?: boolean; /** * Optional if `via`==`lan`, `via`==`tunnel` or `via`==`wan`. By default, we'll re-advertise all learned BGP routers toward overlay */ noReadvertiseToOverlay?: boolean; /** * Optional if `via`==`tunnel` */ tunnelName?: string; /** * Required if `via`==`lan`, `via`==`tunnel` or `via`==`wan`. enum: `external`, `internal` */ type?: string; /** * enum: `lan`, `tunnel`, `vpn`, `wan` */ via: string; /** * Optional if `via`==`vpn` */ vpnName?: string; /** * Optional if `via`==`wan` */ wanName?: string; } interface GatewayBgpConfigNeighbors { /** * If true, the BGP session to this neighbor will be administratively disabled/shutdown */ disabled: boolean; exportPolicy?: string; holdTime?: number; importPolicy?: string; /** * Assuming BGP neighbor is directly connected */ multihopTtl?: number; /** * Neighbor AS. Value must be in range 1-4294967295 or a variable (e.g. `{{as_variable}}`) */ neighborAs: string; } interface GatewayClusterNode { /** * Gateway MAC Address. Format is `[0-9a-f]{12}` (e.g. "5684dae9ac8b") */ mac: string; } interface GatewayDhcpdConfig { /** * Property key is the network name */ config?: { [key: string]: outputs.device.GatewayDhcpdConfigConfig; }; /** * If set to `false`, disable the DHCP server */ enabled?: boolean; } interface GatewayDhcpdConfigConfig { /** * If `type`==`local` or `type6`==`local` - optional, if not defined, system one will be used */ dnsServers?: string[]; /** * If `type`==`local` or `type6`==`local` - optional, if not defined, system one will be used * * @deprecated Configuring `dnsSuffix` is deprecated and will not be supported in the future, please configure Code 15 or Code 119 in Server `options` instead */ dnsSuffixes?: string[]; /** * If `type`==`local` or `type6`==`local`. Property key is the MAC Address. Format is `[0-9a-f]{12}` (e.g. "5684dae9ac8b") */ fixedBindings?: { [key: string]: outputs.device.GatewayDhcpdConfigConfigFixedBindings; }; /** * If `type`==`local` - optional, `ip` will be used if not provided */ gateway?: string; /** * If `type6`==`local` */ ip6End?: string; /** * If `type6`==`local` */ ip6Start?: string; /** * If `type`==`local` */ ipEnd?: string; /** * If `type`==`local` */ ipStart?: string; /** * In seconds, lease time has to be between 3600 [1hr] - 604800 [1 week], default is 86400 [1 day] */ leaseTime?: number; /** * If `type`==`local` or `type6`==`local`. Property key is the DHCP option number */ options?: { [key: string]: outputs.device.GatewayDhcpdConfigConfigOptions; }; /** * `serverIdOverride`==`true` means the device, when acts as DHCP relay and forwards DHCP responses from DHCP server to clients, * should overwrite the Sever Identifier option (i.e. DHCP option 54) in DHCP responses with its own IP address. */ serverIdOverride?: boolean; /** * If `type`==`relay` */ servers?: string[]; /** * If `type6`==`relay` */ serversv6s?: string[]; /** * enum: `local` (DHCP Server), `none`, `relay` (DHCP Relay) */ type?: string; /** * enum: `local` (DHCP Server), `none`, `relay` (DHCP Relay) */ type6?: string; /** * If `type`==`local` or `type6`==`local`. Property key is <enterprise number>:<sub option code>, with * * enterprise number: 1-65535 (https://www.iana.org/assignments/enterprise-numbers/enterprise-numbers) * * sub option code: 1-255, sub-option code */ vendorEncapsulated?: { [key: string]: outputs.device.GatewayDhcpdConfigConfigVendorEncapsulated; }; } interface GatewayDhcpdConfigConfigFixedBindings { ip?: string; ip6?: string; name?: string; } interface GatewayDhcpdConfigConfigOptions { /** * enum: `boolean`, `hex`, `int16`, `int32`, `ip`, `string`, `uint16`, `uint32` */ type?: string; value?: string; } interface GatewayDhcpdConfigConfigVendorEncapsulated { /** * enum: `boolean`, `hex`, `int16`, `int32`, `ip`, `string`, `uint16`, `uint32` */ type?: string; value?: string; } interface GatewayExtraRoutes { via: string; } interface GatewayExtraRoutes6 { via: string; } interface GatewayGatewayMgmt { /** * Rollback timer for commit confirmed */ configRevertTimer?: number; } interface GatewayIdpProfiles { /** * enum: `critical`, `standard`, `strict` */ baseProfile?: string; /** * Unique ID of the object instance in the Mist Organization */ id?: string; name?: string; orgId?: string; overwrites?: outputs.device.GatewayIdpProfilesOverwrite[]; } interface GatewayIdpProfilesOverwrite { /** * enum: * * alert (default) * * drop: silently dropping packets * * close: notify client/server to close connection */ action?: string; matching?: outputs.device.GatewayIdpProfilesOverwriteMatching; name?: string; } interface GatewayIdpProfilesOverwriteMatching { attackNames?: string[]; dstSubnets?: string[]; severities?: string[]; } interface GatewayIpConfigs { ip?: string; ip6?: string; netmask?: string; netmask6?: string; /** * Optional list of secondary IPs in CIDR format */ secondaryIps: string[]; /** * enum: `dhcp`, `static` */ type: string; /** * enum: `autoconf`, `dhcp`, `disabled`, `static` */ type6?: string; } interface GatewayNetwork { /** * Whether to disallow Mist Devices in the network */ disallowMistServices: boolean; gateway?: string; gateway6?: string; internalAccess?: outputs.device.GatewayNetworkInternalAccess; /** * Whether this network has direct internet access */ internetAccess?: outputs.device.GatewayNetworkInternetAccess; /** * Whether to allow clients in the network to talk to each other */ isolation?: boolean; /** * Whether to enable multicast support (only PIM-sparse mode is supported) */ multicast?: outputs.device.GatewayNetworkMulticast; name: string; /** * For a Network (usually LAN), it can be routable to other networks (e.g. OSPF) */ routedForNetworks?: string[]; subnet: string; subnet6?: string; /** * Property key must be the user/tenant name (i.e. "printer-1") or a Variable (i.e. "{{myvar}}") */ tenants?: { [key: string]: outputs.device.GatewayNetworkTenants; }; vlanId?: string; /** * Property key is the VPN name. Whether this network can be accessed from vpn */ vpnAccess?: { [key: string]: outputs.device.GatewayNetworkVpnAccess; }; } interface GatewayNetworkInternalAccess { enabled?: boolean; } interface GatewayNetworkInternetAccess { createSimpleServicePolicy: boolean; /** * Property key can be an External IP (i.e. "63.16.0.3"), an External IP:Port (i.e. "63.16.0.3:443"), an External Port (i.e. ":443"), an External CIDR (i.e. "63.16.0.0/30"), an External CIDR:Port (i.e. "63.16.0.0/30:443") or a Variable (i.e. "{{myvar}}"). At least one of the `internalIp` or `port` must be defined */ destinationNat?: { [key: string]: outputs.device.GatewayNetworkInternetAccessDestinationNat; }; enabled?: boolean; /** * By default, all access is allowed, to only allow certain traffic, make `restricted`=`true` and define service_policies */ restricted: boolean; /** * Property key may be an External IP Address (i.e. "63.16.0.3"), a CIDR (i.e. "63.16.0.12/20") or a Variable (i.e. "{{myvar}}") */ staticNat?: { [key: string]: outputs.device.GatewayNetworkInternetAccessStaticNat; }; } interface GatewayNetworkInternetAccessDestinationNat { /** * The Destination NAT destination IP Address. Must be an IP (i.e. "192.168.70.30") or a Variable (i.e. "{{myvar}}") */ internalIp?: string; name?: string; /** * The Destination NAT destination IP Address. Must be a Port (i.e. "443") or a Variable (i.e. "{{myvar}}") */ port?: string; /** * SRX Only. If not set, we configure the nat policies against all WAN ports for simplicity */ wanName?: string; } interface GatewayNetworkInternetAccessStaticNat { /** * The Static NAT destination IP Address. Must be an IP Address (i.e. "192.168.70.3") or a Variable (i.e. "{{myvar}}") */ internalIp: string; name: string; /** * SRX Only. If not set, we configure the nat policies against all WAN ports for simplicity. Can be a Variable (i.e. "{{myvar}}") */ wanName?: string; } interface GatewayNetworkMulticast { /** * If the network will only be the source of the multicast traffic, IGMP can be disabled */ disableIgmp: boolean; enabled: boolean; /** * Group address to RP (rendezvous point) mapping. Property Key is the CIDR (example "225.1.0.3/32") */ groups?: { [key: string]: outputs.device.GatewayNetworkMulticastGroups; }; } interface GatewayNetworkMulticastGroups { /** * RP (rendezvous point) IP Address */ rpIp?: string; } interface GatewayNetworkTenants { addresses?: string[]; } interface GatewayNetworkVpnAccess { /** * If `routed`==`true`, whether to advertise an aggregated subnet toward HUB this is useful when there are multiple networks on SPOKE's side */ advertisedSubnet?: string; /** * Whether to allow ping from vpn into this routed network */ allowPing?: boolean; /** * Property key can be an External IP (i.e. "63.16.0.3"), an External IP:Port (i.e. "63.16.0.3:443"), an External Port (i.e. ":443"), an External CIDR (i.e. "63.16.0.0/30"), an External CIDR:Port (i.e. "63.16.0.0/30:443") or a Variable (i.e. "{{myvar}}"). At least one of the `internalIp` or `port` must be defined */ destinationNat?: { [key: string]: outputs.device.GatewayNetworkVpnAccessDestinationNat; }; /** * If `routed`==`false` (usually at Spoke), but some hosts needs to be reachable from Hub, a subnet is required to create and advertise the route to Hub */ natPool?: string; /** * toward LAN-side BGP peers */ noReadvertiseToLanBgp: boolean; /** * toward LAN-side OSPF peers */ noReadvertiseToLanOspf: boolean; /** * toward overlay, how HUB should deal with routes it received from Spokes */ noReadvertiseToOverlay?: boolean; /** * By default, the routes are only readvertised toward the same vrf on spoke. To allow it to be leaked to other vrfs */ otherVrfs: string[]; /** * Whether this network is routable */ routed?: boolean; /** * If `routed`==`false` (usually at Spoke), but some hosts needs to be reachable from Hub */ sourceNat: outputs.device.GatewayNetworkVpnAccessSourceNat; /** * Property key may be an External IP Address (i.e. "63.16.0.3"), a CIDR (i.e. "63.16.0.12/20") or a Variable (i.e. "{{myvar}}") */ staticNat: { [key: string]: outputs.device.GatewayNetworkVpnAccessStaticNat; }; /** * toward overlay, how HUB should deal with routes it received from Spokes */ summarizedSubnet?: string; /** * toward LAN-side BGP peers */ summarizedSubnetToLanBgp?: string; /** * toward LAN-side OSPF peers */ summarizedSubnetToLanOspf?: string; } interface GatewayNetworkVpnAccessDestinationNat { /** * The Destination NAT destination IP Address. Must be an IP (i.e. "192.168.70.30") or a Variable (i.e. "{{myvar}}") */ internalIp?: string; name?: string; port?: string; } interface GatewayNetworkVpnAccessSourceNat { externalIp?: string; } interface GatewayNetworkVpnAccessStaticNat { /** * The Static NAT destination IP Address. Must be an IP Address (i.e. "192.168.70.3") or a Variable (i.e. "{{myvar}}") */ internalIp: string; name: string; } interface GatewayOobIpConfig { /** * If `type`==`static` */ gateway?: string; /** * If `type`==`static` */ ip?: string; /** * If `type`==`static` */ netmask?: string; /** * For HA Cluster, node1 can have different IP Config */ node1: outputs.device.GatewayOobIpConfigNode1; /** * enum: `dhcp`, `static` */ type: string; /** * If supported on the platform. If enabled, DNS will be using this routing-instance, too */ useMgmtVrf?: boolean; /** * For host-out traffic (NTP/TACPLUS/RADIUS/SYSLOG/SNMP), if alternative source network/ip is desired */ useMgmtVrfForHostOut?: boolean; vlanId?: string; } interface GatewayOobIpConfigNode1 { /** * If `type`==`static` */ gateway?: string; ip?: string; /** * Used only if `subnet` is not specified in `networks` */ netmask?: string; /** * enum: `dhcp`, `static` */ type: string; /** * If supported on the platform. If enabled, DNS will be using this routing-instance, too */ useMgmtVrf?: boolean; /** * Whether to use `mgmtJunos` for host-out traffic (NTP/TACPLUS/RADIUS/SYSLOG/SNMP), if alternative source network/ip is desired */ useMgmtVrfForHostOut?: boolean; vlanId?: string; } interface GatewayPathPreferences { paths?: outputs.device.GatewayPathPreferencesPath[]; /** * enum: `ecmp`, `ordered`, `weighted` */ strategy: string; } interface GatewayPathPreferencesPath { cost?: number; /** * For SSR Only. `true`, if this specific path is undesired */ disabled?: boolean; /** * Only if `type`==`local`, if a different gateway is desired */ gatewayIp?: string; /** * Only if `type`==`vpn`, if this vpn path can be used for internet */ internetAccess?: boolean; /** * Required when * * `type`==`vpn`: the name of the VPN Path to use * * `type`==`wan`: the name of the WAN interface to use */ name?: string; /** * Required when `type`==`local` */ networks?: string[]; /** * If `type`==`local`, if destination IP is to be replaced */ targetIps?: string[]; /** * enum: `local`, `tunnel`, `vpn`, `wan` */ type: string; /** * Optional if `type`==`vpn` */ wanName?: string; } interface GatewayPortConfig { /** * If `aggregated`==`true`. To disable LCP support for the AE interface */ aeDisableLacp?: boolean; /** * If `aggregated`==`true`. Users could force to use the designated AE name (must be an integer between 0 and 127) */ aeIdx?: string; /** * For SRX only, if `aggregated`==`true`.Sets the state of the interface as UP when the peer has limited LACP capability. Use case: When a device connected to this AE port is ZTPing for the first time, it will not have LACP configured on the other end. **Note:** Turning this on will enable force-up on one of the interfaces in the bundle only */ aeLacpForceUp?: boolean; aggregated?: boolean; /** * To generate port up/down alarm, set it to true */ critical?: boolean; /** * Interface Description. Can be a variable (i.e. "{{myvar}}") */ description?: string; disableAutoneg?: boolean; /** * Port admin up (true) / down (false) */ disabled: boolean; /** * if `wanType`==`dsl`. enum: `adsl`, `vdsl` */ dslType?: string; /** * If `wanType`==`dsl`, 16 bit int */ dslVci?: number; /** * If `wanType`==`dsl`, 8 bit int */ dslVpi?: number; /** * enum: `auto`, `full`, `half` */ duplex?: string; /** * Junos IP Config */ ipConfig?: outputs.device.GatewayPortConfigIpConfig; /** * If `wanType`==`lte` */ lteApn?: string; /** * if `wanType`==`lte`. enum: `chap`, `none`, `pap` */ lteAuth?: string; lteBackup?: boolean; /** * If `wanType`==`