import { Expressionable, ResourceDefinition } from 'arm-templator'; export interface publicIPAddressDnsSettings { domainNameLabel: Expressionable; reverseFqdn?: Expressionable; } export interface networkInterfaceDnsSettings { dnsServers?: Expressionable; internalDnsNameLabel?: Expressionable; } export interface id { id: Expressionable; } export interface ipConfiguration { name: Expressionable; properties: Expressionable; } export interface ipConfigurationProperties { subnet: Expressionable; privateIPAddress?: Expressionable; privateIPAllocationMethod: Expressionable<('Dynamic' | 'Static')>; publicIPAddress?: Expressionable; loadBalancerBackendAddressPools?: Expressionable; loadBalancerInboundNatRules?: Expressionable; } export interface addressSpace { addressPrefixes: Expressionable; } export interface dhcpOptions { dnsServers: Expressionable; } export interface subnetProperties { addressPrefix: Expressionable; networkSecurityGroup?: Expressionable; routeTable?: Expressionable; } export interface subnet { name: Expressionable; properties: Expressionable; } export interface virtualNetworkPeeringPropertiesFormat { allowVirtualNetworkAccess?: Expressionable; allowForwardedTraffic?: Expressionable; allowGatewayTransit?: Expressionable; useRemoteGateways?: Expressionable; remoteVirtualNetwork?: Expressionable; peeringState?: Expressionable<('Initiated' | 'Connected' | 'Disconnected')>; } export interface virtualNetworkPeering { name: Expressionable; properties: Expressionable; } export interface frontendIPConfigurationsExternalProperties { publicIPAddress: Expressionable; } export interface frontendIPConfigurationsInternalProperties { subnet: Expressionable; privateIPAddress?: Expressionable; privateIPAllocationMethod: Expressionable<('Dynamic' | 'Static')>; } export interface frontendIPConfigurations { name: Expressionable; properties: Expressionable; } export interface backendAddressPools { name: Expressionable; } export interface loadBalancingRulesProperties { frontendIPConfiguration: Expressionable; backendAddressPool: Expressionable; protocol: Expressionable<('Udp' | 'Tcp')>; frontendPort: Expressionable; backendPort: Expressionable; probe?: Expressionable; enableFloatingIP?: Expressionable; idleTimeoutInMinutes?: Expressionable; loadDistribution?: Expressionable<('Default' | 'SourceIP' | 'SourceIPProtocol')>; } export interface loadBalancingRules { name: Expressionable; properties: Expressionable; } export interface probeProperties { protocol: Expressionable<('Http' | 'Tcp')>; port: Expressionable; requestPath?: Expressionable; intervalInSeconds?: Expressionable; numberOfProbes?: Expressionable; } export interface probes { name: Expressionable; properties: Expressionable; } export interface inboundNatRulesProperties { frontendIPConfiguration: Expressionable; protocol: Expressionable; frontendPort: Expressionable; backendPort: Expressionable; } export interface inboundNatRules { name: Expressionable; properties: Expressionable; } export interface inboundNatPoolsProperties { frontendIPConfiguration: Expressionable; protocol: Expressionable; frontendPortRangeStart: Expressionable; frontendPortRangeEnd: Expressionable; backendPort: Expressionable; } export interface inboundNatPools { name: Expressionable; properties: Expressionable; } export interface outboundNatRulesProperties { frontendIPConfigurations: Expressionable; backendAddressPool: Expressionable; } export interface outboundNatRules { name: Expressionable; properties: Expressionable; } export interface securityruleProperties { description?: Expressionable; protocol: Expressionable<('Tcp' | 'Udp' | '*')>; sourcePortRange: Expressionable; destinationPortRange: Expressionable; sourceAddressPrefix: Expressionable; destinationAddressPrefix: Expressionable; access: Expressionable<('Allow' | 'Deny')>; priority: Expressionable; direction: Expressionable<('Inbound' | 'Outbound')>; } export interface securityRules { name: Expressionable; properties: Expressionable; } export interface routeProperties { addressPrefix: Expressionable; nextHopType: Expressionable<('VirtualNetworkGateway' | 'VnetLocal' | 'Internet' | 'VirtualAppliance' | 'HyperNetGateway' | 'None')>; nextHopIpAddress?: Expressionable; } export interface routes { name: Expressionable; properties: Expressionable; } export interface SubResource { id?: Expressionable; } export declare namespace publicIPAddresses { type PublicIPAddressesResource = ResourceDefinition; function create(name: Expressionable, properties: any): PublicIPAddressesResource; } export declare namespace networkInterfaces { type NetworkInterfacesResource = ResourceDefinition; function create(name: Expressionable, properties: any): NetworkInterfacesResource; } export declare namespace virtualNetworks { type VirtualNetworksResource = ResourceDefinition; function create(name: Expressionable, properties: any): VirtualNetworksResource; } export declare namespace loadBalancers { type LoadBalancersResource = ResourceDefinition; function create(name: Expressionable, properties: any): LoadBalancersResource; } export declare namespace networkSecurityGroups { type NetworkSecurityGroupsResource = ResourceDefinition; function create(name: Expressionable, properties: any): NetworkSecurityGroupsResource; } export declare namespace routeTables { type RouteTablesResource = ResourceDefinition; function create(name: Expressionable, properties: any): RouteTablesResource; }