/* * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. * * Code generated by Microsoft (R) AutoRest Code Generator. * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ import { BaseResource, CloudError } from "ms-rest-azure"; import * as moment from "moment"; export { BaseResource, CloudError }; /** * Application gateway probe health response match */ export interface ApplicationGatewayProbeHealthResponseMatch { /** * Body that must be contained in the health response. Default value is empty. */ body?: string; /** * Allowed ranges of healthy status codes. Default range of healthy status codes is 200-399. */ statusCodes?: string[]; } /** * Details of on demand test probe request */ export interface ApplicationGatewayOnDemandProbe { /** * The protocol used for the probe. Possible values include: 'Http', 'Https' */ protocol?: string; /** * Host name to send the probe to. */ host?: string; /** * Relative path of probe. Valid path starts from '/'. Probe is sent to * ://: */ path?: string; /** * The probe timeout in seconds. Probe marked as failed if valid response is not received with * this timeout period. Acceptable values are from 1 second to 86400 seconds. */ timeout?: number; /** * Whether the host header should be picked from the backend http settings. Default value is * false. */ pickHostNameFromBackendHttpSettings?: boolean; /** * Criterion for classifying a healthy probe response. */ match?: ApplicationGatewayProbeHealthResponseMatch; /** * Name of backend pool of application gateway to which probe request will be sent. */ backendPoolName?: string; /** * Name of backend http setting of application gateway to be used for test probe */ backendHttpSettingName?: string; } /** * Reference to another subresource. */ export interface SubResource extends BaseResource { /** * Resource ID. */ id?: string; } /** * Tap configuration in a Network Interface */ export interface NetworkInterfaceTapConfiguration extends SubResource { /** * The reference of the Virtual Network Tap resource. */ virtualNetworkTap?: VirtualNetworkTap; /** * The provisioning state of the network interface tap configuration. Possible values are: * 'Updating', 'Deleting', and 'Failed'. */ readonly provisioningState?: string; /** * The name of the resource that is unique within a resource group. This name can be used to * access the resource. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; /** * Sub Resource type. */ readonly type?: string; } /** * Common resource representation. */ export interface Resource extends BaseResource { /** * Resource ID. */ id?: string; /** * Resource name. */ readonly name?: string; /** * Resource type. */ readonly type?: string; /** * Resource location. */ location?: string; /** * Resource tags. */ tags?: { [propertyName: string]: string }; } /** * An application security group in a resource group. */ export interface ApplicationSecurityGroup extends Resource { /** * The resource GUID property of the application security group resource. It uniquely identifies * a resource, even if the user changes its name or migrate the resource across subscriptions or * resource groups. */ readonly resourceGuid?: string; /** * The provisioning state of the application security group resource. Possible values are: * 'Succeeded', 'Updating', 'Deleting', and 'Failed'. */ readonly provisioningState?: string; /** * A unique read-only string that changes whenever the resource is updated. */ readonly etag?: string; } /** * Network security rule. */ export interface SecurityRule extends SubResource { /** * A description for this rule. Restricted to 140 chars. */ description?: string; /** * Network protocol this rule applies to. Possible values are 'Tcp', 'Udp', 'Icmp', 'Esp', and * '*'. Possible values include: 'Tcp', 'Udp', 'Icmp', 'Esp', '*' */ protocol: string; /** * The source port or range. Integer or range between 0 and 65535. Asterisk '*' can also be used * to match all ports. */ sourcePortRange?: string; /** * The destination port or range. Integer or range between 0 and 65535. Asterisk '*' can also be * used to match all ports. */ destinationPortRange?: string; /** * The CIDR or source IP range. Asterisk '*' can also be used to match all source IPs. Default * tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used. If this is * an ingress rule, specifies where network traffic originates from. */ sourceAddressPrefix?: string; /** * The CIDR or source IP ranges. */ sourceAddressPrefixes?: string[]; /** * The application security group specified as source. */ sourceApplicationSecurityGroups?: ApplicationSecurityGroup[]; /** * The destination address prefix. CIDR or destination IP range. Asterisk '*' can also be used to * match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and * 'Internet' can also be used. */ destinationAddressPrefix?: string; /** * The destination address prefixes. CIDR or destination IP ranges. */ destinationAddressPrefixes?: string[]; /** * The application security group specified as destination. */ destinationApplicationSecurityGroups?: ApplicationSecurityGroup[]; /** * The source port ranges. */ sourcePortRanges?: string[]; /** * The destination port ranges. */ destinationPortRanges?: string[]; /** * The network traffic is allowed or denied. Possible values include: 'Allow', 'Deny' */ access: string; /** * The priority of the rule. The value can be between 100 and 4096. The priority number must be * unique for each rule in the collection. The lower the priority number, the higher the priority * of the rule. */ priority?: number; /** * The direction of the rule. The direction specifies if rule will be evaluated on incoming or * outgoing traffic. Possible values include: 'Inbound', 'Outbound' */ direction: string; /** * The provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', * and 'Failed'. */ provisioningState?: string; /** * The name of the resource that is unique within a resource group. This name can be used to * access the resource. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; } /** * Identifies the service being brought into the virtual network. */ export interface EndpointService { /** * A unique identifier of the service being referenced by the interface endpoint. */ id?: string; } /** * Interface endpoint resource. */ export interface InterfaceEndpoint extends Resource { /** * A first-party service's FQDN that is mapped to the private IP allocated via this interface * endpoint. */ fqdn?: string; /** * A reference to the service being brought into the virtual network. */ endpointService?: EndpointService; /** * The ID of the subnet from which the private IP will be allocated. */ subnet?: Subnet; /** * Gets an array of references to the network interfaces created for this interface endpoint. */ readonly networkInterfaces?: NetworkInterface[]; /** * A read-only property that identifies who created this interface endpoint. */ readonly owner?: string; /** * The provisioning state of the interface endpoint. Possible values are: 'Updating', 'Deleting', * and 'Failed'. */ readonly provisioningState?: string; /** * Gets a unique read-only string that changes whenever the resource is updated. */ etag?: string; } /** * DNS settings of a network interface. */ export interface NetworkInterfaceDnsSettings { /** * List of DNS servers IP addresses. Use 'AzureProvidedDNS' to switch to azure provided DNS * resolution. 'AzureProvidedDNS' value cannot be combined with other IPs, it must be the only * value in dnsServers collection. */ dnsServers?: string[]; /** * If the VM that uses this NIC is part of an Availability Set, then this list will have the * union of all DNS servers from all NICs that are part of the Availability Set. This property is * what is configured on each of those VMs. */ appliedDnsServers?: string[]; /** * Relative DNS name for this NIC used for internal communications between VMs in the same * virtual network. */ internalDnsNameLabel?: string; /** * Fully qualified DNS name supporting internal communications between VMs in the same virtual * network. */ internalFqdn?: string; /** * Even if internalDnsNameLabel is not specified, a DNS entry is created for the primary NIC of * the VM. This DNS name can be constructed by concatenating the VM name with the value of * internalDomainNameSuffix. */ internalDomainNameSuffix?: string; } /** * A network interface in a resource group. */ export interface NetworkInterface extends Resource { /** * The reference of a virtual machine. */ readonly virtualMachine?: SubResource; /** * The reference of the NetworkSecurityGroup resource. */ networkSecurityGroup?: NetworkSecurityGroup; /** * A reference to the interface endpoint to which the network interface is linked. */ readonly interfaceEndpoint?: InterfaceEndpoint; /** * A list of IPConfigurations of the network interface. */ ipConfigurations?: NetworkInterfaceIPConfiguration[]; /** * A list of TapConfigurations of the network interface. */ tapConfigurations?: NetworkInterfaceTapConfiguration[]; /** * The DNS settings in network interface. */ dnsSettings?: NetworkInterfaceDnsSettings; /** * The MAC address of the network interface. */ macAddress?: string; /** * Gets whether this is a primary network interface on a virtual machine. */ primary?: boolean; /** * If the network interface is accelerated networking enabled. */ enableAcceleratedNetworking?: boolean; /** * Indicates whether IP forwarding is enabled on this network interface. */ enableIPForwarding?: boolean; /** * A list of references to linked BareMetal resources */ readonly hostedWorkloads?: string[]; /** * The resource GUID property of the network interface resource. */ resourceGuid?: string; /** * The provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', * and 'Failed'. */ provisioningState?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; } /** * NetworkSecurityGroup resource. */ export interface NetworkSecurityGroup extends Resource { /** * A collection of security rules of the network security group. */ securityRules?: SecurityRule[]; /** * The default security rules of network security group. */ defaultSecurityRules?: SecurityRule[]; /** * A collection of references to network interfaces. */ readonly networkInterfaces?: NetworkInterface[]; /** * A collection of references to subnets. */ readonly subnets?: Subnet[]; /** * The resource GUID property of the network security group resource. */ resourceGuid?: string; /** * The provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', * and 'Failed'. */ provisioningState?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; } /** * Route resource */ export interface Route extends SubResource { /** * The destination CIDR to which the route applies. */ addressPrefix?: string; /** * The type of Azure hop the packet should be sent to. Possible values include: * 'VirtualNetworkGateway', 'VnetLocal', 'Internet', 'VirtualAppliance', 'None' */ nextHopType: string; /** * The IP address packets should be forwarded to. Next hop values are only allowed in routes * where the next hop type is VirtualAppliance. */ nextHopIpAddress?: string; /** * The provisioning state of the resource. Possible values are: 'Updating', 'Deleting', and * 'Failed'. */ provisioningState?: string; /** * The name of the resource that is unique within a resource group. This name can be used to * access the resource. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; } /** * Route table resource. */ export interface RouteTable extends Resource { /** * Collection of routes contained within a route table. */ routes?: Route[]; /** * A collection of references to subnets. */ readonly subnets?: Subnet[]; /** * Gets or sets whether to disable the routes learned by BGP on that route table. True means * disable. */ disableBgpRoutePropagation?: boolean; /** * The provisioning state of the resource. Possible values are: 'Updating', 'Deleting', and * 'Failed'. */ provisioningState?: string; /** * Gets a unique read-only string that changes whenever the resource is updated. */ etag?: string; } /** * The service endpoint properties. */ export interface ServiceEndpointPropertiesFormat { /** * The type of the endpoint service. */ service?: string; /** * A list of locations. */ locations?: string[]; /** * The provisioning state of the resource. */ provisioningState?: string; } /** * Service Endpoint policy definitions. */ export interface ServiceEndpointPolicyDefinition extends SubResource { /** * A description for this rule. Restricted to 140 chars. */ description?: string; /** * Service endpoint name. */ service?: string; /** * A list of service resources. */ serviceResources?: string[]; /** * The provisioning state of the service end point policy definition. Possible values are: * 'Updating', 'Deleting', and 'Failed'. */ readonly provisioningState?: string; /** * The name of the resource that is unique within a resource group. This name can be used to * access the resource. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; } /** * Service End point policy resource. */ export interface ServiceEndpointPolicy extends Resource { /** * A collection of service endpoint policy definitions of the service endpoint policy. */ serviceEndpointPolicyDefinitions?: ServiceEndpointPolicyDefinition[]; /** * A collection of references to subnets. */ readonly subnets?: Subnet[]; /** * The resource GUID property of the service endpoint policy resource. */ readonly resourceGuid?: string; /** * The provisioning state of the service endpoint policy. Possible values are: 'Updating', * 'Deleting', and 'Failed'. */ readonly provisioningState?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; } /** * SKU of a public IP address */ export interface PublicIPAddressSku { /** * Name of a public IP address SKU. Possible values include: 'Basic', 'Standard' */ name?: string; } /** * Contains FQDN of the DNS record associated with the public IP address */ export interface PublicIPAddressDnsSettings { /** * Gets or sets the Domain name label.The concatenation of the domain name label and the * regionalized DNS zone make up the fully qualified domain name associated with the public IP * address. If a domain name label is specified, an A DNS record is created for the public IP in * the Microsoft Azure DNS system. */ domainNameLabel?: string; /** * Gets the FQDN, Fully qualified domain name of the A DNS record associated with the public IP. * This is the concatenation of the domainNameLabel and the regionalized DNS zone. */ fqdn?: string; /** * Gets or Sets the Reverse FQDN. A user-visible, fully qualified domain name that resolves to * this public IP address. If the reverseFqdn is specified, then a PTR DNS record is created * pointing from the IP address in the in-addr.arpa domain to the reverse FQDN. */ reverseFqdn?: string; } /** * Contains the DDoS protection settings of the public IP. */ export interface DdosSettings { /** * The DDoS custom policy associated with the public IP. */ ddosCustomPolicy?: SubResource; /** * The DDoS protection policy customizability of the public IP. Only standard coverage will have * the ability to be customized. Possible values include: 'Basic', 'Standard' */ protectionCoverage?: string; } /** * Contains the IpTag associated with the object */ export interface IpTag { /** * Gets or sets the ipTag type: Example FirstPartyUsage. */ ipTagType?: string; /** * Gets or sets value of the IpTag associated with the public IP. Example SQL, Storage etc */ tag?: string; } /** * Public IP address resource. */ export interface PublicIPAddress extends Resource { /** * The public IP address SKU. */ sku?: PublicIPAddressSku; /** * The public IP address allocation method. Possible values include: 'Static', 'Dynamic' */ publicIPAllocationMethod?: string; /** * The public IP address version. Possible values include: 'IPv4', 'IPv6' */ publicIPAddressVersion?: string; /** * The IP configuration associated with the public IP address. */ readonly ipConfiguration?: IPConfiguration; /** * The FQDN of the DNS record associated with the public IP address. */ dnsSettings?: PublicIPAddressDnsSettings; /** * The DDoS protection custom policy associated with the public IP address. */ ddosSettings?: DdosSettings; /** * The list of tags associated with the public IP address. */ ipTags?: IpTag[]; /** * The IP address associated with the public IP address resource. */ ipAddress?: string; /** * The Public IP Prefix this Public IP Address should be allocated from. */ publicIPPrefix?: SubResource; /** * The idle timeout of the public IP address. */ idleTimeoutInMinutes?: number; /** * The resource GUID property of the public IP resource. */ resourceGuid?: string; /** * The provisioning state of the PublicIP resource. Possible values are: 'Updating', 'Deleting', * and 'Failed'. */ provisioningState?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; /** * A list of availability zones denoting the IP allocated for the resource needs to come from. */ zones?: string[]; } /** * IP configuration */ export interface IPConfiguration extends SubResource { /** * The private IP address of the IP configuration. */ privateIPAddress?: string; /** * The private IP address allocation method. Possible values include: 'Static', 'Dynamic' */ privateIPAllocationMethod?: string; /** * The reference of the subnet resource. */ subnet?: Subnet; /** * The reference of the public IP resource. */ publicIPAddress?: PublicIPAddress; /** * Gets the provisioning state of the public IP resource. Possible values are: 'Updating', * 'Deleting', and 'Failed'. */ provisioningState?: string; /** * The name of the resource that is unique within a resource group. This name can be used to * access the resource. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; } /** * IP configuration profile child resource. */ export interface IPConfigurationProfile extends SubResource { /** * The reference of the subnet resource to create a container network interface ip configuration. */ subnet?: Subnet; /** * The provisioning state of the resource. */ readonly provisioningState?: string; /** * The name of the resource. This name can be used to access the resource. */ name?: string; /** * Sub Resource type. */ readonly type?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; } /** * ResourceNavigationLink resource. */ export interface ResourceNavigationLink extends SubResource { /** * Resource type of the linked resource. */ linkedResourceType?: string; /** * Link to the external resource */ link?: string; /** * Provisioning state of the ResourceNavigationLink resource. */ readonly provisioningState?: string; /** * Name of the resource that is unique within a resource group. This name can be used to access * the resource. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ readonly etag?: string; } /** * ServiceAssociationLink resource. */ export interface ServiceAssociationLink extends SubResource { /** * Resource type of the linked resource. */ linkedResourceType?: string; /** * Link to the external resource. */ link?: string; /** * Provisioning state of the ServiceAssociationLink resource. */ readonly provisioningState?: string; /** * Name of the resource that is unique within a resource group. This name can be used to access * the resource. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ readonly etag?: string; } /** * Details the service to which the subnet is delegated. */ export interface Delegation extends SubResource { /** * The name of the service to whom the subnet should be delegated (e.g. Microsoft.Sql/servers) */ serviceName?: string; /** * Describes the actions permitted to the service upon delegation */ actions?: string[]; /** * The provisioning state of the resource. */ readonly provisioningState?: string; /** * The name of the resource that is unique within a subnet. This name can be used to access the * resource. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; } /** * Subnet in a virtual network resource. */ export interface Subnet extends SubResource { /** * The address prefix for the subnet. */ addressPrefix?: string; /** * List of address prefixes for the subnet. */ addressPrefixes?: string[]; /** * The reference of the NetworkSecurityGroup resource. */ networkSecurityGroup?: NetworkSecurityGroup; /** * The reference of the RouteTable resource. */ routeTable?: RouteTable; /** * Nat gateway associated with this subnet. */ natGateway?: SubResource; /** * An array of service endpoints. */ serviceEndpoints?: ServiceEndpointPropertiesFormat[]; /** * An array of service endpoint policies. */ serviceEndpointPolicies?: ServiceEndpointPolicy[]; /** * An array of references to interface endpoints */ readonly interfaceEndpoints?: InterfaceEndpoint[]; /** * Gets an array of references to the network interface IP configurations using subnet. */ readonly ipConfigurations?: IPConfiguration[]; /** * Array of IP configuration profiles which reference this subnet. */ readonly ipConfigurationProfiles?: IPConfigurationProfile[]; /** * Gets an array of references to the external resources using subnet. */ resourceNavigationLinks?: ResourceNavigationLink[]; /** * Gets an array of references to services injecting into this subnet. */ serviceAssociationLinks?: ServiceAssociationLink[]; /** * Gets an array of references to the delegations on the subnet. */ delegations?: Delegation[]; /** * A read-only string identifying the intention of use for this subnet based on delegations and * other user-defined properties. */ readonly purpose?: string; /** * The provisioning state of the resource. */ provisioningState?: string; /** * The name of the resource that is unique within a resource group. This name can be used to * access the resource. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; } /** * Frontend IP address of the load balancer. */ export interface FrontendIPConfiguration extends SubResource { /** * Read only. Inbound rules URIs that use this frontend IP. */ readonly inboundNatRules?: SubResource[]; /** * Read only. Inbound pools URIs that use this frontend IP. */ readonly inboundNatPools?: SubResource[]; /** * Read only. Outbound rules URIs that use this frontend IP. */ readonly outboundRules?: SubResource[]; /** * Gets load balancing rules URIs that use this frontend IP. */ readonly loadBalancingRules?: SubResource[]; /** * The private IP address of the IP configuration. */ privateIPAddress?: string; /** * The Private IP allocation method. Possible values include: 'Static', 'Dynamic' */ privateIPAllocationMethod?: string; /** * The reference of the subnet resource. */ subnet?: Subnet; /** * The reference of the Public IP resource. */ publicIPAddress?: PublicIPAddress; /** * The reference of the Public IP Prefix resource. */ publicIPPrefix?: SubResource; /** * Gets the provisioning state of the public IP resource. Possible values are: 'Updating', * 'Deleting', and 'Failed'. */ provisioningState?: string; /** * The name of the resource that is unique within a resource group. This name can be used to * access the resource. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; /** * A list of availability zones denoting the IP allocated for the resource needs to come from. */ zones?: string[]; } /** * Virtual Network Tap resource */ export interface VirtualNetworkTap extends Resource { /** * Specifies the list of resource IDs for the network interface IP configuration that needs to be * tapped. */ readonly networkInterfaceTapConfigurations?: NetworkInterfaceTapConfiguration[]; /** * The resourceGuid property of the virtual network tap. */ readonly resourceGuid?: string; /** * The provisioning state of the virtual network tap. Possible values are: 'Updating', * 'Deleting', and 'Failed'. */ readonly provisioningState?: string; /** * The reference to the private IP Address of the collector nic that will receive the tap */ destinationNetworkInterfaceIPConfiguration?: NetworkInterfaceIPConfiguration; /** * The reference to the private IP address on the internal Load Balancer that will receive the * tap */ destinationLoadBalancerFrontEndIPConfiguration?: FrontendIPConfiguration; /** * The VXLAN destination port that will receive the tapped traffic. */ destinationPort?: number; /** * Gets a unique read-only string that changes whenever the resource is updated. */ etag?: string; } /** * Pool of backend IP addresses. */ export interface BackendAddressPool extends SubResource { /** * Gets collection of references to IP addresses defined in network interfaces. */ readonly backendIPConfigurations?: NetworkInterfaceIPConfiguration[]; /** * Gets load balancing rules that use this backend address pool. */ readonly loadBalancingRules?: SubResource[]; /** * Gets outbound rules that use this backend address pool. */ readonly outboundRule?: SubResource; /** * Get provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', * and 'Failed'. */ provisioningState?: string; /** * Gets name of the resource that is unique within a resource group. This name can be used to * access the resource. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; } /** * Inbound NAT rule of the load balancer. */ export interface InboundNatRule extends SubResource { /** * A reference to frontend IP addresses. */ frontendIPConfiguration?: SubResource; /** * A reference to a private IP address defined on a network interface of a VM. Traffic sent to * the frontend port of each of the frontend IP configurations is forwarded to the backend IP. */ readonly backendIPConfiguration?: NetworkInterfaceIPConfiguration; /** * The reference to the transport protocol used by the load balancing rule. Possible values * include: 'Udp', 'Tcp', 'All' */ protocol?: string; /** * The port for the external endpoint. Port numbers for each rule must be unique within the Load * Balancer. Acceptable values range from 1 to 65534. */ frontendPort?: number; /** * The port used for the internal endpoint. Acceptable values range from 1 to 65535. */ backendPort?: number; /** * The timeout for the TCP idle connection. The value can be set between 4 and 30 minutes. The * default value is 4 minutes. This element is only used when the protocol is set to TCP. */ idleTimeoutInMinutes?: number; /** * Configures a virtual machine's endpoint for the floating IP capability required to configure a * SQL AlwaysOn Availability Group. This setting is required when using the SQL AlwaysOn * Availability Groups in SQL server. This setting can't be changed after you create the * endpoint. */ enableFloatingIP?: boolean; /** * Receive bidirectional TCP Reset on TCP flow idle timeout or unexpected connection termination. * This element is only used when the protocol is set to TCP. */ enableTcpReset?: boolean; /** * Gets the provisioning state of the public IP resource. Possible values are: 'Updating', * 'Deleting', and 'Failed'. */ provisioningState?: string; /** * Gets name of the resource that is unique within a resource group. This name can be used to * access the resource. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; } /** * IPConfiguration in a network interface. */ export interface NetworkInterfaceIPConfiguration extends SubResource { /** * The reference to Virtual Network Taps. */ virtualNetworkTaps?: VirtualNetworkTap[]; /** * The reference of ApplicationGatewayBackendAddressPool resource. */ applicationGatewayBackendAddressPools?: ApplicationGatewayBackendAddressPool[]; /** * The reference of LoadBalancerBackendAddressPool resource. */ loadBalancerBackendAddressPools?: BackendAddressPool[]; /** * A list of references of LoadBalancerInboundNatRules. */ loadBalancerInboundNatRules?: InboundNatRule[]; /** * Private IP address of the IP configuration. */ privateIPAddress?: string; /** * The private IP address allocation method. Possible values include: 'Static', 'Dynamic' */ privateIPAllocationMethod?: string; /** * Available from Api-Version 2016-03-30 onwards, it represents whether the specific * ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values include: 'IPv4', * 'IPv6' */ privateIPAddressVersion?: string; /** * Subnet bound to the IP configuration. */ subnet?: Subnet; /** * Gets whether this is a primary customer address on the network interface. */ primary?: boolean; /** * Public IP address bound to the IP configuration. */ publicIPAddress?: PublicIPAddress; /** * Application security groups in which the IP configuration is included. */ applicationSecurityGroups?: ApplicationSecurityGroup[]; /** * The provisioning state of the network interface IP configuration. Possible values are: * 'Updating', 'Deleting', and 'Failed'. */ provisioningState?: string; /** * The name of the resource that is unique within a resource group. This name can be used to * access the resource. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; } /** * Backend address of an application gateway. */ export interface ApplicationGatewayBackendAddress { /** * Fully qualified domain name (FQDN). */ fqdn?: string; /** * IP address */ ipAddress?: string; } /** * Backend Address Pool of an application gateway. */ export interface ApplicationGatewayBackendAddressPool extends SubResource { /** * Collection of references to IPs defined in network interfaces. */ backendIPConfigurations?: NetworkInterfaceIPConfiguration[]; /** * Backend addresses */ backendAddresses?: ApplicationGatewayBackendAddress[]; /** * Provisioning state of the backend address pool resource. Possible values are: 'Updating', * 'Deleting', and 'Failed'. */ provisioningState?: string; /** * Name of the backend address pool that is unique within an Application Gateway. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; /** * Type of the resource. */ type?: string; } /** * Connection draining allows open connections to a backend server to be active for a specified * time after the backend server got removed from the configuration. */ export interface ApplicationGatewayConnectionDraining { /** * Whether connection draining is enabled or not. */ enabled: boolean; /** * The number of seconds connection draining is active. Acceptable values are from 1 second to * 3600 seconds. */ drainTimeoutInSec: number; } /** * Backend address pool settings of an application gateway. */ export interface ApplicationGatewayBackendHttpSettings extends SubResource { /** * The destination port on the backend. */ port?: number; /** * The protocol used to communicate with the backend. Possible values include: 'Http', 'Https' */ protocol?: string; /** * Cookie based affinity. Possible values include: 'Enabled', 'Disabled' */ cookieBasedAffinity?: string; /** * Request timeout in seconds. Application Gateway will fail the request if response is not * received within RequestTimeout. Acceptable values are from 1 second to 86400 seconds. */ requestTimeout?: number; /** * Probe resource of an application gateway. */ probe?: SubResource; /** * Array of references to application gateway authentication certificates. */ authenticationCertificates?: SubResource[]; /** * Array of references to application gateway trusted root certificates. */ trustedRootCertificates?: SubResource[]; /** * Connection draining of the backend http settings resource. */ connectionDraining?: ApplicationGatewayConnectionDraining; /** * Host header to be sent to the backend servers. */ hostName?: string; /** * Whether to pick host header should be picked from the host name of the backend server. Default * value is false. */ pickHostNameFromBackendAddress?: boolean; /** * Cookie name to use for the affinity cookie. */ affinityCookieName?: string; /** * Whether the probe is enabled. Default value is false. */ probeEnabled?: boolean; /** * Path which should be used as a prefix for all HTTP requests. Null means no path will be * prefixed. Default value is null. */ path?: string; /** * Provisioning state of the backend http settings resource. Possible values are: 'Updating', * 'Deleting', and 'Failed'. */ provisioningState?: string; /** * Name of the backend http settings that is unique within an Application Gateway. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; /** * Type of the resource. */ type?: string; } /** * Application gateway backendhealth http settings. */ export interface ApplicationGatewayBackendHealthServer { /** * IP address or FQDN of backend server. */ address?: string; /** * Reference of IP configuration of backend server. */ ipConfiguration?: NetworkInterfaceIPConfiguration; /** * Health of backend server. Possible values include: 'Unknown', 'Up', 'Down', 'Partial', * 'Draining' */ health?: string; /** * Health Probe Log. */ healthProbeLog?: string; } /** * Application gateway BackendHealthHttp settings. */ export interface ApplicationGatewayBackendHealthHttpSettings { /** * Reference of an ApplicationGatewayBackendHttpSettings resource. */ backendHttpSettings?: ApplicationGatewayBackendHttpSettings; /** * List of ApplicationGatewayBackendHealthServer resources. */ servers?: ApplicationGatewayBackendHealthServer[]; } /** * Result of on demand test probe */ export interface ApplicationGatewayBackendHealthOnDemand { /** * Reference of an ApplicationGatewayBackendAddressPool resource. */ backendAddressPool?: ApplicationGatewayBackendAddressPool; /** * Application gateway BackendHealthHttp settings. */ backendHealthHttpSettings?: ApplicationGatewayBackendHealthHttpSettings; } /** * Application gateway BackendHealth pool. */ export interface ApplicationGatewayBackendHealthPool { /** * Reference of an ApplicationGatewayBackendAddressPool resource. */ backendAddressPool?: ApplicationGatewayBackendAddressPool; /** * List of ApplicationGatewayBackendHealthHttpSettings resources. */ backendHttpSettingsCollection?: ApplicationGatewayBackendHealthHttpSettings[]; } /** * Response for ApplicationGatewayBackendHealth API service call. */ export interface ApplicationGatewayBackendHealth { /** * A list of ApplicationGatewayBackendHealthPool resources. */ backendAddressPools?: ApplicationGatewayBackendHealthPool[]; } /** * SKU of an application gateway */ export interface ApplicationGatewaySku { /** * Name of an application gateway SKU. Possible values include: 'Standard_Small', * 'Standard_Medium', 'Standard_Large', 'WAF_Medium', 'WAF_Large', 'Standard_v2', 'WAF_v2' */ name?: string; /** * Tier of an application gateway. Possible values include: 'Standard', 'WAF', 'Standard_v2', * 'WAF_v2' */ tier?: string; /** * Capacity (instance count) of an application gateway. */ capacity?: number; } /** * Application Gateway Ssl policy. */ export interface ApplicationGatewaySslPolicy { /** * Ssl protocols to be disabled on application gateway. */ disabledSslProtocols?: string[]; /** * Type of Ssl Policy. Possible values include: 'Predefined', 'Custom' */ policyType?: string; /** * Name of Ssl predefined policy. Possible values include: 'AppGwSslPolicy20150501', * 'AppGwSslPolicy20170401', 'AppGwSslPolicy20170401S' */ policyName?: string; /** * Ssl cipher suites to be enabled in the specified order to application gateway. */ cipherSuites?: string[]; /** * Minimum version of Ssl protocol to be supported on application gateway. Possible values * include: 'TLSv1_0', 'TLSv1_1', 'TLSv1_2' */ minProtocolVersion?: string; } /** * IP configuration of an application gateway. Currently 1 public and 1 private IP configuration is * allowed. */ export interface ApplicationGatewayIPConfiguration extends SubResource { /** * Reference of the subnet resource. A subnet from where application gateway gets its private * address. */ subnet?: SubResource; /** * Provisioning state of the application gateway subnet resource. Possible values are: * 'Updating', 'Deleting', and 'Failed'. */ provisioningState?: string; /** * Name of the IP configuration that is unique within an Application Gateway. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; /** * Type of the resource. */ type?: string; } /** * Authentication certificates of an application gateway. */ export interface ApplicationGatewayAuthenticationCertificate extends SubResource { /** * Certificate public data. */ data?: string; /** * Provisioning state of the authentication certificate resource. Possible values are: * 'Updating', 'Deleting', and 'Failed'. */ provisioningState?: string; /** * Name of the authentication certificate that is unique within an Application Gateway. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; /** * Type of the resource. */ type?: string; } /** * Trusted Root certificates of an application gateway. */ export interface ApplicationGatewayTrustedRootCertificate extends SubResource { /** * Certificate public data. */ data?: string; /** * Secret Id of (base-64 encoded unencrypted pfx) 'Secret' or 'Certificate' object stored in * KeyVault. */ keyVaultSecretId?: string; /** * Provisioning state of the trusted root certificate resource. Possible values are: 'Updating', * 'Deleting', and 'Failed'. */ provisioningState?: string; /** * Name of the trusted root certificate that is unique within an Application Gateway. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; /** * Type of the resource. */ type?: string; } /** * SSL certificates of an application gateway. */ export interface ApplicationGatewaySslCertificate extends SubResource { /** * Base-64 encoded pfx certificate. Only applicable in PUT Request. */ data?: string; /** * Password for the pfx file specified in data. Only applicable in PUT request. */ password?: string; /** * Base-64 encoded Public cert data corresponding to pfx specified in data. Only applicable in * GET request. */ publicCertData?: string; /** * Secret Id of (base-64 encoded unencrypted pfx) 'Secret' or 'Certificate' object stored in * KeyVault. */ keyVaultSecretId?: string; /** * Provisioning state of the SSL certificate resource Possible values are: 'Updating', * 'Deleting', and 'Failed'. */ provisioningState?: string; /** * Name of the SSL certificate that is unique within an Application Gateway. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; /** * Type of the resource. */ type?: string; } /** * Frontend IP configuration of an application gateway. */ export interface ApplicationGatewayFrontendIPConfiguration extends SubResource { /** * PrivateIPAddress of the network interface IP Configuration. */ privateIPAddress?: string; /** * The private IP address allocation method. Possible values include: 'Static', 'Dynamic' */ privateIPAllocationMethod?: string; /** * Reference of the subnet resource. */ subnet?: SubResource; /** * Reference of the PublicIP resource. */ publicIPAddress?: SubResource; /** * Provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and * 'Failed'. */ provisioningState?: string; /** * Name of the frontend IP configuration that is unique within an Application Gateway. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; /** * Type of the resource. */ type?: string; } /** * Frontend port of an application gateway. */ export interface ApplicationGatewayFrontendPort extends SubResource { /** * Frontend port */ port?: number; /** * Provisioning state of the frontend port resource. Possible values are: 'Updating', 'Deleting', * and 'Failed'. */ provisioningState?: string; /** * Name of the frontend port that is unique within an Application Gateway */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; /** * Type of the resource. */ type?: string; } /** * Customer error of an application gateway. */ export interface ApplicationGatewayCustomError { /** * Status code of the application gateway customer error. Possible values include: * 'HttpStatus403', 'HttpStatus502' */ statusCode?: string; /** * Error page URL of the application gateway customer error. */ customErrorPageUrl?: string; } /** * Http listener of an application gateway. */ export interface ApplicationGatewayHttpListener extends SubResource { /** * Frontend IP configuration resource of an application gateway. */ frontendIPConfiguration?: SubResource; /** * Frontend port resource of an application gateway. */ frontendPort?: SubResource; /** * Protocol of the HTTP listener. Possible values include: 'Http', 'Https' */ protocol?: string; /** * Host name of HTTP listener. */ hostName?: string; /** * SSL certificate resource of an application gateway. */ sslCertificate?: SubResource; /** * Applicable only if protocol is https. Enables SNI for multi-hosting. */ requireServerNameIndication?: boolean; /** * Provisioning state of the HTTP listener resource. Possible values are: 'Updating', 'Deleting', * and 'Failed'. */ provisioningState?: string; /** * Custom error configurations of the HTTP listener. */ customErrorConfigurations?: ApplicationGatewayCustomError[]; /** * Name of the HTTP listener that is unique within an Application Gateway. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; /** * Type of the resource. */ type?: string; } /** * Path rule of URL path map of an application gateway. */ export interface ApplicationGatewayPathRule extends SubResource { /** * Path rules of URL path map. */ paths?: string[]; /** * Backend address pool resource of URL path map path rule. */ backendAddressPool?: SubResource; /** * Backend http settings resource of URL path map path rule. */ backendHttpSettings?: SubResource; /** * Redirect configuration resource of URL path map path rule. */ redirectConfiguration?: SubResource; /** * Rewrite rule set resource of URL path map path rule. */ rewriteRuleSet?: SubResource; /** * Path rule of URL path map resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. */ provisioningState?: string; /** * Name of the path rule that is unique within an Application Gateway. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; /** * Type of the resource. */ type?: string; } /** * Probe of the application gateway. */ export interface ApplicationGatewayProbe extends SubResource { /** * The protocol used for the probe. Possible values include: 'Http', 'Https' */ protocol?: string; /** * Host name to send the probe to. */ host?: string; /** * Relative path of probe. Valid path starts from '/'. Probe is sent to * ://: */ path?: string; /** * The probing interval in seconds. This is the time interval between two consecutive probes. * Acceptable values are from 1 second to 86400 seconds. */ interval?: number; /** * The probe timeout in seconds. Probe marked as failed if valid response is not received with * this timeout period. Acceptable values are from 1 second to 86400 seconds. */ timeout?: number; /** * The probe retry count. Backend server is marked down after consecutive probe failure count * reaches UnhealthyThreshold. Acceptable values are from 1 second to 20. */ unhealthyThreshold?: number; /** * Whether the host header should be picked from the backend http settings. Default value is * false. */ pickHostNameFromBackendHttpSettings?: boolean; /** * Minimum number of servers that are always marked healthy. Default value is 0. */ minServers?: number; /** * Criterion for classifying a healthy probe response. */ match?: ApplicationGatewayProbeHealthResponseMatch; /** * Provisioning state of the backend http settings resource. Possible values are: 'Updating', * 'Deleting', and 'Failed'. */ provisioningState?: string; /** * Name of the probe that is unique within an Application Gateway. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; /** * Type of the resource. */ type?: string; } /** * Request routing rule of an application gateway. */ export interface ApplicationGatewayRequestRoutingRule extends SubResource { /** * Rule type. Possible values include: 'Basic', 'PathBasedRouting' */ ruleType?: string; /** * Backend address pool resource of the application gateway. */ backendAddressPool?: SubResource; /** * Backend http settings resource of the application gateway. */ backendHttpSettings?: SubResource; /** * Http listener resource of the application gateway. */ httpListener?: SubResource; /** * URL path map resource of the application gateway. */ urlPathMap?: SubResource; /** * Rewrite Rule Set resource in Basic rule of the application gateway. */ rewriteRuleSet?: SubResource; /** * Redirect configuration resource of the application gateway. */ redirectConfiguration?: SubResource; /** * Provisioning state of the request routing rule resource. Possible values are: 'Updating', * 'Deleting', and 'Failed'. */ provisioningState?: string; /** * Name of the request routing rule that is unique within an Application Gateway. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; /** * Type of the resource. */ type?: string; } /** * Set of conditions in the Rewrite Rule in Application Gateway. */ export interface ApplicationGatewayRewriteRuleCondition { /** * The condition parameter of the RewriteRuleCondition. */ variable?: string; /** * The pattern, either fixed string or regular expression, that evaluates the truthfulness of the * condition */ pattern?: string; /** * Setting this paramter to truth value with force the pattern to do a case in-sensitive * comparison. */ ignoreCase?: boolean; /** * Setting this value as truth will force to check the negation of the condition given by the * user. */ negate?: boolean; } /** * Header configuration of the Actions set in Application Gateway. */ export interface ApplicationGatewayHeaderConfiguration { /** * Header name of the header configuration */ headerName?: string; /** * Header value of the header configuration */ headerValue?: string; } /** * Set of actions in the Rewrite Rule in Application Gateway. */ export interface ApplicationGatewayRewriteRuleActionSet { /** * Request Header Actions in the Action Set */ requestHeaderConfigurations?: ApplicationGatewayHeaderConfiguration[]; /** * Response Header Actions in the Action Set */ responseHeaderConfigurations?: ApplicationGatewayHeaderConfiguration[]; } /** * Rewrite rule of an application gateway. */ export interface ApplicationGatewayRewriteRule { /** * Name of the rewrite rule that is unique within an Application Gateway. */ name?: string; /** * Rule Sequence of the rewrite rule that determines the order of execution of a particular rule * in a RewriteRuleSet. */ ruleSequence?: number; /** * Conditions based on which the action set execution will be evaluated. */ conditions?: ApplicationGatewayRewriteRuleCondition[]; /** * Set of actions to be done as part of the rewrite Rule. */ actionSet?: ApplicationGatewayRewriteRuleActionSet; } /** * Rewrite rule set of an application gateway. */ export interface ApplicationGatewayRewriteRuleSet extends SubResource { /** * Rewrite rules in the rewrite rule set. */ rewriteRules?: ApplicationGatewayRewriteRule[]; /** * Provisioning state of the rewrite rule set resource. Possible values are: 'Updating', * 'Deleting', and 'Failed'. */ readonly provisioningState?: string; /** * Name of the rewrite rule set that is unique within an Application Gateway. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ readonly etag?: string; } /** * Redirect configuration of an application gateway. */ export interface ApplicationGatewayRedirectConfiguration extends SubResource { /** * HTTP redirection type. Possible values include: 'Permanent', 'Found', 'SeeOther', 'Temporary' */ redirectType?: string; /** * Reference to a listener to redirect the request to. */ targetListener?: SubResource; /** * Url to redirect the request to. */ targetUrl?: string; /** * Include path in the redirected url. */ includePath?: boolean; /** * Include query string in the redirected url. */ includeQueryString?: boolean; /** * Request routing specifying redirect configuration. */ requestRoutingRules?: SubResource[]; /** * Url path maps specifying default redirect configuration. */ urlPathMaps?: SubResource[]; /** * Path rules specifying redirect configuration. */ pathRules?: SubResource[]; /** * Name of the redirect configuration that is unique within an Application Gateway. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; /** * Type of the resource. */ type?: string; } /** * UrlPathMaps give a url path to the backend mapping information for PathBasedRouting. */ export interface ApplicationGatewayUrlPathMap extends SubResource { /** * Default backend address pool resource of URL path map. */ defaultBackendAddressPool?: SubResource; /** * Default backend http settings resource of URL path map. */ defaultBackendHttpSettings?: SubResource; /** * Default Rewrite rule set resource of URL path map. */ defaultRewriteRuleSet?: SubResource; /** * Default redirect configuration resource of URL path map. */ defaultRedirectConfiguration?: SubResource; /** * Path rule of URL path map resource. */ pathRules?: ApplicationGatewayPathRule[]; /** * Provisioning state of the backend http settings resource. Possible values are: 'Updating', * 'Deleting', and 'Failed'. */ provisioningState?: string; /** * Name of the URL path map that is unique within an Application Gateway. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; /** * Type of the resource. */ type?: string; } /** * Allows to disable rules within a rule group or an entire rule group. */ export interface ApplicationGatewayFirewallDisabledRuleGroup { /** * The name of the rule group that will be disabled. */ ruleGroupName: string; /** * The list of rules that will be disabled. If null, all rules of the rule group will be * disabled. */ rules?: number[]; } /** * Allow to exclude some variable satisfy the condition for the WAF check */ export interface ApplicationGatewayFirewallExclusion { /** * The variable to be excluded. */ matchVariable: string; /** * When matchVariable is a collection, operate on the selector to specify which elements in the * collection this exclusion applies to. */ selectorMatchOperator: string; /** * When matchVariable is a collection, operator used to specify which elements in the collection * this exclusion applies to. */ selector: string; } /** * Application gateway web application firewall configuration. */ export interface ApplicationGatewayWebApplicationFirewallConfiguration { /** * Whether the web application firewall is enabled or not. */ enabled: boolean; /** * Web application firewall mode. Possible values include: 'Detection', 'Prevention' */ firewallMode: string; /** * The type of the web application firewall rule set. Possible values are: 'OWASP'. */ ruleSetType: string; /** * The version of the rule set type. */ ruleSetVersion: string; /** * The disabled rule groups. */ disabledRuleGroups?: ApplicationGatewayFirewallDisabledRuleGroup[]; /** * Whether allow WAF to check request Body. */ requestBodyCheck?: boolean; /** * Maximum request body size for WAF. */ maxRequestBodySize?: number; /** * Maximum request body size in Kb for WAF. */ maxRequestBodySizeInKb?: number; /** * Maximum file upload size in Mb for WAF. */ fileUploadLimitInMb?: number; /** * The exclusion list. */ exclusions?: ApplicationGatewayFirewallExclusion[]; } /** * Application Gateway autoscale configuration. */ export interface ApplicationGatewayAutoscaleConfiguration { /** * Lower bound on number of Application Gateway capacity */ minCapacity: number; /** * Upper bound on number of Application Gateway capacity */ maxCapacity?: number; } export interface ManagedServiceIdentityUserAssignedIdentitiesValue { /** * The principal id of user assigned identity. */ readonly principalId?: string; /** * The client id of user assigned identity. */ readonly clientId?: string; } /** * Identity for the resource. */ export interface ManagedServiceIdentity { /** * The principal id of the system assigned identity. This property will only be provided for a * system assigned identity. */ readonly principalId?: string; /** * The tenant id of the system assigned identity. This property will only be provided for a * system assigned identity. */ readonly tenantId?: string; /** * The type of identity used for the resource. The type 'SystemAssigned, UserAssigned' includes * both an implicitly created identity and a set of user assigned identities. The type 'None' * will remove any identities from the virtual machine. Possible values include: * 'SystemAssigned', 'UserAssigned', 'SystemAssigned, UserAssigned', 'None' */ type?: string; /** * The list of user identities associated with resource. The user identity dictionary key * references will be ARM resource ids in the form: * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. */ userAssignedIdentities?: { [propertyName: string]: ManagedServiceIdentityUserAssignedIdentitiesValue }; } /** * Application gateway resource */ export interface ApplicationGateway extends Resource { /** * SKU of the application gateway resource. */ sku?: ApplicationGatewaySku; /** * SSL policy of the application gateway resource. */ sslPolicy?: ApplicationGatewaySslPolicy; /** * Operational state of the application gateway resource. Possible values include: 'Stopped', * 'Starting', 'Running', 'Stopping' */ readonly operationalState?: string; /** * Subnets of the application gateway resource. For default limits, see [Application Gateway * limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). */ gatewayIPConfigurations?: ApplicationGatewayIPConfiguration[]; /** * Authentication certificates of the application gateway resource. For default limits, see * [Application Gateway * limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). */ authenticationCertificates?: ApplicationGatewayAuthenticationCertificate[]; /** * Trusted Root certificates of the application gateway resource. For default limits, see * [Application Gateway * limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). */ trustedRootCertificates?: ApplicationGatewayTrustedRootCertificate[]; /** * SSL certificates of the application gateway resource. For default limits, see [Application * Gateway * limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). */ sslCertificates?: ApplicationGatewaySslCertificate[]; /** * Frontend IP addresses of the application gateway resource. For default limits, see * [Application Gateway * limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). */ frontendIPConfigurations?: ApplicationGatewayFrontendIPConfiguration[]; /** * Frontend ports of the application gateway resource. For default limits, see [Application * Gateway * limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). */ frontendPorts?: ApplicationGatewayFrontendPort[]; /** * Probes of the application gateway resource. */ probes?: ApplicationGatewayProbe[]; /** * Backend address pool of the application gateway resource. For default limits, see [Application * Gateway * limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). */ backendAddressPools?: ApplicationGatewayBackendAddressPool[]; /** * Backend http settings of the application gateway resource. For default limits, see * [Application Gateway * limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). */ backendHttpSettingsCollection?: ApplicationGatewayBackendHttpSettings[]; /** * Http listeners of the application gateway resource. For default limits, see [Application * Gateway * limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). */ httpListeners?: ApplicationGatewayHttpListener[]; /** * URL path map of the application gateway resource. For default limits, see [Application Gateway * limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). */ urlPathMaps?: ApplicationGatewayUrlPathMap[]; /** * Request routing rules of the application gateway resource. */ requestRoutingRules?: ApplicationGatewayRequestRoutingRule[]; /** * Rewrite rules for the application gateway resource. */ rewriteRuleSets?: ApplicationGatewayRewriteRuleSet[]; /** * Redirect configurations of the application gateway resource. For default limits, see * [Application Gateway * limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). */ redirectConfigurations?: ApplicationGatewayRedirectConfiguration[]; /** * Web application firewall configuration. */ webApplicationFirewallConfiguration?: ApplicationGatewayWebApplicationFirewallConfiguration; /** * Reference of the FirewallPolicy resource. */ firewallPolicy?: SubResource; /** * Whether HTTP2 is enabled on the application gateway resource. */ enableHttp2?: boolean; /** * Whether FIPS is enabled on the application gateway resource. */ enableFips?: boolean; /** * Autoscale Configuration. */ autoscaleConfiguration?: ApplicationGatewayAutoscaleConfiguration; /** * Resource GUID property of the application gateway resource. */ resourceGuid?: string; /** * Provisioning state of the application gateway resource. Possible values are: 'Updating', * 'Deleting', and 'Failed'. */ provisioningState?: string; /** * Custom error configurations of the application gateway resource. */ customErrorConfigurations?: ApplicationGatewayCustomError[]; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; /** * A list of availability zones denoting where the resource needs to come from. */ zones?: string[]; /** * The identity of the application gateway, if configured. */ identity?: ManagedServiceIdentity; } /** * A web application firewall rule. */ export interface ApplicationGatewayFirewallRule { /** * The identifier of the web application firewall rule. */ ruleId: number; /** * The description of the web application firewall rule. */ description?: string; } /** * A web application firewall rule group. */ export interface ApplicationGatewayFirewallRuleGroup { /** * The name of the web application firewall rule group. */ ruleGroupName: string; /** * The description of the web application firewall rule group. */ description?: string; /** * The rules of the web application firewall rule group. */ rules: ApplicationGatewayFirewallRule[]; } /** * A web application firewall rule set. */ export interface ApplicationGatewayFirewallRuleSet extends Resource { /** * The provisioning state of the web application firewall rule set. */ provisioningState?: string; /** * The type of the web application firewall rule set. */ ruleSetType: string; /** * The version of the web application firewall rule set type. */ ruleSetVersion: string; /** * The rule groups of the web application firewall rule set. */ ruleGroups: ApplicationGatewayFirewallRuleGroup[]; } /** * Response for ApplicationGatewayAvailableWafRuleSets API service call. */ export interface ApplicationGatewayAvailableWafRuleSetsResult { /** * The list of application gateway rule sets. */ value?: ApplicationGatewayFirewallRuleSet[]; } /** * Response for ApplicationGatewayAvailableSslOptions API service call. */ export interface ApplicationGatewayAvailableSslOptions extends Resource { /** * List of available Ssl predefined policy. */ predefinedPolicies?: SubResource[]; /** * Name of the Ssl predefined policy applied by default to application gateway. Possible values * include: 'AppGwSslPolicy20150501', 'AppGwSslPolicy20170401', 'AppGwSslPolicy20170401S' */ defaultPolicy?: string; /** * List of available Ssl cipher suites. */ availableCipherSuites?: string[]; /** * List of available Ssl protocols. */ availableProtocols?: string[]; } /** * An Ssl predefined policy */ export interface ApplicationGatewaySslPredefinedPolicy extends SubResource { /** * Name of the Ssl predefined policy. */ name?: string; /** * Ssl cipher suites to be enabled in the specified order for application gateway. */ cipherSuites?: string[]; /** * Minimum version of Ssl protocol to be supported on application gateway. Possible values * include: 'TLSv1_0', 'TLSv1_1', 'TLSv1_2' */ minProtocolVersion?: string; } /** * Common error details representation. */ export interface ErrorDetails { /** * Error code. */ code?: string; /** * Error target. */ target?: string; /** * Error message. */ message?: string; } /** * Common error representation. */ export interface ErrorModel { /** * Error code. */ code?: string; /** * Error message. */ message?: string; /** * Error target. */ target?: string; /** * Error details. */ details?: ErrorDetails[]; /** * Inner error message. */ innerError?: string; } /** * Tags object for patch operations. */ export interface TagsObject { /** * Resource tags. */ tags?: { [propertyName: string]: string }; } /** * The serviceName of an AvailableDelegation indicates a possible delegation for a subnet. */ export interface AvailableDelegation { /** * The name of the AvailableDelegation resource. */ name?: string; /** * A unique identifier of the AvailableDelegation resource. */ id?: string; /** * Resource type. */ type?: string; /** * The name of the service and resource */ serviceName?: string; /** * Describes the actions permitted to the service upon delegation */ actions?: string[]; } /** * IP configuration of an Azure Firewall. */ export interface AzureFirewallIPConfiguration extends SubResource { /** * The Firewall Internal Load Balancer IP to be used as the next hop in User Defined Routes. */ readonly privateIPAddress?: string; /** * Reference of the subnet resource. This resource must be named 'AzureFirewallSubnet'. */ subnet?: SubResource; /** * Reference of the PublicIP resource. This field is a mandatory input if subnet is not null. */ publicIPAddress?: SubResource; /** * The provisioning state of the resource. Possible values include: 'Succeeded', 'Updating', * 'Deleting', 'Failed' */ provisioningState?: string; /** * Name of the resource that is unique within a resource group. This name can be used to access * the resource. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ readonly etag?: string; } /** * Properties of the AzureFirewallRCAction. */ export interface AzureFirewallRCAction { /** * The type of action. Possible values include: 'Allow', 'Deny' */ type?: string; } /** * Properties of the application rule protocol. */ export interface AzureFirewallApplicationRuleProtocol { /** * Protocol type. Possible values include: 'Http', 'Https' */ protocolType?: string; /** * Port number for the protocol, cannot be greater than 64000. This field is optional. */ port?: number; } /** * Properties of an application rule. */ export interface AzureFirewallApplicationRule { /** * Name of the application rule. */ name?: string; /** * Description of the rule. */ description?: string; /** * List of source IP addresses for this rule. */ sourceAddresses?: string[]; /** * Array of ApplicationRuleProtocols. */ protocols?: AzureFirewallApplicationRuleProtocol[]; /** * List of FQDNs for this rule. */ targetFqdns?: string[]; /** * List of FQDN Tags for this rule. */ fqdnTags?: string[]; } /** * Application rule collection resource */ export interface AzureFirewallApplicationRuleCollection extends SubResource { /** * Priority of the application rule collection resource. */ priority?: number; /** * The action type of a rule collection */ action?: AzureFirewallRCAction; /** * Collection of rules used by a application rule collection. */ rules?: AzureFirewallApplicationRule[]; /** * The provisioning state of the resource. Possible values include: 'Succeeded', 'Updating', * 'Deleting', 'Failed' */ provisioningState?: string; /** * Gets name of the resource that is unique within a resource group. This name can be used to * access the resource. */ name?: string; /** * Gets a unique read-only string that changes whenever the resource is updated. */ readonly etag?: string; } /** * AzureFirewall NAT Rule Collection Action. */ export interface AzureFirewallNatRCAction { /** * The type of action. Possible values include: 'Snat', 'Dnat' */ type?: string; } /** * Properties of a NAT rule. */ export interface AzureFirewallNatRule { /** * Name of the NAT rule. */ name?: string; /** * Description of the rule. */ description?: string; /** * List of source IP addresses for this rule. */ sourceAddresses?: string[]; /** * List of destination IP addresses for this rule. Supports IP ranges, prefixes, and service * tags. */ destinationAddresses?: string[]; /** * List of destination ports. */ destinationPorts?: string[]; /** * Array of AzureFirewallNetworkRuleProtocols applicable to this NAT rule. */ protocols?: string[]; /** * The translated address for this NAT rule. */ translatedAddress?: string; /** * The translated port for this NAT rule. */ translatedPort?: string; } /** * NAT rule collection resource */ export interface AzureFirewallNatRuleCollection extends SubResource { /** * Priority of the NAT rule collection resource. */ priority?: number; /** * The action type of a NAT rule collection */ action?: AzureFirewallNatRCAction; /** * Collection of rules used by a NAT rule collection. */ rules?: AzureFirewallNatRule[]; /** * The provisioning state of the resource. Possible values include: 'Succeeded', 'Updating', * 'Deleting', 'Failed' */ provisioningState?: string; /** * Gets name of the resource that is unique within a resource group. This name can be used to * access the resource. */ name?: string; /** * Gets a unique read-only string that changes whenever the resource is updated. */ readonly etag?: string; } /** * Properties of the network rule. */ export interface AzureFirewallNetworkRule { /** * Name of the network rule. */ name?: string; /** * Description of the rule. */ description?: string; /** * Array of AzureFirewallNetworkRuleProtocols. */ protocols?: string[]; /** * List of source IP addresses for this rule. */ sourceAddresses?: string[]; /** * List of destination IP addresses. */ destinationAddresses?: string[]; /** * List of destination ports. */ destinationPorts?: string[]; } /** * Network rule collection resource */ export interface AzureFirewallNetworkRuleCollection extends SubResource { /** * Priority of the network rule collection resource. */ priority?: number; /** * The action type of a rule collection */ action?: AzureFirewallRCAction; /** * Collection of rules used by a network rule collection. */ rules?: AzureFirewallNetworkRule[]; /** * The provisioning state of the resource. Possible values include: 'Succeeded', 'Updating', * 'Deleting', 'Failed' */ provisioningState?: string; /** * Gets name of the resource that is unique within a resource group. This name can be used to * access the resource. */ name?: string; /** * Gets a unique read-only string that changes whenever the resource is updated. */ readonly etag?: string; } /** * Azure Firewall resource */ export interface AzureFirewall extends Resource { /** * Collection of application rule collections used by Azure Firewall. */ applicationRuleCollections?: AzureFirewallApplicationRuleCollection[]; /** * Collection of NAT rule collections used by Azure Firewall. */ natRuleCollections?: AzureFirewallNatRuleCollection[]; /** * Collection of network rule collections used by Azure Firewall. */ networkRuleCollections?: AzureFirewallNetworkRuleCollection[]; /** * IP configuration of the Azure Firewall resource. */ ipConfigurations?: AzureFirewallIPConfiguration[]; /** * The provisioning state of the resource. Possible values include: 'Succeeded', 'Updating', * 'Deleting', 'Failed' */ provisioningState?: string; /** * The operation mode for Threat Intelligence. Possible values include: 'Alert', 'Deny', 'Off' */ threatIntelMode?: string; /** * Gets a unique read-only string that changes whenever the resource is updated. */ readonly etag?: string; } /** * Azure Firewall FQDN Tag Resource */ export interface AzureFirewallFqdnTag extends Resource { /** * The provisioning state of the resource. */ readonly provisioningState?: string; /** * The name of this FQDN Tag. */ readonly fqdnTagName?: string; /** * Gets a unique read-only string that changes whenever the resource is updated. */ readonly etag?: string; } /** * Response for the CheckDnsNameAvailability API service call. */ export interface DnsNameAvailabilityResult { /** * Domain availability (True/False). */ available?: boolean; } /** * DDoS custom policy properties. */ export interface ProtocolCustomSettingsFormat { /** * The protocol for which the DDoS protection policy is being customized. Possible values * include: 'Tcp', 'Udp', 'Syn' */ protocol?: string; /** * The customized DDoS protection trigger rate. */ triggerRateOverride?: string; /** * The customized DDoS protection source rate. */ sourceRateOverride?: string; /** * The customized DDoS protection trigger rate sensitivity degrees. High: Trigger rate set with * most sensitivity w.r.t. normal traffic. Default: Trigger rate set with moderate sensitivity * w.r.t. normal traffic. Low: Trigger rate set with less sensitivity w.r.t. normal traffic. * Relaxed: Trigger rate set with least sensitivity w.r.t. normal traffic. Possible values * include: 'Relaxed', 'Low', 'Default', 'High' */ triggerSensitivityOverride?: string; } /** * A DDoS custom policy in a resource group. */ export interface DdosCustomPolicy extends Resource { /** * The resource GUID property of the DDoS custom policy resource. It uniquely identifies the * resource, even if the user changes its name or migrate the resource across subscriptions or * resource groups. */ readonly resourceGuid?: string; /** * The provisioning state of the DDoS custom policy resource. Possible values are: 'Succeeded', * 'Updating', 'Deleting', and 'Failed'. */ readonly provisioningState?: string; /** * The list of public IPs associated with the DDoS custom policy resource. This list is * read-only. */ readonly publicIPAddresses?: SubResource[]; /** * The protocol-specific DDoS policy customization parameters. */ protocolCustomSettings?: ProtocolCustomSettingsFormat[]; /** * A unique read-only string that changes whenever the resource is updated. */ readonly etag?: string; } /** * A DDoS protection plan in a resource group. */ export interface DdosProtectionPlan extends BaseResource { /** * Resource ID. */ readonly id?: string; /** * Resource name. */ readonly name?: string; /** * Resource type. */ readonly type?: string; /** * Resource location. */ location?: string; /** * Resource tags. */ tags?: { [propertyName: string]: string }; /** * The resource GUID property of the DDoS protection plan resource. It uniquely identifies the * resource, even if the user changes its name or migrate the resource across subscriptions or * resource groups. */ readonly resourceGuid?: string; /** * The provisioning state of the DDoS protection plan resource. Possible values are: 'Succeeded', * 'Updating', 'Deleting', and 'Failed'. */ readonly provisioningState?: string; /** * The list of virtual networks associated with the DDoS protection plan resource. This list is * read-only. */ readonly virtualNetworks?: SubResource[]; /** * A unique read-only string that changes whenever the resource is updated. */ readonly etag?: string; } /** * Endpoint service. */ export interface EndpointServiceResult extends SubResource { /** * Name of the endpoint service. */ readonly name?: string; /** * Type of the endpoint service. */ readonly type?: string; } /** * Authorization in an ExpressRouteCircuit resource. */ export interface ExpressRouteCircuitAuthorization extends SubResource { /** * The authorization key. */ authorizationKey?: string; /** * AuthorizationUseStatus. Possible values are: 'Available' and 'InUse'. Possible values include: * 'Available', 'InUse' */ authorizationUseStatus?: string; /** * Gets the provisioning state of the public IP resource. Possible values are: 'Updating', * 'Deleting', and 'Failed'. */ provisioningState?: string; /** * Gets name of the resource that is unique within a resource group. This name can be used to * access the resource. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ readonly etag?: string; } /** * Specifies the peering configuration. */ export interface ExpressRouteCircuitPeeringConfig { /** * The reference of AdvertisedPublicPrefixes. */ advertisedPublicPrefixes?: string[]; /** * The communities of bgp peering. Specified for microsoft peering */ advertisedCommunities?: string[]; /** * AdvertisedPublicPrefixState of the Peering resource. Possible values are 'NotConfigured', * 'Configuring', 'Configured', and 'ValidationNeeded'. Possible values include: 'NotConfigured', * 'Configuring', 'Configured', 'ValidationNeeded' */ advertisedPublicPrefixesState?: string; /** * The legacy mode of the peering. */ legacyMode?: number; /** * The CustomerASN of the peering. */ customerASN?: number; /** * The RoutingRegistryName of the configuration. */ routingRegistryName?: string; } /** * Route Filter Rule Resource */ export interface RouteFilterRule extends SubResource { /** * The access type of the rule. Possible values include: 'Allow', 'Deny' */ access: string; /** * The collection for bgp community values to filter on. e.g. ['12076:5010','12076:5020'] */ communities: string[]; /** * The provisioning state of the resource. Possible values are: 'Updating', 'Deleting', * 'Succeeded' and 'Failed'. */ readonly provisioningState?: string; /** * The name of the resource that is unique within a resource group. This name can be used to * access the resource. */ name?: string; /** * Resource location. */ location?: string; /** * A unique read-only string that changes whenever the resource is updated. */ readonly etag?: string; } /** * Contains stats associated with the peering. */ export interface ExpressRouteCircuitStats { /** * Gets BytesIn of the peering. */ primarybytesIn?: number; /** * Gets BytesOut of the peering. */ primarybytesOut?: number; /** * Gets BytesIn of the peering. */ secondarybytesIn?: number; /** * Gets BytesOut of the peering. */ secondarybytesOut?: number; } /** * The ID of the ExpressRouteConnection. */ export interface ExpressRouteConnectionId { /** * The ID of the ExpressRouteConnection. */ readonly id?: string; } /** * Express Route Circuit Connection in an ExpressRouteCircuitPeering resource. */ export interface ExpressRouteCircuitConnection extends SubResource { /** * Reference to Express Route Circuit Private Peering Resource of the circuit initiating * connection. */ expressRouteCircuitPeering?: SubResource; /** * Reference to Express Route Circuit Private Peering Resource of the peered circuit. */ peerExpressRouteCircuitPeering?: SubResource; /** * /29 IP address space to carve out Customer addresses for tunnels. */ addressPrefix?: string; /** * The authorization key. */ authorizationKey?: string; /** * Express Route Circuit connection state. Possible values include: 'Connected', 'Connecting', * 'Disconnected' */ circuitConnectionStatus?: string; /** * Provisioning state of the circuit connection resource. Possible values are: 'Succeeded', * 'Updating', 'Deleting', and 'Failed'. */ readonly provisioningState?: string; /** * Gets name of the resource that is unique within a resource group. This name can be used to * access the resource. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ readonly etag?: string; } /** * Peer Express Route Circuit Connection in an ExpressRouteCircuitPeering resource. */ export interface PeerExpressRouteCircuitConnection extends SubResource { /** * Reference to Express Route Circuit Private Peering Resource of the circuit. */ expressRouteCircuitPeering?: SubResource; /** * Reference to Express Route Circuit Private Peering Resource of the peered circuit. */ peerExpressRouteCircuitPeering?: SubResource; /** * /29 IP address space to carve out Customer addresses for tunnels. */ addressPrefix?: string; /** * Express Route Circuit connection state. Possible values include: 'Connected', 'Connecting', * 'Disconnected' */ circuitConnectionStatus?: string; /** * The name of the express route circuit connection resource. */ connectionName?: string; /** * The resource guid of the authorization used for the express route circuit connection. */ authResourceGuid?: string; /** * Provisioning state of the peer express route circuit connection resource. Possible values are: * 'Succeeded', 'Updating', 'Deleting', and 'Failed'. */ readonly provisioningState?: string; /** * Gets name of the resource that is unique within a resource group. This name can be used to * access the resource. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ readonly etag?: string; } /** * Peering in an ExpressRouteCircuit resource. */ export interface ExpressRouteCircuitPeering extends SubResource { /** * The peering type. Possible values include: 'AzurePublicPeering', 'AzurePrivatePeering', * 'MicrosoftPeering' */ peeringType?: string; /** * The peering state. Possible values include: 'Disabled', 'Enabled' */ state?: string; /** * The Azure ASN. */ azureASN?: number; /** * The peer ASN. */ peerASN?: number; /** * The primary address prefix. */ primaryPeerAddressPrefix?: string; /** * The secondary address prefix. */ secondaryPeerAddressPrefix?: string; /** * The primary port. */ primaryAzurePort?: string; /** * The secondary port. */ secondaryAzurePort?: string; /** * The shared key. */ sharedKey?: string; /** * The VLAN ID. */ vlanId?: number; /** * The Microsoft peering configuration. */ microsoftPeeringConfig?: ExpressRouteCircuitPeeringConfig; /** * Gets peering stats. */ stats?: ExpressRouteCircuitStats; /** * Gets the provisioning state of the public IP resource. Possible values are: 'Updating', * 'Deleting', and 'Failed'. */ provisioningState?: string; /** * The GatewayManager Etag. */ gatewayManagerEtag?: string; /** * Gets whether the provider or the customer last modified the peering. */ lastModifiedBy?: string; /** * The reference of the RouteFilter resource. */ routeFilter?: RouteFilter; /** * The IPv6 peering configuration. */ ipv6PeeringConfig?: Ipv6ExpressRouteCircuitPeeringConfig; /** * The ExpressRoute connection. */ expressRouteConnection?: ExpressRouteConnectionId; /** * The list of circuit connections associated with Azure Private Peering for this circuit. */ connections?: ExpressRouteCircuitConnection[]; /** * The list of peered circuit connections associated with Azure Private Peering for this circuit. */ readonly peeredConnections?: PeerExpressRouteCircuitConnection[]; /** * Gets name of the resource that is unique within a resource group. This name can be used to * access the resource. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ readonly etag?: string; } /** * Route Filter Resource. */ export interface RouteFilter extends Resource { /** * Collection of RouteFilterRules contained within a route filter. */ rules?: RouteFilterRule[]; /** * A collection of references to express route circuit peerings. */ peerings?: ExpressRouteCircuitPeering[]; /** * The provisioning state of the resource. Possible values are: 'Updating', 'Deleting', * 'Succeeded' and 'Failed'. */ readonly provisioningState?: string; /** * Gets a unique read-only string that changes whenever the resource is updated. */ readonly etag?: string; } /** * Contains IPv6 peering config. */ export interface Ipv6ExpressRouteCircuitPeeringConfig { /** * The primary address prefix. */ primaryPeerAddressPrefix?: string; /** * The secondary address prefix. */ secondaryPeerAddressPrefix?: string; /** * The Microsoft peering configuration. */ microsoftPeeringConfig?: ExpressRouteCircuitPeeringConfig; /** * The reference of the RouteFilter resource. */ routeFilter?: RouteFilter; /** * The state of peering. Possible values are: 'Disabled' and 'Enabled'. Possible values include: * 'Disabled', 'Enabled' */ state?: string; } /** * Contains SKU in an ExpressRouteCircuit. */ export interface ExpressRouteCircuitSku { /** * The name of the SKU. */ name?: string; /** * The tier of the SKU. Possible values are 'Standard', 'Premium' or 'Local'. Possible values * include: 'Standard', 'Premium', 'Basic', 'Local' */ tier?: string; /** * The family of the SKU. Possible values are: 'UnlimitedData' and 'MeteredData'. Possible values * include: 'UnlimitedData', 'MeteredData' */ family?: string; } /** * Contains ServiceProviderProperties in an ExpressRouteCircuit. */ export interface ExpressRouteCircuitServiceProviderProperties { /** * The serviceProviderName. */ serviceProviderName?: string; /** * The peering location. */ peeringLocation?: string; /** * The BandwidthInMbps. */ bandwidthInMbps?: number; } /** * ExpressRouteCircuit resource */ export interface ExpressRouteCircuit extends Resource { /** * The SKU. */ sku?: ExpressRouteCircuitSku; /** * Allow classic operations */ allowClassicOperations?: boolean; /** * The CircuitProvisioningState state of the resource. */ circuitProvisioningState?: string; /** * The ServiceProviderProvisioningState state of the resource. Possible values include: * 'NotProvisioned', 'Provisioning', 'Provisioned', 'Deprovisioning' */ serviceProviderProvisioningState?: string; /** * The list of authorizations. */ authorizations?: ExpressRouteCircuitAuthorization[]; /** * The list of peerings. */ peerings?: ExpressRouteCircuitPeering[]; /** * The ServiceKey. */ serviceKey?: string; /** * The ServiceProviderNotes. */ serviceProviderNotes?: string; /** * The ServiceProviderProperties. */ serviceProviderProperties?: ExpressRouteCircuitServiceProviderProperties; /** * The reference to the ExpressRoutePort resource when the circuit is provisioned on an * ExpressRoutePort resource. */ expressRoutePort?: SubResource; /** * The bandwidth of the circuit when the circuit is provisioned on an ExpressRoutePort resource. */ bandwidthInGbps?: number; /** * The identifier of the circuit traffic. Outer tag for QinQ encapsulation. */ readonly stag?: number; /** * Gets the provisioning state of the public IP resource. Possible values are: 'Updating', * 'Deleting', and 'Failed'. */ provisioningState?: string; /** * The GatewayManager Etag. */ gatewayManagerEtag?: string; /** * Flag denoting Global reach status. */ globalReachEnabled?: boolean; /** * Gets a unique read-only string that changes whenever the resource is updated. */ readonly etag?: string; } /** * The ARP table associated with the ExpressRouteCircuit. */ export interface ExpressRouteCircuitArpTable { /** * Entry age in minutes */ age?: number; /** * Interface address */ interfaceProperty?: string; /** * The IP address. */ ipAddress?: string; /** * The MAC address. */ macAddress?: string; } /** * Response for ListArpTable associated with the Express Route Circuits API. */ export interface ExpressRouteCircuitsArpTableListResult { /** * Gets list of the ARP table. */ value?: ExpressRouteCircuitArpTable[]; /** * The URL to get the next set of results. */ nextLink?: string; } /** * The routes table associated with the ExpressRouteCircuit */ export interface ExpressRouteCircuitRoutesTable { /** * IP address of a network entity */ network?: string; /** * NextHop address */ nextHop?: string; /** * Local preference value as set with the set local-preference route-map configuration command */ locPrf?: string; /** * Route Weight. */ weight?: number; /** * Autonomous system paths to the destination network. */ path?: string; } /** * Response for ListRoutesTable associated with the Express Route Circuits API. */ export interface ExpressRouteCircuitsRoutesTableListResult { /** * The list of routes table. */ value?: ExpressRouteCircuitRoutesTable[]; /** * The URL to get the next set of results. */ nextLink?: string; } /** * The routes table associated with the ExpressRouteCircuit. */ export interface ExpressRouteCircuitRoutesTableSummary { /** * IP address of the neighbor. */ neighbor?: string; /** * BGP version number spoken to the neighbor. */ v?: number; /** * Autonomous system number. */ as?: number; /** * The length of time that the BGP session has been in the Established state, or the current * status if not in the Established state. */ upDown?: string; /** * Current state of the BGP session, and the number of prefixes that have been received from a * neighbor or peer group. */ statePfxRcd?: string; } /** * Response for ListRoutesTable associated with the Express Route Circuits API. */ export interface ExpressRouteCircuitsRoutesTableSummaryListResult { /** * A list of the routes table. */ value?: ExpressRouteCircuitRoutesTableSummary[]; /** * The URL to get the next set of results. */ nextLink?: string; } /** * Contains bandwidths offered in ExpressRouteServiceProvider resources. */ export interface ExpressRouteServiceProviderBandwidthsOffered { /** * The OfferName. */ offerName?: string; /** * The ValueInMbps. */ valueInMbps?: number; } /** * A ExpressRouteResourceProvider object. */ export interface ExpressRouteServiceProvider extends Resource { /** * Get a list of peering locations. */ peeringLocations?: string[]; /** * Gets bandwidths offered. */ bandwidthsOffered?: ExpressRouteServiceProviderBandwidthsOffered[]; /** * Gets the provisioning state of the resource. */ provisioningState?: string; } /** * The routes table associated with the ExpressRouteCircuit. */ export interface ExpressRouteCrossConnectionRoutesTableSummary { /** * IP address of Neighbor router */ neighbor?: string; /** * Autonomous system number. */ asn?: number; /** * The length of time that the BGP session has been in the Established state, or the current * status if not in the Established state. */ upDown?: string; /** * Current state of the BGP session, and the number of prefixes that have been received from a * neighbor or peer group. */ stateOrPrefixesReceived?: string; } /** * Response for ListRoutesTable associated with the Express Route Cross Connections. */ export interface ExpressRouteCrossConnectionsRoutesTableSummaryListResult { /** * A list of the routes table. */ value?: ExpressRouteCrossConnectionRoutesTableSummary[]; /** * The URL to get the next set of results. */ readonly nextLink?: string; } /** * Reference to an express route circuit. */ export interface ExpressRouteCircuitReference { /** * Corresponding Express Route Circuit Id. */ id?: string; } /** * Peering in an ExpressRoute Cross Connection resource. */ export interface ExpressRouteCrossConnectionPeering extends SubResource { /** * The peering type. Possible values include: 'AzurePublicPeering', 'AzurePrivatePeering', * 'MicrosoftPeering' */ peeringType?: string; /** * The peering state. Possible values include: 'Disabled', 'Enabled' */ state?: string; /** * The Azure ASN. */ readonly azureASN?: number; /** * The peer ASN. */ peerASN?: number; /** * The primary address prefix. */ primaryPeerAddressPrefix?: string; /** * The secondary address prefix. */ secondaryPeerAddressPrefix?: string; /** * The primary port. */ readonly primaryAzurePort?: string; /** * The secondary port. */ readonly secondaryAzurePort?: string; /** * The shared key. */ sharedKey?: string; /** * The VLAN ID. */ vlanId?: number; /** * The Microsoft peering configuration. */ microsoftPeeringConfig?: ExpressRouteCircuitPeeringConfig; /** * Gets the provisioning state of the public IP resource. Possible values are: 'Updating', * 'Deleting', and 'Failed'. */ readonly provisioningState?: string; /** * The GatewayManager Etag. */ gatewayManagerEtag?: string; /** * Gets whether the provider or the customer last modified the peering. */ lastModifiedBy?: string; /** * The IPv6 peering configuration. */ ipv6PeeringConfig?: Ipv6ExpressRouteCircuitPeeringConfig; /** * Gets name of the resource that is unique within a resource group. This name can be used to * access the resource. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ readonly etag?: string; } /** * ExpressRouteCrossConnection resource */ export interface ExpressRouteCrossConnection extends Resource { /** * The name of the primary port. */ readonly primaryAzurePort?: string; /** * The name of the secondary port. */ readonly secondaryAzurePort?: string; /** * The identifier of the circuit traffic. */ readonly sTag?: number; /** * The peering location of the ExpressRoute circuit. */ peeringLocation?: string; /** * The circuit bandwidth In Mbps. */ bandwidthInMbps?: number; /** * The ExpressRouteCircuit */ expressRouteCircuit?: ExpressRouteCircuitReference; /** * The provisioning state of the circuit in the connectivity provider system. Possible values * include: 'NotProvisioned', 'Provisioning', 'Provisioned', 'Deprovisioning' */ serviceProviderProvisioningState?: string; /** * Additional read only notes set by the connectivity provider. */ serviceProviderNotes?: string; /** * Gets the provisioning state of the public IP resource. Possible values are: 'Updating', * 'Deleting', and 'Failed'. */ readonly provisioningState?: string; /** * The list of peerings. */ peerings?: ExpressRouteCrossConnectionPeering[]; /** * Gets a unique read-only string that changes whenever the resource is updated. */ readonly etag?: string; } /** * Virtual Hub identifier. */ export interface VirtualHubId { /** * The resource URI for the Virtual Hub where the ExpressRoute gateway is or will be deployed. * The Virtual Hub resource and the ExpressRoute gateway resource reside in the same * subscription. */ id?: string; } /** * ExpressRoute circuit peering identifier. */ export interface ExpressRouteCircuitPeeringId { /** * The ID of the ExpressRoute circuit peering. */ id?: string; } /** * Minimum and maximum number of scale units to deploy. */ export interface ExpressRouteGatewayPropertiesAutoScaleConfigurationBounds { /** * Minimum number of scale units deployed for ExpressRoute gateway. */ min?: number; /** * Maximum number of scale units deployed for ExpressRoute gateway. */ max?: number; } /** * Configuration for auto scaling. */ export interface ExpressRouteGatewayPropertiesAutoScaleConfiguration { /** * Minimum and maximum number of scale units to deploy. */ bounds?: ExpressRouteGatewayPropertiesAutoScaleConfigurationBounds; } /** * ExpressRouteConnection resource. */ export interface ExpressRouteConnection extends SubResource { /** * The provisioning state of the resource. Possible values include: 'Succeeded', 'Updating', * 'Deleting', 'Failed' */ provisioningState?: string; /** * The ExpressRoute circuit peering. */ expressRouteCircuitPeering: ExpressRouteCircuitPeeringId; /** * Authorization key to establish the connection. */ authorizationKey?: string; /** * The routing weight associated to the connection. */ routingWeight?: number; /** * The name of the resource. */ name: string; } /** * ExpressRoute gateway resource. */ export interface ExpressRouteGateway extends Resource { /** * Configuration for auto scaling. */ autoScaleConfiguration?: ExpressRouteGatewayPropertiesAutoScaleConfiguration; /** * List of ExpressRoute connections to the ExpressRoute gateway. */ readonly expressRouteConnections?: ExpressRouteConnection[]; /** * The provisioning state of the resource. Possible values include: 'Succeeded', 'Updating', * 'Deleting', 'Failed' */ provisioningState?: string; /** * The Virtual Hub where the ExpressRoute gateway is or will be deployed. */ virtualHub: VirtualHubId; /** * A unique read-only string that changes whenever the resource is updated. */ readonly etag?: string; } /** * List of ExpressRoute gateways. */ export interface ExpressRouteGatewayList { /** * List of ExpressRoute gateways. */ value?: ExpressRouteGateway[]; } /** * ExpressRouteConnection list */ export interface ExpressRouteConnectionList { /** * The list of ExpressRoute connections */ value?: ExpressRouteConnection[]; } /** * @summary ExpressRoutePorts Location Bandwidths * @description Real-time inventory of available ExpressRoute port bandwidths. */ export interface ExpressRoutePortsLocationBandwidths { /** * Bandwidth descriptive name */ readonly offerName?: string; /** * Bandwidth value in Gbps */ readonly valueInGbps?: number; } /** * @summary ExpressRoutePorts Peering Location * @description Definition of the ExpressRoutePorts peering location resource. */ export interface ExpressRoutePortsLocation extends Resource { /** * Address of peering location. */ readonly address?: string; /** * Contact details of peering locations. */ readonly contact?: string; /** * The inventory of available ExpressRoutePort bandwidths. */ availableBandwidths?: ExpressRoutePortsLocationBandwidths[]; /** * The provisioning state of the ExpressRoutePortLocation resource. Possible values are: * 'Succeeded', 'Updating', 'Deleting', and 'Failed'. */ readonly provisioningState?: string; } /** * @summary ExpressRouteLink * @description ExpressRouteLink child resource definition. */ export interface ExpressRouteLink extends SubResource { /** * Name of Azure router associated with physical port. */ readonly routerName?: string; /** * Name of Azure router interface. */ readonly interfaceName?: string; /** * Mapping between physical port to patch panel port. */ readonly patchPanelId?: string; /** * Mapping of physical patch panel to rack. */ readonly rackId?: string; /** * Physical fiber port type. Possible values include: 'LC', 'SC' */ readonly connectorType?: string; /** * Administrative state of the physical port. Possible values include: 'Enabled', 'Disabled' */ adminState?: string; /** * The provisioning state of the ExpressRouteLink resource. Possible values are: 'Succeeded', * 'Updating', 'Deleting', and 'Failed'. */ readonly provisioningState?: string; /** * Name of child port resource that is unique among child port resources of the parent. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ readonly etag?: string; } /** * @summary ExpressRoute Port * @description ExpressRoutePort resource definition. */ export interface ExpressRoutePort extends Resource { /** * The name of the peering location that the ExpressRoutePort is mapped to physically. */ peeringLocation?: string; /** * Bandwidth of procured ports in Gbps */ bandwidthInGbps?: number; /** * Aggregate Gbps of associated circuit bandwidths. */ readonly provisionedBandwidthInGbps?: number; /** * Maximum transmission unit of the physical port pair(s) */ readonly mtu?: string; /** * Encapsulation method on physical ports. Possible values include: 'Dot1Q', 'QinQ' */ encapsulation?: string; /** * Ether type of the physical port. */ readonly etherType?: string; /** * Date of the physical port allocation to be used in Letter of Authorization. */ readonly allocationDate?: string; /** * @summary ExpressRouteLink Sub-Resources * @description The set of physical links of the ExpressRoutePort resource */ links?: ExpressRouteLink[]; /** * Reference the ExpressRoute circuit(s) that are provisioned on this ExpressRoutePort resource. */ readonly circuits?: SubResource[]; /** * The provisioning state of the ExpressRoutePort resource. Possible values are: 'Succeeded', * 'Updating', 'Deleting', and 'Failed'. */ readonly provisioningState?: string; /** * The resource GUID property of the ExpressRoutePort resource. */ resourceGuid?: string; /** * A unique read-only string that changes whenever the resource is updated. */ readonly etag?: string; } /** * SKU of a load balancer */ export interface LoadBalancerSku { /** * Name of a load balancer SKU. Possible values include: 'Basic', 'Standard' */ name?: string; } /** * A load balancing rule for a load balancer. */ export interface LoadBalancingRule extends SubResource { /** * A reference to frontend IP addresses. */ frontendIPConfiguration?: SubResource; /** * A reference to a pool of DIPs. Inbound traffic is randomly load balanced across IPs in the * backend IPs. */ backendAddressPool?: SubResource; /** * The reference of the load balancer probe used by the load balancing rule. */ probe?: SubResource; /** * The reference to the transport protocol used by the load balancing rule. Possible values * include: 'Udp', 'Tcp', 'All' */ protocol: string; /** * The load distribution policy for this rule. Possible values are 'Default', 'SourceIP', and * 'SourceIPProtocol'. Possible values include: 'Default', 'SourceIP', 'SourceIPProtocol' */ loadDistribution?: string; /** * The port for the external endpoint. Port numbers for each rule must be unique within the Load * Balancer. Acceptable values are between 0 and 65534. Note that value 0 enables "Any Port" */ frontendPort: number; /** * The port used for internal connections on the endpoint. Acceptable values are between 0 and * 65535. Note that value 0 enables "Any Port" */ backendPort?: number; /** * The timeout for the TCP idle connection. The value can be set between 4 and 30 minutes. The * default value is 4 minutes. This element is only used when the protocol is set to TCP. */ idleTimeoutInMinutes?: number; /** * Configures a virtual machine's endpoint for the floating IP capability required to configure a * SQL AlwaysOn Availability Group. This setting is required when using the SQL AlwaysOn * Availability Groups in SQL server. This setting can't be changed after you create the * endpoint. */ enableFloatingIP?: boolean; /** * Receive bidirectional TCP Reset on TCP flow idle timeout or unexpected connection termination. * This element is only used when the protocol is set to TCP. */ enableTcpReset?: boolean; /** * Configures SNAT for the VMs in the backend pool to use the publicIP address specified in the * frontend of the load balancing rule. */ disableOutboundSnat?: boolean; /** * Gets the provisioning state of the PublicIP resource. Possible values are: 'Updating', * 'Deleting', and 'Failed'. */ provisioningState?: string; /** * The name of the resource that is unique within a resource group. This name can be used to * access the resource. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; } /** * A load balancer probe. */ export interface Probe extends SubResource { /** * The load balancer rules that use this probe. */ readonly loadBalancingRules?: SubResource[]; /** * The protocol of the end point. Possible values are: 'Http', 'Tcp', or 'Https'. If 'Tcp' is * specified, a received ACK is required for the probe to be successful. If 'Http' or 'Https' is * specified, a 200 OK response from the specifies URI is required for the probe to be * successful. Possible values include: 'Http', 'Tcp', 'Https' */ protocol: string; /** * The port for communicating the probe. Possible values range from 1 to 65535, inclusive. */ port: number; /** * The interval, in seconds, for how frequently to probe the endpoint for health status. * Typically, the interval is slightly less than half the allocated timeout period (in seconds) * which allows two full probes before taking the instance out of rotation. The default value is * 15, the minimum value is 5. */ intervalInSeconds?: number; /** * The number of probes where if no response, will result in stopping further traffic from being * delivered to the endpoint. This values allows endpoints to be taken out of rotation faster or * slower than the typical times used in Azure. */ numberOfProbes?: number; /** * The URI used for requesting health status from the VM. Path is required if a protocol is set * to http. Otherwise, it is not allowed. There is no default value. */ requestPath?: string; /** * Gets the provisioning state of the public IP resource. Possible values are: 'Updating', * 'Deleting', and 'Failed'. */ provisioningState?: string; /** * Gets name of the resource that is unique within a resource group. This name can be used to * access the resource. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; } /** * Inbound NAT pool of the load balancer. */ export interface InboundNatPool extends SubResource { /** * A reference to frontend IP addresses. */ frontendIPConfiguration?: SubResource; /** * The reference to the transport protocol used by the inbound NAT pool. Possible values include: * 'Udp', 'Tcp', 'All' */ protocol: string; /** * The first port number in the range of external ports that will be used to provide Inbound Nat * to NICs associated with a load balancer. Acceptable values range between 1 and 65534. */ frontendPortRangeStart: number; /** * The last port number in the range of external ports that will be used to provide Inbound Nat * to NICs associated with a load balancer. Acceptable values range between 1 and 65535. */ frontendPortRangeEnd: number; /** * The port used for internal connections on the endpoint. Acceptable values are between 1 and * 65535. */ backendPort: number; /** * The timeout for the TCP idle connection. The value can be set between 4 and 30 minutes. The * default value is 4 minutes. This element is only used when the protocol is set to TCP. */ idleTimeoutInMinutes?: number; /** * Configures a virtual machine's endpoint for the floating IP capability required to configure a * SQL AlwaysOn Availability Group. This setting is required when using the SQL AlwaysOn * Availability Groups in SQL server. This setting can't be changed after you create the * endpoint. */ enableFloatingIP?: boolean; /** * Receive bidirectional TCP Reset on TCP flow idle timeout or unexpected connection termination. * This element is only used when the protocol is set to TCP. */ enableTcpReset?: boolean; /** * Gets the provisioning state of the PublicIP resource. Possible values are: 'Updating', * 'Deleting', and 'Failed'. */ provisioningState?: string; /** * The name of the resource that is unique within a resource group. This name can be used to * access the resource. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; } /** * Outbound pool of the load balancer. */ export interface OutboundRule extends SubResource { /** * The number of outbound ports to be used for NAT. */ allocatedOutboundPorts?: number; /** * The Frontend IP addresses of the load balancer. */ frontendIPConfigurations: SubResource[]; /** * A reference to a pool of DIPs. Outbound traffic is randomly load balanced across IPs in the * backend IPs. */ backendAddressPool: SubResource; /** * Gets the provisioning state of the PublicIP resource. Possible values are: 'Updating', * 'Deleting', and 'Failed'. */ provisioningState?: string; /** * The protocol for the outbound rule in load balancer. Possible values are: 'Tcp', 'Udp', and * 'All'. Possible values include: 'Tcp', 'Udp', 'All' */ protocol: string; /** * Receive bidirectional TCP Reset on TCP flow idle timeout or unexpected connection termination. * This element is only used when the protocol is set to TCP. */ enableTcpReset?: boolean; /** * The timeout for the TCP idle connection */ idleTimeoutInMinutes?: number; /** * The name of the resource that is unique within a resource group. This name can be used to * access the resource. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; } /** * LoadBalancer resource */ export interface LoadBalancer extends Resource { /** * The load balancer SKU. */ sku?: LoadBalancerSku; /** * Object representing the frontend IPs to be used for the load balancer */ frontendIPConfigurations?: FrontendIPConfiguration[]; /** * Collection of backend address pools used by a load balancer */ backendAddressPools?: BackendAddressPool[]; /** * Object collection representing the load balancing rules Gets the provisioning */ loadBalancingRules?: LoadBalancingRule[]; /** * Collection of probe objects used in the load balancer */ probes?: Probe[]; /** * Collection of inbound NAT Rules used by a load balancer. Defining inbound NAT rules on your * load balancer is mutually exclusive with defining an inbound NAT pool. Inbound NAT pools are * referenced from virtual machine scale sets. NICs that are associated with individual virtual * machines cannot reference an Inbound NAT pool. They have to reference individual inbound NAT * rules. */ inboundNatRules?: InboundNatRule[]; /** * Defines an external port range for inbound NAT to a single backend port on NICs associated * with a load balancer. Inbound NAT rules are created automatically for each NIC associated with * the Load Balancer using an external port from this range. Defining an Inbound NAT pool on your * Load Balancer is mutually exclusive with defining inbound Nat rules. Inbound NAT pools are * referenced from virtual machine scale sets. NICs that are associated with individual virtual * machines cannot reference an inbound NAT pool. They have to reference individual inbound NAT * rules. */ inboundNatPools?: InboundNatPool[]; /** * The outbound rules. */ outboundRules?: OutboundRule[]; /** * The resource GUID property of the load balancer resource. */ resourceGuid?: string; /** * Gets the provisioning state of the PublicIP resource. Possible values are: 'Updating', * 'Deleting', and 'Failed'. */ provisioningState?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; } /** * SKU of nat gateway */ export interface NatGatewaySku { /** * Name of Nat Gateway SKU. Possible values include: 'Standard' */ name?: string; } /** * Nat Gateway resource. */ export interface NatGateway extends Resource { /** * The nat gateway SKU. */ sku?: NatGatewaySku; /** * The idle timeout of the nat gateway. */ idleTimeoutInMinutes?: number; /** * An array of public ip addresses associated with the nat gateway resource. */ publicIpAddresses?: SubResource[]; /** * An array of public ip prefixes associated with the nat gateway resource. */ publicIpPrefixes?: SubResource[]; /** * An array of references to the subnets using this nat gateway resource. */ readonly subnets?: SubResource[]; /** * The resource GUID property of the nat gateway resource. */ resourceGuid?: string; /** * The provisioning state of the NatGateway resource. Possible values are: 'Updating', * 'Deleting', and 'Failed'. */ provisioningState?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; } /** * The response body contains the status of the specified asynchronous operation, indicating * whether it has succeeded, is in progress, or has failed. Note that this status is distinct from * the HTTP status code returned for the Get Operation Status operation itself. If the asynchronous * operation succeeded, the response body includes the HTTP status code for the successful request. * If the asynchronous operation failed, the response body includes the HTTP status code for the * failed request and error information regarding the failure. */ export interface AzureAsyncOperationResult { /** * Status of the Azure async operation. Possible values are: 'InProgress', 'Succeeded', and * 'Failed'. Possible values include: 'InProgress', 'Succeeded', 'Failed' */ status?: string; /** * Details of the error occurred during specified asynchronous operation. */ error?: ErrorModel; } /** * The effective network security group association. */ export interface EffectiveNetworkSecurityGroupAssociation { /** * The ID of the subnet if assigned. */ subnet?: SubResource; /** * The ID of the network interface if assigned. */ networkInterface?: SubResource; } /** * Effective network security rules. */ export interface EffectiveNetworkSecurityRule { /** * The name of the security rule specified by the user (if created by the user). */ name?: string; /** * The network protocol this rule applies to. Possible values are: 'Tcp', 'Udp', and 'All'. * Possible values include: 'Tcp', 'Udp', 'All' */ protocol?: string; /** * The source port or range. */ sourcePortRange?: string; /** * The destination port or range. */ destinationPortRange?: string; /** * The source port ranges. Expected values include a single integer between 0 and 65535, a range * using '-' as separator (e.g. 100-400), or an asterisk (*) */ sourcePortRanges?: string[]; /** * The destination port ranges. Expected values include a single integer between 0 and 65535, a * range using '-' as separator (e.g. 100-400), or an asterisk (*) */ destinationPortRanges?: string[]; /** * The source address prefix. */ sourceAddressPrefix?: string; /** * The destination address prefix. */ destinationAddressPrefix?: string; /** * The source address prefixes. Expected values include CIDR IP ranges, Default Tags * (VirtualNetwork, AzureLoadBalancer, Internet), System Tags, and the asterisk (*). */ sourceAddressPrefixes?: string[]; /** * The destination address prefixes. Expected values include CIDR IP ranges, Default Tags * (VirtualNetwork, AzureLoadBalancer, Internet), System Tags, and the asterisk (*). */ destinationAddressPrefixes?: string[]; /** * The expanded source address prefix. */ expandedSourceAddressPrefix?: string[]; /** * Expanded destination address prefix. */ expandedDestinationAddressPrefix?: string[]; /** * Whether network traffic is allowed or denied. Possible values include: 'Allow', 'Deny' */ access?: string; /** * The priority of the rule. */ priority?: number; /** * The direction of the rule. Possible values include: 'Inbound', 'Outbound' */ direction?: string; } /** * Effective network security group. */ export interface EffectiveNetworkSecurityGroup { /** * The ID of network security group that is applied. */ networkSecurityGroup?: SubResource; /** * Associated resources. */ association?: EffectiveNetworkSecurityGroupAssociation; /** * A collection of effective security rules. */ effectiveSecurityRules?: EffectiveNetworkSecurityRule[]; /** * Mapping of tags to list of IP Addresses included within the tag. */ tagMap?: { [propertyName: string]: string[] }; } /** * Response for list effective network security groups API service call. */ export interface EffectiveNetworkSecurityGroupListResult { /** * A list of effective network security groups. */ value?: EffectiveNetworkSecurityGroup[]; /** * The URL to get the next set of results. */ readonly nextLink?: string; } /** * Effective Route */ export interface EffectiveRoute { /** * The name of the user defined route. This is optional. */ name?: string; /** * If true, on-premises routes are not propagated to the network interfaces in the subnet. */ disableBgpRoutePropagation?: boolean; /** * Who created the route. Possible values are: 'Unknown', 'User', 'VirtualNetworkGateway', and * 'Default'. Possible values include: 'Unknown', 'User', 'VirtualNetworkGateway', 'Default' */ source?: string; /** * The value of effective route. Possible values are: 'Active' and 'Invalid'. Possible values * include: 'Active', 'Invalid' */ state?: string; /** * The address prefixes of the effective routes in CIDR notation. */ addressPrefix?: string[]; /** * The IP address of the next hop of the effective route. */ nextHopIpAddress?: string[]; /** * The type of Azure hop the packet should be sent to. Possible values include: * 'VirtualNetworkGateway', 'VnetLocal', 'Internet', 'VirtualAppliance', 'None' */ nextHopType?: string; } /** * Response for list effective route API service call. */ export interface EffectiveRouteListResult { /** * A list of effective routes. */ value?: EffectiveRoute[]; /** * The URL to get the next set of results. */ readonly nextLink?: string; } /** * Container network interface configuration child resource. */ export interface ContainerNetworkInterfaceConfiguration extends SubResource { /** * A list of ip configurations of the container network interface configuration. */ ipConfigurations?: IPConfigurationProfile[]; /** * A list of container network interfaces created from this container network interface * configuration. */ containerNetworkInterfaces?: SubResource[]; /** * The provisioning state of the resource. */ readonly provisioningState?: string; /** * The name of the resource. This name can be used to access the resource. */ name?: string; /** * Sub Resource type. */ readonly type?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; } /** * Reference to container resource in remote resource provider. */ export interface Container extends SubResource { } /** * The ip configuration for a container network interface. */ export interface ContainerNetworkInterfaceIpConfiguration { /** * The provisioning state of the resource. */ readonly provisioningState?: string; /** * The name of the resource. This name can be used to access the resource. */ name?: string; /** * Sub Resource type. */ readonly type?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; } /** * Container network interface child resource. */ export interface ContainerNetworkInterface extends SubResource { /** * Container network interface configuration from which this container network interface is * created. */ containerNetworkInterfaceConfiguration?: ContainerNetworkInterfaceConfiguration; /** * Reference to the container to which this container network interface is attached. */ container?: Container; /** * Reference to the ip configuration on this container nic. */ ipConfigurations?: ContainerNetworkInterfaceIpConfiguration[]; /** * The provisioning state of the resource. */ readonly provisioningState?: string; /** * The name of the resource. This name can be used to access the resource. */ name?: string; /** * Sub Resource type. */ readonly type?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; } /** * Network profile resource. */ export interface NetworkProfile extends Resource { /** * List of child container network interfaces. */ containerNetworkInterfaces?: ContainerNetworkInterface[]; /** * List of chid container network interface configurations. */ containerNetworkInterfaceConfigurations?: ContainerNetworkInterfaceConfiguration[]; /** * The resource GUID property of the network interface resource. */ readonly resourceGuid?: string; /** * The provisioning state of the resource. */ readonly provisioningState?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; } /** * The error object. */ export interface ErrorResponse { /** * @summary Error * @description The error details object. */ error?: ErrorDetails; } /** * Network watcher in a resource group. */ export interface NetworkWatcher extends Resource { /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; /** * The provisioning state of the resource. Possible values include: 'Succeeded', 'Updating', * 'Deleting', 'Failed' */ provisioningState?: string; } /** * Parameters that define the representation of topology. */ export interface TopologyParameters { /** * The name of the target resource group to perform topology on. */ targetResourceGroupName?: string; /** * The reference of the Virtual Network resource. */ targetVirtualNetwork?: SubResource; /** * The reference of the Subnet resource. */ targetSubnet?: SubResource; } /** * Resources that have an association with the parent resource. */ export interface TopologyAssociation { /** * The name of the resource that is associated with the parent resource. */ name?: string; /** * The ID of the resource that is associated with the parent resource. */ resourceId?: string; /** * The association type of the child resource to the parent resource. Possible values include: * 'Associated', 'Contains' */ associationType?: string; } /** * The network resource topology information for the given resource group. */ export interface TopologyResource { /** * Name of the resource. */ name?: string; /** * ID of the resource. */ id?: string; /** * Resource location. */ location?: string; /** * Holds the associations the resource has with other resources in the resource group. */ associations?: TopologyAssociation[]; } /** * Topology of the specified resource group. */ export interface Topology { /** * GUID representing the operation id. */ readonly id?: string; /** * The datetime when the topology was initially created for the resource group. */ readonly createdDateTime?: Date; /** * The datetime when the topology was last modified. */ readonly lastModified?: Date; /** * A list of topology resources. */ resources?: TopologyResource[]; } /** * Parameters that define the IP flow to be verified. */ export interface VerificationIPFlowParameters { /** * The ID of the target resource to perform next-hop on. */ targetResourceId: string; /** * The direction of the packet represented as a 5-tuple. Possible values include: 'Inbound', * 'Outbound' */ direction: string; /** * Protocol to be verified on. Possible values include: 'TCP', 'UDP' */ protocol: string; /** * The local port. Acceptable values are a single integer in the range (0-65535). Support for * * for the source port, which depends on the direction. */ localPort: string; /** * The remote port. Acceptable values are a single integer in the range (0-65535). Support for * * for the source port, which depends on the direction. */ remotePort: string; /** * The local IP address. Acceptable values are valid IPv4 addresses. */ localIPAddress: string; /** * The remote IP address. Acceptable values are valid IPv4 addresses. */ remoteIPAddress: string; /** * The NIC ID. (If VM has multiple NICs and IP forwarding is enabled on any of them, then this * parameter must be specified. Otherwise optional). */ targetNicResourceId?: string; } /** * Results of IP flow verification on the target resource. */ export interface VerificationIPFlowResult { /** * Indicates whether the traffic is allowed or denied. Possible values include: 'Allow', 'Deny' */ access?: string; /** * Name of the rule. If input is not matched against any security rule, it is not displayed. */ ruleName?: string; } /** * Parameters that define the source and destination endpoint. */ export interface NextHopParameters { /** * The resource identifier of the target resource against which the action is to be performed. */ targetResourceId: string; /** * The source IP address. */ sourceIPAddress: string; /** * The destination IP address. */ destinationIPAddress: string; /** * The NIC ID. (If VM has multiple NICs and IP forwarding is enabled on any of the nics, then * this parameter must be specified. Otherwise optional). */ targetNicResourceId?: string; } /** * The information about next hop from the specified VM. */ export interface NextHopResult { /** * Next hop type. Possible values include: 'Internet', 'VirtualAppliance', * 'VirtualNetworkGateway', 'VnetLocal', 'HyperNetGateway', 'None' */ nextHopType?: string; /** * Next hop IP Address */ nextHopIpAddress?: string; /** * The resource identifier for the route table associated with the route being returned. If the * route being returned does not correspond to any user created routes then this field will be * the string 'System Route'. */ routeTableId?: string; } /** * Parameters that define the VM to check security groups for. */ export interface SecurityGroupViewParameters { /** * ID of the target VM. */ targetResourceId: string; } /** * Network interface and its custom security rules. */ export interface NetworkInterfaceAssociation { /** * Network interface ID. */ readonly id?: string; /** * Collection of custom security rules. */ securityRules?: SecurityRule[]; } /** * Subnet and it's custom security rules. */ export interface SubnetAssociation { /** * Subnet ID. */ readonly id?: string; /** * Collection of custom security rules. */ securityRules?: SecurityRule[]; } /** * All security rules associated with the network interface. */ export interface SecurityRuleAssociations { /** * Network interface and it's custom security rules. */ networkInterfaceAssociation?: NetworkInterfaceAssociation; /** * Subnet and it's custom security rules. */ subnetAssociation?: SubnetAssociation; /** * Collection of default security rules of the network security group. */ defaultSecurityRules?: SecurityRule[]; /** * Collection of effective security rules. */ effectiveSecurityRules?: EffectiveNetworkSecurityRule[]; } /** * Network interface and all its associated security rules. */ export interface SecurityGroupNetworkInterface { /** * ID of the network interface. */ id?: string; /** * All security rules associated with the network interface. */ securityRuleAssociations?: SecurityRuleAssociations; } /** * The information about security rules applied to the specified VM. */ export interface SecurityGroupViewResult { /** * List of network interfaces on the specified VM. */ networkInterfaces?: SecurityGroupNetworkInterface[]; } /** * Describes the storage location for a packet capture session. */ export interface PacketCaptureStorageLocation { /** * The ID of the storage account to save the packet capture session. Required if no local file * path is provided. */ storageId?: string; /** * The URI of the storage path to save the packet capture. Must be a well-formed URI describing * the location to save the packet capture. */ storagePath?: string; /** * A valid local path on the targeting VM. Must include the name of the capture file (*.cap). For * linux virtual machine it must start with /var/captures. Required if no storage ID is provided, * otherwise optional. */ filePath?: string; } /** * Filter that is applied to packet capture request. Multiple filters can be applied. */ export interface PacketCaptureFilter { /** * Protocol to be filtered on. Possible values include: 'TCP', 'UDP', 'Any' */ protocol?: string; /** * Local IP Address to be filtered on. Notation: "127.0.0.1" for single address entry. * "127.0.0.1-127.0.0.255" for range. "127.0.0.1;127.0.0.5"? for multiple entries. Multiple * ranges not currently supported. Mixing ranges with multiple entries not currently supported. * Default = null. */ localIPAddress?: string; /** * Local IP Address to be filtered on. Notation: "127.0.0.1" for single address entry. * "127.0.0.1-127.0.0.255" for range. "127.0.0.1;127.0.0.5;" for multiple entries. Multiple * ranges not currently supported. Mixing ranges with multiple entries not currently supported. * Default = null. */ remoteIPAddress?: string; /** * Local port to be filtered on. Notation: "80" for single port entry."80-85" for range. * "80;443;" for multiple entries. Multiple ranges not currently supported. Mixing ranges with * multiple entries not currently supported. Default = null. */ localPort?: string; /** * Remote port to be filtered on. Notation: "80" for single port entry."80-85" for range. * "80;443;" for multiple entries. Multiple ranges not currently supported. Mixing ranges with * multiple entries not currently supported. Default = null. */ remotePort?: string; } /** * Parameters that define the create packet capture operation. */ export interface PacketCaptureParameters { /** * The ID of the targeted resource, only VM is currently supported. */ target: string; /** * Number of bytes captured per packet, the remaining bytes are truncated. */ bytesToCapturePerPacket?: number; /** * Maximum size of the capture output. */ totalBytesPerSession?: number; /** * Maximum duration of the capture session in seconds. */ timeLimitInSeconds?: number; /** * Describes the storage location for a packet capture session. */ storageLocation: PacketCaptureStorageLocation; /** * A list of packet capture filters. */ filters?: PacketCaptureFilter[]; } /** * Parameters that define the create packet capture operation. */ export interface PacketCapture { /** * The ID of the targeted resource, only VM is currently supported. */ target: string; /** * Number of bytes captured per packet, the remaining bytes are truncated. */ bytesToCapturePerPacket?: number; /** * Maximum size of the capture output. */ totalBytesPerSession?: number; /** * Maximum duration of the capture session in seconds. */ timeLimitInSeconds?: number; /** * Describes the storage location for a packet capture session. */ storageLocation: PacketCaptureStorageLocation; /** * A list of packet capture filters. */ filters?: PacketCaptureFilter[]; } /** * Information about packet capture session. */ export interface PacketCaptureResult { /** * Name of the packet capture session. */ readonly name?: string; /** * ID of the packet capture operation. */ readonly id?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; /** * The ID of the targeted resource, only VM is currently supported. */ target: string; /** * Number of bytes captured per packet, the remaining bytes are truncated. */ bytesToCapturePerPacket?: number; /** * Maximum size of the capture output. */ totalBytesPerSession?: number; /** * Maximum duration of the capture session in seconds. */ timeLimitInSeconds?: number; /** * Describes the storage location for a packet capture session. */ storageLocation: PacketCaptureStorageLocation; /** * A list of packet capture filters. */ filters?: PacketCaptureFilter[]; /** * The provisioning state of the packet capture session. Possible values include: 'Succeeded', * 'Updating', 'Deleting', 'Failed' */ provisioningState?: string; } /** * Status of packet capture session. */ export interface PacketCaptureQueryStatusResult { /** * The name of the packet capture resource. */ name?: string; /** * The ID of the packet capture resource. */ id?: string; /** * The start time of the packet capture session. */ captureStartTime?: Date; /** * The status of the packet capture session. Possible values include: 'NotStarted', 'Running', * 'Stopped', 'Error', 'Unknown' */ packetCaptureStatus?: string; /** * The reason the current packet capture session was stopped. */ stopReason?: string; /** * List of errors of packet capture session. */ packetCaptureError?: string[]; } /** * Parameters that define the resource to troubleshoot. */ export interface TroubleshootingParameters { /** * The target resource to troubleshoot. */ targetResourceId: string; /** * The ID for the storage account to save the troubleshoot result. */ storageId: string; /** * The path to the blob to save the troubleshoot result in. */ storagePath: string; } /** * Parameters that define the resource to query the troubleshooting result. */ export interface QueryTroubleshootingParameters { /** * The target resource ID to query the troubleshooting result. */ targetResourceId: string; } /** * Recommended actions based on discovered issues. */ export interface TroubleshootingRecommendedActions { /** * ID of the recommended action. */ actionId?: string; /** * Description of recommended actions. */ actionText?: string; /** * The uri linking to a documentation for the recommended troubleshooting actions. */ actionUri?: string; /** * The information from the URI for the recommended troubleshooting actions. */ actionUriText?: string; } /** * Information gained from troubleshooting of specified resource. */ export interface TroubleshootingDetails { /** * The id of the get troubleshoot operation. */ id?: string; /** * Reason type of failure. */ reasonType?: string; /** * A summary of troubleshooting. */ summary?: string; /** * Details on troubleshooting results. */ detail?: string; /** * List of recommended actions. */ recommendedActions?: TroubleshootingRecommendedActions[]; } /** * Troubleshooting information gained from specified resource. */ export interface TroubleshootingResult { /** * The start time of the troubleshooting. */ startTime?: Date; /** * The end time of the troubleshooting. */ endTime?: Date; /** * The result code of the troubleshooting. */ code?: string; /** * Information from troubleshooting. */ results?: TroubleshootingDetails[]; } /** * Parameters that define the retention policy for flow log. */ export interface RetentionPolicyParameters { /** * Number of days to retain flow log records. */ days?: number; /** * Flag to enable/disable retention. */ enabled?: boolean; } /** * Parameters that define the flow log format. */ export interface FlowLogFormatParameters { /** * The file type of flow log. Possible values include: 'JSON' */ type?: string; /** * The version (revision) of the flow log. */ version?: number; } /** * Parameters that define a resource to query flow log and traffic analytics (optional) status. */ export interface FlowLogStatusParameters { /** * The target resource where getting the flow log and traffic analytics (optional) status. */ targetResourceId: string; } /** * Parameters that define the configuration of traffic analytics. */ export interface TrafficAnalyticsConfigurationProperties { /** * Flag to enable/disable traffic analytics. */ enabled: boolean; /** * The resource guid of the attached workspace */ workspaceId: string; /** * The location of the attached workspace */ workspaceRegion: string; /** * Resource Id of the attached workspace */ workspaceResourceId: string; /** * The interval in minutes which would decide how frequently TA service should do flow analytics */ trafficAnalyticsInterval?: number; } /** * Parameters that define the configuration of traffic analytics. */ export interface TrafficAnalyticsProperties { /** * Parameters that define the configuration of traffic analytics. */ networkWatcherFlowAnalyticsConfiguration: TrafficAnalyticsConfigurationProperties; } /** * Information on the configuration of flow log and traffic analytics (optional) . */ export interface FlowLogInformation { /** * The ID of the resource to configure for flow log and traffic analytics (optional) . */ targetResourceId: string; /** * ID of the storage account which is used to store the flow log. */ storageId: string; /** * Flag to enable/disable flow logging. */ enabled: boolean; /** * Parameters that define the retention policy for flow log. */ retentionPolicy?: RetentionPolicyParameters; /** * Parameters that define the flow log format. */ format?: FlowLogFormatParameters; /** * Parameters that define the configuration of traffic analytics. */ flowAnalyticsConfiguration?: TrafficAnalyticsProperties; } /** * Parameters that define the source of the connection. */ export interface ConnectivitySource { /** * The ID of the resource from which a connectivity check will be initiated. */ resourceId: string; /** * The source port from which a connectivity check will be performed. */ port?: number; } /** * Parameters that define destination of connection. */ export interface ConnectivityDestination { /** * The ID of the resource to which a connection attempt will be made. */ resourceId?: string; /** * The IP address or URI the resource to which a connection attempt will be made. */ address?: string; /** * Port on which check connectivity will be performed. */ port?: number; } /** * Describes the HTTP header. */ export interface HTTPHeader { /** * The name in HTTP header. */ name?: string; /** * The value in HTTP header. */ value?: string; } /** * HTTP configuration of the connectivity check. */ export interface HTTPConfiguration { /** * HTTP method. Possible values include: 'Get' */ method?: string; /** * List of HTTP headers. */ headers?: HTTPHeader[]; /** * Valid status codes. */ validStatusCodes?: number[]; } /** * Configuration of the protocol. */ export interface ProtocolConfiguration { /** * HTTP configuration of the connectivity check. */ hTTPConfiguration?: HTTPConfiguration; } /** * Parameters that determine how the connectivity check will be performed. */ export interface ConnectivityParameters { /** * Describes the source of the connection. */ source: ConnectivitySource; /** * Describes the destination of connection. */ destination: ConnectivityDestination; /** * Network protocol. Possible values include: 'Tcp', 'Http', 'Https', 'Icmp' */ protocol?: string; /** * Configuration of the protocol. */ protocolConfiguration?: ProtocolConfiguration; } /** * Information about an issue encountered in the process of checking for connectivity. */ export interface ConnectivityIssue { /** * The origin of the issue. Possible values include: 'Local', 'Inbound', 'Outbound' */ readonly origin?: string; /** * The severity of the issue. Possible values include: 'Error', 'Warning' */ readonly severity?: string; /** * The type of issue. Possible values include: 'Unknown', 'AgentStopped', 'GuestFirewall', * 'DnsResolution', 'SocketBind', 'NetworkSecurityRule', 'UserDefinedRoute', 'PortThrottled', * 'Platform' */ readonly type?: string; /** * Provides additional context on the issue. */ readonly context?: { [propertyName: string]: string }[]; } /** * Information about a hop between the source and the destination. */ export interface ConnectivityHop { /** * The type of the hop. */ readonly type?: string; /** * The ID of the hop. */ readonly id?: string; /** * The IP address of the hop. */ readonly address?: string; /** * The ID of the resource corresponding to this hop. */ readonly resourceId?: string; /** * List of next hop identifiers. */ readonly nextHopIds?: string[]; /** * List of issues. */ readonly issues?: ConnectivityIssue[]; } /** * Information on the connectivity status. */ export interface ConnectivityInformation { /** * List of hops between the source and the destination. */ readonly hops?: ConnectivityHop[]; /** * The connection status. Possible values include: 'Unknown', 'Connected', 'Disconnected', * 'Degraded' */ readonly connectionStatus?: string; /** * Average latency in milliseconds. */ readonly avgLatencyInMs?: number; /** * Minimum latency in milliseconds. */ readonly minLatencyInMs?: number; /** * Maximum latency in milliseconds. */ readonly maxLatencyInMs?: number; /** * Total number of probes sent. */ readonly probesSent?: number; /** * Number of failed probes. */ readonly probesFailed?: number; } /** * Parameters that define a geographic location. */ export interface AzureReachabilityReportLocation { /** * The name of the country. */ country: string; /** * The name of the state. */ state?: string; /** * The name of the city or town. */ city?: string; } /** * Geographic and time constraints for Azure reachability report. */ export interface AzureReachabilityReportParameters { /** * Parameters that define a geographic location. */ providerLocation: AzureReachabilityReportLocation; /** * List of Internet service providers. */ providers?: string[]; /** * Optional Azure regions to scope the query to. */ azureLocations?: string[]; /** * The start time for the Azure reachability report. */ startTime: Date; /** * The end time for the Azure reachability report. */ endTime: Date; } /** * Details on latency for a time series. */ export interface AzureReachabilityReportLatencyInfo { /** * The time stamp. */ timeStamp?: Date; /** * The relative latency score between 1 and 100, higher values indicating a faster connection. */ score?: number; } /** * Azure reachability report details for a given provider location. */ export interface AzureReachabilityReportItem { /** * The Internet service provider. */ provider?: string; /** * The Azure region. */ azureLocation?: string; /** * List of latency details for each of the time series. */ latencies?: AzureReachabilityReportLatencyInfo[]; } /** * Azure reachability report details. */ export interface AzureReachabilityReport { /** * The aggregation level of Azure reachability report. Can be Country, State or City. */ aggregationLevel: string; /** * Parameters that define a geographic location. */ providerLocation: AzureReachabilityReportLocation; /** * List of Azure reachability report items. */ reachabilityReport: AzureReachabilityReportItem[]; } /** * Constraints that determine the list of available Internet service providers. */ export interface AvailableProvidersListParameters { /** * A list of Azure regions. */ azureLocations?: string[]; /** * The country for available providers list. */ country?: string; /** * The state for available providers list. */ state?: string; /** * The city or town for available providers list. */ city?: string; } /** * City or town details. */ export interface AvailableProvidersListCity { /** * The city or town name. */ cityName?: string; /** * A list of Internet service providers. */ providers?: string[]; } /** * State details. */ export interface AvailableProvidersListState { /** * The state name. */ stateName?: string; /** * A list of Internet service providers. */ providers?: string[]; /** * List of available cities or towns in the state. */ cities?: AvailableProvidersListCity[]; } /** * Country details. */ export interface AvailableProvidersListCountry { /** * The country name. */ countryName?: string; /** * A list of Internet service providers. */ providers?: string[]; /** * List of available states in the country. */ states?: AvailableProvidersListState[]; } /** * List of available countries with details. */ export interface AvailableProvidersList { /** * List of available countries. */ countries: AvailableProvidersListCountry[]; } /** * Describes the source of connection monitor. */ export interface ConnectionMonitorSource { /** * The ID of the resource used as the source by connection monitor. */ resourceId: string; /** * The source port used by connection monitor. */ port?: number; } /** * Describes the destination of connection monitor. */ export interface ConnectionMonitorDestination { /** * The ID of the resource used as the destination by connection monitor. */ resourceId?: string; /** * Address of the connection monitor destination (IP or domain name). */ address?: string; /** * The destination port used by connection monitor. */ port?: number; } /** * Parameters that define the operation to create a connection monitor. */ export interface ConnectionMonitorParameters { /** * Describes the source of connection monitor. */ source: ConnectionMonitorSource; /** * Describes the destination of connection monitor. */ destination: ConnectionMonitorDestination; /** * Determines if the connection monitor will start automatically once created. */ autoStart?: boolean; /** * Monitoring interval in seconds. */ monitoringIntervalInSeconds?: number; } /** * Parameters that define the operation to create a connection monitor. */ export interface ConnectionMonitor { /** * Connection monitor location. */ location?: string; /** * Connection monitor tags. */ tags?: { [propertyName: string]: string }; /** * Describes the source of connection monitor. */ source: ConnectionMonitorSource; /** * Describes the destination of connection monitor. */ destination: ConnectionMonitorDestination; /** * Determines if the connection monitor will start automatically once created. */ autoStart?: boolean; /** * Monitoring interval in seconds. */ monitoringIntervalInSeconds?: number; } /** * Information about the connection monitor. */ export interface ConnectionMonitorResult extends BaseResource { /** * Name of the connection monitor. */ readonly name?: string; /** * ID of the connection monitor. */ readonly id?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; /** * Connection monitor type. */ readonly type?: string; /** * Connection monitor location. */ location?: string; /** * Connection monitor tags. */ tags?: { [propertyName: string]: string }; /** * Describes the source of connection monitor. */ source: ConnectionMonitorSource; /** * Describes the destination of connection monitor. */ destination: ConnectionMonitorDestination; /** * Determines if the connection monitor will start automatically once created. */ autoStart?: boolean; /** * Monitoring interval in seconds. */ monitoringIntervalInSeconds?: number; /** * The provisioning state of the connection monitor. Possible values include: 'Succeeded', * 'Updating', 'Deleting', 'Failed' */ provisioningState?: string; /** * The date and time when the connection monitor was started. */ startTime?: Date; /** * The monitoring status of the connection monitor. */ monitoringStatus?: string; } /** * Connection state snapshot. */ export interface ConnectionStateSnapshot { /** * The connection state. Possible values include: 'Reachable', 'Unreachable', 'Unknown' */ connectionState?: string; /** * The start time of the connection snapshot. */ startTime?: Date; /** * The end time of the connection snapshot. */ endTime?: Date; /** * Connectivity analysis evaluation state. Possible values include: 'NotStarted', 'InProgress', * 'Completed' */ evaluationState?: string; /** * Average latency in ms. */ avgLatencyInMs?: number; /** * Minimum latency in ms. */ minLatencyInMs?: number; /** * Maximum latency in ms. */ maxLatencyInMs?: number; /** * The number of sent probes. */ probesSent?: number; /** * The number of failed probes. */ probesFailed?: number; /** * List of hops between the source and the destination. */ readonly hops?: ConnectivityHop[]; } /** * List of connection states snapshots. */ export interface ConnectionMonitorQueryResult { /** * Status of connection monitor source. Possible values include: 'Unknown', 'Active', 'Inactive' */ sourceStatus?: string; /** * Information about connection states. */ states?: ConnectionStateSnapshot[]; } /** * Parameters to compare with network configuration. */ export interface NetworkConfigurationDiagnosticProfile { /** * The direction of the traffic. Possible values include: 'Inbound', 'Outbound' */ direction: string; /** * Protocol to be verified on. Accepted values are '*', TCP, UDP. */ protocol: string; /** * Traffic source. Accepted values are '*', IP Address/CIDR, Service Tag. */ source: string; /** * Traffic destination. Accepted values are: '*', IP Address/CIDR, Service Tag. */ destination: string; /** * Traffic destination port. Accepted values are '*', port (for example, 3389) and port range * (for example, 80-100). */ destinationPort: string; } /** * Parameters to get network configuration diagnostic. */ export interface NetworkConfigurationDiagnosticParameters { /** * The ID of the target resource to perform network configuration diagnostic. Valid options are * VM, NetworkInterface, VMSS/NetworkInterface and Application Gateway. */ targetResourceId: string; /** * Verbosity level. Accepted values are 'Normal', 'Minimum', 'Full'. Possible values include: * 'Normal', 'Minimum', 'Full' */ verbosityLevel?: string; /** * List of network configuration diagnostic profiles. */ profiles: NetworkConfigurationDiagnosticProfile[]; } /** * Matched rule. */ export interface MatchedRule { /** * Name of the matched network security rule. */ ruleName?: string; /** * The network traffic is allowed or denied. Possible values are 'Allow' and 'Deny'. */ action?: string; } /** * Network security rules evaluation result. */ export interface NetworkSecurityRulesEvaluationResult { /** * Name of the network security rule. */ name?: string; /** * Value indicating whether protocol is matched. */ protocolMatched?: boolean; /** * Value indicating whether source is matched. */ sourceMatched?: boolean; /** * Value indicating whether source port is matched. */ sourcePortMatched?: boolean; /** * Value indicating whether destination is matched. */ destinationMatched?: boolean; /** * Value indicating whether destination port is matched. */ destinationPortMatched?: boolean; } /** * Results of network security group evaluation. */ export interface EvaluatedNetworkSecurityGroup { /** * Network security group ID. */ networkSecurityGroupId?: string; /** * Resource ID of nic or subnet to which network security group is applied. */ appliedTo?: string; /** * Matched network security rule. */ matchedRule?: MatchedRule; /** * List of network security rules evaluation results. */ readonly rulesEvaluationResult?: NetworkSecurityRulesEvaluationResult[]; } /** * Network configuration diagnostic result corresponded provided traffic query. */ export interface NetworkSecurityGroupResult { /** * The network traffic is allowed or denied. Possible values include: 'Allow', 'Deny' */ securityRuleAccessResult?: string; /** * List of results network security groups diagnostic. */ readonly evaluatedNetworkSecurityGroups?: EvaluatedNetworkSecurityGroup[]; } /** * Network configuration diagnostic result corresponded to provided traffic query. */ export interface NetworkConfigurationDiagnosticResult { /** * Network configuration diagnostic profile. */ profile?: NetworkConfigurationDiagnosticProfile; /** * Network security group result. */ networkSecurityGroupResult?: NetworkSecurityGroupResult; } /** * Results of network configuration diagnostic on the target resource. */ export interface NetworkConfigurationDiagnosticResponse { /** * List of network configuration diagnostic results. */ readonly results?: NetworkConfigurationDiagnosticResult[]; } /** * Display metadata associated with the operation. */ export interface OperationDisplay { /** * Service provider: Microsoft Network. */ provider?: string; /** * Resource on which the operation is performed. */ resource?: string; /** * Type of the operation: get, read, delete, etc. */ operation?: string; /** * Description of the operation. */ description?: string; } /** * Availability of the metric. */ export interface Availability { /** * The time grain of the availability. */ timeGrain?: string; /** * The retention of the availability. */ retention?: string; /** * Duration of the availability blob. */ blobDuration?: string; } /** * Dimension of the metric. */ export interface Dimension { /** * The name of the dimension. */ name?: string; /** * The display name of the dimension. */ displayName?: string; /** * The internal name of the dimension. */ internalName?: string; } /** * Description of metrics specification. */ export interface MetricSpecification { /** * The name of the metric. */ name?: string; /** * The display name of the metric. */ displayName?: string; /** * The description of the metric. */ displayDescription?: string; /** * Units the metric to be displayed in. */ unit?: string; /** * The aggregation type. */ aggregationType?: string; /** * List of availability. */ availabilities?: Availability[]; /** * Whether regional MDM account enabled. */ enableRegionalMdmAccount?: boolean; /** * Whether gaps would be filled with zeros. */ fillGapWithZero?: boolean; /** * Pattern for the filter of the metric. */ metricFilterPattern?: string; /** * List of dimensions. */ dimensions?: Dimension[]; /** * Whether the metric is internal. */ isInternal?: boolean; /** * The source MDM account. */ sourceMdmAccount?: string; /** * The source MDM namespace. */ sourceMdmNamespace?: string; /** * The resource Id dimension name override. */ resourceIdDimensionNameOverride?: string; } /** * Description of logging specification. */ export interface LogSpecification { /** * The name of the specification. */ name?: string; /** * The display name of the specification. */ displayName?: string; /** * Duration of the blob. */ blobDuration?: string; } /** * Specification of the service. */ export interface OperationPropertiesFormatServiceSpecification { /** * Operation service specification. */ metricSpecifications?: MetricSpecification[]; /** * Operation log specification. */ logSpecifications?: LogSpecification[]; } /** * Network REST API operation definition. */ export interface Operation { /** * Operation name: {provider}/{resource}/{operation} */ name?: string; /** * Display metadata associated with the operation. */ display?: OperationDisplay; /** * Origin of the operation. */ origin?: string; /** * Specification of the service. */ serviceSpecification?: OperationPropertiesFormatServiceSpecification; } /** * SKU of a public IP prefix */ export interface PublicIPPrefixSku { /** * Name of a public IP prefix SKU. Possible values include: 'Standard' */ name?: string; } /** * Reference to a public IP address. */ export interface ReferencedPublicIpAddress { /** * The PublicIPAddress Reference */ id?: string; } /** * Public IP prefix resource. */ export interface PublicIPPrefix extends Resource { /** * The public IP prefix SKU. */ sku?: PublicIPPrefixSku; /** * The public IP address version. Possible values include: 'IPv4', 'IPv6' */ publicIPAddressVersion?: string; /** * The list of tags associated with the public IP prefix. */ ipTags?: IpTag[]; /** * The Length of the Public IP Prefix. */ prefixLength?: number; /** * The allocated Prefix */ ipPrefix?: string; /** * The list of all referenced PublicIPAddresses */ publicIPAddresses?: ReferencedPublicIpAddress[]; /** * The resource GUID property of the public IP prefix resource. */ resourceGuid?: string; /** * The provisioning state of the Public IP prefix resource. Possible values are: 'Updating', * 'Deleting', and 'Failed'. */ provisioningState?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; /** * A list of availability zones denoting the IP allocated for the resource needs to come from. */ zones?: string[]; } /** * Route Filter Rule Resource */ export interface PatchRouteFilterRule extends SubResource { /** * The access type of the rule. Possible values include: 'Allow', 'Deny' */ access: string; /** * The collection for bgp community values to filter on. e.g. ['12076:5010','12076:5020'] */ communities: string[]; /** * The provisioning state of the resource. Possible values are: 'Updating', 'Deleting', * 'Succeeded' and 'Failed'. */ readonly provisioningState?: string; /** * The name of the resource that is unique within a resource group. This name can be used to * access the resource. */ readonly name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ readonly etag?: string; } /** * Route Filter Resource. */ export interface PatchRouteFilter extends SubResource { /** * Collection of RouteFilterRules contained within a route filter. */ rules?: RouteFilterRule[]; /** * A collection of references to express route circuit peerings. */ peerings?: ExpressRouteCircuitPeering[]; /** * The provisioning state of the resource. Possible values are: 'Updating', 'Deleting', * 'Succeeded' and 'Failed'. */ readonly provisioningState?: string; /** * The name of the resource that is unique within a resource group. This name can be used to * access the resource. */ readonly name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ readonly etag?: string; /** * Resource type. */ readonly type?: string; /** * Resource tags. */ tags?: { [propertyName: string]: string }; } /** * Contains bgp community information offered in Service Community resources. */ export interface BGPCommunity { /** * The region which the service support. e.g. For O365, region is Global. */ serviceSupportedRegion?: string; /** * The name of the bgp community. e.g. Skype. */ communityName?: string; /** * The value of the bgp community. For more information: * https://docs.microsoft.com/en-us/azure/expressroute/expressroute-routing. */ communityValue?: string; /** * The prefixes that the bgp community contains. */ communityPrefixes?: string[]; /** * Customer is authorized to use bgp community or not. */ isAuthorizedToUse?: boolean; /** * The service group of the bgp community contains. */ serviceGroup?: string; } /** * Service Community Properties. */ export interface BgpServiceCommunity extends Resource { /** * The name of the bgp community. e.g. Skype. */ serviceName?: string; /** * Get a list of bgp communities. */ bgpCommunities?: BGPCommunity[]; } /** * The usage names. */ export interface UsageName { /** * A string describing the resource name. */ value?: string; /** * A localized string describing the resource name. */ localizedValue?: string; } /** * Describes network resource usage. */ export interface Usage { /** * Resource identifier. */ readonly id?: string; /** * The current value of the usage. */ currentValue: number; /** * The limit of usage. */ limit: number; /** * The name of the type of usage. */ name: UsageName; } /** * AddressSpace contains an array of IP address ranges that can be used by subnets of the virtual * network. */ export interface AddressSpace { /** * A list of address blocks reserved for this virtual network in CIDR notation. */ addressPrefixes?: string[]; } /** * Peerings in a virtual network resource. */ export interface VirtualNetworkPeering extends SubResource { /** * Whether the VMs in the local virtual network space would be able to access the VMs in remote * virtual network space. */ allowVirtualNetworkAccess?: boolean; /** * Whether the forwarded traffic from the VMs in the local virtual network will be * allowed/disallowed in remote virtual network. */ allowForwardedTraffic?: boolean; /** * If gateway links can be used in remote virtual networking to link to this virtual network. */ allowGatewayTransit?: boolean; /** * If remote gateways can be used on this virtual network. If the flag is set to true, and * allowGatewayTransit on remote peering is also true, virtual network will use gateways of * remote virtual network for transit. Only one peering can have this flag set to true. This flag * cannot be set if virtual network already has a gateway. */ useRemoteGateways?: boolean; /** * The reference of the remote virtual network. The remote virtual network can be in the same or * different region (preview). See here to register for the preview and learn more * (https://docs.microsoft.com/en-us/azure/virtual-network/virtual-network-create-peering). */ remoteVirtualNetwork?: SubResource; /** * The reference of the remote virtual network address space. */ remoteAddressSpace?: AddressSpace; /** * The status of the virtual network peering. Possible values are 'Initiated', 'Connected', and * 'Disconnected'. Possible values include: 'Initiated', 'Connected', 'Disconnected' */ peeringState?: string; /** * The provisioning state of the resource. */ provisioningState?: string; /** * The name of the resource that is unique within a resource group. This name can be used to * access the resource. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; } /** * DhcpOptions contains an array of DNS servers available to VMs deployed in the virtual network. * Standard DHCP option for a subnet overrides VNET DHCP options. */ export interface DhcpOptions { /** * The list of DNS servers IP addresses. */ dnsServers?: string[]; } /** * Virtual Network resource. */ export interface VirtualNetwork extends Resource { /** * The AddressSpace that contains an array of IP address ranges that can be used by subnets. */ addressSpace?: AddressSpace; /** * The dhcpOptions that contains an array of DNS servers available to VMs deployed in the virtual * network. */ dhcpOptions?: DhcpOptions; /** * A list of subnets in a Virtual Network. */ subnets?: Subnet[]; /** * A list of peerings in a Virtual Network. */ virtualNetworkPeerings?: VirtualNetworkPeering[]; /** * The resourceGuid property of the Virtual Network resource. */ resourceGuid?: string; /** * The provisioning state of the PublicIP resource. Possible values are: 'Updating', 'Deleting', * and 'Failed'. */ provisioningState?: string; /** * Indicates if DDoS protection is enabled for all the protected resources in the virtual * network. It requires a DDoS protection plan associated with the resource. */ enableDdosProtection?: boolean; /** * Indicates if VM protection is enabled for all the subnets in the virtual network. */ enableVmProtection?: boolean; /** * The DDoS protection plan associated with the virtual network. */ ddosProtectionPlan?: SubResource; /** * Gets a unique read-only string that changes whenever the resource is updated. */ etag?: string; } /** * Response for CheckIPAddressAvailability API service call */ export interface IPAddressAvailabilityResult { /** * Private IP address availability. */ available?: boolean; /** * Contains other available private IP addresses if the asked for address is taken. */ availableIPAddresses?: string[]; } /** * Usage strings container. */ export interface VirtualNetworkUsageName { /** * Localized subnet size and usage string. */ readonly localizedValue?: string; /** * Subnet size and usage string. */ readonly value?: string; } /** * Usage details for subnet. */ export interface VirtualNetworkUsage { /** * Indicates number of IPs used from the Subnet. */ readonly currentValue?: number; /** * Subnet identifier. */ readonly id?: string; /** * Indicates the size of the subnet. */ readonly limit?: number; /** * The name containing common and localized value for usage. */ readonly name?: VirtualNetworkUsageName; /** * Usage units. Returns 'Count' */ readonly unit?: string; } /** * Network Intent Policy resource. */ export interface NetworkIntentPolicy extends Resource { /** * Gets a unique read-only string that changes whenever the resource is updated. */ etag?: string; } /** * Details of NetworkIntentPolicyConfiguration for PrepareNetworkPoliciesRequest. */ export interface NetworkIntentPolicyConfiguration { /** * The name of the Network Intent Policy for storing in target subscription. */ networkIntentPolicyName?: string; /** * Source network intent policy. */ sourceNetworkIntentPolicy?: NetworkIntentPolicy; } /** * Details of PrepareNetworkPolicies for Subnet. */ export interface PrepareNetworkPoliciesRequest { /** * The name of the service for which subnet is being prepared for. */ serviceName?: string; /** * The name of the resource group where the Network Intent Policy will be stored. */ resourceGroupName?: string; /** * A list of NetworkIntentPolicyConfiguration. */ networkIntentPolicyConfigurations?: NetworkIntentPolicyConfiguration[]; } /** * IP configuration for virtual network gateway */ export interface VirtualNetworkGatewayIPConfiguration extends SubResource { /** * The private IP address allocation method. Possible values include: 'Static', 'Dynamic' */ privateIPAllocationMethod?: string; /** * The reference of the subnet resource. */ subnet?: SubResource; /** * The reference of the public IP resource. */ publicIPAddress?: SubResource; /** * The provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', * and 'Failed'. */ readonly provisioningState?: string; /** * The name of the resource that is unique within a resource group. This name can be used to * access the resource. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; } /** * VirtualNetworkGatewaySku details */ export interface VirtualNetworkGatewaySku { /** * Gateway SKU name. Possible values include: 'Basic', 'HighPerformance', 'Standard', * 'UltraPerformance', 'VpnGw1', 'VpnGw2', 'VpnGw3', 'VpnGw1AZ', 'VpnGw2AZ', 'VpnGw3AZ', * 'ErGw1AZ', 'ErGw2AZ', 'ErGw3AZ' */ name?: string; /** * Gateway SKU tier. Possible values include: 'Basic', 'HighPerformance', 'Standard', * 'UltraPerformance', 'VpnGw1', 'VpnGw2', 'VpnGw3', 'VpnGw1AZ', 'VpnGw2AZ', 'VpnGw3AZ', * 'ErGw1AZ', 'ErGw2AZ', 'ErGw3AZ' */ tier?: string; /** * The capacity. */ capacity?: number; } /** * VPN client root certificate of virtual network gateway */ export interface VpnClientRootCertificate extends SubResource { /** * The certificate public data. */ publicCertData: string; /** * The provisioning state of the VPN client root certificate resource. Possible values are: * 'Updating', 'Deleting', and 'Failed'. */ readonly provisioningState?: string; /** * The name of the resource that is unique within a resource group. This name can be used to * access the resource. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; } /** * VPN client revoked certificate of virtual network gateway. */ export interface VpnClientRevokedCertificate extends SubResource { /** * The revoked VPN client certificate thumbprint. */ thumbprint?: string; /** * The provisioning state of the VPN client revoked certificate resource. Possible values are: * 'Updating', 'Deleting', and 'Failed'. */ readonly provisioningState?: string; /** * The name of the resource that is unique within a resource group. This name can be used to * access the resource. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; } /** * An IPSec Policy configuration for a virtual network gateway connection */ export interface IpsecPolicy { /** * The IPSec Security Association (also called Quick Mode or Phase 2 SA) lifetime in seconds for * a site to site VPN tunnel. */ saLifeTimeSeconds: number; /** * The IPSec Security Association (also called Quick Mode or Phase 2 SA) payload size in KB for a * site to site VPN tunnel. */ saDataSizeKilobytes: number; /** * The IPSec encryption algorithm (IKE phase 1). Possible values include: 'None', 'DES', 'DES3', * 'AES128', 'AES192', 'AES256', 'GCMAES128', 'GCMAES192', 'GCMAES256' */ ipsecEncryption: string; /** * The IPSec integrity algorithm (IKE phase 1). Possible values include: 'MD5', 'SHA1', 'SHA256', * 'GCMAES128', 'GCMAES192', 'GCMAES256' */ ipsecIntegrity: string; /** * The IKE encryption algorithm (IKE phase 2). Possible values include: 'DES', 'DES3', 'AES128', * 'AES192', 'AES256', 'GCMAES256', 'GCMAES128' */ ikeEncryption: string; /** * The IKE integrity algorithm (IKE phase 2). Possible values include: 'MD5', 'SHA1', 'SHA256', * 'SHA384', 'GCMAES256', 'GCMAES128' */ ikeIntegrity: string; /** * The DH Group used in IKE Phase 1 for initial SA. Possible values include: 'None', 'DHGroup1', * 'DHGroup2', 'DHGroup14', 'DHGroup2048', 'ECP256', 'ECP384', 'DHGroup24' */ dhGroup: string; /** * The Pfs Group used in IKE Phase 2 for new child SA. Possible values include: 'None', 'PFS1', * 'PFS2', 'PFS2048', 'ECP256', 'ECP384', 'PFS24', 'PFS14', 'PFSMM' */ pfsGroup: string; } /** * VpnClientConfiguration for P2S client. */ export interface VpnClientConfiguration { /** * The reference of the address space resource which represents Address space for P2S VpnClient. */ vpnClientAddressPool?: AddressSpace; /** * VpnClientRootCertificate for virtual network gateway. */ vpnClientRootCertificates?: VpnClientRootCertificate[]; /** * VpnClientRevokedCertificate for Virtual network gateway. */ vpnClientRevokedCertificates?: VpnClientRevokedCertificate[]; /** * VpnClientProtocols for Virtual network gateway. */ vpnClientProtocols?: string[]; /** * VpnClientIpsecPolicies for virtual network gateway P2S client. */ vpnClientIpsecPolicies?: IpsecPolicy[]; /** * The radius server address property of the VirtualNetworkGateway resource for vpn client * connection. */ radiusServerAddress?: string; /** * The radius secret property of the VirtualNetworkGateway resource for vpn client connection. */ radiusServerSecret?: string; } /** * BGP settings details */ export interface BgpSettings { /** * The BGP speaker's ASN. */ asn?: number; /** * The BGP peering address and BGP identifier of this BGP speaker. */ bgpPeeringAddress?: string; /** * The weight added to routes learned from this BGP speaker. */ peerWeight?: number; } /** * BGP peer status details */ export interface BgpPeerStatus { /** * The virtual network gateway's local address */ readonly localAddress?: string; /** * The remote BGP peer */ readonly neighbor?: string; /** * The autonomous system number of the remote BGP peer */ readonly asn?: number; /** * The BGP peer state. Possible values include: 'Unknown', 'Stopped', 'Idle', 'Connecting', * 'Connected' */ readonly state?: string; /** * For how long the peering has been up */ readonly connectedDuration?: string; /** * The number of routes learned from this peer */ readonly routesReceived?: number; /** * The number of BGP messages sent */ readonly messagesSent?: number; /** * The number of BGP messages received */ readonly messagesReceived?: number; } /** * Gateway routing details */ export interface GatewayRoute { /** * The gateway's local address */ readonly localAddress?: string; /** * The route's network prefix */ readonly network?: string; /** * The route's next hop */ readonly nextHop?: string; /** * The peer this route was learned from */ readonly sourcePeer?: string; /** * The source this route was learned from */ readonly origin?: string; /** * The route's AS path sequence */ readonly asPath?: string; /** * The route's weight */ readonly weight?: number; } /** * A common class for general resource information */ export interface VirtualNetworkGateway extends Resource { /** * IP configurations for virtual network gateway. */ ipConfigurations?: VirtualNetworkGatewayIPConfiguration[]; /** * The type of this virtual network gateway. Possible values are: 'Vpn' and 'ExpressRoute'. * Possible values include: 'Vpn', 'ExpressRoute' */ gatewayType?: string; /** * The type of this virtual network gateway. Possible values are: 'PolicyBased' and 'RouteBased'. * Possible values include: 'PolicyBased', 'RouteBased' */ vpnType?: string; /** * Whether BGP is enabled for this virtual network gateway or not. */ enableBgp?: boolean; /** * ActiveActive flag */ activeActive?: boolean; /** * The reference of the LocalNetworkGateway resource which represents local network site having * default routes. Assign Null value in case of removing existing default site setting. */ gatewayDefaultSite?: SubResource; /** * The reference of the VirtualNetworkGatewaySku resource which represents the SKU selected for * Virtual network gateway. */ sku?: VirtualNetworkGatewaySku; /** * The reference of the VpnClientConfiguration resource which represents the P2S VpnClient * configurations. */ vpnClientConfiguration?: VpnClientConfiguration; /** * Virtual network gateway's BGP speaker settings. */ bgpSettings?: BgpSettings; /** * The reference of the address space resource which represents the custom routes address space * specified by the the customer for virtual network gateway and VpnClient. */ customRoutes?: AddressSpace; /** * The resource GUID property of the VirtualNetworkGateway resource. */ resourceGuid?: string; /** * The provisioning state of the VirtualNetworkGateway resource. Possible values are: 'Updating', * 'Deleting', and 'Failed'. */ readonly provisioningState?: string; /** * Gets a unique read-only string that changes whenever the resource is updated. */ etag?: string; } /** * Vpn Client Parameters for package generation */ export interface VpnClientParameters { /** * VPN client Processor Architecture. Possible values are: 'AMD64' and 'X86'. Possible values * include: 'Amd64', 'X86' */ processorArchitecture?: string; /** * VPN client authentication method. Possible values include: 'EAPTLS', 'EAPMSCHAPv2' */ authenticationMethod?: string; /** * The public certificate data for the radius server authentication certificate as a Base-64 * encoded string. Required only if external radius authentication has been configured with * EAPTLS authentication. */ radiusServerAuthCertificate?: string; /** * A list of client root certificates public certificate data encoded as Base-64 strings. * Optional parameter for external radius based authentication with EAPTLS. */ clientRootCertificates?: string[]; } /** * Response for list BGP peer status API service call */ export interface BgpPeerStatusListResult { /** * List of BGP peers */ value?: BgpPeerStatus[]; } /** * List of virtual network gateway routes */ export interface GatewayRouteListResult { /** * List of gateway routes */ value?: GatewayRoute[]; } /** * VirtualNetworkGatewayConnection properties */ export interface TunnelConnectionHealth { /** * Tunnel name. */ readonly tunnel?: string; /** * Virtual Network Gateway connection status. Possible values include: 'Unknown', 'Connecting', * 'Connected', 'NotConnected' */ readonly connectionStatus?: string; /** * The Ingress Bytes Transferred in this connection */ readonly ingressBytesTransferred?: number; /** * The Egress Bytes Transferred in this connection */ readonly egressBytesTransferred?: number; /** * The time at which connection was established in Utc format. */ readonly lastConnectionEstablishedUtcTime?: string; } /** * A common class for general resource information */ export interface LocalNetworkGateway extends Resource { /** * Local network site address space. */ localNetworkAddressSpace?: AddressSpace; /** * IP address of local network gateway. */ gatewayIpAddress?: string; /** * Local network gateway's BGP speaker settings. */ bgpSettings?: BgpSettings; /** * The resource GUID property of the LocalNetworkGateway resource. */ resourceGuid?: string; /** * The provisioning state of the LocalNetworkGateway resource. Possible values are: 'Updating', * 'Deleting', and 'Failed'. */ readonly provisioningState?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; } /** * A common class for general resource information */ export interface VirtualNetworkGatewayConnection extends Resource { /** * The authorizationKey. */ authorizationKey?: string; /** * The reference to virtual network gateway resource. */ virtualNetworkGateway1: VirtualNetworkGateway; /** * The reference to virtual network gateway resource. */ virtualNetworkGateway2?: VirtualNetworkGateway; /** * The reference to local network gateway resource. */ localNetworkGateway2?: LocalNetworkGateway; /** * Gateway connection type. Possible values include: 'IPsec', 'Vnet2Vnet', 'ExpressRoute', * 'VPNClient' */ connectionType: string; /** * Connection protocol used for this connection. Possible values include: 'IKEv2', 'IKEv1' */ connectionProtocol?: string; /** * The routing weight. */ routingWeight?: number; /** * The IPSec shared key. */ sharedKey?: string; /** * Virtual Network Gateway connection status. Possible values include: 'Unknown', 'Connecting', * 'Connected', 'NotConnected' */ readonly connectionStatus?: string; /** * Collection of all tunnels' connection health status. */ readonly tunnelConnectionStatus?: TunnelConnectionHealth[]; /** * The egress bytes transferred in this connection. */ readonly egressBytesTransferred?: number; /** * The ingress bytes transferred in this connection. */ readonly ingressBytesTransferred?: number; /** * The reference to peerings resource. */ peer?: SubResource; /** * EnableBgp flag */ enableBgp?: boolean; /** * Enable policy-based traffic selectors. */ usePolicyBasedTrafficSelectors?: boolean; /** * The IPSec Policies to be considered by this connection. */ ipsecPolicies?: IpsecPolicy[]; /** * The resource GUID property of the VirtualNetworkGatewayConnection resource. */ resourceGuid?: string; /** * The provisioning state of the VirtualNetworkGatewayConnection resource. Possible values are: * 'Updating', 'Deleting', and 'Failed'. */ readonly provisioningState?: string; /** * Bypass ExpressRoute Gateway for data forwarding */ expressRouteGatewayBypass?: boolean; /** * Gets a unique read-only string that changes whenever the resource is updated. */ etag?: string; } /** * The virtual network connection reset shared key */ export interface ConnectionResetSharedKey { /** * The virtual network connection reset shared key length, should between 1 and 128. */ keyLength: number; } /** * Response for GetConnectionSharedKey API service call */ export interface ConnectionSharedKey extends SubResource { /** * The virtual network connection shared key value. */ value: string; } /** * An IPSec parameters for a virtual network gateway P2S connection. */ export interface VpnClientIPsecParameters { /** * The IPSec Security Association (also called Quick Mode or Phase 2 SA) lifetime in seconds for * P2S client. */ saLifeTimeSeconds: number; /** * The IPSec Security Association (also called Quick Mode or Phase 2 SA) payload size in KB for * P2S client.. */ saDataSizeKilobytes: number; /** * The IPSec encryption algorithm (IKE phase 1). Possible values include: 'None', 'DES', 'DES3', * 'AES128', 'AES192', 'AES256', 'GCMAES128', 'GCMAES192', 'GCMAES256' */ ipsecEncryption: string; /** * The IPSec integrity algorithm (IKE phase 1). Possible values include: 'MD5', 'SHA1', 'SHA256', * 'GCMAES128', 'GCMAES192', 'GCMAES256' */ ipsecIntegrity: string; /** * The IKE encryption algorithm (IKE phase 2). Possible values include: 'DES', 'DES3', 'AES128', * 'AES192', 'AES256', 'GCMAES256', 'GCMAES128' */ ikeEncryption: string; /** * The IKE integrity algorithm (IKE phase 2). Possible values include: 'MD5', 'SHA1', 'SHA256', * 'SHA384', 'GCMAES256', 'GCMAES128' */ ikeIntegrity: string; /** * The DH Group used in IKE Phase 1 for initial SA. Possible values include: 'None', 'DHGroup1', * 'DHGroup2', 'DHGroup14', 'DHGroup2048', 'ECP256', 'ECP384', 'DHGroup24' */ dhGroup: string; /** * The Pfs Group used in IKE Phase 2 for new child SA. Possible values include: 'None', 'PFS1', * 'PFS2', 'PFS2048', 'ECP256', 'ECP384', 'PFS24', 'PFS14', 'PFSMM' */ pfsGroup: string; } /** * A reference to VirtualNetworkGateway or LocalNetworkGateway resource. */ export interface VirtualNetworkConnectionGatewayReference { /** * The ID of VirtualNetworkGateway or LocalNetworkGateway resource. */ id: string; } /** * A common class for general resource information */ export interface VirtualNetworkGatewayConnectionListEntity extends Resource { /** * The authorizationKey. */ authorizationKey?: string; /** * The reference to virtual network gateway resource. */ virtualNetworkGateway1: VirtualNetworkConnectionGatewayReference; /** * The reference to virtual network gateway resource. */ virtualNetworkGateway2?: VirtualNetworkConnectionGatewayReference; /** * The reference to local network gateway resource. */ localNetworkGateway2?: VirtualNetworkConnectionGatewayReference; /** * Gateway connection type. Possible values include: 'IPsec', 'Vnet2Vnet', 'ExpressRoute', * 'VPNClient' */ connectionType: string; /** * Connection protocol used for this connection. Possible values include: 'IKEv2', 'IKEv1' */ connectionProtocol?: string; /** * The routing weight. */ routingWeight?: number; /** * The IPSec shared key. */ sharedKey?: string; /** * Virtual Network Gateway connection status. Possible values include: 'Unknown', 'Connecting', * 'Connected', 'NotConnected' */ readonly connectionStatus?: string; /** * Collection of all tunnels' connection health status. */ readonly tunnelConnectionStatus?: TunnelConnectionHealth[]; /** * The egress bytes transferred in this connection. */ readonly egressBytesTransferred?: number; /** * The ingress bytes transferred in this connection. */ readonly ingressBytesTransferred?: number; /** * The reference to peerings resource. */ peer?: SubResource; /** * EnableBgp flag */ enableBgp?: boolean; /** * Enable policy-based traffic selectors. */ usePolicyBasedTrafficSelectors?: boolean; /** * The IPSec Policies to be considered by this connection. */ ipsecPolicies?: IpsecPolicy[]; /** * The resource GUID property of the VirtualNetworkGatewayConnection resource. */ resourceGuid?: string; /** * The provisioning state of the VirtualNetworkGatewayConnection resource. Possible values are: * 'Updating', 'Deleting', and 'Failed'. */ readonly provisioningState?: string; /** * Bypass ExpressRoute Gateway for data forwarding */ expressRouteGatewayBypass?: boolean; /** * Gets a unique read-only string that changes whenever the resource is updated. */ etag?: string; } /** * Vpn device configuration script generation parameters */ export interface VpnDeviceScriptParameters { /** * The vendor for the vpn device. */ vendor?: string; /** * The device family for the vpn device. */ deviceFamily?: string; /** * The firmware version for the vpn device. */ firmwareVersion?: string; } /** * VPN client root certificate of P2SVpnServerConfiguration. */ export interface P2SVpnServerConfigVpnClientRootCertificate extends SubResource { /** * The certificate public data. */ publicCertData: string; /** * The provisioning state of the P2SVpnServerConfiguration VPN client root certificate resource. * Possible values are: 'Updating', 'Deleting', and 'Failed'. */ readonly provisioningState?: string; /** * The name of the resource that is unique within a resource group. This name can be used to * access the resource. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; } /** * VPN client revoked certificate of P2SVpnServerConfiguration. */ export interface P2SVpnServerConfigVpnClientRevokedCertificate extends SubResource { /** * The revoked VPN client certificate thumbprint. */ thumbprint?: string; /** * The provisioning state of the VPN client revoked certificate resource. Possible values are: * 'Updating', 'Deleting', and 'Failed'. */ readonly provisioningState?: string; /** * The name of the resource that is unique within a resource group. This name can be used to * access the resource. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; } /** * Radius Server root certificate of P2SVpnServerConfiguration. */ export interface P2SVpnServerConfigRadiusServerRootCertificate extends SubResource { /** * The certificate public data. */ publicCertData: string; /** * The provisioning state of the P2SVpnServerConfiguration Radius Server root certificate * resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. */ readonly provisioningState?: string; /** * The name of the resource that is unique within a resource group. This name can be used to * access the resource. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; } /** * Radius client root certificate of P2SVpnServerConfiguration. */ export interface P2SVpnServerConfigRadiusClientRootCertificate extends SubResource { /** * The Radius client root certificate thumbprint. */ thumbprint?: string; /** * The provisioning state of the Radius client root certificate resource. Possible values are: * 'Updating', 'Deleting', and 'Failed'. */ readonly provisioningState?: string; /** * The name of the resource that is unique within a resource group. This name can be used to * access the resource. */ name?: string; /** * A unique read-only string that changes whenever the resource is updated. */ etag?: string; } /** * P2SVpnServerConfiguration Resource. */ export interface P2SVpnServerConfiguration extends SubResource { /** * The name of the P2SVpnServerConfiguration that is unique within a VirtualWan in a resource * group. This name can be used to access the resource along with Paren VirtualWan resource name. */ p2SVpnServerConfigurationPropertiesName?: string; /** * VPN protocols for the P2SVpnServerConfiguration. */ vpnProtocols?: string[]; /** * VPN client root certificate of P2SVpnServerConfiguration. */ p2SVpnServerConfigVpnClientRootCertificates?: P2SVpnServerConfigVpnClientRootCertificate[]; /** * VPN client revoked certificate of P2SVpnServerConfiguration. */ p2SVpnServerConfigVpnClientRevokedCertificates?: P2SVpnServerConfigVpnClientRevokedCertificate[]; /** * Radius Server root certificate of P2SVpnServerConfiguration. */ p2SVpnServerConfigRadiusServerRootCertificates?: P2SVpnServerConfigRadiusServerRootCertificate[]; /** * Radius client root certificate of P2SVpnServerConfiguration. */ p2SVpnServerConfigRadiusClientRootCertificates?: P2SVpnServerConfigRadiusClientRootCertificate[]; /** * VpnClientIpsecPolicies for P2SVpnServerConfiguration. */ vpnClientIpsecPolicies?: IpsecPolicy[]; /** * The radius server address property of the P2SVpnServerConfiguration resource for point to site * client connection. */ radiusServerAddress?: string; /** * The radius secret property of the P2SVpnServerConfiguration resource for point to site client * connection. */ radiusServerSecret?: string; /** * The provisioning state of the P2SVpnServerConfiguration resource. Possible values are: * 'Updating', 'Deleting', and 'Failed'. */ readonly provisioningState?: string; /** * List of references to P2SVpnGateways. */ readonly p2SVpnGateways?: SubResource[]; /** * A unique read-only string that changes whenever the resource is updated. */ p2SVpnServerConfigurationPropertiesEtag?: string; /** * The name of the resource that is unique within a resource group. This name can be used to * access the resource. */ name?: string; /** * Gets a unique read-only string that changes whenever the resource is updated. */ readonly etag?: string; } /** * VirtualWAN Resource. */ export interface VirtualWAN extends Resource { /** * Vpn encryption to be disabled or not. */ disableVpnEncryption?: boolean; /** * List of VirtualHubs in the VirtualWAN. */ readonly virtualHubs?: SubResource[]; /** * List of VpnSites in the VirtualWAN. */ readonly vpnSites?: SubResource[]; /** * The Security Provider name. */ securityProviderName?: string; /** * True if branch to branch traffic is allowed. */ allowBranchToBranchTraffic?: boolean; /** * True if Vnet to Vnet traffic is allowed. */ allowVnetToVnetTraffic?: boolean; /** * The office local breakout category. Possible values include: 'Optimize', 'OptimizeAndAllow', * 'All', 'None' */ office365LocalBreakoutCategory?: string; /** * List of all P2SVpnServerConfigurations associated with the virtual wan. */ p2SVpnServerConfigurations?: P2SVpnServerConfiguration[]; /** * The provisioning state of the resource. Possible values include: 'Succeeded', 'Updating', * 'Deleting', 'Failed' */ provisioningState?: string; /** * Gets a unique read-only string that changes whenever the resource is updated. */ readonly etag?: string; } /** * List of properties of the device. */ export interface DeviceProperties { /** * Name of the device Vendor. */ deviceVendor?: string; /** * Model of the device. */ deviceModel?: string; /** * Link speed. */ linkSpeedInMbps?: number; } /** * VpnSite Resource. */ export interface VpnSite extends Resource { /** * The VirtualWAN to which the vpnSite belongs */ virtualWan?: SubResource; /** * The device properties */ deviceProperties?: DeviceProperties; /** * The ip-address for the vpn-site. */ ipAddress?: string; /** * The key for vpn-site that can be used for connections. */ siteKey?: string; /** * The AddressSpace that contains an array of IP address ranges. */ addressSpace?: AddressSpace; /** * The set of bgp properties. */ bgpProperties?: BgpSettings; /** * The provisioning state of the resource. Possible values include: 'Succeeded', 'Updating', * 'Deleting', 'Failed' */ provisioningState?: string; /** * IsSecuritySite flag */ isSecuritySite?: boolean; /** * Gets a unique read-only string that changes whenever the resource is updated. */ readonly etag?: string; } /** * List of Vpn-Sites */ export interface GetVpnSitesConfigurationRequest { /** * List of resource-ids of the vpn-sites for which config is to be downloaded. */ vpnSites?: string[]; /** * The sas-url to download the configurations for vpn-sites */ outputBlobSasUrl: string; } /** * HubVirtualNetworkConnection Resource. */ export interface HubVirtualNetworkConnection extends SubResource { /** * Reference to the remote virtual network. */ remoteVirtualNetwork?: SubResource; /** * VirtualHub to RemoteVnet transit to enabled or not. */ allowHubToRemoteVnetTransit?: boolean; /** * Allow RemoteVnet to use Virtual Hub's gateways. */ allowRemoteVnetToUseHubVnetGateways?: boolean; /** * Enable internet security */ enableInternetSecurity?: boolean; /** * The provisioning state of the resource. Possible values include: 'Succeeded', 'Updating', * 'Deleting', 'Failed' */ provisioningState?: string; /** * The name of the resource that is unique within a resource group. This name can be used to * access the resource. */ name?: string; /** * Gets a unique read-only string that changes whenever the resource is updated. */ readonly etag?: string; } /** * VirtualHub route */ export interface VirtualHubRoute { /** * List of all addressPrefixes. */ addressPrefixes?: string[]; /** * NextHop ip address. */ nextHopIpAddress?: string; } /** * VirtualHub route table */ export interface VirtualHubRouteTable { /** * List of all routes. */ routes?: VirtualHubRoute[]; } /** * VirtualHub Resource. */ export interface VirtualHub extends Resource { /** * The VirtualWAN to which the VirtualHub belongs */ virtualWan?: SubResource; /** * The VpnGateway associated with this VirtualHub */ vpnGateway?: SubResource; /** * The P2SVpnGateway associated with this VirtualHub */ p2SVpnGateway?: SubResource; /** * The expressRouteGateway associated with this VirtualHub */ expressRouteGateway?: SubResource; /** * List of all vnet connections with this VirtualHub. */ virtualNetworkConnections?: HubVirtualNetworkConnection[]; /** * Address-prefix for this VirtualHub. */ addressPrefix?: string; /** * The routeTable associated with this virtual hub. */ routeTable?: VirtualHubRouteTable; /** * The provisioning state of the resource. Possible values include: 'Succeeded', 'Updating', * 'Deleting', 'Failed' */ provisioningState?: string; /** * Gets a unique read-only string that changes whenever the resource is updated. */ readonly etag?: string; } /** * VpnConnection Resource. */ export interface VpnConnection extends SubResource { /** * Id of the connected vpn site. */ remoteVpnSite?: SubResource; /** * Routing weight for vpn connection. */ routingWeight?: number; /** * The connection status. Possible values include: 'Unknown', 'Connecting', 'Connected', * 'NotConnected' */ connectionStatus?: string; /** * Connection protocol used for this connection. Possible values include: 'IKEv2', 'IKEv1' */ vpnConnectionProtocolType?: string; /** * Ingress bytes transferred. */ readonly ingressBytesTransferred?: number; /** * Egress bytes transferred. */ readonly egressBytesTransferred?: number; /** * Expected bandwidth in MBPS. */ connectionBandwidth?: number; /** * SharedKey for the vpn connection. */ sharedKey?: string; /** * EnableBgp flag */ enableBgp?: boolean; /** * The IPSec Policies to be considered by this connection. */ ipsecPolicies?: IpsecPolicy[]; /** * EnableBgp flag */ enableRateLimiting?: boolean; /** * Enable internet security */ enableInternetSecurity?: boolean; /** * Use local azure ip to initiate connection */ useLocalAzureIpAddress?: boolean; /** * The provisioning state of the resource. Possible values include: 'Succeeded', 'Updating', * 'Deleting', 'Failed' */ provisioningState?: string; /** * The name of the resource that is unique within a resource group. This name can be used to * access the resource. */ name?: string; /** * Gets a unique read-only string that changes whenever the resource is updated. */ readonly etag?: string; } /** * VpnGateway Resource. */ export interface VpnGateway extends Resource { /** * The VirtualHub to which the gateway belongs */ virtualHub?: SubResource; /** * List of all vpn connections to the gateway. */ connections?: VpnConnection[]; /** * Local network gateway's BGP speaker settings. */ bgpSettings?: BgpSettings; /** * The provisioning state of the resource. Possible values include: 'Succeeded', 'Updating', * 'Deleting', 'Failed' */ provisioningState?: string; /** * The scale unit for this vpn gateway. */ vpnGatewayScaleUnit?: number; /** * Gets a unique read-only string that changes whenever the resource is updated. */ readonly etag?: string; } /** * VpnSite Resource. */ export interface VpnSiteId { /** * The resource-uri of the vpn-site for which config is to be fetched. */ readonly vpnSite?: string; } /** * Collection of SecurityProviders. */ export interface VirtualWanSecurityProvider { /** * Name of the security provider. */ name?: string; /** * Url of the security provider. */ url?: string; /** * Name of the security provider. Possible values include: 'External', 'Native' */ type?: string; } /** * Collection of SecurityProviders. */ export interface VirtualWanSecurityProviders { /** * List of VirtualWAN security providers. */ supportedProviders?: VirtualWanSecurityProvider[]; } /** * VpnClientConnectionHealth properties */ export interface VpnClientConnectionHealth { /** * Total of the Ingress Bytes Transferred in this P2S Vpn connection */ readonly totalIngressBytesTransferred?: number; /** * Total of the Egress Bytes Transferred in this connection */ readonly totalEgressBytesTransferred?: number; /** * The total of p2s vpn clients connected at this time to this P2SVpnGateway. */ vpnClientConnectionsCount?: number; /** * List of allocated ip addresses to the connected p2s vpn clients. */ allocatedIpAddresses?: string[]; } /** * P2SVpnGateway Resource. */ export interface P2SVpnGateway extends Resource { /** * The VirtualHub to which the gateway belongs */ virtualHub?: SubResource; /** * The provisioning state of the resource. Possible values include: 'Succeeded', 'Updating', * 'Deleting', 'Failed' */ provisioningState?: string; /** * The scale unit for this p2s vpn gateway. */ vpnGatewayScaleUnit?: number; /** * The P2SVpnServerConfiguration to which the p2sVpnGateway is attached to. */ p2SVpnServerConfiguration?: SubResource; /** * The reference of the address space resource which represents Address space for P2S VpnClient. */ vpnClientAddressPool?: AddressSpace; /** * The reference of the address space resource which represents the custom routes specified by * the customer for P2SVpnGateway and P2S VpnClient. */ customRoutes?: AddressSpace; /** * All P2S VPN clients' connection health status. */ readonly vpnClientConnectionHealth?: VpnClientConnectionHealth; /** * Gets a unique read-only string that changes whenever the resource is updated. */ readonly etag?: string; } /** * Vpn Client Parameters for package generation */ export interface P2SVpnProfileParameters { /** * VPN client authentication method. Possible values include: 'EAPTLS', 'EAPMSCHAPv2' */ authenticationMethod?: string; } /** * Vpn Profile Response for package generation */ export interface VpnProfileResponse { /** * URL to the VPN profile */ profileUrl?: string; } /** * Defines contents of a web application firewall global configuration */ export interface PolicySettings { /** * Describes if the policy is in enabled state or disabled state. Possible values include: * 'Disabled', 'Enabled' */ enabledState?: string; /** * Describes if it is in detection mode or prevention mode at policy level. Possible values * include: 'Prevention', 'Detection' */ mode?: string; } /** * Define match variables */ export interface MatchVariable { /** * Match Variable. Possible values include: 'RemoteAddr', 'RequestMethod', 'QueryString', * 'PostArgs', 'RequestUri', 'RequestHeaders', 'RequestBody', 'RequestCookies' */ variableName: string; /** * Describes field of the matchVariable collection */ selector?: string; } /** * Define match conditions */ export interface MatchCondition { /** * List of match variables */ matchVariables: MatchVariable[]; /** * Describes operator to be matched. Possible values include: 'IPMatch', 'Equal', 'Contains', * 'LessThan', 'GreaterThan', 'LessThanOrEqual', 'GreaterThanOrEqual', 'BeginsWith', 'EndsWith', * 'Regex' */ operator: string; /** * Describes if this is negate condition or not */ negationConditon?: boolean; /** * Match value */ matchValues: string[]; /** * List of transforms */ transforms?: string[]; } /** * Defines contents of a web application rule */ export interface WebApplicationFirewallCustomRule { /** * Gets name of the resource that is unique within a policy. This name can be used to access the * resource. */ name?: string; /** * Gets a unique read-only string that changes whenever the resource is updated. */ readonly etag?: string; /** * Describes priority of the rule. Rules with a lower value will be evaluated before rules with a * higher value */ priority: number; /** * Describes type of rule. Possible values include: 'MatchRule', 'Invalid' */ ruleType: string; /** * List of match conditions */ matchConditions: MatchCondition[]; /** * Type of Actions. Possible values include: 'Allow', 'Block', 'Log' */ action: string; } /** * Defines web application firewall policy. */ export interface WebApplicationFirewallPolicy extends Resource { /** * Describes policySettings for policy */ policySettings?: PolicySettings; /** * Describes custom rules inside the policy */ customRules?: WebApplicationFirewallCustomRule[]; /** * A collection of references to application gateways. */ readonly applicationGateways?: ApplicationGateway[]; /** * Provisioning state of the WebApplicationFirewallPolicy. */ readonly provisioningState?: string; /** * @summary Resource status of the policy. * @description Resource status of the policy. Possible values include: 'Creating', 'Enabling', * 'Enabled', 'Disabling', 'Disabled', 'Deleting' */ readonly resourceState?: string; /** * Gets a unique read-only string that changes whenever the resource is updated. */ etag?: string; } /** * Response for ListApplicationGateways API service call. */ export interface ApplicationGatewayListResult extends Array { /** * URL to get the next set of results. */ nextLink?: string; } /** * Response for ApplicationGatewayAvailableSslOptions API service call. */ export interface ApplicationGatewayAvailableSslPredefinedPolicies extends Array { /** * URL to get the next set of results. */ nextLink?: string; } /** * A list of application security groups. */ export interface ApplicationSecurityGroupListResult extends Array { /** * The URL to get the next set of results. */ readonly nextLink?: string; } /** * An array of available delegations. */ export interface AvailableDelegationsResult extends Array { /** * The URL to get the next set of results. */ readonly nextLink?: string; } /** * Response for ListAzureFirewalls API service call. */ export interface AzureFirewallListResult extends Array { /** * URL to get the next set of results. */ nextLink?: string; } /** * Response for ListAzureFirewallFqdnTags API service call. */ export interface AzureFirewallFqdnTagListResult extends Array { /** * URL to get the next set of results. */ nextLink?: string; } /** * A list of DDoS protection plans. */ export interface DdosProtectionPlanListResult extends Array { /** * The URL to get the next set of results. */ readonly nextLink?: string; } /** * Response for the ListAvailableEndpointServices API service call. */ export interface EndpointServicesListResult extends Array { /** * The URL to get the next set of results. */ nextLink?: string; } /** * Response for ListAuthorizations API service call retrieves all authorizations that belongs to an * ExpressRouteCircuit. */ export interface AuthorizationListResult extends Array { /** * The URL to get the next set of results. */ nextLink?: string; } /** * Response for ListPeering API service call retrieves all peerings that belong to an * ExpressRouteCircuit. */ export interface ExpressRouteCircuitPeeringListResult extends Array { /** * The URL to get the next set of results. */ nextLink?: string; } /** * Response for ListConnections API service call retrieves all global reach connections that * belongs to a Private Peering for an ExpressRouteCircuit. */ export interface ExpressRouteCircuitConnectionListResult extends Array { /** * The URL to get the next set of results. */ nextLink?: string; } /** * Response for ListPeeredConnections API service call retrieves all global reach peer circuit * connections that belongs to a Private Peering for an ExpressRouteCircuit. */ export interface PeerExpressRouteCircuitConnectionListResult extends Array { /** * The URL to get the next set of results. */ nextLink?: string; } /** * Response for ListExpressRouteCircuit API service call. */ export interface ExpressRouteCircuitListResult extends Array { /** * The URL to get the next set of results. */ nextLink?: string; } /** * Response for the ListExpressRouteServiceProvider API service call. */ export interface ExpressRouteServiceProviderListResult extends Array { /** * The URL to get the next set of results. */ nextLink?: string; } /** * Response for ListExpressRouteCrossConnection API service call. */ export interface ExpressRouteCrossConnectionListResult extends Array { /** * The URL to get the next set of results. */ readonly nextLink?: string; } /** * Response for ListPeering API service call retrieves all peerings that belong to an * ExpressRouteCrossConnection. */ export interface ExpressRouteCrossConnectionPeeringList extends Array { /** * The URL to get the next set of results. */ readonly nextLink?: string; } /** * @summary ExpressRoutePorts Location List Result * @description Response for ListExpressRoutePortsLocations API service call. */ export interface ExpressRoutePortsLocationListResult extends Array { /** * The URL to get the next set of results. */ nextLink?: string; } /** * @summary ExpressRoute Port List Result * @description Response for ListExpressRoutePorts API service call. */ export interface ExpressRoutePortListResult extends Array { /** * The URL to get the next set of results. */ nextLink?: string; } /** * @summary ExpressRouteLink List Result * @description Response for ListExpressRouteLinks API service call. */ export interface ExpressRouteLinkListResult extends Array { /** * The URL to get the next set of results. */ nextLink?: string; } /** * Response for the ListInterfaceEndpoints API service call. */ export interface InterfaceEndpointListResult extends Array { /** * The URL to get the next set of results. */ readonly nextLink?: string; } /** * Response for ListLoadBalancers API service call. */ export interface LoadBalancerListResult extends Array { /** * The URL to get the next set of results. */ readonly nextLink?: string; } /** * Response for ListBackendAddressPool API service call. */ export interface LoadBalancerBackendAddressPoolListResult extends Array { /** * The URL to get the next set of results. */ readonly nextLink?: string; } /** * Response for ListFrontendIPConfiguration API service call. */ export interface LoadBalancerFrontendIPConfigurationListResult extends Array { /** * The URL to get the next set of results. */ readonly nextLink?: string; } /** * Response for ListInboundNatRule API service call. */ export interface InboundNatRuleListResult extends Array { /** * The URL to get the next set of results. */ readonly nextLink?: string; } /** * Response for ListLoadBalancingRule API service call. */ export interface LoadBalancerLoadBalancingRuleListResult extends Array { /** * The URL to get the next set of results. */ readonly nextLink?: string; } /** * Response for ListOutboundRule API service call. */ export interface LoadBalancerOutboundRuleListResult extends Array { /** * The URL to get the next set of results. */ readonly nextLink?: string; } /** * Response for the ListNetworkInterface API service call. */ export interface NetworkInterfaceListResult extends Array { /** * The URL to get the next set of results. */ readonly nextLink?: string; } /** * Response for ListProbe API service call. */ export interface LoadBalancerProbeListResult extends Array { /** * The URL to get the next set of results. */ readonly nextLink?: string; } /** * Response for ListNatGateways API service call. */ export interface NatGatewayListResult extends Array { /** * The URL to get the next set of results. */ nextLink?: string; } /** * Response for list ip configurations API service call. */ export interface NetworkInterfaceIPConfigurationListResult extends Array { /** * The URL to get the next set of results. */ readonly nextLink?: string; } /** * Response for list ip configurations API service call. */ export interface NetworkInterfaceLoadBalancerListResult extends Array { /** * The URL to get the next set of results. */ readonly nextLink?: string; } /** * Response for list tap configurations API service call. */ export interface NetworkInterfaceTapConfigurationListResult extends Array { /** * The URL to get the next set of results. */ readonly nextLink?: string; } /** * Response for ListNetworkProfiles API service call. */ export interface NetworkProfileListResult extends Array { /** * The URL to get the next set of results. */ nextLink?: string; } /** * Response for ListNetworkSecurityGroups API service call. */ export interface NetworkSecurityGroupListResult extends Array { /** * The URL to get the next set of results. */ nextLink?: string; } /** * Response for ListSecurityRule API service call. Retrieves all security rules that belongs to a * network security group. */ export interface SecurityRuleListResult extends Array { /** * The URL to get the next set of results. */ nextLink?: string; } /** * Response for ListNetworkWatchers API service call. */ export interface NetworkWatcherListResult extends Array { } /** * List of packet capture sessions. */ export interface PacketCaptureListResult extends Array { } /** * List of connection monitors. */ export interface ConnectionMonitorListResult extends Array { } /** * Result of the request to list Network operations. It contains a list of operations and a URL * link to get the next set of results. */ export interface OperationListResult extends Array { /** * URL to get the next set of operation list results if there are any. */ nextLink?: string; } /** * Response for ListPublicIpAddresses API service call. */ export interface PublicIPAddressListResult extends Array { /** * The URL to get the next set of results. */ nextLink?: string; } /** * Response for ListPublicIpPrefixes API service call. */ export interface PublicIPPrefixListResult extends Array { /** * The URL to get the next set of results. */ nextLink?: string; } /** * Response for the ListRouteFilters API service call. */ export interface RouteFilterListResult extends Array { /** * The URL to get the next set of results. */ nextLink?: string; } /** * Response for the ListRouteFilterRules API service call */ export interface RouteFilterRuleListResult extends Array { /** * The URL to get the next set of results. */ nextLink?: string; } /** * Response for the ListRouteTable API service call. */ export interface RouteTableListResult extends Array { /** * The URL to get the next set of results. */ nextLink?: string; } /** * Response for the ListRoute API service call */ export interface RouteListResult extends Array { /** * The URL to get the next set of results. */ nextLink?: string; } /** * Response for the ListServiceCommunity API service call. */ export interface BgpServiceCommunityListResult extends Array { /** * The URL to get the next set of results. */ nextLink?: string; } /** * Response for ListServiceEndpointPolicies API service call. */ export interface ServiceEndpointPolicyListResult extends Array { /** * The URL to get the next set of results. */ readonly nextLink?: string; } /** * Response for ListServiceEndpointPolicyDefinition API service call. Retrieves all service * endpoint policy definition that belongs to a service endpoint policy. */ export interface ServiceEndpointPolicyDefinitionListResult extends Array { /** * The URL to get the next set of results. */ nextLink?: string; } /** * The list usages operation response. */ export interface UsagesListResult extends Array { /** * URL to get the next set of results. */ nextLink?: string; } /** * Response for the ListVirtualNetworks API service call. */ export interface VirtualNetworkListResult extends Array { /** * The URL to get the next set of results. */ nextLink?: string; } /** * Response for the virtual networks GetUsage API service call. */ export interface VirtualNetworkListUsageResult extends Array { /** * The URL to get the next set of results. */ nextLink?: string; } /** * Response for ListSubnets API service callRetrieves all subnet that belongs to a virtual network */ export interface SubnetListResult extends Array { /** * The URL to get the next set of results. */ nextLink?: string; } /** * Response for ListSubnets API service call. Retrieves all subnets that belong to a virtual * network. */ export interface VirtualNetworkPeeringListResult extends Array { /** * The URL to get the next set of results. */ nextLink?: string; } /** * Response for the ListVirtualNetworkGateways API service call. */ export interface VirtualNetworkGatewayListResult extends Array { /** * The URL to get the next set of results. */ readonly nextLink?: string; } /** * Response for the VirtualNetworkGatewayListConnections API service call */ export interface VirtualNetworkGatewayListConnectionsResult extends Array { /** * The URL to get the next set of results. */ readonly nextLink?: string; } /** * Response for the ListVirtualNetworkGatewayConnections API service call */ export interface VirtualNetworkGatewayConnectionListResult extends Array { /** * The URL to get the next set of results. */ readonly nextLink?: string; } /** * Response for ListLocalNetworkGateways API service call. */ export interface LocalNetworkGatewayListResult extends Array { /** * The URL to get the next set of results. */ readonly nextLink?: string; } /** * Response for ListVirtualNetworkTap API service call. */ export interface VirtualNetworkTapListResult extends Array { /** * The URL to get the next set of results. */ nextLink?: string; } /** * Result of the request to list VirtualWANs. It contains a list of VirtualWANs and a URL nextLink * to get the next set of results. */ export interface ListVirtualWANsResult extends Array { /** * URL to get the next set of operation list results if there are any. */ nextLink?: string; } /** * Result of the request to list VpnSites. It contains a list of VpnSites and a URL nextLink to get * the next set of results. */ export interface ListVpnSitesResult extends Array { /** * URL to get the next set of operation list results if there are any. */ nextLink?: string; } /** * Result of the request to list VirtualHubs. It contains a list of VirtualHubs and a URL nextLink * to get the next set of results. */ export interface ListVirtualHubsResult extends Array { /** * URL to get the next set of operation list results if there are any. */ nextLink?: string; } /** * List of HubVirtualNetworkConnections and a URL nextLink to get the next set of results. */ export interface ListHubVirtualNetworkConnectionsResult extends Array { /** * URL to get the next set of operation list results if there are any. */ nextLink?: string; } /** * Result of the request to list VpnGateways. It contains a list of VpnGateways and a URL nextLink * to get the next set of results. */ export interface ListVpnGatewaysResult extends Array { /** * URL to get the next set of operation list results if there are any. */ nextLink?: string; } /** * Result of the request to list all vpn connections to a virtual wan vpn gateway. It contains a * list of Vpn Connections and a URL nextLink to get the next set of results. */ export interface ListVpnConnectionsResult extends Array { /** * URL to get the next set of operation list results if there are any. */ nextLink?: string; } /** * Result of the request to list all P2SVpnServerConfigurations associated to a VirtualWan. It * contains a list of P2SVpnServerConfigurations and a URL nextLink to get the next set of results. */ export interface ListP2SVpnServerConfigurationsResult extends Array { /** * URL to get the next set of operation list results if there are any. */ nextLink?: string; } /** * Result of the request to list P2SVpnGateways. It contains a list of P2SVpnGateways and a URL * nextLink to get the next set of results. */ export interface ListP2SVpnGatewaysResult extends Array { /** * URL to get the next set of operation list results if there are any. */ nextLink?: string; } /** * Result of the request to list WebApplicationFirewallPolicies. It contains a list of * WebApplicationFirewallPolicy objects and a URL link to get the the next set of results. */ export interface WebApplicationFirewallPolicyListResult extends Array { /** * URL to get the next set of WebApplicationFirewallPolicy objects if there are any. */ readonly nextLink?: string; }