import { Expressionable, ResourceDefinition } from 'arm-templator'; export interface BgpSession { maxPrefixesAdvertisedV4?: Expressionable; maxPrefixesAdvertisedV6?: Expressionable; md5AuthenticationKey?: Expressionable; peerSessionIPv4Address?: Expressionable; peerSessionIPv6Address?: Expressionable; sessionPrefixV4?: Expressionable; sessionPrefixV6?: Expressionable; } export interface ContactInfo { emails?: Expressionable; phone?: Expressionable; } export interface DirectConnection { bandwidthInMbps?: Expressionable; bgpSession?: Expressionable; connectionIdentifier?: Expressionable; peeringDBFacilityId?: Expressionable; provisionedBandwidthInMbps?: Expressionable; sessionAddressProvider?: Expressionable<('Microsoft' | 'Peer')>; useForPeeringService?: Expressionable; } export interface ExchangeConnection { bgpSession?: Expressionable; connectionIdentifier?: Expressionable; peeringDBFacilityId?: Expressionable; } export interface PeerAsnProperties { peerAsn?: Expressionable; peerContactInfo?: Expressionable; peerName?: Expressionable; validationState?: Expressionable<('None' | 'Pending' | 'Approved' | 'Failed')>; } export interface PeeringProperties { direct?: Expressionable; exchange?: Expressionable; peeringLocation?: Expressionable; } export interface PeeringPropertiesDirect { connections?: Expressionable; directPeeringType?: Expressionable<('Edge' | 'Transit' | 'Cdn' | 'Internal')>; peerAsn?: Expressionable; useForPeeringService?: Expressionable; } export interface PeeringPropertiesExchange { connections?: Expressionable; peerAsn?: Expressionable; } export interface PeeringServicePrefixProperties { learnedType?: Expressionable<('None' | 'ViaPartner' | 'ViaSession')>; prefix?: Expressionable; prefixValidationState?: Expressionable<('None' | 'Invalid' | 'Verified' | 'Failed' | 'Pending' | 'Unknown')>; } export interface PeeringServiceProperties { peeringServiceLocation?: Expressionable; peeringServiceProvider?: Expressionable; } export interface PeeringSku { family?: Expressionable<('Direct' | 'Exchange')>; name?: Expressionable<('Basic_Exchange_Free' | 'Basic_Direct_Free' | 'Premium_Direct_Free' | 'Premium_Exchange_Metered' | 'Premium_Direct_Metered' | 'Premium_Direct_Unlimited')>; size?: Expressionable<('Free' | 'Metered' | 'Unlimited')>; tier?: Expressionable<('Basic' | 'Premium')>; } export interface SubResource { id?: Expressionable; } export declare namespace peerings { interface AdditionalProps { sku: Expressionable; kind: Expressionable<('Direct' | 'Exchange')>; tags?: Expressionable; } type PeeringsResource = ResourceDefinition; function create(name: Expressionable, properties: PeeringProperties, location: Expressionable, sku: Expressionable, kind: Expressionable<('Direct' | 'Exchange')>, tags?: Expressionable): PeeringsResource; } export declare namespace peeringServices { interface AdditionalProps { tags?: Expressionable; } type PeeringServicesResource = ResourceDefinition; function create(name: Expressionable, properties: PeeringServiceProperties, location: Expressionable, tags?: Expressionable): PeeringServicesResource; } export declare namespace peeringServices { namespace prefixes { type PrefixesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: PeeringServicePrefixProperties): PrefixesResource; } }