@pulumi/juniper-mist
Version:
A Pulumi package for creating and managing Juniper Mist resources.
1,576 lines • 948 kB
TypeScript
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 {
/**
* Time when the device last checked for auto-upgrade, in epoch seconds
*/
lastcheck: number;
}
export interface UpgradeDeviceFwupdate {
/**
* Firmware update progress percentage, or null when unavailable
*/
progress: number;
/**
* Current firmware update status
*/
status: string;
/**
* Numeric firmware update status identifier
*/
statusId: number;
/**
* Time when the firmware update status was last updated
*/
timestamp: number;
/**
* Whether the firmware update process will retry after the current status
*/
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;
/**
* Optional if enabled, Aeroscout server port. Defaults to 1144
*/
port: number;
}
interface ApAirista {
/**
* Whether to enable Airista config
*/
enabled?: boolean;
/**
* Required if enabled, Airista server host
*/
host?: string;
/**
* Optional if enabled, Airista server port. Defaults to 1144
*/
port?: number;
}
interface ApBleConfig {
/**
* Whether Mist beacons is enabled
*/
beaconEnabled: boolean;
/**
* Required if `beaconRateMode`==`custom`, 1-10, in number-beacons-per-second
*/
beaconRate?: number;
/**
* Beacon rate mode for Mist BLE beacons; use custom to set beacon_rate
*/
beaconRateMode?: string;
/**
* AP BLE beam numbers disabled for location advertisements
*/
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;
/**
* BLE beams used to transmit Eddystone-UID advertisements, expressed as ranges such as `2-4,7`
*/
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 broadcast by the AP, as a 10-byte hex string
*/
eddystoneUidNamespace?: string;
/**
* Advertised TX Power, -100 to 20 (dBm), omit this attribute to use default
*/
eddystoneUrlAdvPower?: number;
/**
* BLE beams used to transmit Eddystone-URL advertisements, expressed as ranges such as `2-4,7`
*/
eddystoneUrlBeams?: string;
/**
* Only if `beaconEnabled`==`false`, Whether Eddystone-URL beacon is enabled
*/
eddystoneUrlEnabled?: boolean;
/**
* Frequency (msec) of data emitted by Eddystone-URL 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;
/**
* BLE beams used to transmit iBeacon advertisements, expressed as ranges such as `2-4,7`
*/
ibeaconBeams?: string;
/**
* Can be enabled if `beaconEnabled`==`true`, whether to send iBeacon
*/
ibeaconEnabled?: boolean;
/**
* Frequency (msec) of data emit for iBeacon
*/
ibeaconFreqMsec?: number;
/**
* iBeacon major value broadcast by the AP
*/
ibeaconMajor?: number;
/**
* iBeacon minor value broadcast by the AP
*/
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;
/**
* Transmit power mode for BLE beacons; use custom to set `power`
*/
powerMode?: string;
}
interface ApCentrak {
/**
* Whether to enable Centrak config
*/
enabled: boolean;
}
interface ApClientBridge {
/**
* Credentials and security mode used when the AP connects as a wireless client bridge
*/
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;
/**
* Uplink SSID used by the AP when client bridge mode is enabled
*/
ssid?: string;
}
interface ApClientBridgeAuth {
/**
* Pre-shared key used when `type`==`psk` for client bridge authentication
*/
psk?: string;
/**
* Authentication mode for the client bridge connection
*/
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;
/**
* ESL integration type to enable on the AP
*/
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 server IP addresses for AP management traffic
*/
dns?: string[];
/**
* If `type`==`static`. DNS search suffixes applied to AP management lookups
*/
dnsSuffixes?: string[];
/**
* Required if `type`==`static`. IPv4 default gateway for AP management traffic
*/
gateway?: string;
/**
* Required if `type6`==`static`. IPv6 default gateway for AP management traffic when static IPv6 addressing is used
*/
gateway6?: string;
/**
* Required if `type`==`static`. Static IPv4 address for the AP management interface
*/
ip?: string;
/**
* Required if `type6`==`static`. Static IPv6 address for the AP management interface
*/
ip6?: string;
/**
* Maximum transmission unit for AP management traffic
*/
mtu: number;
/**
* Required if `type`==`static`. IPv4 netmask for the AP management interface
*/
netmask?: string;
/**
* Required if `type6`==`static`. IPv6 prefix length for the AP management interface
*/
netmask6?: string;
/**
* IPv4 address assignment mode for AP management traffic
*/
type: string;
/**
* IPv6 address assignment mode for AP management traffic
*/
type6?: string;
/**
* Management VLAN ID, default is 1 (untagged)
*/
vlanId?: number;
}
interface ApLacpConfig {
/**
* Whether to enable LACP on supported AP Ethernet uplinks
*/
enabled: boolean;
}
interface ApLed {
/**
* Indicator LED brightness level from 0 to 255
*/
brightness: number;
/**
* Whether the AP indicator LED is enabled
*/
enabled: boolean;
}
interface ApMesh {
/**
* Radio bands allowed for AP mesh links
*/
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;
/**
* Mesh role for this AP, either base or remote
*/
role?: string;
/**
* Whether to use WPA3 on the 5 GHz band for mesh links
*/
useWpa3On5?: boolean;
}
interface ApMqttConfig {
/**
* MQTT broker hostname or IP address; required when `enabled` is `true`
*/
brokerHost?: string;
/**
* MQTT broker port; defaults to `1883` for `tcp` and `8883` for `ssl`
*/
brokerPort?: number;
/**
* MQTT broker transport protocol
*/
brokerProto?: string;
/**
* Whether to enable MQTT publishing
*/
enabled?: boolean;
/**
* Payload format for published messages
*/
format?: string;
/**
* Optional MQTT password; masked in GET responses
*/
password?: string;
/**
* Optional MQTT username
*/
username?: string;
}
interface ApPortConfig {
/**
* Whether this AP Ethernet port is disabled
*/
disabled: boolean;
/**
* RADIUS-assigned VLAN settings for AP port authentication
*/
dynamicVlan?: outputs.device.ApPortConfigDynamicVlan;
/**
* Whether MAC authentication is enabled on this AP port
*/
enableMacAuth: boolean;
/**
* Traffic forwarding mode for this AP Ethernet port
*/
forwarding: string;
/**
* When `true`, we'll do dot1x then mac_auth. enable this to prefer mac_auth
*/
macAuthPreferred: boolean;
/**
* Protocol used for MAC authentication when `enableMacAuth` is `true`
*/
macAuthProtocol: string;
/**
* Juniper Mist NAC settings used by AP port authentication
*/
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;
/**
* Authentication mode for this AP Ethernet port
*/
portAuth: string;
/**
* If `forwarding`==`limited`. VLAN ID allowed on this AP Ethernet port
*/
portVlanId?: number;
/**
* RADIUS authentication and accounting settings for this AP port
*/
radiusConfig?: outputs.device.ApPortConfigRadiusConfig;
/**
* TLS-secured RADIUS settings for this AP port
*/
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 {
/**
* Fallback VLAN ID used when RADIUS does not return a dynamic VLAN match
*/
defaultVlanId?: number;
/**
* Whether dynamic VLAN assignment is enabled for this AP port
*/
enabled?: boolean;
/**
* Mapping mode for interpreting dynamic VLAN attributes returned by RADIUS
*/
type?: string;
/**
* Mapping entries for RADIUS-assigned VLAN values on this AP port. For `type`==`airespace-interface-name`, the property key is the Airespace interface name returned by RADIUS (e.g. "guest"), and the value is the corresponding VLAN ID (e.g. 100). For `type`==`standard`, the property key is the VLAN ID number returned by RADIUS, and the value is ignored.
*/
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;
/**
* RADIUS accounting servers used by this Junos configuration
*/
acctServers?: outputs.device.ApPortConfigRadiusConfigAcctServer[];
/**
* RADIUS authentication servers used by this Junos configuration
*/
authServers?: outputs.device.ApPortConfigRadiusConfigAuthServer[];
/**
* Number of RADIUS authentication request retries before failover
*/
authServersRetries: number;
/**
* RADIUS authentication server timeout, in seconds
*/
authServersTimeout: number;
/**
* Whether RADIUS Change of Authorization (CoA) is enabled
*/
coaEnabled: boolean;
/**
* UDP port used for RADIUS Change of Authorization (CoA)
*/
coaPort: number;
/**
* Use `network` or `sourceIp`. Network where the RADIUS server resides; if the network has a static IP, Mist uses it as the source IP
*/
network?: string;
/**
* Use `network` or `sourceIp`. Explicit source IP address for RADIUS traffic
*/
sourceIp?: string;
}
interface ApPortConfigRadiusConfigAcctServer {
/**
* Address or hostname of the RADIUS accounting server
*/
host: string;
/**
* Whether RADIUS keywrap is enabled for messages sent to this accounting server
*/
keywrapEnabled?: boolean;
/**
* Encoding format for RADIUS keywrap KEK and MACK values
*/
keywrapFormat?: string;
/**
* RADIUS keywrap key encryption key (KEK)
*/
keywrapKek?: string;
/**
* RADIUS keywrap message authentication code key (MACK)
*/
keywrapMack?: string;
/**
* UDP port used by the RADIUS accounting server
*/
port?: string;
/**
* Shared secret used with this RADIUS accounting server
*/
secret: string;
}
interface ApPortConfigRadiusConfigAuthServer {
/**
* Address or hostname of the RADIUS authentication server
*/
host: string;
/**
* Whether RADIUS keywrap is enabled for messages sent to this authentication server
*/
keywrapEnabled?: boolean;
/**
* Encoding format for RADIUS keywrap KEK and MACK values
*/
keywrapFormat?: string;
/**
* RADIUS keywrap key encryption key (KEK)
*/
keywrapKek?: string;
/**
* RADIUS keywrap message authentication code key (MACK)
*/
keywrapMack?: string;
/**
* UDP port used by the RADIUS authentication server
*/
port?: string;
/**
* Whether to require Message-Authenticator in requests
*/
requireMessageAuthenticator: boolean;
/**
* Shared secret used with this RADIUS authentication server
*/
secret: string;
}
interface ApPortConfigRadsec {
/**
* Whether RADIUS Change of Authorization (CoA) is enabled for RadSec traffic
*/
coaEnabled: boolean;
/**
* Whether RadSec is enabled
*/
enabled?: boolean;
/**
* Idle timeout, in seconds, for RadSec connections
*/
idleTimeout?: string;
/**
* Mist Edge cluster IDs used as RadSec proxies when the WLAN does not use mxtunnel
*/
mxclusterIds?: string[];
/**
* RadSec proxy hostnames advertised to APs
*/
proxyHosts?: string[];
/**
* TLS server name to verify against the CA certificates in Org Setting. Only if not Mist Edge.
*/
serverName?: string;
/**
* External RadSec servers. Only if not Mist Edge.
*/
servers?: outputs.device.ApPortConfigRadsecServer[];
/**
* Whether to use organization Mist Edge instances as RadSec proxies
*/
useMxedge?: boolean;
/**
* Whether to use site Mist Edge instances when this WLAN does not use mxtunnel
*/
useSiteMxedge: boolean;
}
interface ApPortConfigRadsecServer {
/**
* Address or hostname of the RadSec server
*/
host?: string;
/**
* TCP port used by the RadSec server
*/
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 {
/**
* Whether RRM can be disabled for individual radio-band settings
*/
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;
/**
* Selected radio chain mode for AP models that support antenna mode control
*/
antennaMode?: string;
/**
* Internal or external antenna selection for AP models with selectable antennas
*/
antennaSelect?: string;
/**
* 2.4 GHz radio settings for this access point
*/
band24?: outputs.device.ApRadioConfigBand24;
/**
* Radio usage mode for the 2.4 GHz-capable radio
*/
band24Usage?: string;
/**
* 5 GHz radio settings for this access point
*/
band5?: outputs.device.ApRadioConfigBand5;
/**
* 5 GHz settings used when the 2.4 GHz radio operates in 5 GHz mode
*/
band5On24Radio?: outputs.device.ApRadioConfigBand5On24Radio;
/**
* 6 GHz radio settings for this access point
*/
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 {
/**
* Whether RRM may disable the 2.4 GHz radio when optimizing RF settings
*/
allowRrmDisable: boolean;
/**
* External antenna gain for the 2.4 GHz radio
*/
antGain: number;
/**
* Radio chain mode for the 2.4 GHz radio
*/
antennaMode: string;
/**
* Channel width configured for the 2.4 GHz radio
*/
bandwidth: number;
/**
* For Device. (primary) channel for the band, 0 means using the Site Setting
*/
channel: number;
/**
* Allowed channel list for the 2.4 GHz radio; null or an empty array uses automatic selection
*/
channels?: number[];
/**
* Whether to disable the radio
*/
disabled: boolean;
/**
* Radio Tx power, in dBm. Can be an integer 0-25 for static power configuration, or `null` or unset for auto power mode
*/
power?: number;
/**
* When power=null/unset, max tx power to use, HW-specific values will be used if not set
*/
powerMax?: number;
/**
* When power=null/unset, min tx power to use, HW-specific values will be used if not set
*/
powerMin?: number;
/**
* 802.11 preamble mode used by the 2.4 GHz radio
*/
preamble: string;
}
interface ApRadioConfigBand5 {
/**
* Whether RRM may disable the 5 GHz radio when optimizing RF settings
*/
allowRrmDisable: boolean;
/**
* External antenna gain for the 5 GHz radio
*/
antGain: number;
/**
* Beam pattern used by the 5 GHz radio antenna
*/
antennaBeamPattern?: string;
/**
* Radio chain mode for the 5 GHz radio
*/
antennaMode: string;
/**
* Channel width configured for the 5 GHz radio
*/
bandwidth: number;
/**
* For Device. (primary) channel for the band, 0 means using the Site Setting
*/
channel: number;
/**
* Allowed channel list for the 5 GHz radio; null or an empty array uses automatic selection
*/
channels?: number[];
/**
* Whether to disable the radio
*/
disabled: boolean;
/**
* Radio Tx power, in dBm. Can be an integer 0-25 for static power configuration, or `null` or unset for auto power mode
*/
power?: number;
/**
* When power=null/unset, max tx power to use, HW-specific values will be used if not set
*/
powerMax?: number;
/**
* When power=null/unset, min tx power to use, HW-specific values will be used if not set
*/
powerMin?: number;
/**
* 802.11 preamble mode used by the 5 GHz radio
*/
preamble: string;
}
interface ApRadioConfigBand5On24Radio {
/**
* Whether RRM may disable the 5 GHz radio when optimizing RF settings
*/
allowRrmDisable: boolean;
/**
* External antenna gain for the 5 GHz radio
*/
antGain: number;
/**
* Beam pattern used by the 5 GHz radio antenna
*/
antennaBeamPattern?: string;
/**
* Radio chain mode for the 5 GHz radio
*/
antennaMode: string;
/**
* Channel width configured for the 5 GHz radio
*/
bandwidth: number;
/**
* For Device. (primary) channel for the band, 0 means using the Site Setting
*/
channel: number;
/**
* Allowed channel list for the 5 GHz radio; null or an empty array uses automatic selection
*/
channels?: number[];
/**
* Whether to disable the radio
*/
disabled: boolean;
/**
* Radio Tx power, in dBm. Can be an integer 0-25 for static power configuration, or `null` or unset for auto power mode
*/
power?: number;
/**
* When power=null/unset, max tx power to use, HW-specific values will be used if not set
*/
powerMax?: number;
/**
* When power=null/unset, min tx power to use, HW-specific values will be used if not set
*/
powerMin?: number;
/**
* 802.11 preamble mode used by the 5 GHz radio
*/
preamble: string;
}
interface ApRadioConfigBand6 {
/**
* Whether RRM may disable the 6 GHz radio when optimizing RF settings
*/
allowRrmDisable: boolean;
/**
* External antenna gain for the 6 GHz radio
*/
antGain: number;
/**
* Beam pattern used by the 6 GHz radio antenna
*/
antennaBeamPattern?: string;
/**
* Radio chain mode for the 6 GHz radio
*/
antennaMode: string;
/**
* Channel width configured for the 6 GHz radio
*/
bandwidth: number;
/**
* For Device. (primary) channel for the band, 0 means using the Site Setting
*/
channel: number;
/**
* Allowed channel list for the 6 GHz radio; null or an empty array uses automatic selection
*/
channels?: number[];
/**
* Whether to disable the radio
*/
disabled: boolean;
/**
* Radio Tx power, in dBm. Can be an integer 0-25 for static power configuration, or `null` or unset for auto power mode
*/
power?: number;
/**
* When power=null/unset, max tx power to use, HW-specific values will be used if not set
*/
powerMax?: number;
/**
* When power=null/unset, min tx power to use, HW-specific values will be used if not set
*/
powerMin?: number;
/**
* 802.11 preamble mode used by the 6 GHz radio
*/
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`. CA certificate used to validate the Imagotag service certificate
*/
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`. Imagotag service host or IP address contacted by the AP
*/
host: string;
/**
* Only if `type`==`imagotag`. TCP port used to reach the Imagotag service
*/
port?: number;
/**
* USB integration type for this legacy AP USB configuration
*/
type?: string;
/**
* Only if `type`==`imagotag`, whether to turn on SSL verification
*/
verifyCert?: boolean;
/**
* Only if `type`==`solum` or `type`==`hanshow`
*/
vlanId?: number;
}
interface ApZigbeeConfig {
/**
* Join policy for new Zigbee devices on this AP
*/
allowJoin: string;
/**
* Zigbee channel (2.4 GHz). `0` means auto; valid fixed values are 11–26
*/
channel: number;
/**
* Whether to enable Zigbee on this AP
*/
enabled: boolean;
/**
* Extended PAN ID in hex string format; only applicable when `panId` is also specified
*/
extendedPanId?: string;
/**
* PAN ID in hex string format; if not specified, assigned automatically
*/
panId?: string;
}
interface BaseLatlng {
/**
* Geographic latitude in decimal degrees
*/
lat: number;
/**
* Geographic longitude in decimal degrees
*/
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;
/**
* Routing policy applied to routes exported by this BGP session
*/
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;
/**
* Routing policy applied to routes imported by this BGP session
*/
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`; networks where BGP neighbors can connect to or 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`; tunnel name used for this BGP session
*/
tunnelName?: string;
/**
* Required if `via`==`lan`, `via`==`tunnel` or `via`==`wan`; BGP session type, internal or external
*/
type?: string;
/**
* Transport used for this BGP session, such as LAN, tunnel, VPN, or WAN
*/
via: string;
/**
* Optional if `via`==`vpn`; VPN name used for this BGP session
*/
vpnName?: string;
/**
* Optional if `via`==`wan`; WAN interface name used for this BGP session
*/
wanName?: string;
}
interface GatewayBgpConfigNeighbors {
/**
* If true, the BGP session to this neighbor will be administratively disabled/shutdown
*/
disabled: boolean;
/**
* Export policy applied only to this BGP neighbor
*/
exportPolicy?: string;
/**
* BGP hold time for this neighbor, in seconds
*/
holdTime?: number;
/**
* Import policy applied only to this BGP neighbor
*/
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;
/**
* If `via`==`tunnel`, primary or secondary tunnel associated with this BGP neighbor
*/
tunnelVia: string;
}
interface GatewayClusterNode {
/**
* Gateway device 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`, DNS servers advertised to DHCP clients
*/
dnsServers?: string[];
/**
* If `type`==`local` or `type6`==`local`, DNS search suffixes advertised to DHCP clients
*
* @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`, fixed client bindings for local DHCP service
*/
fixedBindings?: {
[key: string]: outputs.device.GatewayDhcpdConfigConfigFixedBindings;
};
/**
* If `type`==`local` - optional, `ip` will be used if not provided
*/
gateway?: string;
/**
* If `type6`==`local`, ending IPv6 address for the DHCP lease pool
*/
ip6End?: string;
/**
* If `type6`==`local`, starting IPv6 address for the DHCP lease pool
*/
ip6Start?: string;
/**
* If `type`==`local`, ending IPv4 address for the DHCP lease pool
*/
ipEnd?: string;
/**
* If `type`==`local`, starting IPv4 address for the DHCP lease pool
*/
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`, custom DHCP options advertised to clients
*/
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`, upstream IPv4 DHCP servers
*/
servers?: string[];
/**
* If `type6`==`relay`, upstream IPv6 DHCP servers
*/
serversv6s?: string[];
/**
* IPv4 DHCP mode for this network
*/
type?: string;
/**
* IPv6 DHCP mode for this network
*/
type6?: string;
/**
* If `type`==`local` or `type6`==`local`, vendor-encapsulated DHCP options advertised to clients
*/
vendorEncapsulated?: {
[key: string]: outputs.device.GatewayDhcpdConfigConfigVendorEncapsulated;
};
}
interface GatewayDhcpdConfigConfigFixedBindings {
/**
* Reserved IPv4 address for this fixed DHCP binding
*/
ip?: string;
/**
* Reserved IPv6 address for this fixed DHCP binding
*/
ip6?: string;
/**
* Friendly name for this fixed DHCP binding
*/
name?: string;
}
interface GatewayDhcpdConfigConfigOptions {
/**
* Data type used to encode this DHCP option value
*/
type?: string;
/**
* Option value to send for this DHCP option
*/
value?: string;
}
interface GatewayDhcpdConfigConfigVendorEncapsulated {
/**
* Data type used to encode this vendor option value
*/
type?: string;
/**
* Option value to send for this vendor option
*/
value?: string;
}
interface GatewayExtraRoutes {
/**
* Next-hop IPv4 address for the gateway extra route
*/
via: string;
}
interface GatewayExtraRoutes6 {
/**
* Next-hop IPv6 address for the gateway extra route
*/
via: string;
}
interface GatewayGatewayMgmt {
/**
* SSR-only SSH public keys for administrative access
*/
adminSshkeys?: string[];
/**
* Application probing configuration for gateway monitoring
*/
appProbing?: outputs.device.GatewayGatewayMgmtAppProbing;
/**
* Consumes uplink bandwidth, requires WA license
*/
appUsage?: boolean;
/**
* Schedule for automatic security signature updates
*/
autoSignatureUpdate?: outputs.device.GatewayGatewayMgmtAutoSignatureUpdate;
/**
* Rollback timer for commit confirmed
*/
configRevertTimer?: number;
/**
* For SSR and SRX, disable console port
*/
disableConsole?: boolean;
/**
* For SSR and SRX, disable management interface
*/
disableOob?: boolean;
/**
* For SSR and SRX, disable usb interface
*/
disableUsb?: boolean;
/**
* Whether FIPS mode is enabled on the gateway
*/
fipsEnabled?: boolean;
/**
* IPv4 probe targets used for gateway connectivity checks
*/
probeHosts?: string[];
/**
* IPv6 probe targets used for gateway connectivity checks
*/
probeHostsv6s?: string[];
/**
* Control-plane protection settings for the gateway
*/
protectRe?: outputs.device.GatewayGatewayMgmtProtectRe;
/**
* SRX only. Root password for local gateway access
*/
rootPassword?: string;
/**
* IPv4 source address used for gateway security log traffic
*/
securityLogSourceAddress?: string;
/**
* Source interface used for gateway security log traffic
*/
securityLogSourceInterface?: string;
}
interface GatewayGatewayMgmtAppProbing {
/**
* Predefined application keys to probe
*/
apps?: string[];
/**
* User-defined application probe definitions
*/
customApps?: outputs.device.GatewayGatewayMgmtAppProbingCustomApp[];
/**
* Whether gateway application probing is enabled
*/
enabled?: boolean;
}
interface GatewayGatewayMgmtAppProbingCustomApp {
/**
* Required if `protocol`==`icmp`. IP address probed by the ICMP custom app
*/
address?: string;
/**
* Category label used for this custom application probe
*/
appType?: string;
/**
* If `protocol`==`http`. Hostnames or URLs probed by this custom app
*/
hostnames?: string[];
/**
* Stable key used to identify this custom application probe
*/
key?: string;
/**
* Display name for this custom application probe
*/
name?: string;
/**
* Gateway network used as the source context for this probe
*/
network?: string;
/**
* If `protocol`==`icmp`. ICMP packet size used by this custom app probe
*/
packetSize?: number;
/**
* Probe protocol used by this custom application definition
*/
protocol: string;
/**
* If `protocol`==`http`. HTTP URL or hostname probed by this custom app
*/
url?: string;
/**
* Gateway VRF used as the source context for this probe
*/
vrf?: string;
}
interface GatewayGatewayMgmtAutoSignatureUpdate {
/**
* Scheduled weekday for automatic signature updates
*/
dayOfWeek?: string;
/**
* Whether automatic security signature updates are enabled
*/
enable?: boolean;
/**
* Optional, Mist will decide the timing
*/
timeOfDay?: string;
}
interface GatewayGatewayMgmtProtectRe {
/**
* Built-in services explicitly allowed by the Protect RE policy
*/
allowedServices?: string[];
/**
* Additional ACL entries allowed by the Protect RE policy
*/
customs?: outputs.device.GatewayGatewayMgmtProtectReCustom[];
/**
* When enabled, all traffic that is not essential to our operation will be dropped
* e.g. ntp / dns / traffic to mist will be allowed by default
* if dhcpd is enabled, we'll make sure it works
*/
enabled?: boolean;
/**
* Whether to enable hit count for Protect_RE policy
*/
hitCount?: boolean;
/**
* Trusted host or subnet entries allowed by the Protect RE policy
*/
trustedHosts?: string[];
}
interface GatewayGatewayMgmtProtectR