// 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.
import Foundation
// ConnectionMonitorDestinationProtocol is describes the destination of connection monitor.
public protocol ConnectionMonitorDestinationProtocol : Codable {
     var resourceId: String? { get set }
     var address: String? { get set }
     var port: Int32? { get set }
}


// 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.
import Foundation
// ConnectionMonitorListResultProtocol is list of connection monitors.
public protocol ConnectionMonitorListResultProtocol : Codable {
     var value: [ConnectionMonitorResultProtocol?]? { get set }
}


// 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.
import Foundation
// ConnectionMonitorParametersProtocol is parameters that define the operation to create a connection monitor.
public protocol ConnectionMonitorParametersProtocol : Codable {
     var source: ConnectionMonitorSourceProtocol { get set }
     var destination: ConnectionMonitorDestinationProtocol { get set }
     var autoStart: Bool? { get set }
     var monitoringIntervalInSeconds: Int32? { get set }
}


// 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.
import Foundation
// ConnectionMonitorProtocol is parameters that define the operation to create a connection monitor.
public protocol ConnectionMonitorProtocol : Codable {
     var location: String? { get set }
     var tags: [String:String]? { get set }
     var properties: ConnectionMonitorParametersProtocol { get set }
}


// 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.
import Foundation
// ConnectionMonitorQueryResultProtocol is list of connection states snaphots.
public protocol ConnectionMonitorQueryResultProtocol : Codable {
     var states: [ConnectionStateSnapshotProtocol?]? { get set }
}


// 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.
import Foundation
// ConnectionMonitorResultPropertiesProtocol is describes the properties of a connection monitor.
public protocol ConnectionMonitorResultPropertiesProtocol : ConnectionMonitorParametersProtocol {
     var provisioningState: ProvisioningStateEnum? { get set }
     var startTime: Date? { get set }
     var monitoringStatus: String? { get set }
}


// 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.
import Foundation
// ConnectionMonitorResultProtocol is information about the connection monitor.
public protocol ConnectionMonitorResultProtocol : Codable {
     var name: String? { get set }
     var id: String? { get set }
     var etag: String? { get set }
     var type: String? { get set }
     var location: String? { get set }
     var tags: [String:String]? { get set }
     var properties: ConnectionMonitorResultPropertiesProtocol? { get set }
}


// 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.
import Foundation
// ConnectionMonitorSourceProtocol is describes the source of connection monitor.
public protocol ConnectionMonitorSourceProtocol : Codable {
     var resourceId: String { get set }
     var port: Int32? { get set }
}


// 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.
import Foundation
// ConnectionResetSharedKeyProtocol is the virtual network connection reset shared key
public protocol ConnectionResetSharedKeyProtocol : Codable {
     var keyLength: Int32 { get set }
}


// 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.
import Foundation
// ConnectionSharedKeyProtocol is response for GetConnectionSharedKey API service call
public protocol ConnectionSharedKeyProtocol : Codable {
     var value: String { get set }
}


// 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.
import Foundation
// ConnectionStateSnapshotProtocol is connection state snapshot.
public protocol ConnectionStateSnapshotProtocol : Codable {
     var connectionState: ConnectionStateEnum? { get set }
     var startTime: Date? { get set }
     var endTime: Date? { get set }
     var evaluationState: EvaluationStateEnum? { get set }
     var hops: [ConnectivityHopProtocol?]? { get set }
}


// 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.
import Foundation
// ConnectivityDestinationProtocol is parameters that define destination of connection.
public protocol ConnectivityDestinationProtocol : Codable {
     var resourceId: String? { get set }
     var address: String? { get set }
     var port: Int32? { get set }
}


// 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.
import Foundation
// ConnectivityHopProtocol is information about a hop between the source and the destination.
public protocol ConnectivityHopProtocol : Codable {
     var type: String? { get set }
     var id: String? { get set }
     var address: String? { get set }
     var resourceId: String? { get set }
     var nextHopIds: [String]? { get set }
     var issues: [ConnectivityIssueProtocol?]? { get set }
}


// 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.
import Foundation
// ConnectivityInformationProtocol is information on the connectivity status.
public protocol ConnectivityInformationProtocol : Codable {
     var hops: [ConnectivityHopProtocol?]? { get set }
     var connectionStatus: ConnectionStatusEnum? { get set }
     var avgLatencyInMs: Int32? { get set }
     var minLatencyInMs: Int32? { get set }
     var maxLatencyInMs: Int32? { get set }
     var probesSent: Int32? { get set }
     var probesFailed: Int32? { get set }
}


// 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.
import Foundation
// ConnectivityIssueProtocol is information about an issue encountered in the process of checking for connectivity.
public protocol ConnectivityIssueProtocol : Codable {
     var origin: OriginEnum? { get set }
     var severity: SeverityEnum? { get set }
     var type: IssueTypeEnum? { get set }
     var context: [[String:String]?]? { get set }
}


// 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.
import Foundation
// ConnectivityParametersProtocol is parameters that determine how the connectivity check will be performed.
public protocol ConnectivityParametersProtocol : Codable {
     var source: ConnectivitySourceProtocol { get set }
     var destination: ConnectivityDestinationProtocol { get set }
}


// 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.
import Foundation
// ConnectivitySourceProtocol is parameters that define the source of the connection.
public protocol ConnectivitySourceProtocol : Codable {
     var resourceId: String { get set }
     var port: Int32? { get set }
}


// 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.
import Foundation
// DhcpOptionsProtocol is 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.
public protocol DhcpOptionsProtocol : Codable {
     var dnsServers: [String]? { get set }
}


// 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.
import Foundation
// DimensionProtocol is dimension of the metric.
public protocol DimensionProtocol : Codable {
     var name: String? { get set }
     var displayName: String? { get set }
     var internalName: String? { get set }
}


// 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.
import Foundation
// DnsNameAvailabilityResultProtocol is response for the CheckDnsNameAvailability API service call.
public protocol DnsNameAvailabilityResultProtocol : Codable {
     var available: Bool? { get set }
}


// 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.
import Foundation
// EffectiveNetworkSecurityGroupAssociationProtocol is the effective network security group association.
public protocol EffectiveNetworkSecurityGroupAssociationProtocol : Codable {
     var subnet: SubResourceProtocol? { get set }
     var networkInterface: SubResourceProtocol? { get set }
}


// 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.
import Foundation
// EffectiveNetworkSecurityGroupListResultProtocol is response for list effective network security groups API service
// call.
public protocol EffectiveNetworkSecurityGroupListResultProtocol : Codable {
     var value: [EffectiveNetworkSecurityGroupProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// EffectiveNetworkSecurityGroupProtocol is effective network security group.
public protocol EffectiveNetworkSecurityGroupProtocol : Codable {
     var networkSecurityGroup: SubResourceProtocol? { get set }
     var association: EffectiveNetworkSecurityGroupAssociationProtocol? { get set }
     var effectiveSecurityRules: [EffectiveNetworkSecurityRuleProtocol?]? { get set }
     var tagMap: [String:[String]?]? { get set }
}


// 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.
import Foundation
// EffectiveNetworkSecurityRuleProtocol is effective network security rules.
public protocol EffectiveNetworkSecurityRuleProtocol : Codable {
     var name: String? { get set }
     var _protocol: EffectiveSecurityRuleProtocolEnum? { get set }
     var sourcePortRange: String? { get set }
     var destinationPortRange: String? { get set }
     var sourcePortRanges: [String]? { get set }
     var destinationPortRanges: [String]? { get set }
     var sourceAddressPrefix: String? { get set }
     var destinationAddressPrefix: String? { get set }
     var sourceAddressPrefixes: [String]? { get set }
     var destinationAddressPrefixes: [String]? { get set }
     var expandedSourceAddressPrefix: [String]? { get set }
     var expandedDestinationAddressPrefix: [String]? { get set }
     var access: SecurityRuleAccessEnum? { get set }
     var priority: Int32? { get set }
     var direction: SecurityRuleDirectionEnum? { get set }
}


// 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.
import Foundation
// EffectiveRouteListResultProtocol is response for list effective route API service call.
public protocol EffectiveRouteListResultProtocol : Codable {
     var value: [EffectiveRouteProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// EffectiveRouteProtocol is effective Route
public protocol EffectiveRouteProtocol : Codable {
     var name: String? { get set }
     var source: EffectiveRouteSourceEnum? { get set }
     var state: EffectiveRouteStateEnum? { get set }
     var addressPrefix: [String]? { get set }
     var nextHopIpAddress: [String]? { get set }
     var nextHopType: RouteNextHopTypeEnum? { get set }
}


// 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.
import Foundation
// EndpointServiceResultProtocol is endpoint service.
public protocol EndpointServiceResultProtocol : SubResourceProtocol {
     var name: String? { get set }
     var type: String? { get set }
}


// 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.
import Foundation
// EndpointServicesListResultProtocol is response for the ListAvailableEndpointServices API service call.
public protocol EndpointServicesListResultProtocol : Codable {
     var value: [EndpointServiceResultProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// ErrorDetailsProtocol is
public protocol ErrorDetailsProtocol : Codable {
     var code: String? { get set }
     var target: String? { get set }
     var message: String? { get set }
}


// 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.
import Foundation
// ErrorProtocol is
public protocol ErrorProtocol : Codable {
     var code: String? { get set }
     var message: String? { get set }
     var target: String? { get set }
     var details: [ErrorDetailsProtocol?]? { get set }
     var innerError: String? { get set }
}


// 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.
import Foundation
// ExpressRouteCircuitArpTableProtocol is the ARP table associated with the ExpressRouteCircuit.
public protocol ExpressRouteCircuitArpTableProtocol : Codable {
     var age: Int32? { get set }
     var interface: String? { get set }
     var ipAddress: String? { get set }
     var macAddress: String? { get set }
}


// 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.
import Foundation
// ExpressRouteCircuitAuthorizationProtocol is authorization in an ExpressRouteCircuit resource.
public protocol ExpressRouteCircuitAuthorizationProtocol : SubResourceProtocol {
     var properties: AuthorizationPropertiesFormatProtocol? { get set }
     var name: String? { get set }
     var etag: String? { get set }
}


// 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.
import Foundation
// ExpressRouteCircuitListResultProtocol is response for ListExpressRouteCircuit API service call.
public protocol ExpressRouteCircuitListResultProtocol : Codable {
     var value: [ExpressRouteCircuitProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// ExpressRouteCircuitPeeringConfigProtocol is specifies the peering configuration.
public protocol ExpressRouteCircuitPeeringConfigProtocol : Codable {
     var advertisedPublicPrefixes: [String]? { get set }
     var advertisedCommunities: [String]? { get set }
     var advertisedPublicPrefixesState: ExpressRouteCircuitPeeringAdvertisedPublicPrefixStateEnum? { get set }
     var legacyMode: Int32? { get set }
     var customerASN: Int32? { get set }
     var routingRegistryName: String? { get set }
}


// 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.
import Foundation
// ExpressRouteCircuitPeeringListResultProtocol is response for ListPeering API service call retrieves all peerings
// that belong to an ExpressRouteCircuit.
public protocol ExpressRouteCircuitPeeringListResultProtocol : Codable {
     var value: [ExpressRouteCircuitPeeringProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// ExpressRouteCircuitPeeringPropertiesFormatProtocol is
public protocol ExpressRouteCircuitPeeringPropertiesFormatProtocol : Codable {
     var peeringType: ExpressRouteCircuitPeeringTypeEnum? { get set }
     var state: ExpressRouteCircuitPeeringStateEnum? { get set }
     var azureASN: Int32? { get set }
     var peerASN: Int64? { get set }
     var primaryPeerAddressPrefix: String? { get set }
     var secondaryPeerAddressPrefix: String? { get set }
     var primaryAzurePort: String? { get set }
     var secondaryAzurePort: String? { get set }
     var sharedKey: String? { get set }
     var vlanId: Int32? { get set }
     var microsoftPeeringConfig: ExpressRouteCircuitPeeringConfigProtocol? { get set }
     var stats: ExpressRouteCircuitStatsProtocol? { get set }
     var provisioningState: String? { get set }
     var gatewayManagerEtag: String? { get set }
     var lastModifiedBy: String? { get set }
     var routeFilter: RouteFilterProtocol? { get set }
     var ipv6PeeringConfig: Ipv6ExpressRouteCircuitPeeringConfigProtocol? { get set }
}


// 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.
import Foundation
// ExpressRouteCircuitPeeringProtocol is peering in an ExpressRouteCircuit resource.
public protocol ExpressRouteCircuitPeeringProtocol : SubResourceProtocol {
     var properties: ExpressRouteCircuitPeeringPropertiesFormatProtocol? { get set }
     var name: String? { get set }
     var etag: String? { get set }
}


// 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.
import Foundation
// ExpressRouteCircuitPropertiesFormatProtocol is properties of ExpressRouteCircuit.
public protocol ExpressRouteCircuitPropertiesFormatProtocol : Codable {
     var allowClassicOperations: Bool? { get set }
     var circuitProvisioningState: String? { get set }
     var serviceProviderProvisioningState: ServiceProviderProvisioningStateEnum? { get set }
     var authorizations: [ExpressRouteCircuitAuthorizationProtocol?]? { get set }
     var peerings: [ExpressRouteCircuitPeeringProtocol?]? { get set }
     var serviceKey: String? { get set }
     var serviceProviderNotes: String? { get set }
     var serviceProviderProperties: ExpressRouteCircuitServiceProviderPropertiesProtocol? { get set }
     var provisioningState: String? { get set }
     var gatewayManagerEtag: String? { get set }
}


// 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.
import Foundation
// ExpressRouteCircuitProtocol is expressRouteCircuit resource
public protocol ExpressRouteCircuitProtocol : ResourceProtocol {
     var sku: ExpressRouteCircuitSkuProtocol? { get set }
     var properties: ExpressRouteCircuitPropertiesFormatProtocol? { get set }
     var etag: String? { get set }
}


// 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.
import Foundation
// ExpressRouteCircuitRoutesTableProtocol is the routes table associated with the ExpressRouteCircuit
public protocol ExpressRouteCircuitRoutesTableProtocol : Codable {
     var network: String? { get set }
     var nextHop: String? { get set }
     var locPrf: String? { get set }
     var weight: Int32? { get set }
     var path: String? { get set }
}


// 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.
import Foundation
// ExpressRouteCircuitRoutesTableSummaryProtocol is the routes table associated with the ExpressRouteCircuit.
public protocol ExpressRouteCircuitRoutesTableSummaryProtocol : Codable {
     var neighbor: String? { get set }
     var V: Int32? { get set }
     var _as: Int32? { get set }
     var upDown: String? { get set }
     var statePfxRcd: String? { get set }
}


// 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.
import Foundation
// ExpressRouteCircuitsArpTableListResultProtocol is response for ListArpTable associated with the Express Route
// Circuits API.
public protocol ExpressRouteCircuitsArpTableListResultProtocol : Codable {
     var value: [ExpressRouteCircuitArpTableProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// ExpressRouteCircuitServiceProviderPropertiesProtocol is contains ServiceProviderProperties in an
// ExpressRouteCircuit.
public protocol ExpressRouteCircuitServiceProviderPropertiesProtocol : Codable {
     var serviceProviderName: String? { get set }
     var peeringLocation: String? { get set }
     var bandwidthInMbps: Int32? { get set }
}


// 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.
import Foundation
// ExpressRouteCircuitSkuProtocol is contains SKU in an ExpressRouteCircuit.
public protocol ExpressRouteCircuitSkuProtocol : Codable {
     var name: String? { get set }
     var tier: ExpressRouteCircuitSkuTierEnum? { get set }
     var family: ExpressRouteCircuitSkuFamilyEnum? { get set }
}


// 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.
import Foundation
// ExpressRouteCircuitsRoutesTableListResultProtocol is response for ListRoutesTable associated with the Express Route
// Circuits API.
public protocol ExpressRouteCircuitsRoutesTableListResultProtocol : Codable {
     var value: [ExpressRouteCircuitRoutesTableProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// ExpressRouteCircuitsRoutesTableSummaryListResultProtocol is response for ListRoutesTable associated with the Express
// Route Circuits API.
public protocol ExpressRouteCircuitsRoutesTableSummaryListResultProtocol : Codable {
     var value: [ExpressRouteCircuitRoutesTableSummaryProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// ExpressRouteCircuitStatsProtocol is contains stats associated with the peering.
public protocol ExpressRouteCircuitStatsProtocol : Codable {
     var primarybytesIn: Int64? { get set }
     var primarybytesOut: Int64? { get set }
     var secondarybytesIn: Int64? { get set }
     var secondarybytesOut: Int64? { get set }
}


// 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.
import Foundation
// ExpressRouteServiceProviderBandwidthsOfferedProtocol is contains bandwidths offered in ExpressRouteServiceProvider
// resources.
public protocol ExpressRouteServiceProviderBandwidthsOfferedProtocol : Codable {
     var offerName: String? { get set }
     var valueInMbps: Int32? { get set }
}


// 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.
import Foundation
// ExpressRouteServiceProviderListResultProtocol is response for the ListExpressRouteServiceProvider API service call.
public protocol ExpressRouteServiceProviderListResultProtocol : Codable {
     var value: [ExpressRouteServiceProviderProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// ExpressRouteServiceProviderPropertiesFormatProtocol is properties of ExpressRouteServiceProvider.
public protocol ExpressRouteServiceProviderPropertiesFormatProtocol : Codable {
     var peeringLocations: [String]? { get set }
     var bandwidthsOffered: [ExpressRouteServiceProviderBandwidthsOfferedProtocol?]? { get set }
     var provisioningState: String? { get set }
}


// 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.
import Foundation
// ExpressRouteServiceProviderProtocol is a ExpressRouteResourceProvider object.
public protocol ExpressRouteServiceProviderProtocol : ResourceProtocol {
     var properties: ExpressRouteServiceProviderPropertiesFormatProtocol? { get set }
}


// 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.
import Foundation
// FlowLogInformationProtocol is information on the configuration of flow log.
public protocol FlowLogInformationProtocol : Codable {
     var targetResourceId: String { get set }
     var properties: FlowLogPropertiesProtocol { get set }
}


// 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.
import Foundation
// FlowLogPropertiesProtocol is parameters that define the configuration of flow log.
public protocol FlowLogPropertiesProtocol : Codable {
     var storageId: String { get set }
     var enabled: Bool { get set }
     var retentionPolicy: RetentionPolicyParametersProtocol? { get set }
}


// 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.
import Foundation
// FlowLogStatusParametersProtocol is parameters that define a resource to query flow log status.
public protocol FlowLogStatusParametersProtocol : Codable {
     var targetResourceId: String { get set }
}


// 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.
import Foundation
// FrontendIPConfigurationPropertiesFormatProtocol is properties of Frontend IP Configuration of the load balancer.
public protocol FrontendIPConfigurationPropertiesFormatProtocol : Codable {
     var inboundNatRules: [SubResourceProtocol?]? { get set }
     var inboundNatPools: [SubResourceProtocol?]? { get set }
     var outboundNatRules: [SubResourceProtocol?]? { get set }
     var loadBalancingRules: [SubResourceProtocol?]? { get set }
     var privateIPAddress: String? { get set }
     var privateIPAllocationMethod: IPAllocationMethodEnum? { get set }
     var subnet: SubnetProtocol? { get set }
     var publicIPAddress: PublicIPAddressProtocol? { get set }
     var provisioningState: String? { get set }
}


// 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.
import Foundation
// FrontendIPConfigurationProtocol is frontend IP address of the load balancer.
public protocol FrontendIPConfigurationProtocol : SubResourceProtocol {
     var properties: FrontendIPConfigurationPropertiesFormatProtocol? { get set }
     var name: String? { get set }
     var etag: String? { get set }
     var zones: [String]? { get set }
}


// 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.
import Foundation
// GatewayRouteListResultProtocol is list of virtual network gateway routes
public protocol GatewayRouteListResultProtocol : Codable {
     var value: [GatewayRouteProtocol?]? { get set }
}


// 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.
import Foundation
// GatewayRouteProtocol is gateway routing details
public protocol GatewayRouteProtocol : Codable {
     var localAddress: String? { get set }
     var network: String? { get set }
     var nextHop: String? { get set }
     var sourcePeer: String? { get set }
     var origin: String? { get set }
     var asPath: String? { get set }
     var weight: Int32? { get set }
}


// 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.
import Foundation
// InboundNatPoolPropertiesFormatProtocol is properties of Inbound NAT pool.
public protocol InboundNatPoolPropertiesFormatProtocol : Codable {
     var frontendIPConfiguration: SubResourceProtocol? { get set }
     var _protocol: TransportProtocolEnum { get set }
     var frontendPortRangeStart: Int32 { get set }
     var frontendPortRangeEnd: Int32 { get set }
     var backendPort: Int32 { get set }
     var idleTimeoutInMinutes: Int32? { get set }
     var enableFloatingIP: Bool? { get set }
     var provisioningState: String? { get set }
}


// 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.
import Foundation
// InboundNatPoolProtocol is inbound NAT pool of the load balancer.
public protocol InboundNatPoolProtocol : SubResourceProtocol {
     var properties: InboundNatPoolPropertiesFormatProtocol? { get set }
     var name: String? { get set }
     var etag: String? { get set }
}


// 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.
import Foundation
// InboundNatRuleListResultProtocol is response for ListInboundNatRule API service call.
public protocol InboundNatRuleListResultProtocol : Codable {
     var value: [InboundNatRuleProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// InboundNatRulePropertiesFormatProtocol is properties of the inbound NAT rule.
public protocol InboundNatRulePropertiesFormatProtocol : Codable {
     var frontendIPConfiguration: SubResourceProtocol? { get set }
     var backendIPConfiguration: NetworkInterfaceIPConfigurationProtocol? { get set }
     var _protocol: TransportProtocolEnum? { get set }
     var frontendPort: Int32? { get set }
     var backendPort: Int32? { get set }
     var idleTimeoutInMinutes: Int32? { get set }
     var enableFloatingIP: Bool? { get set }
     var provisioningState: String? { get set }
}


// 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.
import Foundation
// InboundNatRuleProtocol is inbound NAT rule of the load balancer.
public protocol InboundNatRuleProtocol : SubResourceProtocol {
     var properties: InboundNatRulePropertiesFormatProtocol? { get set }
     var name: String? { get set }
     var etag: String? { get set }
}


// 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.
import Foundation
// IPAddressAvailabilityResultProtocol is response for CheckIPAddressAvailability API service call
public protocol IPAddressAvailabilityResultProtocol : Codable {
     var available: Bool? { get set }
     var availableIPAddresses: [String]? { get set }
}


// 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.
import Foundation
// IPConfigurationPropertiesFormatProtocol is properties of IP configuration.
public protocol IPConfigurationPropertiesFormatProtocol : Codable {
     var privateIPAddress: String? { get set }
     var privateIPAllocationMethod: IPAllocationMethodEnum? { get set }
     var subnet: SubnetProtocol? { get set }
     var publicIPAddress: PublicIPAddressProtocol? { get set }
     var provisioningState: String? { get set }
}


// 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.
import Foundation
// IPConfigurationProtocol is IP configuration
public protocol IPConfigurationProtocol : SubResourceProtocol {
     var properties: IPConfigurationPropertiesFormatProtocol? { get set }
     var name: String? { get set }
     var etag: String? { get set }
}


// 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.
import Foundation
// IpsecPolicyProtocol is an IPSec Policy configuration for a virtual network gateway connection
public protocol IpsecPolicyProtocol : Codable {
     var saLifeTimeSeconds: Int32 { get set }
     var saDataSizeKilobytes: Int32 { get set }
     var ipsecEncryption: IpsecEncryptionEnum { get set }
     var ipsecIntegrity: IpsecIntegrityEnum { get set }
     var ikeEncryption: IkeEncryptionEnum { get set }
     var ikeIntegrity: IkeIntegrityEnum { get set }
     var dhGroup: DhGroupEnum { get set }
     var pfsGroup: PfsGroupEnum { get set }
}


// 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.
import Foundation
// IpTagProtocol is contains the IpTag associated with the public IP address
public protocol IpTagProtocol : Codable {
     var ipTagType: String? { get set }
     var tag: String? { get set }
}


// 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.
import Foundation
// Ipv6ExpressRouteCircuitPeeringConfigProtocol is contains IPv6 peering config.
public protocol Ipv6ExpressRouteCircuitPeeringConfigProtocol : Codable {
     var primaryPeerAddressPrefix: String? { get set }
     var secondaryPeerAddressPrefix: String? { get set }
     var microsoftPeeringConfig: ExpressRouteCircuitPeeringConfigProtocol? { get set }
     var routeFilter: RouteFilterProtocol? { get set }
     var state: ExpressRouteCircuitPeeringStateEnum? { get set }
}


// 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.
import Foundation
// LoadBalancerBackendAddressPoolListResultProtocol is response for ListBackendAddressPool API service call.
public protocol LoadBalancerBackendAddressPoolListResultProtocol : Codable {
     var value: [BackendAddressPoolProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// LoadBalancerFrontendIPConfigurationListResultProtocol is response for ListFrontendIPConfiguration API service call.
public protocol LoadBalancerFrontendIPConfigurationListResultProtocol : Codable {
     var value: [FrontendIPConfigurationProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// LoadBalancerListResultProtocol is response for ListLoadBalancers API service call.
public protocol LoadBalancerListResultProtocol : Codable {
     var value: [LoadBalancerProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// LoadBalancerLoadBalancingRuleListResultProtocol is response for ListLoadBalancingRule API service call.
public protocol LoadBalancerLoadBalancingRuleListResultProtocol : Codable {
     var value: [LoadBalancingRuleProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// LoadBalancerProbeListResultProtocol is response for ListProbe API service call.
public protocol LoadBalancerProbeListResultProtocol : Codable {
     var value: [ProbeProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// LoadBalancerPropertiesFormatProtocol is properties of the load balancer.
public protocol LoadBalancerPropertiesFormatProtocol : Codable {
     var frontendIPConfigurations: [FrontendIPConfigurationProtocol?]? { get set }
     var backendAddressPools: [BackendAddressPoolProtocol?]? { get set }
     var loadBalancingRules: [LoadBalancingRuleProtocol?]? { get set }
     var probes: [ProbeProtocol?]? { get set }
     var inboundNatRules: [InboundNatRuleProtocol?]? { get set }
     var inboundNatPools: [InboundNatPoolProtocol?]? { get set }
     var outboundNatRules: [OutboundNatRuleProtocol?]? { get set }
     var resourceGuid: String? { get set }
     var provisioningState: String? { get set }
}


// 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.
import Foundation
// LoadBalancerProtocol is loadBalancer resource
public protocol LoadBalancerProtocol : ResourceProtocol {
     var sku: LoadBalancerSkuProtocol? { get set }
     var properties: LoadBalancerPropertiesFormatProtocol? { get set }
     var etag: String? { get set }
}


// 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.
import Foundation
// LoadBalancerSkuProtocol is SKU of a load balancer
public protocol LoadBalancerSkuProtocol : Codable {
     var name: LoadBalancerSkuNameEnum? { get set }
}


// 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.
import Foundation
// LoadBalancingRulePropertiesFormatProtocol is properties of the load balancer.
public protocol LoadBalancingRulePropertiesFormatProtocol : Codable {
     var frontendIPConfiguration: SubResourceProtocol? { get set }
     var backendAddressPool: SubResourceProtocol? { get set }
     var probe: SubResourceProtocol? { get set }
     var _protocol: TransportProtocolEnum { get set }
     var loadDistribution: LoadDistributionEnum? { get set }
     var frontendPort: Int32 { get set }
     var backendPort: Int32? { get set }
     var idleTimeoutInMinutes: Int32? { get set }
     var enableFloatingIP: Bool? { get set }
     var disableOutboundSnat: Bool? { get set }
     var provisioningState: String? { get set }
}


// 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.
import Foundation
// LoadBalancingRuleProtocol is a load balancing rule for a load balancer.
public protocol LoadBalancingRuleProtocol : SubResourceProtocol {
     var properties: LoadBalancingRulePropertiesFormatProtocol? { get set }
     var name: String? { get set }
     var etag: String? { get set }
}


// 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.
import Foundation
// LocalNetworkGatewayListResultProtocol is response for ListLocalNetworkGateways API service call.
public protocol LocalNetworkGatewayListResultProtocol : Codable {
     var value: [LocalNetworkGatewayProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// LocalNetworkGatewayPropertiesFormatProtocol is localNetworkGateway properties
public protocol LocalNetworkGatewayPropertiesFormatProtocol : Codable {
     var localNetworkAddressSpace: AddressSpaceProtocol? { get set }
     var gatewayIpAddress: String? { get set }
     var bgpSettings: BgpSettingsProtocol? { get set }
     var resourceGuid: String? { get set }
     var provisioningState: String? { get set }
}


// 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.
import Foundation
// LocalNetworkGatewayProtocol is a common class for general resource information
public protocol LocalNetworkGatewayProtocol : ResourceProtocol {
     var properties: LocalNetworkGatewayPropertiesFormatProtocol { get set }
     var etag: String? { get set }
}


// 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.
import Foundation
// LogSpecificationProtocol is description of logging specification.
public protocol LogSpecificationProtocol : Codable {
     var name: String? { get set }
     var displayName: String? { get set }
     var blobDuration: String? { get set }
}


// 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.
import Foundation
// MetricSpecificationProtocol is description of metrics specification.
public protocol MetricSpecificationProtocol : Codable {
     var name: String? { get set }
     var displayName: String? { get set }
     var displayDescription: String? { get set }
     var unit: String? { get set }
     var aggregationType: String? { get set }
     var availabilities: [AvailabilityProtocol?]? { get set }
     var enableRegionalMdmAccount: Bool? { get set }
     var fillGapWithZero: Bool? { get set }
     var metricFilterPattern: String? { get set }
     var dimensions: [DimensionProtocol?]? { get set }
     var isInternal: Bool? { get set }
     var sourceMdmAccount: String? { get set }
     var sourceMdmNamespace: String? { get set }
     var resourceIdDimensionNameOverride: String? { get set }
}


// 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.
import Foundation
// NetworkInterfaceAssociationProtocol is network interface and its custom security rules.
public protocol NetworkInterfaceAssociationProtocol : Codable {
     var id: String? { get set }
     var securityRules: [SecurityRuleProtocol?]? { get set }
}


// 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.
import Foundation
// NetworkInterfaceDnsSettingsProtocol is DNS settings of a network interface.
public protocol NetworkInterfaceDnsSettingsProtocol : Codable {
     var dnsServers: [String]? { get set }
     var appliedDnsServers: [String]? { get set }
     var internalDnsNameLabel: String? { get set }
     var internalFqdn: String? { get set }
     var internalDomainNameSuffix: String? { get set }
}


// 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.
import Foundation
// NetworkInterfaceIPConfigurationListResultProtocol is response for list ip configurations API service call.
public protocol NetworkInterfaceIPConfigurationListResultProtocol : Codable {
     var value: [NetworkInterfaceIPConfigurationProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// NetworkInterfaceIPConfigurationPropertiesFormatProtocol is properties of IP configuration.
public protocol NetworkInterfaceIPConfigurationPropertiesFormatProtocol : Codable {
     var applicationGatewayBackendAddressPools: [ApplicationGatewayBackendAddressPoolProtocol?]? { get set }
     var loadBalancerBackendAddressPools: [BackendAddressPoolProtocol?]? { get set }
     var loadBalancerInboundNatRules: [InboundNatRuleProtocol?]? { get set }
     var privateIPAddress: String? { get set }
     var privateIPAllocationMethod: IPAllocationMethodEnum? { get set }
     var privateIPAddressVersion: IPVersionEnum? { get set }
     var subnet: SubnetProtocol? { get set }
     var primary: Bool? { get set }
     var publicIPAddress: PublicIPAddressProtocol? { get set }
     var applicationSecurityGroups: [ApplicationSecurityGroupProtocol?]? { get set }
     var provisioningState: String? { get set }
}


// 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.
import Foundation
// NetworkInterfaceIPConfigurationProtocol is iPConfiguration in a network interface.
public protocol NetworkInterfaceIPConfigurationProtocol : SubResourceProtocol {
     var properties: NetworkInterfaceIPConfigurationPropertiesFormatProtocol? { get set }
     var name: String? { get set }
     var etag: String? { get set }
}


// 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.
import Foundation
// NetworkInterfaceListResultProtocol is response for the ListNetworkInterface API service call.
public protocol NetworkInterfaceListResultProtocol : Codable {
     var value: [NetworkInterfaceProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// NetworkInterfaceLoadBalancerListResultProtocol is response for list ip configurations API service call.
public protocol NetworkInterfaceLoadBalancerListResultProtocol : Codable {
     var value: [LoadBalancerProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// NetworkInterfacePropertiesFormatProtocol is networkInterface properties.
public protocol NetworkInterfacePropertiesFormatProtocol : Codable {
     var virtualMachine: SubResourceProtocol? { get set }
     var networkSecurityGroup: NetworkSecurityGroupProtocol? { get set }
     var ipConfigurations: [NetworkInterfaceIPConfigurationProtocol?]? { get set }
     var dnsSettings: NetworkInterfaceDnsSettingsProtocol? { get set }
     var macAddress: String? { get set }
     var primary: Bool? { get set }
     var enableAcceleratedNetworking: Bool? { get set }
     var enableIPForwarding: Bool? { get set }
     var resourceGuid: String? { get set }
     var provisioningState: String? { get set }
}


// 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.
import Foundation
// NetworkInterfaceProtocol is a network interface in a resource group.
public protocol NetworkInterfaceProtocol : ResourceProtocol {
     var properties: NetworkInterfacePropertiesFormatProtocol? { get set }
     var etag: String? { get set }
}


// 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.
import Foundation
// NetworkSecurityGroupListResultProtocol is response for ListNetworkSecurityGroups API service call.
public protocol NetworkSecurityGroupListResultProtocol : Codable {
     var value: [NetworkSecurityGroupProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// NetworkSecurityGroupPropertiesFormatProtocol is network Security Group resource.
public protocol NetworkSecurityGroupPropertiesFormatProtocol : Codable {
     var securityRules: [SecurityRuleProtocol?]? { get set }
     var defaultSecurityRules: [SecurityRuleProtocol?]? { get set }
     var networkInterfaces: [NetworkInterfaceProtocol?]? { get set }
     var subnets: [SubnetProtocol?]? { get set }
     var resourceGuid: String? { get set }
     var provisioningState: String? { get set }
}


// 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.
import Foundation
// NetworkSecurityGroupProtocol is networkSecurityGroup resource.
public protocol NetworkSecurityGroupProtocol : ResourceProtocol {
     var properties: NetworkSecurityGroupPropertiesFormatProtocol? { get set }
     var etag: String? { get set }
}


// 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.
import Foundation
// NetworkWatcherListResultProtocol is list of network watcher resources.
public protocol NetworkWatcherListResultProtocol : Codable {
     var value: [NetworkWatcherProtocol?]? { get set }
}


// 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.
import Foundation
// NetworkWatcherPropertiesFormatProtocol is the network watcher properties.
public protocol NetworkWatcherPropertiesFormatProtocol : Codable {
     var provisioningState: ProvisioningStateEnum? { get set }
}


// 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.
import Foundation
// NetworkWatcherProtocol is network watcher in a resource group.
public protocol NetworkWatcherProtocol : ResourceProtocol {
     var etag: String? { get set }
     var properties: NetworkWatcherPropertiesFormatProtocol? { get set }
}


// 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.
import Foundation
// NextHopParametersProtocol is parameters that define the source and destination endpoint.
public protocol NextHopParametersProtocol : Codable {
     var targetResourceId: String { get set }
     var sourceIPAddress: String { get set }
     var destinationIPAddress: String { get set }
     var targetNicResourceId: String? { get set }
}


// 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.
import Foundation
// NextHopResultProtocol is the information about next hop from the specified VM.
public protocol NextHopResultProtocol : Codable {
     var nextHopType: NextHopTypeEnum? { get set }
     var nextHopIpAddress: String? { get set }
     var routeTableId: String? { get set }
}


// 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.
import Foundation
// OperationDisplayProtocol is display metadata associated with the operation.
public protocol OperationDisplayProtocol : Codable {
     var provider: String? { get set }
     var resource: String? { get set }
     var operation: String? { get set }
     var description: String? { get set }
}


// 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.
import Foundation
// OperationListResultProtocol is 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.
public protocol OperationListResultProtocol : Codable {
     var value: [OperationProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// OperationPropertiesFormatProtocol is description of operation properties format.
public protocol OperationPropertiesFormatProtocol : Codable {
     var serviceSpecification: OperationPropertiesFormatServiceSpecificationProtocol? { get set }
}


// 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.
import Foundation
// OperationPropertiesFormatServiceSpecificationProtocol is specification of the service.
public protocol OperationPropertiesFormatServiceSpecificationProtocol : Codable {
     var metricSpecifications: [MetricSpecificationProtocol?]? { get set }
     var logSpecifications: [LogSpecificationProtocol?]? { get set }
}


// 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.
import Foundation
// OperationProtocol is network REST API operation definition.
public protocol OperationProtocol : Codable {
     var name: String? { get set }
     var display: OperationDisplayProtocol? { get set }
     var origin: String? { get set }
     var properties: OperationPropertiesFormatProtocol? { get set }
}


// 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.
import Foundation
// OutboundNatRulePropertiesFormatProtocol is outbound NAT pool of the load balancer.
public protocol OutboundNatRulePropertiesFormatProtocol : Codable {
     var allocatedOutboundPorts: Int32? { get set }
     var frontendIPConfigurations: [SubResourceProtocol?]? { get set }
     var backendAddressPool: SubResourceProtocol { get set }
     var provisioningState: String? { get set }
}


// 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.
import Foundation
// OutboundNatRuleProtocol is outbound NAT pool of the load balancer.
public protocol OutboundNatRuleProtocol : SubResourceProtocol {
     var properties: OutboundNatRulePropertiesFormatProtocol? { get set }
     var name: String? { get set }
     var etag: String? { get set }
}


// 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.
import Foundation
// PacketCaptureFilterProtocol is filter that is applied to packet capture request. Multiple filters can be applied.
public protocol PacketCaptureFilterProtocol : Codable {
     var _protocol: PcProtocolEnum? { get set }
     var localIPAddress: String? { get set }
     var remoteIPAddress: String? { get set }
     var localPort: String? { get set }
     var remotePort: String? { get set }
}


// 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.
import Foundation
// PacketCaptureListResultProtocol is list of packet capture sessions.
public protocol PacketCaptureListResultProtocol : Codable {
     var value: [PacketCaptureResultProtocol?]? { get set }
}


// 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.
import Foundation
// PacketCaptureParametersProtocol is parameters that define the create packet capture operation.
public protocol PacketCaptureParametersProtocol : Codable {
     var target: String { get set }
     var bytesToCapturePerPacket: Int32? { get set }
     var totalBytesPerSession: Int32? { get set }
     var timeLimitInSeconds: Int32? { get set }
     var storageLocation: PacketCaptureStorageLocationProtocol { get set }
     var filters: [PacketCaptureFilterProtocol?]? { get set }
}


// 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.
import Foundation
// PacketCaptureProtocol is parameters that define the create packet capture operation.
public protocol PacketCaptureProtocol : Codable {
     var name: String? { get set }
     var id: String? { get set }
     var type: String? { get set }
     var properties: PacketCaptureParametersProtocol { get set }
}


// 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.
import Foundation
// PacketCaptureQueryStatusResultProtocol is status of packet capture session.
public protocol PacketCaptureQueryStatusResultProtocol : Codable {
     var name: String? { get set }
     var id: String? { get set }
     var captureStartTime: Date? { get set }
     var packetCaptureStatus: PcStatusEnum? { get set }
     var stopReason: String? { get set }
     var packetCaptureError: [PcErrorEnum?]? { get set }
}


// 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.
import Foundation
// PacketCaptureResultPropertiesProtocol is describes the properties of a packet capture session.
public protocol PacketCaptureResultPropertiesProtocol : PacketCaptureParametersProtocol {
     var provisioningState: ProvisioningStateEnum? { get set }
}


// 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.
import Foundation
// PacketCaptureResultProtocol is information about packet capture session.
public protocol PacketCaptureResultProtocol : Codable {
     var name: String? { get set }
     var id: String? { get set }
     var type: String? { get set }
     var etag: String? { get set }
     var properties: PacketCaptureResultPropertiesProtocol? { get set }
}


// 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.
import Foundation
// PacketCaptureStorageLocationProtocol is describes the storage location for a packet capture session.
public protocol PacketCaptureStorageLocationProtocol : Codable {
     var storageId: String? { get set }
     var storagePath: String? { get set }
     var filePath: String? { get set }
}


// 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.
import Foundation
// PatchRouteFilterProtocol is route Filter Resource.
public protocol PatchRouteFilterProtocol : SubResourceProtocol {
     var properties: RouteFilterPropertiesFormatProtocol? { get set }
     var name: String? { get set }
     var etag: String? { get set }
     var type: String? { get set }
     var tags: [String:String]? { get set }
}


// 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.
import Foundation
// PatchRouteFilterRuleProtocol is route Filter Rule Resource
public protocol PatchRouteFilterRuleProtocol : SubResourceProtocol {
     var properties: RouteFilterRulePropertiesFormatProtocol? { get set }
     var name: String? { get set }
     var etag: String? { get set }
}


// 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.
import Foundation
// ProbePropertiesFormatProtocol is load balancer probe resource.
public protocol ProbePropertiesFormatProtocol : Codable {
     var loadBalancingRules: [SubResourceProtocol?]? { get set }
     var _protocol: ProbeProtocolEnum { get set }
     var port: Int32 { get set }
     var intervalInSeconds: Int32? { get set }
     var numberOfProbes: Int32? { get set }
     var requestPath: String? { get set }
     var provisioningState: String? { get set }
}


// 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.
import Foundation
// ProbeProtocol is a load balancer probe.
public protocol ProbeProtocol : SubResourceProtocol {
     var properties: ProbePropertiesFormatProtocol? { get set }
     var name: String? { get set }
     var etag: String? { get set }
}


// 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.
import Foundation
// PublicIPAddressDnsSettingsProtocol is contains FQDN of the DNS record associated with the public IP address
public protocol PublicIPAddressDnsSettingsProtocol : Codable {
     var domainNameLabel: String? { get set }
     var fqdn: String? { get set }
     var reverseFqdn: String? { get set }
}


// 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.
import Foundation
// PublicIPAddressListResultProtocol is response for ListPublicIpAddresses API service call.
public protocol PublicIPAddressListResultProtocol : Codable {
     var value: [PublicIPAddressProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// PublicIPAddressPropertiesFormatProtocol is public IP address properties.
public protocol PublicIPAddressPropertiesFormatProtocol : Codable {
     var publicIPAllocationMethod: IPAllocationMethodEnum? { get set }
     var publicIPAddressVersion: IPVersionEnum? { get set }
     var ipConfiguration: IPConfigurationProtocol? { get set }
     var dnsSettings: PublicIPAddressDnsSettingsProtocol? { get set }
     var ipTags: [IpTagProtocol?]? { get set }
     var ipAddress: String? { get set }
     var idleTimeoutInMinutes: Int32? { get set }
     var resourceGuid: String? { get set }
     var provisioningState: String? { get set }
}


// 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.
import Foundation
// PublicIPAddressProtocol is public IP address resource.
public protocol PublicIPAddressProtocol : ResourceProtocol {
     var sku: PublicIPAddressSkuProtocol? { get set }
     var properties: PublicIPAddressPropertiesFormatProtocol? { get set }
     var etag: String? { get set }
     var zones: [String]? { get set }
}


// 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.
import Foundation
// PublicIPAddressSkuProtocol is SKU of a public IP address
public protocol PublicIPAddressSkuProtocol : Codable {
     var name: PublicIPAddressSkuNameEnum? { get set }
}


// 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.
import Foundation
// QueryTroubleshootingParametersProtocol is parameters that define the resource to query the troubleshooting result.
public protocol QueryTroubleshootingParametersProtocol : Codable {
     var targetResourceId: String { get set }
}


// 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.
import Foundation
// ResourceNavigationLinkFormatProtocol is properties of ResourceNavigationLink.
public protocol ResourceNavigationLinkFormatProtocol : Codable {
     var linkedResourceType: String? { get set }
     var link: String? { get set }
     var provisioningState: String? { get set }
}


// 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.
import Foundation
// ResourceNavigationLinkProtocol is resourceNavigationLink resource.
public protocol ResourceNavigationLinkProtocol : SubResourceProtocol {
     var properties: ResourceNavigationLinkFormatProtocol? { get set }
     var name: String? { get set }
     var etag: String? { get set }
}


// 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.
import Foundation
// ResourceProtocol is common resource representation.
public protocol ResourceProtocol : Codable {
     var id: String? { get set }
     var name: String? { get set }
     var type: String? { get set }
     var location: String? { get set }
     var tags: [String:String]? { get set }
}


// 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.
import Foundation
// RetentionPolicyParametersProtocol is parameters that define the retention policy for flow log.
public protocol RetentionPolicyParametersProtocol : Codable {
     var days: Int32? { get set }
     var enabled: Bool? { get set }
}


// 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.
import Foundation
// RouteFilterListResultProtocol is response for the ListRouteFilters API service call.
public protocol RouteFilterListResultProtocol : Codable {
     var value: [RouteFilterProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// RouteFilterPropertiesFormatProtocol is route Filter Resource
public protocol RouteFilterPropertiesFormatProtocol : Codable {
     var rules: [RouteFilterRuleProtocol?]? { get set }
     var peerings: [ExpressRouteCircuitPeeringProtocol?]? { get set }
     var provisioningState: String? { get set }
}


// 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.
import Foundation
// RouteFilterProtocol is route Filter Resource.
public protocol RouteFilterProtocol : ResourceProtocol {
     var properties: RouteFilterPropertiesFormatProtocol? { get set }
     var etag: String? { get set }
}


// 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.
import Foundation
// RouteFilterRuleListResultProtocol is response for the ListRouteFilterRules API service call
public protocol RouteFilterRuleListResultProtocol : Codable {
     var value: [RouteFilterRuleProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// RouteFilterRulePropertiesFormatProtocol is route Filter Rule Resource
public protocol RouteFilterRulePropertiesFormatProtocol : Codable {
     var access: AccessEnum { get set }
     var routeFilterRuleType: String { get set }
     var communities: [String] { get set }
     var provisioningState: String? { get set }
}


// 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.
import Foundation
// RouteFilterRuleProtocol is route Filter Rule Resource
public protocol RouteFilterRuleProtocol : SubResourceProtocol {
     var properties: RouteFilterRulePropertiesFormatProtocol? { get set }
     var name: String? { get set }
     var location: String? { get set }
     var etag: String? { get set }
}


// 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.
import Foundation
// RouteListResultProtocol is response for the ListRoute API service call
public protocol RouteListResultProtocol : Codable {
     var value: [RouteProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// RoutePropertiesFormatProtocol is route resource
public protocol RoutePropertiesFormatProtocol : Codable {
     var addressPrefix: String? { get set }
     var nextHopType: RouteNextHopTypeEnum { get set }
     var nextHopIpAddress: String? { get set }
     var provisioningState: String? { get set }
}


// 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.
import Foundation
// RouteProtocol is route resource
public protocol RouteProtocol : SubResourceProtocol {
     var properties: RoutePropertiesFormatProtocol? { get set }
     var name: String? { get set }
     var etag: String? { get set }
}


// 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.
import Foundation
// RouteTableListResultProtocol is response for the ListRouteTable API service call.
public protocol RouteTableListResultProtocol : Codable {
     var value: [RouteTableProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// RouteTablePropertiesFormatProtocol is route Table resource
public protocol RouteTablePropertiesFormatProtocol : Codable {
     var routes: [RouteProtocol?]? { get set }
     var subnets: [SubnetProtocol?]? { get set }
     var disableBgpRoutePropagation: Bool? { get set }
     var provisioningState: String? { get set }
}


// 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.
import Foundation
// RouteTableProtocol is route table resource.
public protocol RouteTableProtocol : ResourceProtocol {
     var properties: RouteTablePropertiesFormatProtocol? { get set }
     var etag: String? { get set }
}


// 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.
import Foundation
// SecurityGroupNetworkInterfaceProtocol is network interface and all its associated security rules.
public protocol SecurityGroupNetworkInterfaceProtocol : Codable {
     var id: String? { get set }
     var securityRuleAssociations: SecurityRuleAssociationsProtocol? { get set }
}


// 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.
import Foundation
// SecurityGroupViewParametersProtocol is parameters that define the VM to check security groups for.
public protocol SecurityGroupViewParametersProtocol : Codable {
     var targetResourceId: String { get set }
}


// 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.
import Foundation
// SecurityGroupViewResultProtocol is the information about security rules applied to the specified VM.
public protocol SecurityGroupViewResultProtocol : Codable {
     var networkInterfaces: [SecurityGroupNetworkInterfaceProtocol?]? { get set }
}


// 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.
import Foundation
// SecurityRuleAssociationsProtocol is all security rules associated with the network interface.
public protocol SecurityRuleAssociationsProtocol : Codable {
     var networkInterfaceAssociation: NetworkInterfaceAssociationProtocol? { get set }
     var subnetAssociation: SubnetAssociationProtocol? { get set }
     var defaultSecurityRules: [SecurityRuleProtocol?]? { get set }
     var effectiveSecurityRules: [EffectiveNetworkSecurityRuleProtocol?]? { get set }
}


// 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.
import Foundation
// SecurityRuleListResultProtocol is response for ListSecurityRule API service call. Retrieves all security rules that
// belongs to a network security group.
public protocol SecurityRuleListResultProtocol : Codable {
     var value: [SecurityRuleProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// SecurityRulePropertiesFormatProtocol is security rule resource.
public protocol SecurityRulePropertiesFormatProtocol : Codable {
     var description: String? { get set }
     var _protocol: SecurityRuleProtocolEnum { get set }
     var sourcePortRange: String? { get set }
     var destinationPortRange: String? { get set }
     var sourceAddressPrefix: String? { get set }
     var sourceAddressPrefixes: [String]? { get set }
     var sourceApplicationSecurityGroups: [ApplicationSecurityGroupProtocol?]? { get set }
     var destinationAddressPrefix: String? { get set }
     var destinationAddressPrefixes: [String]? { get set }
     var destinationApplicationSecurityGroups: [ApplicationSecurityGroupProtocol?]? { get set }
     var sourcePortRanges: [String]? { get set }
     var destinationPortRanges: [String]? { get set }
     var access: SecurityRuleAccessEnum { get set }
     var priority: Int32? { get set }
     var direction: SecurityRuleDirectionEnum { get set }
     var provisioningState: String? { get set }
}


// 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.
import Foundation
// SecurityRuleProtocol is network security rule.
public protocol SecurityRuleProtocol : SubResourceProtocol {
     var properties: SecurityRulePropertiesFormatProtocol? { get set }
     var name: String? { get set }
     var etag: String? { get set }
}


// 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.
import Foundation
// ServiceEndpointPropertiesFormatProtocol is the service endpoint properties.
public protocol ServiceEndpointPropertiesFormatProtocol : Codable {
     var service: String? { get set }
     var locations: [String]? { get set }
     var provisioningState: String? { get set }
}


// 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.
import Foundation
// SubnetAssociationProtocol is network interface and its custom security rules.
public protocol SubnetAssociationProtocol : Codable {
     var id: String? { get set }
     var securityRules: [SecurityRuleProtocol?]? { get set }
}


// 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.
import Foundation
// SubnetListResultProtocol is response for ListSubnets API service callRetrieves all subnet that belongs to a virtual
// network
public protocol SubnetListResultProtocol : Codable {
     var value: [SubnetProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// SubnetPropertiesFormatProtocol is properties of the subnet.
public protocol SubnetPropertiesFormatProtocol : Codable {
     var addressPrefix: String? { get set }
     var networkSecurityGroup: NetworkSecurityGroupProtocol? { get set }
     var routeTable: RouteTableProtocol? { get set }
     var serviceEndpoints: [ServiceEndpointPropertiesFormatProtocol?]? { get set }
     var ipConfigurations: [IPConfigurationProtocol?]? { get set }
     var resourceNavigationLinks: [ResourceNavigationLinkProtocol?]? { get set }
     var provisioningState: String? { get set }
}


// 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.
import Foundation
// SubnetProtocol is subnet in a virtual network resource.
public protocol SubnetProtocol : SubResourceProtocol {
     var properties: SubnetPropertiesFormatProtocol? { get set }
     var name: String? { get set }
     var etag: String? { get set }
}


// 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.
import Foundation
// SubResourceProtocol is reference to another subresource.
public protocol SubResourceProtocol : Codable {
     var id: String? { get set }
}


// 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.
import Foundation
// TagsObjectProtocol is tags object for patch operations.
public protocol TagsObjectProtocol : Codable {
     var tags: [String:String]? { get set }
}


// 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.
import Foundation
// TopologyAssociationProtocol is resources that have an association with the parent resource.
public protocol TopologyAssociationProtocol : Codable {
     var name: String? { get set }
     var resourceId: String? { get set }
     var associationType: AssociationTypeEnum? { get set }
}


// 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.
import Foundation
// TopologyParametersProtocol is parameters that define the representation of topology.
public protocol TopologyParametersProtocol : Codable {
     var targetResourceGroupName: String? { get set }
     var targetVirtualNetwork: SubResourceProtocol? { get set }
     var targetSubnet: SubResourceProtocol? { get set }
}


// 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.
import Foundation
// TopologyProtocol is topology of the specified resource group.
public protocol TopologyProtocol : Codable {
     var id: String? { get set }
     var createdDateTime: Date? { get set }
     var lastModified: Date? { get set }
     var resources: [TopologyResourceProtocol?]? { get set }
}


// 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.
import Foundation
// TopologyResourceProtocol is the network resource topology information for the given resource group.
public protocol TopologyResourceProtocol : Codable {
     var name: String? { get set }
     var id: String? { get set }
     var location: String? { get set }
     var associations: [TopologyAssociationProtocol?]? { get set }
}


// 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.
import Foundation
// TroubleshootingDetailsProtocol is information gained from troubleshooting of specified resource.
public protocol TroubleshootingDetailsProtocol : Codable {
     var id: String? { get set }
     var reasonType: String? { get set }
     var summary: String? { get set }
     var detail: String? { get set }
     var recommendedActions: [TroubleshootingRecommendedActionsProtocol?]? { get set }
}


// 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.
import Foundation
// TroubleshootingParametersProtocol is parameters that define the resource to troubleshoot.
public protocol TroubleshootingParametersProtocol : Codable {
     var targetResourceId: String { get set }
     var properties: TroubleshootingPropertiesProtocol { get set }
}


// 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.
import Foundation
// TroubleshootingPropertiesProtocol is storage location provided for troubleshoot.
public protocol TroubleshootingPropertiesProtocol : Codable {
     var storageId: String { get set }
     var storagePath: String { get set }
}


// 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.
import Foundation
// TroubleshootingRecommendedActionsProtocol is recommended actions based on discovered issues.
public protocol TroubleshootingRecommendedActionsProtocol : Codable {
     var actionId: String? { get set }
     var actionText: String? { get set }
     var actionUri: String? { get set }
     var actionUriText: String? { get set }
}


// 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.
import Foundation
// TroubleshootingResultProtocol is troubleshooting information gained from specified resource.
public protocol TroubleshootingResultProtocol : Codable {
     var startTime: Date? { get set }
     var endTime: Date? { get set }
     var code: String? { get set }
     var results: [TroubleshootingDetailsProtocol?]? { get set }
}


// 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.
import Foundation
// TunnelConnectionHealthProtocol is virtualNetworkGatewayConnection properties
public protocol TunnelConnectionHealthProtocol : Codable {
     var tunnel: String? { get set }
     var connectionStatus: VirtualNetworkGatewayConnectionStatusEnum? { get set }
     var ingressBytesTransferred: Int64? { get set }
     var egressBytesTransferred: Int64? { get set }
     var lastConnectionEstablishedUtcTime: String? { get set }
}


// 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.
import Foundation
// UsageNameProtocol is the usage names.
public protocol UsageNameProtocol : Codable {
     var value: String? { get set }
     var localizedValue: String? { get set }
}


// 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.
import Foundation
// UsageProtocol is describes network resource usage.
public protocol UsageProtocol : Codable {
     var id: String? { get set }
     var unit: String { get set }
     var currentValue: Int64 { get set }
     var limit: Int64 { get set }
     var name: UsageNameProtocol { get set }
}


// 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.
import Foundation
// UsagesListResultProtocol is the list usages operation response.
public protocol UsagesListResultProtocol : Codable {
     var value: [UsageProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// VerificationIPFlowParametersProtocol is parameters that define the IP flow to be verified.
public protocol VerificationIPFlowParametersProtocol : Codable {
     var targetResourceId: String { get set }
     var direction: DirectionEnum { get set }
     var _protocol: ProtocolEnum { get set }
     var localPort: String { get set }
     var remotePort: String { get set }
     var localIPAddress: String { get set }
     var remoteIPAddress: String { get set }
     var targetNicResourceId: String? { get set }
}


// 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.
import Foundation
// VerificationIPFlowResultProtocol is results of IP flow verification on the target resource.
public protocol VerificationIPFlowResultProtocol : Codable {
     var access: AccessEnum? { get set }
     var ruleName: String? { get set }
}


// 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.
import Foundation
// VirtualNetworkConnectionGatewayReferenceProtocol is a reference to VirtualNetworkGateway or LocalNetworkGateway
// resource.
public protocol VirtualNetworkConnectionGatewayReferenceProtocol : Codable {
     var id: String { get set }
}