import { Expressionable, ResourceDefinition } from 'arm-templator'; export interface AddressSpace { addressPrefixes: Expressionable; } export interface ApplicationGatewayBackendAddress { fqdn?: Expressionable; ipAddress?: Expressionable; } export interface ApplicationGatewayBackendAddressPool { id?: Expressionable; properties?: Expressionable; name?: Expressionable; etag?: Expressionable; } export interface ApplicationGatewayBackendAddressPoolPropertiesFormat { backendIPConfigurations?: Expressionable; backendAddresses?: Expressionable; provisioningState?: Expressionable; } export interface ApplicationGatewayBackendHttpSettings { id?: Expressionable; properties?: Expressionable; name?: Expressionable; etag?: Expressionable; } export interface ApplicationGatewayBackendHttpSettingsPropertiesFormat { port?: Expressionable; protocol?: Expressionable<('Http' | 'Https')>; cookieBasedAffinity?: Expressionable<('Enabled' | 'Disabled')>; provisioningState?: Expressionable; } export interface ApplicationGatewayFrontendIPConfiguration { id?: Expressionable; properties?: Expressionable; name?: Expressionable; etag?: Expressionable; } export interface ApplicationGatewayFrontendIPConfigurationPropertiesFormat { privateIPAddress?: Expressionable; privateIPAllocationMethod?: Expressionable<('Static' | 'Dynamic')>; subnet?: Expressionable; publicIPAddress?: Expressionable; provisioningState?: Expressionable; } export interface ApplicationGatewayFrontendPort { id?: Expressionable; properties?: Expressionable; name?: Expressionable; etag?: Expressionable; } export interface ApplicationGatewayFrontendPortPropertiesFormat { port?: Expressionable; provisioningState?: Expressionable; } export interface ApplicationGatewayHttpListener { id?: Expressionable; properties?: Expressionable; name?: Expressionable; etag?: Expressionable; } export interface ApplicationGatewayHttpListenerPropertiesFormat { frontendIPConfiguration?: Expressionable; frontendPort?: Expressionable; protocol?: Expressionable<('Http' | 'Https')>; sslCertificate?: Expressionable; provisioningState?: Expressionable; } export interface ApplicationGatewayIPConfiguration { id?: Expressionable; properties?: Expressionable; name?: Expressionable; etag?: Expressionable; } export interface ApplicationGatewayIPConfigurationPropertiesFormat { subnet?: Expressionable; provisioningState?: Expressionable; } export interface ApplicationGatewayPropertiesFormat { sku?: Expressionable; gatewayIPConfigurations?: Expressionable; sslCertificates?: Expressionable; frontendIPConfigurations?: Expressionable; frontendPorts?: Expressionable; backendAddressPools?: Expressionable; backendHttpSettingsCollection?: Expressionable; httpListeners?: Expressionable; requestRoutingRules?: Expressionable; resourceGuid?: Expressionable; provisioningState?: Expressionable; } export interface ApplicationGatewayRequestRoutingRule { id?: Expressionable; properties?: Expressionable; name?: Expressionable; etag?: Expressionable; } export interface ApplicationGatewayRequestRoutingRulePropertiesFormat { ruleType?: Expressionable<('Basic')>; backendAddressPool?: Expressionable; backendHttpSettings?: Expressionable; httpListener?: Expressionable; provisioningState?: Expressionable; } export interface ApplicationGatewaySku { name?: Expressionable<('Standard_Small' | 'Standard_Medium' | 'Standard_Large')>; tier?: Expressionable<('Standard')>; capacity?: Expressionable; } export interface ApplicationGatewaySslCertificate { id?: Expressionable; properties?: Expressionable; name?: Expressionable; etag?: Expressionable; } export interface ApplicationGatewaySslCertificatePropertiesFormat { data?: Expressionable; password?: Expressionable; publicCertData?: Expressionable; provisioningState?: Expressionable; } export interface AuthorizationPropertiesFormat { authorizationKey?: Expressionable; authorizationUseStatus?: Expressionable<('Available' | 'InUse')>; provisioningState?: Expressionable; } export interface BackendAddressPool { id?: Expressionable; properties?: Expressionable; name: Expressionable; etag?: Expressionable; } export interface BackendAddressPoolPropertiesFormat { backendIPConfigurations?: Expressionable; loadBalancingRules?: Expressionable; outboundNatRule?: Expressionable; provisioningState?: Expressionable; } export interface DhcpOptions { dnsServers: Expressionable; } export interface ExpressRouteCircuitPeeringConfig { advertisedPublicPrefixes?: Expressionable; advertisedPublicPrefixesState?: Expressionable<('NotConfigured' | 'Configuring' | 'Configured' | 'ValidationNeeded')>; customerASN?: Expressionable; routingRegistryName?: Expressionable; } export interface ExpressRouteCircuitPeeringPropertiesFormat { peeringType?: Expressionable<('AzurePublicPeering' | 'AzurePrivatePeering' | 'MicrosoftPeering')>; state?: Expressionable<('Disabled' | 'Enabled')>; azureASN?: Expressionable; peerASN?: Expressionable; primaryPeerAddressPrefix?: Expressionable; secondaryPeerAddressPrefix?: Expressionable; primaryAzurePort?: Expressionable; secondaryAzurePort?: Expressionable; sharedKey?: Expressionable; vlanId?: Expressionable; microsoftPeeringConfig?: Expressionable; stats?: Expressionable; provisioningState?: Expressionable; } export interface ExpressRouteCircuitStats { bytesIn?: Expressionable; bytesOut?: Expressionable; } export interface FrontendIpConfiguration { id?: Expressionable; properties?: Expressionable; name: Expressionable; etag?: Expressionable; } export interface FrontendIpConfigurationPropertiesFormat { privateIPAddress?: Expressionable; privateIPAllocationMethod?: Expressionable<('Static' | 'Dynamic')>; subnet?: Expressionable; publicIPAddress?: Expressionable; inboundNatRules?: Expressionable; inboundNatPools?: Expressionable; outboundNatRules?: Expressionable; loadBalancingRules?: Expressionable; provisioningState?: Expressionable; } export interface InboundNatPool { id?: Expressionable; properties?: Expressionable; name: Expressionable; etag?: Expressionable; } export interface InboundNatPoolPropertiesFormat { frontendIPConfiguration: Expressionable; protocol: Expressionable<('Udp' | 'Tcp')>; frontendPortRangeStart: Expressionable; frontendPortRangeEnd: Expressionable; backendPort: Expressionable; provisioningState?: Expressionable; } export interface InboundNatRule { id?: Expressionable; properties?: Expressionable; name: Expressionable; etag?: Expressionable; } export interface InboundNatRulePropertiesFormat { frontendIPConfiguration: Expressionable; backendIPConfiguration?: Expressionable; protocol: Expressionable<('Udp' | 'Tcp')>; frontendPort: Expressionable; backendPort: Expressionable; idleTimeoutInMinutes?: Expressionable; enableFloatingIP?: Expressionable; provisioningState?: Expressionable; } export interface LoadBalancerPropertiesFormat { frontendIPConfigurations?: Expressionable; backendAddressPools?: Expressionable; loadBalancingRules?: Expressionable; probes?: Expressionable; inboundNatRules?: Expressionable; inboundNatPools?: Expressionable; outboundNatRules?: Expressionable; resourceGuid?: Expressionable; provisioningState?: Expressionable; } export interface LoadBalancingRule { id?: Expressionable; properties?: Expressionable; name: Expressionable; etag?: Expressionable; } export interface LoadBalancingRulePropertiesFormat { frontendIPConfiguration: Expressionable; backendAddressPool: Expressionable; probe?: Expressionable; protocol: Expressionable<('Udp' | 'Tcp')>; loadDistribution?: Expressionable<('Default' | 'SourceIP' | 'SourceIPProtocol')>; frontendPort: Expressionable; backendPort: Expressionable; idleTimeoutInMinutes?: Expressionable; enableFloatingIP?: Expressionable; provisioningState?: Expressionable; } export interface LocalNetworkGatewayPropertiesFormat { localNetworkAddressSpace?: Expressionable; gatewayIpAddress?: Expressionable; resourceGuid?: Expressionable; provisioningState?: Expressionable; } export interface NetworkInterfaceDnsSettings { dnsServers?: Expressionable; appliedDnsServers?: Expressionable; internalDnsNameLabel?: Expressionable; internalFqdn?: Expressionable; } export interface NetworkInterfaceIpConfiguration { id?: Expressionable; properties?: Expressionable; name: Expressionable; etag?: Expressionable; } export interface NetworkInterfaceIpConfigurationPropertiesFormat { privateIPAddress?: Expressionable; privateIPAllocationMethod?: Expressionable<('Static' | 'Dynamic')>; subnet?: Expressionable; publicIPAddress?: Expressionable; loadBalancerBackendAddressPools?: Expressionable; loadBalancerInboundNatRules?: Expressionable; provisioningState?: Expressionable; } export interface NetworkInterfacePropertiesFormat { virtualMachine?: Expressionable; networkSecurityGroup?: Expressionable; ipConfigurations: Expressionable; dnsSettings?: Expressionable; macAddress?: Expressionable; primary?: Expressionable; enableIPForwarding?: Expressionable; resourceGuid?: Expressionable; provisioningState?: Expressionable; } export interface NetworkSecurityGroupPropertiesFormat { securityRules?: Expressionable; defaultSecurityRules?: Expressionable; networkInterfaces?: Expressionable; subnets?: Expressionable; resourceGuid?: Expressionable; provisioningState?: Expressionable; } export interface OutboundNatRule { id?: Expressionable; properties?: Expressionable; name?: Expressionable; etag?: Expressionable; } export interface OutboundNatRulePropertiesFormat { allocatedOutboundPorts: Expressionable; frontendIPConfigurations?: Expressionable; backendAddressPool: Expressionable; provisioningState?: Expressionable; } export interface Probe { id?: Expressionable; properties?: Expressionable; name: Expressionable; etag?: Expressionable; } export interface ProbePropertiesFormat { loadBalancingRules?: Expressionable; protocol: Expressionable<('Http' | 'Tcp')>; port: Expressionable; intervalInSeconds?: Expressionable; numberOfProbes: Expressionable; requestPath?: Expressionable; provisioningState?: Expressionable; } export interface PublicIpAddressDnsSettings { domainNameLabel: Expressionable; fqdn?: Expressionable; reverseFqdn?: Expressionable; } export interface PublicIpAddressPropertiesFormat { publicIPAllocationMethod: Expressionable<('Static' | 'Dynamic')>; ipConfiguration?: Expressionable; dnsSettings?: Expressionable; ipAddress?: Expressionable; idleTimeoutInMinutes?: Expressionable; resourceGuid?: Expressionable; provisioningState?: Expressionable; } export interface Route { id?: Expressionable; properties?: Expressionable; name?: Expressionable; etag?: Expressionable; } export interface RoutePropertiesFormat { addressPrefix: Expressionable; nextHopType: Expressionable<('VirtualNetworkGateway' | 'VnetLocal' | 'Internet' | 'VirtualAppliance' | 'None' | 'HyperNetGateway')>; nextHopIpAddress?: Expressionable; provisioningState?: Expressionable; } export interface RouteTablePropertiesFormat { routes?: Expressionable; subnets?: Expressionable; provisioningState?: Expressionable; } export interface SecurityRule { id?: Expressionable; properties?: Expressionable; name?: Expressionable; etag?: Expressionable; } export interface SecurityRulePropertiesFormat { description?: Expressionable; protocol: Expressionable<('Tcp' | 'Udp' | '*')>; sourcePortRange?: Expressionable; destinationPortRange?: Expressionable; sourceAddressPrefix: Expressionable; destinationAddressPrefix: Expressionable; access: Expressionable<('Allow' | 'Deny')>; priority: Expressionable; direction: Expressionable<('Inbound' | 'Outbound')>; provisioningState?: Expressionable; } export interface Subnet { id?: Expressionable; properties?: Expressionable; name: Expressionable; etag?: Expressionable; } export interface SubnetPropertiesFormat { addressPrefix: Expressionable; networkSecurityGroup?: Expressionable; routeTable?: Expressionable; ipConfigurations?: Expressionable; provisioningState?: Expressionable; } export interface SubResource { id?: Expressionable; } export interface VirtualNetworkGatewayConnectionPropertiesFormat { virtualNetworkGateway1?: Expressionable; virtualNetworkGateway2?: Expressionable; localNetworkGateway2?: Expressionable; connectionType?: Expressionable<('IPsec' | 'Vnet2Vnet' | 'ExpressRoute' | 'VPNClient')>; routingWeight?: Expressionable; sharedKey?: Expressionable; connectionStatus?: Expressionable<('Unknown' | 'Connecting' | 'Connected' | 'NotConnected')>; egressBytesTransferred?: Expressionable; ingressBytesTransferred?: Expressionable; peer?: Expressionable; resourceGuid?: Expressionable; provisioningState?: Expressionable; } export interface VirtualNetworkGatewayIpConfiguration { id?: Expressionable; properties?: Expressionable; name?: Expressionable; etag?: Expressionable; } export interface VirtualNetworkGatewayIpConfigurationPropertiesFormat { privateIPAddress?: Expressionable; privateIPAllocationMethod?: Expressionable<('Static' | 'Dynamic')>; subnet?: Expressionable; publicIPAddress?: Expressionable; provisioningState?: Expressionable; } export interface VirtualNetworkGatewayPropertiesFormat { ipConfigurations?: Expressionable; gatewayType?: Expressionable<('Vpn' | 'ExpressRoute')>; vpnType?: Expressionable<('PolicyBased' | 'RouteBased')>; enableBgp?: Expressionable; gatewayDefaultSite?: Expressionable; resourceGuid?: Expressionable; provisioningState?: Expressionable; } export interface VirtualNetworkPropertiesFormat { addressSpace: Expressionable; dhcpOptions?: Expressionable; subnets?: Expressionable; resourceGuid?: Expressionable; provisioningState?: Expressionable; } export declare namespace applicationGateways { type ApplicationGatewaysResource = ResourceDefinition; function create(name: Expressionable, properties: ApplicationGatewayPropertiesFormat, location: Expressionable): ApplicationGatewaysResource; } export declare namespace connections { type ConnectionsResource = ResourceDefinition; function create(name: Expressionable, properties: VirtualNetworkGatewayConnectionPropertiesFormat, location: Expressionable): ConnectionsResource; } export declare namespace expressRouteCircuits { namespace authorizations { type AuthorizationsResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: AuthorizationPropertiesFormat): AuthorizationsResource; } } export declare namespace expressRouteCircuits { namespace peerings { type PeeringsResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: ExpressRouteCircuitPeeringPropertiesFormat): PeeringsResource; } } export declare namespace loadBalancers { type LoadBalancersResource = ResourceDefinition; function create(name: Expressionable, properties: LoadBalancerPropertiesFormat, location: Expressionable): LoadBalancersResource; } export declare namespace localNetworkGateways { type LocalNetworkGatewaysResource = ResourceDefinition; function create(name: Expressionable, properties: LocalNetworkGatewayPropertiesFormat, location: Expressionable): LocalNetworkGatewaysResource; } export declare namespace networkInterfaces { type NetworkInterfacesResource = ResourceDefinition; function create(name: Expressionable, properties: NetworkInterfacePropertiesFormat, location: Expressionable): NetworkInterfacesResource; } export declare namespace networkSecurityGroups { type NetworkSecurityGroupsResource = ResourceDefinition; function create(name: Expressionable, properties: NetworkSecurityGroupPropertiesFormat, location: Expressionable): NetworkSecurityGroupsResource; } export declare namespace networkSecurityGroups { namespace securityRules { type SecurityRulesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: SecurityRulePropertiesFormat): SecurityRulesResource; } } export declare namespace publicIPAddresses { type PublicIPAddressesResource = ResourceDefinition; function create(name: Expressionable, properties: PublicIpAddressPropertiesFormat, location: Expressionable): PublicIPAddressesResource; } export declare namespace routeTables { type RouteTablesResource = ResourceDefinition; function create(name: Expressionable, properties: RouteTablePropertiesFormat, location: Expressionable): RouteTablesResource; } export declare namespace routeTables { namespace routes { type RoutesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: RoutePropertiesFormat): RoutesResource; } } export declare namespace virtualNetworkGateways { type VirtualNetworkGatewaysResource = ResourceDefinition; function create(name: Expressionable, properties: VirtualNetworkGatewayPropertiesFormat, location: Expressionable): VirtualNetworkGatewaysResource; } export declare namespace virtualNetworks { type VirtualNetworksResource = ResourceDefinition; function create(name: Expressionable, properties: VirtualNetworkPropertiesFormat, location: Expressionable): VirtualNetworksResource; } export declare namespace virtualNetworks { namespace subnets { type SubnetsResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: SubnetPropertiesFormat): SubnetsResource; } }