package networkapi

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
//
// Code generated by Microsoft (R) AutoRest Code Generator.
// Changes may cause incorrect behavior and will be lost if the code is regenerated.

import (
	"context"
	"github.com/Azure/azure-sdk-for-go/services/network/mgmt/2021-03-01/network"
)

// BaseClientAPI contains the set of methods on the BaseClient type.
type BaseClientAPI interface {
	CheckDNSNameAvailability(ctx context.Context, location string, domainNameLabel string) (result network.DNSNameAvailabilityResult, err error)
	DeleteBastionShareableLink(ctx context.Context, resourceGroupName string, bastionHostName string, bslRequest network.BastionShareableLinkListRequest) (result network.DeleteBastionShareableLinkFuture, err error)
	DisconnectActiveSessions(ctx context.Context, resourceGroupName string, bastionHostName string, sessionIds network.SessionIds) (result network.BastionSessionDeleteResultPage, err error)
	DisconnectActiveSessionsComplete(ctx context.Context, resourceGroupName string, bastionHostName string, sessionIds network.SessionIds) (result network.BastionSessionDeleteResultIterator, err error)
	Generatevirtualwanvpnserverconfigurationvpnprofile(ctx context.Context, resourceGroupName string, virtualWANName string, vpnClientParams network.VirtualWanVpnProfileParameters) (result network.GeneratevirtualwanvpnserverconfigurationvpnprofileFuture, err error)
	GetActiveSessions(ctx context.Context, resourceGroupName string, bastionHostName string) (result network.GetActiveSessionsFuture, err error)
	GetActiveSessionsComplete(ctx context.Context, resourceGroupName string, bastionHostName string) (result network.GetActiveSessionsAllFuture, err error)
	GetBastionShareableLink(ctx context.Context, resourceGroupName string, bastionHostName string, bslRequest network.BastionShareableLinkListRequest) (result network.BastionShareableLinkListResultPage, err error)
	GetBastionShareableLinkComplete(ctx context.Context, resourceGroupName string, bastionHostName string, bslRequest network.BastionShareableLinkListRequest) (result network.BastionShareableLinkListResultIterator, err error)
	PutBastionShareableLink(ctx context.Context, resourceGroupName string, bastionHostName string, bslRequest network.BastionShareableLinkListRequest) (result network.PutBastionShareableLinkFuture, err error)
	PutBastionShareableLinkComplete(ctx context.Context, resourceGroupName string, bastionHostName string, bslRequest network.BastionShareableLinkListRequest) (result network.PutBastionShareableLinkAllFuture, err error)
	SupportedSecurityProviders(ctx context.Context, resourceGroupName string, virtualWANName string) (result network.VirtualWanSecurityProviders, err error)
}

var _ BaseClientAPI = (*network.BaseClient)(nil)

// ApplicationGatewaysClientAPI contains the set of methods on the ApplicationGatewaysClient type.
type ApplicationGatewaysClientAPI interface {
	BackendHealth(ctx context.Context, resourceGroupName string, applicationGatewayName string, expand string) (result network.ApplicationGatewaysBackendHealthFuture, err error)
	BackendHealthOnDemand(ctx context.Context, resourceGroupName string, applicationGatewayName string, probeRequest network.ApplicationGatewayOnDemandProbe, expand string) (result network.ApplicationGatewaysBackendHealthOnDemandFuture, err error)
	CreateOrUpdate(ctx context.Context, resourceGroupName string, applicationGatewayName string, parameters network.ApplicationGateway) (result network.ApplicationGatewaysCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, applicationGatewayName string) (result network.ApplicationGatewaysDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, applicationGatewayName string) (result network.ApplicationGateway, err error)
	GetSslPredefinedPolicy(ctx context.Context, predefinedPolicyName string) (result network.ApplicationGatewaySslPredefinedPolicy, err error)
	List(ctx context.Context, resourceGroupName string) (result network.ApplicationGatewayListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string) (result network.ApplicationGatewayListResultIterator, err error)
	ListAll(ctx context.Context) (result network.ApplicationGatewayListResultPage, err error)
	ListAllComplete(ctx context.Context) (result network.ApplicationGatewayListResultIterator, err error)
	ListAvailableRequestHeaders(ctx context.Context) (result network.ListString, err error)
	ListAvailableResponseHeaders(ctx context.Context) (result network.ListString, err error)
	ListAvailableServerVariables(ctx context.Context) (result network.ListString, err error)
	ListAvailableSslOptions(ctx context.Context) (result network.ApplicationGatewayAvailableSslOptions, err error)
	ListAvailableSslPredefinedPolicies(ctx context.Context) (result network.ApplicationGatewayAvailableSslPredefinedPoliciesPage, err error)
	ListAvailableSslPredefinedPoliciesComplete(ctx context.Context) (result network.ApplicationGatewayAvailableSslPredefinedPoliciesIterator, err error)
	ListAvailableWafRuleSets(ctx context.Context) (result network.ApplicationGatewayAvailableWafRuleSetsResult, err error)
	Start(ctx context.Context, resourceGroupName string, applicationGatewayName string) (result network.ApplicationGatewaysStartFuture, err error)
	Stop(ctx context.Context, resourceGroupName string, applicationGatewayName string) (result network.ApplicationGatewaysStopFuture, err error)
	UpdateTags(ctx context.Context, resourceGroupName string, applicationGatewayName string, parameters network.TagsObject) (result network.ApplicationGateway, err error)
}

var _ ApplicationGatewaysClientAPI = (*network.ApplicationGatewaysClient)(nil)

// ApplicationGatewayPrivateLinkResourcesClientAPI contains the set of methods on the ApplicationGatewayPrivateLinkResourcesClient type.
type ApplicationGatewayPrivateLinkResourcesClientAPI interface {
	List(ctx context.Context, resourceGroupName string, applicationGatewayName string) (result network.ApplicationGatewayPrivateLinkResourceListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string, applicationGatewayName string) (result network.ApplicationGatewayPrivateLinkResourceListResultIterator, err error)
}

var _ ApplicationGatewayPrivateLinkResourcesClientAPI = (*network.ApplicationGatewayPrivateLinkResourcesClient)(nil)

// ApplicationGatewayPrivateEndpointConnectionsClientAPI contains the set of methods on the ApplicationGatewayPrivateEndpointConnectionsClient type.
type ApplicationGatewayPrivateEndpointConnectionsClientAPI interface {
	Delete(ctx context.Context, resourceGroupName string, applicationGatewayName string, connectionName string) (result network.ApplicationGatewayPrivateEndpointConnectionsDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, applicationGatewayName string, connectionName string) (result network.ApplicationGatewayPrivateEndpointConnection, err error)
	List(ctx context.Context, resourceGroupName string, applicationGatewayName string) (result network.ApplicationGatewayPrivateEndpointConnectionListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string, applicationGatewayName string) (result network.ApplicationGatewayPrivateEndpointConnectionListResultIterator, err error)
	Update(ctx context.Context, resourceGroupName string, applicationGatewayName string, connectionName string, parameters network.ApplicationGatewayPrivateEndpointConnection) (result network.ApplicationGatewayPrivateEndpointConnectionsUpdateFuture, err error)
}

var _ ApplicationGatewayPrivateEndpointConnectionsClientAPI = (*network.ApplicationGatewayPrivateEndpointConnectionsClient)(nil)

// ApplicationSecurityGroupsClientAPI contains the set of methods on the ApplicationSecurityGroupsClient type.
type ApplicationSecurityGroupsClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, applicationSecurityGroupName string, parameters network.ApplicationSecurityGroup) (result network.ApplicationSecurityGroupsCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, applicationSecurityGroupName string) (result network.ApplicationSecurityGroupsDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, applicationSecurityGroupName string) (result network.ApplicationSecurityGroup, err error)
	List(ctx context.Context, resourceGroupName string) (result network.ApplicationSecurityGroupListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string) (result network.ApplicationSecurityGroupListResultIterator, err error)
	ListAll(ctx context.Context) (result network.ApplicationSecurityGroupListResultPage, err error)
	ListAllComplete(ctx context.Context) (result network.ApplicationSecurityGroupListResultIterator, err error)
	UpdateTags(ctx context.Context, resourceGroupName string, applicationSecurityGroupName string, parameters network.TagsObject) (result network.ApplicationSecurityGroup, err error)
}

var _ ApplicationSecurityGroupsClientAPI = (*network.ApplicationSecurityGroupsClient)(nil)

// AvailableDelegationsClientAPI contains the set of methods on the AvailableDelegationsClient type.
type AvailableDelegationsClientAPI interface {
	List(ctx context.Context, location string) (result network.AvailableDelegationsResultPage, err error)
	ListComplete(ctx context.Context, location string) (result network.AvailableDelegationsResultIterator, err error)
}

var _ AvailableDelegationsClientAPI = (*network.AvailableDelegationsClient)(nil)

// AvailableResourceGroupDelegationsClientAPI contains the set of methods on the AvailableResourceGroupDelegationsClient type.
type AvailableResourceGroupDelegationsClientAPI interface {
	List(ctx context.Context, location string, resourceGroupName string) (result network.AvailableDelegationsResultPage, err error)
	ListComplete(ctx context.Context, location string, resourceGroupName string) (result network.AvailableDelegationsResultIterator, err error)
}

var _ AvailableResourceGroupDelegationsClientAPI = (*network.AvailableResourceGroupDelegationsClient)(nil)

// AvailableServiceAliasesClientAPI contains the set of methods on the AvailableServiceAliasesClient type.
type AvailableServiceAliasesClientAPI interface {
	List(ctx context.Context, location string) (result network.AvailableServiceAliasesResultPage, err error)
	ListComplete(ctx context.Context, location string) (result network.AvailableServiceAliasesResultIterator, err error)
	ListByResourceGroup(ctx context.Context, resourceGroupName string, location string) (result network.AvailableServiceAliasesResultPage, err error)
	ListByResourceGroupComplete(ctx context.Context, resourceGroupName string, location string) (result network.AvailableServiceAliasesResultIterator, err error)
}

var _ AvailableServiceAliasesClientAPI = (*network.AvailableServiceAliasesClient)(nil)

// AzureFirewallsClientAPI contains the set of methods on the AzureFirewallsClient type.
type AzureFirewallsClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, azureFirewallName string, parameters network.AzureFirewall) (result network.AzureFirewallsCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, azureFirewallName string) (result network.AzureFirewallsDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, azureFirewallName string) (result network.AzureFirewall, err error)
	List(ctx context.Context, resourceGroupName string) (result network.AzureFirewallListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string) (result network.AzureFirewallListResultIterator, err error)
	ListAll(ctx context.Context) (result network.AzureFirewallListResultPage, err error)
	ListAllComplete(ctx context.Context) (result network.AzureFirewallListResultIterator, err error)
	UpdateTags(ctx context.Context, resourceGroupName string, azureFirewallName string, parameters network.TagsObject) (result network.AzureFirewallsUpdateTagsFuture, err error)
}

var _ AzureFirewallsClientAPI = (*network.AzureFirewallsClient)(nil)

// AzureFirewallFqdnTagsClientAPI contains the set of methods on the AzureFirewallFqdnTagsClient type.
type AzureFirewallFqdnTagsClientAPI interface {
	ListAll(ctx context.Context) (result network.AzureFirewallFqdnTagListResultPage, err error)
	ListAllComplete(ctx context.Context) (result network.AzureFirewallFqdnTagListResultIterator, err error)
}

var _ AzureFirewallFqdnTagsClientAPI = (*network.AzureFirewallFqdnTagsClient)(nil)

// WebCategoriesClientAPI contains the set of methods on the WebCategoriesClient type.
type WebCategoriesClientAPI interface {
	Get(ctx context.Context, name string, expand string) (result network.AzureWebCategory, err error)
	ListBySubscription(ctx context.Context) (result network.AzureWebCategoryListResultPage, err error)
	ListBySubscriptionComplete(ctx context.Context) (result network.AzureWebCategoryListResultIterator, err error)
}

var _ WebCategoriesClientAPI = (*network.WebCategoriesClient)(nil)

// BastionHostsClientAPI contains the set of methods on the BastionHostsClient type.
type BastionHostsClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, bastionHostName string, parameters network.BastionHost) (result network.BastionHostsCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, bastionHostName string) (result network.BastionHostsDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, bastionHostName string) (result network.BastionHost, err error)
	List(ctx context.Context) (result network.BastionHostListResultPage, err error)
	ListComplete(ctx context.Context) (result network.BastionHostListResultIterator, err error)
	ListByResourceGroup(ctx context.Context, resourceGroupName string) (result network.BastionHostListResultPage, err error)
	ListByResourceGroupComplete(ctx context.Context, resourceGroupName string) (result network.BastionHostListResultIterator, err error)
	UpdateTags(ctx context.Context, resourceGroupName string, bastionHostName string, parameters network.TagsObject) (result network.BastionHostsUpdateTagsFuture, err error)
}

var _ BastionHostsClientAPI = (*network.BastionHostsClient)(nil)

// InterfacesClientAPI contains the set of methods on the InterfacesClient type.
type InterfacesClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, networkInterfaceName string, parameters network.Interface) (result network.InterfacesCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, networkInterfaceName string) (result network.InterfacesDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, networkInterfaceName string, expand string) (result network.Interface, err error)
	GetCloudServiceNetworkInterface(ctx context.Context, resourceGroupName string, cloudServiceName string, roleInstanceName string, networkInterfaceName string, expand string) (result network.Interface, err error)
	GetEffectiveRouteTable(ctx context.Context, resourceGroupName string, networkInterfaceName string) (result network.InterfacesGetEffectiveRouteTableFuture, err error)
	GetVirtualMachineScaleSetIPConfiguration(ctx context.Context, resourceGroupName string, virtualMachineScaleSetName string, virtualmachineIndex string, networkInterfaceName string, IPConfigurationName string, expand string) (result network.InterfaceIPConfiguration, err error)
	GetVirtualMachineScaleSetNetworkInterface(ctx context.Context, resourceGroupName string, virtualMachineScaleSetName string, virtualmachineIndex string, networkInterfaceName string, expand string) (result network.Interface, err error)
	List(ctx context.Context, resourceGroupName string) (result network.InterfaceListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string) (result network.InterfaceListResultIterator, err error)
	ListAll(ctx context.Context) (result network.InterfaceListResultPage, err error)
	ListAllComplete(ctx context.Context) (result network.InterfaceListResultIterator, err error)
	ListCloudServiceNetworkInterfaces(ctx context.Context, resourceGroupName string, cloudServiceName string) (result network.InterfaceListResultPage, err error)
	ListCloudServiceNetworkInterfacesComplete(ctx context.Context, resourceGroupName string, cloudServiceName string) (result network.InterfaceListResultIterator, err error)
	ListCloudServiceRoleInstanceNetworkInterfaces(ctx context.Context, resourceGroupName string, cloudServiceName string, roleInstanceName string) (result network.InterfaceListResultPage, err error)
	ListCloudServiceRoleInstanceNetworkInterfacesComplete(ctx context.Context, resourceGroupName string, cloudServiceName string, roleInstanceName string) (result network.InterfaceListResultIterator, err error)
	ListEffectiveNetworkSecurityGroups(ctx context.Context, resourceGroupName string, networkInterfaceName string) (result network.InterfacesListEffectiveNetworkSecurityGroupsFuture, err error)
	ListVirtualMachineScaleSetIPConfigurations(ctx context.Context, resourceGroupName string, virtualMachineScaleSetName string, virtualmachineIndex string, networkInterfaceName string, expand string) (result network.InterfaceIPConfigurationListResultPage, err error)
	ListVirtualMachineScaleSetIPConfigurationsComplete(ctx context.Context, resourceGroupName string, virtualMachineScaleSetName string, virtualmachineIndex string, networkInterfaceName string, expand string) (result network.InterfaceIPConfigurationListResultIterator, err error)
	ListVirtualMachineScaleSetNetworkInterfaces(ctx context.Context, resourceGroupName string, virtualMachineScaleSetName string) (result network.InterfaceListResultPage, err error)
	ListVirtualMachineScaleSetNetworkInterfacesComplete(ctx context.Context, resourceGroupName string, virtualMachineScaleSetName string) (result network.InterfaceListResultIterator, err error)
	ListVirtualMachineScaleSetVMNetworkInterfaces(ctx context.Context, resourceGroupName string, virtualMachineScaleSetName string, virtualmachineIndex string) (result network.InterfaceListResultPage, err error)
	ListVirtualMachineScaleSetVMNetworkInterfacesComplete(ctx context.Context, resourceGroupName string, virtualMachineScaleSetName string, virtualmachineIndex string) (result network.InterfaceListResultIterator, err error)
	UpdateTags(ctx context.Context, resourceGroupName string, networkInterfaceName string, parameters network.TagsObject) (result network.Interface, err error)
}

var _ InterfacesClientAPI = (*network.InterfacesClient)(nil)

// PublicIPAddressesClientAPI contains the set of methods on the PublicIPAddressesClient type.
type PublicIPAddressesClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, publicIPAddressName string, parameters network.PublicIPAddress) (result network.PublicIPAddressesCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, publicIPAddressName string) (result network.PublicIPAddressesDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, publicIPAddressName string, expand string) (result network.PublicIPAddress, err error)
	GetCloudServicePublicIPAddress(ctx context.Context, resourceGroupName string, cloudServiceName string, roleInstanceName string, networkInterfaceName string, IPConfigurationName string, publicIPAddressName string, expand string) (result network.PublicIPAddress, err error)
	GetVirtualMachineScaleSetPublicIPAddress(ctx context.Context, resourceGroupName string, virtualMachineScaleSetName string, virtualmachineIndex string, networkInterfaceName string, IPConfigurationName string, publicIPAddressName string, expand string) (result network.PublicIPAddress, err error)
	List(ctx context.Context, resourceGroupName string) (result network.PublicIPAddressListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string) (result network.PublicIPAddressListResultIterator, err error)
	ListAll(ctx context.Context) (result network.PublicIPAddressListResultPage, err error)
	ListAllComplete(ctx context.Context) (result network.PublicIPAddressListResultIterator, err error)
	ListCloudServicePublicIPAddresses(ctx context.Context, resourceGroupName string, cloudServiceName string) (result network.PublicIPAddressListResultPage, err error)
	ListCloudServicePublicIPAddressesComplete(ctx context.Context, resourceGroupName string, cloudServiceName string) (result network.PublicIPAddressListResultIterator, err error)
	ListCloudServiceRoleInstancePublicIPAddresses(ctx context.Context, resourceGroupName string, cloudServiceName string, roleInstanceName string, networkInterfaceName string, IPConfigurationName string) (result network.PublicIPAddressListResultPage, err error)
	ListCloudServiceRoleInstancePublicIPAddressesComplete(ctx context.Context, resourceGroupName string, cloudServiceName string, roleInstanceName string, networkInterfaceName string, IPConfigurationName string) (result network.PublicIPAddressListResultIterator, err error)
	ListVirtualMachineScaleSetPublicIPAddresses(ctx context.Context, resourceGroupName string, virtualMachineScaleSetName string) (result network.PublicIPAddressListResultPage, err error)
	ListVirtualMachineScaleSetPublicIPAddressesComplete(ctx context.Context, resourceGroupName string, virtualMachineScaleSetName string) (result network.PublicIPAddressListResultIterator, err error)
	ListVirtualMachineScaleSetVMPublicIPAddresses(ctx context.Context, resourceGroupName string, virtualMachineScaleSetName string, virtualmachineIndex string, networkInterfaceName string, IPConfigurationName string) (result network.PublicIPAddressListResultPage, err error)
	ListVirtualMachineScaleSetVMPublicIPAddressesComplete(ctx context.Context, resourceGroupName string, virtualMachineScaleSetName string, virtualmachineIndex string, networkInterfaceName string, IPConfigurationName string) (result network.PublicIPAddressListResultIterator, err error)
	UpdateTags(ctx context.Context, resourceGroupName string, publicIPAddressName string, parameters network.TagsObject) (result network.PublicIPAddress, err error)
}

var _ PublicIPAddressesClientAPI = (*network.PublicIPAddressesClient)(nil)

// CustomIPPrefixesClientAPI contains the set of methods on the CustomIPPrefixesClient type.
type CustomIPPrefixesClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, customIPPrefixName string, parameters network.CustomIPPrefix) (result network.CustomIPPrefixesCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, customIPPrefixName string) (result network.CustomIPPrefixesDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, customIPPrefixName string, expand string) (result network.CustomIPPrefix, err error)
	List(ctx context.Context, resourceGroupName string) (result network.CustomIPPrefixListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string) (result network.CustomIPPrefixListResultIterator, err error)
	ListAll(ctx context.Context) (result network.CustomIPPrefixListResultPage, err error)
	ListAllComplete(ctx context.Context) (result network.CustomIPPrefixListResultIterator, err error)
	UpdateTags(ctx context.Context, resourceGroupName string, customIPPrefixName string, parameters network.TagsObject) (result network.CustomIPPrefix, err error)
}

var _ CustomIPPrefixesClientAPI = (*network.CustomIPPrefixesClient)(nil)

// DdosCustomPoliciesClientAPI contains the set of methods on the DdosCustomPoliciesClient type.
type DdosCustomPoliciesClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, ddosCustomPolicyName string, parameters network.DdosCustomPolicy) (result network.DdosCustomPoliciesCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, ddosCustomPolicyName string) (result network.DdosCustomPoliciesDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, ddosCustomPolicyName string) (result network.DdosCustomPolicy, err error)
	UpdateTags(ctx context.Context, resourceGroupName string, ddosCustomPolicyName string, parameters network.TagsObject) (result network.DdosCustomPolicy, err error)
}

var _ DdosCustomPoliciesClientAPI = (*network.DdosCustomPoliciesClient)(nil)

// DdosProtectionPlansClientAPI contains the set of methods on the DdosProtectionPlansClient type.
type DdosProtectionPlansClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, ddosProtectionPlanName string, parameters network.DdosProtectionPlan) (result network.DdosProtectionPlansCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, ddosProtectionPlanName string) (result network.DdosProtectionPlansDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, ddosProtectionPlanName string) (result network.DdosProtectionPlan, err error)
	List(ctx context.Context) (result network.DdosProtectionPlanListResultPage, err error)
	ListComplete(ctx context.Context) (result network.DdosProtectionPlanListResultIterator, err error)
	ListByResourceGroup(ctx context.Context, resourceGroupName string) (result network.DdosProtectionPlanListResultPage, err error)
	ListByResourceGroupComplete(ctx context.Context, resourceGroupName string) (result network.DdosProtectionPlanListResultIterator, err error)
	UpdateTags(ctx context.Context, resourceGroupName string, ddosProtectionPlanName string, parameters network.TagsObject) (result network.DdosProtectionPlan, err error)
}

var _ DdosProtectionPlansClientAPI = (*network.DdosProtectionPlansClient)(nil)

// DscpConfigurationClientAPI contains the set of methods on the DscpConfigurationClient type.
type DscpConfigurationClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, dscpConfigurationName string, parameters network.DscpConfiguration) (result network.DscpConfigurationCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, dscpConfigurationName string) (result network.DscpConfigurationDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, dscpConfigurationName string) (result network.DscpConfiguration, err error)
	List(ctx context.Context, resourceGroupName string) (result network.DscpConfigurationListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string) (result network.DscpConfigurationListResultIterator, err error)
	ListAll(ctx context.Context) (result network.DscpConfigurationListResultPage, err error)
	ListAllComplete(ctx context.Context) (result network.DscpConfigurationListResultIterator, err error)
}

var _ DscpConfigurationClientAPI = (*network.DscpConfigurationClient)(nil)

// AvailableEndpointServicesClientAPI contains the set of methods on the AvailableEndpointServicesClient type.
type AvailableEndpointServicesClientAPI interface {
	List(ctx context.Context, location string) (result network.EndpointServicesListResultPage, err error)
	ListComplete(ctx context.Context, location string) (result network.EndpointServicesListResultIterator, err error)
}

var _ AvailableEndpointServicesClientAPI = (*network.AvailableEndpointServicesClient)(nil)

// ExpressRouteCircuitAuthorizationsClientAPI contains the set of methods on the ExpressRouteCircuitAuthorizationsClient type.
type ExpressRouteCircuitAuthorizationsClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, circuitName string, authorizationName string, authorizationParameters network.ExpressRouteCircuitAuthorization) (result network.ExpressRouteCircuitAuthorizationsCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, circuitName string, authorizationName string) (result network.ExpressRouteCircuitAuthorizationsDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, circuitName string, authorizationName string) (result network.ExpressRouteCircuitAuthorization, err error)
	List(ctx context.Context, resourceGroupName string, circuitName string) (result network.AuthorizationListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string, circuitName string) (result network.AuthorizationListResultIterator, err error)
}

var _ ExpressRouteCircuitAuthorizationsClientAPI = (*network.ExpressRouteCircuitAuthorizationsClient)(nil)

// ExpressRouteCircuitPeeringsClientAPI contains the set of methods on the ExpressRouteCircuitPeeringsClient type.
type ExpressRouteCircuitPeeringsClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, circuitName string, peeringName string, peeringParameters network.ExpressRouteCircuitPeering) (result network.ExpressRouteCircuitPeeringsCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, circuitName string, peeringName string) (result network.ExpressRouteCircuitPeeringsDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, circuitName string, peeringName string) (result network.ExpressRouteCircuitPeering, err error)
	List(ctx context.Context, resourceGroupName string, circuitName string) (result network.ExpressRouteCircuitPeeringListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string, circuitName string) (result network.ExpressRouteCircuitPeeringListResultIterator, err error)
}

var _ ExpressRouteCircuitPeeringsClientAPI = (*network.ExpressRouteCircuitPeeringsClient)(nil)

// ExpressRouteCircuitConnectionsClientAPI contains the set of methods on the ExpressRouteCircuitConnectionsClient type.
type ExpressRouteCircuitConnectionsClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, circuitName string, peeringName string, connectionName string, expressRouteCircuitConnectionParameters network.ExpressRouteCircuitConnection) (result network.ExpressRouteCircuitConnectionsCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, circuitName string, peeringName string, connectionName string) (result network.ExpressRouteCircuitConnectionsDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, circuitName string, peeringName string, connectionName string) (result network.ExpressRouteCircuitConnection, err error)
	List(ctx context.Context, resourceGroupName string, circuitName string, peeringName string) (result network.ExpressRouteCircuitConnectionListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string, circuitName string, peeringName string) (result network.ExpressRouteCircuitConnectionListResultIterator, err error)
}

var _ ExpressRouteCircuitConnectionsClientAPI = (*network.ExpressRouteCircuitConnectionsClient)(nil)

// PeerExpressRouteCircuitConnectionsClientAPI contains the set of methods on the PeerExpressRouteCircuitConnectionsClient type.
type PeerExpressRouteCircuitConnectionsClientAPI interface {
	Get(ctx context.Context, resourceGroupName string, circuitName string, peeringName string, connectionName string) (result network.PeerExpressRouteCircuitConnection, err error)
	List(ctx context.Context, resourceGroupName string, circuitName string, peeringName string) (result network.PeerExpressRouteCircuitConnectionListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string, circuitName string, peeringName string) (result network.PeerExpressRouteCircuitConnectionListResultIterator, err error)
}

var _ PeerExpressRouteCircuitConnectionsClientAPI = (*network.PeerExpressRouteCircuitConnectionsClient)(nil)

// ExpressRouteCircuitsClientAPI contains the set of methods on the ExpressRouteCircuitsClient type.
type ExpressRouteCircuitsClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, circuitName string, parameters network.ExpressRouteCircuit) (result network.ExpressRouteCircuitsCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, circuitName string) (result network.ExpressRouteCircuitsDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, circuitName string) (result network.ExpressRouteCircuit, err error)
	GetPeeringStats(ctx context.Context, resourceGroupName string, circuitName string, peeringName string) (result network.ExpressRouteCircuitStats, err error)
	GetStats(ctx context.Context, resourceGroupName string, circuitName string) (result network.ExpressRouteCircuitStats, err error)
	List(ctx context.Context, resourceGroupName string) (result network.ExpressRouteCircuitListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string) (result network.ExpressRouteCircuitListResultIterator, err error)
	ListAll(ctx context.Context) (result network.ExpressRouteCircuitListResultPage, err error)
	ListAllComplete(ctx context.Context) (result network.ExpressRouteCircuitListResultIterator, err error)
	ListArpTable(ctx context.Context, resourceGroupName string, circuitName string, peeringName string, devicePath string) (result network.ExpressRouteCircuitsListArpTableFuture, err error)
	ListRoutesTable(ctx context.Context, resourceGroupName string, circuitName string, peeringName string, devicePath string) (result network.ExpressRouteCircuitsListRoutesTableFuture, err error)
	ListRoutesTableSummary(ctx context.Context, resourceGroupName string, circuitName string, peeringName string, devicePath string) (result network.ExpressRouteCircuitsListRoutesTableSummaryFuture, err error)
	UpdateTags(ctx context.Context, resourceGroupName string, circuitName string, parameters network.TagsObject) (result network.ExpressRouteCircuit, err error)
}

var _ ExpressRouteCircuitsClientAPI = (*network.ExpressRouteCircuitsClient)(nil)

// ExpressRouteServiceProvidersClientAPI contains the set of methods on the ExpressRouteServiceProvidersClient type.
type ExpressRouteServiceProvidersClientAPI interface {
	List(ctx context.Context) (result network.ExpressRouteServiceProviderListResultPage, err error)
	ListComplete(ctx context.Context) (result network.ExpressRouteServiceProviderListResultIterator, err error)
}

var _ ExpressRouteServiceProvidersClientAPI = (*network.ExpressRouteServiceProvidersClient)(nil)

// ExpressRouteCrossConnectionsClientAPI contains the set of methods on the ExpressRouteCrossConnectionsClient type.
type ExpressRouteCrossConnectionsClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, crossConnectionName string, parameters network.ExpressRouteCrossConnection) (result network.ExpressRouteCrossConnectionsCreateOrUpdateFuture, err error)
	Get(ctx context.Context, resourceGroupName string, crossConnectionName string) (result network.ExpressRouteCrossConnection, err error)
	List(ctx context.Context) (result network.ExpressRouteCrossConnectionListResultPage, err error)
	ListComplete(ctx context.Context) (result network.ExpressRouteCrossConnectionListResultIterator, err error)
	ListArpTable(ctx context.Context, resourceGroupName string, crossConnectionName string, peeringName string, devicePath string) (result network.ExpressRouteCrossConnectionsListArpTableFuture, err error)
	ListByResourceGroup(ctx context.Context, resourceGroupName string) (result network.ExpressRouteCrossConnectionListResultPage, err error)
	ListByResourceGroupComplete(ctx context.Context, resourceGroupName string) (result network.ExpressRouteCrossConnectionListResultIterator, err error)
	ListRoutesTable(ctx context.Context, resourceGroupName string, crossConnectionName string, peeringName string, devicePath string) (result network.ExpressRouteCrossConnectionsListRoutesTableFuture, err error)
	ListRoutesTableSummary(ctx context.Context, resourceGroupName string, crossConnectionName string, peeringName string, devicePath string) (result network.ExpressRouteCrossConnectionsListRoutesTableSummaryFuture, err error)
	UpdateTags(ctx context.Context, resourceGroupName string, crossConnectionName string, crossConnectionParameters network.TagsObject) (result network.ExpressRouteCrossConnection, err error)
}

var _ ExpressRouteCrossConnectionsClientAPI = (*network.ExpressRouteCrossConnectionsClient)(nil)

// ExpressRouteCrossConnectionPeeringsClientAPI contains the set of methods on the ExpressRouteCrossConnectionPeeringsClient type.
type ExpressRouteCrossConnectionPeeringsClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, crossConnectionName string, peeringName string, peeringParameters network.ExpressRouteCrossConnectionPeering) (result network.ExpressRouteCrossConnectionPeeringsCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, crossConnectionName string, peeringName string) (result network.ExpressRouteCrossConnectionPeeringsDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, crossConnectionName string, peeringName string) (result network.ExpressRouteCrossConnectionPeering, err error)
	List(ctx context.Context, resourceGroupName string, crossConnectionName string) (result network.ExpressRouteCrossConnectionPeeringListPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string, crossConnectionName string) (result network.ExpressRouteCrossConnectionPeeringListIterator, err error)
}

var _ ExpressRouteCrossConnectionPeeringsClientAPI = (*network.ExpressRouteCrossConnectionPeeringsClient)(nil)

// ExpressRoutePortsLocationsClientAPI contains the set of methods on the ExpressRoutePortsLocationsClient type.
type ExpressRoutePortsLocationsClientAPI interface {
	Get(ctx context.Context, locationName string) (result network.ExpressRoutePortsLocation, err error)
	List(ctx context.Context) (result network.ExpressRoutePortsLocationListResultPage, err error)
	ListComplete(ctx context.Context) (result network.ExpressRoutePortsLocationListResultIterator, err error)
}

var _ ExpressRoutePortsLocationsClientAPI = (*network.ExpressRoutePortsLocationsClient)(nil)

// ExpressRoutePortsClientAPI contains the set of methods on the ExpressRoutePortsClient type.
type ExpressRoutePortsClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, expressRoutePortName string, parameters network.ExpressRoutePort) (result network.ExpressRoutePortsCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, expressRoutePortName string) (result network.ExpressRoutePortsDeleteFuture, err error)
	GenerateLOA(ctx context.Context, resourceGroupName string, expressRoutePortName string, request network.GenerateExpressRoutePortsLOARequest) (result network.GenerateExpressRoutePortsLOAResult, err error)
	Get(ctx context.Context, resourceGroupName string, expressRoutePortName string) (result network.ExpressRoutePort, err error)
	List(ctx context.Context) (result network.ExpressRoutePortListResultPage, err error)
	ListComplete(ctx context.Context) (result network.ExpressRoutePortListResultIterator, err error)
	ListByResourceGroup(ctx context.Context, resourceGroupName string) (result network.ExpressRoutePortListResultPage, err error)
	ListByResourceGroupComplete(ctx context.Context, resourceGroupName string) (result network.ExpressRoutePortListResultIterator, err error)
	UpdateTags(ctx context.Context, resourceGroupName string, expressRoutePortName string, parameters network.TagsObject) (result network.ExpressRoutePort, err error)
}

var _ ExpressRoutePortsClientAPI = (*network.ExpressRoutePortsClient)(nil)

// ExpressRouteLinksClientAPI contains the set of methods on the ExpressRouteLinksClient type.
type ExpressRouteLinksClientAPI interface {
	Get(ctx context.Context, resourceGroupName string, expressRoutePortName string, linkName string) (result network.ExpressRouteLink, err error)
	List(ctx context.Context, resourceGroupName string, expressRoutePortName string) (result network.ExpressRouteLinkListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string, expressRoutePortName string) (result network.ExpressRouteLinkListResultIterator, err error)
}

var _ ExpressRouteLinksClientAPI = (*network.ExpressRouteLinksClient)(nil)

// FirewallPoliciesClientAPI contains the set of methods on the FirewallPoliciesClient type.
type FirewallPoliciesClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, firewallPolicyName string, parameters network.FirewallPolicy) (result network.FirewallPoliciesCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, firewallPolicyName string) (result network.FirewallPoliciesDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, firewallPolicyName string, expand string) (result network.FirewallPolicy, err error)
	List(ctx context.Context, resourceGroupName string) (result network.FirewallPolicyListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string) (result network.FirewallPolicyListResultIterator, err error)
	ListAll(ctx context.Context) (result network.FirewallPolicyListResultPage, err error)
	ListAllComplete(ctx context.Context) (result network.FirewallPolicyListResultIterator, err error)
}

var _ FirewallPoliciesClientAPI = (*network.FirewallPoliciesClient)(nil)

// FirewallPolicyRuleCollectionGroupsClientAPI contains the set of methods on the FirewallPolicyRuleCollectionGroupsClient type.
type FirewallPolicyRuleCollectionGroupsClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, firewallPolicyName string, ruleCollectionGroupName string, parameters network.FirewallPolicyRuleCollectionGroup) (result network.FirewallPolicyRuleCollectionGroupsCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, firewallPolicyName string, ruleCollectionGroupName string) (result network.FirewallPolicyRuleCollectionGroupsDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, firewallPolicyName string, ruleCollectionGroupName string) (result network.FirewallPolicyRuleCollectionGroup, err error)
	List(ctx context.Context, resourceGroupName string, firewallPolicyName string) (result network.FirewallPolicyRuleCollectionGroupListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string, firewallPolicyName string) (result network.FirewallPolicyRuleCollectionGroupListResultIterator, err error)
}

var _ FirewallPolicyRuleCollectionGroupsClientAPI = (*network.FirewallPolicyRuleCollectionGroupsClient)(nil)

// IPAllocationsClientAPI contains the set of methods on the IPAllocationsClient type.
type IPAllocationsClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, IPAllocationName string, parameters network.IPAllocation) (result network.IPAllocationsCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, IPAllocationName string) (result network.IPAllocationsDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, IPAllocationName string, expand string) (result network.IPAllocation, err error)
	List(ctx context.Context) (result network.IPAllocationListResultPage, err error)
	ListComplete(ctx context.Context) (result network.IPAllocationListResultIterator, err error)
	ListByResourceGroup(ctx context.Context, resourceGroupName string) (result network.IPAllocationListResultPage, err error)
	ListByResourceGroupComplete(ctx context.Context, resourceGroupName string) (result network.IPAllocationListResultIterator, err error)
	UpdateTags(ctx context.Context, resourceGroupName string, IPAllocationName string, parameters network.TagsObject) (result network.IPAllocation, err error)
}

var _ IPAllocationsClientAPI = (*network.IPAllocationsClient)(nil)

// IPGroupsClientAPI contains the set of methods on the IPGroupsClient type.
type IPGroupsClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, IPGroupsName string, parameters network.IPGroup) (result network.IPGroupsCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, IPGroupsName string) (result network.IPGroupsDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, IPGroupsName string, expand string) (result network.IPGroup, err error)
	List(ctx context.Context) (result network.IPGroupListResultPage, err error)
	ListComplete(ctx context.Context) (result network.IPGroupListResultIterator, err error)
	ListByResourceGroup(ctx context.Context, resourceGroupName string) (result network.IPGroupListResultPage, err error)
	ListByResourceGroupComplete(ctx context.Context, resourceGroupName string) (result network.IPGroupListResultIterator, err error)
	UpdateGroups(ctx context.Context, resourceGroupName string, IPGroupsName string, parameters network.TagsObject) (result network.IPGroup, err error)
}

var _ IPGroupsClientAPI = (*network.IPGroupsClient)(nil)

// LoadBalancersClientAPI contains the set of methods on the LoadBalancersClient type.
type LoadBalancersClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, loadBalancerName string, parameters network.LoadBalancer) (result network.LoadBalancersCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, loadBalancerName string) (result network.LoadBalancersDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, loadBalancerName string, expand string) (result network.LoadBalancer, err error)
	List(ctx context.Context, resourceGroupName string) (result network.LoadBalancerListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string) (result network.LoadBalancerListResultIterator, err error)
	ListAll(ctx context.Context) (result network.LoadBalancerListResultPage, err error)
	ListAllComplete(ctx context.Context) (result network.LoadBalancerListResultIterator, err error)
	SwapPublicIPAddresses(ctx context.Context, location string, parameters network.LoadBalancerVipSwapRequest) (result network.LoadBalancersSwapPublicIPAddressesFuture, err error)
	UpdateTags(ctx context.Context, resourceGroupName string, loadBalancerName string, parameters network.TagsObject) (result network.LoadBalancer, err error)
}

var _ LoadBalancersClientAPI = (*network.LoadBalancersClient)(nil)

// LoadBalancerBackendAddressPoolsClientAPI contains the set of methods on the LoadBalancerBackendAddressPoolsClient type.
type LoadBalancerBackendAddressPoolsClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, loadBalancerName string, backendAddressPoolName string, parameters network.BackendAddressPool) (result network.LoadBalancerBackendAddressPoolsCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, loadBalancerName string, backendAddressPoolName string) (result network.LoadBalancerBackendAddressPoolsDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, loadBalancerName string, backendAddressPoolName string) (result network.BackendAddressPool, err error)
	List(ctx context.Context, resourceGroupName string, loadBalancerName string) (result network.LoadBalancerBackendAddressPoolListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string, loadBalancerName string) (result network.LoadBalancerBackendAddressPoolListResultIterator, err error)
}

var _ LoadBalancerBackendAddressPoolsClientAPI = (*network.LoadBalancerBackendAddressPoolsClient)(nil)

// LoadBalancerFrontendIPConfigurationsClientAPI contains the set of methods on the LoadBalancerFrontendIPConfigurationsClient type.
type LoadBalancerFrontendIPConfigurationsClientAPI interface {
	Get(ctx context.Context, resourceGroupName string, loadBalancerName string, frontendIPConfigurationName string) (result network.FrontendIPConfiguration, err error)
	List(ctx context.Context, resourceGroupName string, loadBalancerName string) (result network.LoadBalancerFrontendIPConfigurationListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string, loadBalancerName string) (result network.LoadBalancerFrontendIPConfigurationListResultIterator, err error)
}

var _ LoadBalancerFrontendIPConfigurationsClientAPI = (*network.LoadBalancerFrontendIPConfigurationsClient)(nil)

// InboundNatRulesClientAPI contains the set of methods on the InboundNatRulesClient type.
type InboundNatRulesClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, loadBalancerName string, inboundNatRuleName string, inboundNatRuleParameters network.InboundNatRule) (result network.InboundNatRulesCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, loadBalancerName string, inboundNatRuleName string) (result network.InboundNatRulesDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, loadBalancerName string, inboundNatRuleName string, expand string) (result network.InboundNatRule, err error)
	List(ctx context.Context, resourceGroupName string, loadBalancerName string) (result network.InboundNatRuleListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string, loadBalancerName string) (result network.InboundNatRuleListResultIterator, err error)
}

var _ InboundNatRulesClientAPI = (*network.InboundNatRulesClient)(nil)

// LoadBalancerLoadBalancingRulesClientAPI contains the set of methods on the LoadBalancerLoadBalancingRulesClient type.
type LoadBalancerLoadBalancingRulesClientAPI interface {
	Get(ctx context.Context, resourceGroupName string, loadBalancerName string, loadBalancingRuleName string) (result network.LoadBalancingRule, err error)
	List(ctx context.Context, resourceGroupName string, loadBalancerName string) (result network.LoadBalancerLoadBalancingRuleListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string, loadBalancerName string) (result network.LoadBalancerLoadBalancingRuleListResultIterator, err error)
}

var _ LoadBalancerLoadBalancingRulesClientAPI = (*network.LoadBalancerLoadBalancingRulesClient)(nil)

// LoadBalancerOutboundRulesClientAPI contains the set of methods on the LoadBalancerOutboundRulesClient type.
type LoadBalancerOutboundRulesClientAPI interface {
	Get(ctx context.Context, resourceGroupName string, loadBalancerName string, outboundRuleName string) (result network.OutboundRule, err error)
	List(ctx context.Context, resourceGroupName string, loadBalancerName string) (result network.LoadBalancerOutboundRuleListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string, loadBalancerName string) (result network.LoadBalancerOutboundRuleListResultIterator, err error)
}

var _ LoadBalancerOutboundRulesClientAPI = (*network.LoadBalancerOutboundRulesClient)(nil)

// LoadBalancerNetworkInterfacesClientAPI contains the set of methods on the LoadBalancerNetworkInterfacesClient type.
type LoadBalancerNetworkInterfacesClientAPI interface {
	List(ctx context.Context, resourceGroupName string, loadBalancerName string) (result network.InterfaceListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string, loadBalancerName string) (result network.InterfaceListResultIterator, err error)
}

var _ LoadBalancerNetworkInterfacesClientAPI = (*network.LoadBalancerNetworkInterfacesClient)(nil)

// LoadBalancerProbesClientAPI contains the set of methods on the LoadBalancerProbesClient type.
type LoadBalancerProbesClientAPI interface {
	Get(ctx context.Context, resourceGroupName string, loadBalancerName string, probeName string) (result network.Probe, err error)
	List(ctx context.Context, resourceGroupName string, loadBalancerName string) (result network.LoadBalancerProbeListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string, loadBalancerName string) (result network.LoadBalancerProbeListResultIterator, err error)
}

var _ LoadBalancerProbesClientAPI = (*network.LoadBalancerProbesClient)(nil)

// NatGatewaysClientAPI contains the set of methods on the NatGatewaysClient type.
type NatGatewaysClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, natGatewayName string, parameters network.NatGateway) (result network.NatGatewaysCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, natGatewayName string) (result network.NatGatewaysDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, natGatewayName string, expand string) (result network.NatGateway, err error)
	List(ctx context.Context, resourceGroupName string) (result network.NatGatewayListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string) (result network.NatGatewayListResultIterator, err error)
	ListAll(ctx context.Context) (result network.NatGatewayListResultPage, err error)
	ListAllComplete(ctx context.Context) (result network.NatGatewayListResultIterator, err error)
	UpdateTags(ctx context.Context, resourceGroupName string, natGatewayName string, parameters network.TagsObject) (result network.NatGateway, err error)
}

var _ NatGatewaysClientAPI = (*network.NatGatewaysClient)(nil)

// InterfaceIPConfigurationsClientAPI contains the set of methods on the InterfaceIPConfigurationsClient type.
type InterfaceIPConfigurationsClientAPI interface {
	Get(ctx context.Context, resourceGroupName string, networkInterfaceName string, IPConfigurationName string) (result network.InterfaceIPConfiguration, err error)
	List(ctx context.Context, resourceGroupName string, networkInterfaceName string) (result network.InterfaceIPConfigurationListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string, networkInterfaceName string) (result network.InterfaceIPConfigurationListResultIterator, err error)
}

var _ InterfaceIPConfigurationsClientAPI = (*network.InterfaceIPConfigurationsClient)(nil)

// InterfaceLoadBalancersClientAPI contains the set of methods on the InterfaceLoadBalancersClient type.
type InterfaceLoadBalancersClientAPI interface {
	List(ctx context.Context, resourceGroupName string, networkInterfaceName string) (result network.InterfaceLoadBalancerListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string, networkInterfaceName string) (result network.InterfaceLoadBalancerListResultIterator, err error)
}

var _ InterfaceLoadBalancersClientAPI = (*network.InterfaceLoadBalancersClient)(nil)

// InterfaceTapConfigurationsClientAPI contains the set of methods on the InterfaceTapConfigurationsClient type.
type InterfaceTapConfigurationsClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, networkInterfaceName string, tapConfigurationName string, tapConfigurationParameters network.InterfaceTapConfiguration) (result network.InterfaceTapConfigurationsCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, networkInterfaceName string, tapConfigurationName string) (result network.InterfaceTapConfigurationsDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, networkInterfaceName string, tapConfigurationName string) (result network.InterfaceTapConfiguration, err error)
	List(ctx context.Context, resourceGroupName string, networkInterfaceName string) (result network.InterfaceTapConfigurationListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string, networkInterfaceName string) (result network.InterfaceTapConfigurationListResultIterator, err error)
}

var _ InterfaceTapConfigurationsClientAPI = (*network.InterfaceTapConfigurationsClient)(nil)

// ProfilesClientAPI contains the set of methods on the ProfilesClient type.
type ProfilesClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, networkProfileName string, parameters network.Profile) (result network.Profile, err error)
	Delete(ctx context.Context, resourceGroupName string, networkProfileName string) (result network.ProfilesDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, networkProfileName string, expand string) (result network.Profile, err error)
	List(ctx context.Context, resourceGroupName string) (result network.ProfileListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string) (result network.ProfileListResultIterator, err error)
	ListAll(ctx context.Context) (result network.ProfileListResultPage, err error)
	ListAllComplete(ctx context.Context) (result network.ProfileListResultIterator, err error)
	UpdateTags(ctx context.Context, resourceGroupName string, networkProfileName string, parameters network.TagsObject) (result network.Profile, err error)
}

var _ ProfilesClientAPI = (*network.ProfilesClient)(nil)

// SecurityGroupsClientAPI contains the set of methods on the SecurityGroupsClient type.
type SecurityGroupsClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, networkSecurityGroupName string, parameters network.SecurityGroup) (result network.SecurityGroupsCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, networkSecurityGroupName string) (result network.SecurityGroupsDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, networkSecurityGroupName string, expand string) (result network.SecurityGroup, err error)
	List(ctx context.Context, resourceGroupName string) (result network.SecurityGroupListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string) (result network.SecurityGroupListResultIterator, err error)
	ListAll(ctx context.Context) (result network.SecurityGroupListResultPage, err error)
	ListAllComplete(ctx context.Context) (result network.SecurityGroupListResultIterator, err error)
	UpdateTags(ctx context.Context, resourceGroupName string, networkSecurityGroupName string, parameters network.TagsObject) (result network.SecurityGroup, err error)
}

var _ SecurityGroupsClientAPI = (*network.SecurityGroupsClient)(nil)

// SecurityRulesClientAPI contains the set of methods on the SecurityRulesClient type.
type SecurityRulesClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, networkSecurityGroupName string, securityRuleName string, securityRuleParameters network.SecurityRule) (result network.SecurityRulesCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, networkSecurityGroupName string, securityRuleName string) (result network.SecurityRulesDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, networkSecurityGroupName string, securityRuleName string) (result network.SecurityRule, err error)
	List(ctx context.Context, resourceGroupName string, networkSecurityGroupName string) (result network.SecurityRuleListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string, networkSecurityGroupName string) (result network.SecurityRuleListResultIterator, err error)
}

var _ SecurityRulesClientAPI = (*network.SecurityRulesClient)(nil)

// DefaultSecurityRulesClientAPI contains the set of methods on the DefaultSecurityRulesClient type.
type DefaultSecurityRulesClientAPI interface {
	Get(ctx context.Context, resourceGroupName string, networkSecurityGroupName string, defaultSecurityRuleName string) (result network.SecurityRule, err error)
	List(ctx context.Context, resourceGroupName string, networkSecurityGroupName string) (result network.SecurityRuleListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string, networkSecurityGroupName string) (result network.SecurityRuleListResultIterator, err error)
}

var _ DefaultSecurityRulesClientAPI = (*network.DefaultSecurityRulesClient)(nil)

// VirtualAppliancesClientAPI contains the set of methods on the VirtualAppliancesClient type.
type VirtualAppliancesClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, networkVirtualApplianceName string, parameters network.VirtualAppliance) (result network.VirtualAppliancesCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, networkVirtualApplianceName string) (result network.VirtualAppliancesDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, networkVirtualApplianceName string, expand string) (result network.VirtualAppliance, err error)
	List(ctx context.Context) (result network.VirtualApplianceListResultPage, err error)
	ListComplete(ctx context.Context) (result network.VirtualApplianceListResultIterator, err error)
	ListByResourceGroup(ctx context.Context, resourceGroupName string) (result network.VirtualApplianceListResultPage, err error)
	ListByResourceGroupComplete(ctx context.Context, resourceGroupName string) (result network.VirtualApplianceListResultIterator, err error)
	UpdateTags(ctx context.Context, resourceGroupName string, networkVirtualApplianceName string, parameters network.TagsObject) (result network.VirtualAppliance, err error)
}

var _ VirtualAppliancesClientAPI = (*network.VirtualAppliancesClient)(nil)

// VirtualApplianceSitesClientAPI contains the set of methods on the VirtualApplianceSitesClient type.
type VirtualApplianceSitesClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, networkVirtualApplianceName string, siteName string, parameters network.VirtualApplianceSite) (result network.VirtualApplianceSitesCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, networkVirtualApplianceName string, siteName string) (result network.VirtualApplianceSitesDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, networkVirtualApplianceName string, siteName string) (result network.VirtualApplianceSite, err error)
	List(ctx context.Context, resourceGroupName string, networkVirtualApplianceName string) (result network.VirtualApplianceSiteListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string, networkVirtualApplianceName string) (result network.VirtualApplianceSiteListResultIterator, err error)
}

var _ VirtualApplianceSitesClientAPI = (*network.VirtualApplianceSitesClient)(nil)

// VirtualApplianceSkusClientAPI contains the set of methods on the VirtualApplianceSkusClient type.
type VirtualApplianceSkusClientAPI interface {
	Get(ctx context.Context, skuName string) (result network.VirtualApplianceSku, err error)
	List(ctx context.Context) (result network.VirtualApplianceSkuListResultPage, err error)
	ListComplete(ctx context.Context) (result network.VirtualApplianceSkuListResultIterator, err error)
}

var _ VirtualApplianceSkusClientAPI = (*network.VirtualApplianceSkusClient)(nil)

// InboundSecurityRuleClientAPI contains the set of methods on the InboundSecurityRuleClient type.
type InboundSecurityRuleClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, networkVirtualApplianceName string, ruleCollectionName string, parameters network.InboundSecurityRule) (result network.InboundSecurityRuleCreateOrUpdateFuture, err error)
}

var _ InboundSecurityRuleClientAPI = (*network.InboundSecurityRuleClient)(nil)

// WatchersClientAPI contains the set of methods on the WatchersClient type.
type WatchersClientAPI interface {
	CheckConnectivity(ctx context.Context, resourceGroupName string, networkWatcherName string, parameters network.ConnectivityParameters) (result network.WatchersCheckConnectivityFuture, err error)
	CreateOrUpdate(ctx context.Context, resourceGroupName string, networkWatcherName string, parameters network.Watcher) (result network.Watcher, err error)
	Delete(ctx context.Context, resourceGroupName string, networkWatcherName string) (result network.WatchersDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, networkWatcherName string) (result network.Watcher, err error)
	GetAzureReachabilityReport(ctx context.Context, resourceGroupName string, networkWatcherName string, parameters network.AzureReachabilityReportParameters) (result network.WatchersGetAzureReachabilityReportFuture, err error)
	GetFlowLogStatus(ctx context.Context, resourceGroupName string, networkWatcherName string, parameters network.FlowLogStatusParameters) (result network.WatchersGetFlowLogStatusFuture, err error)
	GetNetworkConfigurationDiagnostic(ctx context.Context, resourceGroupName string, networkWatcherName string, parameters network.ConfigurationDiagnosticParameters) (result network.WatchersGetNetworkConfigurationDiagnosticFuture, err error)
	GetNextHop(ctx context.Context, resourceGroupName string, networkWatcherName string, parameters network.NextHopParameters) (result network.WatchersGetNextHopFuture, err error)
	GetTopology(ctx context.Context, resourceGroupName string, networkWatcherName string, parameters network.TopologyParameters) (result network.Topology, err error)
	GetTroubleshooting(ctx context.Context, resourceGroupName string, networkWatcherName string, parameters network.TroubleshootingParameters) (result network.WatchersGetTroubleshootingFuture, err error)
	GetTroubleshootingResult(ctx context.Context, resourceGroupName string, networkWatcherName string, parameters network.QueryTroubleshootingParameters) (result network.WatchersGetTroubleshootingResultFuture, err error)
	GetVMSecurityRules(ctx context.Context, resourceGroupName string, networkWatcherName string, parameters network.SecurityGroupViewParameters) (result network.WatchersGetVMSecurityRulesFuture, err error)
	List(ctx context.Context, resourceGroupName string) (result network.WatcherListResult, err error)
	ListAll(ctx context.Context) (result network.WatcherListResult, err error)
	ListAvailableProviders(ctx context.Context, resourceGroupName string, networkWatcherName string, parameters network.AvailableProvidersListParameters) (result network.WatchersListAvailableProvidersFuture, err error)
	SetFlowLogConfiguration(ctx context.Context, resourceGroupName string, networkWatcherName string, parameters network.FlowLogInformation) (result network.WatchersSetFlowLogConfigurationFuture, err error)
	UpdateTags(ctx context.Context, resourceGroupName string, networkWatcherName string, parameters network.TagsObject) (result network.Watcher, err error)
	VerifyIPFlow(ctx context.Context, resourceGroupName string, networkWatcherName string, parameters network.VerificationIPFlowParameters) (result network.WatchersVerifyIPFlowFuture, err error)
}

var _ WatchersClientAPI = (*network.WatchersClient)(nil)

// PacketCapturesClientAPI contains the set of methods on the PacketCapturesClient type.
type PacketCapturesClientAPI interface {
	Create(ctx context.Context, resourceGroupName string, networkWatcherName string, packetCaptureName string, parameters network.PacketCapture) (result network.PacketCapturesCreateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, networkWatcherName string, packetCaptureName string) (result network.PacketCapturesDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, networkWatcherName string, packetCaptureName string) (result network.PacketCaptureResult, err error)
	GetStatus(ctx context.Context, resourceGroupName string, networkWatcherName string, packetCaptureName string) (result network.PacketCapturesGetStatusFuture, err error)
	List(ctx context.Context, resourceGroupName string, networkWatcherName string) (result network.PacketCaptureListResult, err error)
	Stop(ctx context.Context, resourceGroupName string, networkWatcherName string, packetCaptureName string) (result network.PacketCapturesStopFuture, err error)
}

var _ PacketCapturesClientAPI = (*network.PacketCapturesClient)(nil)

// ConnectionMonitorsClientAPI contains the set of methods on the ConnectionMonitorsClient type.
type ConnectionMonitorsClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, networkWatcherName string, connectionMonitorName string, parameters network.ConnectionMonitor, migrate string) (result network.ConnectionMonitorsCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, networkWatcherName string, connectionMonitorName string) (result network.ConnectionMonitorsDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, networkWatcherName string, connectionMonitorName string) (result network.ConnectionMonitorResult, err error)
	List(ctx context.Context, resourceGroupName string, networkWatcherName string) (result network.ConnectionMonitorListResult, err error)
	Query(ctx context.Context, resourceGroupName string, networkWatcherName string, connectionMonitorName string) (result network.ConnectionMonitorsQueryFuture, err error)
	Start(ctx context.Context, resourceGroupName string, networkWatcherName string, connectionMonitorName string) (result network.ConnectionMonitorsStartFuture, err error)
	Stop(ctx context.Context, resourceGroupName string, networkWatcherName string, connectionMonitorName string) (result network.ConnectionMonitorsStopFuture, err error)
	UpdateTags(ctx context.Context, resourceGroupName string, networkWatcherName string, connectionMonitorName string, parameters network.TagsObject) (result network.ConnectionMonitorResult, err error)
}

var _ ConnectionMonitorsClientAPI = (*network.ConnectionMonitorsClient)(nil)

// FlowLogsClientAPI contains the set of methods on the FlowLogsClient type.
type FlowLogsClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, networkWatcherName string, flowLogName string, parameters network.FlowLog) (result network.FlowLogsCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, networkWatcherName string, flowLogName string) (result network.FlowLogsDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, networkWatcherName string, flowLogName string) (result network.FlowLog, err error)
	List(ctx context.Context, resourceGroupName string, networkWatcherName string) (result network.FlowLogListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string, networkWatcherName string) (result network.FlowLogListResultIterator, err error)
	UpdateTags(ctx context.Context, resourceGroupName string, networkWatcherName string, flowLogName string, parameters network.TagsObject) (result network.FlowLog, err error)
}

var _ FlowLogsClientAPI = (*network.FlowLogsClient)(nil)

// OperationsClientAPI contains the set of methods on the OperationsClient type.
type OperationsClientAPI interface {
	List(ctx context.Context) (result network.OperationListResultPage, err error)
	ListComplete(ctx context.Context) (result network.OperationListResultIterator, err error)
}

var _ OperationsClientAPI = (*network.OperationsClient)(nil)

// PrivateEndpointsClientAPI contains the set of methods on the PrivateEndpointsClient type.
type PrivateEndpointsClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, privateEndpointName string, parameters network.PrivateEndpoint) (result network.PrivateEndpointsCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, privateEndpointName string) (result network.PrivateEndpointsDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, privateEndpointName string, expand string) (result network.PrivateEndpoint, err error)
	List(ctx context.Context, resourceGroupName string) (result network.PrivateEndpointListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string) (result network.PrivateEndpointListResultIterator, err error)
	ListBySubscription(ctx context.Context) (result network.PrivateEndpointListResultPage, err error)
	ListBySubscriptionComplete(ctx context.Context) (result network.PrivateEndpointListResultIterator, err error)
}

var _ PrivateEndpointsClientAPI = (*network.PrivateEndpointsClient)(nil)

// AvailablePrivateEndpointTypesClientAPI contains the set of methods on the AvailablePrivateEndpointTypesClient type.
type AvailablePrivateEndpointTypesClientAPI interface {
	List(ctx context.Context, location string) (result network.AvailablePrivateEndpointTypesResultPage, err error)
	ListComplete(ctx context.Context, location string) (result network.AvailablePrivateEndpointTypesResultIterator, err error)
	ListByResourceGroup(ctx context.Context, location string, resourceGroupName string) (result network.AvailablePrivateEndpointTypesResultPage, err error)
	ListByResourceGroupComplete(ctx context.Context, location string, resourceGroupName string) (result network.AvailablePrivateEndpointTypesResultIterator, err error)
}

var _ AvailablePrivateEndpointTypesClientAPI = (*network.AvailablePrivateEndpointTypesClient)(nil)

// PrivateDNSZoneGroupsClientAPI contains the set of methods on the PrivateDNSZoneGroupsClient type.
type PrivateDNSZoneGroupsClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, privateEndpointName string, privateDNSZoneGroupName string, parameters network.PrivateDNSZoneGroup) (result network.PrivateDNSZoneGroupsCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, privateEndpointName string, privateDNSZoneGroupName string) (result network.PrivateDNSZoneGroupsDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, privateEndpointName string, privateDNSZoneGroupName string) (result network.PrivateDNSZoneGroup, err error)
	List(ctx context.Context, privateEndpointName string, resourceGroupName string) (result network.PrivateDNSZoneGroupListResultPage, err error)
	ListComplete(ctx context.Context, privateEndpointName string, resourceGroupName string) (result network.PrivateDNSZoneGroupListResultIterator, err error)
}

var _ PrivateDNSZoneGroupsClientAPI = (*network.PrivateDNSZoneGroupsClient)(nil)

// PrivateLinkServicesClientAPI contains the set of methods on the PrivateLinkServicesClient type.
type PrivateLinkServicesClientAPI interface {
	CheckPrivateLinkServiceVisibility(ctx context.Context, location string, parameters network.CheckPrivateLinkServiceVisibilityRequest) (result network.PrivateLinkServicesCheckPrivateLinkServiceVisibilityFuture, err error)
	CheckPrivateLinkServiceVisibilityByResourceGroup(ctx context.Context, location string, resourceGroupName string, parameters network.CheckPrivateLinkServiceVisibilityRequest) (result network.PrivateLinkServicesCheckPrivateLinkServiceVisibilityByResourceGroupFuture, err error)
	CreateOrUpdate(ctx context.Context, resourceGroupName string, serviceName string, parameters network.PrivateLinkService) (result network.PrivateLinkServicesCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, serviceName string) (result network.PrivateLinkServicesDeleteFuture, err error)
	DeletePrivateEndpointConnection(ctx context.Context, resourceGroupName string, serviceName string, peConnectionName string) (result network.PrivateLinkServicesDeletePrivateEndpointConnectionFuture, err error)
	Get(ctx context.Context, resourceGroupName string, serviceName string, expand string) (result network.PrivateLinkService, err error)
	GetPrivateEndpointConnection(ctx context.Context, resourceGroupName string, serviceName string, peConnectionName string, expand string) (result network.PrivateEndpointConnection, err error)
	List(ctx context.Context, resourceGroupName string) (result network.PrivateLinkServiceListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string) (result network.PrivateLinkServiceListResultIterator, err error)
	ListAutoApprovedPrivateLinkServices(ctx context.Context, location string) (result network.AutoApprovedPrivateLinkServicesResultPage, err error)
	ListAutoApprovedPrivateLinkServicesComplete(ctx context.Context, location string) (result network.AutoApprovedPrivateLinkServicesResultIterator, err error)
	ListAutoApprovedPrivateLinkServicesByResourceGroup(ctx context.Context, location string, resourceGroupName string) (result network.AutoApprovedPrivateLinkServicesResultPage, err error)
	ListAutoApprovedPrivateLinkServicesByResourceGroupComplete(ctx context.Context, location string, resourceGroupName string) (result network.AutoApprovedPrivateLinkServicesResultIterator, err error)
	ListBySubscription(ctx context.Context) (result network.PrivateLinkServiceListResultPage, err error)
	ListBySubscriptionComplete(ctx context.Context) (result network.PrivateLinkServiceListResultIterator, err error)
	ListPrivateEndpointConnections(ctx context.Context, resourceGroupName string, serviceName string) (result network.PrivateEndpointConnectionListResultPage, err error)
	ListPrivateEndpointConnectionsComplete(ctx context.Context, resourceGroupName string, serviceName string) (result network.PrivateEndpointConnectionListResultIterator, err error)
	UpdatePrivateEndpointConnection(ctx context.Context, resourceGroupName string, serviceName string, peConnectionName string, parameters network.PrivateEndpointConnection) (result network.PrivateEndpointConnection, err error)
}

var _ PrivateLinkServicesClientAPI = (*network.PrivateLinkServicesClient)(nil)

// PublicIPPrefixesClientAPI contains the set of methods on the PublicIPPrefixesClient type.
type PublicIPPrefixesClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, publicIPPrefixName string, parameters network.PublicIPPrefix) (result network.PublicIPPrefixesCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, publicIPPrefixName string) (result network.PublicIPPrefixesDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, publicIPPrefixName string, expand string) (result network.PublicIPPrefix, err error)
	List(ctx context.Context, resourceGroupName string) (result network.PublicIPPrefixListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string) (result network.PublicIPPrefixListResultIterator, err error)
	ListAll(ctx context.Context) (result network.PublicIPPrefixListResultPage, err error)
	ListAllComplete(ctx context.Context) (result network.PublicIPPrefixListResultIterator, err error)
	UpdateTags(ctx context.Context, resourceGroupName string, publicIPPrefixName string, parameters network.TagsObject) (result network.PublicIPPrefix, err error)
}

var _ PublicIPPrefixesClientAPI = (*network.PublicIPPrefixesClient)(nil)

// RouteFiltersClientAPI contains the set of methods on the RouteFiltersClient type.
type RouteFiltersClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, routeFilterName string, routeFilterParameters network.RouteFilter) (result network.RouteFiltersCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, routeFilterName string) (result network.RouteFiltersDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, routeFilterName string, expand string) (result network.RouteFilter, err error)
	List(ctx context.Context) (result network.RouteFilterListResultPage, err error)
	ListComplete(ctx context.Context) (result network.RouteFilterListResultIterator, err error)
	ListByResourceGroup(ctx context.Context, resourceGroupName string) (result network.RouteFilterListResultPage, err error)
	ListByResourceGroupComplete(ctx context.Context, resourceGroupName string) (result network.RouteFilterListResultIterator, err error)
	UpdateTags(ctx context.Context, resourceGroupName string, routeFilterName string, parameters network.TagsObject) (result network.RouteFilter, err error)
}

var _ RouteFiltersClientAPI = (*network.RouteFiltersClient)(nil)

// RouteFilterRulesClientAPI contains the set of methods on the RouteFilterRulesClient type.
type RouteFilterRulesClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, routeFilterName string, ruleName string, routeFilterRuleParameters network.RouteFilterRule) (result network.RouteFilterRulesCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, routeFilterName string, ruleName string) (result network.RouteFilterRulesDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, routeFilterName string, ruleName string) (result network.RouteFilterRule, err error)
	ListByRouteFilter(ctx context.Context, resourceGroupName string, routeFilterName string) (result network.RouteFilterRuleListResultPage, err error)
	ListByRouteFilterComplete(ctx context.Context, resourceGroupName string, routeFilterName string) (result network.RouteFilterRuleListResultIterator, err error)
}

var _ RouteFilterRulesClientAPI = (*network.RouteFilterRulesClient)(nil)

// RouteTablesClientAPI contains the set of methods on the RouteTablesClient type.
type RouteTablesClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, routeTableName string, parameters network.RouteTable) (result network.RouteTablesCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, routeTableName string) (result network.RouteTablesDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, routeTableName string, expand string) (result network.RouteTable, err error)
	List(ctx context.Context, resourceGroupName string) (result network.RouteTableListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string) (result network.RouteTableListResultIterator, err error)
	ListAll(ctx context.Context) (result network.RouteTableListResultPage, err error)
	ListAllComplete(ctx context.Context) (result network.RouteTableListResultIterator, err error)
	UpdateTags(ctx context.Context, resourceGroupName string, routeTableName string, parameters network.TagsObject) (result network.RouteTable, err error)
}

var _ RouteTablesClientAPI = (*network.RouteTablesClient)(nil)

// RoutesClientAPI contains the set of methods on the RoutesClient type.
type RoutesClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, routeTableName string, routeName string, routeParameters network.Route) (result network.RoutesCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, routeTableName string, routeName string) (result network.RoutesDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, routeTableName string, routeName string) (result network.Route, err error)
	List(ctx context.Context, resourceGroupName string, routeTableName string) (result network.RouteListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string, routeTableName string) (result network.RouteListResultIterator, err error)
}

var _ RoutesClientAPI = (*network.RoutesClient)(nil)

// SecurityPartnerProvidersClientAPI contains the set of methods on the SecurityPartnerProvidersClient type.
type SecurityPartnerProvidersClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, securityPartnerProviderName string, parameters network.SecurityPartnerProvider) (result network.SecurityPartnerProvidersCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, securityPartnerProviderName string) (result network.SecurityPartnerProvidersDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, securityPartnerProviderName string) (result network.SecurityPartnerProvider, err error)
	List(ctx context.Context) (result network.SecurityPartnerProviderListResultPage, err error)
	ListComplete(ctx context.Context) (result network.SecurityPartnerProviderListResultIterator, err error)
	ListByResourceGroup(ctx context.Context, resourceGroupName string) (result network.SecurityPartnerProviderListResultPage, err error)
	ListByResourceGroupComplete(ctx context.Context, resourceGroupName string) (result network.SecurityPartnerProviderListResultIterator, err error)
	UpdateTags(ctx context.Context, resourceGroupName string, securityPartnerProviderName string, parameters network.TagsObject) (result network.SecurityPartnerProvider, err error)
}

var _ SecurityPartnerProvidersClientAPI = (*network.SecurityPartnerProvidersClient)(nil)

// BgpServiceCommunitiesClientAPI contains the set of methods on the BgpServiceCommunitiesClient type.
type BgpServiceCommunitiesClientAPI interface {
	List(ctx context.Context) (result network.BgpServiceCommunityListResultPage, err error)
	ListComplete(ctx context.Context) (result network.BgpServiceCommunityListResultIterator, err error)
}

var _ BgpServiceCommunitiesClientAPI = (*network.BgpServiceCommunitiesClient)(nil)

// ServiceEndpointPoliciesClientAPI contains the set of methods on the ServiceEndpointPoliciesClient type.
type ServiceEndpointPoliciesClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, serviceEndpointPolicyName string, parameters network.ServiceEndpointPolicy) (result network.ServiceEndpointPoliciesCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, serviceEndpointPolicyName string) (result network.ServiceEndpointPoliciesDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, serviceEndpointPolicyName string, expand string) (result network.ServiceEndpointPolicy, err error)
	List(ctx context.Context) (result network.ServiceEndpointPolicyListResultPage, err error)
	ListComplete(ctx context.Context) (result network.ServiceEndpointPolicyListResultIterator, err error)
	ListByResourceGroup(ctx context.Context, resourceGroupName string) (result network.ServiceEndpointPolicyListResultPage, err error)
	ListByResourceGroupComplete(ctx context.Context, resourceGroupName string) (result network.ServiceEndpointPolicyListResultIterator, err error)
	UpdateTags(ctx context.Context, resourceGroupName string, serviceEndpointPolicyName string, parameters network.TagsObject) (result network.ServiceEndpointPolicy, err error)
}

var _ ServiceEndpointPoliciesClientAPI = (*network.ServiceEndpointPoliciesClient)(nil)

// ServiceEndpointPolicyDefinitionsClientAPI contains the set of methods on the ServiceEndpointPolicyDefinitionsClient type.
type ServiceEndpointPolicyDefinitionsClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, serviceEndpointPolicyName string, serviceEndpointPolicyDefinitionName string, serviceEndpointPolicyDefinitions network.ServiceEndpointPolicyDefinition) (result network.ServiceEndpointPolicyDefinitionsCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, serviceEndpointPolicyName string, serviceEndpointPolicyDefinitionName string) (result network.ServiceEndpointPolicyDefinitionsDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, serviceEndpointPolicyName string, serviceEndpointPolicyDefinitionName string) (result network.ServiceEndpointPolicyDefinition, err error)
	ListByResourceGroup(ctx context.Context, resourceGroupName string, serviceEndpointPolicyName string) (result network.ServiceEndpointPolicyDefinitionListResultPage, err error)
	ListByResourceGroupComplete(ctx context.Context, resourceGroupName string, serviceEndpointPolicyName string) (result network.ServiceEndpointPolicyDefinitionListResultIterator, err error)
}

var _ ServiceEndpointPolicyDefinitionsClientAPI = (*network.ServiceEndpointPolicyDefinitionsClient)(nil)

// ServiceTagsClientAPI contains the set of methods on the ServiceTagsClient type.
type ServiceTagsClientAPI interface {
	List(ctx context.Context, location string) (result network.ServiceTagsListResult, err error)
}

var _ ServiceTagsClientAPI = (*network.ServiceTagsClient)(nil)

// ServiceTagInformationClientAPI contains the set of methods on the ServiceTagInformationClient type.
type ServiceTagInformationClientAPI interface {
	List(ctx context.Context, location string, noAddressPrefixes *bool, tagName string) (result network.ServiceTagInformationListResultPage, err error)
	ListComplete(ctx context.Context, location string, noAddressPrefixes *bool, tagName string) (result network.ServiceTagInformationListResultIterator, err error)
}

var _ ServiceTagInformationClientAPI = (*network.ServiceTagInformationClient)(nil)

// UsagesClientAPI contains the set of methods on the UsagesClient type.
type UsagesClientAPI interface {
	List(ctx context.Context, location string) (result network.UsagesListResultPage, err error)
	ListComplete(ctx context.Context, location string) (result network.UsagesListResultIterator, err error)
}

var _ UsagesClientAPI = (*network.UsagesClient)(nil)

// VirtualNetworksClientAPI contains the set of methods on the VirtualNetworksClient type.
type VirtualNetworksClientAPI interface {
	CheckIPAddressAvailability(ctx context.Context, resourceGroupName string, virtualNetworkName string, IPAddress string) (result network.IPAddressAvailabilityResult, err error)
	CreateOrUpdate(ctx context.Context, resourceGroupName string, virtualNetworkName string, parameters network.VirtualNetwork) (result network.VirtualNetworksCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, virtualNetworkName string) (result network.VirtualNetworksDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, virtualNetworkName string, expand string) (result network.VirtualNetwork, err error)
	List(ctx context.Context, resourceGroupName string) (result network.VirtualNetworkListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string) (result network.VirtualNetworkListResultIterator, err error)
	ListAll(ctx context.Context) (result network.VirtualNetworkListResultPage, err error)
	ListAllComplete(ctx context.Context) (result network.VirtualNetworkListResultIterator, err error)
	ListUsage(ctx context.Context, resourceGroupName string, virtualNetworkName string) (result network.VirtualNetworkListUsageResultPage, err error)
	ListUsageComplete(ctx context.Context, resourceGroupName string, virtualNetworkName string) (result network.VirtualNetworkListUsageResultIterator, err error)
	UpdateTags(ctx context.Context, resourceGroupName string, virtualNetworkName string, parameters network.TagsObject) (result network.VirtualNetwork, err error)
}

var _ VirtualNetworksClientAPI = (*network.VirtualNetworksClient)(nil)

// SubnetsClientAPI contains the set of methods on the SubnetsClient type.
type SubnetsClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, virtualNetworkName string, subnetName string, subnetParameters network.Subnet) (result network.SubnetsCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, virtualNetworkName string, subnetName string) (result network.SubnetsDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, virtualNetworkName string, subnetName string, expand string) (result network.Subnet, err error)
	List(ctx context.Context, resourceGroupName string, virtualNetworkName string) (result network.SubnetListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string, virtualNetworkName string) (result network.SubnetListResultIterator, err error)
	PrepareNetworkPolicies(ctx context.Context, resourceGroupName string, virtualNetworkName string, subnetName string, prepareNetworkPoliciesRequestParameters network.PrepareNetworkPoliciesRequest) (result network.SubnetsPrepareNetworkPoliciesFuture, err error)
	UnprepareNetworkPolicies(ctx context.Context, resourceGroupName string, virtualNetworkName string, subnetName string, unprepareNetworkPoliciesRequestParameters network.UnprepareNetworkPoliciesRequest) (result network.SubnetsUnprepareNetworkPoliciesFuture, err error)
}

var _ SubnetsClientAPI = (*network.SubnetsClient)(nil)

// ResourceNavigationLinksClientAPI contains the set of methods on the ResourceNavigationLinksClient type.
type ResourceNavigationLinksClientAPI interface {
	List(ctx context.Context, resourceGroupName string, virtualNetworkName string, subnetName string) (result network.ResourceNavigationLinksListResult, err error)
}

var _ ResourceNavigationLinksClientAPI = (*network.ResourceNavigationLinksClient)(nil)

// ServiceAssociationLinksClientAPI contains the set of methods on the ServiceAssociationLinksClient type.
type ServiceAssociationLinksClientAPI interface {
	List(ctx context.Context, resourceGroupName string, virtualNetworkName string, subnetName string) (result network.ServiceAssociationLinksListResult, err error)
}

var _ ServiceAssociationLinksClientAPI = (*network.ServiceAssociationLinksClient)(nil)

// VirtualNetworkPeeringsClientAPI contains the set of methods on the VirtualNetworkPeeringsClient type.
type VirtualNetworkPeeringsClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, virtualNetworkName string, virtualNetworkPeeringName string, virtualNetworkPeeringParameters network.VirtualNetworkPeering, syncRemoteAddressSpace network.SyncRemoteAddressSpace) (result network.VirtualNetworkPeeringsCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, virtualNetworkName string, virtualNetworkPeeringName string) (result network.VirtualNetworkPeeringsDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, virtualNetworkName string, virtualNetworkPeeringName string) (result network.VirtualNetworkPeering, err error)
	List(ctx context.Context, resourceGroupName string, virtualNetworkName string) (result network.VirtualNetworkPeeringListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string, virtualNetworkName string) (result network.VirtualNetworkPeeringListResultIterator, err error)
}

var _ VirtualNetworkPeeringsClientAPI = (*network.VirtualNetworkPeeringsClient)(nil)

// VirtualNetworkGatewaysClientAPI contains the set of methods on the VirtualNetworkGatewaysClient type.
type VirtualNetworkGatewaysClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string, parameters network.VirtualNetworkGateway) (result network.VirtualNetworkGatewaysCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string) (result network.VirtualNetworkGatewaysDeleteFuture, err error)
	DisconnectVirtualNetworkGatewayVpnConnections(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string, request network.P2SVpnConnectionRequest) (result network.VirtualNetworkGatewaysDisconnectVirtualNetworkGatewayVpnConnectionsFuture, err error)
	Generatevpnclientpackage(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string, parameters network.VpnClientParameters) (result network.VirtualNetworkGatewaysGeneratevpnclientpackageFuture, err error)
	GenerateVpnProfile(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string, parameters network.VpnClientParameters) (result network.VirtualNetworkGatewaysGenerateVpnProfileFuture, err error)
	Get(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string) (result network.VirtualNetworkGateway, err error)
	GetAdvertisedRoutes(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string, peer string) (result network.VirtualNetworkGatewaysGetAdvertisedRoutesFuture, err error)
	GetBgpPeerStatus(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string, peer string) (result network.VirtualNetworkGatewaysGetBgpPeerStatusFuture, err error)
	GetLearnedRoutes(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string) (result network.VirtualNetworkGatewaysGetLearnedRoutesFuture, err error)
	GetVpnclientConnectionHealth(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string) (result network.VirtualNetworkGatewaysGetVpnclientConnectionHealthFuture, err error)
	GetVpnclientIpsecParameters(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string) (result network.VirtualNetworkGatewaysGetVpnclientIpsecParametersFuture, err error)
	GetVpnProfilePackageURL(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string) (result network.VirtualNetworkGatewaysGetVpnProfilePackageURLFuture, err error)
	List(ctx context.Context, resourceGroupName string) (result network.VirtualNetworkGatewayListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string) (result network.VirtualNetworkGatewayListResultIterator, err error)
	ListConnections(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string) (result network.VirtualNetworkGatewayListConnectionsResultPage, err error)
	ListConnectionsComplete(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string) (result network.VirtualNetworkGatewayListConnectionsResultIterator, err error)
	Reset(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string, gatewayVip string) (result network.VirtualNetworkGatewaysResetFuture, err error)
	ResetVpnClientSharedKey(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string) (result network.VirtualNetworkGatewaysResetVpnClientSharedKeyFuture, err error)
	SetVpnclientIpsecParameters(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string, vpnclientIpsecParams network.VpnClientIPsecParameters) (result network.VirtualNetworkGatewaysSetVpnclientIpsecParametersFuture, err error)
	StartPacketCapture(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string, parameters *network.VpnPacketCaptureStartParameters) (result network.VirtualNetworkGatewaysStartPacketCaptureFuture, err error)
	StopPacketCapture(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string, parameters network.VpnPacketCaptureStopParameters) (result network.VirtualNetworkGatewaysStopPacketCaptureFuture, err error)
	SupportedVpnDevices(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string) (result network.String, err error)
	UpdateTags(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string, parameters network.TagsObject) (result network.VirtualNetworkGatewaysUpdateTagsFuture, err error)
	VpnDeviceConfigurationScript(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string, parameters network.VpnDeviceScriptParameters) (result network.String, err error)
}

var _ VirtualNetworkGatewaysClientAPI = (*network.VirtualNetworkGatewaysClient)(nil)

// VirtualNetworkGatewayConnectionsClientAPI contains the set of methods on the VirtualNetworkGatewayConnectionsClient type.
type VirtualNetworkGatewayConnectionsClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string, parameters network.VirtualNetworkGatewayConnection) (result network.VirtualNetworkGatewayConnectionsCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string) (result network.VirtualNetworkGatewayConnectionsDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string) (result network.VirtualNetworkGatewayConnection, err error)
	GetIkeSas(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string) (result network.VirtualNetworkGatewayConnectionsGetIkeSasFuture, err error)
	GetSharedKey(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string) (result network.ConnectionSharedKey, err error)
	List(ctx context.Context, resourceGroupName string) (result network.VirtualNetworkGatewayConnectionListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string) (result network.VirtualNetworkGatewayConnectionListResultIterator, err error)
	ResetConnection(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string) (result network.VirtualNetworkGatewayConnectionsResetConnectionFuture, err error)
	ResetSharedKey(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string, parameters network.ConnectionResetSharedKey) (result network.VirtualNetworkGatewayConnectionsResetSharedKeyFuture, err error)
	SetSharedKey(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string, parameters network.ConnectionSharedKey) (result network.VirtualNetworkGatewayConnectionsSetSharedKeyFuture, err error)
	StartPacketCapture(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string, parameters *network.VpnPacketCaptureStartParameters) (result network.VirtualNetworkGatewayConnectionsStartPacketCaptureFuture, err error)
	StopPacketCapture(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string, parameters network.VpnPacketCaptureStopParameters) (result network.VirtualNetworkGatewayConnectionsStopPacketCaptureFuture, err error)
	UpdateTags(ctx context.Context, resourceGroupName string, virtualNetworkGatewayConnectionName string, parameters network.TagsObject) (result network.VirtualNetworkGatewayConnectionsUpdateTagsFuture, err error)
}

var _ VirtualNetworkGatewayConnectionsClientAPI = (*network.VirtualNetworkGatewayConnectionsClient)(nil)

// LocalNetworkGatewaysClientAPI contains the set of methods on the LocalNetworkGatewaysClient type.
type LocalNetworkGatewaysClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, localNetworkGatewayName string, parameters network.LocalNetworkGateway) (result network.LocalNetworkGatewaysCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, localNetworkGatewayName string) (result network.LocalNetworkGatewaysDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, localNetworkGatewayName string) (result network.LocalNetworkGateway, err error)
	List(ctx context.Context, resourceGroupName string) (result network.LocalNetworkGatewayListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string) (result network.LocalNetworkGatewayListResultIterator, err error)
	UpdateTags(ctx context.Context, resourceGroupName string, localNetworkGatewayName string, parameters network.TagsObject) (result network.LocalNetworkGateway, err error)
}

var _ LocalNetworkGatewaysClientAPI = (*network.LocalNetworkGatewaysClient)(nil)

// VirtualNetworkGatewayNatRulesClientAPI contains the set of methods on the VirtualNetworkGatewayNatRulesClient type.
type VirtualNetworkGatewayNatRulesClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string, natRuleName string, natRuleParameters network.VirtualNetworkGatewayNatRule) (result network.VirtualNetworkGatewayNatRulesCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string, natRuleName string) (result network.VirtualNetworkGatewayNatRulesDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string, natRuleName string) (result network.VirtualNetworkGatewayNatRule, err error)
	ListByVirtualNetworkGateway(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string) (result network.ListVirtualNetworkGatewayNatRulesResultPage, err error)
	ListByVirtualNetworkGatewayComplete(ctx context.Context, resourceGroupName string, virtualNetworkGatewayName string) (result network.ListVirtualNetworkGatewayNatRulesResultIterator, err error)
}

var _ VirtualNetworkGatewayNatRulesClientAPI = (*network.VirtualNetworkGatewayNatRulesClient)(nil)

// VirtualNetworkTapsClientAPI contains the set of methods on the VirtualNetworkTapsClient type.
type VirtualNetworkTapsClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, tapName string, parameters network.VirtualNetworkTap) (result network.VirtualNetworkTapsCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, tapName string) (result network.VirtualNetworkTapsDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, tapName string) (result network.VirtualNetworkTap, err error)
	ListAll(ctx context.Context) (result network.VirtualNetworkTapListResultPage, err error)
	ListAllComplete(ctx context.Context) (result network.VirtualNetworkTapListResultIterator, err error)
	ListByResourceGroup(ctx context.Context, resourceGroupName string) (result network.VirtualNetworkTapListResultPage, err error)
	ListByResourceGroupComplete(ctx context.Context, resourceGroupName string) (result network.VirtualNetworkTapListResultIterator, err error)
	UpdateTags(ctx context.Context, resourceGroupName string, tapName string, tapParameters network.TagsObject) (result network.VirtualNetworkTap, err error)
}

var _ VirtualNetworkTapsClientAPI = (*network.VirtualNetworkTapsClient)(nil)

// VirtualRoutersClientAPI contains the set of methods on the VirtualRoutersClient type.
type VirtualRoutersClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, virtualRouterName string, parameters network.VirtualRouter) (result network.VirtualRoutersCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, virtualRouterName string) (result network.VirtualRoutersDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, virtualRouterName string, expand string) (result network.VirtualRouter, err error)
	List(ctx context.Context) (result network.VirtualRouterListResultPage, err error)
	ListComplete(ctx context.Context) (result network.VirtualRouterListResultIterator, err error)
	ListByResourceGroup(ctx context.Context, resourceGroupName string) (result network.VirtualRouterListResultPage, err error)
	ListByResourceGroupComplete(ctx context.Context, resourceGroupName string) (result network.VirtualRouterListResultIterator, err error)
}

var _ VirtualRoutersClientAPI = (*network.VirtualRoutersClient)(nil)

// VirtualRouterPeeringsClientAPI contains the set of methods on the VirtualRouterPeeringsClient type.
type VirtualRouterPeeringsClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, virtualRouterName string, peeringName string, parameters network.VirtualRouterPeering) (result network.VirtualRouterPeeringsCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, virtualRouterName string, peeringName string) (result network.VirtualRouterPeeringsDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, virtualRouterName string, peeringName string) (result network.VirtualRouterPeering, err error)
	List(ctx context.Context, resourceGroupName string, virtualRouterName string) (result network.VirtualRouterPeeringListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string, virtualRouterName string) (result network.VirtualRouterPeeringListResultIterator, err error)
}

var _ VirtualRouterPeeringsClientAPI = (*network.VirtualRouterPeeringsClient)(nil)

// VirtualWansClientAPI contains the set of methods on the VirtualWansClient type.
type VirtualWansClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, virtualWANName string, wANParameters network.VirtualWAN) (result network.VirtualWansCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, virtualWANName string) (result network.VirtualWansDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, virtualWANName string) (result network.VirtualWAN, err error)
	List(ctx context.Context) (result network.ListVirtualWANsResultPage, err error)
	ListComplete(ctx context.Context) (result network.ListVirtualWANsResultIterator, err error)
	ListByResourceGroup(ctx context.Context, resourceGroupName string) (result network.ListVirtualWANsResultPage, err error)
	ListByResourceGroupComplete(ctx context.Context, resourceGroupName string) (result network.ListVirtualWANsResultIterator, err error)
	UpdateTags(ctx context.Context, resourceGroupName string, virtualWANName string, wANParameters network.TagsObject) (result network.VirtualWAN, err error)
}

var _ VirtualWansClientAPI = (*network.VirtualWansClient)(nil)

// VpnSitesClientAPI contains the set of methods on the VpnSitesClient type.
type VpnSitesClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, vpnSiteName string, vpnSiteParameters network.VpnSite) (result network.VpnSitesCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, vpnSiteName string) (result network.VpnSitesDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, vpnSiteName string) (result network.VpnSite, err error)
	List(ctx context.Context) (result network.ListVpnSitesResultPage, err error)
	ListComplete(ctx context.Context) (result network.ListVpnSitesResultIterator, err error)
	ListByResourceGroup(ctx context.Context, resourceGroupName string) (result network.ListVpnSitesResultPage, err error)
	ListByResourceGroupComplete(ctx context.Context, resourceGroupName string) (result network.ListVpnSitesResultIterator, err error)
	UpdateTags(ctx context.Context, resourceGroupName string, vpnSiteName string, vpnSiteParameters network.TagsObject) (result network.VpnSite, err error)
}

var _ VpnSitesClientAPI = (*network.VpnSitesClient)(nil)

// VpnSiteLinksClientAPI contains the set of methods on the VpnSiteLinksClient type.
type VpnSiteLinksClientAPI interface {
	Get(ctx context.Context, resourceGroupName string, vpnSiteName string, vpnSiteLinkName string) (result network.VpnSiteLink, err error)
	ListByVpnSite(ctx context.Context, resourceGroupName string, vpnSiteName string) (result network.ListVpnSiteLinksResultPage, err error)
	ListByVpnSiteComplete(ctx context.Context, resourceGroupName string, vpnSiteName string) (result network.ListVpnSiteLinksResultIterator, err error)
}

var _ VpnSiteLinksClientAPI = (*network.VpnSiteLinksClient)(nil)

// VpnSitesConfigurationClientAPI contains the set of methods on the VpnSitesConfigurationClient type.
type VpnSitesConfigurationClientAPI interface {
	Download(ctx context.Context, resourceGroupName string, virtualWANName string, request network.GetVpnSitesConfigurationRequest) (result network.VpnSitesConfigurationDownloadFuture, err error)
}

var _ VpnSitesConfigurationClientAPI = (*network.VpnSitesConfigurationClient)(nil)

// VpnServerConfigurationsClientAPI contains the set of methods on the VpnServerConfigurationsClient type.
type VpnServerConfigurationsClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, vpnServerConfigurationName string, vpnServerConfigurationParameters network.VpnServerConfiguration) (result network.VpnServerConfigurationsCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, vpnServerConfigurationName string) (result network.VpnServerConfigurationsDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, vpnServerConfigurationName string) (result network.VpnServerConfiguration, err error)
	List(ctx context.Context) (result network.ListVpnServerConfigurationsResultPage, err error)
	ListComplete(ctx context.Context) (result network.ListVpnServerConfigurationsResultIterator, err error)
	ListByResourceGroup(ctx context.Context, resourceGroupName string) (result network.ListVpnServerConfigurationsResultPage, err error)
	ListByResourceGroupComplete(ctx context.Context, resourceGroupName string) (result network.ListVpnServerConfigurationsResultIterator, err error)
	UpdateTags(ctx context.Context, resourceGroupName string, vpnServerConfigurationName string, vpnServerConfigurationParameters network.TagsObject) (result network.VpnServerConfiguration, err error)
}

var _ VpnServerConfigurationsClientAPI = (*network.VpnServerConfigurationsClient)(nil)

// VirtualHubsClientAPI contains the set of methods on the VirtualHubsClient type.
type VirtualHubsClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, virtualHubName string, virtualHubParameters network.VirtualHub) (result network.VirtualHubsCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, virtualHubName string) (result network.VirtualHubsDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, virtualHubName string) (result network.VirtualHub, err error)
	GetEffectiveVirtualHubRoutes(ctx context.Context, resourceGroupName string, virtualHubName string, effectiveRoutesParameters *network.EffectiveRoutesParameters) (result network.VirtualHubsGetEffectiveVirtualHubRoutesFuture, err error)
	List(ctx context.Context) (result network.ListVirtualHubsResultPage, err error)
	ListComplete(ctx context.Context) (result network.ListVirtualHubsResultIterator, err error)
	ListByResourceGroup(ctx context.Context, resourceGroupName string) (result network.ListVirtualHubsResultPage, err error)
	ListByResourceGroupComplete(ctx context.Context, resourceGroupName string) (result network.ListVirtualHubsResultIterator, err error)
	UpdateTags(ctx context.Context, resourceGroupName string, virtualHubName string, virtualHubParameters network.TagsObject) (result network.VirtualHub, err error)
}

var _ VirtualHubsClientAPI = (*network.VirtualHubsClient)(nil)

// HubVirtualNetworkConnectionsClientAPI contains the set of methods on the HubVirtualNetworkConnectionsClient type.
type HubVirtualNetworkConnectionsClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, virtualHubName string, connectionName string, hubVirtualNetworkConnectionParameters network.HubVirtualNetworkConnection) (result network.HubVirtualNetworkConnectionsCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, virtualHubName string, connectionName string) (result network.HubVirtualNetworkConnectionsDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, virtualHubName string, connectionName string) (result network.HubVirtualNetworkConnection, err error)
	List(ctx context.Context, resourceGroupName string, virtualHubName string) (result network.ListHubVirtualNetworkConnectionsResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string, virtualHubName string) (result network.ListHubVirtualNetworkConnectionsResultIterator, err error)
}

var _ HubVirtualNetworkConnectionsClientAPI = (*network.HubVirtualNetworkConnectionsClient)(nil)

// VpnGatewaysClientAPI contains the set of methods on the VpnGatewaysClient type.
type VpnGatewaysClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, gatewayName string, vpnGatewayParameters network.VpnGateway) (result network.VpnGatewaysCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, gatewayName string) (result network.VpnGatewaysDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, gatewayName string) (result network.VpnGateway, err error)
	List(ctx context.Context) (result network.ListVpnGatewaysResultPage, err error)
	ListComplete(ctx context.Context) (result network.ListVpnGatewaysResultIterator, err error)
	ListByResourceGroup(ctx context.Context, resourceGroupName string) (result network.ListVpnGatewaysResultPage, err error)
	ListByResourceGroupComplete(ctx context.Context, resourceGroupName string) (result network.ListVpnGatewaysResultIterator, err error)
	Reset(ctx context.Context, resourceGroupName string, gatewayName string) (result network.VpnGatewaysResetFuture, err error)
	StartPacketCapture(ctx context.Context, resourceGroupName string, gatewayName string, parameters *network.VpnGatewayPacketCaptureStartParameters) (result network.VpnGatewaysStartPacketCaptureFuture, err error)
	StopPacketCapture(ctx context.Context, resourceGroupName string, gatewayName string, parameters *network.VpnGatewayPacketCaptureStopParameters) (result network.VpnGatewaysStopPacketCaptureFuture, err error)
	UpdateTags(ctx context.Context, resourceGroupName string, gatewayName string, vpnGatewayParameters network.TagsObject) (result network.VpnGatewaysUpdateTagsFuture, err error)
}

var _ VpnGatewaysClientAPI = (*network.VpnGatewaysClient)(nil)

// VpnLinkConnectionsClientAPI contains the set of methods on the VpnLinkConnectionsClient type.
type VpnLinkConnectionsClientAPI interface {
	GetIkeSas(ctx context.Context, resourceGroupName string, gatewayName string, connectionName string, linkConnectionName string) (result network.VpnLinkConnectionsGetIkeSasFuture, err error)
	ListByVpnConnection(ctx context.Context, resourceGroupName string, gatewayName string, connectionName string) (result network.ListVpnSiteLinkConnectionsResultPage, err error)
	ListByVpnConnectionComplete(ctx context.Context, resourceGroupName string, gatewayName string, connectionName string) (result network.ListVpnSiteLinkConnectionsResultIterator, err error)
	ResetConnection(ctx context.Context, resourceGroupName string, gatewayName string, connectionName string, linkConnectionName string) (result network.VpnLinkConnectionsResetConnectionFuture, err error)
}

var _ VpnLinkConnectionsClientAPI = (*network.VpnLinkConnectionsClient)(nil)

// VpnConnectionsClientAPI contains the set of methods on the VpnConnectionsClient type.
type VpnConnectionsClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, gatewayName string, connectionName string, vpnConnectionParameters network.VpnConnection) (result network.VpnConnectionsCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, gatewayName string, connectionName string) (result network.VpnConnectionsDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, gatewayName string, connectionName string) (result network.VpnConnection, err error)
	ListByVpnGateway(ctx context.Context, resourceGroupName string, gatewayName string) (result network.ListVpnConnectionsResultPage, err error)
	ListByVpnGatewayComplete(ctx context.Context, resourceGroupName string, gatewayName string) (result network.ListVpnConnectionsResultIterator, err error)
	StartPacketCapture(ctx context.Context, resourceGroupName string, gatewayName string, vpnConnectionName string, parameters *network.VpnConnectionPacketCaptureStartParameters) (result network.VpnConnectionsStartPacketCaptureFuture, err error)
	StopPacketCapture(ctx context.Context, resourceGroupName string, gatewayName string, vpnConnectionName string, parameters *network.VpnConnectionPacketCaptureStopParameters) (result network.VpnConnectionsStopPacketCaptureFuture, err error)
}

var _ VpnConnectionsClientAPI = (*network.VpnConnectionsClient)(nil)

// VpnSiteLinkConnectionsClientAPI contains the set of methods on the VpnSiteLinkConnectionsClient type.
type VpnSiteLinkConnectionsClientAPI interface {
	Get(ctx context.Context, resourceGroupName string, gatewayName string, connectionName string, linkConnectionName string) (result network.VpnSiteLinkConnection, err error)
}

var _ VpnSiteLinkConnectionsClientAPI = (*network.VpnSiteLinkConnectionsClient)(nil)

// NatRulesClientAPI contains the set of methods on the NatRulesClient type.
type NatRulesClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, gatewayName string, natRuleName string, natRuleParameters network.VpnGatewayNatRule) (result network.NatRulesCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, gatewayName string, natRuleName string) (result network.NatRulesDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, gatewayName string, natRuleName string) (result network.VpnGatewayNatRule, err error)
	ListByVpnGateway(ctx context.Context, resourceGroupName string, gatewayName string) (result network.ListVpnGatewayNatRulesResultPage, err error)
	ListByVpnGatewayComplete(ctx context.Context, resourceGroupName string, gatewayName string) (result network.ListVpnGatewayNatRulesResultIterator, err error)
}

var _ NatRulesClientAPI = (*network.NatRulesClient)(nil)

// P2sVpnGatewaysClientAPI contains the set of methods on the P2sVpnGatewaysClient type.
type P2sVpnGatewaysClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, gatewayName string, p2SVpnGatewayParameters network.P2SVpnGateway) (result network.P2sVpnGatewaysCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, gatewayName string) (result network.P2sVpnGatewaysDeleteFuture, err error)
	DisconnectP2sVpnConnections(ctx context.Context, resourceGroupName string, p2sVpnGatewayName string, request network.P2SVpnConnectionRequest) (result network.P2sVpnGatewaysDisconnectP2sVpnConnectionsFuture, err error)
	GenerateVpnProfile(ctx context.Context, resourceGroupName string, gatewayName string, parameters network.P2SVpnProfileParameters) (result network.P2sVpnGatewaysGenerateVpnProfileFuture, err error)
	Get(ctx context.Context, resourceGroupName string, gatewayName string) (result network.P2SVpnGateway, err error)
	GetP2sVpnConnectionHealth(ctx context.Context, resourceGroupName string, gatewayName string) (result network.P2sVpnGatewaysGetP2sVpnConnectionHealthFuture, err error)
	GetP2sVpnConnectionHealthDetailed(ctx context.Context, resourceGroupName string, gatewayName string, request network.P2SVpnConnectionHealthRequest) (result network.P2sVpnGatewaysGetP2sVpnConnectionHealthDetailedFuture, err error)
	List(ctx context.Context) (result network.ListP2SVpnGatewaysResultPage, err error)
	ListComplete(ctx context.Context) (result network.ListP2SVpnGatewaysResultIterator, err error)
	ListByResourceGroup(ctx context.Context, resourceGroupName string) (result network.ListP2SVpnGatewaysResultPage, err error)
	ListByResourceGroupComplete(ctx context.Context, resourceGroupName string) (result network.ListP2SVpnGatewaysResultIterator, err error)
	Reset(ctx context.Context, resourceGroupName string, gatewayName string) (result network.P2SVpnGatewaysResetFuture, err error)
	UpdateTags(ctx context.Context, resourceGroupName string, gatewayName string, p2SVpnGatewayParameters network.TagsObject) (result network.P2sVpnGatewaysUpdateTagsFuture, err error)
}

var _ P2sVpnGatewaysClientAPI = (*network.P2sVpnGatewaysClient)(nil)

// VpnServerConfigurationsAssociatedWithVirtualWanClientAPI contains the set of methods on the VpnServerConfigurationsAssociatedWithVirtualWanClient type.
type VpnServerConfigurationsAssociatedWithVirtualWanClientAPI interface {
	List(ctx context.Context, resourceGroupName string, virtualWANName string) (result network.VpnServerConfigurationsAssociatedWithVirtualWanListFuture, err error)
}

var _ VpnServerConfigurationsAssociatedWithVirtualWanClientAPI = (*network.VpnServerConfigurationsAssociatedWithVirtualWanClient)(nil)

// VirtualHubRouteTableV2sClientAPI contains the set of methods on the VirtualHubRouteTableV2sClient type.
type VirtualHubRouteTableV2sClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, virtualHubName string, routeTableName string, virtualHubRouteTableV2Parameters network.VirtualHubRouteTableV2) (result network.VirtualHubRouteTableV2sCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, virtualHubName string, routeTableName string) (result network.VirtualHubRouteTableV2sDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, virtualHubName string, routeTableName string) (result network.VirtualHubRouteTableV2, err error)
	List(ctx context.Context, resourceGroupName string, virtualHubName string) (result network.ListVirtualHubRouteTableV2sResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string, virtualHubName string) (result network.ListVirtualHubRouteTableV2sResultIterator, err error)
}

var _ VirtualHubRouteTableV2sClientAPI = (*network.VirtualHubRouteTableV2sClient)(nil)

// ExpressRouteGatewaysClientAPI contains the set of methods on the ExpressRouteGatewaysClient type.
type ExpressRouteGatewaysClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, expressRouteGatewayName string, putExpressRouteGatewayParameters network.ExpressRouteGateway) (result network.ExpressRouteGatewaysCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, expressRouteGatewayName string) (result network.ExpressRouteGatewaysDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, expressRouteGatewayName string) (result network.ExpressRouteGateway, err error)
	ListByResourceGroup(ctx context.Context, resourceGroupName string) (result network.ExpressRouteGatewayList, err error)
	ListBySubscription(ctx context.Context) (result network.ExpressRouteGatewayList, err error)
	UpdateTags(ctx context.Context, resourceGroupName string, expressRouteGatewayName string, expressRouteGatewayParameters network.TagsObject) (result network.ExpressRouteGatewaysUpdateTagsFuture, err error)
}

var _ ExpressRouteGatewaysClientAPI = (*network.ExpressRouteGatewaysClient)(nil)

// ExpressRouteConnectionsClientAPI contains the set of methods on the ExpressRouteConnectionsClient type.
type ExpressRouteConnectionsClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, expressRouteGatewayName string, connectionName string, putExpressRouteConnectionParameters network.ExpressRouteConnection) (result network.ExpressRouteConnectionsCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, expressRouteGatewayName string, connectionName string) (result network.ExpressRouteConnectionsDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, expressRouteGatewayName string, connectionName string) (result network.ExpressRouteConnection, err error)
	List(ctx context.Context, resourceGroupName string, expressRouteGatewayName string) (result network.ExpressRouteConnectionList, err error)
}

var _ ExpressRouteConnectionsClientAPI = (*network.ExpressRouteConnectionsClient)(nil)

// VirtualHubBgpConnectionClientAPI contains the set of methods on the VirtualHubBgpConnectionClient type.
type VirtualHubBgpConnectionClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, virtualHubName string, connectionName string, parameters network.BgpConnection) (result network.VirtualHubBgpConnectionCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, virtualHubName string, connectionName string) (result network.VirtualHubBgpConnectionDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, virtualHubName string, connectionName string) (result network.BgpConnection, err error)
}

var _ VirtualHubBgpConnectionClientAPI = (*network.VirtualHubBgpConnectionClient)(nil)

// VirtualHubBgpConnectionsClientAPI contains the set of methods on the VirtualHubBgpConnectionsClient type.
type VirtualHubBgpConnectionsClientAPI interface {
	List(ctx context.Context, resourceGroupName string, virtualHubName string) (result network.ListVirtualHubBgpConnectionResultsPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string, virtualHubName string) (result network.ListVirtualHubBgpConnectionResultsIterator, err error)
	ListAdvertisedRoutes(ctx context.Context, resourceGroupName string, hubName string, connectionName string) (result network.VirtualHubBgpConnectionsListAdvertisedRoutesFuture, err error)
	ListLearnedRoutes(ctx context.Context, resourceGroupName string, hubName string, connectionName string) (result network.VirtualHubBgpConnectionsListLearnedRoutesFuture, err error)
}

var _ VirtualHubBgpConnectionsClientAPI = (*network.VirtualHubBgpConnectionsClient)(nil)

// VirtualHubIPConfigurationClientAPI contains the set of methods on the VirtualHubIPConfigurationClient type.
type VirtualHubIPConfigurationClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, virtualHubName string, IPConfigName string, parameters network.HubIPConfiguration) (result network.VirtualHubIPConfigurationCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, virtualHubName string, IPConfigName string) (result network.VirtualHubIPConfigurationDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, virtualHubName string, IPConfigName string) (result network.HubIPConfiguration, err error)
	List(ctx context.Context, resourceGroupName string, virtualHubName string) (result network.ListVirtualHubIPConfigurationResultsPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string, virtualHubName string) (result network.ListVirtualHubIPConfigurationResultsIterator, err error)
}

var _ VirtualHubIPConfigurationClientAPI = (*network.VirtualHubIPConfigurationClient)(nil)

// HubRouteTablesClientAPI contains the set of methods on the HubRouteTablesClient type.
type HubRouteTablesClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, virtualHubName string, routeTableName string, routeTableParameters network.HubRouteTable) (result network.HubRouteTablesCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, virtualHubName string, routeTableName string) (result network.HubRouteTablesDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, virtualHubName string, routeTableName string) (result network.HubRouteTable, err error)
	List(ctx context.Context, resourceGroupName string, virtualHubName string) (result network.ListHubRouteTablesResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string, virtualHubName string) (result network.ListHubRouteTablesResultIterator, err error)
}

var _ HubRouteTablesClientAPI = (*network.HubRouteTablesClient)(nil)

// WebApplicationFirewallPoliciesClientAPI contains the set of methods on the WebApplicationFirewallPoliciesClient type.
type WebApplicationFirewallPoliciesClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, policyName string, parameters network.WebApplicationFirewallPolicy) (result network.WebApplicationFirewallPolicy, err error)
	Delete(ctx context.Context, resourceGroupName string, policyName string) (result network.WebApplicationFirewallPoliciesDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, policyName string) (result network.WebApplicationFirewallPolicy, err error)
	List(ctx context.Context, resourceGroupName string) (result network.WebApplicationFirewallPolicyListResultPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string) (result network.WebApplicationFirewallPolicyListResultIterator, err error)
	ListAll(ctx context.Context) (result network.WebApplicationFirewallPolicyListResultPage, err error)
	ListAllComplete(ctx context.Context) (result network.WebApplicationFirewallPolicyListResultIterator, err error)
}

var _ WebApplicationFirewallPoliciesClientAPI = (*network.WebApplicationFirewallPoliciesClient)(nil)
