All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.azure.resourcemanager.network.fluent.NetworkManagementClient Maven / Gradle / Ivy

Go to download

This package contains Microsoft Azure Network Management SDK. For documentation on how to use this package, please see https://aka.ms/azsdk/java/mgmt

There is a newer version: 2.44.0
Show newest version
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
// Code generated by Microsoft (R) AutoRest Code Generator.

package com.azure.resourcemanager.network.fluent;

import com.azure.core.annotation.ReturnType;
import com.azure.core.annotation.ServiceMethod;
import com.azure.core.http.HttpPipeline;
import com.azure.core.http.rest.PagedFlux;
import com.azure.core.http.rest.PagedIterable;
import com.azure.core.http.rest.Response;
import com.azure.core.management.polling.PollResult;
import com.azure.core.util.Context;
import com.azure.core.util.polling.PollerFlux;
import com.azure.core.util.polling.SyncPoller;
import com.azure.resourcemanager.network.fluent.models.ActiveConnectivityConfigurationsListResultInner;
import com.azure.resourcemanager.network.fluent.models.ActiveSecurityAdminRulesListResultInner;
import com.azure.resourcemanager.network.fluent.models.BastionActiveSessionInner;
import com.azure.resourcemanager.network.fluent.models.BastionSessionStateInner;
import com.azure.resourcemanager.network.fluent.models.BastionShareableLinkInner;
import com.azure.resourcemanager.network.fluent.models.DnsNameAvailabilityResultInner;
import com.azure.resourcemanager.network.fluent.models.ExpressRouteProviderPortInner;
import com.azure.resourcemanager.network.fluent.models.NetworkManagerEffectiveConnectivityConfigurationListResultInner;
import com.azure.resourcemanager.network.fluent.models.NetworkManagerEffectiveSecurityAdminRulesListResultInner;
import com.azure.resourcemanager.network.fluent.models.VirtualWanSecurityProvidersInner;
import com.azure.resourcemanager.network.fluent.models.VpnProfileResponseInner;
import com.azure.resourcemanager.network.models.ActiveConfigurationParameter;
import com.azure.resourcemanager.network.models.BastionShareableLinkListRequest;
import com.azure.resourcemanager.network.models.BastionShareableLinkTokenListRequest;
import com.azure.resourcemanager.network.models.QueryRequestOptions;
import com.azure.resourcemanager.network.models.SessionIds;
import com.azure.resourcemanager.network.models.VirtualWanVpnProfileParameters;
import java.nio.ByteBuffer;
import java.time.Duration;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;

/**
 * The interface for NetworkManagementClient class.
 */
public interface NetworkManagementClient {
    /**
     * Gets The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID
     * forms part of the URI for every service call.
     * 
     * @return the subscriptionId value.
     */
    String getSubscriptionId();

    /**
     * Gets server parameter.
     * 
     * @return the endpoint value.
     */
    String getEndpoint();

    /**
     * Gets The HTTP pipeline to send requests through.
     * 
     * @return the httpPipeline value.
     */
    HttpPipeline getHttpPipeline();

    /**
     * Gets The default poll interval for long-running operation.
     * 
     * @return the defaultPollInterval value.
     */
    Duration getDefaultPollInterval();

    /**
     * Gets the ApplicationGatewaysClient object to access its operations.
     * 
     * @return the ApplicationGatewaysClient object.
     */
    ApplicationGatewaysClient getApplicationGateways();

    /**
     * Gets the ApplicationGatewayPrivateLinkResourcesClient object to access its operations.
     * 
     * @return the ApplicationGatewayPrivateLinkResourcesClient object.
     */
    ApplicationGatewayPrivateLinkResourcesClient getApplicationGatewayPrivateLinkResources();

    /**
     * Gets the ApplicationGatewayPrivateEndpointConnectionsClient object to access its operations.
     * 
     * @return the ApplicationGatewayPrivateEndpointConnectionsClient object.
     */
    ApplicationGatewayPrivateEndpointConnectionsClient getApplicationGatewayPrivateEndpointConnections();

    /**
     * Gets the ApplicationGatewayWafDynamicManifestsDefaultsClient object to access its operations.
     * 
     * @return the ApplicationGatewayWafDynamicManifestsDefaultsClient object.
     */
    ApplicationGatewayWafDynamicManifestsDefaultsClient getApplicationGatewayWafDynamicManifestsDefaults();

    /**
     * Gets the ApplicationGatewayWafDynamicManifestsClient object to access its operations.
     * 
     * @return the ApplicationGatewayWafDynamicManifestsClient object.
     */
    ApplicationGatewayWafDynamicManifestsClient getApplicationGatewayWafDynamicManifests();

    /**
     * Gets the ApplicationSecurityGroupsClient object to access its operations.
     * 
     * @return the ApplicationSecurityGroupsClient object.
     */
    ApplicationSecurityGroupsClient getApplicationSecurityGroups();

    /**
     * Gets the AvailableDelegationsClient object to access its operations.
     * 
     * @return the AvailableDelegationsClient object.
     */
    AvailableDelegationsClient getAvailableDelegations();

    /**
     * Gets the AvailableResourceGroupDelegationsClient object to access its operations.
     * 
     * @return the AvailableResourceGroupDelegationsClient object.
     */
    AvailableResourceGroupDelegationsClient getAvailableResourceGroupDelegations();

    /**
     * Gets the AvailableServiceAliasesClient object to access its operations.
     * 
     * @return the AvailableServiceAliasesClient object.
     */
    AvailableServiceAliasesClient getAvailableServiceAliases();

    /**
     * Gets the AzureFirewallsClient object to access its operations.
     * 
     * @return the AzureFirewallsClient object.
     */
    AzureFirewallsClient getAzureFirewalls();

    /**
     * Gets the AzureFirewallFqdnTagsClient object to access its operations.
     * 
     * @return the AzureFirewallFqdnTagsClient object.
     */
    AzureFirewallFqdnTagsClient getAzureFirewallFqdnTags();

    /**
     * Gets the WebCategoriesClient object to access its operations.
     * 
     * @return the WebCategoriesClient object.
     */
    WebCategoriesClient getWebCategories();

    /**
     * Gets the BastionHostsClient object to access its operations.
     * 
     * @return the BastionHostsClient object.
     */
    BastionHostsClient getBastionHosts();

    /**
     * Gets the NetworkInterfacesClient object to access its operations.
     * 
     * @return the NetworkInterfacesClient object.
     */
    NetworkInterfacesClient getNetworkInterfaces();

    /**
     * Gets the PublicIpAddressesClient object to access its operations.
     * 
     * @return the PublicIpAddressesClient object.
     */
    PublicIpAddressesClient getPublicIpAddresses();

    /**
     * Gets the VipSwapsClient object to access its operations.
     * 
     * @return the VipSwapsClient object.
     */
    VipSwapsClient getVipSwaps();

    /**
     * Gets the CustomIpPrefixesClient object to access its operations.
     * 
     * @return the CustomIpPrefixesClient object.
     */
    CustomIpPrefixesClient getCustomIpPrefixes();

    /**
     * Gets the DdosCustomPoliciesClient object to access its operations.
     * 
     * @return the DdosCustomPoliciesClient object.
     */
    DdosCustomPoliciesClient getDdosCustomPolicies();

    /**
     * Gets the DdosProtectionPlansClient object to access its operations.
     * 
     * @return the DdosProtectionPlansClient object.
     */
    DdosProtectionPlansClient getDdosProtectionPlans();

    /**
     * Gets the DscpConfigurationsClient object to access its operations.
     * 
     * @return the DscpConfigurationsClient object.
     */
    DscpConfigurationsClient getDscpConfigurations();

    /**
     * Gets the AvailableEndpointServicesClient object to access its operations.
     * 
     * @return the AvailableEndpointServicesClient object.
     */
    AvailableEndpointServicesClient getAvailableEndpointServices();

    /**
     * Gets the ExpressRouteCircuitAuthorizationsClient object to access its operations.
     * 
     * @return the ExpressRouteCircuitAuthorizationsClient object.
     */
    ExpressRouteCircuitAuthorizationsClient getExpressRouteCircuitAuthorizations();

    /**
     * Gets the ExpressRouteCircuitPeeringsClient object to access its operations.
     * 
     * @return the ExpressRouteCircuitPeeringsClient object.
     */
    ExpressRouteCircuitPeeringsClient getExpressRouteCircuitPeerings();

    /**
     * Gets the ExpressRouteCircuitConnectionsClient object to access its operations.
     * 
     * @return the ExpressRouteCircuitConnectionsClient object.
     */
    ExpressRouteCircuitConnectionsClient getExpressRouteCircuitConnections();

    /**
     * Gets the PeerExpressRouteCircuitConnectionsClient object to access its operations.
     * 
     * @return the PeerExpressRouteCircuitConnectionsClient object.
     */
    PeerExpressRouteCircuitConnectionsClient getPeerExpressRouteCircuitConnections();

    /**
     * Gets the ExpressRouteCircuitsClient object to access its operations.
     * 
     * @return the ExpressRouteCircuitsClient object.
     */
    ExpressRouteCircuitsClient getExpressRouteCircuits();

    /**
     * Gets the ExpressRouteServiceProvidersClient object to access its operations.
     * 
     * @return the ExpressRouteServiceProvidersClient object.
     */
    ExpressRouteServiceProvidersClient getExpressRouteServiceProviders();

    /**
     * Gets the ExpressRouteCrossConnectionsClient object to access its operations.
     * 
     * @return the ExpressRouteCrossConnectionsClient object.
     */
    ExpressRouteCrossConnectionsClient getExpressRouteCrossConnections();

    /**
     * Gets the ExpressRouteCrossConnectionPeeringsClient object to access its operations.
     * 
     * @return the ExpressRouteCrossConnectionPeeringsClient object.
     */
    ExpressRouteCrossConnectionPeeringsClient getExpressRouteCrossConnectionPeerings();

    /**
     * Gets the ExpressRoutePortsLocationsClient object to access its operations.
     * 
     * @return the ExpressRoutePortsLocationsClient object.
     */
    ExpressRoutePortsLocationsClient getExpressRoutePortsLocations();

    /**
     * Gets the ExpressRoutePortsClient object to access its operations.
     * 
     * @return the ExpressRoutePortsClient object.
     */
    ExpressRoutePortsClient getExpressRoutePorts();

    /**
     * Gets the ExpressRouteLinksClient object to access its operations.
     * 
     * @return the ExpressRouteLinksClient object.
     */
    ExpressRouteLinksClient getExpressRouteLinks();

    /**
     * Gets the ExpressRoutePortAuthorizationsClient object to access its operations.
     * 
     * @return the ExpressRoutePortAuthorizationsClient object.
     */
    ExpressRoutePortAuthorizationsClient getExpressRoutePortAuthorizations();

    /**
     * Gets the ExpressRouteProviderPortsLocationsClient object to access its operations.
     * 
     * @return the ExpressRouteProviderPortsLocationsClient object.
     */
    ExpressRouteProviderPortsLocationsClient getExpressRouteProviderPortsLocations();

    /**
     * Gets the FirewallPoliciesClient object to access its operations.
     * 
     * @return the FirewallPoliciesClient object.
     */
    FirewallPoliciesClient getFirewallPolicies();

    /**
     * Gets the FirewallPolicyRuleCollectionGroupsClient object to access its operations.
     * 
     * @return the FirewallPolicyRuleCollectionGroupsClient object.
     */
    FirewallPolicyRuleCollectionGroupsClient getFirewallPolicyRuleCollectionGroups();

    /**
     * Gets the FirewallPolicyIdpsSignaturesClient object to access its operations.
     * 
     * @return the FirewallPolicyIdpsSignaturesClient object.
     */
    FirewallPolicyIdpsSignaturesClient getFirewallPolicyIdpsSignatures();

    /**
     * Gets the FirewallPolicyIdpsSignaturesOverridesClient object to access its operations.
     * 
     * @return the FirewallPolicyIdpsSignaturesOverridesClient object.
     */
    FirewallPolicyIdpsSignaturesOverridesClient getFirewallPolicyIdpsSignaturesOverrides();

    /**
     * Gets the FirewallPolicyIdpsSignaturesFilterValuesClient object to access its operations.
     * 
     * @return the FirewallPolicyIdpsSignaturesFilterValuesClient object.
     */
    FirewallPolicyIdpsSignaturesFilterValuesClient getFirewallPolicyIdpsSignaturesFilterValues();

    /**
     * Gets the FirewallPolicyDraftsClient object to access its operations.
     * 
     * @return the FirewallPolicyDraftsClient object.
     */
    FirewallPolicyDraftsClient getFirewallPolicyDrafts();

    /**
     * Gets the FirewallPolicyDeploymentsClient object to access its operations.
     * 
     * @return the FirewallPolicyDeploymentsClient object.
     */
    FirewallPolicyDeploymentsClient getFirewallPolicyDeployments();

    /**
     * Gets the FirewallPolicyRuleCollectionGroupDraftsClient object to access its operations.
     * 
     * @return the FirewallPolicyRuleCollectionGroupDraftsClient object.
     */
    FirewallPolicyRuleCollectionGroupDraftsClient getFirewallPolicyRuleCollectionGroupDrafts();

    /**
     * Gets the IpAllocationsClient object to access its operations.
     * 
     * @return the IpAllocationsClient object.
     */
    IpAllocationsClient getIpAllocations();

    /**
     * Gets the IpGroupsClient object to access its operations.
     * 
     * @return the IpGroupsClient object.
     */
    IpGroupsClient getIpGroups();

    /**
     * Gets the LoadBalancersClient object to access its operations.
     * 
     * @return the LoadBalancersClient object.
     */
    LoadBalancersClient getLoadBalancers();

    /**
     * Gets the LoadBalancerBackendAddressPoolsClient object to access its operations.
     * 
     * @return the LoadBalancerBackendAddressPoolsClient object.
     */
    LoadBalancerBackendAddressPoolsClient getLoadBalancerBackendAddressPools();

    /**
     * Gets the LoadBalancerFrontendIpConfigurationsClient object to access its operations.
     * 
     * @return the LoadBalancerFrontendIpConfigurationsClient object.
     */
    LoadBalancerFrontendIpConfigurationsClient getLoadBalancerFrontendIpConfigurations();

    /**
     * Gets the InboundNatRulesClient object to access its operations.
     * 
     * @return the InboundNatRulesClient object.
     */
    InboundNatRulesClient getInboundNatRules();

    /**
     * Gets the LoadBalancerLoadBalancingRulesClient object to access its operations.
     * 
     * @return the LoadBalancerLoadBalancingRulesClient object.
     */
    LoadBalancerLoadBalancingRulesClient getLoadBalancerLoadBalancingRules();

    /**
     * Gets the LoadBalancerOutboundRulesClient object to access its operations.
     * 
     * @return the LoadBalancerOutboundRulesClient object.
     */
    LoadBalancerOutboundRulesClient getLoadBalancerOutboundRules();

    /**
     * Gets the LoadBalancerNetworkInterfacesClient object to access its operations.
     * 
     * @return the LoadBalancerNetworkInterfacesClient object.
     */
    LoadBalancerNetworkInterfacesClient getLoadBalancerNetworkInterfaces();

    /**
     * Gets the LoadBalancerProbesClient object to access its operations.
     * 
     * @return the LoadBalancerProbesClient object.
     */
    LoadBalancerProbesClient getLoadBalancerProbes();

    /**
     * Gets the NatGatewaysClient object to access its operations.
     * 
     * @return the NatGatewaysClient object.
     */
    NatGatewaysClient getNatGateways();

    /**
     * Gets the NetworkInterfaceIpConfigurationsClient object to access its operations.
     * 
     * @return the NetworkInterfaceIpConfigurationsClient object.
     */
    NetworkInterfaceIpConfigurationsClient getNetworkInterfaceIpConfigurations();

    /**
     * Gets the NetworkInterfaceLoadBalancersClient object to access its operations.
     * 
     * @return the NetworkInterfaceLoadBalancersClient object.
     */
    NetworkInterfaceLoadBalancersClient getNetworkInterfaceLoadBalancers();

    /**
     * Gets the NetworkInterfaceTapConfigurationsClient object to access its operations.
     * 
     * @return the NetworkInterfaceTapConfigurationsClient object.
     */
    NetworkInterfaceTapConfigurationsClient getNetworkInterfaceTapConfigurations();

    /**
     * Gets the NetworkManagersClient object to access its operations.
     * 
     * @return the NetworkManagersClient object.
     */
    NetworkManagersClient getNetworkManagers();

    /**
     * Gets the NetworkManagerCommitsClient object to access its operations.
     * 
     * @return the NetworkManagerCommitsClient object.
     */
    NetworkManagerCommitsClient getNetworkManagerCommits();

    /**
     * Gets the NetworkManagerDeploymentStatusOperationsClient object to access its operations.
     * 
     * @return the NetworkManagerDeploymentStatusOperationsClient object.
     */
    NetworkManagerDeploymentStatusOperationsClient getNetworkManagerDeploymentStatusOperations();

    /**
     * Gets the SubscriptionNetworkManagerConnectionsClient object to access its operations.
     * 
     * @return the SubscriptionNetworkManagerConnectionsClient object.
     */
    SubscriptionNetworkManagerConnectionsClient getSubscriptionNetworkManagerConnections();

    /**
     * Gets the ManagementGroupNetworkManagerConnectionsClient object to access its operations.
     * 
     * @return the ManagementGroupNetworkManagerConnectionsClient object.
     */
    ManagementGroupNetworkManagerConnectionsClient getManagementGroupNetworkManagerConnections();

    /**
     * Gets the ConnectivityConfigurationsClient object to access its operations.
     * 
     * @return the ConnectivityConfigurationsClient object.
     */
    ConnectivityConfigurationsClient getConnectivityConfigurations();

    /**
     * Gets the NetworkGroupsClient object to access its operations.
     * 
     * @return the NetworkGroupsClient object.
     */
    NetworkGroupsClient getNetworkGroups();

    /**
     * Gets the StaticMembersClient object to access its operations.
     * 
     * @return the StaticMembersClient object.
     */
    StaticMembersClient getStaticMembers();

    /**
     * Gets the ScopeConnectionsClient object to access its operations.
     * 
     * @return the ScopeConnectionsClient object.
     */
    ScopeConnectionsClient getScopeConnections();

    /**
     * Gets the SecurityAdminConfigurationsClient object to access its operations.
     * 
     * @return the SecurityAdminConfigurationsClient object.
     */
    SecurityAdminConfigurationsClient getSecurityAdminConfigurations();

    /**
     * Gets the AdminRuleCollectionsClient object to access its operations.
     * 
     * @return the AdminRuleCollectionsClient object.
     */
    AdminRuleCollectionsClient getAdminRuleCollections();

    /**
     * Gets the AdminRulesClient object to access its operations.
     * 
     * @return the AdminRulesClient object.
     */
    AdminRulesClient getAdminRules();

    /**
     * Gets the NetworkProfilesClient object to access its operations.
     * 
     * @return the NetworkProfilesClient object.
     */
    NetworkProfilesClient getNetworkProfiles();

    /**
     * Gets the NetworkSecurityGroupsClient object to access its operations.
     * 
     * @return the NetworkSecurityGroupsClient object.
     */
    NetworkSecurityGroupsClient getNetworkSecurityGroups();

    /**
     * Gets the SecurityRulesClient object to access its operations.
     * 
     * @return the SecurityRulesClient object.
     */
    SecurityRulesClient getSecurityRules();

    /**
     * Gets the DefaultSecurityRulesClient object to access its operations.
     * 
     * @return the DefaultSecurityRulesClient object.
     */
    DefaultSecurityRulesClient getDefaultSecurityRules();

    /**
     * Gets the NetworkVirtualAppliancesClient object to access its operations.
     * 
     * @return the NetworkVirtualAppliancesClient object.
     */
    NetworkVirtualAppliancesClient getNetworkVirtualAppliances();

    /**
     * Gets the VirtualApplianceSitesClient object to access its operations.
     * 
     * @return the VirtualApplianceSitesClient object.
     */
    VirtualApplianceSitesClient getVirtualApplianceSites();

    /**
     * Gets the VirtualApplianceSkusClient object to access its operations.
     * 
     * @return the VirtualApplianceSkusClient object.
     */
    VirtualApplianceSkusClient getVirtualApplianceSkus();

    /**
     * Gets the InboundSecurityRuleOperationsClient object to access its operations.
     * 
     * @return the InboundSecurityRuleOperationsClient object.
     */
    InboundSecurityRuleOperationsClient getInboundSecurityRuleOperations();

    /**
     * Gets the NetworkWatchersClient object to access its operations.
     * 
     * @return the NetworkWatchersClient object.
     */
    NetworkWatchersClient getNetworkWatchers();

    /**
     * Gets the PacketCapturesClient object to access its operations.
     * 
     * @return the PacketCapturesClient object.
     */
    PacketCapturesClient getPacketCaptures();

    /**
     * Gets the ConnectionMonitorsClient object to access its operations.
     * 
     * @return the ConnectionMonitorsClient object.
     */
    ConnectionMonitorsClient getConnectionMonitors();

    /**
     * Gets the FlowLogsClient object to access its operations.
     * 
     * @return the FlowLogsClient object.
     */
    FlowLogsClient getFlowLogs();

    /**
     * Gets the OperationsClient object to access its operations.
     * 
     * @return the OperationsClient object.
     */
    OperationsClient getOperations();

    /**
     * Gets the PrivateEndpointsClient object to access its operations.
     * 
     * @return the PrivateEndpointsClient object.
     */
    PrivateEndpointsClient getPrivateEndpoints();

    /**
     * Gets the AvailablePrivateEndpointTypesClient object to access its operations.
     * 
     * @return the AvailablePrivateEndpointTypesClient object.
     */
    AvailablePrivateEndpointTypesClient getAvailablePrivateEndpointTypes();

    /**
     * Gets the PrivateDnsZoneGroupsClient object to access its operations.
     * 
     * @return the PrivateDnsZoneGroupsClient object.
     */
    PrivateDnsZoneGroupsClient getPrivateDnsZoneGroups();

    /**
     * Gets the PrivateLinkServicesClient object to access its operations.
     * 
     * @return the PrivateLinkServicesClient object.
     */
    PrivateLinkServicesClient getPrivateLinkServices();

    /**
     * Gets the PublicIpPrefixesClient object to access its operations.
     * 
     * @return the PublicIpPrefixesClient object.
     */
    PublicIpPrefixesClient getPublicIpPrefixes();

    /**
     * Gets the RouteFiltersClient object to access its operations.
     * 
     * @return the RouteFiltersClient object.
     */
    RouteFiltersClient getRouteFilters();

    /**
     * Gets the RouteFilterRulesClient object to access its operations.
     * 
     * @return the RouteFilterRulesClient object.
     */
    RouteFilterRulesClient getRouteFilterRules();

    /**
     * Gets the RouteTablesClient object to access its operations.
     * 
     * @return the RouteTablesClient object.
     */
    RouteTablesClient getRouteTables();

    /**
     * Gets the RoutesClient object to access its operations.
     * 
     * @return the RoutesClient object.
     */
    RoutesClient getRoutes();

    /**
     * Gets the SecurityPartnerProvidersClient object to access its operations.
     * 
     * @return the SecurityPartnerProvidersClient object.
     */
    SecurityPartnerProvidersClient getSecurityPartnerProviders();

    /**
     * Gets the BgpServiceCommunitiesClient object to access its operations.
     * 
     * @return the BgpServiceCommunitiesClient object.
     */
    BgpServiceCommunitiesClient getBgpServiceCommunities();

    /**
     * Gets the ServiceEndpointPoliciesClient object to access its operations.
     * 
     * @return the ServiceEndpointPoliciesClient object.
     */
    ServiceEndpointPoliciesClient getServiceEndpointPolicies();

    /**
     * Gets the ServiceEndpointPolicyDefinitionsClient object to access its operations.
     * 
     * @return the ServiceEndpointPolicyDefinitionsClient object.
     */
    ServiceEndpointPolicyDefinitionsClient getServiceEndpointPolicyDefinitions();

    /**
     * Gets the ServiceTagsClient object to access its operations.
     * 
     * @return the ServiceTagsClient object.
     */
    ServiceTagsClient getServiceTags();

    /**
     * Gets the ServiceTagInformationsClient object to access its operations.
     * 
     * @return the ServiceTagInformationsClient object.
     */
    ServiceTagInformationsClient getServiceTagInformations();

    /**
     * Gets the UsagesClient object to access its operations.
     * 
     * @return the UsagesClient object.
     */
    UsagesClient getUsages();

    /**
     * Gets the VirtualNetworksClient object to access its operations.
     * 
     * @return the VirtualNetworksClient object.
     */
    VirtualNetworksClient getVirtualNetworks();

    /**
     * Gets the SubnetsClient object to access its operations.
     * 
     * @return the SubnetsClient object.
     */
    SubnetsClient getSubnets();

    /**
     * Gets the ResourceNavigationLinksClient object to access its operations.
     * 
     * @return the ResourceNavigationLinksClient object.
     */
    ResourceNavigationLinksClient getResourceNavigationLinks();

    /**
     * Gets the ServiceAssociationLinksClient object to access its operations.
     * 
     * @return the ServiceAssociationLinksClient object.
     */
    ServiceAssociationLinksClient getServiceAssociationLinks();

    /**
     * Gets the VirtualNetworkPeeringsClient object to access its operations.
     * 
     * @return the VirtualNetworkPeeringsClient object.
     */
    VirtualNetworkPeeringsClient getVirtualNetworkPeerings();

    /**
     * Gets the VirtualNetworkGatewaysClient object to access its operations.
     * 
     * @return the VirtualNetworkGatewaysClient object.
     */
    VirtualNetworkGatewaysClient getVirtualNetworkGateways();

    /**
     * Gets the VirtualNetworkGatewayConnectionsClient object to access its operations.
     * 
     * @return the VirtualNetworkGatewayConnectionsClient object.
     */
    VirtualNetworkGatewayConnectionsClient getVirtualNetworkGatewayConnections();

    /**
     * Gets the LocalNetworkGatewaysClient object to access its operations.
     * 
     * @return the LocalNetworkGatewaysClient object.
     */
    LocalNetworkGatewaysClient getLocalNetworkGateways();

    /**
     * Gets the VirtualNetworkGatewayNatRulesClient object to access its operations.
     * 
     * @return the VirtualNetworkGatewayNatRulesClient object.
     */
    VirtualNetworkGatewayNatRulesClient getVirtualNetworkGatewayNatRules();

    /**
     * Gets the VirtualNetworkTapsClient object to access its operations.
     * 
     * @return the VirtualNetworkTapsClient object.
     */
    VirtualNetworkTapsClient getVirtualNetworkTaps();

    /**
     * Gets the VirtualRoutersClient object to access its operations.
     * 
     * @return the VirtualRoutersClient object.
     */
    VirtualRoutersClient getVirtualRouters();

    /**
     * Gets the VirtualRouterPeeringsClient object to access its operations.
     * 
     * @return the VirtualRouterPeeringsClient object.
     */
    VirtualRouterPeeringsClient getVirtualRouterPeerings();

    /**
     * Gets the VirtualWansClient object to access its operations.
     * 
     * @return the VirtualWansClient object.
     */
    VirtualWansClient getVirtualWans();

    /**
     * Gets the VpnSitesClient object to access its operations.
     * 
     * @return the VpnSitesClient object.
     */
    VpnSitesClient getVpnSites();

    /**
     * Gets the VpnSiteLinksClient object to access its operations.
     * 
     * @return the VpnSiteLinksClient object.
     */
    VpnSiteLinksClient getVpnSiteLinks();

    /**
     * Gets the VpnSitesConfigurationsClient object to access its operations.
     * 
     * @return the VpnSitesConfigurationsClient object.
     */
    VpnSitesConfigurationsClient getVpnSitesConfigurations();

    /**
     * Gets the VpnServerConfigurationsClient object to access its operations.
     * 
     * @return the VpnServerConfigurationsClient object.
     */
    VpnServerConfigurationsClient getVpnServerConfigurations();

    /**
     * Gets the ConfigurationPolicyGroupsClient object to access its operations.
     * 
     * @return the ConfigurationPolicyGroupsClient object.
     */
    ConfigurationPolicyGroupsClient getConfigurationPolicyGroups();

    /**
     * Gets the VirtualHubsClient object to access its operations.
     * 
     * @return the VirtualHubsClient object.
     */
    VirtualHubsClient getVirtualHubs();

    /**
     * Gets the RouteMapsClient object to access its operations.
     * 
     * @return the RouteMapsClient object.
     */
    RouteMapsClient getRouteMaps();

    /**
     * Gets the HubVirtualNetworkConnectionsClient object to access its operations.
     * 
     * @return the HubVirtualNetworkConnectionsClient object.
     */
    HubVirtualNetworkConnectionsClient getHubVirtualNetworkConnections();

    /**
     * Gets the VpnGatewaysClient object to access its operations.
     * 
     * @return the VpnGatewaysClient object.
     */
    VpnGatewaysClient getVpnGateways();

    /**
     * Gets the VpnLinkConnectionsClient object to access its operations.
     * 
     * @return the VpnLinkConnectionsClient object.
     */
    VpnLinkConnectionsClient getVpnLinkConnections();

    /**
     * Gets the VpnConnectionsClient object to access its operations.
     * 
     * @return the VpnConnectionsClient object.
     */
    VpnConnectionsClient getVpnConnections();

    /**
     * Gets the VpnSiteLinkConnectionsClient object to access its operations.
     * 
     * @return the VpnSiteLinkConnectionsClient object.
     */
    VpnSiteLinkConnectionsClient getVpnSiteLinkConnections();

    /**
     * Gets the NatRulesClient object to access its operations.
     * 
     * @return the NatRulesClient object.
     */
    NatRulesClient getNatRules();

    /**
     * Gets the P2SVpnGatewaysClient object to access its operations.
     * 
     * @return the P2SVpnGatewaysClient object.
     */
    P2SVpnGatewaysClient getP2SVpnGateways();

    /**
     * Gets the VpnServerConfigurationsAssociatedWithVirtualWansClient object to access its operations.
     * 
     * @return the VpnServerConfigurationsAssociatedWithVirtualWansClient object.
     */
    VpnServerConfigurationsAssociatedWithVirtualWansClient getVpnServerConfigurationsAssociatedWithVirtualWans();

    /**
     * Gets the VirtualHubRouteTableV2SClient object to access its operations.
     * 
     * @return the VirtualHubRouteTableV2SClient object.
     */
    VirtualHubRouteTableV2SClient getVirtualHubRouteTableV2S();

    /**
     * Gets the ExpressRouteGatewaysClient object to access its operations.
     * 
     * @return the ExpressRouteGatewaysClient object.
     */
    ExpressRouteGatewaysClient getExpressRouteGateways();

    /**
     * Gets the ExpressRouteConnectionsClient object to access its operations.
     * 
     * @return the ExpressRouteConnectionsClient object.
     */
    ExpressRouteConnectionsClient getExpressRouteConnections();

    /**
     * Gets the NetworkVirtualApplianceConnectionsClient object to access its operations.
     * 
     * @return the NetworkVirtualApplianceConnectionsClient object.
     */
    NetworkVirtualApplianceConnectionsClient getNetworkVirtualApplianceConnections();

    /**
     * Gets the VirtualHubBgpConnectionsClient object to access its operations.
     * 
     * @return the VirtualHubBgpConnectionsClient object.
     */
    VirtualHubBgpConnectionsClient getVirtualHubBgpConnections();

    /**
     * Gets the VirtualHubIpConfigurationsClient object to access its operations.
     * 
     * @return the VirtualHubIpConfigurationsClient object.
     */
    VirtualHubIpConfigurationsClient getVirtualHubIpConfigurations();

    /**
     * Gets the HubRouteTablesClient object to access its operations.
     * 
     * @return the HubRouteTablesClient object.
     */
    HubRouteTablesClient getHubRouteTables();

    /**
     * Gets the RoutingIntentsClient object to access its operations.
     * 
     * @return the RoutingIntentsClient object.
     */
    RoutingIntentsClient getRoutingIntents();

    /**
     * Gets the WebApplicationFirewallPoliciesClient object to access its operations.
     * 
     * @return the WebApplicationFirewallPoliciesClient object.
     */
    WebApplicationFirewallPoliciesClient getWebApplicationFirewallPolicies();

    /**
     * Creates a Bastion Shareable Links for all the VMs specified in the request.
     * 
     * @param resourceGroupName The name of the resource group.
     * @param bastionHostname The name of the Bastion Host.
     * @param bslRequest Post request for Create/Delete/Get Bastion Shareable Link endpoints.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return response for all the Bastion Shareable Link endpoints as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux putBastionShareableLinkAsync(String resourceGroupName, String bastionHostname,
        BastionShareableLinkListRequest bslRequest);

    /**
     * Creates a Bastion Shareable Links for all the VMs specified in the request.
     * 
     * @param resourceGroupName The name of the resource group.
     * @param bastionHostname The name of the Bastion Host.
     * @param bslRequest Post request for Create/Delete/Get Bastion Shareable Link endpoints.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return response for all the Bastion Shareable Link endpoints as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable putBastionShareableLink(String resourceGroupName, String bastionHostname,
        BastionShareableLinkListRequest bslRequest);

    /**
     * Creates a Bastion Shareable Links for all the VMs specified in the request.
     * 
     * @param resourceGroupName The name of the resource group.
     * @param bastionHostname The name of the Bastion Host.
     * @param bslRequest Post request for Create/Delete/Get Bastion Shareable Link endpoints.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return response for all the Bastion Shareable Link endpoints as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable putBastionShareableLink(String resourceGroupName, String bastionHostname,
        BastionShareableLinkListRequest bslRequest, Context context);

    /**
     * Deletes the Bastion Shareable Links for all the VMs specified in the request.
     * 
     * @param resourceGroupName The name of the resource group.
     * @param bastionHostname The name of the Bastion Host.
     * @param bslRequest Post request for Create/Delete/Get Bastion Shareable Link endpoints.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono>> deleteBastionShareableLinkWithResponseAsync(String resourceGroupName,
        String bastionHostname, BastionShareableLinkListRequest bslRequest);

    /**
     * Deletes the Bastion Shareable Links for all the VMs specified in the request.
     * 
     * @param resourceGroupName The name of the resource group.
     * @param bastionHostname The name of the Bastion Host.
     * @param bslRequest Post request for Create/Delete/Get Bastion Shareable Link endpoints.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link PollerFlux} for polling of long-running operation.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    PollerFlux, Void> beginDeleteBastionShareableLinkAsync(String resourceGroupName,
        String bastionHostname, BastionShareableLinkListRequest bslRequest);

    /**
     * Deletes the Bastion Shareable Links for all the VMs specified in the request.
     * 
     * @param resourceGroupName The name of the resource group.
     * @param bastionHostname The name of the Bastion Host.
     * @param bslRequest Post request for Create/Delete/Get Bastion Shareable Link endpoints.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link SyncPoller} for polling of long-running operation.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller, Void> beginDeleteBastionShareableLink(String resourceGroupName, String bastionHostname,
        BastionShareableLinkListRequest bslRequest);

    /**
     * Deletes the Bastion Shareable Links for all the VMs specified in the request.
     * 
     * @param resourceGroupName The name of the resource group.
     * @param bastionHostname The name of the Bastion Host.
     * @param bslRequest Post request for Create/Delete/Get Bastion Shareable Link endpoints.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link SyncPoller} for polling of long-running operation.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller, Void> beginDeleteBastionShareableLink(String resourceGroupName, String bastionHostname,
        BastionShareableLinkListRequest bslRequest, Context context);

    /**
     * Deletes the Bastion Shareable Links for all the VMs specified in the request.
     * 
     * @param resourceGroupName The name of the resource group.
     * @param bastionHostname The name of the Bastion Host.
     * @param bslRequest Post request for Create/Delete/Get Bastion Shareable Link endpoints.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono deleteBastionShareableLinkAsync(String resourceGroupName, String bastionHostname,
        BastionShareableLinkListRequest bslRequest);

    /**
     * Deletes the Bastion Shareable Links for all the VMs specified in the request.
     * 
     * @param resourceGroupName The name of the resource group.
     * @param bastionHostname The name of the Bastion Host.
     * @param bslRequest Post request for Create/Delete/Get Bastion Shareable Link endpoints.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    void deleteBastionShareableLink(String resourceGroupName, String bastionHostname,
        BastionShareableLinkListRequest bslRequest);

    /**
     * Deletes the Bastion Shareable Links for all the VMs specified in the request.
     * 
     * @param resourceGroupName The name of the resource group.
     * @param bastionHostname The name of the Bastion Host.
     * @param bslRequest Post request for Create/Delete/Get Bastion Shareable Link endpoints.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    void deleteBastionShareableLink(String resourceGroupName, String bastionHostname,
        BastionShareableLinkListRequest bslRequest, Context context);

    /**
     * Deletes the Bastion Shareable Links for all the tokens specified in the request.
     * 
     * @param resourceGroupName The name of the resource group.
     * @param bastionHostname The name of the Bastion Host.
     * @param bslTokenRequest Post request for Delete Bastion Shareable Link By Token endpoint.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono>> deleteBastionShareableLinkByTokenWithResponseAsync(String resourceGroupName,
        String bastionHostname, BastionShareableLinkTokenListRequest bslTokenRequest);

    /**
     * Deletes the Bastion Shareable Links for all the tokens specified in the request.
     * 
     * @param resourceGroupName The name of the resource group.
     * @param bastionHostname The name of the Bastion Host.
     * @param bslTokenRequest Post request for Delete Bastion Shareable Link By Token endpoint.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link PollerFlux} for polling of long-running operation.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    PollerFlux, Void> beginDeleteBastionShareableLinkByTokenAsync(String resourceGroupName,
        String bastionHostname, BastionShareableLinkTokenListRequest bslTokenRequest);

    /**
     * Deletes the Bastion Shareable Links for all the tokens specified in the request.
     * 
     * @param resourceGroupName The name of the resource group.
     * @param bastionHostname The name of the Bastion Host.
     * @param bslTokenRequest Post request for Delete Bastion Shareable Link By Token endpoint.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link SyncPoller} for polling of long-running operation.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller, Void> beginDeleteBastionShareableLinkByToken(String resourceGroupName,
        String bastionHostname, BastionShareableLinkTokenListRequest bslTokenRequest);

    /**
     * Deletes the Bastion Shareable Links for all the tokens specified in the request.
     * 
     * @param resourceGroupName The name of the resource group.
     * @param bastionHostname The name of the Bastion Host.
     * @param bslTokenRequest Post request for Delete Bastion Shareable Link By Token endpoint.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link SyncPoller} for polling of long-running operation.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller, Void> beginDeleteBastionShareableLinkByToken(String resourceGroupName,
        String bastionHostname, BastionShareableLinkTokenListRequest bslTokenRequest, Context context);

    /**
     * Deletes the Bastion Shareable Links for all the tokens specified in the request.
     * 
     * @param resourceGroupName The name of the resource group.
     * @param bastionHostname The name of the Bastion Host.
     * @param bslTokenRequest Post request for Delete Bastion Shareable Link By Token endpoint.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono deleteBastionShareableLinkByTokenAsync(String resourceGroupName, String bastionHostname,
        BastionShareableLinkTokenListRequest bslTokenRequest);

    /**
     * Deletes the Bastion Shareable Links for all the tokens specified in the request.
     * 
     * @param resourceGroupName The name of the resource group.
     * @param bastionHostname The name of the Bastion Host.
     * @param bslTokenRequest Post request for Delete Bastion Shareable Link By Token endpoint.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    void deleteBastionShareableLinkByToken(String resourceGroupName, String bastionHostname,
        BastionShareableLinkTokenListRequest bslTokenRequest);

    /**
     * Deletes the Bastion Shareable Links for all the tokens specified in the request.
     * 
     * @param resourceGroupName The name of the resource group.
     * @param bastionHostname The name of the Bastion Host.
     * @param bslTokenRequest Post request for Delete Bastion Shareable Link By Token endpoint.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    void deleteBastionShareableLinkByToken(String resourceGroupName, String bastionHostname,
        BastionShareableLinkTokenListRequest bslTokenRequest, Context context);

    /**
     * Return the Bastion Shareable Links for all the VMs specified in the request.
     * 
     * @param resourceGroupName The name of the resource group.
     * @param bastionHostname The name of the Bastion Host.
     * @param bslRequest Post request for Create/Delete/Get Bastion Shareable Link endpoints.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return response for all the Bastion Shareable Link endpoints as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux getBastionShareableLinkAsync(String resourceGroupName, String bastionHostname,
        BastionShareableLinkListRequest bslRequest);

    /**
     * Return the Bastion Shareable Links for all the VMs specified in the request.
     * 
     * @param resourceGroupName The name of the resource group.
     * @param bastionHostname The name of the Bastion Host.
     * @param bslRequest Post request for Create/Delete/Get Bastion Shareable Link endpoints.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return response for all the Bastion Shareable Link endpoints as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable getBastionShareableLink(String resourceGroupName, String bastionHostname,
        BastionShareableLinkListRequest bslRequest);

    /**
     * Return the Bastion Shareable Links for all the VMs specified in the request.
     * 
     * @param resourceGroupName The name of the resource group.
     * @param bastionHostname The name of the Bastion Host.
     * @param bslRequest Post request for Create/Delete/Get Bastion Shareable Link endpoints.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return response for all the Bastion Shareable Link endpoints as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable getBastionShareableLink(String resourceGroupName, String bastionHostname,
        BastionShareableLinkListRequest bslRequest, Context context);

    /**
     * Returns the list of currently active sessions on the Bastion.
     * 
     * @param resourceGroupName The name of the resource group.
     * @param bastionHostname The name of the Bastion Host.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return response for GetActiveSessions as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux getActiveSessionsAsync(String resourceGroupName, String bastionHostname);

    /**
     * Returns the list of currently active sessions on the Bastion.
     * 
     * @param resourceGroupName The name of the resource group.
     * @param bastionHostname The name of the Bastion Host.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return response for GetActiveSessions as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable getActiveSessions(String resourceGroupName, String bastionHostname);

    /**
     * Returns the list of currently active sessions on the Bastion.
     * 
     * @param resourceGroupName The name of the resource group.
     * @param bastionHostname The name of the Bastion Host.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return response for GetActiveSessions as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable getActiveSessions(String resourceGroupName, String bastionHostname,
        Context context);

    /**
     * Returns the list of currently active sessions on the Bastion.
     * 
     * @param resourceGroupName The name of the resource group.
     * @param bastionHostname The name of the Bastion Host.
     * @param sessionIds The list of sessionids to disconnect.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return response for DisconnectActiveSessions as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux disconnectActiveSessionsAsync(String resourceGroupName, String bastionHostname,
        SessionIds sessionIds);

    /**
     * Returns the list of currently active sessions on the Bastion.
     * 
     * @param resourceGroupName The name of the resource group.
     * @param bastionHostname The name of the Bastion Host.
     * @param sessionIds The list of sessionids to disconnect.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return response for DisconnectActiveSessions as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable disconnectActiveSessions(String resourceGroupName, String bastionHostname,
        SessionIds sessionIds);

    /**
     * Returns the list of currently active sessions on the Bastion.
     * 
     * @param resourceGroupName The name of the resource group.
     * @param bastionHostname The name of the Bastion Host.
     * @param sessionIds The list of sessionids to disconnect.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return response for DisconnectActiveSessions as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable disconnectActiveSessions(String resourceGroupName, String bastionHostname,
        SessionIds sessionIds, Context context);

    /**
     * Checks whether a domain name in the cloudapp.azure.com zone is available for use.
     * 
     * @param location The location of the domain name.
     * @param domainNameLabel The domain name to be verified. It must conform to the following regular expression:
     * ^[a-z][a-z0-9-]{1,61}[a-z0-9]$.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return response for the CheckDnsNameAvailability API service call along with {@link Response} on successful
     * completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono> checkDnsNameAvailabilityWithResponseAsync(String location,
        String domainNameLabel);

    /**
     * Checks whether a domain name in the cloudapp.azure.com zone is available for use.
     * 
     * @param location The location of the domain name.
     * @param domainNameLabel The domain name to be verified. It must conform to the following regular expression:
     * ^[a-z][a-z0-9-]{1,61}[a-z0-9]$.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return response for the CheckDnsNameAvailability API service call on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono checkDnsNameAvailabilityAsync(String location, String domainNameLabel);

    /**
     * Checks whether a domain name in the cloudapp.azure.com zone is available for use.
     * 
     * @param location The location of the domain name.
     * @param domainNameLabel The domain name to be verified. It must conform to the following regular expression:
     * ^[a-z][a-z0-9-]{1,61}[a-z0-9]$.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return response for the CheckDnsNameAvailability API service call along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response checkDnsNameAvailabilityWithResponse(String location,
        String domainNameLabel, Context context);

    /**
     * Checks whether a domain name in the cloudapp.azure.com zone is available for use.
     * 
     * @param location The location of the domain name.
     * @param domainNameLabel The domain name to be verified. It must conform to the following regular expression:
     * ^[a-z][a-z0-9-]{1,61}[a-z0-9]$.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return response for the CheckDnsNameAvailability API service call.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    DnsNameAvailabilityResultInner checkDnsNameAvailability(String location, String domainNameLabel);

    /**
     * Retrieves detail of a provider port.
     * 
     * @param providerport The name of the provider port.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return expressRouteProviderPort resource along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono> expressRouteProviderPortWithResponseAsync(String providerport);

    /**
     * Retrieves detail of a provider port.
     * 
     * @param providerport The name of the provider port.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return expressRouteProviderPort resource on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono expressRouteProviderPortAsync(String providerport);

    /**
     * Retrieves detail of a provider port.
     * 
     * @param providerport The name of the provider port.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return expressRouteProviderPort resource along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response expressRouteProviderPortWithResponse(String providerport, Context context);

    /**
     * Retrieves detail of a provider port.
     * 
     * @param providerport The name of the provider port.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return expressRouteProviderPort resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    ExpressRouteProviderPortInner expressRouteProviderPort(String providerport);

    /**
     * Lists active connectivity configurations in a network manager.
     * 
     * @param resourceGroupName The name of the resource group.
     * @param networkManagerName The name of the network manager.
     * @param parameters Active Configuration Parameter.
     * @param top An optional query parameter which specifies the maximum number of records to be returned by the
     * server.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return result of the request to list active connectivity configurations along with {@link Response} on
     * successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono>
        listActiveConnectivityConfigurationsWithResponseAsync(String resourceGroupName, String networkManagerName,
            ActiveConfigurationParameter parameters, Integer top);

    /**
     * Lists active connectivity configurations in a network manager.
     * 
     * @param resourceGroupName The name of the resource group.
     * @param networkManagerName The name of the network manager.
     * @param parameters Active Configuration Parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return result of the request to list active connectivity configurations on successful completion of
     * {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono listActiveConnectivityConfigurationsAsync(
        String resourceGroupName, String networkManagerName, ActiveConfigurationParameter parameters);

    /**
     * Lists active connectivity configurations in a network manager.
     * 
     * @param resourceGroupName The name of the resource group.
     * @param networkManagerName The name of the network manager.
     * @param parameters Active Configuration Parameter.
     * @param top An optional query parameter which specifies the maximum number of records to be returned by the
     * server.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return result of the request to list active connectivity configurations along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response listActiveConnectivityConfigurationsWithResponse(
        String resourceGroupName, String networkManagerName, ActiveConfigurationParameter parameters, Integer top,
        Context context);

    /**
     * Lists active connectivity configurations in a network manager.
     * 
     * @param resourceGroupName The name of the resource group.
     * @param networkManagerName The name of the network manager.
     * @param parameters Active Configuration Parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return result of the request to list active connectivity configurations.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    ActiveConnectivityConfigurationsListResultInner listActiveConnectivityConfigurations(String resourceGroupName,
        String networkManagerName, ActiveConfigurationParameter parameters);

    /**
     * Lists active security admin rules in a network manager.
     * 
     * @param resourceGroupName The name of the resource group.
     * @param networkManagerName The name of the network manager.
     * @param parameters Active Configuration Parameter.
     * @param top An optional query parameter which specifies the maximum number of records to be returned by the
     * server.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return result of the request to list active security admin rules along with {@link Response} on successful
     * completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono> listActiveSecurityAdminRulesWithResponseAsync(
        String resourceGroupName, String networkManagerName, ActiveConfigurationParameter parameters, Integer top);

    /**
     * Lists active security admin rules in a network manager.
     * 
     * @param resourceGroupName The name of the resource group.
     * @param networkManagerName The name of the network manager.
     * @param parameters Active Configuration Parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return result of the request to list active security admin rules on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono listActiveSecurityAdminRulesAsync(String resourceGroupName,
        String networkManagerName, ActiveConfigurationParameter parameters);

    /**
     * Lists active security admin rules in a network manager.
     * 
     * @param resourceGroupName The name of the resource group.
     * @param networkManagerName The name of the network manager.
     * @param parameters Active Configuration Parameter.
     * @param top An optional query parameter which specifies the maximum number of records to be returned by the
     * server.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return result of the request to list active security admin rules along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response listActiveSecurityAdminRulesWithResponse(String resourceGroupName,
        String networkManagerName, ActiveConfigurationParameter parameters, Integer top, Context context);

    /**
     * Lists active security admin rules in a network manager.
     * 
     * @param resourceGroupName The name of the resource group.
     * @param networkManagerName The name of the network manager.
     * @param parameters Active Configuration Parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return result of the request to list active security admin rules.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    ActiveSecurityAdminRulesListResultInner listActiveSecurityAdminRules(String resourceGroupName,
        String networkManagerName, ActiveConfigurationParameter parameters);

    /**
     * List all effective connectivity configurations applied on a virtual network.
     * 
     * @param resourceGroupName The name of the resource group.
     * @param virtualNetworkName The name of the virtual network.
     * @param parameters Parameters supplied to list correct page.
     * @param top An optional query parameter which specifies the maximum number of records to be returned by the
     * server.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return result of the request to list networkManagerEffectiveConnectivityConfiguration along with
     * {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono>
        listNetworkManagerEffectiveConnectivityConfigurationsWithResponseAsync(String resourceGroupName,
            String virtualNetworkName, QueryRequestOptions parameters, Integer top);

    /**
     * List all effective connectivity configurations applied on a virtual network.
     * 
     * @param resourceGroupName The name of the resource group.
     * @param virtualNetworkName The name of the virtual network.
     * @param parameters Parameters supplied to list correct page.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return result of the request to list networkManagerEffectiveConnectivityConfiguration on successful completion
     * of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono
        listNetworkManagerEffectiveConnectivityConfigurationsAsync(String resourceGroupName, String virtualNetworkName,
            QueryRequestOptions parameters);

    /**
     * List all effective connectivity configurations applied on a virtual network.
     * 
     * @param resourceGroupName The name of the resource group.
     * @param virtualNetworkName The name of the virtual network.
     * @param parameters Parameters supplied to list correct page.
     * @param top An optional query parameter which specifies the maximum number of records to be returned by the
     * server.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return result of the request to list networkManagerEffectiveConnectivityConfiguration along with
     * {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response
        listNetworkManagerEffectiveConnectivityConfigurationsWithResponse(String resourceGroupName,
            String virtualNetworkName, QueryRequestOptions parameters, Integer top, Context context);

    /**
     * List all effective connectivity configurations applied on a virtual network.
     * 
     * @param resourceGroupName The name of the resource group.
     * @param virtualNetworkName The name of the virtual network.
     * @param parameters Parameters supplied to list correct page.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return result of the request to list networkManagerEffectiveConnectivityConfiguration.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    NetworkManagerEffectiveConnectivityConfigurationListResultInner
        listNetworkManagerEffectiveConnectivityConfigurations(String resourceGroupName, String virtualNetworkName,
            QueryRequestOptions parameters);

    /**
     * List all effective security admin rules applied on a virtual network.
     * 
     * @param resourceGroupName The name of the resource group.
     * @param virtualNetworkName The name of the virtual network.
     * @param parameters Parameters supplied to list correct page.
     * @param top An optional query parameter which specifies the maximum number of records to be returned by the
     * server.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return result of the request to list networkManagerEffectiveSecurityAdminRules along with {@link Response} on
     * successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono>
        listNetworkManagerEffectiveSecurityAdminRulesWithResponseAsync(String resourceGroupName,
            String virtualNetworkName, QueryRequestOptions parameters, Integer top);

    /**
     * List all effective security admin rules applied on a virtual network.
     * 
     * @param resourceGroupName The name of the resource group.
     * @param virtualNetworkName The name of the virtual network.
     * @param parameters Parameters supplied to list correct page.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return result of the request to list networkManagerEffectiveSecurityAdminRules on successful completion of
     * {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono listNetworkManagerEffectiveSecurityAdminRulesAsync(
        String resourceGroupName, String virtualNetworkName, QueryRequestOptions parameters);

    /**
     * List all effective security admin rules applied on a virtual network.
     * 
     * @param resourceGroupName The name of the resource group.
     * @param virtualNetworkName The name of the virtual network.
     * @param parameters Parameters supplied to list correct page.
     * @param top An optional query parameter which specifies the maximum number of records to be returned by the
     * server.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return result of the request to list networkManagerEffectiveSecurityAdminRules along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response
        listNetworkManagerEffectiveSecurityAdminRulesWithResponse(String resourceGroupName, String virtualNetworkName,
            QueryRequestOptions parameters, Integer top, Context context);

    /**
     * List all effective security admin rules applied on a virtual network.
     * 
     * @param resourceGroupName The name of the resource group.
     * @param virtualNetworkName The name of the virtual network.
     * @param parameters Parameters supplied to list correct page.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return result of the request to list networkManagerEffectiveSecurityAdminRules.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    NetworkManagerEffectiveSecurityAdminRulesListResultInner listNetworkManagerEffectiveSecurityAdminRules(
        String resourceGroupName, String virtualNetworkName, QueryRequestOptions parameters);

    /**
     * Gives the supported security providers for the virtual wan.
     * 
     * @param resourceGroupName The resource group name.
     * @param virtualWanName The name of the VirtualWAN for which supported security providers are needed.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of SecurityProviders along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono>
        supportedSecurityProvidersWithResponseAsync(String resourceGroupName, String virtualWanName);

    /**
     * Gives the supported security providers for the virtual wan.
     * 
     * @param resourceGroupName The resource group name.
     * @param virtualWanName The name of the VirtualWAN for which supported security providers are needed.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of SecurityProviders on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono supportedSecurityProvidersAsync(String resourceGroupName,
        String virtualWanName);

    /**
     * Gives the supported security providers for the virtual wan.
     * 
     * @param resourceGroupName The resource group name.
     * @param virtualWanName The name of the VirtualWAN for which supported security providers are needed.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of SecurityProviders along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response supportedSecurityProvidersWithResponse(String resourceGroupName,
        String virtualWanName, Context context);

    /**
     * Gives the supported security providers for the virtual wan.
     * 
     * @param resourceGroupName The resource group name.
     * @param virtualWanName The name of the VirtualWAN for which supported security providers are needed.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of SecurityProviders.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    VirtualWanSecurityProvidersInner supportedSecurityProviders(String resourceGroupName, String virtualWanName);

    /**
     * Generates a unique VPN profile for P2S clients for VirtualWan and associated VpnServerConfiguration combination
     * in the specified resource group.
     * 
     * @param resourceGroupName The resource group name.
     * @param virtualWanName The name of the VirtualWAN whose associated VpnServerConfigurations is needed.
     * @param vpnClientParams Parameters supplied to the generate VirtualWan VPN profile generation operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return vpn Profile Response for package generation along with {@link Response} on successful completion of
     * {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono>> generatevirtualwanvpnserverconfigurationvpnprofileWithResponseAsync(
        String resourceGroupName, String virtualWanName, VirtualWanVpnProfileParameters vpnClientParams);

    /**
     * Generates a unique VPN profile for P2S clients for VirtualWan and associated VpnServerConfiguration combination
     * in the specified resource group.
     * 
     * @param resourceGroupName The resource group name.
     * @param virtualWanName The name of the VirtualWAN whose associated VpnServerConfigurations is needed.
     * @param vpnClientParams Parameters supplied to the generate VirtualWan VPN profile generation operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link PollerFlux} for polling of vpn Profile Response for package generation.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    PollerFlux, VpnProfileResponseInner>
        beginGeneratevirtualwanvpnserverconfigurationvpnprofileAsync(String resourceGroupName, String virtualWanName,
            VirtualWanVpnProfileParameters vpnClientParams);

    /**
     * Generates a unique VPN profile for P2S clients for VirtualWan and associated VpnServerConfiguration combination
     * in the specified resource group.
     * 
     * @param resourceGroupName The resource group name.
     * @param virtualWanName The name of the VirtualWAN whose associated VpnServerConfigurations is needed.
     * @param vpnClientParams Parameters supplied to the generate VirtualWan VPN profile generation operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link SyncPoller} for polling of vpn Profile Response for package generation.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller, VpnProfileResponseInner>
        beginGeneratevirtualwanvpnserverconfigurationvpnprofile(String resourceGroupName, String virtualWanName,
            VirtualWanVpnProfileParameters vpnClientParams);

    /**
     * Generates a unique VPN profile for P2S clients for VirtualWan and associated VpnServerConfiguration combination
     * in the specified resource group.
     * 
     * @param resourceGroupName The resource group name.
     * @param virtualWanName The name of the VirtualWAN whose associated VpnServerConfigurations is needed.
     * @param vpnClientParams Parameters supplied to the generate VirtualWan VPN profile generation operation.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link SyncPoller} for polling of vpn Profile Response for package generation.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller, VpnProfileResponseInner>
        beginGeneratevirtualwanvpnserverconfigurationvpnprofile(String resourceGroupName, String virtualWanName,
            VirtualWanVpnProfileParameters vpnClientParams, Context context);

    /**
     * Generates a unique VPN profile for P2S clients for VirtualWan and associated VpnServerConfiguration combination
     * in the specified resource group.
     * 
     * @param resourceGroupName The resource group name.
     * @param virtualWanName The name of the VirtualWAN whose associated VpnServerConfigurations is needed.
     * @param vpnClientParams Parameters supplied to the generate VirtualWan VPN profile generation operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return vpn Profile Response for package generation on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono generatevirtualwanvpnserverconfigurationvpnprofileAsync(String resourceGroupName,
        String virtualWanName, VirtualWanVpnProfileParameters vpnClientParams);

    /**
     * Generates a unique VPN profile for P2S clients for VirtualWan and associated VpnServerConfiguration combination
     * in the specified resource group.
     * 
     * @param resourceGroupName The resource group name.
     * @param virtualWanName The name of the VirtualWAN whose associated VpnServerConfigurations is needed.
     * @param vpnClientParams Parameters supplied to the generate VirtualWan VPN profile generation operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return vpn Profile Response for package generation.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    VpnProfileResponseInner generatevirtualwanvpnserverconfigurationvpnprofile(String resourceGroupName,
        String virtualWanName, VirtualWanVpnProfileParameters vpnClientParams);

    /**
     * Generates a unique VPN profile for P2S clients for VirtualWan and associated VpnServerConfiguration combination
     * in the specified resource group.
     * 
     * @param resourceGroupName The resource group name.
     * @param virtualWanName The name of the VirtualWAN whose associated VpnServerConfigurations is needed.
     * @param vpnClientParams Parameters supplied to the generate VirtualWan VPN profile generation operation.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return vpn Profile Response for package generation.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    VpnProfileResponseInner generatevirtualwanvpnserverconfigurationvpnprofile(String resourceGroupName,
        String virtualWanName, VirtualWanVpnProfileParameters vpnClientParams, Context context);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy