diff --git a/src/Network/Network.Management.Sdk/Generated/INetworkManagementClient.cs b/src/Network/Network.Management.Sdk/Generated/INetworkManagementClient.cs index 89a3d9c23086..94b0ffa5b199 100644 --- a/src/Network/Network.Management.Sdk/Generated/INetworkManagementClient.cs +++ b/src/Network/Network.Management.Sdk/Generated/INetworkManagementClient.cs @@ -632,6 +632,11 @@ public partial interface INetworkManagementClient : System.IDisposable /// IVirtualNetworkPeeringsOperations VirtualNetworkPeerings { get; } + /// + /// Gets the IVirtualNetworkAppliancesOperations + /// + IVirtualNetworkAppliancesOperations VirtualNetworkAppliances { get; } + /// /// Gets the IVirtualNetworkGatewaysOperations /// diff --git a/src/Network/Network.Management.Sdk/Generated/IVirtualNetworkAppliancesOperations.cs b/src/Network/Network.Management.Sdk/Generated/IVirtualNetworkAppliancesOperations.cs new file mode 100644 index 000000000000..be9a86fcaa21 --- /dev/null +++ b/src/Network/Network.Management.Sdk/Generated/IVirtualNetworkAppliancesOperations.cs @@ -0,0 +1,267 @@ +// 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. + +namespace Microsoft.Azure.Management.Network +{ + using Microsoft.Rest.Azure; + using Models; + + /// + /// VirtualNetworkAppliancesOperations operations. + /// + public partial interface IVirtualNetworkAppliancesOperations + { + /// + /// Deletes the specified virtual network appliance. + /// + /// + /// Deletes the specified virtual network appliance. + /// + /// + /// The name of the resource group. + /// + /// + /// The name of the virtual network appliance. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + System.Threading.Tasks.Task> DeleteWithHttpMessagesAsync(string resourceGroupName, string virtualNetworkApplianceName, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + + /// + /// Gets information about the specified virtual network appliance. + /// + /// + /// Gets information about the specified virtual network appliance. + /// + /// + /// The name of the resource group. + /// + /// + /// The name of the virtual network appliance. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + System.Threading.Tasks.Task> GetWithHttpMessagesAsync(string resourceGroupName, string virtualNetworkApplianceName, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + + /// + /// Creates or updates a virtual network appliance. + /// + /// + /// Creates or updates a virtual network appliance. + /// + /// + /// The name of the resource group. + /// + /// + /// The name of the virtual network appliance. + /// + /// + /// Parameters supplied to the create or update virtual network appliance + /// operation. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + System.Threading.Tasks.Task> CreateOrUpdateWithHttpMessagesAsync(string resourceGroupName, string virtualNetworkApplianceName, VirtualNetworkAppliance parameters, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + + /// + /// Updates a virtual network appliance tags. + /// + /// + /// Updates a virtual network appliance tags. + /// + /// + /// The name of the resource group. + /// + /// + /// The name of the virtual network appliance. + /// + /// + /// Parameters supplied to update virtual network appliance tags. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + System.Threading.Tasks.Task> UpdateTagsWithHttpMessagesAsync(string resourceGroupName, string virtualNetworkApplianceName, TagsObject parameters, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + + /// + /// Gets all virtual network appliances in a subscription. + /// + /// + /// Gets all virtual network appliances in a subscription. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + System.Threading.Tasks.Task>> ListAllWithHttpMessagesAsync(System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + + /// + /// Gets all virtual network appliances in a resource group. + /// + /// + /// Gets all virtual network appliances in a resource group. + /// + /// + /// The name of the resource group. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + System.Threading.Tasks.Task>> ListWithHttpMessagesAsync(string resourceGroupName, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + + /// + /// Deletes the specified virtual network appliance. + /// + /// + /// Deletes the specified virtual network appliance. + /// + /// + /// The name of the resource group. + /// + /// + /// The name of the virtual network appliance. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + System.Threading.Tasks.Task> BeginDeleteWithHttpMessagesAsync(string resourceGroupName, string virtualNetworkApplianceName, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + + /// + /// Creates or updates a virtual network appliance. + /// + /// + /// Creates or updates a virtual network appliance. + /// + /// + /// The name of the resource group. + /// + /// + /// The name of the virtual network appliance. + /// + /// + /// Parameters supplied to the create or update virtual network appliance + /// operation. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + System.Threading.Tasks.Task> BeginCreateOrUpdateWithHttpMessagesAsync(string resourceGroupName, string virtualNetworkApplianceName, VirtualNetworkAppliance parameters, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + + /// + /// Gets all virtual network appliances in a subscription. + /// + /// + /// Gets all virtual network appliances in a subscription. + /// + /// + /// The NextLink from the previous successful call to List operation. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + System.Threading.Tasks.Task>> ListAllNextWithHttpMessagesAsync(string nextPageLink, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + + /// + /// Gets all virtual network appliances in a resource group. + /// + /// + /// Gets all virtual network appliances in a resource group. + /// + /// + /// The NextLink from the previous successful call to List operation. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + System.Threading.Tasks.Task>> ListNextWithHttpMessagesAsync(string nextPageLink, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + + } +} \ No newline at end of file diff --git a/src/Network/Network.Management.Sdk/Generated/Models/VirtualNetworkAppliance.cs b/src/Network/Network.Management.Sdk/Generated/Models/VirtualNetworkAppliance.cs new file mode 100644 index 000000000000..eaf9081681dd --- /dev/null +++ b/src/Network/Network.Management.Sdk/Generated/Models/VirtualNetworkAppliance.cs @@ -0,0 +1,117 @@ +// 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. + +namespace Microsoft.Azure.Management.Network.Models +{ + using System.Linq; + + /// + /// A virtual network appliance in a resource group. + /// + [Microsoft.Rest.Serialization.JsonTransformation] + public partial class VirtualNetworkAppliance : Resource + { + /// + /// Initializes a new instance of the VirtualNetworkAppliance class. + /// + public VirtualNetworkAppliance() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the VirtualNetworkAppliance class. + /// + + /// Resource ID. + /// + + /// Resource name. + /// + + /// Resource type. + /// + + /// Resource location. + /// + + /// Resource tags. + /// + + /// A unique read-only string that changes whenever the resource is updated. + /// + + /// The provisioning state of the virtual network appliance resource. + /// Possible values include: 'Failed', 'Succeeded', 'Canceled', 'Creating', + /// 'Updating', 'Deleting' + + /// Bandwidth of the VirtualNetworkAppliance resource in Gbps. + /// + + /// A list of IPConfigurations of the virtual network appliance. + /// + + /// The resource GUID property of the virtual network appliance resource. + /// + + /// The reference to the subnet resource. + /// + public VirtualNetworkAppliance(string id = default(string), string name = default(string), string type = default(string), string location = default(string), System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary), string etag = default(string), string provisioningState = default(string), string bandwidthInGbps = default(string), System.Collections.Generic.IList ipConfigurations = default(System.Collections.Generic.IList), string resourceGuid = default(string), Subnet subnet = default(Subnet)) + + : base(id, name, type, location, tags) + { + this.Etag = etag; + this.ProvisioningState = provisioningState; + this.BandwidthInGbps = bandwidthInGbps; + this.IPConfigurations = ipConfigurations; + this.ResourceGuid = resourceGuid; + this.Subnet = subnet; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets a unique read-only string that changes whenever the resource is + /// updated. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "etag")] + public string Etag {get; private set; } + + /// + /// Gets the provisioning state of the virtual network appliance resource. Possible values include: 'Failed', 'Succeeded', 'Canceled', 'Creating', 'Updating', 'Deleting' + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "properties.provisioningState")] + public string ProvisioningState {get; private set; } + + /// + /// Gets or sets bandwidth of the VirtualNetworkAppliance resource in Gbps. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "properties.bandwidthInGbps")] + public string BandwidthInGbps {get; set; } + + /// + /// Gets a list of IPConfigurations of the virtual network appliance. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "properties.ipConfigurations")] + public System.Collections.Generic.IList IPConfigurations {get; private set; } + + /// + /// Gets the resource GUID property of the virtual network appliance resource. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "properties.resourceGuid")] + public string ResourceGuid {get; private set; } + + /// + /// Gets or sets the reference to the subnet resource. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "properties.subnet")] + public Subnet Subnet {get; set; } + } +} \ No newline at end of file diff --git a/src/Network/Network.Management.Sdk/Generated/Models/VirtualNetworkApplianceIpConfiguration.cs b/src/Network/Network.Management.Sdk/Generated/Models/VirtualNetworkApplianceIpConfiguration.cs new file mode 100644 index 000000000000..8966041db0fc --- /dev/null +++ b/src/Network/Network.Management.Sdk/Generated/Models/VirtualNetworkApplianceIpConfiguration.cs @@ -0,0 +1,128 @@ +// 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. + +namespace Microsoft.Azure.Management.Network.Models +{ + using System.Linq; + + /// + /// The virtual network appliance ip configuration. + /// + [Microsoft.Rest.Serialization.JsonTransformation] + public partial class VirtualNetworkApplianceIpConfiguration : SubResource + { + /// + /// Initializes a new instance of the VirtualNetworkApplianceIpConfiguration class. + /// + public VirtualNetworkApplianceIpConfiguration() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the VirtualNetworkApplianceIpConfiguration class. + /// + + /// Resource ID. + /// + + /// The name of virtual network appliance ip configuration. + /// + + /// A unique read-only string that changes whenever the resource is updated. + /// + + /// The resource type. + /// + + /// The provisioning state of the private link service IP configuration + /// resource. + /// Possible values include: 'Failed', 'Succeeded', 'Canceled', 'Creating', + /// 'Updating', 'Deleting' + + /// The private IP address of the IP configuration. + /// + + /// The private IP address allocation method. + /// Possible values include: 'Static', 'Dynamic' + + /// Whether the ip configuration is primary or not. + /// + + /// Whether the specific IP configuration is IPv4 or IPv6. Default is IPv4. + /// Possible values include: 'IPv4', 'IPv6' + public VirtualNetworkApplianceIpConfiguration(string id = default(string), string name = default(string), string etag = default(string), string type = default(string), string provisioningState = default(string), string privateIPAddress = default(string), string privateIPAllocationMethod = default(string), bool? primary = default(bool?), string privateIPAddressVersion = default(string)) + + : base(id) + { + this.Name = name; + this.Etag = etag; + this.Type = type; + this.ProvisioningState = provisioningState; + this.PrivateIPAddress = privateIPAddress; + this.PrivateIPAllocationMethod = privateIPAllocationMethod; + this.Primary = primary; + this.PrivateIPAddressVersion = privateIPAddressVersion; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets or sets the name of virtual network appliance ip configuration. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "name")] + public string Name {get; set; } + + /// + /// Gets a unique read-only string that changes whenever the resource is + /// updated. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "etag")] + public string Etag {get; private set; } + + /// + /// Gets the resource type. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "type")] + public string Type {get; private set; } + + /// + /// Gets the provisioning state of the private link service IP configuration + /// resource. Possible values include: 'Failed', 'Succeeded', 'Canceled', 'Creating', 'Updating', 'Deleting' + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "properties.provisioningState")] + public string ProvisioningState {get; private set; } + + /// + /// Gets or sets the private IP address of the IP configuration. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "properties.privateIPAddress")] + public string PrivateIPAddress {get; set; } + + /// + /// Gets or sets the private IP address allocation method. Possible values include: 'Static', 'Dynamic' + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "properties.privateIPAllocationMethod")] + public string PrivateIPAllocationMethod {get; set; } + + /// + /// Gets or sets whether the ip configuration is primary or not. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "properties.primary")] + public bool? Primary {get; set; } + + /// + /// Gets or sets whether the specific IP configuration is IPv4 or IPv6. Default + /// is IPv4. Possible values include: 'IPv4', 'IPv6' + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "properties.privateIPAddressVersion")] + public string PrivateIPAddressVersion {get; set; } + } +} \ No newline at end of file diff --git a/src/Network/Network.Management.Sdk/Generated/Models/VirtualNetworkApplianceIpConfigurationProperties.cs b/src/Network/Network.Management.Sdk/Generated/Models/VirtualNetworkApplianceIpConfigurationProperties.cs new file mode 100644 index 000000000000..7e768c947049 --- /dev/null +++ b/src/Network/Network.Management.Sdk/Generated/Models/VirtualNetworkApplianceIpConfigurationProperties.cs @@ -0,0 +1,92 @@ +// 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. + +namespace Microsoft.Azure.Management.Network.Models +{ + using System.Linq; + + /// + /// Properties of virtual network appliance IP configuration. + /// + public partial class VirtualNetworkApplianceIpConfigurationProperties + { + /// + /// Initializes a new instance of the VirtualNetworkApplianceIpConfigurationProperties class. + /// + public VirtualNetworkApplianceIpConfigurationProperties() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the VirtualNetworkApplianceIpConfigurationProperties class. + /// + + /// The private IP address of the IP configuration. + /// + + /// The private IP address allocation method. + /// Possible values include: 'Static', 'Dynamic' + + /// Whether the ip configuration is primary or not. + /// + + /// The provisioning state of the private link service IP configuration + /// resource. + /// Possible values include: 'Failed', 'Succeeded', 'Canceled', 'Creating', + /// 'Updating', 'Deleting' + + /// Whether the specific IP configuration is IPv4 or IPv6. Default is IPv4. + /// Possible values include: 'IPv4', 'IPv6' + public VirtualNetworkApplianceIpConfigurationProperties(string privateIPAddress = default(string), string privateIPAllocationMethod = default(string), bool? primary = default(bool?), string provisioningState = default(string), string privateIPAddressVersion = default(string)) + + { + this.PrivateIPAddress = privateIPAddress; + this.PrivateIPAllocationMethod = privateIPAllocationMethod; + this.Primary = primary; + this.ProvisioningState = provisioningState; + this.PrivateIPAddressVersion = privateIPAddressVersion; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets or sets the private IP address of the IP configuration. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "privateIPAddress")] + public string PrivateIPAddress {get; set; } + + /// + /// Gets or sets the private IP address allocation method. Possible values include: 'Static', 'Dynamic' + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "privateIPAllocationMethod")] + public string PrivateIPAllocationMethod {get; set; } + + /// + /// Gets or sets whether the ip configuration is primary or not. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "primary")] + public bool? Primary {get; set; } + + /// + /// Gets the provisioning state of the private link service IP configuration + /// resource. Possible values include: 'Failed', 'Succeeded', 'Canceled', 'Creating', 'Updating', 'Deleting' + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "provisioningState")] + public string ProvisioningState {get; private set; } + + /// + /// Gets or sets whether the specific IP configuration is IPv4 or IPv6. Default + /// is IPv4. Possible values include: 'IPv4', 'IPv6' + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "privateIPAddressVersion")] + public string PrivateIPAddressVersion {get; set; } + } +} \ No newline at end of file diff --git a/src/Network/Network.Management.Sdk/Generated/Models/VirtualNetworkAppliancePropertiesFormat.cs b/src/Network/Network.Management.Sdk/Generated/Models/VirtualNetworkAppliancePropertiesFormat.cs new file mode 100644 index 000000000000..f2abff2733ef --- /dev/null +++ b/src/Network/Network.Management.Sdk/Generated/Models/VirtualNetworkAppliancePropertiesFormat.cs @@ -0,0 +1,89 @@ +// 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. + +namespace Microsoft.Azure.Management.Network.Models +{ + using System.Linq; + + /// + /// VirtualNetworkAppliance properties. + /// + public partial class VirtualNetworkAppliancePropertiesFormat + { + /// + /// Initializes a new instance of the VirtualNetworkAppliancePropertiesFormat class. + /// + public VirtualNetworkAppliancePropertiesFormat() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the VirtualNetworkAppliancePropertiesFormat class. + /// + + /// Bandwidth of the VirtualNetworkAppliance resource in Gbps. + /// + + /// A list of IPConfigurations of the virtual network appliance. + /// + + /// The provisioning state of the virtual network appliance resource. + /// Possible values include: 'Failed', 'Succeeded', 'Canceled', 'Creating', + /// 'Updating', 'Deleting' + + /// The resource GUID property of the virtual network appliance resource. + /// + + /// The reference to the subnet resource. + /// + public VirtualNetworkAppliancePropertiesFormat(string bandwidthInGbps = default(string), System.Collections.Generic.IList ipConfigurations = default(System.Collections.Generic.IList), string provisioningState = default(string), string resourceGuid = default(string), Subnet subnet = default(Subnet)) + + { + this.BandwidthInGbps = bandwidthInGbps; + this.IPConfigurations = ipConfigurations; + this.ProvisioningState = provisioningState; + this.ResourceGuid = resourceGuid; + this.Subnet = subnet; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets or sets bandwidth of the VirtualNetworkAppliance resource in Gbps. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "bandwidthInGbps")] + public string BandwidthInGbps {get; set; } + + /// + /// Gets a list of IPConfigurations of the virtual network appliance. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "ipConfigurations")] + public System.Collections.Generic.IList IPConfigurations {get; private set; } + + /// + /// Gets the provisioning state of the virtual network appliance resource. Possible values include: 'Failed', 'Succeeded', 'Canceled', 'Creating', 'Updating', 'Deleting' + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "provisioningState")] + public string ProvisioningState {get; private set; } + + /// + /// Gets the resource GUID property of the virtual network appliance resource. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "resourceGuid")] + public string ResourceGuid {get; private set; } + + /// + /// Gets or sets the reference to the subnet resource. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "subnet")] + public Subnet Subnet {get; set; } + } +} \ No newline at end of file diff --git a/src/Network/Network.Management.Sdk/Generated/Models/VirtualNetworkAppliancesDeleteHeaders.cs b/src/Network/Network.Management.Sdk/Generated/Models/VirtualNetworkAppliancesDeleteHeaders.cs new file mode 100644 index 000000000000..0fc0a75829d6 --- /dev/null +++ b/src/Network/Network.Management.Sdk/Generated/Models/VirtualNetworkAppliancesDeleteHeaders.cs @@ -0,0 +1,45 @@ +// 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. + +namespace Microsoft.Azure.Management.Network.Models +{ + using System.Linq; + + public partial class VirtualNetworkAppliancesDeleteHeaders + { + /// + /// Initializes a new instance of the VirtualNetworkAppliancesDeleteHeaders class. + /// + public VirtualNetworkAppliancesDeleteHeaders() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the VirtualNetworkAppliancesDeleteHeaders class. + /// + + /// + /// + public VirtualNetworkAppliancesDeleteHeaders(string location = default(string)) + + { + this.Location = location; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets or sets + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "Location")] + public string Location {get; set; } + } +} \ No newline at end of file diff --git a/src/Network/Network.Management.Sdk/Generated/NetworkManagementClient.cs b/src/Network/Network.Management.Sdk/Generated/NetworkManagementClient.cs index 6dc1a599fdec..d0eecb82874e 100644 --- a/src/Network/Network.Management.Sdk/Generated/NetworkManagementClient.cs +++ b/src/Network/Network.Management.Sdk/Generated/NetworkManagementClient.cs @@ -513,6 +513,10 @@ public partial class NetworkManagementClient : Microsoft.Rest.ServiceClient public virtual IVirtualNetworkPeeringsOperations VirtualNetworkPeerings { get; private set; } /// + /// Gets the IVirtualNetworkAppliancesOperations + /// + public virtual IVirtualNetworkAppliancesOperations VirtualNetworkAppliances { get; private set; } + /// /// Gets the IVirtualNetworkGatewaysOperations /// public virtual IVirtualNetworkGatewaysOperations VirtualNetworkGateways { get; private set; } @@ -995,6 +999,7 @@ private void Initialize() this.ResourceNavigationLinks = new ResourceNavigationLinksOperations(this); this.ServiceAssociationLinks = new ServiceAssociationLinksOperations(this); this.VirtualNetworkPeerings = new VirtualNetworkPeeringsOperations(this); + this.VirtualNetworkAppliances = new VirtualNetworkAppliancesOperations(this); this.VirtualNetworkGateways = new VirtualNetworkGatewaysOperations(this); this.VirtualNetworkGatewayConnections = new VirtualNetworkGatewayConnectionsOperations(this); this.LocalNetworkGateways = new LocalNetworkGatewaysOperations(this); diff --git a/src/Network/Network.Management.Sdk/Generated/VirtualNetworkAppliancesOperations.cs b/src/Network/Network.Management.Sdk/Generated/VirtualNetworkAppliancesOperations.cs new file mode 100644 index 000000000000..4053fb507015 --- /dev/null +++ b/src/Network/Network.Management.Sdk/Generated/VirtualNetworkAppliancesOperations.cs @@ -0,0 +1,1748 @@ +// 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. + +namespace Microsoft.Azure.Management.Network +{ + using System.Linq; + using Microsoft.Rest; + using Microsoft.Rest.Azure; + using Models; + + /// + /// VirtualNetworkAppliancesOperations operations. + /// + internal partial class VirtualNetworkAppliancesOperations : Microsoft.Rest.IServiceOperations, IVirtualNetworkAppliancesOperations + { + /// + /// Initializes a new instance of the VirtualNetworkAppliancesOperations class. + /// + /// + /// Reference to the service client. + /// + /// + /// Thrown when a required parameter is null + /// + internal VirtualNetworkAppliancesOperations (NetworkManagementClient client) + { + if (client == null) + { + throw new System.ArgumentNullException("client"); + } + this.Client = client; + } + + /// + /// Gets a reference to the NetworkManagementClient + /// + public NetworkManagementClient Client { get; private set; } + + /// + /// Deletes the specified virtual network appliance. + /// + /// + /// The name of the resource group. + /// + /// + /// The name of the virtual network appliance. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + public async System.Threading.Tasks.Task> DeleteWithHttpMessagesAsync(string resourceGroupName, string virtualNetworkApplianceName, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + // Send Request + Microsoft.Rest.Azure.AzureOperationHeaderResponse _response = await BeginDeleteWithHttpMessagesAsync(resourceGroupName, virtualNetworkApplianceName, customHeaders, cancellationToken).ConfigureAwait(false); + return await this.Client.GetPostOrDeleteOperationResultAsync(_response, customHeaders, cancellationToken).ConfigureAwait(false); + } + + /// + /// Gets information about the specified virtual network appliance. + /// + /// + /// The name of the resource group. + /// + /// + /// The name of the virtual network appliance. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async System.Threading.Tasks.Task> GetWithHttpMessagesAsync(string resourceGroupName, string virtualNetworkApplianceName, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + + + + + if (resourceGroupName == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "resourceGroupName"); + } + + if (virtualNetworkApplianceName == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "virtualNetworkApplianceName"); + } + if (virtualNetworkApplianceName != null) + { + if (!System.Text.RegularExpressions.Regex.IsMatch(virtualNetworkApplianceName, "^[0-9a-zA-Z]([0-9a-zA-Z_.-]{0,62}[0-9a-zA-Z_])?$")) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.Pattern, "virtualNetworkApplianceName", "^[0-9a-zA-Z]([0-9a-zA-Z_.-]{0,62}[0-9a-zA-Z_])?$"); + } + } + if (this.Client.SubscriptionId == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "this.Client.SubscriptionId"); + } + + string apiVersion = "2025-05-01"; + // Tracing + bool _shouldTrace = Microsoft.Rest.ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = Microsoft.Rest.ServiceClientTracing.NextInvocationId.ToString(); + System.Collections.Generic.Dictionary tracingParameters = new System.Collections.Generic.Dictionary(); + tracingParameters.Add("resourceGroupName", resourceGroupName); + tracingParameters.Add("virtualNetworkApplianceName", virtualNetworkApplianceName); + tracingParameters.Add("apiVersion", apiVersion); + + + tracingParameters.Add("cancellationToken", cancellationToken); + Microsoft.Rest.ServiceClientTracing.Enter(_invocationId, this, "Get", tracingParameters); + } + // Construct URL + + var _baseUrl = this.Client.BaseUri.AbsoluteUri; + var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkAppliances/{virtualNetworkApplianceName}").ToString(); + _url = _url.Replace("{resourceGroupName}", System.Uri.EscapeDataString(resourceGroupName)); + _url = _url.Replace("{virtualNetworkApplianceName}", System.Uri.EscapeDataString(virtualNetworkApplianceName)); + _url = _url.Replace("{subscriptionId}", System.Uri.EscapeDataString(this.Client.SubscriptionId)); + + System.Collections.Generic.List _queryParameters = new System.Collections.Generic.List(); + if (apiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(apiVersion))); + } + if (_queryParameters.Count > 0) + { + _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new System.Net.Http.HttpRequestMessage(); + System.Net.Http.HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new System.Net.Http.HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (this.Client.GenerateClientRequestId != null && this.Client.GenerateClientRequestId.Value) + { + _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); + } + if (this.Client.AcceptLanguage != null) + { + if (_httpRequest.Headers.Contains("accept-language")) + { + _httpRequest.Headers.Remove("accept-language"); + } + _httpRequest.Headers.TryAddWithoutValidation("accept-language", this.Client.AcceptLanguage); + } + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + // Serialize Request + string _requestContent = null; + // Set Credentials + if (this.Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await this.Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await this.Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + + System.Net.HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + + if ((int)_statusCode != 200) + { + var ex = new Microsoft.Rest.Azure.CloudException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + CloudError _errorBody = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, this.Client.DeserializationSettings); + if (_errorBody != null) + { + ex = new Microsoft.Rest.Azure.CloudException(_errorBody.Message); + ex.Body = _errorBody; + } + } + catch (Newtonsoft.Json.JsonException) + { + // Ignore the exception + } + ex.Request = new Microsoft.Rest.HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new Microsoft.Rest.HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + ex.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new Microsoft.Rest.Azure.AzureOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, this.Client.DeserializationSettings); + } + catch (Newtonsoft.Json.JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new Microsoft.Rest.SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + + + + + + } + /// + /// Creates or updates a virtual network appliance. + /// + /// + /// The name of the resource group. + /// + /// + /// The name of the virtual network appliance. + /// + /// + /// Parameters supplied to the create or update virtual network appliance + /// operation. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + public async System.Threading.Tasks.Task> CreateOrUpdateWithHttpMessagesAsync(string resourceGroupName, string virtualNetworkApplianceName, VirtualNetworkAppliance parameters, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + // Send Request + Microsoft.Rest.Azure.AzureOperationResponse _response = await BeginCreateOrUpdateWithHttpMessagesAsync(resourceGroupName, virtualNetworkApplianceName, parameters, customHeaders, cancellationToken).ConfigureAwait(false); + return await this.Client.GetPutOrPatchOperationResultAsync(_response, customHeaders, cancellationToken).ConfigureAwait(false); + } + + /// + /// Updates a virtual network appliance tags. + /// + /// + /// The name of the resource group. + /// + /// + /// The name of the virtual network appliance. + /// + /// + /// Parameters supplied to update virtual network appliance tags. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async System.Threading.Tasks.Task> UpdateTagsWithHttpMessagesAsync(string resourceGroupName, string virtualNetworkApplianceName, TagsObject parameters, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + + + + + if (parameters == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "parameters"); + } + if (resourceGroupName == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "resourceGroupName"); + } + + if (virtualNetworkApplianceName == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "virtualNetworkApplianceName"); + } + if (virtualNetworkApplianceName != null) + { + if (!System.Text.RegularExpressions.Regex.IsMatch(virtualNetworkApplianceName, "^[0-9a-zA-Z]([0-9a-zA-Z_.-]{0,62}[0-9a-zA-Z_])?$")) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.Pattern, "virtualNetworkApplianceName", "^[0-9a-zA-Z]([0-9a-zA-Z_.-]{0,62}[0-9a-zA-Z_])?$"); + } + } + if (this.Client.SubscriptionId == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "this.Client.SubscriptionId"); + } + + string apiVersion = "2025-05-01"; + // Tracing + bool _shouldTrace = Microsoft.Rest.ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = Microsoft.Rest.ServiceClientTracing.NextInvocationId.ToString(); + System.Collections.Generic.Dictionary tracingParameters = new System.Collections.Generic.Dictionary(); + tracingParameters.Add("resourceGroupName", resourceGroupName); + tracingParameters.Add("virtualNetworkApplianceName", virtualNetworkApplianceName); + tracingParameters.Add("apiVersion", apiVersion); + + tracingParameters.Add("parameters", parameters); + + tracingParameters.Add("cancellationToken", cancellationToken); + Microsoft.Rest.ServiceClientTracing.Enter(_invocationId, this, "UpdateTags", tracingParameters); + } + // Construct URL + + var _baseUrl = this.Client.BaseUri.AbsoluteUri; + var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkAppliances/{virtualNetworkApplianceName}").ToString(); + _url = _url.Replace("{resourceGroupName}", System.Uri.EscapeDataString(resourceGroupName)); + _url = _url.Replace("{virtualNetworkApplianceName}", System.Uri.EscapeDataString(virtualNetworkApplianceName)); + _url = _url.Replace("{subscriptionId}", System.Uri.EscapeDataString(this.Client.SubscriptionId)); + + System.Collections.Generic.List _queryParameters = new System.Collections.Generic.List(); + if (apiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(apiVersion))); + } + if (_queryParameters.Count > 0) + { + _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new System.Net.Http.HttpRequestMessage(); + System.Net.Http.HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new System.Net.Http.HttpMethod("PATCH"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (this.Client.GenerateClientRequestId != null && this.Client.GenerateClientRequestId.Value) + { + _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); + } + if (this.Client.AcceptLanguage != null) + { + if (_httpRequest.Headers.Contains("accept-language")) + { + _httpRequest.Headers.Remove("accept-language"); + } + _httpRequest.Headers.TryAddWithoutValidation("accept-language", this.Client.AcceptLanguage); + } + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + // Serialize Request + string _requestContent = null; + if(parameters != null) + { + _requestContent = Microsoft.Rest.Serialization.SafeJsonConvert.SerializeObject(parameters, this.Client.SerializationSettings); + _httpRequest.Content = new System.Net.Http.StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Set Credentials + if (this.Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await this.Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await this.Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + + System.Net.HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + + if ((int)_statusCode != 200) + { + var ex = new Microsoft.Rest.Azure.CloudException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + CloudError _errorBody = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, this.Client.DeserializationSettings); + if (_errorBody != null) + { + ex = new Microsoft.Rest.Azure.CloudException(_errorBody.Message); + ex.Body = _errorBody; + } + } + catch (Newtonsoft.Json.JsonException) + { + // Ignore the exception + } + ex.Request = new Microsoft.Rest.HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new Microsoft.Rest.HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + ex.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new Microsoft.Rest.Azure.AzureOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, this.Client.DeserializationSettings); + } + catch (Newtonsoft.Json.JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new Microsoft.Rest.SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + + + + + + } + /// + /// Gets all virtual network appliances in a subscription. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async System.Threading.Tasks.Task>> ListAllWithHttpMessagesAsync(System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + + + + + if (this.Client.SubscriptionId == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "this.Client.SubscriptionId"); + } + + string apiVersion = "2025-05-01"; + // Tracing + bool _shouldTrace = Microsoft.Rest.ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = Microsoft.Rest.ServiceClientTracing.NextInvocationId.ToString(); + System.Collections.Generic.Dictionary tracingParameters = new System.Collections.Generic.Dictionary(); + tracingParameters.Add("apiVersion", apiVersion); + + + tracingParameters.Add("cancellationToken", cancellationToken); + Microsoft.Rest.ServiceClientTracing.Enter(_invocationId, this, "ListAll", tracingParameters); + } + // Construct URL + + var _baseUrl = this.Client.BaseUri.AbsoluteUri; + var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "subscriptions/{subscriptionId}/providers/Microsoft.Network/virtualNetworkAppliances").ToString(); + _url = _url.Replace("{subscriptionId}", System.Uri.EscapeDataString(this.Client.SubscriptionId)); + + System.Collections.Generic.List _queryParameters = new System.Collections.Generic.List(); + if (apiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(apiVersion))); + } + if (_queryParameters.Count > 0) + { + _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new System.Net.Http.HttpRequestMessage(); + System.Net.Http.HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new System.Net.Http.HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (this.Client.GenerateClientRequestId != null && this.Client.GenerateClientRequestId.Value) + { + _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); + } + if (this.Client.AcceptLanguage != null) + { + if (_httpRequest.Headers.Contains("accept-language")) + { + _httpRequest.Headers.Remove("accept-language"); + } + _httpRequest.Headers.TryAddWithoutValidation("accept-language", this.Client.AcceptLanguage); + } + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + // Serialize Request + string _requestContent = null; + // Set Credentials + if (this.Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await this.Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await this.Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + + System.Net.HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + + if ((int)_statusCode != 200) + { + var ex = new Microsoft.Rest.Azure.CloudException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + CloudError _errorBody = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, this.Client.DeserializationSettings); + if (_errorBody != null) + { + ex = new Microsoft.Rest.Azure.CloudException(_errorBody.Message); + ex.Body = _errorBody; + } + } + catch (Newtonsoft.Json.JsonException) + { + // Ignore the exception + } + ex.Request = new Microsoft.Rest.HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new Microsoft.Rest.HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + ex.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new Microsoft.Rest.Azure.AzureOperationResponse>(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, this.Client.DeserializationSettings); + } + catch (Newtonsoft.Json.JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new Microsoft.Rest.SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + + + + + + } + /// + /// Gets all virtual network appliances in a resource group. + /// + /// + /// The name of the resource group. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async System.Threading.Tasks.Task>> ListWithHttpMessagesAsync(string resourceGroupName, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + + + + + if (resourceGroupName == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "resourceGroupName"); + } + + if (this.Client.SubscriptionId == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "this.Client.SubscriptionId"); + } + + string apiVersion = "2025-05-01"; + // Tracing + bool _shouldTrace = Microsoft.Rest.ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = Microsoft.Rest.ServiceClientTracing.NextInvocationId.ToString(); + System.Collections.Generic.Dictionary tracingParameters = new System.Collections.Generic.Dictionary(); + tracingParameters.Add("resourceGroupName", resourceGroupName); + tracingParameters.Add("apiVersion", apiVersion); + + + tracingParameters.Add("cancellationToken", cancellationToken); + Microsoft.Rest.ServiceClientTracing.Enter(_invocationId, this, "List", tracingParameters); + } + // Construct URL + + var _baseUrl = this.Client.BaseUri.AbsoluteUri; + var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkAppliances").ToString(); + _url = _url.Replace("{resourceGroupName}", System.Uri.EscapeDataString(resourceGroupName)); + _url = _url.Replace("{subscriptionId}", System.Uri.EscapeDataString(this.Client.SubscriptionId)); + + System.Collections.Generic.List _queryParameters = new System.Collections.Generic.List(); + if (apiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(apiVersion))); + } + if (_queryParameters.Count > 0) + { + _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new System.Net.Http.HttpRequestMessage(); + System.Net.Http.HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new System.Net.Http.HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (this.Client.GenerateClientRequestId != null && this.Client.GenerateClientRequestId.Value) + { + _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); + } + if (this.Client.AcceptLanguage != null) + { + if (_httpRequest.Headers.Contains("accept-language")) + { + _httpRequest.Headers.Remove("accept-language"); + } + _httpRequest.Headers.TryAddWithoutValidation("accept-language", this.Client.AcceptLanguage); + } + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + // Serialize Request + string _requestContent = null; + // Set Credentials + if (this.Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await this.Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await this.Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + + System.Net.HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + + if ((int)_statusCode != 200) + { + var ex = new Microsoft.Rest.Azure.CloudException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + CloudError _errorBody = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, this.Client.DeserializationSettings); + if (_errorBody != null) + { + ex = new Microsoft.Rest.Azure.CloudException(_errorBody.Message); + ex.Body = _errorBody; + } + } + catch (Newtonsoft.Json.JsonException) + { + // Ignore the exception + } + ex.Request = new Microsoft.Rest.HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new Microsoft.Rest.HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + ex.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new Microsoft.Rest.Azure.AzureOperationResponse>(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, this.Client.DeserializationSettings); + } + catch (Newtonsoft.Json.JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new Microsoft.Rest.SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + + + + + + } + /// + /// Deletes the specified virtual network appliance. + /// + /// + /// The name of the resource group. + /// + /// + /// The name of the virtual network appliance. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async System.Threading.Tasks.Task> BeginDeleteWithHttpMessagesAsync(string resourceGroupName, string virtualNetworkApplianceName, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + + + + + if (resourceGroupName == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "resourceGroupName"); + } + + if (virtualNetworkApplianceName == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "virtualNetworkApplianceName"); + } + if (virtualNetworkApplianceName != null) + { + if (!System.Text.RegularExpressions.Regex.IsMatch(virtualNetworkApplianceName, "^[0-9a-zA-Z]([0-9a-zA-Z_.-]{0,62}[0-9a-zA-Z_])?$")) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.Pattern, "virtualNetworkApplianceName", "^[0-9a-zA-Z]([0-9a-zA-Z_.-]{0,62}[0-9a-zA-Z_])?$"); + } + } + if (this.Client.SubscriptionId == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "this.Client.SubscriptionId"); + } + + string apiVersion = "2025-05-01"; + // Tracing + bool _shouldTrace = Microsoft.Rest.ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = Microsoft.Rest.ServiceClientTracing.NextInvocationId.ToString(); + System.Collections.Generic.Dictionary tracingParameters = new System.Collections.Generic.Dictionary(); + tracingParameters.Add("resourceGroupName", resourceGroupName); + tracingParameters.Add("virtualNetworkApplianceName", virtualNetworkApplianceName); + tracingParameters.Add("apiVersion", apiVersion); + + + tracingParameters.Add("cancellationToken", cancellationToken); + Microsoft.Rest.ServiceClientTracing.Enter(_invocationId, this, "BeginDelete", tracingParameters); + } + // Construct URL + + var _baseUrl = this.Client.BaseUri.AbsoluteUri; + var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkAppliances/{virtualNetworkApplianceName}").ToString(); + _url = _url.Replace("{resourceGroupName}", System.Uri.EscapeDataString(resourceGroupName)); + _url = _url.Replace("{virtualNetworkApplianceName}", System.Uri.EscapeDataString(virtualNetworkApplianceName)); + _url = _url.Replace("{subscriptionId}", System.Uri.EscapeDataString(this.Client.SubscriptionId)); + + System.Collections.Generic.List _queryParameters = new System.Collections.Generic.List(); + if (apiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(apiVersion))); + } + if (_queryParameters.Count > 0) + { + _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new System.Net.Http.HttpRequestMessage(); + System.Net.Http.HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new System.Net.Http.HttpMethod("DELETE"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (this.Client.GenerateClientRequestId != null && this.Client.GenerateClientRequestId.Value) + { + _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); + } + if (this.Client.AcceptLanguage != null) + { + if (_httpRequest.Headers.Contains("accept-language")) + { + _httpRequest.Headers.Remove("accept-language"); + } + _httpRequest.Headers.TryAddWithoutValidation("accept-language", this.Client.AcceptLanguage); + } + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + // Serialize Request + string _requestContent = null; + // Set Credentials + if (this.Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await this.Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await this.Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + + System.Net.HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + + if ((int)_statusCode != 202 && (int)_statusCode != 204) + { + var ex = new Microsoft.Rest.Azure.CloudException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + CloudError _errorBody = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, this.Client.DeserializationSettings); + if (_errorBody != null) + { + ex = new Microsoft.Rest.Azure.CloudException(_errorBody.Message); + ex.Body = _errorBody; + } + } + catch (Newtonsoft.Json.JsonException) + { + // Ignore the exception + } + ex.Request = new Microsoft.Rest.HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new Microsoft.Rest.HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + ex.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new Microsoft.Rest.Azure.AzureOperationHeaderResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + try + { + _result.Headers = _httpResponse.GetHeadersAsJson().ToObject(Newtonsoft.Json.JsonSerializer.Create(this.Client.DeserializationSettings)); + } + catch (Newtonsoft.Json.JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new Microsoft.Rest.SerializationException("Unable to deserialize the headers.", _httpResponse.GetHeadersAsJson().ToString(), ex); + } + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + + + + + + } + /// + /// Creates or updates a virtual network appliance. + /// + /// + /// The name of the resource group. + /// + /// + /// The name of the virtual network appliance. + /// + /// + /// Parameters supplied to the create or update virtual network appliance + /// operation. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async System.Threading.Tasks.Task> BeginCreateOrUpdateWithHttpMessagesAsync(string resourceGroupName, string virtualNetworkApplianceName, VirtualNetworkAppliance parameters, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + + + + + if (parameters == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "parameters"); + } + + if (resourceGroupName == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "resourceGroupName"); + } + + if (virtualNetworkApplianceName == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "virtualNetworkApplianceName"); + } + if (virtualNetworkApplianceName != null) + { + if (!System.Text.RegularExpressions.Regex.IsMatch(virtualNetworkApplianceName, "^[0-9a-zA-Z]([0-9a-zA-Z_.-]{0,62}[0-9a-zA-Z_])?$")) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.Pattern, "virtualNetworkApplianceName", "^[0-9a-zA-Z]([0-9a-zA-Z_.-]{0,62}[0-9a-zA-Z_])?$"); + } + } + if (this.Client.SubscriptionId == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "this.Client.SubscriptionId"); + } + + string apiVersion = "2025-05-01"; + // Tracing + bool _shouldTrace = Microsoft.Rest.ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = Microsoft.Rest.ServiceClientTracing.NextInvocationId.ToString(); + System.Collections.Generic.Dictionary tracingParameters = new System.Collections.Generic.Dictionary(); + tracingParameters.Add("resourceGroupName", resourceGroupName); + tracingParameters.Add("virtualNetworkApplianceName", virtualNetworkApplianceName); + tracingParameters.Add("apiVersion", apiVersion); + + tracingParameters.Add("parameters", parameters); + + tracingParameters.Add("cancellationToken", cancellationToken); + Microsoft.Rest.ServiceClientTracing.Enter(_invocationId, this, "BeginCreateOrUpdate", tracingParameters); + } + // Construct URL + + var _baseUrl = this.Client.BaseUri.AbsoluteUri; + var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkAppliances/{virtualNetworkApplianceName}").ToString(); + _url = _url.Replace("{resourceGroupName}", System.Uri.EscapeDataString(resourceGroupName)); + _url = _url.Replace("{virtualNetworkApplianceName}", System.Uri.EscapeDataString(virtualNetworkApplianceName)); + _url = _url.Replace("{subscriptionId}", System.Uri.EscapeDataString(this.Client.SubscriptionId)); + + System.Collections.Generic.List _queryParameters = new System.Collections.Generic.List(); + if (apiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(apiVersion))); + } + if (_queryParameters.Count > 0) + { + _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new System.Net.Http.HttpRequestMessage(); + System.Net.Http.HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new System.Net.Http.HttpMethod("PUT"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (this.Client.GenerateClientRequestId != null && this.Client.GenerateClientRequestId.Value) + { + _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); + } + if (this.Client.AcceptLanguage != null) + { + if (_httpRequest.Headers.Contains("accept-language")) + { + _httpRequest.Headers.Remove("accept-language"); + } + _httpRequest.Headers.TryAddWithoutValidation("accept-language", this.Client.AcceptLanguage); + } + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + // Serialize Request + string _requestContent = null; + if(parameters != null) + { + _requestContent = Microsoft.Rest.Serialization.SafeJsonConvert.SerializeObject(parameters, this.Client.SerializationSettings); + _httpRequest.Content = new System.Net.Http.StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Set Credentials + if (this.Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await this.Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await this.Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + + System.Net.HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + + if ((int)_statusCode != 200 && (int)_statusCode != 201) + { + var ex = new Microsoft.Rest.Azure.CloudException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + CloudError _errorBody = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, this.Client.DeserializationSettings); + if (_errorBody != null) + { + ex = new Microsoft.Rest.Azure.CloudException(_errorBody.Message); + ex.Body = _errorBody; + } + } + catch (Newtonsoft.Json.JsonException) + { + // Ignore the exception + } + ex.Request = new Microsoft.Rest.HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new Microsoft.Rest.HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + ex.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new Microsoft.Rest.Azure.AzureOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, this.Client.DeserializationSettings); + } + catch (Newtonsoft.Json.JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new Microsoft.Rest.SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + // Deserialize Response + if ((int)_statusCode == 201) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, this.Client.DeserializationSettings); + } + catch (Newtonsoft.Json.JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new Microsoft.Rest.SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + + + + + + } + /// + /// Gets all virtual network appliances in a subscription. + /// + /// + /// The NextLink from the previous successful call to List operation. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async System.Threading.Tasks.Task>> ListAllNextWithHttpMessagesAsync(string nextPageLink, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + + if (nextPageLink == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "nextPageLink"); + } + // Tracing + bool _shouldTrace = Microsoft.Rest.ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = Microsoft.Rest.ServiceClientTracing.NextInvocationId.ToString(); + System.Collections.Generic.Dictionary tracingParameters = new System.Collections.Generic.Dictionary(); + tracingParameters.Add("nextPageLink", nextPageLink); + + + tracingParameters.Add("cancellationToken", cancellationToken); + Microsoft.Rest.ServiceClientTracing.Enter(_invocationId, this, "ListAllNext", tracingParameters); + } + // Construct URL + string _url = "{nextLink}"; + _url = _url.Replace("{nextLink}", nextPageLink); + + System.Collections.Generic.List _queryParameters = new System.Collections.Generic.List(); + if (_queryParameters.Count > 0) + { + _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new System.Net.Http.HttpRequestMessage(); + System.Net.Http.HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new System.Net.Http.HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (this.Client.GenerateClientRequestId != null && this.Client.GenerateClientRequestId.Value) + { + _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); + } + if (this.Client.AcceptLanguage != null) + { + if (_httpRequest.Headers.Contains("accept-language")) + { + _httpRequest.Headers.Remove("accept-language"); + } + _httpRequest.Headers.TryAddWithoutValidation("accept-language", this.Client.AcceptLanguage); + } + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + // Serialize Request + string _requestContent = null; + // Set Credentials + if (this.Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await this.Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await this.Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + + System.Net.HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + + if ((int)_statusCode != 200) + { + var ex = new Microsoft.Rest.Azure.CloudException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + CloudError _errorBody = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, this.Client.DeserializationSettings); + if (_errorBody != null) + { + ex = new Microsoft.Rest.Azure.CloudException(_errorBody.Message); + ex.Body = _errorBody; + } + } + catch (Newtonsoft.Json.JsonException) + { + // Ignore the exception + } + ex.Request = new Microsoft.Rest.HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new Microsoft.Rest.HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + ex.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new Microsoft.Rest.Azure.AzureOperationResponse>(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, this.Client.DeserializationSettings); + } + catch (Newtonsoft.Json.JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new Microsoft.Rest.SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + + + + + + } + /// + /// Gets all virtual network appliances in a resource group. + /// + /// + /// The NextLink from the previous successful call to List operation. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async System.Threading.Tasks.Task>> ListNextWithHttpMessagesAsync(string nextPageLink, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + + if (nextPageLink == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "nextPageLink"); + } + // Tracing + bool _shouldTrace = Microsoft.Rest.ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = Microsoft.Rest.ServiceClientTracing.NextInvocationId.ToString(); + System.Collections.Generic.Dictionary tracingParameters = new System.Collections.Generic.Dictionary(); + tracingParameters.Add("nextPageLink", nextPageLink); + + + tracingParameters.Add("cancellationToken", cancellationToken); + Microsoft.Rest.ServiceClientTracing.Enter(_invocationId, this, "ListNext", tracingParameters); + } + // Construct URL + string _url = "{nextLink}"; + _url = _url.Replace("{nextLink}", nextPageLink); + + System.Collections.Generic.List _queryParameters = new System.Collections.Generic.List(); + if (_queryParameters.Count > 0) + { + _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new System.Net.Http.HttpRequestMessage(); + System.Net.Http.HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new System.Net.Http.HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (this.Client.GenerateClientRequestId != null && this.Client.GenerateClientRequestId.Value) + { + _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); + } + if (this.Client.AcceptLanguage != null) + { + if (_httpRequest.Headers.Contains("accept-language")) + { + _httpRequest.Headers.Remove("accept-language"); + } + _httpRequest.Headers.TryAddWithoutValidation("accept-language", this.Client.AcceptLanguage); + } + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + // Serialize Request + string _requestContent = null; + // Set Credentials + if (this.Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await this.Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await this.Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + + System.Net.HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + + if ((int)_statusCode != 200) + { + var ex = new Microsoft.Rest.Azure.CloudException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + CloudError _errorBody = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, this.Client.DeserializationSettings); + if (_errorBody != null) + { + ex = new Microsoft.Rest.Azure.CloudException(_errorBody.Message); + ex.Body = _errorBody; + } + } + catch (Newtonsoft.Json.JsonException) + { + // Ignore the exception + } + ex.Request = new Microsoft.Rest.HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new Microsoft.Rest.HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + ex.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new Microsoft.Rest.Azure.AzureOperationResponse>(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, this.Client.DeserializationSettings); + } + catch (Newtonsoft.Json.JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new Microsoft.Rest.SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + + + + + + } + } +} \ No newline at end of file diff --git a/src/Network/Network.Management.Sdk/Generated/VirtualNetworkAppliancesOperationsExtensions.cs b/src/Network/Network.Management.Sdk/Generated/VirtualNetworkAppliancesOperationsExtensions.cs new file mode 100644 index 000000000000..e9aa6aa44626 --- /dev/null +++ b/src/Network/Network.Management.Sdk/Generated/VirtualNetworkAppliancesOperationsExtensions.cs @@ -0,0 +1,376 @@ +// 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. +namespace Microsoft.Azure.Management.Network +{ + using Microsoft.Rest.Azure; + using Models; + + /// + /// Extension methods for VirtualNetworkAppliancesOperations + /// + public static partial class VirtualNetworkAppliancesOperationsExtensions + { + /// + /// Deletes the specified virtual network appliance. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The name of the resource group. + /// + /// + /// The name of the virtual network appliance. + /// + public static VirtualNetworkAppliancesDeleteHeaders Delete(this IVirtualNetworkAppliancesOperations operations, string resourceGroupName, string virtualNetworkApplianceName) + { + return ((IVirtualNetworkAppliancesOperations)operations).DeleteAsync(resourceGroupName, virtualNetworkApplianceName).GetAwaiter().GetResult(); + } + + /// + /// Deletes the specified virtual network appliance. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The name of the resource group. + /// + /// + /// The name of the virtual network appliance. + /// + /// + /// The cancellation token. + /// + public static async System.Threading.Tasks.Task DeleteAsync(this IVirtualNetworkAppliancesOperations operations, string resourceGroupName, string virtualNetworkApplianceName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + using (var _result = await operations.DeleteWithHttpMessagesAsync(resourceGroupName, virtualNetworkApplianceName, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Headers; + } + } + /// + /// Gets information about the specified virtual network appliance. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The name of the resource group. + /// + /// + /// The name of the virtual network appliance. + /// + public static VirtualNetworkAppliance Get(this IVirtualNetworkAppliancesOperations operations, string resourceGroupName, string virtualNetworkApplianceName) + { + return ((IVirtualNetworkAppliancesOperations)operations).GetAsync(resourceGroupName, virtualNetworkApplianceName).GetAwaiter().GetResult(); + } + + /// + /// Gets information about the specified virtual network appliance. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The name of the resource group. + /// + /// + /// The name of the virtual network appliance. + /// + /// + /// The cancellation token. + /// + public static async System.Threading.Tasks.Task GetAsync(this IVirtualNetworkAppliancesOperations operations, string resourceGroupName, string virtualNetworkApplianceName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + using (var _result = await operations.GetWithHttpMessagesAsync(resourceGroupName, virtualNetworkApplianceName, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + /// + /// Creates or updates a virtual network appliance. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The name of the resource group. + /// + /// + /// The name of the virtual network appliance. + /// + public static VirtualNetworkAppliance CreateOrUpdate(this IVirtualNetworkAppliancesOperations operations, string resourceGroupName, string virtualNetworkApplianceName, VirtualNetworkAppliance parameters) + { + return ((IVirtualNetworkAppliancesOperations)operations).CreateOrUpdateAsync(resourceGroupName, virtualNetworkApplianceName, parameters).GetAwaiter().GetResult(); + } + + /// + /// Creates or updates a virtual network appliance. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The name of the resource group. + /// + /// + /// The name of the virtual network appliance. + /// + /// + /// The cancellation token. + /// + public static async System.Threading.Tasks.Task CreateOrUpdateAsync(this IVirtualNetworkAppliancesOperations operations, string resourceGroupName, string virtualNetworkApplianceName, VirtualNetworkAppliance parameters, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + using (var _result = await operations.CreateOrUpdateWithHttpMessagesAsync(resourceGroupName, virtualNetworkApplianceName, parameters, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + /// + /// Updates a virtual network appliance tags. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The name of the resource group. + /// + /// + /// The name of the virtual network appliance. + /// + public static VirtualNetworkAppliance UpdateTags(this IVirtualNetworkAppliancesOperations operations, string resourceGroupName, string virtualNetworkApplianceName, TagsObject parameters) + { + return ((IVirtualNetworkAppliancesOperations)operations).UpdateTagsAsync(resourceGroupName, virtualNetworkApplianceName, parameters).GetAwaiter().GetResult(); + } + + /// + /// Updates a virtual network appliance tags. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The name of the resource group. + /// + /// + /// The name of the virtual network appliance. + /// + /// + /// The cancellation token. + /// + public static async System.Threading.Tasks.Task UpdateTagsAsync(this IVirtualNetworkAppliancesOperations operations, string resourceGroupName, string virtualNetworkApplianceName, TagsObject parameters, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + using (var _result = await operations.UpdateTagsWithHttpMessagesAsync(resourceGroupName, virtualNetworkApplianceName, parameters, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + /// + /// Gets all virtual network appliances in a subscription. + /// + /// + /// The operations group for this extension method. + /// + public static Microsoft.Rest.Azure.IPage ListAll(this IVirtualNetworkAppliancesOperations operations) + { + return ((IVirtualNetworkAppliancesOperations)operations).ListAllAsync().GetAwaiter().GetResult(); + } + + /// + /// Gets all virtual network appliances in a subscription. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The cancellation token. + /// + public static async System.Threading.Tasks.Task> ListAllAsync(this IVirtualNetworkAppliancesOperations operations, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + using (var _result = await operations.ListAllWithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + /// + /// Gets all virtual network appliances in a resource group. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The name of the resource group. + /// + public static Microsoft.Rest.Azure.IPage List(this IVirtualNetworkAppliancesOperations operations, string resourceGroupName) + { + return ((IVirtualNetworkAppliancesOperations)operations).ListAsync(resourceGroupName).GetAwaiter().GetResult(); + } + + /// + /// Gets all virtual network appliances in a resource group. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The name of the resource group. + /// + /// + /// The cancellation token. + /// + public static async System.Threading.Tasks.Task> ListAsync(this IVirtualNetworkAppliancesOperations operations, string resourceGroupName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + using (var _result = await operations.ListWithHttpMessagesAsync(resourceGroupName, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + /// + /// Deletes the specified virtual network appliance. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The name of the resource group. + /// + /// + /// The name of the virtual network appliance. + /// + public static VirtualNetworkAppliancesDeleteHeaders BeginDelete(this IVirtualNetworkAppliancesOperations operations, string resourceGroupName, string virtualNetworkApplianceName) + { + return ((IVirtualNetworkAppliancesOperations)operations).BeginDeleteAsync(resourceGroupName, virtualNetworkApplianceName).GetAwaiter().GetResult(); + } + + /// + /// Deletes the specified virtual network appliance. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The name of the resource group. + /// + /// + /// The name of the virtual network appliance. + /// + /// + /// The cancellation token. + /// + public static async System.Threading.Tasks.Task BeginDeleteAsync(this IVirtualNetworkAppliancesOperations operations, string resourceGroupName, string virtualNetworkApplianceName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + using (var _result = await operations.BeginDeleteWithHttpMessagesAsync(resourceGroupName, virtualNetworkApplianceName, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Headers; + } + } + /// + /// Creates or updates a virtual network appliance. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The name of the resource group. + /// + /// + /// The name of the virtual network appliance. + /// + public static VirtualNetworkAppliance BeginCreateOrUpdate(this IVirtualNetworkAppliancesOperations operations, string resourceGroupName, string virtualNetworkApplianceName, VirtualNetworkAppliance parameters) + { + return ((IVirtualNetworkAppliancesOperations)operations).BeginCreateOrUpdateAsync(resourceGroupName, virtualNetworkApplianceName, parameters).GetAwaiter().GetResult(); + } + + /// + /// Creates or updates a virtual network appliance. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The name of the resource group. + /// + /// + /// The name of the virtual network appliance. + /// + /// + /// The cancellation token. + /// + public static async System.Threading.Tasks.Task BeginCreateOrUpdateAsync(this IVirtualNetworkAppliancesOperations operations, string resourceGroupName, string virtualNetworkApplianceName, VirtualNetworkAppliance parameters, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + using (var _result = await operations.BeginCreateOrUpdateWithHttpMessagesAsync(resourceGroupName, virtualNetworkApplianceName, parameters, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + /// + /// Gets all virtual network appliances in a subscription. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The NextLink from the previous successful call to List operation. + /// + public static Microsoft.Rest.Azure.IPage ListAllNext(this IVirtualNetworkAppliancesOperations operations, string nextPageLink) + { + return ((IVirtualNetworkAppliancesOperations)operations).ListAllNextAsync(nextPageLink).GetAwaiter().GetResult(); + } + + /// + /// Gets all virtual network appliances in a subscription. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The NextLink from the previous successful call to List operation. + /// + /// + /// The cancellation token. + /// + public static async System.Threading.Tasks.Task> ListAllNextAsync(this IVirtualNetworkAppliancesOperations operations, string nextPageLink, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + using (var _result = await operations.ListAllNextWithHttpMessagesAsync(nextPageLink, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + /// + /// Gets all virtual network appliances in a resource group. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The NextLink from the previous successful call to List operation. + /// + public static Microsoft.Rest.Azure.IPage ListNext(this IVirtualNetworkAppliancesOperations operations, string nextPageLink) + { + return ((IVirtualNetworkAppliancesOperations)operations).ListNextAsync(nextPageLink).GetAwaiter().GetResult(); + } + + /// + /// Gets all virtual network appliances in a resource group. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The NextLink from the previous successful call to List operation. + /// + /// + /// The cancellation token. + /// + public static async System.Threading.Tasks.Task> ListNextAsync(this IVirtualNetworkAppliancesOperations operations, string nextPageLink, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + using (var _result = await operations.ListNextWithHttpMessagesAsync(nextPageLink, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + } +} diff --git a/src/Network/Network.Management.Sdk/README.md b/src/Network/Network.Management.Sdk/README.md index 1c31052ddd98..6a81922bc1b4 100644 --- a/src/Network/Network.Management.Sdk/README.md +++ b/src/Network/Network.Management.Sdk/README.md @@ -87,6 +87,7 @@ input-file: - https://github.com/Azure/azure-rest-api-specs/blob/$(commit)/specification/network/resource-manager/Microsoft.Network/stable/2025-03-01/serviceTags.json - https://github.com/Azure/azure-rest-api-specs/blob/$(commit)/specification/network/resource-manager/Microsoft.Network/stable/2025-03-01/usage.json - https://github.com/Azure/azure-rest-api-specs/blob/$(commit)/specification/network/resource-manager/Microsoft.Network/stable/2025-03-01/virtualNetwork.json + - https://github.com/Azure/azure-rest-api-specs/blob/release-microsoft-network-2025-05-01/specification/network/resource-manager/Microsoft.Network/stable/2025-05-01/virtualNetworkAppliance.json - https://github.com/Azure/azure-rest-api-specs/blob/$(commit)/specification/network/resource-manager/Microsoft.Network/stable/2025-03-01/virtualNetworkGateway.json - https://github.com/Azure/azure-rest-api-specs/blob/$(commit)/specification/network/resource-manager/Microsoft.Network/stable/2025-03-01/virtualNetworkTap.json - https://github.com/Azure/azure-rest-api-specs/blob/$(commit)/specification/network/resource-manager/Microsoft.Network/stable/2025-03-01/virtualRouter.json @@ -108,4 +109,174 @@ directive: model-name: Components1Jq1T4ISchemasManagedserviceidentityPropertiesUserassignedidentitiesAdditionalproperties set: model-name: ManagedServiceIdentityUserAssignedIdentitiesValue -``` \ No newline at end of file + # Merge duplicate AutoGenerated models from VirtualNetworkAppliance swagger (2025-05-01) + # These duplicates are created because the VNA swagger is from a different commit + - where: + model-name: CloudErrorAutoGenerated + set: + model-name: CloudError + - where: + model-name: CloudErrorBodyAutoGenerated + set: + model-name: CloudErrorBody + - where: + model-name: ApplicationGatewayBackendAddressPoolAutoGenerated + set: + model-name: ApplicationGatewayBackendAddressPool + - where: + model-name: ApplicationGatewayBackendAddressPoolPropertiesFormatAutoGenerated + set: + model-name: ApplicationGatewayBackendAddressPoolPropertiesFormat + - where: + model-name: NetworkInterfaceIPConfigurationAutoGenerated + set: + model-name: NetworkInterfaceIPConfiguration + - where: + model-name: NetworkInterfaceIPConfigurationPropertiesFormatAutoGenerated + set: + model-name: NetworkInterfaceIPConfigurationPropertiesFormat + - where: + model-name: VirtualNetworkTapAutoGenerated + set: + model-name: VirtualNetworkTap + - where: + model-name: VirtualNetworkTapPropertiesFormatAutoGenerated + set: + model-name: VirtualNetworkTapPropertiesFormat + - where: + model-name: NetworkInterfaceTapConfigurationAutoGenerated + set: + model-name: NetworkInterfaceTapConfiguration + - where: + model-name: NetworkInterfaceTapConfigurationPropertiesFormatAutoGenerated + set: + model-name: NetworkInterfaceTapConfigurationPropertiesFormat + - where: + model-name: FrontendIPConfigurationAutoGenerated + set: + model-name: FrontendIPConfiguration + - where: + model-name: FrontendIPConfigurationPropertiesFormatAutoGenerated + set: + model-name: FrontendIPConfigurationPropertiesFormat + - where: + model-name: SubnetAutoGenerated + set: + model-name: Subnet + - where: + model-name: SubnetPropertiesFormatAutoGenerated + set: + model-name: SubnetPropertiesFormat + - where: + model-name: NetworkSecurityGroupAutoGenerated + set: + model-name: NetworkSecurityGroup + - where: + model-name: NetworkSecurityGroupPropertiesFormatAutoGenerated + set: + model-name: NetworkSecurityGroupPropertiesFormat + - where: + model-name: NetworkInterfaceAutoGenerated + set: + model-name: NetworkInterface + - where: + model-name: NetworkInterfacePropertiesFormatAutoGenerated + set: + model-name: NetworkInterfacePropertiesFormat + - where: + model-name: PrivateEndpointAutoGenerated + set: + model-name: PrivateEndpoint + - where: + model-name: PrivateEndpointPropertiesAutoGenerated + set: + model-name: PrivateEndpointProperties + - where: + model-name: PrivateLinkServiceAutoGenerated + set: + model-name: PrivateLinkService + - where: + model-name: PrivateLinkServicePropertiesAutoGenerated + set: + model-name: PrivateLinkServiceProperties + - where: + model-name: PrivateLinkServiceIpConfigurationAutoGenerated + set: + model-name: PrivateLinkServiceIpConfiguration + - where: + model-name: PrivateLinkServiceIpConfigurationPropertiesAutoGenerated + set: + model-name: PrivateLinkServiceIpConfigurationProperties + - where: + model-name: PrivateEndpointConnectionAutoGenerated + set: + model-name: PrivateEndpointConnection + - where: + model-name: PrivateEndpointConnectionPropertiesAutoGenerated + set: + model-name: PrivateEndpointConnectionProperties + - where: + model-name: RouteTableAutoGenerated + set: + model-name: RouteTable + - where: + model-name: RouteTablePropertiesFormatAutoGenerated + set: + model-name: RouteTablePropertiesFormat + - where: + model-name: ServiceEndpointPolicyAutoGenerated + set: + model-name: ServiceEndpointPolicy + - where: + model-name: ServiceEndpointPolicyPropertiesFormatAutoGenerated + set: + model-name: ServiceEndpointPolicyPropertiesFormat + - where: + model-name: IPConfigurationAutoGenerated + set: + model-name: IPConfiguration + - where: + model-name: IPConfigurationPropertiesFormatAutoGenerated + set: + model-name: IPConfigurationPropertiesFormat + - where: + model-name: PublicIPAddressAutoGenerated + set: + model-name: PublicIPAddress + - where: + model-name: PublicIPAddressPropertiesFormatAutoGenerated + set: + model-name: PublicIPAddressPropertiesFormat + - where: + model-name: NatGatewayAutoGenerated + set: + model-name: NatGateway + - where: + model-name: NatGatewayPropertiesFormatAutoGenerated + set: + model-name: NatGatewayPropertiesFormat + - where: + model-name: IPConfigurationProfileAutoGenerated + set: + model-name: IPConfigurationProfile + - where: + model-name: IPConfigurationProfilePropertiesFormatAutoGenerated + set: + model-name: IPConfigurationProfilePropertiesFormat + - where: + model-name: BackendAddressPoolAutoGenerated + set: + model-name: BackendAddressPool + - where: + model-name: BackendAddressPoolPropertiesFormatAutoGenerated + set: + model-name: BackendAddressPoolPropertiesFormat + - where: + model-name: InboundNatRuleAutoGenerated + set: + model-name: InboundNatRule + - where: + model-name: InboundNatRulePropertiesFormatAutoGenerated + set: + model-name: InboundNatRulePropertiesFormat +``` diff --git a/src/Network/Network.Test/ScenarioTests/VirtualNetworkApplianceTests.cs b/src/Network/Network.Test/ScenarioTests/VirtualNetworkApplianceTests.cs new file mode 100644 index 000000000000..192d9b0a6f2e --- /dev/null +++ b/src/Network/Network.Test/ScenarioTests/VirtualNetworkApplianceTests.cs @@ -0,0 +1,36 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Network.Test.ScenarioTests; +using Microsoft.WindowsAzure.Commands.ScenarioTest; +using Xunit; + +namespace Commands.Network.Test.ScenarioTests +{ + public class VirtualNetworkApplianceTests : NetworkTestRunner + { + public VirtualNetworkApplianceTests(Xunit.Abstractions.ITestOutputHelper output) + : base(output) + { + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + [Trait(Category.Owner, NrpTeamAlias.nvadev)] + public void TestVirtualNetworkApplianceCRUD() + { + TestRunner.RunTestScript("Test-VirtualNetworkApplianceCRUD"); + } + } +} diff --git a/src/Network/Network.Test/ScenarioTests/VirtualNetworkApplianceTests.ps1 b/src/Network/Network.Test/ScenarioTests/VirtualNetworkApplianceTests.ps1 new file mode 100644 index 000000000000..16e1ede7e82b --- /dev/null +++ b/src/Network/Network.Test/ScenarioTests/VirtualNetworkApplianceTests.ps1 @@ -0,0 +1,101 @@ +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.SYNOPSIS +Tests VirtualNetworkAppliance CRUD operations +#> +function Test-VirtualNetworkApplianceCRUD +{ + # Setup + $rgname = Get-ResourceGroupName + $rname = Get-ResourceName + $location = Get-ProviderLocation "Microsoft.Network/virtualNetworkAppliances" + $vnetName = Get-ResourceName + $subnetName = "VirtualNetworkApplianceSubnet" + + try + { + # Create the resource group + $resourceGroup = New-AzResourceGroup -Name $rgname -Location $location + + # Create a virtual network with defaultOutboundAccess set to false (required by Azure Policy) + $subnet = New-AzVirtualNetworkSubnetConfig -Name $subnetName -AddressPrefix "10.0.0.0/24" -DefaultOutboundAccess $false + $vnet = New-AzVirtualNetwork -Name $vnetName -ResourceGroupName $rgname -Location $location -AddressPrefix "10.0.0.0/16" -Subnet $subnet + $subnet = Get-AzVirtualNetworkSubnetConfig -Name $subnetName -VirtualNetwork $vnet + + # Create VirtualNetworkAppliance + $vna = New-AzVirtualNetworkAppliance -Name $rname -ResourceGroupName $rgname -Location $location -SubnetId $subnet.Id -Bandwidth 50 -Tag @{"testKey" = "testValue"} + + # Verify creation + Assert-NotNull $vna + Assert-AreEqual $rname $vna.Name + Assert-AreEqual $rgname $vna.ResourceGroupName + Assert-NotNull $vna.Location + Assert-AreEqual "testValue" $vna.Tag["testKey"] + Assert-AreEqual "Succeeded" $vna.ProvisioningState + Assert-AreEqual "50" $vna.BandwidthInGbps + Assert-NotNull $vna.Subnet + Assert-NotNull $vna.Subnet.Id + + # Verify IPConfigurations - should have 5 IP configurations + Assert-NotNull $vna.IPConfigurations + Assert-AreEqual 5 $vna.IPConfigurations.Count + + # Verify the first IP configuration is primary + $primaryIpConfig = $vna.IPConfigurations | Where-Object { $_.Primary -eq $true } + Assert-NotNull $primaryIpConfig + Assert-AreEqual 1 @($primaryIpConfig).Count + Assert-NotNull $primaryIpConfig.PrivateIPAddress + + # Verify all IP configurations have required properties + foreach ($ipConfig in $vna.IPConfigurations) { + Assert-NotNull $ipConfig.Name + Assert-NotNull $ipConfig.PrivateIPAddress + Assert-AreEqual "Succeeded" $ipConfig.ProvisioningState + } + Assert-AreEqual $subnet.Id $vna.Subnet.Id + Assert-AreEqual 50 $vna.BandwidthInGbps + + # Get VirtualNetworkAppliance by name + $vnaGet = Get-AzVirtualNetworkAppliance -Name $rname -ResourceGroupName $rgname + Assert-NotNull $vnaGet + Assert-AreEqual $rname $vnaGet.Name + Assert-AreEqual $rgname $vnaGet.ResourceGroupName + Assert-NotNull $vnaGet.Location + Assert-AreEqual "testValue" $vnaGet.Tag["testKey"] + + # List VirtualNetworkAppliances in resource group + $vnaList = Get-AzVirtualNetworkAppliance -ResourceGroupName $rgname + Assert-NotNull $vnaList + Assert-True { $vnaList.Count -ge 1 } + + # Update VirtualNetworkAppliance tags + $vnaUpdated = Update-AzVirtualNetworkAppliance -Name $rname -ResourceGroupName $rgname -Tag @{"updatedKey" = "updatedValue"} + Assert-NotNull $vnaUpdated + Assert-AreEqual "updatedValue" $vnaUpdated.Tag["updatedKey"] + + # Remove VirtualNetworkAppliance + $removeResult = Remove-AzVirtualNetworkAppliance -Name $rname -ResourceGroupName $rgname -Force -PassThru + Assert-AreEqual $true $removeResult + + # Verify removal - should throw + Assert-ThrowsLike { Get-AzVirtualNetworkAppliance -Name $rname -ResourceGroupName $rgname } "*not found*" + } + finally + { + # Cleanup + Clean-ResourceGroup $rgname + } +} diff --git a/src/Network/Network.Test/SessionRecords/Commands.Network.Test.ScenarioTests.VirtualNetworkApplianceTests/TestVirtualNetworkApplianceCRUD.json b/src/Network/Network.Test/SessionRecords/Commands.Network.Test.ScenarioTests.VirtualNetworkApplianceTests/TestVirtualNetworkApplianceCRUD.json new file mode 100644 index 000000000000..893df7dabb3a --- /dev/null +++ b/src/Network/Network.Test/SessionRecords/Commands.Network.Test.ScenarioTests.VirtualNetworkApplianceTests/TestVirtualNetworkApplianceCRUD.json @@ -0,0 +1,1907 @@ +{ + "Entries": [ + { + "RequestUri": "/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/providers/Microsoft.Network?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYTU0ZDUwMGQtYTZiNS00NGYyLWIwOTAtMjFiMGVmMjRhNGZiL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yaz9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "GET", + "RequestHeaders": { + "x-ms-client-request-id": [ + "40bd5fda-6bdc-4622-a0e3-a6b7839a0b07" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/8.0.2225.52707", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.26200", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.110" + ] + }, + "RequestBody": "", + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "1099" + ], + "x-ms-ratelimit-remaining-subscription-global-reads": [ + "16499" + ], + "x-ms-request-id": [ + "d48594ce-1fcc-4f18-a607-dd9366f377b8" + ], + "x-ms-correlation-request-id": [ + "d48594ce-1fcc-4f18-a607-dd9366f377b8" + ], + "x-ms-routing-request-id": [ + "EASTUS2:20260106T174247Z:d48594ce-1fcc-4f18-a607-dd9366f377b8" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Cache": [ + "CONFIG_NOCACHE" + ], + "X-MSEdge-Ref": [ + "Ref A: AB37DFC10CBA46CB807890CE8FCE85B2 Ref B: MNZ221060610035 Ref C: 2026-01-06T17:42:46Z" + ], + "Date": [ + "Tue, 06 Jan 2026 17:42:47 GMT" + ], + "Content-Length": [ + "226761" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/providers/Microsoft.Network\",\r\n \"namespace\": \"Microsoft.Network\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"b4ca0290-4e73-4e31-ade0-c82ecfaabf6a\",\r\n \"roleDefinitionId\": \"18363e25-ff21-4159-ae8d-7dfecb5bd001\"\r\n },\r\n {\r\n \"applicationId\": \"40c49ff3-c6ae-436d-b28e-b8e268841980\",\r\n \"roleDefinitionId\": \"d4d2d679-cce0-429d-9a3b-17118c035f66\"\r\n },\r\n {\r\n \"applicationId\": \"d66e9e8e-53a4-420c-866d-5bb39aaea675\",\r\n \"roleDefinitionId\": \"d4d2d679-cce0-429d-9a3b-17118c035f66\"\r\n },\r\n {\r\n \"applicationId\": \"2cf9eb86-36b5-49dc-86ae-9a63135dfa8c\",\r\n \"roleDefinitionId\": \"13ba9ab4-19f0-4804-adc4-14ece36cc7a1\"\r\n },\r\n {\r\n \"applicationId\": \"7c33bfcb-8d33-48d6-8e60-dc6404003489\",\r\n \"roleDefinitionId\": \"ad6261e4-fa9a-4642-aa5f-104f1b67e9e3\"\r\n },\r\n {\r\n \"applicationId\": \"1e3e4475-288f-4018-a376-df66fd7fac5f\",\r\n \"roleDefinitionId\": \"1d538b69-3d87-4e56-8ff8-25786fd48261\"\r\n },\r\n {\r\n \"applicationId\": \"a0be0c72-870e-46f0-9c49-c98333a996f7\",\r\n \"roleDefinitionId\": \"7ce22727-ffce-45a9-930c-ddb2e56fa131\"\r\n },\r\n {\r\n \"applicationId\": \"486c78bf-a0f7-45f1-92fd-37215929e116\",\r\n \"roleDefinitionId\": \"98a9e526-0a60-4c1f-a33a-ae46e1f8dc0d\"\r\n },\r\n {\r\n \"applicationId\": \"19947cfd-0303-466c-ac3c-fcc19a7a1570\",\r\n \"roleDefinitionId\": \"d813ab6c-bfb7-413e-9462-005b21f0ce09\"\r\n },\r\n {\r\n \"applicationId\": \"341b7f3d-69b3-47f9-9ce7-5b7f4945fdbd\",\r\n \"roleDefinitionId\": \"8141843c-c51c-4c1e-a5bf-0d351594b86c\"\r\n },\r\n {\r\n \"applicationId\": \"328fd23b-de6e-462c-9433-e207470a5727\",\r\n \"roleDefinitionId\": \"79e29e06-4056-41e5-a6b2-959f1f47747e\"\r\n },\r\n {\r\n \"applicationId\": \"6d057c82-a784-47ae-8d12-ca7b38cf06b4\",\r\n \"roleDefinitionId\": \"c27dd31e-c1e5-4ab0-93e1-a12ba34f182e\",\r\n \"managedByRoleDefinitionId\": \"82e8942a-bcb6-444a-b1c4-31a3ea463a7d\"\r\n },\r\n {\r\n \"applicationId\": \"79d7fb34-4bef-4417-8184-ff713af7a679\",\r\n \"roleDefinitionId\": \"1c1f11ef-abfa-4abe-a02b-226771d07fc7\"\r\n },\r\n {\r\n \"applicationId\": \"6e02f8e9-db9b-4eb5-aa5a-7c8968375f68\",\r\n \"roleDefinitionId\": \"787424c7-f9d2-416b-a939-4d59deb2d259\"\r\n },\r\n {\r\n \"applicationId\": \"60b2e7d5-a27f-426d-a6b1-acced0846fdf\",\r\n \"roleDefinitionId\": \"0edb7c43-ed90-4da9-9ca2-e9a5d1521b00\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"dnszones\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2023-07-01-preview\",\r\n \"2018-05-01\",\r\n \"2018-03-01-preview\",\r\n \"2017-10-01\",\r\n \"2017-09-15-preview\",\r\n \"2017-09-01\",\r\n \"2016-04-01\",\r\n \"2015-05-04-preview\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove\"\r\n },\r\n {\r\n \"resourceType\": \"dnsOperationResults\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2023-07-01-preview\",\r\n \"2018-05-01\",\r\n \"2018-03-01-preview\",\r\n \"2017-10-01\",\r\n \"2017-09-15-preview\",\r\n \"2017-09-01\",\r\n \"2016-04-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"dnsOperationStatuses\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2023-07-01-preview\",\r\n \"2018-05-01\",\r\n \"2018-03-01-preview\",\r\n \"2017-10-01\",\r\n \"2017-09-15-preview\",\r\n \"2017-09-01\",\r\n \"2016-04-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"getDnsResourceReference\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2023-07-01-preview\",\r\n \"2018-05-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"internalNotify\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2023-07-01-preview\",\r\n \"2018-05-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"dnszones/A\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2023-07-01-preview\",\r\n \"2018-05-01\",\r\n \"2018-03-01-preview\",\r\n \"2017-10-01\",\r\n \"2017-09-15-preview\",\r\n \"2017-09-01\",\r\n \"2016-04-01\",\r\n \"2015-05-04-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"dnszones/AAAA\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2023-07-01-preview\",\r\n \"2018-05-01\",\r\n \"2018-03-01-preview\",\r\n \"2017-10-01\",\r\n \"2017-09-15-preview\",\r\n \"2017-09-01\",\r\n \"2016-04-01\",\r\n \"2015-05-04-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"dnszones/CNAME\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2023-07-01-preview\",\r\n \"2018-05-01\",\r\n \"2018-03-01-preview\",\r\n \"2017-10-01\",\r\n \"2017-09-15-preview\",\r\n \"2017-09-01\",\r\n \"2016-04-01\",\r\n \"2015-05-04-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"dnszones/PTR\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2023-07-01-preview\",\r\n \"2018-05-01\",\r\n \"2018-03-01-preview\",\r\n \"2017-10-01\",\r\n \"2017-09-15-preview\",\r\n \"2017-09-01\",\r\n \"2016-04-01\",\r\n \"2015-05-04-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"dnszones/MX\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2023-07-01-preview\",\r\n \"2018-05-01\",\r\n \"2018-03-01-preview\",\r\n \"2017-10-01\",\r\n \"2017-09-15-preview\",\r\n \"2017-09-01\",\r\n \"2016-04-01\",\r\n \"2015-05-04-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"dnszones/TXT\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2023-07-01-preview\",\r\n \"2018-05-01\",\r\n \"2018-03-01-preview\",\r\n \"2017-10-01\",\r\n \"2017-09-15-preview\",\r\n \"2017-09-01\",\r\n \"2016-04-01\",\r\n \"2015-05-04-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"dnszones/SRV\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2023-07-01-preview\",\r\n \"2018-05-01\",\r\n \"2018-03-01-preview\",\r\n \"2017-10-01\",\r\n \"2017-09-15-preview\",\r\n \"2017-09-01\",\r\n \"2016-04-01\",\r\n \"2015-05-04-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"dnszones/SOA\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2023-07-01-preview\",\r\n \"2018-05-01\",\r\n \"2018-03-01-preview\",\r\n \"2017-10-01\",\r\n \"2017-09-15-preview\",\r\n \"2017-09-01\",\r\n \"2016-04-01\",\r\n \"2015-05-04-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"dnszones/NS\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2023-07-01-preview\",\r\n \"2018-05-01\",\r\n \"2018-03-01-preview\",\r\n \"2017-10-01\",\r\n \"2017-09-15-preview\",\r\n \"2017-09-01\",\r\n \"2016-04-01\",\r\n \"2015-05-04-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"dnszones/CAA\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2023-07-01-preview\",\r\n \"2018-05-01\",\r\n \"2018-03-01-preview\",\r\n \"2017-10-01\",\r\n \"2017-09-15-preview\",\r\n \"2017-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"dnszones/DS\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2023-07-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"dnszones/TLSA\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2023-07-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"dnszones/NAPTR\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2023-07-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"dnszones/recordsets\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2023-07-01-preview\",\r\n \"2018-05-01\",\r\n \"2018-03-01-preview\",\r\n \"2017-10-01\",\r\n \"2017-09-15-preview\",\r\n \"2017-09-01\",\r\n \"2016-04-01\",\r\n \"2015-05-04-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"dnszones/all\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2023-07-01-preview\",\r\n \"2018-05-01\",\r\n \"2018-03-01-preview\",\r\n \"2017-10-01\",\r\n \"2017-09-15-preview\",\r\n \"2017-09-01\",\r\n \"2016-04-01\",\r\n \"2015-05-04-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"dnszones/dnssecConfigs\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2023-07-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"dnsResolvers\",\r\n \"locations\": [\r\n \"West Central US\",\r\n \"East US 2\",\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"Australia East\",\r\n \"UK South\",\r\n \"South Central US\",\r\n \"East US\",\r\n \"North Central US\",\r\n \"West US 2\",\r\n \"West US 3\",\r\n \"Southeast Asia\",\r\n \"Central India\",\r\n \"Canada Central\",\r\n \"Central US\",\r\n \"France Central\",\r\n \"Japan East\",\r\n \"Germany West Central\",\r\n \"South Africa North\",\r\n \"Korea Central\",\r\n \"Sweden Central\",\r\n \"East Asia\",\r\n \"Switzerland North\",\r\n \"Brazil South\",\r\n \"West US\",\r\n \"Norway East\",\r\n \"UAE North\",\r\n \"Australia Southeast\",\r\n \"Canada East\",\r\n \"Japan West\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Uk West\",\r\n \"South India\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Germany North\",\r\n \"Australia Central\",\r\n \"UAE Central\",\r\n \"New Zealand North\",\r\n \"Qatar Central\",\r\n \"Malaysia West\",\r\n \"Indonesia Central\",\r\n \"Austria East\",\r\n \"Chile Central\",\r\n \"Belgium Central\",\r\n \"Korea South\",\r\n \"Poland Central\",\r\n \"Switzerland West\",\r\n \"France South\",\r\n \"Norway West\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-10-01-preview\",\r\n \"2025-05-01\",\r\n \"2023-07-01-preview\",\r\n \"2023-07-01\",\r\n \"2022-07-01\",\r\n \"2020-04-01-preview\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove\"\r\n },\r\n {\r\n \"resourceType\": \"dnsResolvers/inboundEndpoints\",\r\n \"locations\": [\r\n \"West Central US\",\r\n \"East US 2\",\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"Australia East\",\r\n \"UK South\",\r\n \"South Central US\",\r\n \"East US\",\r\n \"North Central US\",\r\n \"West US 2\",\r\n \"West US 3\",\r\n \"Southeast Asia\",\r\n \"Central India\",\r\n \"Canada Central\",\r\n \"Central US\",\r\n \"France Central\",\r\n \"Japan East\",\r\n \"Germany West Central\",\r\n \"South Africa North\",\r\n \"Korea Central\",\r\n \"Sweden Central\",\r\n \"East Asia\",\r\n \"Switzerland North\",\r\n \"Brazil South\",\r\n \"West US\",\r\n \"Norway East\",\r\n \"UAE North\",\r\n \"Australia Southeast\",\r\n \"Canada East\",\r\n \"Japan West\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Uk West\",\r\n \"South India\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Germany North\",\r\n \"Australia Central\",\r\n \"UAE Central\",\r\n \"New Zealand North\",\r\n \"Qatar Central\",\r\n \"Malaysia West\",\r\n \"Indonesia Central\",\r\n \"Austria East\",\r\n \"Chile Central\",\r\n \"Belgium Central\",\r\n \"Korea South\",\r\n \"Poland Central\",\r\n \"Switzerland West\",\r\n \"France South\",\r\n \"Norway West\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-10-01-preview\",\r\n \"2025-05-01\",\r\n \"2023-07-01-preview\",\r\n \"2023-07-01\",\r\n \"2022-07-01\",\r\n \"2020-04-01-preview\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove\"\r\n },\r\n {\r\n \"resourceType\": \"dnsResolvers/outboundEndpoints\",\r\n \"locations\": [\r\n \"West Central US\",\r\n \"East US 2\",\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"Australia East\",\r\n \"UK South\",\r\n \"South Central US\",\r\n \"East US\",\r\n \"North Central US\",\r\n \"West US 2\",\r\n \"West US 3\",\r\n \"Southeast Asia\",\r\n \"Central India\",\r\n \"Canada Central\",\r\n \"Central US\",\r\n \"France Central\",\r\n \"Japan East\",\r\n \"Germany West Central\",\r\n \"South Africa North\",\r\n \"Korea Central\",\r\n \"Sweden Central\",\r\n \"East Asia\",\r\n \"Switzerland North\",\r\n \"Brazil South\",\r\n \"West US\",\r\n \"Norway East\",\r\n \"UAE North\",\r\n \"Australia Southeast\",\r\n \"Canada East\",\r\n \"Japan West\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Uk West\",\r\n \"South India\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Germany North\",\r\n \"Australia Central\",\r\n \"UAE Central\",\r\n \"New Zealand North\",\r\n \"Qatar Central\",\r\n \"Malaysia West\",\r\n \"Indonesia Central\",\r\n \"Austria East\",\r\n \"Chile Central\",\r\n \"Belgium Central\",\r\n \"Korea South\",\r\n \"Poland Central\",\r\n \"Switzerland West\",\r\n \"France South\",\r\n \"Norway West\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-10-01-preview\",\r\n \"2025-05-01\",\r\n \"2023-07-01-preview\",\r\n \"2023-07-01\",\r\n \"2022-07-01\",\r\n \"2020-04-01-preview\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove\"\r\n },\r\n {\r\n \"resourceType\": \"dnsForwardingRulesets\",\r\n \"locations\": [\r\n \"West Central US\",\r\n \"East US 2\",\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"Australia East\",\r\n \"UK South\",\r\n \"South Central US\",\r\n \"East US\",\r\n \"North Central US\",\r\n \"West US 2\",\r\n \"West US 3\",\r\n \"Southeast Asia\",\r\n \"Central India\",\r\n \"Canada Central\",\r\n \"Central US\",\r\n \"France Central\",\r\n \"Japan East\",\r\n \"Germany West Central\",\r\n \"South Africa North\",\r\n \"Korea Central\",\r\n \"Sweden Central\",\r\n \"East Asia\",\r\n \"Switzerland North\",\r\n \"Brazil South\",\r\n \"West US\",\r\n \"Norway East\",\r\n \"UAE North\",\r\n \"Australia Southeast\",\r\n \"Canada East\",\r\n \"Japan West\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Uk West\",\r\n \"South India\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Germany North\",\r\n \"Australia Central\",\r\n \"UAE Central\",\r\n \"New Zealand North\",\r\n \"Qatar Central\",\r\n \"Malaysia West\",\r\n \"Indonesia Central\",\r\n \"Austria East\",\r\n \"Chile Central\",\r\n \"Belgium Central\",\r\n \"Korea South\",\r\n \"Poland Central\",\r\n \"Switzerland West\",\r\n \"France South\",\r\n \"Norway West\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-10-01-preview\",\r\n \"2025-05-01\",\r\n \"2023-07-01-preview\",\r\n \"2023-07-01\",\r\n \"2022-07-01\",\r\n \"2020-04-01-preview\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove\"\r\n },\r\n {\r\n \"resourceType\": \"dnsForwardingRulesets/forwardingRules\",\r\n \"locations\": [\r\n \"West Central US\",\r\n \"East US 2\",\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"Australia East\",\r\n \"UK South\",\r\n \"South Central US\",\r\n \"East US\",\r\n \"North Central US\",\r\n \"West US 2\",\r\n \"West US 3\",\r\n \"Southeast Asia\",\r\n \"Central India\",\r\n \"Canada Central\",\r\n \"Central US\",\r\n \"France Central\",\r\n \"Japan East\",\r\n \"Germany West Central\",\r\n \"South Africa North\",\r\n \"Korea Central\",\r\n \"Sweden Central\",\r\n \"East Asia\",\r\n \"Switzerland North\",\r\n \"Brazil South\",\r\n \"West US\",\r\n \"Norway East\",\r\n \"UAE North\",\r\n \"Australia Southeast\",\r\n \"Canada East\",\r\n \"Japan West\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Uk West\",\r\n \"South India\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Germany North\",\r\n \"Australia Central\",\r\n \"UAE Central\",\r\n \"New Zealand North\",\r\n \"Qatar Central\",\r\n \"Malaysia West\",\r\n \"Indonesia Central\",\r\n \"Austria East\",\r\n \"Chile Central\",\r\n \"Belgium Central\",\r\n \"Korea South\",\r\n \"Poland Central\",\r\n \"Switzerland West\",\r\n \"France South\",\r\n \"Norway West\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-10-01-preview\",\r\n \"2025-05-01\",\r\n \"2023-07-01-preview\",\r\n \"2023-07-01\",\r\n \"2022-07-01\",\r\n \"2020-04-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"dnsForwardingRulesets/virtualNetworkLinks\",\r\n \"locations\": [\r\n \"West Central US\",\r\n \"East US 2\",\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"Australia East\",\r\n \"UK South\",\r\n \"South Central US\",\r\n \"East US\",\r\n \"North Central US\",\r\n \"West US 2\",\r\n \"West US 3\",\r\n \"Southeast Asia\",\r\n \"Central India\",\r\n \"Canada Central\",\r\n \"Central US\",\r\n \"France Central\",\r\n \"Japan East\",\r\n \"Germany West Central\",\r\n \"South Africa North\",\r\n \"Korea Central\",\r\n \"Sweden Central\",\r\n \"East Asia\",\r\n \"Switzerland North\",\r\n \"Brazil South\",\r\n \"West US\",\r\n \"Norway East\",\r\n \"UAE North\",\r\n \"Australia Southeast\",\r\n \"Canada East\",\r\n \"Japan West\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Uk West\",\r\n \"South India\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Germany North\",\r\n \"Australia Central\",\r\n \"UAE Central\",\r\n \"New Zealand North\",\r\n \"Qatar Central\",\r\n \"Malaysia West\",\r\n \"Indonesia Central\",\r\n \"Austria East\",\r\n \"Chile Central\",\r\n \"Belgium Central\",\r\n \"Korea South\",\r\n \"Poland Central\",\r\n \"Switzerland West\",\r\n \"France South\",\r\n \"Norway West\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-10-01-preview\",\r\n \"2025-05-01\",\r\n \"2023-07-01-preview\",\r\n \"2023-07-01\",\r\n \"2022-07-01\",\r\n \"2020-04-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"virtualNetworks/listDnsResolvers\",\r\n \"locations\": [\r\n \"West Central US\",\r\n \"East US 2\",\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"Australia East\",\r\n \"UK South\",\r\n \"South Central US\",\r\n \"East US\",\r\n \"North Central US\",\r\n \"West US 2\",\r\n \"West US 3\",\r\n \"Southeast Asia\",\r\n \"Central India\",\r\n \"Canada Central\",\r\n \"Central US\",\r\n \"France Central\",\r\n \"Japan East\",\r\n \"Germany West Central\",\r\n \"South Africa North\",\r\n \"Korea Central\",\r\n \"Sweden Central\",\r\n \"East Asia\",\r\n \"Switzerland North\",\r\n \"Brazil South\",\r\n \"West US\",\r\n \"Norway East\",\r\n \"UAE North\",\r\n \"Australia Southeast\",\r\n \"Canada East\",\r\n \"Japan West\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Uk West\",\r\n \"South India\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Germany North\",\r\n \"Australia Central\",\r\n \"UAE Central\",\r\n \"New Zealand North\",\r\n \"Qatar Central\",\r\n \"Malaysia West\",\r\n \"Indonesia Central\",\r\n \"Austria East\",\r\n \"Chile Central\",\r\n \"Belgium Central\",\r\n \"Korea South\",\r\n \"Poland Central\",\r\n \"Switzerland West\",\r\n \"France South\",\r\n \"Norway West\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-10-01-preview\",\r\n \"2025-05-01\",\r\n \"2023-07-01-preview\",\r\n \"2023-07-01\",\r\n \"2022-07-01\",\r\n \"2020-04-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"virtualNetworks/listDnsForwardingRulesets\",\r\n \"locations\": [\r\n \"West Central US\",\r\n \"East US 2\",\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"Australia East\",\r\n \"UK South\",\r\n \"South Central US\",\r\n \"East US\",\r\n \"North Central US\",\r\n \"West US 2\",\r\n \"West US 3\",\r\n \"Southeast Asia\",\r\n \"Central India\",\r\n \"Canada Central\",\r\n \"Central US\",\r\n \"France Central\",\r\n \"Japan East\",\r\n \"Germany West Central\",\r\n \"South Africa North\",\r\n \"Korea Central\",\r\n \"Sweden Central\",\r\n \"East Asia\",\r\n \"Switzerland North\",\r\n \"Brazil South\",\r\n \"West US\",\r\n \"Norway East\",\r\n \"UAE North\",\r\n \"Australia Southeast\",\r\n \"Canada East\",\r\n \"Japan West\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Uk West\",\r\n \"South India\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Germany North\",\r\n \"Australia Central\",\r\n \"UAE Central\",\r\n \"New Zealand North\",\r\n \"Qatar Central\",\r\n \"Malaysia West\",\r\n \"Indonesia Central\",\r\n \"Austria East\",\r\n \"Chile Central\",\r\n \"Belgium Central\",\r\n \"Korea South\",\r\n \"Poland Central\",\r\n \"Switzerland West\",\r\n \"France South\",\r\n \"Norway West\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-10-01-preview\",\r\n \"2025-05-01\",\r\n \"2023-07-01-preview\",\r\n \"2023-07-01\",\r\n \"2022-07-01\",\r\n \"2020-04-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/dnsResolverOperationResults\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2025-10-01-preview\",\r\n \"2025-05-01\",\r\n \"2023-07-01-preview\",\r\n \"2023-07-01\",\r\n \"2022-07-01\",\r\n \"2020-04-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/dnsResolverOperationStatuses\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2025-10-01-preview\",\r\n \"2025-05-01\",\r\n \"2023-07-01-preview\",\r\n \"2023-07-01\",\r\n \"2022-07-01\",\r\n \"2020-04-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"dnsResolverPolicies\",\r\n \"locations\": [\r\n \"West Central US\",\r\n \"East US\",\r\n \"UK South\",\r\n \"East US 2\",\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"Australia East\",\r\n \"South Central US\",\r\n \"North Central US\",\r\n \"West US 2\",\r\n \"West US 3\",\r\n \"Southeast Asia\",\r\n \"Central India\",\r\n \"Canada Central\",\r\n \"Central US\",\r\n \"France Central\",\r\n \"Japan East\",\r\n \"Germany West Central\",\r\n \"South Africa North\",\r\n \"Korea Central\",\r\n \"Sweden Central\",\r\n \"East Asia\",\r\n \"Switzerland North\",\r\n \"Brazil South\",\r\n \"West US\",\r\n \"Norway East\",\r\n \"UAE North\",\r\n \"Australia Southeast\",\r\n \"Canada East\",\r\n \"Japan West\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Uk West\",\r\n \"South India\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Germany North\",\r\n \"Australia Central\",\r\n \"UAE Central\",\r\n \"New Zealand North\",\r\n \"Qatar Central\",\r\n \"Malaysia West\",\r\n \"Indonesia Central\",\r\n \"Austria East\",\r\n \"Chile Central\",\r\n \"Belgium Central\",\r\n \"Korea South\",\r\n \"Poland Central\",\r\n \"Switzerland West\",\r\n \"France South\",\r\n \"Norway West\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-10-01-preview\",\r\n \"2025-05-01\",\r\n \"2023-07-01-preview\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove\"\r\n },\r\n {\r\n \"resourceType\": \"dnsResolverPolicies/dnsSecurityRules\",\r\n \"locations\": [\r\n \"West Central US\",\r\n \"East US\",\r\n \"UK South\",\r\n \"East US 2\",\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"Australia East\",\r\n \"South Central US\",\r\n \"North Central US\",\r\n \"West US 2\",\r\n \"West US 3\",\r\n \"Southeast Asia\",\r\n \"Central India\",\r\n \"Canada Central\",\r\n \"Central US\",\r\n \"France Central\",\r\n \"Japan East\",\r\n \"Germany West Central\",\r\n \"South Africa North\",\r\n \"Korea Central\",\r\n \"Sweden Central\",\r\n \"East Asia\",\r\n \"Switzerland North\",\r\n \"Brazil South\",\r\n \"West US\",\r\n \"Norway East\",\r\n \"UAE North\",\r\n \"Australia Southeast\",\r\n \"Canada East\",\r\n \"Japan West\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Uk West\",\r\n \"South India\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Germany North\",\r\n \"Australia Central\",\r\n \"UAE Central\",\r\n \"New Zealand North\",\r\n \"Qatar Central\",\r\n \"Malaysia West\",\r\n \"Indonesia Central\",\r\n \"Austria East\",\r\n \"Chile Central\",\r\n \"Belgium Central\",\r\n \"Korea South\",\r\n \"Poland Central\",\r\n \"Switzerland West\",\r\n \"France South\",\r\n \"Norway West\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-10-01-preview\",\r\n \"2025-05-01\",\r\n \"2023-07-01-preview\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove\"\r\n },\r\n {\r\n \"resourceType\": \"dnsResolverPolicies/virtualNetworkLinks\",\r\n \"locations\": [\r\n \"West Central US\",\r\n \"East US\",\r\n \"UK South\",\r\n \"East US 2\",\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"Australia East\",\r\n \"South Central US\",\r\n \"North Central US\",\r\n \"West US 2\",\r\n \"West US 3\",\r\n \"Southeast Asia\",\r\n \"Central India\",\r\n \"Canada Central\",\r\n \"Central US\",\r\n \"France Central\",\r\n \"Japan East\",\r\n \"Germany West Central\",\r\n \"South Africa North\",\r\n \"Korea Central\",\r\n \"Sweden Central\",\r\n \"East Asia\",\r\n \"Switzerland North\",\r\n \"Brazil South\",\r\n \"West US\",\r\n \"Norway East\",\r\n \"UAE North\",\r\n \"Australia Southeast\",\r\n \"Canada East\",\r\n \"Japan West\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Uk West\",\r\n \"South India\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Germany North\",\r\n \"Australia Central\",\r\n \"UAE Central\",\r\n \"New Zealand North\",\r\n \"Qatar Central\",\r\n \"Malaysia West\",\r\n \"Indonesia Central\",\r\n \"Austria East\",\r\n \"Chile Central\",\r\n \"Belgium Central\",\r\n \"Korea South\",\r\n \"Poland Central\",\r\n \"Switzerland West\",\r\n \"France South\",\r\n \"Norway West\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-10-01-preview\",\r\n \"2025-05-01\",\r\n \"2023-07-01-preview\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove\"\r\n },\r\n {\r\n \"resourceType\": \"virtualNetworks/listDnsResolverPolicies\",\r\n \"locations\": [\r\n \"West Central US\",\r\n \"East US\",\r\n \"UK South\",\r\n \"East US 2\",\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"Australia East\",\r\n \"South Central US\",\r\n \"North Central US\",\r\n \"West US 2\",\r\n \"West US 3\",\r\n \"Southeast Asia\",\r\n \"Central India\",\r\n \"Canada Central\",\r\n \"Central US\",\r\n \"France Central\",\r\n \"Japan East\",\r\n \"Germany West Central\",\r\n \"South Africa North\",\r\n \"Korea Central\",\r\n \"Sweden Central\",\r\n \"East Asia\",\r\n \"Switzerland North\",\r\n \"Brazil South\",\r\n \"West US\",\r\n \"Norway East\",\r\n \"UAE North\",\r\n \"Australia Southeast\",\r\n \"Canada East\",\r\n \"Japan West\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Uk West\",\r\n \"South India\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Germany North\",\r\n \"Australia Central\",\r\n \"UAE Central\",\r\n \"New Zealand North\",\r\n \"Qatar Central\",\r\n \"Malaysia West\",\r\n \"Indonesia Central\",\r\n \"Austria East\",\r\n \"Chile Central\",\r\n \"Belgium Central\",\r\n \"Korea South\",\r\n \"Poland Central\",\r\n \"Switzerland West\",\r\n \"France South\",\r\n \"Norway West\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-10-01-preview\",\r\n \"2025-05-01\",\r\n \"2023-07-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"dnsResolverDomainLists\",\r\n \"locations\": [\r\n \"West Central US\",\r\n \"East US\",\r\n \"UK South\",\r\n \"East US 2\",\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"Australia East\",\r\n \"South Central US\",\r\n \"North Central US\",\r\n \"West US 2\",\r\n \"West US 3\",\r\n \"Southeast Asia\",\r\n \"Central India\",\r\n \"Canada Central\",\r\n \"Central US\",\r\n \"France Central\",\r\n \"Japan East\",\r\n \"Germany West Central\",\r\n \"South Africa North\",\r\n \"Korea Central\",\r\n \"Sweden Central\",\r\n \"East Asia\",\r\n \"Switzerland North\",\r\n \"Brazil South\",\r\n \"West US\",\r\n \"Norway East\",\r\n \"UAE North\",\r\n \"Australia Southeast\",\r\n \"Canada East\",\r\n \"Japan West\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Uk West\",\r\n \"South India\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Germany North\",\r\n \"Australia Central\",\r\n \"UAE Central\",\r\n \"New Zealand North\",\r\n \"Qatar Central\",\r\n \"Malaysia West\",\r\n \"Indonesia Central\",\r\n \"Austria East\",\r\n \"Chile Central\",\r\n \"Belgium Central\",\r\n \"Korea South\",\r\n \"Poland Central\",\r\n \"Switzerland West\",\r\n \"France South\",\r\n \"Norway West\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-10-01-preview\",\r\n \"2025-05-01\",\r\n \"2023-07-01-preview\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove\"\r\n },\r\n {\r\n \"resourceType\": \"dnsResolverDomainLists/bulk\",\r\n \"locations\": [\r\n \"West Central US\",\r\n \"East US\",\r\n \"UK South\",\r\n \"East US 2\",\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"Australia East\",\r\n \"South Central US\",\r\n \"North Central US\",\r\n \"West US 2\",\r\n \"West US 3\",\r\n \"Southeast Asia\",\r\n \"Central India\",\r\n \"Canada Central\",\r\n \"Central US\",\r\n \"France Central\",\r\n \"Japan East\",\r\n \"Germany West Central\",\r\n \"South Africa North\",\r\n \"Korea Central\",\r\n \"Sweden Central\",\r\n \"East Asia\",\r\n \"Switzerland North\",\r\n \"Brazil South\",\r\n \"West US\",\r\n \"Norway East\",\r\n \"UAE North\",\r\n \"Australia Southeast\",\r\n \"Canada East\",\r\n \"Japan West\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Uk West\",\r\n \"South India\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Germany North\",\r\n \"Australia Central\",\r\n \"UAE Central\",\r\n \"New Zealand North\",\r\n \"Qatar Central\",\r\n \"Malaysia West\",\r\n \"Indonesia Central\",\r\n \"Austria East\",\r\n \"Chile Central\",\r\n \"Belgium Central\",\r\n \"Korea South\",\r\n \"Poland Central\",\r\n \"France South\",\r\n \"Norway West\",\r\n \"Switzerland West\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-10-01-preview\",\r\n \"2025-05-01\",\r\n \"2023-07-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/dnsResolverPolicyOperationResults\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2025-10-01-preview\",\r\n \"2025-05-01\",\r\n \"2023-07-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/dnsResolverPolicyOperationStatuses\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2025-10-01-preview\",\r\n \"2025-05-01\",\r\n \"2023-07-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"checkFrontdoorNameAvailability\",\r\n \"locations\": [\r\n \"global\",\r\n \"Central US\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"West US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-10-01\",\r\n \"2021-06-01\",\r\n \"2020-07-01\",\r\n \"2020-05-01\",\r\n \"2020-01-01\",\r\n \"2019-08-01\",\r\n \"2019-05-01\",\r\n \"2019-04-01\",\r\n \"2018-08-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"frontdoorWebApplicationFirewallManagedRuleSets\",\r\n \"locations\": [\r\n \"global\",\r\n \"Central US\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"West US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-10-01\",\r\n \"2025-05-16-preview\",\r\n \"2025-03-01\",\r\n \"2025-01-01-preview\",\r\n \"2024-02-01\",\r\n \"2022-05-01\",\r\n \"2020-11-01\",\r\n \"2020-04-01\",\r\n \"2019-10-01\",\r\n \"2019-03-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"virtualNetworkGateways\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2018-01-01\",\r\n \"2017-11-01\",\r\n \"2017-10-01\",\r\n \"2017-09-01\",\r\n \"2017-08-01\",\r\n \"2017-06-01\",\r\n \"2017-04-01\",\r\n \"2017-03-01\",\r\n \"2016-12-01\",\r\n \"2016-11-01\",\r\n \"2016-10-01\",\r\n \"2016-09-01\",\r\n \"2016-08-01\",\r\n \"2016-07-01\",\r\n \"2016-06-01\",\r\n \"2016-03-30\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\",\r\n \"2014-12-01-preview\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove\"\r\n },\r\n {\r\n \"resourceType\": \"localNetworkGateways\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2018-01-01\",\r\n \"2017-11-01\",\r\n \"2017-10-01\",\r\n \"2017-09-01\",\r\n \"2017-08-01\",\r\n \"2017-06-01\",\r\n \"2017-04-01\",\r\n \"2017-03-01\",\r\n \"2016-12-01\",\r\n \"2016-11-01\",\r\n \"2016-10-01\",\r\n \"2016-09-01\",\r\n \"2016-08-01\",\r\n \"2016-07-01\",\r\n \"2016-06-01\",\r\n \"2016-03-30\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\",\r\n \"2014-12-01-preview\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove\"\r\n },\r\n {\r\n \"resourceType\": \"connections\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2018-01-01\",\r\n \"2017-11-01\",\r\n \"2017-10-01\",\r\n \"2017-09-01\",\r\n \"2017-08-01\",\r\n \"2017-06-01\",\r\n \"2017-04-01\",\r\n \"2017-03-01\",\r\n \"2016-12-01\",\r\n \"2016-11-01\",\r\n \"2016-10-01\",\r\n \"2016-09-01\",\r\n \"2016-08-01\",\r\n \"2016-07-01\",\r\n \"2016-06-01\",\r\n \"2016-03-30\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\",\r\n \"2014-12-01-preview\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove\"\r\n },\r\n {\r\n \"resourceType\": \"applicationGateways\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2018-01-01\",\r\n \"2017-11-01\",\r\n \"2017-10-01\",\r\n \"2017-09-01\",\r\n \"2017-08-01\",\r\n \"2017-06-01\",\r\n \"2017-04-01\",\r\n \"2017-03-01\",\r\n \"2016-12-01\",\r\n \"2016-11-01\",\r\n \"2016-10-01\",\r\n \"2016-09-01\",\r\n \"2016-08-01\",\r\n \"2016-07-01\",\r\n \"2016-06-01\",\r\n \"2016-03-30\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\",\r\n \"2014-12-01-preview\"\r\n ],\r\n \"zoneMappings\": [\r\n {\r\n \"location\": \"Australia East\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Austria East\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Belgium Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Brazil South\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Canada Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Central India\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Central US\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Central US EUAP\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Chile Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"East Asia\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"East US\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"East US 2\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"East US 2 EUAP\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ]\r\n },\r\n {\r\n \"location\": \"France Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Germany West Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Indonesia Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Israel Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Italy North\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Japan East\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Japan West\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Korea Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Malaysia West\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Mexico Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"New Zealand North\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"North Europe\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Norway East\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Poland Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Qatar Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"South Africa North\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"South Central US\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Southeast Asia\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Spain Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Sweden Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Switzerland North\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"UAE North\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"UK South\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"West Europe\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"West US 2\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"West US 3\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n }\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"expressRouteCircuits\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2018-01-01\",\r\n \"2017-11-01\",\r\n \"2017-10-01\",\r\n \"2017-09-01\",\r\n \"2017-08-01\",\r\n \"2017-06-01\",\r\n \"2017-04-01\",\r\n \"2017-03-01\",\r\n \"2016-12-01\",\r\n \"2016-11-01\",\r\n \"2016-10-01\",\r\n \"2016-09-01\",\r\n \"2016-08-01\",\r\n \"2016-07-01\",\r\n \"2016-06-01\",\r\n \"2016-03-30\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\",\r\n \"2014-12-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"expressRouteServiceProviders\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2018-01-01\",\r\n \"2017-11-01\",\r\n \"2017-10-01\",\r\n \"2017-09-01\",\r\n \"2017-08-01\",\r\n \"2017-06-01\",\r\n \"2017-04-01\",\r\n \"2017-03-01\",\r\n \"2016-12-01\",\r\n \"2016-11-01\",\r\n \"2016-10-01\",\r\n \"2016-09-01\",\r\n \"2016-08-01\",\r\n \"2016-07-01\",\r\n \"2016-06-01\",\r\n \"2016-03-30\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\",\r\n \"2014-12-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"applicationGatewayAvailableWafRuleSets\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2018-01-01\",\r\n \"2017-11-01\",\r\n \"2017-10-01\",\r\n \"2017-09-01\",\r\n \"2017-08-01\",\r\n \"2017-06-01\",\r\n \"2017-04-01\",\r\n \"2017-03-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"applicationGatewayAvailableSslOptions\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2018-01-01\",\r\n \"2017-11-01\",\r\n \"2017-10-01\",\r\n \"2017-09-01\",\r\n \"2017-08-01\",\r\n \"2017-06-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"applicationGatewayAvailableServerVariables\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"applicationGatewayAvailableRequestHeaders\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"applicationGatewayAvailableResponseHeaders\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"routeFilters\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2018-01-01\",\r\n \"2017-11-01\",\r\n \"2017-10-01\",\r\n \"2017-09-01\",\r\n \"2017-08-01\",\r\n \"2017-06-01\",\r\n \"2017-04-01\",\r\n \"2017-03-01\",\r\n \"2016-12-01\",\r\n \"2016-11-01\",\r\n \"2016-10-01\",\r\n \"2016-09-01\",\r\n \"2016-08-01\",\r\n \"2016-07-01\",\r\n \"2016-06-01\",\r\n \"2016-03-30\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\",\r\n \"2014-12-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"bgpServiceCommunities\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2018-01-01\",\r\n \"2017-11-01\",\r\n \"2017-10-01\",\r\n \"2017-09-01\",\r\n \"2017-08-01\",\r\n \"2017-06-01\",\r\n \"2017-04-01\",\r\n \"2017-03-01\",\r\n \"2016-12-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"vpnSites\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2018-01-01\",\r\n \"2017-11-01\",\r\n \"2017-10-01\",\r\n \"2017-09-01\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"vpnServerConfigurations\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"UAE North\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"virtualHubs\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2018-01-01\",\r\n \"2017-11-01\",\r\n \"2017-10-01\",\r\n \"2017-09-01\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"vpnGateways\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2018-01-01\",\r\n \"2017-11-01\",\r\n \"2017-10-01\",\r\n \"2017-09-01\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"p2sVpnGateways\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"UAE North\",\r\n \"South Africa North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"expressRouteGateways\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"expressRoutePortsLocations\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"expressRoutePorts\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"UAE North\",\r\n \"South Africa North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"securityPartnerProviders\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"azureFirewalls\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"Japan West\",\r\n \"Japan East\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\"\r\n ],\r\n \"zoneMappings\": [\r\n {\r\n \"location\": \"Australia East\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Austria East\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Belgium Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Brazil South\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Canada Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Central India\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Central US\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Central US EUAP\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Chile Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"East Asia\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"East US\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"East US 2\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"East US 2 EUAP\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ]\r\n },\r\n {\r\n \"location\": \"France Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Germany West Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Indonesia Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Israel Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Italy North\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Japan East\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Japan West\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Korea Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Malaysia West\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Mexico Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"New Zealand North\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"North Europe\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Norway East\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Poland Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Qatar Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"South Africa North\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"South Central US\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Southeast Asia\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Spain Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Sweden Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Switzerland North\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"UAE North\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"UK South\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"West Europe\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"West US 2\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"West US 3\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n }\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"azureFirewallFqdnTags\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"applicationGatewayWebApplicationFirewallPolicies\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"locations/ApplicationGatewayWafDynamicManifests\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"virtualWans\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2018-01-01\",\r\n \"2017-11-01\",\r\n \"2017-10-01\",\r\n \"2017-09-01\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"bastionHosts\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\"\r\n ],\r\n \"zoneMappings\": [\r\n {\r\n \"location\": \"Australia East\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Austria East\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Belgium Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Brazil South\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Canada Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Central India\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Central US\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Central US EUAP\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Chile Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"East Asia\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"East US\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"East US 2\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"East US 2 EUAP\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ]\r\n },\r\n {\r\n \"location\": \"France Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Germany West Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Indonesia Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Israel Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Italy North\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Japan East\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Japan West\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Korea Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Malaysia West\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Mexico Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"New Zealand North\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"North Europe\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Norway East\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Poland Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Qatar Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"South Africa North\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"South Central US\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Southeast Asia\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Spain Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Sweden Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Switzerland North\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"UAE North\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"UK South\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"West Europe\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"West US 2\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"West US 3\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n }\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, SystemAssignedResourceIdentity\"\r\n },\r\n {\r\n \"resourceType\": \"queryExpressRoutePortsBandwidth\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"networkManagers\",\r\n \"locations\": [\r\n \"West Central US\",\r\n \"North Central US\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"UAE Central\",\r\n \"Germany North\",\r\n \"East US\",\r\n \"West India\",\r\n \"East US 2\",\r\n \"Australia Central\",\r\n \"Australia Central 2\",\r\n \"South Africa West\",\r\n \"Brazil South\",\r\n \"UK West\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"UAE North\",\r\n \"Germany West Central\",\r\n \"Switzerland West\",\r\n \"East Asia\",\r\n \"Jio India West\",\r\n \"South Africa North\",\r\n \"UK South\",\r\n \"South India\",\r\n \"Australia Southeast\",\r\n \"France South\",\r\n \"West US 2\",\r\n \"Japan West\",\r\n \"Norway East\",\r\n \"France Central\",\r\n \"West US 3\",\r\n \"Central India\",\r\n \"Korea South\",\r\n \"Brazil Southeast\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Norway West\",\r\n \"Australia East\",\r\n \"Japan East\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"Switzerland North\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"Chile Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"Jio India Central\",\r\n \"Sweden South\",\r\n \"Sweden Central\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-09-01-preview\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01-preview\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-03-01-preview\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-06-01-preview\",\r\n \"2022-05-01\",\r\n \"2022-04-01-preview\",\r\n \"2022-01-01\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove\"\r\n },\r\n {\r\n \"resourceType\": \"networkManagerConnections\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-09-01-preview\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01-preview\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-03-01-preview\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-06-01-preview\",\r\n \"2022-05-01\",\r\n \"2022-04-01-preview\",\r\n \"2022-01-01\"\r\n ],\r\n \"capabilities\": \"SupportsExtension\"\r\n },\r\n {\r\n \"resourceType\": \"networkSecurityPerimeters\",\r\n \"locations\": [\r\n \"West Central US\",\r\n \"Jio India West\",\r\n \"Jio India Central\",\r\n \"North Central US\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"UAE Central\",\r\n \"Germany North\",\r\n \"East US\",\r\n \"West India\",\r\n \"East US 2\",\r\n \"Australia Central\",\r\n \"Australia Central 2\",\r\n \"South Africa West\",\r\n \"Brazil South\",\r\n \"UK West\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"UAE North\",\r\n \"Germany West Central\",\r\n \"Switzerland West\",\r\n \"East Asia\",\r\n \"South Africa North\",\r\n \"UK South\",\r\n \"South India\",\r\n \"Australia Southeast\",\r\n \"France South\",\r\n \"West US 2\",\r\n \"Sweden Central\",\r\n \"Japan West\",\r\n \"Norway East\",\r\n \"France Central\",\r\n \"West US 3\",\r\n \"Central India\",\r\n \"Korea South\",\r\n \"Brazil Southeast\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Norway West\",\r\n \"Australia East\",\r\n \"Japan East\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"Switzerland North\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"Chile Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-06-01-preview\",\r\n \"2023-09-01-preview\",\r\n \"2023-08-01-preview\",\r\n \"2023-07-01-preview\",\r\n \"2022-02-01-preview\",\r\n \"2021-05-01-preview\",\r\n \"2021-02-01-preview\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove\"\r\n },\r\n {\r\n \"resourceType\": \"locations/perimeterAssociableResourceTypes\",\r\n \"locations\": [\r\n \"West Central US\",\r\n \"Jio India West\",\r\n \"Jio India Central\",\r\n \"North Central US\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"UAE Central\",\r\n \"Germany North\",\r\n \"East US\",\r\n \"West India\",\r\n \"East US 2\",\r\n \"Australia Central\",\r\n \"Australia Central 2\",\r\n \"South Africa West\",\r\n \"Brazil South\",\r\n \"UK West\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"UAE North\",\r\n \"Germany West Central\",\r\n \"Switzerland West\",\r\n \"East Asia\",\r\n \"South Africa North\",\r\n \"UK South\",\r\n \"South India\",\r\n \"Australia Southeast\",\r\n \"France South\",\r\n \"West US 2\",\r\n \"Sweden Central\",\r\n \"Japan West\",\r\n \"Norway East\",\r\n \"France Central\",\r\n \"West US 3\",\r\n \"Central India\",\r\n \"Korea South\",\r\n \"Brazil Southeast\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Norway West\",\r\n \"Australia East\",\r\n \"Japan East\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"Switzerland North\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"Chile Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-06-01-preview\",\r\n \"2023-09-01-preview\",\r\n \"2023-08-01-preview\",\r\n \"2023-07-01-preview\",\r\n \"2022-02-01-preview\",\r\n \"2021-05-01-preview\",\r\n \"2021-02-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/queryNetworkSecurityPerimeter\",\r\n \"locations\": [\r\n \"West Central US\",\r\n \"Jio India West\",\r\n \"North Central US\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"UAE Central\",\r\n \"Germany North\",\r\n \"East US\",\r\n \"West India\",\r\n \"East US 2\",\r\n \"Australia Central\",\r\n \"Australia Central 2\",\r\n \"South Africa West\",\r\n \"Brazil South\",\r\n \"UK West\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"UAE North\",\r\n \"Germany West Central\",\r\n \"Switzerland West\",\r\n \"East Asia\",\r\n \"South Africa North\",\r\n \"UK South\",\r\n \"South India\",\r\n \"Australia Southeast\",\r\n \"France South\",\r\n \"West US 2\",\r\n \"Sweden Central\",\r\n \"Japan West\",\r\n \"Norway East\",\r\n \"France Central\",\r\n \"West US 3\",\r\n \"Central India\",\r\n \"Korea South\",\r\n \"Brazil Southeast\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Norway West\",\r\n \"Australia East\",\r\n \"Japan East\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"Switzerland North\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"Chile Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-06-01-preview\",\r\n \"2023-09-01-preview\",\r\n \"2023-08-01-preview\",\r\n \"2023-07-01-preview\",\r\n \"2022-02-01-preview\",\r\n \"2021-05-01-preview\",\r\n \"2021-02-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"networkGroupMemberships\",\r\n \"locations\": [\r\n \"West Central US\",\r\n \"North Central US\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"UAE Central\",\r\n \"Germany North\",\r\n \"East US\",\r\n \"West India\",\r\n \"East US 2\",\r\n \"Australia Central\",\r\n \"Australia Central 2\",\r\n \"South Africa West\",\r\n \"Brazil South\",\r\n \"UK West\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"UAE North\",\r\n \"Germany West Central\",\r\n \"Switzerland West\",\r\n \"East Asia\",\r\n \"Jio India West\",\r\n \"South Africa North\",\r\n \"UK South\",\r\n \"South India\",\r\n \"Australia Southeast\",\r\n \"France South\",\r\n \"West US 2\",\r\n \"Japan West\",\r\n \"Norway East\",\r\n \"France Central\",\r\n \"West US 3\",\r\n \"Central India\",\r\n \"Korea South\",\r\n \"Brazil Southeast\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Norway West\",\r\n \"Australia East\",\r\n \"Japan East\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"Switzerland North\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"Chile Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"Jio India Central\",\r\n \"Sweden South\",\r\n \"Sweden Central\"\r\n ],\r\n \"apiVersions\": [\r\n \"2022-06-01-preview\"\r\n ],\r\n \"capabilities\": \"SupportsExtension\"\r\n },\r\n {\r\n \"resourceType\": \"locations/commitInternalAzureNetworkManagerConfiguration\",\r\n \"locations\": [\r\n \"West Central US\",\r\n \"North Central US\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"UAE Central\",\r\n \"Germany North\",\r\n \"East US\",\r\n \"West India\",\r\n \"East US 2\",\r\n \"Australia Central\",\r\n \"Australia Central 2\",\r\n \"South Africa West\",\r\n \"Brazil South\",\r\n \"UK West\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"UAE North\",\r\n \"Germany West Central\",\r\n \"Switzerland West\",\r\n \"East Asia\",\r\n \"Jio India West\",\r\n \"South Africa North\",\r\n \"UK South\",\r\n \"South India\",\r\n \"Australia Southeast\",\r\n \"France South\",\r\n \"West US 2\",\r\n \"Sweden Central\",\r\n \"Japan West\",\r\n \"Norway East\",\r\n \"France Central\",\r\n \"West US 3\",\r\n \"Central India\",\r\n \"Korea South\",\r\n \"Brazil Southeast\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Norway West\",\r\n \"Australia East\",\r\n \"Japan East\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"Switzerland North\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"Chile Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-09-01-preview\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01-preview\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-03-01-preview\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-06-01-preview\",\r\n \"2022-05-01\",\r\n \"2022-04-01-preview\",\r\n \"2022-01-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/internalAzureVirtualNetworkManagerOperation\",\r\n \"locations\": [\r\n \"West Central US\",\r\n \"North Central US\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"UAE Central\",\r\n \"Germany North\",\r\n \"East US\",\r\n \"West India\",\r\n \"East US 2\",\r\n \"Australia Central\",\r\n \"Australia Central 2\",\r\n \"South Africa West\",\r\n \"Brazil South\",\r\n \"UK West\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"UAE North\",\r\n \"Germany West Central\",\r\n \"Switzerland West\",\r\n \"East Asia\",\r\n \"Jio India West\",\r\n \"South Africa North\",\r\n \"UK South\",\r\n \"South India\",\r\n \"Australia Southeast\",\r\n \"France South\",\r\n \"West US 2\",\r\n \"Sweden Central\",\r\n \"Japan West\",\r\n \"Norway East\",\r\n \"France Central\",\r\n \"West US 3\",\r\n \"Central India\",\r\n \"Korea South\",\r\n \"Brazil Southeast\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Norway West\",\r\n \"Australia East\",\r\n \"Japan East\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"Switzerland North\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"Chile Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-09-01-preview\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01-preview\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-03-01-preview\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-06-01-preview\",\r\n \"2022-05-01\",\r\n \"2022-04-01-preview\",\r\n \"2022-01-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"networkManagers/ipamPools\",\r\n \"locations\": [\r\n \"East US 2\",\r\n \"West US 2\",\r\n \"East US\",\r\n \"West Europe\",\r\n \"UK South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"Australia East\",\r\n \"West US\",\r\n \"South Central US\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"Sweden Central\",\r\n \"Central India\",\r\n \"East Asia\",\r\n \"Canada Central\",\r\n \"Germany West Central\",\r\n \"Italy North\",\r\n \"Norway East\",\r\n \"Poland Central\",\r\n \"Switzerland North\",\r\n \"UAE North\",\r\n \"Brazil South\",\r\n \"Israel Central\",\r\n \"North Central US\",\r\n \"Australia Central\",\r\n \"Australia Central 2\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Canada East\",\r\n \"France South\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Switzerland West\",\r\n \"UK West\",\r\n \"UAE Central\",\r\n \"Brazil Southeast\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"Japan East\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"New Zealand North\",\r\n \"Southeast Asia\",\r\n \"Japan West\",\r\n \"West Central US\",\r\n \"Jio India Central\",\r\n \"Chile Central\",\r\n \"Austria East\",\r\n \"West US 3\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-01-01-preview\",\r\n \"2023-07-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"locations/ipamPoolOperationResults\",\r\n \"locations\": [\r\n \"East US 2\",\r\n \"West US 2\",\r\n \"East US\",\r\n \"West Europe\",\r\n \"UK South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"Australia East\",\r\n \"West US\",\r\n \"South Central US\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"Sweden Central\",\r\n \"Central India\",\r\n \"East Asia\",\r\n \"Canada Central\",\r\n \"Germany West Central\",\r\n \"Italy North\",\r\n \"Norway East\",\r\n \"Poland Central\",\r\n \"Switzerland North\",\r\n \"UAE North\",\r\n \"Brazil South\",\r\n \"Israel Central\",\r\n \"North Central US\",\r\n \"Australia Central\",\r\n \"Australia Central 2\",\r\n \"Australia Southeast\",\r\n \"South India\",\r\n \"Canada East\",\r\n \"France South\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Switzerland West\",\r\n \"UK West\",\r\n \"UAE Central\",\r\n \"Brazil Southeast\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"Japan East\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"New Zealand North\",\r\n \"Southeast Asia\",\r\n \"Japan West\",\r\n \"West Central US\",\r\n \"Jio India Central\",\r\n \"Chile Central\",\r\n \"Austria East\",\r\n \"West US 3\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-01-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"networkManagers/verifierWorkspaces\",\r\n \"locations\": [\r\n \"East US 2\",\r\n \"West US 2\",\r\n \"East US\",\r\n \"West Europe\",\r\n \"UK South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"Australia East\",\r\n \"West US\",\r\n \"South Central US\",\r\n \"Canada Central\",\r\n \"East US 2 EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-01-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"locations/verifierWorkspaceOperationResults\",\r\n \"locations\": [\r\n \"East US 2\",\r\n \"West US 2\",\r\n \"East US\",\r\n \"West Europe\",\r\n \"UK South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"Australia East\",\r\n \"West US\",\r\n \"South Central US\",\r\n \"Canada Central\",\r\n \"East US 2 EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-01-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/networkSecurityPerimeterOperationStatuses\",\r\n \"locations\": [\r\n \"West Central US\",\r\n \"Jio India West\",\r\n \"North Central US\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"UAE Central\",\r\n \"Germany North\",\r\n \"East US\",\r\n \"West India\",\r\n \"East US 2\",\r\n \"Australia Central\",\r\n \"Australia Central 2\",\r\n \"South Africa West\",\r\n \"Brazil South\",\r\n \"UK West\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"UAE North\",\r\n \"Germany West Central\",\r\n \"Switzerland West\",\r\n \"East Asia\",\r\n \"South Africa North\",\r\n \"UK South\",\r\n \"South India\",\r\n \"Australia Southeast\",\r\n \"France South\",\r\n \"West US 2\",\r\n \"Sweden Central\",\r\n \"Japan West\",\r\n \"Norway East\",\r\n \"France Central\",\r\n \"West US 3\",\r\n \"Central India\",\r\n \"Korea South\",\r\n \"Brazil Southeast\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Norway West\",\r\n \"Australia East\",\r\n \"Japan East\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"Switzerland North\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"Chile Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-06-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/nspServiceTags\",\r\n \"locations\": [\r\n \"West Central US\",\r\n \"Jio India West\",\r\n \"North Central US\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"UAE Central\",\r\n \"Germany North\",\r\n \"East US\",\r\n \"West India\",\r\n \"East US 2\",\r\n \"Australia Central\",\r\n \"Australia Central 2\",\r\n \"South Africa West\",\r\n \"Brazil South\",\r\n \"UK West\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"UAE North\",\r\n \"Germany West Central\",\r\n \"Switzerland West\",\r\n \"East Asia\",\r\n \"South Africa North\",\r\n \"UK South\",\r\n \"South India\",\r\n \"Australia Southeast\",\r\n \"France South\",\r\n \"West US 2\",\r\n \"Sweden Central\",\r\n \"Japan West\",\r\n \"Norway East\",\r\n \"France Central\",\r\n \"West US 3\",\r\n \"Central India\",\r\n \"Korea South\",\r\n \"Brazil Southeast\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Norway West\",\r\n \"Australia East\",\r\n \"Japan East\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"Switzerland North\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"Chile Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"expressRouteProviderPorts\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2023-01-01-preview\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/hybridEdgeZone\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2023-01-01-preview\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"firewallPolicies\",\r\n \"locations\": [\r\n \"Italy North\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"UAE North\",\r\n \"Australia Central 2\",\r\n \"UAE Central\",\r\n \"Germany North\",\r\n \"Central India\",\r\n \"Korea South\",\r\n \"Switzerland North\",\r\n \"Switzerland West\",\r\n \"Japan West\",\r\n \"France South\",\r\n \"South Africa West\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"South India\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"Norway West\",\r\n \"South Africa North\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Korea Central\",\r\n \"Brazil South\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Japan East\",\r\n \"UK West\",\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"West Central US\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Australia Central\",\r\n \"Australia Southeast\",\r\n \"UK South\",\r\n \"East US 2\",\r\n \"West US 2\",\r\n \"North Central US\",\r\n \"Canada Central\",\r\n \"France Central\",\r\n \"Central US\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2023-01-01-preview\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"ipGroups\",\r\n \"locations\": [\r\n \"Italy North\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"UAE North\",\r\n \"Australia Central 2\",\r\n \"UAE Central\",\r\n \"Germany North\",\r\n \"Central India\",\r\n \"Korea South\",\r\n \"Switzerland North\",\r\n \"Switzerland West\",\r\n \"Japan West\",\r\n \"France South\",\r\n \"South Africa West\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"South India\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"Norway West\",\r\n \"South Africa North\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Korea Central\",\r\n \"Brazil South\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Japan East\",\r\n \"UK West\",\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Australia Central\",\r\n \"Australia Southeast\",\r\n \"UK South\",\r\n \"East US 2\",\r\n \"West US 2\",\r\n \"North Central US\",\r\n \"Canada Central\",\r\n \"France Central\",\r\n \"West Central US\",\r\n \"Central US\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2023-01-01-preview\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"azureWebCategories\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2023-01-01-preview\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/nfvOperations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2023-01-01-preview\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2018-01-01\",\r\n \"2017-11-01\",\r\n \"2017-10-01\",\r\n \"2017-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/nfvOperationResults\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2023-01-01-preview\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2018-01-01\",\r\n \"2017-11-01\",\r\n \"2017-10-01\",\r\n \"2017-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"virtualRouters\",\r\n \"locations\": [\r\n \"Italy North\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"UAE North\",\r\n \"Australia Central 2\",\r\n \"UAE Central\",\r\n \"Germany North\",\r\n \"Central India\",\r\n \"Korea South\",\r\n \"Switzerland North\",\r\n \"Switzerland West\",\r\n \"Japan West\",\r\n \"France South\",\r\n \"South Africa West\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"South India\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"Norway West\",\r\n \"South Africa North\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Korea Central\",\r\n \"Brazil South\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Japan East\",\r\n \"UK West\",\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"West Central US\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Australia Central\",\r\n \"Australia Southeast\",\r\n \"UK South\",\r\n \"East US 2\",\r\n \"West US 2\",\r\n \"North Central US\",\r\n \"Canada Central\",\r\n \"France Central\",\r\n \"Central US\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2023-01-01-preview\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"networkVirtualAppliances\",\r\n \"locations\": [\r\n \"Italy North\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"UAE North\",\r\n \"Australia Central 2\",\r\n \"UAE Central\",\r\n \"Germany North\",\r\n \"Central India\",\r\n \"Korea South\",\r\n \"Switzerland North\",\r\n \"Switzerland West\",\r\n \"Japan West\",\r\n \"France South\",\r\n \"South Africa West\",\r\n \"West India\",\r\n \"Canada East\",\r\n \"South India\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"Norway West\",\r\n \"South Africa North\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Korea Central\",\r\n \"Brazil South\",\r\n \"Japan East\",\r\n \"UK West\",\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"West Central US\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Australia Central\",\r\n \"Australia Southeast\",\r\n \"UK South\",\r\n \"East US 2\",\r\n \"West US 2\",\r\n \"North Central US\",\r\n \"Canada Central\",\r\n \"France Central\",\r\n \"Central US\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Jio India Central\",\r\n \"Sweden South\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2023-01-01-preview\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\"\r\n ],\r\n \"capabilities\": \"SystemAssignedResourceIdentity\"\r\n },\r\n {\r\n \"resourceType\": \"networkVirtualApplianceSkus\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2023-01-01-preview\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"assist\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2024-06-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"privateDnsZones\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-06-01\",\r\n \"2020-06-01\",\r\n \"2020-01-01\",\r\n \"2018-09-01\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove\"\r\n },\r\n {\r\n \"resourceType\": \"privateDnsZones/virtualNetworkLinks\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-06-01\",\r\n \"2020-06-01\",\r\n \"2020-01-01\",\r\n \"2018-09-01\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove\"\r\n },\r\n {\r\n \"resourceType\": \"privateDnsOperationResults\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-06-01\",\r\n \"2020-06-01\",\r\n \"2020-01-01\",\r\n \"2018-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"privateDnsOperationStatuses\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-06-01\",\r\n \"2020-06-01\",\r\n \"2020-01-01\",\r\n \"2018-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"privateDnsZonesInternal\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-06-01\",\r\n \"2020-06-01\",\r\n \"2020-01-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"privateDnsZones/A\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-06-01\",\r\n \"2020-06-01\",\r\n \"2020-01-01\",\r\n \"2018-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"privateDnsZones/AAAA\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-06-01\",\r\n \"2020-06-01\",\r\n \"2020-01-01\",\r\n \"2018-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"privateDnsZones/CNAME\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-06-01\",\r\n \"2020-06-01\",\r\n \"2020-01-01\",\r\n \"2018-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"privateDnsZones/PTR\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-06-01\",\r\n \"2020-06-01\",\r\n \"2020-01-01\",\r\n \"2018-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"privateDnsZones/MX\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-06-01\",\r\n \"2020-06-01\",\r\n \"2020-01-01\",\r\n \"2018-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"privateDnsZones/TXT\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-06-01\",\r\n \"2020-06-01\",\r\n \"2020-01-01\",\r\n \"2018-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"privateDnsZones/SRV\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-06-01\",\r\n \"2020-06-01\",\r\n \"2020-01-01\",\r\n \"2018-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"privateDnsZones/SOA\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-06-01\",\r\n \"2020-06-01\",\r\n \"2020-01-01\",\r\n \"2018-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"privateDnsZones/all\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-06-01\",\r\n \"2020-06-01\",\r\n \"2020-01-01\",\r\n \"2018-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"virtualNetworks/privateDnsZoneLinks\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-06-01\",\r\n \"2020-06-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"trafficmanagerprofiles\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-01-01-preview\",\r\n \"2024-04-01-preview\",\r\n \"2022-04-01-preview\",\r\n \"2022-04-01\",\r\n \"2018-08-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2017-05-01\",\r\n \"2017-03-01\",\r\n \"2015-11-01\",\r\n \"2015-04-28-preview\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove\"\r\n },\r\n {\r\n \"resourceType\": \"trafficmanagerprofiles/validateLink\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-01-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"trafficmanagerprofiles/heatMaps\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-01-01-preview\",\r\n \"2024-04-01-preview\",\r\n \"2022-04-01-preview\",\r\n \"2022-04-01\",\r\n \"2018-08-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2017-09-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"trafficmanagerprofiles/azureendpoints\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-01-01-preview\",\r\n \"2024-04-01-preview\",\r\n \"2022-04-01-preview\",\r\n \"2022-04-01\",\r\n \"2018-08-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2017-05-01\",\r\n \"2017-03-01\",\r\n \"2015-11-01\",\r\n \"2015-04-28-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"trafficmanagerprofiles/externalendpoints\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-01-01-preview\",\r\n \"2024-04-01-preview\",\r\n \"2022-04-01-preview\",\r\n \"2022-04-01\",\r\n \"2018-08-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2017-05-01\",\r\n \"2017-03-01\",\r\n \"2015-11-01\",\r\n \"2015-04-28-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"trafficmanagerprofiles/nestedendpoints\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-01-01-preview\",\r\n \"2024-04-01-preview\",\r\n \"2022-04-01-preview\",\r\n \"2022-04-01\",\r\n \"2018-08-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2017-05-01\",\r\n \"2017-03-01\",\r\n \"2015-11-01\",\r\n \"2015-04-28-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"checkTrafficManagerNameAvailability\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-01-01-preview\",\r\n \"2024-04-01-preview\",\r\n \"2022-04-01-preview\",\r\n \"2022-04-01\",\r\n \"2018-08-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2017-05-01\",\r\n \"2017-03-01\",\r\n \"2015-11-01\",\r\n \"2015-04-28-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"checkTrafficManagerNameAvailabilityV2\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-01-01-preview\",\r\n \"2024-04-01-preview\",\r\n \"2022-04-01-preview\",\r\n \"2022-04-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"trafficManagerUserMetricsKeys\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-01-01-preview\",\r\n \"2024-04-01-preview\",\r\n \"2022-04-01-preview\",\r\n \"2022-04-01\",\r\n \"2018-08-01\",\r\n \"2018-04-01\",\r\n \"2017-09-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"trafficManagerGeographicHierarchies\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-01-01-preview\",\r\n \"2024-04-01-preview\",\r\n \"2022-04-01-preview\",\r\n \"2022-04-01\",\r\n \"2018-08-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2017-05-01\",\r\n \"2017-03-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"virtualNetworks\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2018-01-01\",\r\n \"2017-11-01\",\r\n \"2017-10-01\",\r\n \"2017-09-01\",\r\n \"2017-08-01\",\r\n \"2017-06-01\",\r\n \"2017-04-01\",\r\n \"2017-03-01\",\r\n \"2016-12-01\",\r\n \"2016-11-01\",\r\n \"2016-10-01\",\r\n \"2016-09-01\",\r\n \"2016-08-01\",\r\n \"2016-07-01\",\r\n \"2016-06-01\",\r\n \"2016-03-30\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\",\r\n \"2014-12-01-preview\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove\"\r\n },\r\n {\r\n \"resourceType\": \"virtualNetworks/taggedTrafficConsumers\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2018-01-01\",\r\n \"2017-11-01\",\r\n \"2017-10-01\",\r\n \"2017-09-01\",\r\n \"2017-08-01\",\r\n \"2017-06-01\",\r\n \"2017-04-01\",\r\n \"2017-03-01\",\r\n \"2016-12-01\",\r\n \"2016-11-01\",\r\n \"2016-10-01\",\r\n \"2016-09-01\",\r\n \"2016-08-01\",\r\n \"2016-07-01\",\r\n \"2016-06-01\",\r\n \"2016-03-30\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\",\r\n \"2014-12-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"natGateways\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\"\r\n ],\r\n \"zoneMappings\": [\r\n {\r\n \"location\": \"Australia East\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Austria East\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Belgium Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Brazil South\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Canada Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Central India\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Central US\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Central US EUAP\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Chile Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"East Asia\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"East US\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"East US 2\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"East US 2 EUAP\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ]\r\n },\r\n {\r\n \"location\": \"France Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Germany West Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Indonesia Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Israel Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Italy North\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Japan East\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Japan West\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Korea Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Malaysia West\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Mexico Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"New Zealand North\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"North Europe\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Norway East\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Poland Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Qatar Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"South Africa North\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"South Central US\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Southeast Asia\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Spain Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Sweden Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Switzerland North\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"UAE North\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"UK South\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"West Europe\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"West US 2\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"West US 3\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n }\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove\"\r\n },\r\n {\r\n \"resourceType\": \"publicIPAddresses\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2018-01-01\",\r\n \"2017-11-01\",\r\n \"2017-10-01\",\r\n \"2017-09-01\",\r\n \"2017-08-01\",\r\n \"2017-06-01\",\r\n \"2017-04-01\",\r\n \"2017-03-01\",\r\n \"2016-12-01\",\r\n \"2016-11-01\",\r\n \"2016-10-01\",\r\n \"2016-09-01\",\r\n \"2016-08-01\",\r\n \"2016-07-01\",\r\n \"2016-06-01\",\r\n \"2016-03-30\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\",\r\n \"2014-12-01-preview\"\r\n ],\r\n \"zoneMappings\": [\r\n {\r\n \"location\": \"Australia East\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Austria East\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Belgium Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Brazil South\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Canada Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Central India\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Central US\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Central US EUAP\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Chile Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"East Asia\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"East US\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"East US 2\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"East US 2 EUAP\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ]\r\n },\r\n {\r\n \"location\": \"France Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Germany West Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Indonesia Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Israel Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Italy North\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Japan East\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Japan West\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Korea Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Malaysia West\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Mexico Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"New Zealand North\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"North Europe\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Norway East\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Poland Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Qatar Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"South Africa North\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"South Central US\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Southeast Asia\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Spain Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Sweden Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Switzerland North\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"UAE North\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"UK South\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"West Europe\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"West US 2\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"West US 3\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n }\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove\"\r\n },\r\n {\r\n \"resourceType\": \"internalPublicIpAddresses\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"customIpPrefixes\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\"\r\n ],\r\n \"zoneMappings\": [\r\n {\r\n \"location\": \"Australia East\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Austria East\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Belgium Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Brazil South\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Canada Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Central India\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Central US\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Central US EUAP\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Chile Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"East Asia\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"East US\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"East US 2\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"East US 2 EUAP\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ]\r\n },\r\n {\r\n \"location\": \"France Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Germany West Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Indonesia Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Israel Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Italy North\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Japan East\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Japan West\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Korea Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Malaysia West\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Mexico Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"New Zealand North\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"North Europe\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Norway East\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Poland Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Qatar Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"South Africa North\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"South Central US\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Southeast Asia\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Spain Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Sweden Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Switzerland North\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"UAE North\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"UK South\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"West Europe\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"West US 2\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"West US 3\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n }\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove\"\r\n },\r\n {\r\n \"resourceType\": \"networkInterfaces\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2018-01-01\",\r\n \"2017-11-01\",\r\n \"2017-10-01\",\r\n \"2017-09-01\",\r\n \"2017-08-01\",\r\n \"2017-06-01\",\r\n \"2017-04-01\",\r\n \"2017-03-01\",\r\n \"2016-12-01\",\r\n \"2016-11-01\",\r\n \"2016-10-01\",\r\n \"2016-09-01\",\r\n \"2016-08-01\",\r\n \"2016-07-01\",\r\n \"2016-06-01\",\r\n \"2016-03-30\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\",\r\n \"2014-12-01-preview\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove\"\r\n },\r\n {\r\n \"resourceType\": \"dscpConfigurations\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove\"\r\n },\r\n {\r\n \"resourceType\": \"privateEndpoints\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove\"\r\n },\r\n {\r\n \"resourceType\": \"privateEndpoints/privateLinkServiceProxies\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"privateEndpointRedirectMaps\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"loadBalancers\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2018-01-01\",\r\n \"2017-11-01\",\r\n \"2017-10-01\",\r\n \"2017-09-01\",\r\n \"2017-08-01\",\r\n \"2017-06-01\",\r\n \"2017-04-01\",\r\n \"2017-03-01\",\r\n \"2016-12-01\",\r\n \"2016-11-01\",\r\n \"2016-10-01\",\r\n \"2016-09-01\",\r\n \"2016-08-01\",\r\n \"2016-07-01\",\r\n \"2016-06-01\",\r\n \"2016-03-30\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\",\r\n \"2014-12-01-preview\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove\"\r\n },\r\n {\r\n \"resourceType\": \"networkSecurityGroups\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2018-01-01\",\r\n \"2017-11-01\",\r\n \"2017-10-01\",\r\n \"2017-09-01\",\r\n \"2017-08-01\",\r\n \"2017-06-01\",\r\n \"2017-04-01\",\r\n \"2017-03-01\",\r\n \"2016-12-01\",\r\n \"2016-11-01\",\r\n \"2016-10-01\",\r\n \"2016-09-01\",\r\n \"2016-08-01\",\r\n \"2016-07-01\",\r\n \"2016-06-01\",\r\n \"2016-03-30\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\",\r\n \"2014-12-01-preview\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove\"\r\n },\r\n {\r\n \"resourceType\": \"applicationSecurityGroups\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2018-01-01\",\r\n \"2017-11-01\",\r\n \"2017-10-01\",\r\n \"2017-09-01\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove\"\r\n },\r\n {\r\n \"resourceType\": \"serviceEndpointPolicies\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2018-01-01\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove\"\r\n },\r\n {\r\n \"resourceType\": \"networkIntentPolicies\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove\"\r\n },\r\n {\r\n \"resourceType\": \"routeTables\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2018-01-01\",\r\n \"2017-11-01\",\r\n \"2017-10-01\",\r\n \"2017-09-01\",\r\n \"2017-08-01\",\r\n \"2017-06-01\",\r\n \"2017-04-01\",\r\n \"2017-03-01\",\r\n \"2016-12-01\",\r\n \"2016-11-01\",\r\n \"2016-10-01\",\r\n \"2016-09-01\",\r\n \"2016-08-01\",\r\n \"2016-07-01\",\r\n \"2016-06-01\",\r\n \"2016-03-30\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\",\r\n \"2014-12-01-preview\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove\"\r\n },\r\n {\r\n \"resourceType\": \"publicIPPrefixes\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\"\r\n ],\r\n \"zoneMappings\": [\r\n {\r\n \"location\": \"Australia East\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Austria East\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Belgium Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Brazil South\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Canada Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Central India\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Central US\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Central US EUAP\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Chile Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"East Asia\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"East US\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"East US 2\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"East US 2 EUAP\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ]\r\n },\r\n {\r\n \"location\": \"France Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Germany West Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Indonesia Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Israel Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Italy North\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Japan East\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Japan West\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Korea Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Malaysia West\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Mexico Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"New Zealand North\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"North Europe\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Norway East\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Poland Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Qatar Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"South Africa North\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"South Central US\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Southeast Asia\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Spain Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Sweden Central\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"Switzerland North\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"UAE North\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"UK South\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"West Europe\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"West US 2\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n },\r\n {\r\n \"location\": \"West US 3\",\r\n \"zones\": [\r\n \"1\",\r\n \"2\",\r\n \"3\"\r\n ]\r\n }\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove\"\r\n },\r\n {\r\n \"resourceType\": \"networkWatchers\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2018-01-01\",\r\n \"2017-11-01\",\r\n \"2017-10-01\",\r\n \"2017-09-01\",\r\n \"2017-08-01\",\r\n \"2017-06-01\",\r\n \"2017-04-01\",\r\n \"2017-03-01\",\r\n \"2016-12-01\",\r\n \"2016-11-01\",\r\n \"2016-10-01\",\r\n \"2016-09-01\",\r\n \"2016-08-01\",\r\n \"2016-07-01\",\r\n \"2016-06-01\",\r\n \"2016-03-30\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\",\r\n \"2014-12-01-preview\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove\"\r\n },\r\n {\r\n \"resourceType\": \"networkWatchers/connectionAnalyzers\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"Indonesia Central\",\r\n \"New Zealand North\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove\"\r\n },\r\n {\r\n \"resourceType\": \"networkWatchers/connectionMonitors\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2018-01-01\",\r\n \"2017-11-01\",\r\n \"2017-10-01\",\r\n \"2017-09-01\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove\"\r\n },\r\n {\r\n \"resourceType\": \"networkWatchers/agents\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove\"\r\n },\r\n {\r\n \"resourceType\": \"networkWatchers/flowLogs\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"South Central US STG\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2018-01-01\",\r\n \"2017-11-01\",\r\n \"2017-10-01\",\r\n \"2017-09-01\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove\"\r\n },\r\n {\r\n \"resourceType\": \"networkWatchers/pingMeshes\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2018-01-01\",\r\n \"2017-11-01\",\r\n \"2017-10-01\",\r\n \"2017-09-01\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove\"\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2018-01-01\",\r\n \"2017-11-01\",\r\n \"2017-10-01\",\r\n \"2017-09-01\",\r\n \"2017-08-01\",\r\n \"2017-06-01\",\r\n \"2017-04-01\",\r\n \"2017-03-01\",\r\n \"2016-12-01\",\r\n \"2016-11-01\",\r\n \"2016-10-01\",\r\n \"2016-09-01\",\r\n \"2016-08-01\",\r\n \"2016-07-01\",\r\n \"2016-06-01\",\r\n \"2016-03-30\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\",\r\n \"2014-12-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/operations\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2018-01-01\",\r\n \"2017-11-01\",\r\n \"2017-10-01\",\r\n \"2017-09-01\",\r\n \"2017-08-01\",\r\n \"2017-06-01\",\r\n \"2017-04-01\",\r\n \"2017-03-01\",\r\n \"2016-12-01\",\r\n \"2016-11-01\",\r\n \"2016-10-01\",\r\n \"2016-09-01\",\r\n \"2016-08-01\",\r\n \"2016-07-01\",\r\n \"2016-06-01\",\r\n \"2016-03-30\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\",\r\n \"2014-12-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/operationResults\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2018-01-01\",\r\n \"2017-11-01\",\r\n \"2017-10-01\",\r\n \"2017-09-01\",\r\n \"2017-08-01\",\r\n \"2017-06-01\",\r\n \"2017-04-01\",\r\n \"2017-03-01\",\r\n \"2016-12-01\",\r\n \"2016-11-01\",\r\n \"2016-10-01\",\r\n \"2016-09-01\",\r\n \"2016-08-01\",\r\n \"2016-07-01\",\r\n \"2016-06-01\",\r\n \"2016-03-30\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\",\r\n \"2014-12-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/CheckDnsNameAvailability\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2018-01-01\",\r\n \"2017-11-01\",\r\n \"2017-10-01\",\r\n \"2017-09-01\",\r\n \"2017-08-01\",\r\n \"2017-06-01\",\r\n \"2017-04-01\",\r\n \"2017-03-01\",\r\n \"2016-12-01\",\r\n \"2016-11-01\",\r\n \"2016-10-01\",\r\n \"2016-09-01\",\r\n \"2016-08-01\",\r\n \"2016-07-01\",\r\n \"2016-06-01\",\r\n \"2016-03-30\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\",\r\n \"2014-12-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/setLoadBalancerFrontendPublicIpAddresses\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"cloudServiceSlots\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\"\r\n ],\r\n \"capabilities\": \"SupportsExtension\"\r\n },\r\n {\r\n \"resourceType\": \"locations/usages\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2018-01-01\",\r\n \"2017-11-01\",\r\n \"2017-10-01\",\r\n \"2017-09-01\",\r\n \"2017-08-01\",\r\n \"2017-06-01\",\r\n \"2017-04-01\",\r\n \"2017-03-01\",\r\n \"2016-12-01\",\r\n \"2016-11-01\",\r\n \"2016-10-01\",\r\n \"2016-09-01\",\r\n \"2016-08-01\",\r\n \"2016-07-01\",\r\n \"2016-06-01\",\r\n \"2016-03-30\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\",\r\n \"2014-12-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/virtualNetworkAvailableEndpointServices\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2018-01-01\",\r\n \"2017-11-01\",\r\n \"2017-10-01\",\r\n \"2017-09-01\",\r\n \"2017-08-01\",\r\n \"2017-06-01\",\r\n \"2017-04-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/availableDelegations\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/serviceTags\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/availablePrivateEndpointTypes\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/availableServiceAliases\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/checkPrivateLinkServiceVisibility\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/autoApprovedPrivateLinkServices\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/batchValidatePrivateEndpointsForResourceMove\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/batchNotifyPrivateEndpointsForResourceMove\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/supportedVirtualMachineSizes\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/setAzureNetworkManagerConfiguration\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/publishResources\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/getAzureNetworkManagerConfiguration\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/checkAcceleratedNetworkingSupport\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/validateResourceOwnership\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/setResourceOwnership\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/effectiveResourceOwnership\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2018-01-01\",\r\n \"2017-11-01\",\r\n \"2017-10-01\",\r\n \"2017-09-01\",\r\n \"2017-08-01\",\r\n \"2017-06-01\",\r\n \"2017-04-01\",\r\n \"2017-03-01\",\r\n \"2016-12-01\",\r\n \"2016-11-01\",\r\n \"2016-10-01\",\r\n \"2016-09-01\",\r\n \"2016-08-01\",\r\n \"2016-07-01\",\r\n \"2016-06-01\",\r\n \"2016-03-30\",\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\",\r\n \"2014-12-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"virtualNetworkTaps\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"privateLinkServices\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"locations/privateLinkServices\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"ddosProtectionPlans\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"networkProfiles\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"locations/bareMetalTenants\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"ipAllocations\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove\"\r\n },\r\n {\r\n \"resourceType\": \"locations/serviceTagDetails\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/dataTasks\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/startPacketTagging\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/deletePacketTagging\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/getPacketTagging\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/rnmEffectiveRouteTable\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/rnmEffectiveNetworkSecurityGroups\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"virtualNetworks/listNetworkManagerEffectiveConnectivityConfigurations\",\r\n \"locations\": [\r\n \"West Central US\",\r\n \"North Central US\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"UAE Central\",\r\n \"Germany North\",\r\n \"East US\",\r\n \"West India\",\r\n \"East US 2\",\r\n \"Australia Central\",\r\n \"Australia Central 2\",\r\n \"South Africa West\",\r\n \"Brazil South\",\r\n \"UK West\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"UAE North\",\r\n \"Germany West Central\",\r\n \"Switzerland West\",\r\n \"East Asia\",\r\n \"Jio India West\",\r\n \"South Africa North\",\r\n \"UK South\",\r\n \"South India\",\r\n \"Australia Southeast\",\r\n \"France South\",\r\n \"West US 2\",\r\n \"Japan West\",\r\n \"Norway East\",\r\n \"France Central\",\r\n \"West US 3\",\r\n \"Central India\",\r\n \"Korea South\",\r\n \"Brazil Southeast\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Norway West\",\r\n \"Australia East\",\r\n \"Japan East\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"Switzerland North\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"Chile Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"Jio India Central\",\r\n \"Sweden South\",\r\n \"Sweden Central\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-09-01-preview\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01-preview\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-03-01-preview\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-06-01-preview\",\r\n \"2022-05-01\",\r\n \"2022-04-01-preview\",\r\n \"2022-01-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"virtualNetworks/listNetworkManagerEffectiveSecurityAdminRules\",\r\n \"locations\": [\r\n \"West Central US\",\r\n \"North Central US\",\r\n \"West US\",\r\n \"West Europe\",\r\n \"UAE Central\",\r\n \"Germany North\",\r\n \"East US\",\r\n \"West India\",\r\n \"East US 2\",\r\n \"Australia Central\",\r\n \"Australia Central 2\",\r\n \"South Africa West\",\r\n \"Brazil South\",\r\n \"UK West\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"UAE North\",\r\n \"Germany West Central\",\r\n \"Switzerland West\",\r\n \"East Asia\",\r\n \"Jio India West\",\r\n \"South Africa North\",\r\n \"UK South\",\r\n \"South India\",\r\n \"Australia Southeast\",\r\n \"France South\",\r\n \"West US 2\",\r\n \"Japan West\",\r\n \"Norway East\",\r\n \"France Central\",\r\n \"West US 3\",\r\n \"Central India\",\r\n \"Korea South\",\r\n \"Brazil Southeast\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Norway West\",\r\n \"Australia East\",\r\n \"Japan East\",\r\n \"Canada East\",\r\n \"Canada Central\",\r\n \"Switzerland North\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Mexico Central\",\r\n \"Spain Central\",\r\n \"Chile Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"Jio India Central\",\r\n \"Sweden South\",\r\n \"Sweden Central\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-09-01-preview\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01-preview\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-03-01-preview\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-06-01-preview\",\r\n \"2022-05-01\",\r\n \"2022-04-01-preview\",\r\n \"2022-01-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/virtualNetworks\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/publicIpAddresses\",\r\n \"locations\": [\r\n \"West US\",\r\n \"East US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"Central US\",\r\n \"East US 2\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Central India\",\r\n \"South India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"UK West\",\r\n \"UK South\",\r\n \"Korea Central\",\r\n \"Korea South\",\r\n \"France Central\",\r\n \"Australia Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Switzerland North\",\r\n \"Germany West Central\",\r\n \"Norway East\",\r\n \"West US 3\",\r\n \"Jio India West\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\",\r\n \"Belgium Central\",\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\",\r\n \"Brazil Southeast\",\r\n \"Jio India Central\",\r\n \"Sweden South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"frontdoorOperationResults\",\r\n \"locations\": [\r\n \"global\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-10-01\",\r\n \"2025-05-16-preview\",\r\n \"2025-03-01\",\r\n \"2025-01-01-preview\",\r\n \"2024-02-01\",\r\n \"2022-05-01\",\r\n \"2021-06-01\",\r\n \"2020-11-01\",\r\n \"2020-07-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-01-01\",\r\n \"2019-11-01\",\r\n \"2019-10-01\",\r\n \"2019-08-01\",\r\n \"2019-05-01\",\r\n \"2019-04-01\",\r\n \"2019-03-01\",\r\n \"2018-08-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"frontdoors\",\r\n \"locations\": [\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"global\",\r\n \"Central US\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"West US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-10-01\",\r\n \"2021-06-01\",\r\n \"2020-07-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-01-01\",\r\n \"2019-08-01\",\r\n \"2019-05-01\",\r\n \"2019-04-01\",\r\n \"2018-08-01\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"frontdoors/frontendEndpoints\",\r\n \"locations\": [\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"global\",\r\n \"Central US\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"West US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-10-01\",\r\n \"2021-06-01\",\r\n \"2020-07-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-01-01\",\r\n \"2019-08-01\",\r\n \"2019-05-01\",\r\n \"2019-04-01\",\r\n \"2018-08-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"frontdoors/frontendEndpoints/customHttpsConfiguration\",\r\n \"locations\": [\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"global\",\r\n \"Central US\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"West US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-10-01\",\r\n \"2021-06-01\",\r\n \"2020-07-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-01-01\",\r\n \"2019-08-01\",\r\n \"2019-05-01\",\r\n \"2019-04-01\",\r\n \"2018-08-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"frontdoorWebApplicationFirewallPolicies\",\r\n \"locations\": [\r\n \"East US 2 EUAP\",\r\n \"global\",\r\n \"Central US\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"West US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-10-01\",\r\n \"2025-05-16-preview\",\r\n \"2025-03-01\",\r\n \"2025-01-01-preview\",\r\n \"2024-02-01\",\r\n \"2022-05-01\",\r\n \"2020-11-01\",\r\n \"2020-04-01\",\r\n \"2019-10-01\",\r\n \"2019-03-01\",\r\n \"2018-08-01\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"networkExperimentProfiles\",\r\n \"locations\": [\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"global\",\r\n \"Central US\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"West US\",\r\n \"West US 2\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Brazil South\",\r\n \"Australia East\",\r\n \"Australia Southeast\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"copilot\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2024-06-01-preview\"\r\n ],\r\n \"capabilities\": \"SupportsExtension\"\r\n },\r\n {\r\n \"resourceType\": \"networkWatchers/lenses\",\r\n \"locations\": [\r\n \"Central US EUAP\",\r\n \"East US 2 EUAP\",\r\n \"South Africa West\",\r\n \"UAE Central\",\r\n \"Switzerland West\",\r\n \"Germany North\",\r\n \"Norway West\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\",\r\n \"2025-01-01\",\r\n \"2024-10-01\",\r\n \"2024-07-01\",\r\n \"2024-05-01\",\r\n \"2024-03-01\",\r\n \"2024-01-01\",\r\n \"2023-11-01\",\r\n \"2023-09-01\",\r\n \"2023-06-01\",\r\n \"2023-05-01\",\r\n \"2023-04-01\",\r\n \"2023-02-01\",\r\n \"2022-11-01\",\r\n \"2022-09-01\",\r\n \"2022-07-01\",\r\n \"2022-05-01\",\r\n \"2022-01-01\",\r\n \"2021-12-01\",\r\n \"2021-08-01\",\r\n \"2021-06-01\",\r\n \"2021-05-01\",\r\n \"2021-04-01\",\r\n \"2021-03-01\",\r\n \"2021-02-01\",\r\n \"2021-01-01\",\r\n \"2020-11-01\",\r\n \"2020-08-01\",\r\n \"2020-07-01\",\r\n \"2020-06-01\",\r\n \"2020-05-01\",\r\n \"2020-04-01\",\r\n \"2020-03-01\",\r\n \"2020-01-01\",\r\n \"2019-12-01\",\r\n \"2019-11-01\",\r\n \"2019-09-01\",\r\n \"2019-08-01\",\r\n \"2019-07-01\",\r\n \"2019-06-01\",\r\n \"2019-04-01\",\r\n \"2019-02-01\",\r\n \"2018-12-01\",\r\n \"2018-11-01\",\r\n \"2018-10-01\",\r\n \"2018-08-01\",\r\n \"2018-07-01\",\r\n \"2018-06-01\",\r\n \"2018-05-01\",\r\n \"2018-04-01\",\r\n \"2018-03-01\",\r\n \"2018-02-01\",\r\n \"2018-01-01\",\r\n \"2017-11-01\",\r\n \"2017-10-01\",\r\n \"2017-09-01\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove\"\r\n },\r\n {\r\n \"resourceType\": \"virtualNetworkAppliances\",\r\n \"locations\": [\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"West US\",\r\n \"East US\",\r\n \"East Asia\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West Central US\",\r\n \"UK South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2025-05-01\",\r\n \"2025-03-01\"\r\n ],\r\n \"capabilities\": \"None\"\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourcegroups/ps6922?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYTU0ZDUwMGQtYTZiNS00NGYyLWIwOTAtMjFiMGVmMjRhNGZiL3Jlc291cmNlZ3JvdXBzL3BzNjkyMj9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "PUT", + "RequestHeaders": { + "x-ms-client-request-id": [ + "7c6d7d03-9034-4793-96ec-720c1229ea34" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/8.0.2225.52707", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.26200", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.110" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "37" + ] + }, + "RequestBody": "{\r\n \"location\": \"West Central US\"\r\n}", + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "799" + ], + "x-ms-ratelimit-remaining-subscription-global-writes": [ + "11999" + ], + "x-ms-request-id": [ + "bcdaabad-660c-4d34-aebd-b6c51ffc67f8" + ], + "x-ms-correlation-request-id": [ + "bcdaabad-660c-4d34-aebd-b6c51ffc67f8" + ], + "x-ms-routing-request-id": [ + "EASTUS2:20260106T174249Z:bcdaabad-660c-4d34-aebd-b6c51ffc67f8" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Cache": [ + "CONFIG_NOCACHE" + ], + "X-MSEdge-Ref": [ + "Ref A: E333D9CBC8EB496C95DF20B349C265B9 Ref B: MNZ221060618027 Ref C: 2026-01-06T17:42:48Z" + ], + "Date": [ + "Tue, 06 Jan 2026 17:42:48 GMT" + ], + "Content-Length": [ + "202" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922\",\r\n \"name\": \"ps6922\",\r\n \"location\": \"westcentralus\",\r\n \"tags\": {\r\n \"skipNRMSNSG\": \"true\"\r\n },\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\"\r\n }\r\n}", + "StatusCode": 201 + }, + { + "RequestUri": "/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworks/ps9519?api-version=2025-03-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYTU0ZDUwMGQtYTZiNS00NGYyLWIwOTAtMjFiMGVmMjRhNGZiL3Jlc291cmNlR3JvdXBzL3BzNjkyMi9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL3BzOTUxOT9hcGktdmVyc2lvbj0yMDI1LTAzLTAx", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept-Language": [ + "en-US" + ], + "x-ms-client-request-id": [ + "0ba3bc60-1c89-4092-b7c6-aa27a652a6d9" + ], + "User-Agent": [ + "FxVersion/8.0.2225.52707", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.26200", + "Microsoft.Azure.Management.Network.NetworkManagementClient/27.0.0.0" + ] + }, + "RequestBody": "", + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-failure-cause": [ + "gateway" + ], + "x-ms-request-id": [ + "5cf23433-4127-4719-a753-08bc38038359" + ], + "x-ms-correlation-request-id": [ + "5cf23433-4127-4719-a753-08bc38038359" + ], + "x-ms-routing-request-id": [ + "EASTUS:20260106T174250Z:5cf23433-4127-4719-a753-08bc38038359" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Cache": [ + "CONFIG_NOCACHE" + ], + "X-MSEdge-Ref": [ + "Ref A: 903C704F5CD1475FA14EB3E5C8D012E5 Ref B: MNZ221060610027 Ref C: 2026-01-06T17:42:49Z" + ], + "Date": [ + "Tue, 06 Jan 2026 17:42:49 GMT" + ], + "Content-Length": [ + "218" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"ResourceNotFound\",\r\n \"message\": \"The Resource 'Microsoft.Network/virtualNetworks/ps9519' under resource group 'ps6922' was not found. For more details please go to https://aka.ms/ARMResourceNotFoundFix\"\r\n }\r\n}", + "StatusCode": 404 + }, + { + "RequestUri": "/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworks/ps9519?api-version=2025-03-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYTU0ZDUwMGQtYTZiNS00NGYyLWIwOTAtMjFiMGVmMjRhNGZiL3Jlc291cmNlR3JvdXBzL3BzNjkyMi9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL3BzOTUxOT9hcGktdmVyc2lvbj0yMDI1LTAzLTAx", + "RequestMethod": "GET", + "RequestHeaders": { + "x-ms-client-request-id": [ + "0ba3bc60-1c89-4092-b7c6-aa27a652a6d9" + ], + "User-Agent": [ + "FxVersion/8.0.2225.52707", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.26200", + "Microsoft.Azure.Management.Network.NetworkManagementClient/27.0.0.0" + ] + }, + "RequestBody": "", + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "ETag": [ + "W/\"87b4cbde-eee0-4d89-a423-b6b20047321a\"" + ], + "x-ms-request-id": [ + "55854fd7-03b6-4a88-9a07-fba401a30a29" + ], + "x-ms-correlation-request-id": [ + "fb044831-df72-4224-ac65-79895c6faf8e" + ], + "x-ms-arm-service-request-id": [ + "b6e3370a-98c0-4bc8-908f-f402d1cdf7d9" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "1099" + ], + "x-ms-ratelimit-remaining-subscription-global-reads": [ + "16499" + ], + "x-ms-routing-request-id": [ + "EASTUS2:20260106T174258Z:fb044831-df72-4224-ac65-79895c6faf8e" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Cache": [ + "CONFIG_NOCACHE" + ], + "X-MSEdge-Ref": [ + "Ref A: 82295F46B71C45D290B34F9851B4D865 Ref B: MNZ221060610027 Ref C: 2026-01-06T17:42:57Z" + ], + "Date": [ + "Tue, 06 Jan 2026 17:42:57 GMT" + ], + "Content-Length": [ + "1083" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"name\": \"ps9519\",\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworks/ps9519\",\r\n \"etag\": \"W/\\\"87b4cbde-eee0-4d89-a423-b6b20047321a\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworks\",\r\n \"location\": \"westcentralus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"resourceGuid\": \"b8b26836-01da-4700-84f6-95345956068d\",\r\n \"addressSpace\": {\r\n \"addressPrefixes\": [\r\n \"10.0.0.0/16\"\r\n ]\r\n },\r\n \"privateEndpointVNetPolicies\": \"Disabled\",\r\n \"subnets\": [\r\n {\r\n \"name\": \"VirtualNetworkApplianceSubnet\",\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworks/ps9519/subnets/VirtualNetworkApplianceSubnet\",\r\n \"etag\": \"W/\\\"87b4cbde-eee0-4d89-a423-b6b20047321a\\\"\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"addressPrefix\": \"10.0.0.0/24\",\r\n \"serviceEndpoints\": [],\r\n \"delegations\": [],\r\n \"privateEndpointNetworkPolicies\": \"Disabled\",\r\n \"privateLinkServiceNetworkPolicies\": \"Enabled\",\r\n \"defaultOutboundAccess\": false\r\n },\r\n \"type\": \"Microsoft.Network/virtualNetworks/subnets\"\r\n }\r\n ],\r\n \"virtualNetworkPeerings\": [],\r\n \"enableDdosProtection\": false\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworks/ps9519?api-version=2025-03-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYTU0ZDUwMGQtYTZiNS00NGYyLWIwOTAtMjFiMGVmMjRhNGZiL3Jlc291cmNlR3JvdXBzL3BzNjkyMi9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL3BzOTUxOT9hcGktdmVyc2lvbj0yMDI1LTAzLTAx", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept-Language": [ + "en-US" + ], + "x-ms-client-request-id": [ + "0ba3bc60-1c89-4092-b7c6-aa27a652a6d9" + ], + "User-Agent": [ + "FxVersion/8.0.2225.52707", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.26200", + "Microsoft.Azure.Management.Network.NetworkManagementClient/27.0.0.0" + ] + }, + "RequestBody": "", + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "ETag": [ + "W/\"87b4cbde-eee0-4d89-a423-b6b20047321a\"" + ], + "x-ms-request-id": [ + "25b44579-857f-4a68-b0ec-e69b09498eff" + ], + "x-ms-correlation-request-id": [ + "19ed89a7-4fb7-4160-a51a-927d511bb1a8" + ], + "x-ms-arm-service-request-id": [ + "12b4ea37-e475-4aba-b95b-639dcdccd114" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "1099" + ], + "x-ms-ratelimit-remaining-subscription-global-reads": [ + "16499" + ], + "x-ms-routing-request-id": [ + "WESTCENTRALUS:20260106T174258Z:19ed89a7-4fb7-4160-a51a-927d511bb1a8" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Cache": [ + "CONFIG_NOCACHE" + ], + "X-MSEdge-Ref": [ + "Ref A: 7A58C1E7DA75454796FF45B0C236E739 Ref B: MNZ221060610027 Ref C: 2026-01-06T17:42:58Z" + ], + "Date": [ + "Tue, 06 Jan 2026 17:42:57 GMT" + ], + "Content-Length": [ + "1083" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"name\": \"ps9519\",\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworks/ps9519\",\r\n \"etag\": \"W/\\\"87b4cbde-eee0-4d89-a423-b6b20047321a\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworks\",\r\n \"location\": \"westcentralus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"resourceGuid\": \"b8b26836-01da-4700-84f6-95345956068d\",\r\n \"addressSpace\": {\r\n \"addressPrefixes\": [\r\n \"10.0.0.0/16\"\r\n ]\r\n },\r\n \"privateEndpointVNetPolicies\": \"Disabled\",\r\n \"subnets\": [\r\n {\r\n \"name\": \"VirtualNetworkApplianceSubnet\",\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworks/ps9519/subnets/VirtualNetworkApplianceSubnet\",\r\n \"etag\": \"W/\\\"87b4cbde-eee0-4d89-a423-b6b20047321a\\\"\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"addressPrefix\": \"10.0.0.0/24\",\r\n \"serviceEndpoints\": [],\r\n \"delegations\": [],\r\n \"privateEndpointNetworkPolicies\": \"Disabled\",\r\n \"privateLinkServiceNetworkPolicies\": \"Enabled\",\r\n \"defaultOutboundAccess\": false\r\n },\r\n \"type\": \"Microsoft.Network/virtualNetworks/subnets\"\r\n }\r\n ],\r\n \"virtualNetworkPeerings\": [],\r\n \"enableDdosProtection\": false\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworks/ps9519?api-version=2025-03-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYTU0ZDUwMGQtYTZiNS00NGYyLWIwOTAtMjFiMGVmMjRhNGZiL3Jlc291cmNlR3JvdXBzL3BzNjkyMi9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL3BzOTUxOT9hcGktdmVyc2lvbj0yMDI1LTAzLTAx", + "RequestMethod": "PUT", + "RequestHeaders": { + "Accept-Language": [ + "en-US" + ], + "x-ms-client-request-id": [ + "0ba3bc60-1c89-4092-b7c6-aa27a652a6d9" + ], + "User-Agent": [ + "FxVersion/8.0.2225.52707", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.26200", + "Microsoft.Azure.Management.Network.NetworkManagementClient/27.0.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "890" + ] + }, + "RequestBody": "{\r\n \"properties\": {\r\n \"addressSpace\": {\r\n \"addressPrefixes\": [\r\n \"10.0.0.0/16\"\r\n ],\r\n \"ipamPoolPrefixAllocations\": []\r\n },\r\n \"subnets\": [\r\n {\r\n \"name\": \"VirtualNetworkApplianceSubnet\",\r\n \"properties\": {\r\n \"addressPrefix\": \"10.0.0.0/24\",\r\n \"addressPrefixes\": [],\r\n \"serviceEndpoints\": [],\r\n \"serviceEndpointPolicies\": [],\r\n \"ipAllocations\": [],\r\n \"delegations\": [],\r\n \"privateEndpointNetworkPolicies\": \"Disabled\",\r\n \"privateLinkServiceNetworkPolicies\": \"Enabled\",\r\n \"applicationGatewayIPConfigurations\": [],\r\n \"defaultOutboundAccess\": false,\r\n \"ipamPoolPrefixAllocations\": []\r\n }\r\n }\r\n ],\r\n \"virtualNetworkPeerings\": [],\r\n \"enableDdosProtection\": false,\r\n \"ipAllocations\": []\r\n },\r\n \"location\": \"West Central US\"\r\n}", + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Retry-After": [ + "3" + ], + "x-ms-request-id": [ + "118bf363-ac61-4ede-aa1c-d8e7c0657d7b" + ], + "Azure-AsyncOperation": [ + "https://management.azure.com/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/providers/Microsoft.Network/locations/westcentralus/operations/118bf363-ac61-4ede-aa1c-d8e7c0657d7b?api-version=2025-03-01&t=639033181741003480&c=MIIHhzCCBm-gAwIBAgITfAlUi7iAnbsbxEA4ngAACVSLuDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjUxMDE3MDAxMzUyWhcNMjYwNDE1MDAxMzUyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVvYrmN0LCC719Q3nXJvt4uXc9n2LDkbLdhqU1ZZIqXRdqXKqc9eOaUT2mRMpzJqG3DkugEfX7Nw8bVJitWe4cuXODNRonoinhfeF7iB24Ni3w5Vw42MpUpUGjYlZ9S8RCPdfu-tm_6lUUjZGT1UgEcE4l9h49m-Jf6snRiPU7aOozbchkwa3XznLovQcE3xV5ltctPLNmqlD5D78zWVE3wSICwVIwUnctZhbbn8AXwt_x2m4_h0wjuvPwR2BgGn1a5QUJSOnQuwDcaPsYFU4RfyMltzPSZr_FoRoVZzkV9k-r40fumjkDViQrMDSm0Zcg-W2Y2Aoex7otPtacfaNECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRtyRqqNHNl-tE5vAN2dbRxFxQgUTAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHaaglMFXSi7lvSHyTclKxKba1hFprYFQVgr_DW45StNOSIkV3_IRl2adaKUYgAW19bgubgtdrtL0A69bhRblh0ms92u0UVr_WadgtcAR97pxjZWozSK4HQHfDeK-NcLN8r-jwN4U8Dhusj4ZCJxCjCUYc-4M2itXj-2M8ilwDkr5m45RnBiK239bK_VWL59ZuXV1GYtMqoff9eJP5I5UPKuw8KG6wmWeLEtQaRlTmwl9fug5IiNwWBjzTlb38vB1nrqmyHyoz9O5NqF7x0jK1yKEb3WKpywdZHTO4o8A0ErwLab9V8bL5EZmk15bjZrJm1B8v4jKxax2-vQUFnbRaM&s=Ol_L32ugNBdsCcBVQW0Xx45M_lKg8K0d0IEn3fsjIIB1QbfrmEJ4kktgEqyFIsSewXc3PONmARWY7QjzGfMxyG-nDGnX5WUBhOC5itkUXD9YIL0kGflluGPu4RlSoqgTqTIit2TSkG4xtCFbzlE9xbXSoZ1DZ18ALjOU8FCU_k2gHqvbNXoDsWWFHA_YWxONMktYYcjUmUdMjYTCF7YG0f94pAWruRwyRFYISN0VXD8wJODhU_mu0WF5VHHLsTqESmJt_hkceQhlwttu9KrI8Ea6in7KmrPDbnzzh-6hEmgwVMXDhiVNAAszldnBm9i9yMHpJk-3V9eJSPCxSXAHRA&h=C4zqdw_5TyP9sWd2OGyxgMngORj2jImYdDCTiFH8kE0" + ], + "x-ms-correlation-request-id": [ + "9d32eec3-f702-4ec5-8215-24aebd246b1b" + ], + "Azure-AsyncNotification": [ + "Enabled" + ], + "x-ms-arm-service-request-id": [ + "06220579-f701-41b2-99df-640617b2ad93" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=9ff214cf-3961-45c7-8dcf-5728570735b4/westcentralus/74c53a65-7f59-43fd-9689-bef5d5485dfb" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "799" + ], + "x-ms-ratelimit-remaining-subscription-global-writes": [ + "11999" + ], + "x-ms-routing-request-id": [ + "WESTCENTRALUS:20260106T174254Z:9d32eec3-f702-4ec5-8215-24aebd246b1b" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Cache": [ + "CONFIG_NOCACHE" + ], + "X-MSEdge-Ref": [ + "Ref A: D5135B23F9214F8D9F48BF3C68EAA5FF Ref B: MNZ221060610027 Ref C: 2026-01-06T17:42:52Z" + ], + "Date": [ + "Tue, 06 Jan 2026 17:42:53 GMT" + ], + "Content-Length": [ + "1081" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"name\": \"ps9519\",\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworks/ps9519\",\r\n \"etag\": \"W/\\\"86bf18da-c8cb-4ae1-90a1-15fccb09b228\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworks\",\r\n \"location\": \"westcentralus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \"resourceGuid\": \"b8b26836-01da-4700-84f6-95345956068d\",\r\n \"addressSpace\": {\r\n \"addressPrefixes\": [\r\n \"10.0.0.0/16\"\r\n ]\r\n },\r\n \"privateEndpointVNetPolicies\": \"Disabled\",\r\n \"subnets\": [\r\n {\r\n \"name\": \"VirtualNetworkApplianceSubnet\",\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworks/ps9519/subnets/VirtualNetworkApplianceSubnet\",\r\n \"etag\": \"W/\\\"86bf18da-c8cb-4ae1-90a1-15fccb09b228\\\"\",\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \"addressPrefix\": \"10.0.0.0/24\",\r\n \"serviceEndpoints\": [],\r\n \"delegations\": [],\r\n \"privateEndpointNetworkPolicies\": \"Disabled\",\r\n \"privateLinkServiceNetworkPolicies\": \"Enabled\",\r\n \"defaultOutboundAccess\": false\r\n },\r\n \"type\": \"Microsoft.Network/virtualNetworks/subnets\"\r\n }\r\n ],\r\n \"virtualNetworkPeerings\": [],\r\n \"enableDdosProtection\": false\r\n }\r\n}", + "StatusCode": 201 + }, + { + "RequestUri": "/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/providers/Microsoft.Network/locations/westcentralus/operations/118bf363-ac61-4ede-aa1c-d8e7c0657d7b?api-version=2025-03-01&t=639033181741003480&c=MIIHhzCCBm-gAwIBAgITfAlUi7iAnbsbxEA4ngAACVSLuDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjUxMDE3MDAxMzUyWhcNMjYwNDE1MDAxMzUyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVvYrmN0LCC719Q3nXJvt4uXc9n2LDkbLdhqU1ZZIqXRdqXKqc9eOaUT2mRMpzJqG3DkugEfX7Nw8bVJitWe4cuXODNRonoinhfeF7iB24Ni3w5Vw42MpUpUGjYlZ9S8RCPdfu-tm_6lUUjZGT1UgEcE4l9h49m-Jf6snRiPU7aOozbchkwa3XznLovQcE3xV5ltctPLNmqlD5D78zWVE3wSICwVIwUnctZhbbn8AXwt_x2m4_h0wjuvPwR2BgGn1a5QUJSOnQuwDcaPsYFU4RfyMltzPSZr_FoRoVZzkV9k-r40fumjkDViQrMDSm0Zcg-W2Y2Aoex7otPtacfaNECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRtyRqqNHNl-tE5vAN2dbRxFxQgUTAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHaaglMFXSi7lvSHyTclKxKba1hFprYFQVgr_DW45StNOSIkV3_IRl2adaKUYgAW19bgubgtdrtL0A69bhRblh0ms92u0UVr_WadgtcAR97pxjZWozSK4HQHfDeK-NcLN8r-jwN4U8Dhusj4ZCJxCjCUYc-4M2itXj-2M8ilwDkr5m45RnBiK239bK_VWL59ZuXV1GYtMqoff9eJP5I5UPKuw8KG6wmWeLEtQaRlTmwl9fug5IiNwWBjzTlb38vB1nrqmyHyoz9O5NqF7x0jK1yKEb3WKpywdZHTO4o8A0ErwLab9V8bL5EZmk15bjZrJm1B8v4jKxax2-vQUFnbRaM&s=Ol_L32ugNBdsCcBVQW0Xx45M_lKg8K0d0IEn3fsjIIB1QbfrmEJ4kktgEqyFIsSewXc3PONmARWY7QjzGfMxyG-nDGnX5WUBhOC5itkUXD9YIL0kGflluGPu4RlSoqgTqTIit2TSkG4xtCFbzlE9xbXSoZ1DZ18ALjOU8FCU_k2gHqvbNXoDsWWFHA_YWxONMktYYcjUmUdMjYTCF7YG0f94pAWruRwyRFYISN0VXD8wJODhU_mu0WF5VHHLsTqESmJt_hkceQhlwttu9KrI8Ea6in7KmrPDbnzzh-6hEmgwVMXDhiVNAAszldnBm9i9yMHpJk-3V9eJSPCxSXAHRA&h=C4zqdw_5TyP9sWd2OGyxgMngORj2jImYdDCTiFH8kE0", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYTU0ZDUwMGQtYTZiNS00NGYyLWIwOTAtMjFiMGVmMjRhNGZiL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9sb2NhdGlvbnMvd2VzdGNlbnRyYWx1cy9vcGVyYXRpb25zLzExOGJmMzYzLWFjNjEtNGVkZS1hYTFjLWQ4ZTdjMDY1N2Q3Yj9hcGktdmVyc2lvbj0yMDI1LTAzLTAxJnQ9NjM5MDMzMTgxNzQxMDAzNDgwJmM9TUlJSGh6Q0NCbS1nQXdJQkFnSVRmQWxVaTdpQW5ic2J4RUE0bmdBQUNWU0x1REFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURVd0hoY05NalV4TURFM01EQXhNelV5V2hjTk1qWXdOREUxTURBeE16VXlXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTVZ2WXJtTjBMQ0M3MTlRM25YSnZ0NHVYYzluMkxEa2JMZGhxVTFaWklxWFJkcVhLcWM5ZU9hVVQybVJNcHpKcUczRGt1Z0VmWDdOdzhiVkppdFdlNGN1WE9ETlJvbm9pbmhmZUY3aUIyNE5pM3c1Vnc0Mk1wVXBVR2pZbFo5UzhSQ1BkZnUtdG1fNmxVVWpaR1QxVWdFY0U0bDloNDltLUpmNnNuUmlQVTdhT296YmNoa3dhM1h6bkxvdlFjRTN4VjVsdGN0UExObXFsRDVENzh6V1ZFM3dTSUN3Vkl3VW5jdFpoYmJuOEFYd3RfeDJtNF9oMHdqdXZQd1IyQmdHbjFhNVFVSlNPblF1d0RjYVBzWUZVNFJmeU1sdHpQU1pyX0ZvUm9WWnprVjlrLXI0MGZ1bWprRFZpUXJNRFNtMFpjZy1XMlkyQW9leDdvdFB0YWNmYU5FQ0F3RUFBYU9DQkhRd2dnUndNQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSExCZ2dyQmdFRkJRY0JBUVNDQWIwd2dnRzVNR01HQ0NzR0FRVUZCekFDaGxkb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRMDh4VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd05TNWpjblF3VXdZSUt3WUJCUVVITUFLR1IyaDBkSEE2THk5amNtd3hMbUZ0WlM1blltd3ZZV2xoTDBOUE1WQkxTVWxPVkVOQk1ERXVRVTFGTGtkQ1RGOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFV1WTNKME1GTUdDQ3NHQVFVRkJ6QUNoa2RvZEhSd09pOHZZM0pzTWk1aGJXVXVaMkpzTDJGcFlTOURUekZRUzBsSlRsUkRRVEF4TGtGTlJTNUhRa3hmUVUxRkpUSXdTVzVtY21FbE1qQkRRU1V5TURBMUxtTnlkREJUQmdnckJnRUZCUWN3QW9aSGFIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UTA4eFVFdEpTVTVVUTBFd01TNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdOUzVqY25Rd1V3WUlLd1lCQlFVSE1BS0dSMmgwZEhBNkx5OWpjbXcwTG1GdFpTNW5ZbXd2WVdsaEwwTlBNVkJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURVdVkzSjBNQjBHQTFVZERnUVdCQlJ0eVJxcU5ITmwtdEU1dkFOMmRiUnhGeFFnVVRBT0JnTlZIUThCQWY4RUJBTUNCYUF3Z2dFbUJnTlZIUjhFZ2dFZE1JSUJHVENDQVJXZ2dnRVJvSUlCRFlZX2FIUjBjRG92TDJOeWJDNXRhV055YjNOdlpuUXVZMjl0TDNCcmFXbHVabkpoTDBOU1RDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFV1WTNKc2hqRm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EVXVZM0pzaGpGb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURVdVkzSnNoakZvZEhSd09pOHZZM0pzTXk1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFV1WTNKc2hqRm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EVXVZM0pzTUlHZEJnTlZIU0FFZ1pVd2daSXdEQVlLS3dZQkJBR0NOM3NCQVRCbUJnb3JCZ0VFQVlJM2V3SUNNRmd3VmdZSUt3WUJCUVVIQWdJd1NoNUlBRE1BTXdCbEFEQUFNUUE1QURJQU1RQXRBRFFBWkFBMkFEUUFMUUEwQUdZQU9BQmpBQzBBWVFBd0FEVUFOUUF0QURVQVlnQmtBR0VBWmdCbUFHUUFOUUJsQURNQU13QmtNQXdHQ2lzR0FRUUJnamQ3QXdJd0RBWUtLd1lCQkFHQ04zc0VBakFmQmdOVkhTTUVHREFXZ0JSNjFobUZLSGxzY1hZZVlQanpTLS1pQlVJV0hUQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUhhYWdsTUZYU2k3bHZTSHlUY2xLeEtiYTFoRnByWUZRVmdyX0RXNDVTdE5PU0lrVjNfSVJsMmFkYUtVWWdBVzE5Ymd1Ymd0ZHJ0TDBBNjliaFJibGgwbXM5MnUwVVZyX1dhZGd0Y0FSOTdweGpaV296U0s0SFFIZkRlSy1OY0xOOHItandONFU4RGh1c2o0WkNKeENqQ1VZYy00TTJpdFhqLTJNOGlsd0RrcjVtNDVSbkJpSzIzOWJLX1ZXTDU5WnVYVjFHWXRNcW9mZjllSlA1STVVUEt1dzhLRzZ3bVdlTEV0UWFSbFRtd2w5ZnVnNUlpTndXQmp6VGxiMzh2QjFucnFteUh5b3o5TzVOcUY3eDBqSzF5S0ViM1dLcHl3ZFpIVE80bzhBMEVyd0xhYjlWOGJMNUVabWsxNWJqWnJKbTFCOHY0akt4YXgyLXZRVUZuYlJhTSZzPU9sX0wzMnVnTkJkc0NjQlZRVzBYeDQ1TV9sS2c4SzBkMElFbjNmc2pJSUIxUWJmcm1FSjRra3RnRXF5RklzU2V3WGMzUE9ObUFSV1k3UWp6R2ZNeHlHLW5ER25YNVdVQmhPQzVpdGtVWEQ5WUlMMGtHZmxsdUdQdTRSbFNvcWdUcVRJaXQyVFNrRzR4dENGYnpsRTl4YlhTb1oxRFoxOEFMak9VOEZDVV9rMmdIcXZiTlhvRHNXV0ZIQV9ZV3hPTk1rdFlZY2pVbVVkTWpZVENGN1lHMGY5NHBBV3J1Und5UkZZSVNOMFZYRDh3Sk9EaFVfbXUwV0Y1VkhITHNUcUVTbUp0X2hrY2VRaGx3dHR1OUtySThFYTZpbjdLbXJQRGJuenpoLTZoRW1nd1ZNWERoaVZOQUFzemxkbkJtOWk5eU1IcEprLTNWOWVKU1BDeFNYQUhSQSZoPUM0enFkd181VHlQOXNXZDJPR3l4Z01uZ09SajJqSW1ZZERDVGlGSDhrRTA=", + "RequestMethod": "GET", + "RequestHeaders": { + "x-ms-client-request-id": [ + "0ba3bc60-1c89-4092-b7c6-aa27a652a6d9" + ], + "User-Agent": [ + "FxVersion/8.0.2225.52707", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.26200", + "Microsoft.Azure.Management.Network.NetworkManagementClient/27.0.0.0" + ] + }, + "RequestBody": "", + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "55f8e62d-02e0-4991-aa20-2295fb7dd1d7" + ], + "x-ms-correlation-request-id": [ + "368b3134-0ab0-40d2-b508-716e7531bb65" + ], + "x-ms-arm-service-request-id": [ + "bf703adc-d1ce-482f-b138-65fad0830dd4" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=9ff214cf-3961-45c7-8dcf-5728570735b4/westcentralus/151d55ad-3a2e-4dc9-a9dd-132411fd5972" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "1099" + ], + "x-ms-ratelimit-remaining-subscription-global-reads": [ + "16499" + ], + "x-ms-routing-request-id": [ + "WESTCENTRALUS:20260106T174257Z:368b3134-0ab0-40d2-b508-716e7531bb65" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Cache": [ + "CONFIG_NOCACHE" + ], + "X-MSEdge-Ref": [ + "Ref A: 4F103C84F53245259FBBBF2EBDBBD279 Ref B: MNZ221060610027 Ref C: 2026-01-06T17:42:57Z" + ], + "Date": [ + "Tue, 06 Jan 2026 17:42:56 GMT" + ], + "Content-Length": [ + "22" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"status\": \"Succeeded\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworkAppliances/ps4154?api-version=2025-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYTU0ZDUwMGQtYTZiNS00NGYyLWIwOTAtMjFiMGVmMjRhNGZiL3Jlc291cmNlR3JvdXBzL3BzNjkyMi9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtBcHBsaWFuY2VzL3BzNDE1ND9hcGktdmVyc2lvbj0yMDI1LTA1LTAx", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept-Language": [ + "en-US" + ], + "x-ms-client-request-id": [ + "ff634e5e-88cf-4d3f-8b7c-0400befb9797" + ], + "User-Agent": [ + "FxVersion/8.0.2225.52707", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.26200", + "Microsoft.Azure.Management.Network.NetworkManagementClient/27.0.0.0" + ] + }, + "RequestBody": "", + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-failure-cause": [ + "gateway" + ], + "x-ms-request-id": [ + "530d3b46-1b00-45eb-8c95-3a1a506ef662" + ], + "x-ms-correlation-request-id": [ + "530d3b46-1b00-45eb-8c95-3a1a506ef662" + ], + "x-ms-routing-request-id": [ + "WESTCENTRALUS:20260106T174259Z:530d3b46-1b00-45eb-8c95-3a1a506ef662" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Cache": [ + "CONFIG_NOCACHE" + ], + "X-MSEdge-Ref": [ + "Ref A: 6B9F30CAAC3748F28DC18E11EAC81591 Ref B: MNZ221060610035 Ref C: 2026-01-06T17:42:58Z" + ], + "Date": [ + "Tue, 06 Jan 2026 17:42:59 GMT" + ], + "Content-Length": [ + "227" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"ResourceNotFound\",\r\n \"message\": \"The Resource 'Microsoft.Network/virtualNetworkAppliances/ps4154' under resource group 'ps6922' was not found. For more details please go to https://aka.ms/ARMResourceNotFoundFix\"\r\n }\r\n}", + "StatusCode": 404 + }, + { + "RequestUri": "/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworkAppliances/ps4154?api-version=2025-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYTU0ZDUwMGQtYTZiNS00NGYyLWIwOTAtMjFiMGVmMjRhNGZiL3Jlc291cmNlR3JvdXBzL3BzNjkyMi9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtBcHBsaWFuY2VzL3BzNDE1ND9hcGktdmVyc2lvbj0yMDI1LTA1LTAx", + "RequestMethod": "GET", + "RequestHeaders": { + "x-ms-client-request-id": [ + "ff634e5e-88cf-4d3f-8b7c-0400befb9797" + ], + "User-Agent": [ + "FxVersion/8.0.2225.52707", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.26200", + "Microsoft.Azure.Management.Network.NetworkManagementClient/27.0.0.0" + ] + }, + "RequestBody": "", + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "ETag": [ + "W/\"30d50e68-683e-435e-834f-439778e82fd3\"" + ], + "x-ms-request-id": [ + "f18228bd-de60-438e-8420-726491a14c31" + ], + "x-ms-correlation-request-id": [ + "c1076e7c-08b6-42c8-8cec-5dd936b25ee2" + ], + "x-ms-arm-service-request-id": [ + "786f9d28-af0c-4e4f-8875-510525be6c41" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "1099" + ], + "x-ms-ratelimit-remaining-subscription-global-reads": [ + "16499" + ], + "x-ms-routing-request-id": [ + "EASTUS2:20260106T174343Z:c1076e7c-08b6-42c8-8cec-5dd936b25ee2" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Cache": [ + "CONFIG_NOCACHE" + ], + "X-MSEdge-Ref": [ + "Ref A: 911E80B4C40347AFAC760FEFFBA892A1 Ref B: MNZ221060610035 Ref C: 2026-01-06T17:43:43Z" + ], + "Date": [ + "Tue, 06 Jan 2026 17:43:43 GMT" + ], + "Content-Length": [ + "3174" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"name\": \"ps4154\",\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworkAppliances/ps4154\",\r\n \"etag\": \"W/\\\"30d50e68-683e-435e-834f-439778e82fd3\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworkAppliances\",\r\n \"location\": \"westcentralus\",\r\n \"tags\": {\r\n \"testKey\": \"testValue\"\r\n },\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"bandwidthInGbps\": 50,\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworks/ps9519/subnets/VirtualNetworkApplianceSubnet\"\r\n },\r\n \"ipConfigurations\": [\r\n {\r\n \"name\": \"ipconfig_1_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworkAppliances/ps4154/ipConfigurations/ipconfig_1_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"etag\": \"W/\\\"30d50e68-683e-435e-834f-439778e82fd3\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworkAppliances/ipConfigurations\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"privateIPAddress\": \"10.0.0.4\",\r\n \"privateIPAllocationMethod\": \"Dynamic\",\r\n \"primary\": true\r\n }\r\n },\r\n {\r\n \"name\": \"ipconfig_2_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworkAppliances/ps4154/ipConfigurations/ipconfig_2_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"etag\": \"W/\\\"30d50e68-683e-435e-834f-439778e82fd3\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworkAppliances/ipConfigurations\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"privateIPAddress\": \"10.0.0.5\",\r\n \"privateIPAllocationMethod\": \"Dynamic\",\r\n \"primary\": false\r\n }\r\n },\r\n {\r\n \"name\": \"ipconfig_3_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworkAppliances/ps4154/ipConfigurations/ipconfig_3_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"etag\": \"W/\\\"30d50e68-683e-435e-834f-439778e82fd3\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworkAppliances/ipConfigurations\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"privateIPAddress\": \"10.0.0.6\",\r\n \"privateIPAllocationMethod\": \"Dynamic\",\r\n \"primary\": false\r\n }\r\n },\r\n {\r\n \"name\": \"ipconfig_4_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworkAppliances/ps4154/ipConfigurations/ipconfig_4_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"etag\": \"W/\\\"30d50e68-683e-435e-834f-439778e82fd3\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworkAppliances/ipConfigurations\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"privateIPAddress\": \"10.0.0.7\",\r\n \"privateIPAllocationMethod\": \"Dynamic\",\r\n \"primary\": false\r\n }\r\n },\r\n {\r\n \"name\": \"ipconfig_5_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworkAppliances/ps4154/ipConfigurations/ipconfig_5_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"etag\": \"W/\\\"30d50e68-683e-435e-834f-439778e82fd3\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworkAppliances/ipConfigurations\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"privateIPAddress\": \"10.0.0.8\",\r\n \"privateIPAllocationMethod\": \"Dynamic\",\r\n \"primary\": false\r\n }\r\n }\r\n ]\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworkAppliances/ps4154?api-version=2025-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYTU0ZDUwMGQtYTZiNS00NGYyLWIwOTAtMjFiMGVmMjRhNGZiL3Jlc291cmNlR3JvdXBzL3BzNjkyMi9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtBcHBsaWFuY2VzL3BzNDE1ND9hcGktdmVyc2lvbj0yMDI1LTA1LTAx", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept-Language": [ + "en-US" + ], + "x-ms-client-request-id": [ + "33c0cf7f-545d-481d-95f6-30b03f02086f" + ], + "User-Agent": [ + "FxVersion/8.0.2225.52707", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.26200", + "Microsoft.Azure.Management.Network.NetworkManagementClient/27.0.0.0" + ] + }, + "RequestBody": "", + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "ETag": [ + "W/\"30d50e68-683e-435e-834f-439778e82fd3\"" + ], + "x-ms-request-id": [ + "282b7223-f5df-48d2-872f-57038b75fc7e" + ], + "x-ms-correlation-request-id": [ + "9a98319b-dbcd-4877-aeda-339eb8f57cec" + ], + "x-ms-arm-service-request-id": [ + "df4dd2ef-a251-4840-91ce-584605cbaf09" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "1099" + ], + "x-ms-ratelimit-remaining-subscription-global-reads": [ + "16499" + ], + "x-ms-routing-request-id": [ + "WESTCENTRALUS:20260106T174344Z:9a98319b-dbcd-4877-aeda-339eb8f57cec" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Cache": [ + "CONFIG_NOCACHE" + ], + "X-MSEdge-Ref": [ + "Ref A: D2DBA73B8BAA4501B47112C84A8DC573 Ref B: MNZ221060619027 Ref C: 2026-01-06T17:43:44Z" + ], + "Date": [ + "Tue, 06 Jan 2026 17:43:44 GMT" + ], + "Content-Length": [ + "3174" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"name\": \"ps4154\",\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworkAppliances/ps4154\",\r\n \"etag\": \"W/\\\"30d50e68-683e-435e-834f-439778e82fd3\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworkAppliances\",\r\n \"location\": \"westcentralus\",\r\n \"tags\": {\r\n \"testKey\": \"testValue\"\r\n },\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"bandwidthInGbps\": 50,\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworks/ps9519/subnets/VirtualNetworkApplianceSubnet\"\r\n },\r\n \"ipConfigurations\": [\r\n {\r\n \"name\": \"ipconfig_1_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworkAppliances/ps4154/ipConfigurations/ipconfig_1_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"etag\": \"W/\\\"30d50e68-683e-435e-834f-439778e82fd3\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworkAppliances/ipConfigurations\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"privateIPAddress\": \"10.0.0.4\",\r\n \"privateIPAllocationMethod\": \"Dynamic\",\r\n \"primary\": true\r\n }\r\n },\r\n {\r\n \"name\": \"ipconfig_2_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworkAppliances/ps4154/ipConfigurations/ipconfig_2_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"etag\": \"W/\\\"30d50e68-683e-435e-834f-439778e82fd3\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworkAppliances/ipConfigurations\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"privateIPAddress\": \"10.0.0.5\",\r\n \"privateIPAllocationMethod\": \"Dynamic\",\r\n \"primary\": false\r\n }\r\n },\r\n {\r\n \"name\": \"ipconfig_3_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworkAppliances/ps4154/ipConfigurations/ipconfig_3_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"etag\": \"W/\\\"30d50e68-683e-435e-834f-439778e82fd3\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworkAppliances/ipConfigurations\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"privateIPAddress\": \"10.0.0.6\",\r\n \"privateIPAllocationMethod\": \"Dynamic\",\r\n \"primary\": false\r\n }\r\n },\r\n {\r\n \"name\": \"ipconfig_4_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworkAppliances/ps4154/ipConfigurations/ipconfig_4_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"etag\": \"W/\\\"30d50e68-683e-435e-834f-439778e82fd3\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworkAppliances/ipConfigurations\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"privateIPAddress\": \"10.0.0.7\",\r\n \"privateIPAllocationMethod\": \"Dynamic\",\r\n \"primary\": false\r\n }\r\n },\r\n {\r\n \"name\": \"ipconfig_5_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworkAppliances/ps4154/ipConfigurations/ipconfig_5_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"etag\": \"W/\\\"30d50e68-683e-435e-834f-439778e82fd3\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworkAppliances/ipConfigurations\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"privateIPAddress\": \"10.0.0.8\",\r\n \"privateIPAllocationMethod\": \"Dynamic\",\r\n \"primary\": false\r\n }\r\n }\r\n ]\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworkAppliances/ps4154?api-version=2025-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYTU0ZDUwMGQtYTZiNS00NGYyLWIwOTAtMjFiMGVmMjRhNGZiL3Jlc291cmNlR3JvdXBzL3BzNjkyMi9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtBcHBsaWFuY2VzL3BzNDE1ND9hcGktdmVyc2lvbj0yMDI1LTA1LTAx", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept-Language": [ + "en-US" + ], + "x-ms-client-request-id": [ + "410d726c-a751-4715-b735-2a60b937fd3d" + ], + "User-Agent": [ + "FxVersion/8.0.2225.52707", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.26200", + "Microsoft.Azure.Management.Network.NetworkManagementClient/27.0.0.0" + ] + }, + "RequestBody": "", + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-failure-cause": [ + "gateway" + ], + "x-ms-request-id": [ + "1fb97f13-aca6-467f-8846-67993a24eb27" + ], + "x-ms-correlation-request-id": [ + "1fb97f13-aca6-467f-8846-67993a24eb27" + ], + "x-ms-routing-request-id": [ + "EASTUS2:20260106T174400Z:1fb97f13-aca6-467f-8846-67993a24eb27" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Cache": [ + "CONFIG_NOCACHE" + ], + "X-MSEdge-Ref": [ + "Ref A: 9B3F9500F550476EA4D0C7C530A31E3D Ref B: MNZ221060609037 Ref C: 2026-01-06T17:44:00Z" + ], + "Date": [ + "Tue, 06 Jan 2026 17:44:00 GMT" + ], + "Content-Length": [ + "227" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"ResourceNotFound\",\r\n \"message\": \"The Resource 'Microsoft.Network/virtualNetworkAppliances/ps4154' under resource group 'ps6922' was not found. For more details please go to https://aka.ms/ARMResourceNotFoundFix\"\r\n }\r\n}", + "StatusCode": 404 + }, + { + "RequestUri": "/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworkAppliances/ps4154?api-version=2025-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYTU0ZDUwMGQtYTZiNS00NGYyLWIwOTAtMjFiMGVmMjRhNGZiL3Jlc291cmNlR3JvdXBzL3BzNjkyMi9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtBcHBsaWFuY2VzL3BzNDE1ND9hcGktdmVyc2lvbj0yMDI1LTA1LTAx", + "RequestMethod": "PUT", + "RequestHeaders": { + "Accept-Language": [ + "en-US" + ], + "x-ms-client-request-id": [ + "ff634e5e-88cf-4d3f-8b7c-0400befb9797" + ], + "User-Agent": [ + "FxVersion/8.0.2225.52707", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.26200", + "Microsoft.Azure.Management.Network.NetworkManagementClient/27.0.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "341" + ] + }, + "RequestBody": "{\r\n \"properties\": {\r\n \"bandwidthInGbps\": \"50\",\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworks/ps9519/subnets/VirtualNetworkApplianceSubnet\"\r\n }\r\n },\r\n \"location\": \"West Central US\",\r\n \"tags\": {\r\n \"testKey\": \"testValue\"\r\n }\r\n}", + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Retry-After": [ + "10" + ], + "x-ms-request-id": [ + "5350a61e-dd7c-4046-bc48-099eddbf6e02" + ], + "Azure-AsyncOperation": [ + "https://management.azure.com/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/providers/Microsoft.Network/locations/westcentralus/operations/5350a61e-dd7c-4046-bc48-099eddbf6e02?api-version=2025-05-01&t=639033181812726303&c=MIIHhzCCBm-gAwIBAgITfAlUi7iAnbsbxEA4ngAACVSLuDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjUxMDE3MDAxMzUyWhcNMjYwNDE1MDAxMzUyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVvYrmN0LCC719Q3nXJvt4uXc9n2LDkbLdhqU1ZZIqXRdqXKqc9eOaUT2mRMpzJqG3DkugEfX7Nw8bVJitWe4cuXODNRonoinhfeF7iB24Ni3w5Vw42MpUpUGjYlZ9S8RCPdfu-tm_6lUUjZGT1UgEcE4l9h49m-Jf6snRiPU7aOozbchkwa3XznLovQcE3xV5ltctPLNmqlD5D78zWVE3wSICwVIwUnctZhbbn8AXwt_x2m4_h0wjuvPwR2BgGn1a5QUJSOnQuwDcaPsYFU4RfyMltzPSZr_FoRoVZzkV9k-r40fumjkDViQrMDSm0Zcg-W2Y2Aoex7otPtacfaNECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRtyRqqNHNl-tE5vAN2dbRxFxQgUTAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHaaglMFXSi7lvSHyTclKxKba1hFprYFQVgr_DW45StNOSIkV3_IRl2adaKUYgAW19bgubgtdrtL0A69bhRblh0ms92u0UVr_WadgtcAR97pxjZWozSK4HQHfDeK-NcLN8r-jwN4U8Dhusj4ZCJxCjCUYc-4M2itXj-2M8ilwDkr5m45RnBiK239bK_VWL59ZuXV1GYtMqoff9eJP5I5UPKuw8KG6wmWeLEtQaRlTmwl9fug5IiNwWBjzTlb38vB1nrqmyHyoz9O5NqF7x0jK1yKEb3WKpywdZHTO4o8A0ErwLab9V8bL5EZmk15bjZrJm1B8v4jKxax2-vQUFnbRaM&s=QienCjcuhYfhZCygjpUAAQ7Cya394Z3KKh_IOTKgmKkdTl_abZoRVjzwddXmHJsTrf-XLEItGp5hDzUTJTrN90PU-Z4DUbmWe7hFQrHnsNyvWRxDlI16S4CdJgdqbCLlrwgREYsK1cdU2ZFKwKQP3t9grNONST9yE16FLVSi_XslUxtfe1lu6Zq2SBUfgsH5IgXxp9Njgu_hmNuwJfdXdCcDL2VADALLCcVEKbz9ARlnI8OnlZiL90s5qG_phfE9jglVTkoVOOfdP29xcvyr6W_w6tAT5Mr7iQZAKhKnC91B5-JObDWrSKXisSaLnBoVZgRGTE9ZJCndq1z4Phgxkg&h=0cv8lUX-cI-SfyQQkdK_dc5uefoWTpWyX3txFAUyNK0" + ], + "x-ms-correlation-request-id": [ + "7d26898a-1d6d-4932-8c0b-6a1e6b0fa05b" + ], + "Azure-AsyncNotification": [ + "Enabled" + ], + "x-ms-arm-service-request-id": [ + "6edba02c-4fb9-473b-938d-7967de9354f2" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=9ff214cf-3961-45c7-8dcf-5728570735b4/westcentralus/dc2f54b2-0dbe-48d9-8869-b4b072fc5d93" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "799" + ], + "x-ms-ratelimit-remaining-subscription-global-writes": [ + "11999" + ], + "x-ms-routing-request-id": [ + "WESTCENTRALUS:20260106T174301Z:7d26898a-1d6d-4932-8c0b-6a1e6b0fa05b" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Cache": [ + "CONFIG_NOCACHE" + ], + "X-MSEdge-Ref": [ + "Ref A: 492E7F26234342E89A7D8F22AAADF63B Ref B: MNZ221060610035 Ref C: 2026-01-06T17:43:00Z" + ], + "Date": [ + "Tue, 06 Jan 2026 17:43:00 GMT" + ], + "Content-Length": [ + "3173" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"name\": \"ps4154\",\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworkAppliances/ps4154\",\r\n \"etag\": \"W/\\\"52064514-2e4e-4a0a-a577-588442b6793c\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworkAppliances\",\r\n \"location\": \"westcentralus\",\r\n \"tags\": {\r\n \"testKey\": \"testValue\"\r\n },\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \"bandwidthInGbps\": 50,\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworks/ps9519/subnets/VirtualNetworkApplianceSubnet\"\r\n },\r\n \"ipConfigurations\": [\r\n {\r\n \"name\": \"ipconfig_1_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworkAppliances/ps4154/ipConfigurations/ipconfig_1_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"etag\": \"W/\\\"52064514-2e4e-4a0a-a577-588442b6793c\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworkAppliances/ipConfigurations\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"privateIPAddress\": \"10.0.0.4\",\r\n \"privateIPAllocationMethod\": \"Dynamic\",\r\n \"primary\": true\r\n }\r\n },\r\n {\r\n \"name\": \"ipconfig_2_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworkAppliances/ps4154/ipConfigurations/ipconfig_2_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"etag\": \"W/\\\"52064514-2e4e-4a0a-a577-588442b6793c\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworkAppliances/ipConfigurations\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"privateIPAddress\": \"10.0.0.5\",\r\n \"privateIPAllocationMethod\": \"Dynamic\",\r\n \"primary\": false\r\n }\r\n },\r\n {\r\n \"name\": \"ipconfig_3_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworkAppliances/ps4154/ipConfigurations/ipconfig_3_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"etag\": \"W/\\\"52064514-2e4e-4a0a-a577-588442b6793c\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworkAppliances/ipConfigurations\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"privateIPAddress\": \"10.0.0.6\",\r\n \"privateIPAllocationMethod\": \"Dynamic\",\r\n \"primary\": false\r\n }\r\n },\r\n {\r\n \"name\": \"ipconfig_4_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworkAppliances/ps4154/ipConfigurations/ipconfig_4_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"etag\": \"W/\\\"52064514-2e4e-4a0a-a577-588442b6793c\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworkAppliances/ipConfigurations\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"privateIPAddress\": \"10.0.0.7\",\r\n \"privateIPAllocationMethod\": \"Dynamic\",\r\n \"primary\": false\r\n }\r\n },\r\n {\r\n \"name\": \"ipconfig_5_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworkAppliances/ps4154/ipConfigurations/ipconfig_5_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"etag\": \"W/\\\"52064514-2e4e-4a0a-a577-588442b6793c\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworkAppliances/ipConfigurations\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"privateIPAddress\": \"10.0.0.8\",\r\n \"privateIPAllocationMethod\": \"Dynamic\",\r\n \"primary\": false\r\n }\r\n }\r\n ]\r\n }\r\n}", + "StatusCode": 201 + }, + { + "RequestUri": "/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/providers/Microsoft.Network/locations/westcentralus/operations/5350a61e-dd7c-4046-bc48-099eddbf6e02?api-version=2025-05-01&t=639033181812726303&c=MIIHhzCCBm-gAwIBAgITfAlUi7iAnbsbxEA4ngAACVSLuDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjUxMDE3MDAxMzUyWhcNMjYwNDE1MDAxMzUyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVvYrmN0LCC719Q3nXJvt4uXc9n2LDkbLdhqU1ZZIqXRdqXKqc9eOaUT2mRMpzJqG3DkugEfX7Nw8bVJitWe4cuXODNRonoinhfeF7iB24Ni3w5Vw42MpUpUGjYlZ9S8RCPdfu-tm_6lUUjZGT1UgEcE4l9h49m-Jf6snRiPU7aOozbchkwa3XznLovQcE3xV5ltctPLNmqlD5D78zWVE3wSICwVIwUnctZhbbn8AXwt_x2m4_h0wjuvPwR2BgGn1a5QUJSOnQuwDcaPsYFU4RfyMltzPSZr_FoRoVZzkV9k-r40fumjkDViQrMDSm0Zcg-W2Y2Aoex7otPtacfaNECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRtyRqqNHNl-tE5vAN2dbRxFxQgUTAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHaaglMFXSi7lvSHyTclKxKba1hFprYFQVgr_DW45StNOSIkV3_IRl2adaKUYgAW19bgubgtdrtL0A69bhRblh0ms92u0UVr_WadgtcAR97pxjZWozSK4HQHfDeK-NcLN8r-jwN4U8Dhusj4ZCJxCjCUYc-4M2itXj-2M8ilwDkr5m45RnBiK239bK_VWL59ZuXV1GYtMqoff9eJP5I5UPKuw8KG6wmWeLEtQaRlTmwl9fug5IiNwWBjzTlb38vB1nrqmyHyoz9O5NqF7x0jK1yKEb3WKpywdZHTO4o8A0ErwLab9V8bL5EZmk15bjZrJm1B8v4jKxax2-vQUFnbRaM&s=QienCjcuhYfhZCygjpUAAQ7Cya394Z3KKh_IOTKgmKkdTl_abZoRVjzwddXmHJsTrf-XLEItGp5hDzUTJTrN90PU-Z4DUbmWe7hFQrHnsNyvWRxDlI16S4CdJgdqbCLlrwgREYsK1cdU2ZFKwKQP3t9grNONST9yE16FLVSi_XslUxtfe1lu6Zq2SBUfgsH5IgXxp9Njgu_hmNuwJfdXdCcDL2VADALLCcVEKbz9ARlnI8OnlZiL90s5qG_phfE9jglVTkoVOOfdP29xcvyr6W_w6tAT5Mr7iQZAKhKnC91B5-JObDWrSKXisSaLnBoVZgRGTE9ZJCndq1z4Phgxkg&h=0cv8lUX-cI-SfyQQkdK_dc5uefoWTpWyX3txFAUyNK0", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYTU0ZDUwMGQtYTZiNS00NGYyLWIwOTAtMjFiMGVmMjRhNGZiL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9sb2NhdGlvbnMvd2VzdGNlbnRyYWx1cy9vcGVyYXRpb25zLzUzNTBhNjFlLWRkN2MtNDA0Ni1iYzQ4LTA5OWVkZGJmNmUwMj9hcGktdmVyc2lvbj0yMDI1LTA1LTAxJnQ9NjM5MDMzMTgxODEyNzI2MzAzJmM9TUlJSGh6Q0NCbS1nQXdJQkFnSVRmQWxVaTdpQW5ic2J4RUE0bmdBQUNWU0x1REFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURVd0hoY05NalV4TURFM01EQXhNelV5V2hjTk1qWXdOREUxTURBeE16VXlXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTVZ2WXJtTjBMQ0M3MTlRM25YSnZ0NHVYYzluMkxEa2JMZGhxVTFaWklxWFJkcVhLcWM5ZU9hVVQybVJNcHpKcUczRGt1Z0VmWDdOdzhiVkppdFdlNGN1WE9ETlJvbm9pbmhmZUY3aUIyNE5pM3c1Vnc0Mk1wVXBVR2pZbFo5UzhSQ1BkZnUtdG1fNmxVVWpaR1QxVWdFY0U0bDloNDltLUpmNnNuUmlQVTdhT296YmNoa3dhM1h6bkxvdlFjRTN4VjVsdGN0UExObXFsRDVENzh6V1ZFM3dTSUN3Vkl3VW5jdFpoYmJuOEFYd3RfeDJtNF9oMHdqdXZQd1IyQmdHbjFhNVFVSlNPblF1d0RjYVBzWUZVNFJmeU1sdHpQU1pyX0ZvUm9WWnprVjlrLXI0MGZ1bWprRFZpUXJNRFNtMFpjZy1XMlkyQW9leDdvdFB0YWNmYU5FQ0F3RUFBYU9DQkhRd2dnUndNQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSExCZ2dyQmdFRkJRY0JBUVNDQWIwd2dnRzVNR01HQ0NzR0FRVUZCekFDaGxkb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRMDh4VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd05TNWpjblF3VXdZSUt3WUJCUVVITUFLR1IyaDBkSEE2THk5amNtd3hMbUZ0WlM1blltd3ZZV2xoTDBOUE1WQkxTVWxPVkVOQk1ERXVRVTFGTGtkQ1RGOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFV1WTNKME1GTUdDQ3NHQVFVRkJ6QUNoa2RvZEhSd09pOHZZM0pzTWk1aGJXVXVaMkpzTDJGcFlTOURUekZRUzBsSlRsUkRRVEF4TGtGTlJTNUhRa3hmUVUxRkpUSXdTVzVtY21FbE1qQkRRU1V5TURBMUxtTnlkREJUQmdnckJnRUZCUWN3QW9aSGFIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UTA4eFVFdEpTVTVVUTBFd01TNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdOUzVqY25Rd1V3WUlLd1lCQlFVSE1BS0dSMmgwZEhBNkx5OWpjbXcwTG1GdFpTNW5ZbXd2WVdsaEwwTlBNVkJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURVdVkzSjBNQjBHQTFVZERnUVdCQlJ0eVJxcU5ITmwtdEU1dkFOMmRiUnhGeFFnVVRBT0JnTlZIUThCQWY4RUJBTUNCYUF3Z2dFbUJnTlZIUjhFZ2dFZE1JSUJHVENDQVJXZ2dnRVJvSUlCRFlZX2FIUjBjRG92TDJOeWJDNXRhV055YjNOdlpuUXVZMjl0TDNCcmFXbHVabkpoTDBOU1RDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFV1WTNKc2hqRm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EVXVZM0pzaGpGb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURVdVkzSnNoakZvZEhSd09pOHZZM0pzTXk1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFV1WTNKc2hqRm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EVXVZM0pzTUlHZEJnTlZIU0FFZ1pVd2daSXdEQVlLS3dZQkJBR0NOM3NCQVRCbUJnb3JCZ0VFQVlJM2V3SUNNRmd3VmdZSUt3WUJCUVVIQWdJd1NoNUlBRE1BTXdCbEFEQUFNUUE1QURJQU1RQXRBRFFBWkFBMkFEUUFMUUEwQUdZQU9BQmpBQzBBWVFBd0FEVUFOUUF0QURVQVlnQmtBR0VBWmdCbUFHUUFOUUJsQURNQU13QmtNQXdHQ2lzR0FRUUJnamQ3QXdJd0RBWUtLd1lCQkFHQ04zc0VBakFmQmdOVkhTTUVHREFXZ0JSNjFobUZLSGxzY1hZZVlQanpTLS1pQlVJV0hUQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUhhYWdsTUZYU2k3bHZTSHlUY2xLeEtiYTFoRnByWUZRVmdyX0RXNDVTdE5PU0lrVjNfSVJsMmFkYUtVWWdBVzE5Ymd1Ymd0ZHJ0TDBBNjliaFJibGgwbXM5MnUwVVZyX1dhZGd0Y0FSOTdweGpaV296U0s0SFFIZkRlSy1OY0xOOHItandONFU4RGh1c2o0WkNKeENqQ1VZYy00TTJpdFhqLTJNOGlsd0RrcjVtNDVSbkJpSzIzOWJLX1ZXTDU5WnVYVjFHWXRNcW9mZjllSlA1STVVUEt1dzhLRzZ3bVdlTEV0UWFSbFRtd2w5ZnVnNUlpTndXQmp6VGxiMzh2QjFucnFteUh5b3o5TzVOcUY3eDBqSzF5S0ViM1dLcHl3ZFpIVE80bzhBMEVyd0xhYjlWOGJMNUVabWsxNWJqWnJKbTFCOHY0akt4YXgyLXZRVUZuYlJhTSZzPVFpZW5DamN1aFlmaFpDeWdqcFVBQVE3Q3lhMzk0WjNLS2hfSU9US2dtS2tkVGxfYWJab1JWanp3ZGRYbUhKc1RyZi1YTEVJdEdwNWhEelVUSlRyTjkwUFUtWjREVWJtV2U3aEZRckhuc055dldSeERsSTE2UzRDZEpnZHFiQ0xscndnUkVZc0sxY2RVMlpGS3dLUVAzdDlnck5PTlNUOXlFMTZGTFZTaV9Yc2xVeHRmZTFsdTZacTJTQlVmZ3NINUlnWHhwOU5qZ3VfaG1OdXdKZmRYZENjREwyVkFEQUxMQ2NWRUtiejlBUmxuSThPbmxaaUw5MHM1cUdfcGhmRTlqZ2xWVGtvVk9PZmRQMjl4Y3Z5cjZXX3c2dEFUNU1yN2lRWkFLaEtuQzkxQjUtSk9iRFdyU0tYaXNTYUxuQm9WWmdSR1RFOVpKQ25kcTF6NFBoZ3hrZyZoPTBjdjhsVVgtY0ktU2Z5UVFrZEtfZGM1dWVmb1dUcFd5WDN0eEZBVXlOSzA=", + "RequestMethod": "GET", + "RequestHeaders": { + "x-ms-client-request-id": [ + "ff634e5e-88cf-4d3f-8b7c-0400befb9797" + ], + "User-Agent": [ + "FxVersion/8.0.2225.52707", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.26200", + "Microsoft.Azure.Management.Network.NetworkManagementClient/27.0.0.0" + ] + }, + "RequestBody": "", + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Retry-After": [ + "10" + ], + "x-ms-request-id": [ + "6a3080f8-c22e-49f0-ad1b-f2bb91250fb0" + ], + "x-ms-correlation-request-id": [ + "1ec9cac6-5637-4d4e-bd70-cc62dcc750e8" + ], + "x-ms-arm-service-request-id": [ + "d0c8349b-e66e-464f-a1a9-061b9e0f9ba6" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=9ff214cf-3961-45c7-8dcf-5728570735b4/westcentralus/47a60a4d-6739-49ed-b011-9a08361c43f4" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "1099" + ], + "x-ms-ratelimit-remaining-subscription-global-reads": [ + "16499" + ], + "x-ms-routing-request-id": [ + "WESTCENTRALUS:20260106T174312Z:1ec9cac6-5637-4d4e-bd70-cc62dcc750e8" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Cache": [ + "CONFIG_NOCACHE" + ], + "X-MSEdge-Ref": [ + "Ref A: 8085A9AA03F24B068D6373DCAF6A15DC Ref B: MNZ221060610035 Ref C: 2026-01-06T17:43:11Z" + ], + "Date": [ + "Tue, 06 Jan 2026 17:43:11 GMT" + ], + "Content-Length": [ + "23" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"status\": \"InProgress\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/providers/Microsoft.Network/locations/westcentralus/operations/5350a61e-dd7c-4046-bc48-099eddbf6e02?api-version=2025-05-01&t=639033181812726303&c=MIIHhzCCBm-gAwIBAgITfAlUi7iAnbsbxEA4ngAACVSLuDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjUxMDE3MDAxMzUyWhcNMjYwNDE1MDAxMzUyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVvYrmN0LCC719Q3nXJvt4uXc9n2LDkbLdhqU1ZZIqXRdqXKqc9eOaUT2mRMpzJqG3DkugEfX7Nw8bVJitWe4cuXODNRonoinhfeF7iB24Ni3w5Vw42MpUpUGjYlZ9S8RCPdfu-tm_6lUUjZGT1UgEcE4l9h49m-Jf6snRiPU7aOozbchkwa3XznLovQcE3xV5ltctPLNmqlD5D78zWVE3wSICwVIwUnctZhbbn8AXwt_x2m4_h0wjuvPwR2BgGn1a5QUJSOnQuwDcaPsYFU4RfyMltzPSZr_FoRoVZzkV9k-r40fumjkDViQrMDSm0Zcg-W2Y2Aoex7otPtacfaNECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRtyRqqNHNl-tE5vAN2dbRxFxQgUTAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHaaglMFXSi7lvSHyTclKxKba1hFprYFQVgr_DW45StNOSIkV3_IRl2adaKUYgAW19bgubgtdrtL0A69bhRblh0ms92u0UVr_WadgtcAR97pxjZWozSK4HQHfDeK-NcLN8r-jwN4U8Dhusj4ZCJxCjCUYc-4M2itXj-2M8ilwDkr5m45RnBiK239bK_VWL59ZuXV1GYtMqoff9eJP5I5UPKuw8KG6wmWeLEtQaRlTmwl9fug5IiNwWBjzTlb38vB1nrqmyHyoz9O5NqF7x0jK1yKEb3WKpywdZHTO4o8A0ErwLab9V8bL5EZmk15bjZrJm1B8v4jKxax2-vQUFnbRaM&s=QienCjcuhYfhZCygjpUAAQ7Cya394Z3KKh_IOTKgmKkdTl_abZoRVjzwddXmHJsTrf-XLEItGp5hDzUTJTrN90PU-Z4DUbmWe7hFQrHnsNyvWRxDlI16S4CdJgdqbCLlrwgREYsK1cdU2ZFKwKQP3t9grNONST9yE16FLVSi_XslUxtfe1lu6Zq2SBUfgsH5IgXxp9Njgu_hmNuwJfdXdCcDL2VADALLCcVEKbz9ARlnI8OnlZiL90s5qG_phfE9jglVTkoVOOfdP29xcvyr6W_w6tAT5Mr7iQZAKhKnC91B5-JObDWrSKXisSaLnBoVZgRGTE9ZJCndq1z4Phgxkg&h=0cv8lUX-cI-SfyQQkdK_dc5uefoWTpWyX3txFAUyNK0", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYTU0ZDUwMGQtYTZiNS00NGYyLWIwOTAtMjFiMGVmMjRhNGZiL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9sb2NhdGlvbnMvd2VzdGNlbnRyYWx1cy9vcGVyYXRpb25zLzUzNTBhNjFlLWRkN2MtNDA0Ni1iYzQ4LTA5OWVkZGJmNmUwMj9hcGktdmVyc2lvbj0yMDI1LTA1LTAxJnQ9NjM5MDMzMTgxODEyNzI2MzAzJmM9TUlJSGh6Q0NCbS1nQXdJQkFnSVRmQWxVaTdpQW5ic2J4RUE0bmdBQUNWU0x1REFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURVd0hoY05NalV4TURFM01EQXhNelV5V2hjTk1qWXdOREUxTURBeE16VXlXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTVZ2WXJtTjBMQ0M3MTlRM25YSnZ0NHVYYzluMkxEa2JMZGhxVTFaWklxWFJkcVhLcWM5ZU9hVVQybVJNcHpKcUczRGt1Z0VmWDdOdzhiVkppdFdlNGN1WE9ETlJvbm9pbmhmZUY3aUIyNE5pM3c1Vnc0Mk1wVXBVR2pZbFo5UzhSQ1BkZnUtdG1fNmxVVWpaR1QxVWdFY0U0bDloNDltLUpmNnNuUmlQVTdhT296YmNoa3dhM1h6bkxvdlFjRTN4VjVsdGN0UExObXFsRDVENzh6V1ZFM3dTSUN3Vkl3VW5jdFpoYmJuOEFYd3RfeDJtNF9oMHdqdXZQd1IyQmdHbjFhNVFVSlNPblF1d0RjYVBzWUZVNFJmeU1sdHpQU1pyX0ZvUm9WWnprVjlrLXI0MGZ1bWprRFZpUXJNRFNtMFpjZy1XMlkyQW9leDdvdFB0YWNmYU5FQ0F3RUFBYU9DQkhRd2dnUndNQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSExCZ2dyQmdFRkJRY0JBUVNDQWIwd2dnRzVNR01HQ0NzR0FRVUZCekFDaGxkb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRMDh4VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd05TNWpjblF3VXdZSUt3WUJCUVVITUFLR1IyaDBkSEE2THk5amNtd3hMbUZ0WlM1blltd3ZZV2xoTDBOUE1WQkxTVWxPVkVOQk1ERXVRVTFGTGtkQ1RGOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFV1WTNKME1GTUdDQ3NHQVFVRkJ6QUNoa2RvZEhSd09pOHZZM0pzTWk1aGJXVXVaMkpzTDJGcFlTOURUekZRUzBsSlRsUkRRVEF4TGtGTlJTNUhRa3hmUVUxRkpUSXdTVzVtY21FbE1qQkRRU1V5TURBMUxtTnlkREJUQmdnckJnRUZCUWN3QW9aSGFIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UTA4eFVFdEpTVTVVUTBFd01TNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdOUzVqY25Rd1V3WUlLd1lCQlFVSE1BS0dSMmgwZEhBNkx5OWpjbXcwTG1GdFpTNW5ZbXd2WVdsaEwwTlBNVkJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURVdVkzSjBNQjBHQTFVZERnUVdCQlJ0eVJxcU5ITmwtdEU1dkFOMmRiUnhGeFFnVVRBT0JnTlZIUThCQWY4RUJBTUNCYUF3Z2dFbUJnTlZIUjhFZ2dFZE1JSUJHVENDQVJXZ2dnRVJvSUlCRFlZX2FIUjBjRG92TDJOeWJDNXRhV055YjNOdlpuUXVZMjl0TDNCcmFXbHVabkpoTDBOU1RDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFV1WTNKc2hqRm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EVXVZM0pzaGpGb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURVdVkzSnNoakZvZEhSd09pOHZZM0pzTXk1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFV1WTNKc2hqRm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EVXVZM0pzTUlHZEJnTlZIU0FFZ1pVd2daSXdEQVlLS3dZQkJBR0NOM3NCQVRCbUJnb3JCZ0VFQVlJM2V3SUNNRmd3VmdZSUt3WUJCUVVIQWdJd1NoNUlBRE1BTXdCbEFEQUFNUUE1QURJQU1RQXRBRFFBWkFBMkFEUUFMUUEwQUdZQU9BQmpBQzBBWVFBd0FEVUFOUUF0QURVQVlnQmtBR0VBWmdCbUFHUUFOUUJsQURNQU13QmtNQXdHQ2lzR0FRUUJnamQ3QXdJd0RBWUtLd1lCQkFHQ04zc0VBakFmQmdOVkhTTUVHREFXZ0JSNjFobUZLSGxzY1hZZVlQanpTLS1pQlVJV0hUQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUhhYWdsTUZYU2k3bHZTSHlUY2xLeEtiYTFoRnByWUZRVmdyX0RXNDVTdE5PU0lrVjNfSVJsMmFkYUtVWWdBVzE5Ymd1Ymd0ZHJ0TDBBNjliaFJibGgwbXM5MnUwVVZyX1dhZGd0Y0FSOTdweGpaV296U0s0SFFIZkRlSy1OY0xOOHItandONFU4RGh1c2o0WkNKeENqQ1VZYy00TTJpdFhqLTJNOGlsd0RrcjVtNDVSbkJpSzIzOWJLX1ZXTDU5WnVYVjFHWXRNcW9mZjllSlA1STVVUEt1dzhLRzZ3bVdlTEV0UWFSbFRtd2w5ZnVnNUlpTndXQmp6VGxiMzh2QjFucnFteUh5b3o5TzVOcUY3eDBqSzF5S0ViM1dLcHl3ZFpIVE80bzhBMEVyd0xhYjlWOGJMNUVabWsxNWJqWnJKbTFCOHY0akt4YXgyLXZRVUZuYlJhTSZzPVFpZW5DamN1aFlmaFpDeWdqcFVBQVE3Q3lhMzk0WjNLS2hfSU9US2dtS2tkVGxfYWJab1JWanp3ZGRYbUhKc1RyZi1YTEVJdEdwNWhEelVUSlRyTjkwUFUtWjREVWJtV2U3aEZRckhuc055dldSeERsSTE2UzRDZEpnZHFiQ0xscndnUkVZc0sxY2RVMlpGS3dLUVAzdDlnck5PTlNUOXlFMTZGTFZTaV9Yc2xVeHRmZTFsdTZacTJTQlVmZ3NINUlnWHhwOU5qZ3VfaG1OdXdKZmRYZENjREwyVkFEQUxMQ2NWRUtiejlBUmxuSThPbmxaaUw5MHM1cUdfcGhmRTlqZ2xWVGtvVk9PZmRQMjl4Y3Z5cjZXX3c2dEFUNU1yN2lRWkFLaEtuQzkxQjUtSk9iRFdyU0tYaXNTYUxuQm9WWmdSR1RFOVpKQ25kcTF6NFBoZ3hrZyZoPTBjdjhsVVgtY0ktU2Z5UVFrZEtfZGM1dWVmb1dUcFd5WDN0eEZBVXlOSzA=", + "RequestMethod": "GET", + "RequestHeaders": { + "x-ms-client-request-id": [ + "ff634e5e-88cf-4d3f-8b7c-0400befb9797" + ], + "User-Agent": [ + "FxVersion/8.0.2225.52707", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.26200", + "Microsoft.Azure.Management.Network.NetworkManagementClient/27.0.0.0" + ] + }, + "RequestBody": "", + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Retry-After": [ + "20" + ], + "x-ms-request-id": [ + "fd03083c-984d-4ae7-b992-2fd532205711" + ], + "x-ms-correlation-request-id": [ + "80bf8916-8a20-4c91-b0b6-153d709f5f54" + ], + "x-ms-arm-service-request-id": [ + "fdc04061-b1a4-4ab8-9148-31ea9eb1388a" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=9ff214cf-3961-45c7-8dcf-5728570735b4/eastus/6feaa2e2-ce19-44b8-95e9-af4c3625e9a0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "1099" + ], + "x-ms-ratelimit-remaining-subscription-global-reads": [ + "16499" + ], + "x-ms-routing-request-id": [ + "EASTUS:20260106T174322Z:80bf8916-8a20-4c91-b0b6-153d709f5f54" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Cache": [ + "CONFIG_NOCACHE" + ], + "X-MSEdge-Ref": [ + "Ref A: 305778F4EE1149D3A84FD8D620F6E595 Ref B: MNZ221060610035 Ref C: 2026-01-06T17:43:22Z" + ], + "Date": [ + "Tue, 06 Jan 2026 17:43:22 GMT" + ], + "Content-Length": [ + "23" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"status\": \"InProgress\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/providers/Microsoft.Network/locations/westcentralus/operations/5350a61e-dd7c-4046-bc48-099eddbf6e02?api-version=2025-05-01&t=639033181812726303&c=MIIHhzCCBm-gAwIBAgITfAlUi7iAnbsbxEA4ngAACVSLuDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjUxMDE3MDAxMzUyWhcNMjYwNDE1MDAxMzUyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVvYrmN0LCC719Q3nXJvt4uXc9n2LDkbLdhqU1ZZIqXRdqXKqc9eOaUT2mRMpzJqG3DkugEfX7Nw8bVJitWe4cuXODNRonoinhfeF7iB24Ni3w5Vw42MpUpUGjYlZ9S8RCPdfu-tm_6lUUjZGT1UgEcE4l9h49m-Jf6snRiPU7aOozbchkwa3XznLovQcE3xV5ltctPLNmqlD5D78zWVE3wSICwVIwUnctZhbbn8AXwt_x2m4_h0wjuvPwR2BgGn1a5QUJSOnQuwDcaPsYFU4RfyMltzPSZr_FoRoVZzkV9k-r40fumjkDViQrMDSm0Zcg-W2Y2Aoex7otPtacfaNECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRtyRqqNHNl-tE5vAN2dbRxFxQgUTAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHaaglMFXSi7lvSHyTclKxKba1hFprYFQVgr_DW45StNOSIkV3_IRl2adaKUYgAW19bgubgtdrtL0A69bhRblh0ms92u0UVr_WadgtcAR97pxjZWozSK4HQHfDeK-NcLN8r-jwN4U8Dhusj4ZCJxCjCUYc-4M2itXj-2M8ilwDkr5m45RnBiK239bK_VWL59ZuXV1GYtMqoff9eJP5I5UPKuw8KG6wmWeLEtQaRlTmwl9fug5IiNwWBjzTlb38vB1nrqmyHyoz9O5NqF7x0jK1yKEb3WKpywdZHTO4o8A0ErwLab9V8bL5EZmk15bjZrJm1B8v4jKxax2-vQUFnbRaM&s=QienCjcuhYfhZCygjpUAAQ7Cya394Z3KKh_IOTKgmKkdTl_abZoRVjzwddXmHJsTrf-XLEItGp5hDzUTJTrN90PU-Z4DUbmWe7hFQrHnsNyvWRxDlI16S4CdJgdqbCLlrwgREYsK1cdU2ZFKwKQP3t9grNONST9yE16FLVSi_XslUxtfe1lu6Zq2SBUfgsH5IgXxp9Njgu_hmNuwJfdXdCcDL2VADALLCcVEKbz9ARlnI8OnlZiL90s5qG_phfE9jglVTkoVOOfdP29xcvyr6W_w6tAT5Mr7iQZAKhKnC91B5-JObDWrSKXisSaLnBoVZgRGTE9ZJCndq1z4Phgxkg&h=0cv8lUX-cI-SfyQQkdK_dc5uefoWTpWyX3txFAUyNK0", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYTU0ZDUwMGQtYTZiNS00NGYyLWIwOTAtMjFiMGVmMjRhNGZiL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9sb2NhdGlvbnMvd2VzdGNlbnRyYWx1cy9vcGVyYXRpb25zLzUzNTBhNjFlLWRkN2MtNDA0Ni1iYzQ4LTA5OWVkZGJmNmUwMj9hcGktdmVyc2lvbj0yMDI1LTA1LTAxJnQ9NjM5MDMzMTgxODEyNzI2MzAzJmM9TUlJSGh6Q0NCbS1nQXdJQkFnSVRmQWxVaTdpQW5ic2J4RUE0bmdBQUNWU0x1REFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURVd0hoY05NalV4TURFM01EQXhNelV5V2hjTk1qWXdOREUxTURBeE16VXlXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTVZ2WXJtTjBMQ0M3MTlRM25YSnZ0NHVYYzluMkxEa2JMZGhxVTFaWklxWFJkcVhLcWM5ZU9hVVQybVJNcHpKcUczRGt1Z0VmWDdOdzhiVkppdFdlNGN1WE9ETlJvbm9pbmhmZUY3aUIyNE5pM3c1Vnc0Mk1wVXBVR2pZbFo5UzhSQ1BkZnUtdG1fNmxVVWpaR1QxVWdFY0U0bDloNDltLUpmNnNuUmlQVTdhT296YmNoa3dhM1h6bkxvdlFjRTN4VjVsdGN0UExObXFsRDVENzh6V1ZFM3dTSUN3Vkl3VW5jdFpoYmJuOEFYd3RfeDJtNF9oMHdqdXZQd1IyQmdHbjFhNVFVSlNPblF1d0RjYVBzWUZVNFJmeU1sdHpQU1pyX0ZvUm9WWnprVjlrLXI0MGZ1bWprRFZpUXJNRFNtMFpjZy1XMlkyQW9leDdvdFB0YWNmYU5FQ0F3RUFBYU9DQkhRd2dnUndNQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSExCZ2dyQmdFRkJRY0JBUVNDQWIwd2dnRzVNR01HQ0NzR0FRVUZCekFDaGxkb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRMDh4VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd05TNWpjblF3VXdZSUt3WUJCUVVITUFLR1IyaDBkSEE2THk5amNtd3hMbUZ0WlM1blltd3ZZV2xoTDBOUE1WQkxTVWxPVkVOQk1ERXVRVTFGTGtkQ1RGOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFV1WTNKME1GTUdDQ3NHQVFVRkJ6QUNoa2RvZEhSd09pOHZZM0pzTWk1aGJXVXVaMkpzTDJGcFlTOURUekZRUzBsSlRsUkRRVEF4TGtGTlJTNUhRa3hmUVUxRkpUSXdTVzVtY21FbE1qQkRRU1V5TURBMUxtTnlkREJUQmdnckJnRUZCUWN3QW9aSGFIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UTA4eFVFdEpTVTVVUTBFd01TNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdOUzVqY25Rd1V3WUlLd1lCQlFVSE1BS0dSMmgwZEhBNkx5OWpjbXcwTG1GdFpTNW5ZbXd2WVdsaEwwTlBNVkJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURVdVkzSjBNQjBHQTFVZERnUVdCQlJ0eVJxcU5ITmwtdEU1dkFOMmRiUnhGeFFnVVRBT0JnTlZIUThCQWY4RUJBTUNCYUF3Z2dFbUJnTlZIUjhFZ2dFZE1JSUJHVENDQVJXZ2dnRVJvSUlCRFlZX2FIUjBjRG92TDJOeWJDNXRhV055YjNOdlpuUXVZMjl0TDNCcmFXbHVabkpoTDBOU1RDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFV1WTNKc2hqRm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EVXVZM0pzaGpGb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURVdVkzSnNoakZvZEhSd09pOHZZM0pzTXk1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFV1WTNKc2hqRm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EVXVZM0pzTUlHZEJnTlZIU0FFZ1pVd2daSXdEQVlLS3dZQkJBR0NOM3NCQVRCbUJnb3JCZ0VFQVlJM2V3SUNNRmd3VmdZSUt3WUJCUVVIQWdJd1NoNUlBRE1BTXdCbEFEQUFNUUE1QURJQU1RQXRBRFFBWkFBMkFEUUFMUUEwQUdZQU9BQmpBQzBBWVFBd0FEVUFOUUF0QURVQVlnQmtBR0VBWmdCbUFHUUFOUUJsQURNQU13QmtNQXdHQ2lzR0FRUUJnamQ3QXdJd0RBWUtLd1lCQkFHQ04zc0VBakFmQmdOVkhTTUVHREFXZ0JSNjFobUZLSGxzY1hZZVlQanpTLS1pQlVJV0hUQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUhhYWdsTUZYU2k3bHZTSHlUY2xLeEtiYTFoRnByWUZRVmdyX0RXNDVTdE5PU0lrVjNfSVJsMmFkYUtVWWdBVzE5Ymd1Ymd0ZHJ0TDBBNjliaFJibGgwbXM5MnUwVVZyX1dhZGd0Y0FSOTdweGpaV296U0s0SFFIZkRlSy1OY0xOOHItandONFU4RGh1c2o0WkNKeENqQ1VZYy00TTJpdFhqLTJNOGlsd0RrcjVtNDVSbkJpSzIzOWJLX1ZXTDU5WnVYVjFHWXRNcW9mZjllSlA1STVVUEt1dzhLRzZ3bVdlTEV0UWFSbFRtd2w5ZnVnNUlpTndXQmp6VGxiMzh2QjFucnFteUh5b3o5TzVOcUY3eDBqSzF5S0ViM1dLcHl3ZFpIVE80bzhBMEVyd0xhYjlWOGJMNUVabWsxNWJqWnJKbTFCOHY0akt4YXgyLXZRVUZuYlJhTSZzPVFpZW5DamN1aFlmaFpDeWdqcFVBQVE3Q3lhMzk0WjNLS2hfSU9US2dtS2tkVGxfYWJab1JWanp3ZGRYbUhKc1RyZi1YTEVJdEdwNWhEelVUSlRyTjkwUFUtWjREVWJtV2U3aEZRckhuc055dldSeERsSTE2UzRDZEpnZHFiQ0xscndnUkVZc0sxY2RVMlpGS3dLUVAzdDlnck5PTlNUOXlFMTZGTFZTaV9Yc2xVeHRmZTFsdTZacTJTQlVmZ3NINUlnWHhwOU5qZ3VfaG1OdXdKZmRYZENjREwyVkFEQUxMQ2NWRUtiejlBUmxuSThPbmxaaUw5MHM1cUdfcGhmRTlqZ2xWVGtvVk9PZmRQMjl4Y3Z5cjZXX3c2dEFUNU1yN2lRWkFLaEtuQzkxQjUtSk9iRFdyU0tYaXNTYUxuQm9WWmdSR1RFOVpKQ25kcTF6NFBoZ3hrZyZoPTBjdjhsVVgtY0ktU2Z5UVFrZEtfZGM1dWVmb1dUcFd5WDN0eEZBVXlOSzA=", + "RequestMethod": "GET", + "RequestHeaders": { + "x-ms-client-request-id": [ + "ff634e5e-88cf-4d3f-8b7c-0400befb9797" + ], + "User-Agent": [ + "FxVersion/8.0.2225.52707", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.26200", + "Microsoft.Azure.Management.Network.NetworkManagementClient/27.0.0.0" + ] + }, + "RequestBody": "", + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "dc87bbee-294a-4cfe-aa66-4c657d18162e" + ], + "x-ms-correlation-request-id": [ + "33ddec61-9307-40fe-bdd8-44521eae6def" + ], + "x-ms-arm-service-request-id": [ + "bf17899d-7a39-4d44-a4b9-31f266d72c71" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=9ff214cf-3961-45c7-8dcf-5728570735b4/eastus/42198a3d-6b6b-45cc-9f2c-89d92fe294cc" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "1099" + ], + "x-ms-ratelimit-remaining-subscription-global-reads": [ + "16499" + ], + "x-ms-routing-request-id": [ + "EASTUS:20260106T174343Z:33ddec61-9307-40fe-bdd8-44521eae6def" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Cache": [ + "CONFIG_NOCACHE" + ], + "X-MSEdge-Ref": [ + "Ref A: FBF48997232F4E13AE0CE0510E654799 Ref B: MNZ221060610035 Ref C: 2026-01-06T17:43:42Z" + ], + "Date": [ + "Tue, 06 Jan 2026 17:43:42 GMT" + ], + "Content-Length": [ + "22" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"status\": \"Succeeded\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworkAppliances?api-version=2025-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYTU0ZDUwMGQtYTZiNS00NGYyLWIwOTAtMjFiMGVmMjRhNGZiL3Jlc291cmNlR3JvdXBzL3BzNjkyMi9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtBcHBsaWFuY2VzP2FwaS12ZXJzaW9uPTIwMjUtMDUtMDE=", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept-Language": [ + "en-US" + ], + "x-ms-client-request-id": [ + "2503c702-7c20-4fda-b556-31158a3d1d40" + ], + "User-Agent": [ + "FxVersion/8.0.2225.52707", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.26200", + "Microsoft.Azure.Management.Network.NetworkManagementClient/27.0.0.0" + ] + }, + "RequestBody": "", + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-original-request-ids": [ + "4a93391d-e39f-49b6-8546-b52ab6c42f03" + ], + "x-ms-correlation-request-id": [ + "258c62ae-d1bb-43ba-ba58-2013a46d7903" + ], + "x-ms-arm-service-request-id": [ + "ca0c581f-c577-4e19-b078-dfde11e59672" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "1099" + ], + "x-ms-ratelimit-remaining-subscription-global-reads": [ + "16499" + ], + "x-ms-request-id": [ + "258c62ae-d1bb-43ba-ba58-2013a46d7903" + ], + "x-ms-routing-request-id": [ + "WESTCENTRALUS:20260106T174345Z:258c62ae-d1bb-43ba-ba58-2013a46d7903" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Cache": [ + "CONFIG_NOCACHE" + ], + "X-MSEdge-Ref": [ + "Ref A: 8664DDDDA389489FB963CBA307162950 Ref B: MNZ221060608007 Ref C: 2026-01-06T17:43:44Z" + ], + "Date": [ + "Tue, 06 Jan 2026 17:43:45 GMT" + ], + "Content-Length": [ + "3186" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"name\": \"ps4154\",\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworkAppliances/ps4154\",\r\n \"etag\": \"W/\\\"30d50e68-683e-435e-834f-439778e82fd3\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworkAppliances\",\r\n \"location\": \"westcentralus\",\r\n \"tags\": {\r\n \"testKey\": \"testValue\"\r\n },\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"bandwidthInGbps\": 50,\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworks/ps9519/subnets/VirtualNetworkApplianceSubnet\"\r\n },\r\n \"ipConfigurations\": [\r\n {\r\n \"name\": \"ipconfig_1_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworkAppliances/ps4154/ipConfigurations/ipconfig_1_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"etag\": \"W/\\\"30d50e68-683e-435e-834f-439778e82fd3\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworkAppliances/ipConfigurations\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"privateIPAddress\": \"10.0.0.4\",\r\n \"privateIPAllocationMethod\": \"Dynamic\",\r\n \"primary\": true\r\n }\r\n },\r\n {\r\n \"name\": \"ipconfig_2_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworkAppliances/ps4154/ipConfigurations/ipconfig_2_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"etag\": \"W/\\\"30d50e68-683e-435e-834f-439778e82fd3\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworkAppliances/ipConfigurations\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"privateIPAddress\": \"10.0.0.5\",\r\n \"privateIPAllocationMethod\": \"Dynamic\",\r\n \"primary\": false\r\n }\r\n },\r\n {\r\n \"name\": \"ipconfig_3_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworkAppliances/ps4154/ipConfigurations/ipconfig_3_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"etag\": \"W/\\\"30d50e68-683e-435e-834f-439778e82fd3\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworkAppliances/ipConfigurations\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"privateIPAddress\": \"10.0.0.6\",\r\n \"privateIPAllocationMethod\": \"Dynamic\",\r\n \"primary\": false\r\n }\r\n },\r\n {\r\n \"name\": \"ipconfig_4_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworkAppliances/ps4154/ipConfigurations/ipconfig_4_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"etag\": \"W/\\\"30d50e68-683e-435e-834f-439778e82fd3\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworkAppliances/ipConfigurations\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"privateIPAddress\": \"10.0.0.7\",\r\n \"privateIPAllocationMethod\": \"Dynamic\",\r\n \"primary\": false\r\n }\r\n },\r\n {\r\n \"name\": \"ipconfig_5_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworkAppliances/ps4154/ipConfigurations/ipconfig_5_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"etag\": \"W/\\\"30d50e68-683e-435e-834f-439778e82fd3\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworkAppliances/ipConfigurations\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"privateIPAddress\": \"10.0.0.8\",\r\n \"privateIPAllocationMethod\": \"Dynamic\",\r\n \"primary\": false\r\n }\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworkAppliances/ps4154?api-version=2025-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYTU0ZDUwMGQtYTZiNS00NGYyLWIwOTAtMjFiMGVmMjRhNGZiL3Jlc291cmNlR3JvdXBzL3BzNjkyMi9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtBcHBsaWFuY2VzL3BzNDE1ND9hcGktdmVyc2lvbj0yMDI1LTA1LTAx", + "RequestMethod": "PATCH", + "RequestHeaders": { + "Accept-Language": [ + "en-US" + ], + "x-ms-client-request-id": [ + "815203e8-0459-4212-93a7-3b4ccb44fc4b" + ], + "User-Agent": [ + "FxVersion/8.0.2225.52707", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.26200", + "Microsoft.Azure.Management.Network.NetworkManagementClient/27.0.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "56" + ] + }, + "RequestBody": "{\r\n \"tags\": {\r\n \"updatedKey\": \"updatedValue\"\r\n }\r\n}", + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "8fcb2833-844e-4c3f-8221-c70bf1126bfc" + ], + "x-ms-correlation-request-id": [ + "a1599ac4-92cf-471e-a21a-e4b52e89829d" + ], + "Azure-AsyncNotification": [ + "Enabled" + ], + "x-ms-arm-service-request-id": [ + "5d4333ee-9242-4e60-aab0-9415588f6024" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=9ff214cf-3961-45c7-8dcf-5728570735b4/westcentralus/eb611ba1-68d9-434a-a7be-143b443e4553" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "799" + ], + "x-ms-ratelimit-remaining-subscription-global-writes": [ + "11999" + ], + "x-ms-routing-request-id": [ + "WESTCENTRALUS:20260106T174347Z:a1599ac4-92cf-471e-a21a-e4b52e89829d" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Cache": [ + "CONFIG_NOCACHE" + ], + "X-MSEdge-Ref": [ + "Ref A: BD1DBCAA34EB4F3081A1E4596F50EC15 Ref B: MNZ221060609053 Ref C: 2026-01-06T17:43:45Z" + ], + "Date": [ + "Tue, 06 Jan 2026 17:43:46 GMT" + ], + "Content-Length": [ + "3180" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"name\": \"ps4154\",\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworkAppliances/ps4154\",\r\n \"etag\": \"W/\\\"ebe8da83-1352-422d-92bb-66894509bd45\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworkAppliances\",\r\n \"location\": \"westcentralus\",\r\n \"tags\": {\r\n \"updatedKey\": \"updatedValue\"\r\n },\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"bandwidthInGbps\": 50,\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworks/ps9519/subnets/VirtualNetworkApplianceSubnet\"\r\n },\r\n \"ipConfigurations\": [\r\n {\r\n \"name\": \"ipconfig_1_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworkAppliances/ps4154/ipConfigurations/ipconfig_1_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"etag\": \"W/\\\"ebe8da83-1352-422d-92bb-66894509bd45\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworkAppliances/ipConfigurations\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"privateIPAddress\": \"10.0.0.4\",\r\n \"privateIPAllocationMethod\": \"Dynamic\",\r\n \"primary\": true\r\n }\r\n },\r\n {\r\n \"name\": \"ipconfig_2_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworkAppliances/ps4154/ipConfigurations/ipconfig_2_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"etag\": \"W/\\\"ebe8da83-1352-422d-92bb-66894509bd45\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworkAppliances/ipConfigurations\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"privateIPAddress\": \"10.0.0.5\",\r\n \"privateIPAllocationMethod\": \"Dynamic\",\r\n \"primary\": false\r\n }\r\n },\r\n {\r\n \"name\": \"ipconfig_3_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworkAppliances/ps4154/ipConfigurations/ipconfig_3_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"etag\": \"W/\\\"ebe8da83-1352-422d-92bb-66894509bd45\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworkAppliances/ipConfigurations\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"privateIPAddress\": \"10.0.0.6\",\r\n \"privateIPAllocationMethod\": \"Dynamic\",\r\n \"primary\": false\r\n }\r\n },\r\n {\r\n \"name\": \"ipconfig_4_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworkAppliances/ps4154/ipConfigurations/ipconfig_4_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"etag\": \"W/\\\"ebe8da83-1352-422d-92bb-66894509bd45\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworkAppliances/ipConfigurations\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"privateIPAddress\": \"10.0.0.7\",\r\n \"privateIPAllocationMethod\": \"Dynamic\",\r\n \"primary\": false\r\n }\r\n },\r\n {\r\n \"name\": \"ipconfig_5_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"id\": \"/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworkAppliances/ps4154/ipConfigurations/ipconfig_5_94ddc1df-46c1-4fcf-8f3e-cbdfef5992f6\",\r\n \"etag\": \"W/\\\"ebe8da83-1352-422d-92bb-66894509bd45\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworkAppliances/ipConfigurations\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"privateIPAddress\": \"10.0.0.8\",\r\n \"privateIPAllocationMethod\": \"Dynamic\",\r\n \"primary\": false\r\n }\r\n }\r\n ]\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourceGroups/ps6922/providers/Microsoft.Network/virtualNetworkAppliances/ps4154?api-version=2025-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYTU0ZDUwMGQtYTZiNS00NGYyLWIwOTAtMjFiMGVmMjRhNGZiL3Jlc291cmNlR3JvdXBzL3BzNjkyMi9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtBcHBsaWFuY2VzL3BzNDE1ND9hcGktdmVyc2lvbj0yMDI1LTA1LTAx", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Accept-Language": [ + "en-US" + ], + "x-ms-client-request-id": [ + "97724290-1ff2-4949-8345-80099956128d" + ], + "User-Agent": [ + "FxVersion/8.0.2225.52707", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.26200", + "Microsoft.Azure.Management.Network.NetworkManagementClient/27.0.0.0" + ] + }, + "RequestBody": "", + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/providers/Microsoft.Network/locations/westcentralus/operationResults/606cc2be-2445-4cfc-af5b-d6f60ffe9864?api-version=2025-05-01&t=639033182281084258&c=MIIHhzCCBm-gAwIBAgITfAlUi7iAnbsbxEA4ngAACVSLuDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjUxMDE3MDAxMzUyWhcNMjYwNDE1MDAxMzUyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVvYrmN0LCC719Q3nXJvt4uXc9n2LDkbLdhqU1ZZIqXRdqXKqc9eOaUT2mRMpzJqG3DkugEfX7Nw8bVJitWe4cuXODNRonoinhfeF7iB24Ni3w5Vw42MpUpUGjYlZ9S8RCPdfu-tm_6lUUjZGT1UgEcE4l9h49m-Jf6snRiPU7aOozbchkwa3XznLovQcE3xV5ltctPLNmqlD5D78zWVE3wSICwVIwUnctZhbbn8AXwt_x2m4_h0wjuvPwR2BgGn1a5QUJSOnQuwDcaPsYFU4RfyMltzPSZr_FoRoVZzkV9k-r40fumjkDViQrMDSm0Zcg-W2Y2Aoex7otPtacfaNECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRtyRqqNHNl-tE5vAN2dbRxFxQgUTAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHaaglMFXSi7lvSHyTclKxKba1hFprYFQVgr_DW45StNOSIkV3_IRl2adaKUYgAW19bgubgtdrtL0A69bhRblh0ms92u0UVr_WadgtcAR97pxjZWozSK4HQHfDeK-NcLN8r-jwN4U8Dhusj4ZCJxCjCUYc-4M2itXj-2M8ilwDkr5m45RnBiK239bK_VWL59ZuXV1GYtMqoff9eJP5I5UPKuw8KG6wmWeLEtQaRlTmwl9fug5IiNwWBjzTlb38vB1nrqmyHyoz9O5NqF7x0jK1yKEb3WKpywdZHTO4o8A0ErwLab9V8bL5EZmk15bjZrJm1B8v4jKxax2-vQUFnbRaM&s=mzjkkza-VMWYTYAtDwF2O3UZ3J05VPkzSZj3x_ybUb-k17bUBlD_XaOTJIj4Q-Ksxkrx3KwosXyYSI4O7hHd93Nj1J0Js4HzDnoFYg8OwnWZEaDNhY-PrWgbaT3WJB5TMxEOVa2ln8BH17iAe_FSVY7JE0qYQJvZ9PxKJWtFI216KGAfLwpI6aVFzf_78u9vLQaz6ChMVjYz2ba6V6Zb43Sagui9_G0sIi-hIGW5yccfx8BGyzzyRlvB4R-Q8ZHUaYgB_dHDsnIWEqnAP7ymrcRtWVgroDkcS7y8kRreHhFJXprK3rAmFjZsiv87PcVjFMT7GDE3efRWUKIOMT3_2g&h=oPs5hrltSqe_-6SLQXUdM4nVpmj2vt3dlhz29Qg1eyc" + ], + "Retry-After": [ + "10" + ], + "x-ms-request-id": [ + "606cc2be-2445-4cfc-af5b-d6f60ffe9864" + ], + "Azure-AsyncOperation": [ + "https://management.azure.com/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/providers/Microsoft.Network/locations/westcentralus/operations/606cc2be-2445-4cfc-af5b-d6f60ffe9864?api-version=2025-05-01&t=639033182280927987&c=MIIHhzCCBm-gAwIBAgITfAlUi7iAnbsbxEA4ngAACVSLuDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjUxMDE3MDAxMzUyWhcNMjYwNDE1MDAxMzUyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVvYrmN0LCC719Q3nXJvt4uXc9n2LDkbLdhqU1ZZIqXRdqXKqc9eOaUT2mRMpzJqG3DkugEfX7Nw8bVJitWe4cuXODNRonoinhfeF7iB24Ni3w5Vw42MpUpUGjYlZ9S8RCPdfu-tm_6lUUjZGT1UgEcE4l9h49m-Jf6snRiPU7aOozbchkwa3XznLovQcE3xV5ltctPLNmqlD5D78zWVE3wSICwVIwUnctZhbbn8AXwt_x2m4_h0wjuvPwR2BgGn1a5QUJSOnQuwDcaPsYFU4RfyMltzPSZr_FoRoVZzkV9k-r40fumjkDViQrMDSm0Zcg-W2Y2Aoex7otPtacfaNECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRtyRqqNHNl-tE5vAN2dbRxFxQgUTAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHaaglMFXSi7lvSHyTclKxKba1hFprYFQVgr_DW45StNOSIkV3_IRl2adaKUYgAW19bgubgtdrtL0A69bhRblh0ms92u0UVr_WadgtcAR97pxjZWozSK4HQHfDeK-NcLN8r-jwN4U8Dhusj4ZCJxCjCUYc-4M2itXj-2M8ilwDkr5m45RnBiK239bK_VWL59ZuXV1GYtMqoff9eJP5I5UPKuw8KG6wmWeLEtQaRlTmwl9fug5IiNwWBjzTlb38vB1nrqmyHyoz9O5NqF7x0jK1yKEb3WKpywdZHTO4o8A0ErwLab9V8bL5EZmk15bjZrJm1B8v4jKxax2-vQUFnbRaM&s=CUIlrt3Hov3cVuU_crHqdaDCYF4koYoJQ74HmqrG7RbE18XOgfJqh307_H3frEtzR3gUML6KARF7kNpiF6-P5Wl2rbjVOgrq19H2GGAz3joNWOg1L4rX8OLEfMHwh0Gc_-mCiS7HBB-vVsKnqOlaAIPYy6DyLgC1C9SEzNS-c9Hn2_oI7w_i-lLtrwLEbBWx9wWxWNHtKB18BNwv4-zY97aLjkZf3Jhidv6j6pSSFCoPTeiswHFw_jMa6rzmXJFgH3v4fFdfeyQSGSO7_youPqBaft1UiTrMNv-lJ3aGRPfCaes7KGb3tm3T8MQkxFiYt2_qiD-eFK7ljAU1mbtPMQ&h=hCtwNyfodnzUlb4kU3Mw5RHYVS4dYncmpGFKAjvffSA" + ], + "x-ms-correlation-request-id": [ + "0389f611-1c2a-4262-af70-3c567ad68707" + ], + "Azure-AsyncNotification": [ + "Enabled" + ], + "x-ms-arm-service-request-id": [ + "92318da6-848b-4849-8d5a-a5d4b52f5ee2" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=9ff214cf-3961-45c7-8dcf-5728570735b4/westcentralus/8eee453e-cae9-4c8d-a764-f5711f089f1f" + ], + "x-ms-ratelimit-remaining-subscription-deletes": [ + "799" + ], + "x-ms-ratelimit-remaining-subscription-global-deletes": [ + "11999" + ], + "x-ms-routing-request-id": [ + "WESTCENTRALUS:20260106T174348Z:0389f611-1c2a-4262-af70-3c567ad68707" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Cache": [ + "CONFIG_NOCACHE" + ], + "X-MSEdge-Ref": [ + "Ref A: F4378C5EB2B14A01B2F7FEA68DD023CE Ref B: MNZ221060610045 Ref C: 2026-01-06T17:43:47Z" + ], + "Date": [ + "Tue, 06 Jan 2026 17:43:48 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/providers/Microsoft.Network/locations/westcentralus/operations/606cc2be-2445-4cfc-af5b-d6f60ffe9864?api-version=2025-05-01&t=639033182280927987&c=MIIHhzCCBm-gAwIBAgITfAlUi7iAnbsbxEA4ngAACVSLuDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjUxMDE3MDAxMzUyWhcNMjYwNDE1MDAxMzUyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVvYrmN0LCC719Q3nXJvt4uXc9n2LDkbLdhqU1ZZIqXRdqXKqc9eOaUT2mRMpzJqG3DkugEfX7Nw8bVJitWe4cuXODNRonoinhfeF7iB24Ni3w5Vw42MpUpUGjYlZ9S8RCPdfu-tm_6lUUjZGT1UgEcE4l9h49m-Jf6snRiPU7aOozbchkwa3XznLovQcE3xV5ltctPLNmqlD5D78zWVE3wSICwVIwUnctZhbbn8AXwt_x2m4_h0wjuvPwR2BgGn1a5QUJSOnQuwDcaPsYFU4RfyMltzPSZr_FoRoVZzkV9k-r40fumjkDViQrMDSm0Zcg-W2Y2Aoex7otPtacfaNECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRtyRqqNHNl-tE5vAN2dbRxFxQgUTAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHaaglMFXSi7lvSHyTclKxKba1hFprYFQVgr_DW45StNOSIkV3_IRl2adaKUYgAW19bgubgtdrtL0A69bhRblh0ms92u0UVr_WadgtcAR97pxjZWozSK4HQHfDeK-NcLN8r-jwN4U8Dhusj4ZCJxCjCUYc-4M2itXj-2M8ilwDkr5m45RnBiK239bK_VWL59ZuXV1GYtMqoff9eJP5I5UPKuw8KG6wmWeLEtQaRlTmwl9fug5IiNwWBjzTlb38vB1nrqmyHyoz9O5NqF7x0jK1yKEb3WKpywdZHTO4o8A0ErwLab9V8bL5EZmk15bjZrJm1B8v4jKxax2-vQUFnbRaM&s=CUIlrt3Hov3cVuU_crHqdaDCYF4koYoJQ74HmqrG7RbE18XOgfJqh307_H3frEtzR3gUML6KARF7kNpiF6-P5Wl2rbjVOgrq19H2GGAz3joNWOg1L4rX8OLEfMHwh0Gc_-mCiS7HBB-vVsKnqOlaAIPYy6DyLgC1C9SEzNS-c9Hn2_oI7w_i-lLtrwLEbBWx9wWxWNHtKB18BNwv4-zY97aLjkZf3Jhidv6j6pSSFCoPTeiswHFw_jMa6rzmXJFgH3v4fFdfeyQSGSO7_youPqBaft1UiTrMNv-lJ3aGRPfCaes7KGb3tm3T8MQkxFiYt2_qiD-eFK7ljAU1mbtPMQ&h=hCtwNyfodnzUlb4kU3Mw5RHYVS4dYncmpGFKAjvffSA", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYTU0ZDUwMGQtYTZiNS00NGYyLWIwOTAtMjFiMGVmMjRhNGZiL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9sb2NhdGlvbnMvd2VzdGNlbnRyYWx1cy9vcGVyYXRpb25zLzYwNmNjMmJlLTI0NDUtNGNmYy1hZjViLWQ2ZjYwZmZlOTg2ND9hcGktdmVyc2lvbj0yMDI1LTA1LTAxJnQ9NjM5MDMzMTgyMjgwOTI3OTg3JmM9TUlJSGh6Q0NCbS1nQXdJQkFnSVRmQWxVaTdpQW5ic2J4RUE0bmdBQUNWU0x1REFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURVd0hoY05NalV4TURFM01EQXhNelV5V2hjTk1qWXdOREUxTURBeE16VXlXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTVZ2WXJtTjBMQ0M3MTlRM25YSnZ0NHVYYzluMkxEa2JMZGhxVTFaWklxWFJkcVhLcWM5ZU9hVVQybVJNcHpKcUczRGt1Z0VmWDdOdzhiVkppdFdlNGN1WE9ETlJvbm9pbmhmZUY3aUIyNE5pM3c1Vnc0Mk1wVXBVR2pZbFo5UzhSQ1BkZnUtdG1fNmxVVWpaR1QxVWdFY0U0bDloNDltLUpmNnNuUmlQVTdhT296YmNoa3dhM1h6bkxvdlFjRTN4VjVsdGN0UExObXFsRDVENzh6V1ZFM3dTSUN3Vkl3VW5jdFpoYmJuOEFYd3RfeDJtNF9oMHdqdXZQd1IyQmdHbjFhNVFVSlNPblF1d0RjYVBzWUZVNFJmeU1sdHpQU1pyX0ZvUm9WWnprVjlrLXI0MGZ1bWprRFZpUXJNRFNtMFpjZy1XMlkyQW9leDdvdFB0YWNmYU5FQ0F3RUFBYU9DQkhRd2dnUndNQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSExCZ2dyQmdFRkJRY0JBUVNDQWIwd2dnRzVNR01HQ0NzR0FRVUZCekFDaGxkb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRMDh4VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd05TNWpjblF3VXdZSUt3WUJCUVVITUFLR1IyaDBkSEE2THk5amNtd3hMbUZ0WlM1blltd3ZZV2xoTDBOUE1WQkxTVWxPVkVOQk1ERXVRVTFGTGtkQ1RGOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFV1WTNKME1GTUdDQ3NHQVFVRkJ6QUNoa2RvZEhSd09pOHZZM0pzTWk1aGJXVXVaMkpzTDJGcFlTOURUekZRUzBsSlRsUkRRVEF4TGtGTlJTNUhRa3hmUVUxRkpUSXdTVzVtY21FbE1qQkRRU1V5TURBMUxtTnlkREJUQmdnckJnRUZCUWN3QW9aSGFIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UTA4eFVFdEpTVTVVUTBFd01TNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdOUzVqY25Rd1V3WUlLd1lCQlFVSE1BS0dSMmgwZEhBNkx5OWpjbXcwTG1GdFpTNW5ZbXd2WVdsaEwwTlBNVkJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURVdVkzSjBNQjBHQTFVZERnUVdCQlJ0eVJxcU5ITmwtdEU1dkFOMmRiUnhGeFFnVVRBT0JnTlZIUThCQWY4RUJBTUNCYUF3Z2dFbUJnTlZIUjhFZ2dFZE1JSUJHVENDQVJXZ2dnRVJvSUlCRFlZX2FIUjBjRG92TDJOeWJDNXRhV055YjNOdlpuUXVZMjl0TDNCcmFXbHVabkpoTDBOU1RDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFV1WTNKc2hqRm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EVXVZM0pzaGpGb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURVdVkzSnNoakZvZEhSd09pOHZZM0pzTXk1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFV1WTNKc2hqRm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EVXVZM0pzTUlHZEJnTlZIU0FFZ1pVd2daSXdEQVlLS3dZQkJBR0NOM3NCQVRCbUJnb3JCZ0VFQVlJM2V3SUNNRmd3VmdZSUt3WUJCUVVIQWdJd1NoNUlBRE1BTXdCbEFEQUFNUUE1QURJQU1RQXRBRFFBWkFBMkFEUUFMUUEwQUdZQU9BQmpBQzBBWVFBd0FEVUFOUUF0QURVQVlnQmtBR0VBWmdCbUFHUUFOUUJsQURNQU13QmtNQXdHQ2lzR0FRUUJnamQ3QXdJd0RBWUtLd1lCQkFHQ04zc0VBakFmQmdOVkhTTUVHREFXZ0JSNjFobUZLSGxzY1hZZVlQanpTLS1pQlVJV0hUQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUhhYWdsTUZYU2k3bHZTSHlUY2xLeEtiYTFoRnByWUZRVmdyX0RXNDVTdE5PU0lrVjNfSVJsMmFkYUtVWWdBVzE5Ymd1Ymd0ZHJ0TDBBNjliaFJibGgwbXM5MnUwVVZyX1dhZGd0Y0FSOTdweGpaV296U0s0SFFIZkRlSy1OY0xOOHItandONFU4RGh1c2o0WkNKeENqQ1VZYy00TTJpdFhqLTJNOGlsd0RrcjVtNDVSbkJpSzIzOWJLX1ZXTDU5WnVYVjFHWXRNcW9mZjllSlA1STVVUEt1dzhLRzZ3bVdlTEV0UWFSbFRtd2w5ZnVnNUlpTndXQmp6VGxiMzh2QjFucnFteUh5b3o5TzVOcUY3eDBqSzF5S0ViM1dLcHl3ZFpIVE80bzhBMEVyd0xhYjlWOGJMNUVabWsxNWJqWnJKbTFCOHY0akt4YXgyLXZRVUZuYlJhTSZzPUNVSWxydDNIb3YzY1Z1VV9jckhxZGFEQ1lGNGtvWW9KUTc0SG1xckc3UmJFMThYT2dmSnFoMzA3X0gzZnJFdHpSM2dVTUw2S0FSRjdrTnBpRjYtUDVXbDJyYmpWT2dycTE5SDJHR0F6M2pvTldPZzFMNHJYOE9MRWZNSHdoMEdjXy1tQ2lTN0hCQi12VnNLbnFPbGFBSVBZeTZEeUxnQzFDOVNFek5TLWM5SG4yX29JN3dfaS1sTHRyd0xFYkJXeDl3V3hXTkh0S0IxOEJOd3Y0LXpZOTdhTGprWmYzSmhpZHY2ajZwU1NGQ29QVGVpc3dIRndfak1hNnJ6bVhKRmdIM3Y0ZkZkZmV5UVNHU083X3lvdVBxQmFmdDFVaVRyTU52LWxKM2FHUlBmQ2FlczdLR2IzdG0zVDhNUWt4RmlZdDJfcWlELWVGSzdsakFVMW1idFBNUSZoPWhDdHdOeWZvZG56VWxiNGtVM013NVJIWVZTNGRZbmNtcEdGS0FqdmZmU0E=", + "RequestMethod": "GET", + "RequestHeaders": { + "x-ms-client-request-id": [ + "97724290-1ff2-4949-8345-80099956128d" + ], + "User-Agent": [ + "FxVersion/8.0.2225.52707", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.26200", + "Microsoft.Azure.Management.Network.NetworkManagementClient/27.0.0.0" + ] + }, + "RequestBody": "", + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "93574a7a-ef22-47cc-a5fd-b50f0126156e" + ], + "x-ms-correlation-request-id": [ + "9197ba57-6482-48a7-890a-b93a485f51aa" + ], + "x-ms-arm-service-request-id": [ + "d89e4124-a257-4a25-8c63-f9a3b90b55f3" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=9ff214cf-3961-45c7-8dcf-5728570735b4/westcentralus/cf4c6bd0-8553-4f8b-9030-fccff8f606f8" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "1099" + ], + "x-ms-ratelimit-remaining-subscription-global-reads": [ + "16499" + ], + "x-ms-routing-request-id": [ + "WESTCENTRALUS:20260106T174359Z:9197ba57-6482-48a7-890a-b93a485f51aa" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Cache": [ + "CONFIG_NOCACHE" + ], + "X-MSEdge-Ref": [ + "Ref A: DC9852360FD34183A363861A6C031942 Ref B: MNZ221060610045 Ref C: 2026-01-06T17:43:58Z" + ], + "Date": [ + "Tue, 06 Jan 2026 17:43:59 GMT" + ], + "Content-Length": [ + "22" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"status\": \"Succeeded\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/providers/Microsoft.Network/locations/westcentralus/operationResults/606cc2be-2445-4cfc-af5b-d6f60ffe9864?api-version=2025-05-01&t=639033182281084258&c=MIIHhzCCBm-gAwIBAgITfAlUi7iAnbsbxEA4ngAACVSLuDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjUxMDE3MDAxMzUyWhcNMjYwNDE1MDAxMzUyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVvYrmN0LCC719Q3nXJvt4uXc9n2LDkbLdhqU1ZZIqXRdqXKqc9eOaUT2mRMpzJqG3DkugEfX7Nw8bVJitWe4cuXODNRonoinhfeF7iB24Ni3w5Vw42MpUpUGjYlZ9S8RCPdfu-tm_6lUUjZGT1UgEcE4l9h49m-Jf6snRiPU7aOozbchkwa3XznLovQcE3xV5ltctPLNmqlD5D78zWVE3wSICwVIwUnctZhbbn8AXwt_x2m4_h0wjuvPwR2BgGn1a5QUJSOnQuwDcaPsYFU4RfyMltzPSZr_FoRoVZzkV9k-r40fumjkDViQrMDSm0Zcg-W2Y2Aoex7otPtacfaNECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRtyRqqNHNl-tE5vAN2dbRxFxQgUTAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHaaglMFXSi7lvSHyTclKxKba1hFprYFQVgr_DW45StNOSIkV3_IRl2adaKUYgAW19bgubgtdrtL0A69bhRblh0ms92u0UVr_WadgtcAR97pxjZWozSK4HQHfDeK-NcLN8r-jwN4U8Dhusj4ZCJxCjCUYc-4M2itXj-2M8ilwDkr5m45RnBiK239bK_VWL59ZuXV1GYtMqoff9eJP5I5UPKuw8KG6wmWeLEtQaRlTmwl9fug5IiNwWBjzTlb38vB1nrqmyHyoz9O5NqF7x0jK1yKEb3WKpywdZHTO4o8A0ErwLab9V8bL5EZmk15bjZrJm1B8v4jKxax2-vQUFnbRaM&s=mzjkkza-VMWYTYAtDwF2O3UZ3J05VPkzSZj3x_ybUb-k17bUBlD_XaOTJIj4Q-Ksxkrx3KwosXyYSI4O7hHd93Nj1J0Js4HzDnoFYg8OwnWZEaDNhY-PrWgbaT3WJB5TMxEOVa2ln8BH17iAe_FSVY7JE0qYQJvZ9PxKJWtFI216KGAfLwpI6aVFzf_78u9vLQaz6ChMVjYz2ba6V6Zb43Sagui9_G0sIi-hIGW5yccfx8BGyzzyRlvB4R-Q8ZHUaYgB_dHDsnIWEqnAP7ymrcRtWVgroDkcS7y8kRreHhFJXprK3rAmFjZsiv87PcVjFMT7GDE3efRWUKIOMT3_2g&h=oPs5hrltSqe_-6SLQXUdM4nVpmj2vt3dlhz29Qg1eyc", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYTU0ZDUwMGQtYTZiNS00NGYyLWIwOTAtMjFiMGVmMjRhNGZiL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9sb2NhdGlvbnMvd2VzdGNlbnRyYWx1cy9vcGVyYXRpb25SZXN1bHRzLzYwNmNjMmJlLTI0NDUtNGNmYy1hZjViLWQ2ZjYwZmZlOTg2ND9hcGktdmVyc2lvbj0yMDI1LTA1LTAxJnQ9NjM5MDMzMTgyMjgxMDg0MjU4JmM9TUlJSGh6Q0NCbS1nQXdJQkFnSVRmQWxVaTdpQW5ic2J4RUE0bmdBQUNWU0x1REFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURVd0hoY05NalV4TURFM01EQXhNelV5V2hjTk1qWXdOREUxTURBeE16VXlXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTVZ2WXJtTjBMQ0M3MTlRM25YSnZ0NHVYYzluMkxEa2JMZGhxVTFaWklxWFJkcVhLcWM5ZU9hVVQybVJNcHpKcUczRGt1Z0VmWDdOdzhiVkppdFdlNGN1WE9ETlJvbm9pbmhmZUY3aUIyNE5pM3c1Vnc0Mk1wVXBVR2pZbFo5UzhSQ1BkZnUtdG1fNmxVVWpaR1QxVWdFY0U0bDloNDltLUpmNnNuUmlQVTdhT296YmNoa3dhM1h6bkxvdlFjRTN4VjVsdGN0UExObXFsRDVENzh6V1ZFM3dTSUN3Vkl3VW5jdFpoYmJuOEFYd3RfeDJtNF9oMHdqdXZQd1IyQmdHbjFhNVFVSlNPblF1d0RjYVBzWUZVNFJmeU1sdHpQU1pyX0ZvUm9WWnprVjlrLXI0MGZ1bWprRFZpUXJNRFNtMFpjZy1XMlkyQW9leDdvdFB0YWNmYU5FQ0F3RUFBYU9DQkhRd2dnUndNQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSExCZ2dyQmdFRkJRY0JBUVNDQWIwd2dnRzVNR01HQ0NzR0FRVUZCekFDaGxkb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRMDh4VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd05TNWpjblF3VXdZSUt3WUJCUVVITUFLR1IyaDBkSEE2THk5amNtd3hMbUZ0WlM1blltd3ZZV2xoTDBOUE1WQkxTVWxPVkVOQk1ERXVRVTFGTGtkQ1RGOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFV1WTNKME1GTUdDQ3NHQVFVRkJ6QUNoa2RvZEhSd09pOHZZM0pzTWk1aGJXVXVaMkpzTDJGcFlTOURUekZRUzBsSlRsUkRRVEF4TGtGTlJTNUhRa3hmUVUxRkpUSXdTVzVtY21FbE1qQkRRU1V5TURBMUxtTnlkREJUQmdnckJnRUZCUWN3QW9aSGFIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UTA4eFVFdEpTVTVVUTBFd01TNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdOUzVqY25Rd1V3WUlLd1lCQlFVSE1BS0dSMmgwZEhBNkx5OWpjbXcwTG1GdFpTNW5ZbXd2WVdsaEwwTlBNVkJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURVdVkzSjBNQjBHQTFVZERnUVdCQlJ0eVJxcU5ITmwtdEU1dkFOMmRiUnhGeFFnVVRBT0JnTlZIUThCQWY4RUJBTUNCYUF3Z2dFbUJnTlZIUjhFZ2dFZE1JSUJHVENDQVJXZ2dnRVJvSUlCRFlZX2FIUjBjRG92TDJOeWJDNXRhV055YjNOdlpuUXVZMjl0TDNCcmFXbHVabkpoTDBOU1RDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFV1WTNKc2hqRm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EVXVZM0pzaGpGb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURVdVkzSnNoakZvZEhSd09pOHZZM0pzTXk1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFV1WTNKc2hqRm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EVXVZM0pzTUlHZEJnTlZIU0FFZ1pVd2daSXdEQVlLS3dZQkJBR0NOM3NCQVRCbUJnb3JCZ0VFQVlJM2V3SUNNRmd3VmdZSUt3WUJCUVVIQWdJd1NoNUlBRE1BTXdCbEFEQUFNUUE1QURJQU1RQXRBRFFBWkFBMkFEUUFMUUEwQUdZQU9BQmpBQzBBWVFBd0FEVUFOUUF0QURVQVlnQmtBR0VBWmdCbUFHUUFOUUJsQURNQU13QmtNQXdHQ2lzR0FRUUJnamQ3QXdJd0RBWUtLd1lCQkFHQ04zc0VBakFmQmdOVkhTTUVHREFXZ0JSNjFobUZLSGxzY1hZZVlQanpTLS1pQlVJV0hUQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUhhYWdsTUZYU2k3bHZTSHlUY2xLeEtiYTFoRnByWUZRVmdyX0RXNDVTdE5PU0lrVjNfSVJsMmFkYUtVWWdBVzE5Ymd1Ymd0ZHJ0TDBBNjliaFJibGgwbXM5MnUwVVZyX1dhZGd0Y0FSOTdweGpaV296U0s0SFFIZkRlSy1OY0xOOHItandONFU4RGh1c2o0WkNKeENqQ1VZYy00TTJpdFhqLTJNOGlsd0RrcjVtNDVSbkJpSzIzOWJLX1ZXTDU5WnVYVjFHWXRNcW9mZjllSlA1STVVUEt1dzhLRzZ3bVdlTEV0UWFSbFRtd2w5ZnVnNUlpTndXQmp6VGxiMzh2QjFucnFteUh5b3o5TzVOcUY3eDBqSzF5S0ViM1dLcHl3ZFpIVE80bzhBMEVyd0xhYjlWOGJMNUVabWsxNWJqWnJKbTFCOHY0akt4YXgyLXZRVUZuYlJhTSZzPW16amtremEtVk1XWVRZQXREd0YyTzNVWjNKMDVWUGt6U1pqM3hfeWJVYi1rMTdiVUJsRF9YYU9USklqNFEtS3N4a3J4M0t3b3NYeVlTSTRPN2hIZDkzTmoxSjBKczRIekRub0ZZZzhPd25XWkVhRE5oWS1QcldnYmFUM1dKQjVUTXhFT1ZhMmxuOEJIMTdpQWVfRlNWWTdKRTBxWVFKdlo5UHhLSld0RkkyMTZLR0FmTHdwSTZhVkZ6Zl83OHU5dkxRYXo2Q2hNVmpZejJiYTZWNlpiNDNTYWd1aTlfRzBzSWktaElHVzV5Y2NmeDhCR3l6enlSbHZCNFItUThaSFVhWWdCX2RIRHNuSVdFcW5BUDd5bXJjUnRXVmdyb0RrY1M3eThrUnJlSGhGSlhwckszckFtRmpac2l2ODdQY1ZqRk1UN0dERTNlZlJXVUtJT01UM18yZyZoPW9QczVocmx0U3FlXy02U0xRWFVkTTRuVnBtajJ2dDNkbGh6MjlRZzFleWM=", + "RequestMethod": "GET", + "RequestHeaders": { + "x-ms-client-request-id": [ + "97724290-1ff2-4949-8345-80099956128d" + ], + "User-Agent": [ + "FxVersion/8.0.2225.52707", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.26200", + "Microsoft.Azure.Management.Network.NetworkManagementClient/27.0.0.0" + ] + }, + "RequestBody": "", + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/providers/Microsoft.Network/locations/westcentralus/operationResults/606cc2be-2445-4cfc-af5b-d6f60ffe9864?api-version=2025-05-01&t=639033182399260237&c=MIIHhzCCBm-gAwIBAgITfAlY2NhYWz_rkiYT0gAACVjY2DANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjUxMDE5MDMwMTUzWhcNMjYwNDE3MDMwMTUzWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALb7q8LgkqS_7Sa915WSEvu_LerzErVZMTTkw7KXLAdnIWMjvrOw1RefK_Xe_cFp1_e2xVZM1Zog0tE-_XlllqRwZapoZJTL14Kmh7C0GvefEv-5GdvOnMy695cBHvQJTv1mqxiuvsmhJdB5__zphMuTvy0lF2K1ceor52XBk_VLEQtBcMhz8UUKVZ2KboqO1b56fjCSzbjn-sv5cQ7zx0_GZYADJbddS7dvpIwmb3QZzHcEcbAec_ouQ-YyxmKTpGa17K6DB_CoquSZ2A0TRHJqBpgeGjL0b652ekPbj9oy-sOOusDnwfN95QPWCJFjmNz1aKdnUhXmx8FU134pOkUCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBSi0lU0HWkl1SHwyRBzQPtbjPmHfTAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACdnVC4tNlyw3EyuiJTFX5692Q_SgsQB7SjH2__G8q1XVJ0GiNSI4NKXoC8rVoxrLDL28sgifuyaEjoA9IYoahBs9l6DzxOxA0fDaBOTteaFuniOzVtW6WubmshP_yDd1pFPJydCOEtgKApCNY8y5eo8GzdatHpMEID7E2ZDrxTnq7PtzLXpoeF0A5W6qhqGypYabh7ugJ5-R8hb1iOlFYy2yvCrBaAW9wwnUPpO3DQRyoxnbzomyTIbrxEJuuaalADYKnu7GVtfL43Srrrx_HEfhy1rsf0ZK9CmJ64NOTHXIRG0kYIl5LhwZVZSEDqBPTAAy9oAm1i5D1jbVw2FPF8&s=kRkJjHwYh5PBtmu3IQY8pXKfRX9y7LGPxCtDEE-UbXaHe-wXPN-MZDyXRERbv6zBHqKmV7bDUGR5sEWlmb4KeoXOrOpSw7Uy-jSMU9-5vonVgbSNPIHWW37ZXQ2kTmA0VV_JvBBsAH-TiPpsbn7nQK_fLdlkznfaxZM1z7s1uz7m2KjdEFc6RtP0Soob3_ERxMRh9BPMMjZP9CVDie9mm4iTTqh1NiTI5DvyUGb22HiJrwWWiVbNZoLzHHMTfyd9FoBNv9J7V80OjG83pQUbzmIKMyzjDROad2-ndBlF95vMTWouoZlkvXJPfQFoXoprPedDzJLk_lBWef-UjFso3Q&h=nfotE7l_Ajf580zazQ4aMlzTp4GEes4sIue_QTc07-A" + ], + "x-ms-request-id": [ + "606cc2be-2445-4cfc-af5b-d6f60ffe9864" + ], + "Azure-AsyncOperation": [ + "https://management.azure.com/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/providers/Microsoft.Network/locations/westcentralus/operations/606cc2be-2445-4cfc-af5b-d6f60ffe9864?api-version=2025-05-01&t=639033182399104011&c=MIIHhzCCBm-gAwIBAgITfAlY2NhYWz_rkiYT0gAACVjY2DANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjUxMDE5MDMwMTUzWhcNMjYwNDE3MDMwMTUzWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALb7q8LgkqS_7Sa915WSEvu_LerzErVZMTTkw7KXLAdnIWMjvrOw1RefK_Xe_cFp1_e2xVZM1Zog0tE-_XlllqRwZapoZJTL14Kmh7C0GvefEv-5GdvOnMy695cBHvQJTv1mqxiuvsmhJdB5__zphMuTvy0lF2K1ceor52XBk_VLEQtBcMhz8UUKVZ2KboqO1b56fjCSzbjn-sv5cQ7zx0_GZYADJbddS7dvpIwmb3QZzHcEcbAec_ouQ-YyxmKTpGa17K6DB_CoquSZ2A0TRHJqBpgeGjL0b652ekPbj9oy-sOOusDnwfN95QPWCJFjmNz1aKdnUhXmx8FU134pOkUCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBSi0lU0HWkl1SHwyRBzQPtbjPmHfTAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACdnVC4tNlyw3EyuiJTFX5692Q_SgsQB7SjH2__G8q1XVJ0GiNSI4NKXoC8rVoxrLDL28sgifuyaEjoA9IYoahBs9l6DzxOxA0fDaBOTteaFuniOzVtW6WubmshP_yDd1pFPJydCOEtgKApCNY8y5eo8GzdatHpMEID7E2ZDrxTnq7PtzLXpoeF0A5W6qhqGypYabh7ugJ5-R8hb1iOlFYy2yvCrBaAW9wwnUPpO3DQRyoxnbzomyTIbrxEJuuaalADYKnu7GVtfL43Srrrx_HEfhy1rsf0ZK9CmJ64NOTHXIRG0kYIl5LhwZVZSEDqBPTAAy9oAm1i5D1jbVw2FPF8&s=kENoCYiW4f9ItxijLKLdoBK4kNgSIjCGhRQ_BJTo1fC23_J3AyYjFnqUXQVbKuBYHDJRYrU1JSxBp8rTrZ7aRLkqdVdkSYzwC_-VL6sn3ktlESMV0oBC5GlyHs7m_GOmIExPGJh1oGT-vFyhe50Y4Ywkmb_7Ey6mnL2gGO7odUo3jad-XyhSwtJ9unbb9XTdFinGSZSQdIC_D1K1yqigdp7DtvRMJXnUp4sPCfZv5ToWjGBoPMluUMpJKdBQQkm9TNOgLV9MAWLufMD84Em0V43OrQW95V9zcc-D-JKpa_46PUVnLzGNyfNAsrYzizScSAbOQ_t6QXNKwW-Ji7TM_Q&h=ToMOu-B9GKhcjizBzuB_v3x39we-oDVFZfHVbmPSj2U" + ], + "x-ms-correlation-request-id": [ + "0389f611-1c2a-4262-af70-3c567ad68707" + ], + "Azure-AsyncNotification": [ + "Enabled" + ], + "x-ms-arm-service-request-id": [ + "92318da6-848b-4849-8d5a-a5d4b52f5ee2" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=9ff214cf-3961-45c7-8dcf-5728570735b4/eastus/a8c384a4-f31c-4be7-8e3c-80380aa501bc" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "1099" + ], + "x-ms-ratelimit-remaining-subscription-global-reads": [ + "16499" + ], + "x-ms-routing-request-id": [ + "EASTUS:20260106T174359Z:47c58125-449f-4202-8263-7e4c623de152" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Cache": [ + "CONFIG_NOCACHE" + ], + "X-MSEdge-Ref": [ + "Ref A: F1DBCD3EB1E046489BD668428F0FF05D Ref B: MNZ221060610045 Ref C: 2026-01-06T17:43:59Z" + ], + "Date": [ + "Tue, 06 Jan 2026 17:43:59 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 204 + }, + { + "RequestUri": "/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/resourcegroups/ps6922?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYTU0ZDUwMGQtYTZiNS00NGYyLWIwOTAtMjFiMGVmMjRhNGZiL3Jlc291cmNlZ3JvdXBzL3BzNjkyMj9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "DELETE", + "RequestHeaders": { + "x-ms-client-request-id": [ + "d04649b2-ee43-4117-8b90-02207ae2e524" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/8.0.2225.52707", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.26200", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.110" + ] + }, + "RequestBody": "", + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzY5MjItV0VTVENFTlRSQUxVUyIsImpvYkxvY2F0aW9uIjoid2VzdGNlbnRyYWx1cyJ9?api-version=2016-09-01&t=639033182411882934&c=MIIHhzCCBm-gAwIBAgITfAlUi7iAnbsbxEA4ngAACVSLuDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjUxMDE3MDAxMzUyWhcNMjYwNDE1MDAxMzUyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVvYrmN0LCC719Q3nXJvt4uXc9n2LDkbLdhqU1ZZIqXRdqXKqc9eOaUT2mRMpzJqG3DkugEfX7Nw8bVJitWe4cuXODNRonoinhfeF7iB24Ni3w5Vw42MpUpUGjYlZ9S8RCPdfu-tm_6lUUjZGT1UgEcE4l9h49m-Jf6snRiPU7aOozbchkwa3XznLovQcE3xV5ltctPLNmqlD5D78zWVE3wSICwVIwUnctZhbbn8AXwt_x2m4_h0wjuvPwR2BgGn1a5QUJSOnQuwDcaPsYFU4RfyMltzPSZr_FoRoVZzkV9k-r40fumjkDViQrMDSm0Zcg-W2Y2Aoex7otPtacfaNECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRtyRqqNHNl-tE5vAN2dbRxFxQgUTAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHaaglMFXSi7lvSHyTclKxKba1hFprYFQVgr_DW45StNOSIkV3_IRl2adaKUYgAW19bgubgtdrtL0A69bhRblh0ms92u0UVr_WadgtcAR97pxjZWozSK4HQHfDeK-NcLN8r-jwN4U8Dhusj4ZCJxCjCUYc-4M2itXj-2M8ilwDkr5m45RnBiK239bK_VWL59ZuXV1GYtMqoff9eJP5I5UPKuw8KG6wmWeLEtQaRlTmwl9fug5IiNwWBjzTlb38vB1nrqmyHyoz9O5NqF7x0jK1yKEb3WKpywdZHTO4o8A0ErwLab9V8bL5EZmk15bjZrJm1B8v4jKxax2-vQUFnbRaM&s=fx6Uae69reYnhNz99RZbNVA6n0LLVdEv7cNeskrHwNMweJ5trl39m5XoHC823Lz0lz7Y0M8KvulotnWo55CcBK7i3SK5kk4FdcIAo0YE96rndgbtQ1HGKn1RRS4tkIPA_215K8dzNJLJMBDpg98o4FLeb2__Uei_UKTg3A3uv0njpD8tgvwIBsHEb-RN6WaTcBZMkIyziz6_EUgOKCLh8OIn1jCga2yNi9McINqClsvttBNVaFiw2rlK_qbpDZ8Up1FaGLcsFT0bm_5EOmgQjEr-rYCQ3IkllHDZhnPc6JQtR5CrzS0f6lZerpFGVuSeei3qsWQYzdmX8QqcG9ScOA&h=m3CUlfr_AMDvJDxVVoBfUAE8FUmeluiF5kT9Kuhg-JY" + ], + "Retry-After": [ + "15" + ], + "x-ms-ratelimit-remaining-subscription-deletes": [ + "799" + ], + "x-ms-ratelimit-remaining-subscription-global-deletes": [ + "11999" + ], + "x-ms-request-id": [ + "40139e1d-b55b-4854-8daf-d4539e33a8ca" + ], + "x-ms-correlation-request-id": [ + "40139e1d-b55b-4854-8daf-d4539e33a8ca" + ], + "x-ms-routing-request-id": [ + "WESTCENTRALUS:20260106T174401Z:40139e1d-b55b-4854-8daf-d4539e33a8ca" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Cache": [ + "CONFIG_NOCACHE" + ], + "X-MSEdge-Ref": [ + "Ref A: 8340DF52DB3F40B2A37E210673F4D848 Ref B: MNZ221060609007 Ref C: 2026-01-06T17:44:00Z" + ], + "Date": [ + "Tue, 06 Jan 2026 17:44:00 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzY5MjItV0VTVENFTlRSQUxVUyIsImpvYkxvY2F0aW9uIjoid2VzdGNlbnRyYWx1cyJ9?api-version=2016-09-01&t=639033182411882934&c=MIIHhzCCBm-gAwIBAgITfAlUi7iAnbsbxEA4ngAACVSLuDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjUxMDE3MDAxMzUyWhcNMjYwNDE1MDAxMzUyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVvYrmN0LCC719Q3nXJvt4uXc9n2LDkbLdhqU1ZZIqXRdqXKqc9eOaUT2mRMpzJqG3DkugEfX7Nw8bVJitWe4cuXODNRonoinhfeF7iB24Ni3w5Vw42MpUpUGjYlZ9S8RCPdfu-tm_6lUUjZGT1UgEcE4l9h49m-Jf6snRiPU7aOozbchkwa3XznLovQcE3xV5ltctPLNmqlD5D78zWVE3wSICwVIwUnctZhbbn8AXwt_x2m4_h0wjuvPwR2BgGn1a5QUJSOnQuwDcaPsYFU4RfyMltzPSZr_FoRoVZzkV9k-r40fumjkDViQrMDSm0Zcg-W2Y2Aoex7otPtacfaNECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRtyRqqNHNl-tE5vAN2dbRxFxQgUTAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHaaglMFXSi7lvSHyTclKxKba1hFprYFQVgr_DW45StNOSIkV3_IRl2adaKUYgAW19bgubgtdrtL0A69bhRblh0ms92u0UVr_WadgtcAR97pxjZWozSK4HQHfDeK-NcLN8r-jwN4U8Dhusj4ZCJxCjCUYc-4M2itXj-2M8ilwDkr5m45RnBiK239bK_VWL59ZuXV1GYtMqoff9eJP5I5UPKuw8KG6wmWeLEtQaRlTmwl9fug5IiNwWBjzTlb38vB1nrqmyHyoz9O5NqF7x0jK1yKEb3WKpywdZHTO4o8A0ErwLab9V8bL5EZmk15bjZrJm1B8v4jKxax2-vQUFnbRaM&s=fx6Uae69reYnhNz99RZbNVA6n0LLVdEv7cNeskrHwNMweJ5trl39m5XoHC823Lz0lz7Y0M8KvulotnWo55CcBK7i3SK5kk4FdcIAo0YE96rndgbtQ1HGKn1RRS4tkIPA_215K8dzNJLJMBDpg98o4FLeb2__Uei_UKTg3A3uv0njpD8tgvwIBsHEb-RN6WaTcBZMkIyziz6_EUgOKCLh8OIn1jCga2yNi9McINqClsvttBNVaFiw2rlK_qbpDZ8Up1FaGLcsFT0bm_5EOmgQjEr-rYCQ3IkllHDZhnPc6JQtR5CrzS0f6lZerpFGVuSeei3qsWQYzdmX8QqcG9ScOA&h=m3CUlfr_AMDvJDxVVoBfUAE8FUmeluiF5kT9Kuhg-JY", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYTU0ZDUwMGQtYTZiNS00NGYyLWIwOTAtMjFiMGVmMjRhNGZiL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpZNU1qSXRWMFZUVkVORlRsUlNRVXhWVXlJc0ltcHZZa3h2WTJGMGFXOXVJam9pZDJWemRHTmxiblJ5WVd4MWN5Sjk/YXBpLXZlcnNpb249MjAxNi0wOS0wMSZ0PTYzOTAzMzE4MjQxMTg4MjkzNCZjPU1JSUhoekNDQm0tZ0F3SUJBZ0lUZkFsVWk3aUFuYnNieEVBNG5nQUFDVlNMdURBTkJna3Foa2lHOXcwQkFRc0ZBREJFTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUjBKTU1STXdFUVlLQ1pJbWlaUHlMR1FCR1JZRFFVMUZNUmd3RmdZRFZRUURFdzlCVFVVZ1NXNW1jbUVnUTBFZ01EVXdIaGNOTWpVeE1ERTNNREF4TXpVeVdoY05Nall3TkRFMU1EQXhNelV5V2pCQU1UNHdQQVlEVlFRREV6VmhjM2x1WTI5d1pYSmhkR2x2Ym5OcFoyNXBibWRqWlhKMGFXWnBZMkYwWlM1dFlXNWhaMlZ0Wlc1MExtRjZkWEpsTG1OdmJUQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU1WdllybU4wTENDNzE5UTNuWEp2dDR1WGM5bjJMRGtiTGRocVUxWlpJcVhSZHFYS3FjOWVPYVVUMm1STXB6SnFHM0RrdWdFZlg3Tnc4YlZKaXRXZTRjdVhPRE5Sb25vaW5oZmVGN2lCMjROaTN3NVZ3NDJNcFVwVUdqWWxaOVM4UkNQZGZ1LXRtXzZsVVVqWkdUMVVnRWNFNGw5aDQ5bS1KZjZzblJpUFU3YU9vemJjaGt3YTNYem5Mb3ZRY0UzeFY1bHRjdFBMTm1xbEQ1RDc4eldWRTN3U0lDd1ZJd1VuY3RaaGJibjhBWHd0X3gybTRfaDB3anV2UHdSMkJnR24xYTVRVUpTT25RdXdEY2FQc1lGVTRSZnlNbHR6UFNacl9Gb1JvVlp6a1Y5ay1yNDBmdW1qa0RWaVFyTURTbTBaY2ctVzJZMkFvZXg3b3RQdGFjZmFORUNBd0VBQWFPQ0JIUXdnZ1J3TUNjR0NTc0dBUVFCZ2pjVkNnUWFNQmd3Q2dZSUt3WUJCUVVIQXdFd0NnWUlLd1lCQlFVSEF3SXdQUVlKS3dZQkJBR0NOeFVIQkRBd0xnWW1Ld1lCQkFHQ054VUlocERqRFlUVnRIaUU4WXMtaFp2ZEZzNmRFb0ZnaGZtUlM0V3NtVFFDQVdRQ0FRY3dnZ0hMQmdnckJnRUZCUWNCQVFTQ0FiMHdnZ0c1TUdNR0NDc0dBUVVGQnpBQ2hsZG9kSFJ3T2k4dlkzSnNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBhVzVtY21FdlEyVnlkSE12UTA4eFVFdEpTVTVVUTBFd01TNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdOUzVqY25Rd1V3WUlLd1lCQlFVSE1BS0dSMmgwZEhBNkx5OWpjbXd4TG1GdFpTNW5ZbXd2WVdsaEwwTlBNVkJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURVdVkzSjBNRk1HQ0NzR0FRVUZCekFDaGtkb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyRnBZUzlEVHpGUVMwbEpUbFJEUVRBeExrRk5SUzVIUWt4ZlFVMUZKVEl3U1c1bWNtRWxNakJEUVNVeU1EQTFMbU55ZERCVEJnZ3JCZ0VGQlFjd0FvWkhhSFIwY0RvdkwyTnliRE11WVcxbExtZGliQzloYVdFdlEwOHhVRXRKU1U1VVEwRXdNUzVCVFVVdVIwSk1YMEZOUlNVeU1FbHVabkpoSlRJd1EwRWxNakF3TlM1amNuUXdVd1lJS3dZQkJRVUhNQUtHUjJoMGRIQTZMeTlqY213MExtRnRaUzVuWW13dllXbGhMME5QTVZCTFNVbE9WRU5CTURFdVFVMUZMa2RDVEY5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EVXVZM0owTUIwR0ExVWREZ1FXQkJSdHlScXFOSE5sLXRFNXZBTjJkYlJ4RnhRZ1VUQU9CZ05WSFE4QkFmOEVCQU1DQmFBd2dnRW1CZ05WSFI4RWdnRWRNSUlCR1RDQ0FSV2dnZ0VSb0lJQkRZWV9hSFIwY0RvdkwyTnliQzV0YVdOeWIzTnZablF1WTI5dEwzQnJhV2x1Wm5KaEwwTlNUQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURVdVkzSnNoakZvZEhSd09pOHZZM0pzTVM1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFV1WTNKc2hqRm9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EVXVZM0pzaGpGb2RIUndPaTh2WTNKc015NWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURVdVkzSnNoakZvZEhSd09pOHZZM0pzTkM1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFV1WTNKc01JR2RCZ05WSFNBRWdaVXdnWkl3REFZS0t3WUJCQUdDTjNzQkFUQm1CZ29yQmdFRUFZSTNld0lDTUZnd1ZnWUlLd1lCQlFVSEFnSXdTaDVJQURNQU13QmxBREFBTVFBNUFESUFNUUF0QURRQVpBQTJBRFFBTFFBMEFHWUFPQUJqQUMwQVlRQXdBRFVBTlFBdEFEVUFZZ0JrQUdFQVpnQm1BR1FBTlFCbEFETUFNd0JrTUF3R0Npc0dBUVFCZ2pkN0F3SXdEQVlLS3dZQkJBR0NOM3NFQWpBZkJnTlZIU01FR0RBV2dCUjYxaG1GS0hsc2NYWWVZUGp6Uy0taUJVSVdIVEFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFIYWFnbE1GWFNpN2x2U0h5VGNsS3hLYmExaEZwcllGUVZncl9EVzQ1U3ROT1NJa1YzX0lSbDJhZGFLVVlnQVcxOWJndWJndGRydEwwQTY5YmhSYmxoMG1zOTJ1MFVWcl9XYWRndGNBUjk3cHhqWldvelNLNEhRSGZEZUstTmNMTjhyLWp3TjRVOERodXNqNFpDSnhDakNVWWMtNE0yaXRYai0yTThpbHdEa3I1bTQ1Um5CaUsyMzliS19WV0w1OVp1WFYxR1l0TXFvZmY5ZUpQNUk1VVBLdXc4S0c2d21XZUxFdFFhUmxUbXdsOWZ1ZzVJaU53V0JqelRsYjM4dkIxbnJxbXlIeW96OU81TnFGN3gwaksxeUtFYjNXS3B5d2RaSFRPNG84QTBFcndMYWI5VjhiTDVFWm1rMTVialpySm0xQjh2NGpLeGF4Mi12UVVGbmJSYU0mcz1meDZVYWU2OXJlWW5oTno5OVJaYk5WQTZuMExMVmRFdjdjTmVza3JId05Nd2VKNXRybDM5bTVYb0hDODIzTHowbHo3WTBNOEt2dWxvdG5XbzU1Q2NCSzdpM1NLNWtrNEZkY0lBbzBZRTk2cm5kZ2J0UTFIR0tuMVJSUzR0a0lQQV8yMTVLOGR6TkpMSk1CRHBnOThvNEZMZWIyX19VZWlfVUtUZzNBM3V2MG5qcEQ4dGd2d0lCc0hFYi1STjZXYVRjQlpNa0l5eml6Nl9FVWdPS0NMaDhPSW4xakNnYTJ5Tmk5TWNJTnFDbHN2dHRCTlZhRml3MnJsS19xYnBEWjhVcDFGYUdMY3NGVDBibV81RU9tZ1FqRXItcllDUTNJa2xsSERaaG5QYzZKUXRSNUNyelMwZjZsWmVycEZHVnVTZWVpM3FzV1FZemRtWDhRcWNHOVNjT0EmaD1tM0NVbGZyX0FNRHZKRHhWVm9CZlVBRThGVW1lbHVpRjVrVDlLdWhnLUpZ", + "RequestMethod": "GET", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/8.0.2225.52707", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.26200", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.110" + ] + }, + "RequestBody": "", + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzY5MjItV0VTVENFTlRSQUxVUyIsImpvYkxvY2F0aW9uIjoid2VzdGNlbnRyYWx1cyJ9?api-version=2016-09-01&t=639033182565526113&c=MIIHhzCCBm-gAwIBAgITfAlbAuHJVGlWt5nvPQAACVsC4TANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjUxMDIwMDYxMjI2WhcNMjYwNDE4MDYxMjI2WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMy2rMZQG9krGl8uVrHhOxWEeSefupCGj4W39OG3hmsgHCdpJoVTYNkhCBBXKDiMPz4qOGTNo9ZuEtdDIgrgURZfB_yqvkFPpluc8G1zPLN-jiYbtj5pMAKuYgLO7iMfbKCCV7GjTrHV_wumSY9mtoHlkCrcXhhzpkJA87IHj7UrwyzONRzDo4k0KGqw1e7uF2ASiU9K59IwNCK5OTyLIUYEniYOtRG3wTnTc5pKlMy2k_Wx_amkYwkngAxaNLr0Ko3_0IuWpgJW3FSQcVUBFthJ7YaPIymOzcBcjMLnTbrKuafUxO7gaqmq92b3sH9sseHWY-yS7f2OUzfvriS2v30CAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBTM1P5CztWwZKGV3-19qUWbS5-_VzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAE_nquBJaTSjdrhuWIvf7jbzVTVN9KtuKhiQNPblrMkYM5uA67arOdlSEKEogtsLLB9GPFPWwmmq9Nsn0hmsMypp1Fgy48ftWQlps41mOpiJEpIQ-Cmtp8thUJDrIiC6wU-9vUJlQqpR5f-tcaLrf5PVBs_XtvDONWbtCozHcF4VUEU9xrXMVNagQrUCUeogmrfJjGO500pGdqUNfY2K8STWDI2u7_ByHN6OpmStYPS6ywL3_zEji1FKMpB1quLdBQzmKwy2YucRyNqBcV3ZdI4XrdPpjBRXPFaQobVujng1uOKkfzAEKgp3eUhTlz4N_EL8OtQJfwvy94HxDT6PZm0&s=EI5UGLvgZuNJdaQH_jFotJbmunvSSedhuynsMbaRzOMo8Aw05_c1GoXqrHeUhb6Dse7XbN-OgBjn8KnDxMqBXxcOY04b8HdBk6a85VHcnmepEiwESinaIMrps_Oje4_vEZON2B4EkGLOKAxWQ4_qtESkwUAbMaQ5auC_xmvXXLPcFGoz9ppQnOFeKRk-y80J2Pv67V9wHE1X8mAQr-QTqquND_hJ8XaFFk3SSsOqtPw_O9cq44sEmAZCdhJoqvYgY-2lizjrZPJZxq2KJoRHSUf7kaDDSAwwci3_osxrgK6Ys3mtxUWYZreP1-L2wSFqy6dEplWZeRTdQN-q1DpnWg&h=w1fMYBpklIR1BZE6DqgttQKiUEiKKm9hhZTuICnOe6I" + ], + "Retry-After": [ + "15" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "1099" + ], + "x-ms-ratelimit-remaining-subscription-global-reads": [ + "16499" + ], + "x-ms-request-id": [ + "6c7a270a-95eb-47b6-882e-660b894c1589" + ], + "x-ms-correlation-request-id": [ + "6c7a270a-95eb-47b6-882e-660b894c1589" + ], + "x-ms-routing-request-id": [ + "EASTUS2:20260106T174416Z:6c7a270a-95eb-47b6-882e-660b894c1589" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Cache": [ + "CONFIG_NOCACHE" + ], + "X-MSEdge-Ref": [ + "Ref A: 938CF65155F84D4BA3CFA56C841AEA6F Ref B: MNZ221060609007 Ref C: 2026-01-06T17:44:16Z" + ], + "Date": [ + "Tue, 06 Jan 2026 17:44:15 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzY5MjItV0VTVENFTlRSQUxVUyIsImpvYkxvY2F0aW9uIjoid2VzdGNlbnRyYWx1cyJ9?api-version=2016-09-01&t=639033182565526113&c=MIIHhzCCBm-gAwIBAgITfAlbAuHJVGlWt5nvPQAACVsC4TANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjUxMDIwMDYxMjI2WhcNMjYwNDE4MDYxMjI2WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMy2rMZQG9krGl8uVrHhOxWEeSefupCGj4W39OG3hmsgHCdpJoVTYNkhCBBXKDiMPz4qOGTNo9ZuEtdDIgrgURZfB_yqvkFPpluc8G1zPLN-jiYbtj5pMAKuYgLO7iMfbKCCV7GjTrHV_wumSY9mtoHlkCrcXhhzpkJA87IHj7UrwyzONRzDo4k0KGqw1e7uF2ASiU9K59IwNCK5OTyLIUYEniYOtRG3wTnTc5pKlMy2k_Wx_amkYwkngAxaNLr0Ko3_0IuWpgJW3FSQcVUBFthJ7YaPIymOzcBcjMLnTbrKuafUxO7gaqmq92b3sH9sseHWY-yS7f2OUzfvriS2v30CAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBTM1P5CztWwZKGV3-19qUWbS5-_VzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAE_nquBJaTSjdrhuWIvf7jbzVTVN9KtuKhiQNPblrMkYM5uA67arOdlSEKEogtsLLB9GPFPWwmmq9Nsn0hmsMypp1Fgy48ftWQlps41mOpiJEpIQ-Cmtp8thUJDrIiC6wU-9vUJlQqpR5f-tcaLrf5PVBs_XtvDONWbtCozHcF4VUEU9xrXMVNagQrUCUeogmrfJjGO500pGdqUNfY2K8STWDI2u7_ByHN6OpmStYPS6ywL3_zEji1FKMpB1quLdBQzmKwy2YucRyNqBcV3ZdI4XrdPpjBRXPFaQobVujng1uOKkfzAEKgp3eUhTlz4N_EL8OtQJfwvy94HxDT6PZm0&s=EI5UGLvgZuNJdaQH_jFotJbmunvSSedhuynsMbaRzOMo8Aw05_c1GoXqrHeUhb6Dse7XbN-OgBjn8KnDxMqBXxcOY04b8HdBk6a85VHcnmepEiwESinaIMrps_Oje4_vEZON2B4EkGLOKAxWQ4_qtESkwUAbMaQ5auC_xmvXXLPcFGoz9ppQnOFeKRk-y80J2Pv67V9wHE1X8mAQr-QTqquND_hJ8XaFFk3SSsOqtPw_O9cq44sEmAZCdhJoqvYgY-2lizjrZPJZxq2KJoRHSUf7kaDDSAwwci3_osxrgK6Ys3mtxUWYZreP1-L2wSFqy6dEplWZeRTdQN-q1DpnWg&h=w1fMYBpklIR1BZE6DqgttQKiUEiKKm9hhZTuICnOe6I", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYTU0ZDUwMGQtYTZiNS00NGYyLWIwOTAtMjFiMGVmMjRhNGZiL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpZNU1qSXRWMFZUVkVORlRsUlNRVXhWVXlJc0ltcHZZa3h2WTJGMGFXOXVJam9pZDJWemRHTmxiblJ5WVd4MWN5Sjk/YXBpLXZlcnNpb249MjAxNi0wOS0wMSZ0PTYzOTAzMzE4MjU2NTUyNjExMyZjPU1JSUhoekNDQm0tZ0F3SUJBZ0lUZkFsYkF1SEpWR2xXdDVudlBRQUFDVnNDNFRBTkJna3Foa2lHOXcwQkFRc0ZBREJFTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUjBKTU1STXdFUVlLQ1pJbWlaUHlMR1FCR1JZRFFVMUZNUmd3RmdZRFZRUURFdzlCVFVVZ1NXNW1jbUVnUTBFZ01EVXdIaGNOTWpVeE1ESXdNRFl4TWpJMldoY05Nall3TkRFNE1EWXhNakkyV2pCQU1UNHdQQVlEVlFRREV6VmhjM2x1WTI5d1pYSmhkR2x2Ym5OcFoyNXBibWRqWlhKMGFXWnBZMkYwWlM1dFlXNWhaMlZ0Wlc1MExtRjZkWEpsTG1OdmJUQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU15MnJNWlFHOWtyR2w4dVZySGhPeFdFZVNlZnVwQ0dqNFczOU9HM2htc2dIQ2RwSm9WVFlOa2hDQkJYS0RpTVB6NHFPR1RObzladUV0ZERJZ3JnVVJaZkJfeXF2a0ZQcGx1YzhHMXpQTE4tamlZYnRqNXBNQUt1WWdMTzdpTWZiS0NDVjdHalRySFZfd3VtU1k5bXRvSGxrQ3JjWGhoenBrSkE4N0lIajdVcnd5ek9OUnpEbzRrMEtHcXcxZTd1RjJBU2lVOUs1OUl3TkNLNU9UeUxJVVlFbmlZT3RSRzN3VG5UYzVwS2xNeTJrX1d4X2Fta1l3a25nQXhhTkxyMEtvM18wSXVXcGdKVzNGU1FjVlVCRnRoSjdZYVBJeW1PemNCY2pNTG5UYnJLdWFmVXhPN2dhcW1xOTJiM3NIOXNzZUhXWS15UzdmMk9VemZ2cmlTMnYzMENBd0VBQWFPQ0JIUXdnZ1J3TUNjR0NTc0dBUVFCZ2pjVkNnUWFNQmd3Q2dZSUt3WUJCUVVIQXdFd0NnWUlLd1lCQlFVSEF3SXdQUVlKS3dZQkJBR0NOeFVIQkRBd0xnWW1Ld1lCQkFHQ054VUlocERqRFlUVnRIaUU4WXMtaFp2ZEZzNmRFb0ZnaGZtUlM0V3NtVFFDQVdRQ0FRY3dnZ0hMQmdnckJnRUZCUWNCQVFTQ0FiMHdnZ0c1TUdNR0NDc0dBUVVGQnpBQ2hsZG9kSFJ3T2k4dlkzSnNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBhVzVtY21FdlEyVnlkSE12UTA4eFVFdEpTVTVVUTBFd01TNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdOUzVqY25Rd1V3WUlLd1lCQlFVSE1BS0dSMmgwZEhBNkx5OWpjbXd4TG1GdFpTNW5ZbXd2WVdsaEwwTlBNVkJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURVdVkzSjBNRk1HQ0NzR0FRVUZCekFDaGtkb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyRnBZUzlEVHpGUVMwbEpUbFJEUVRBeExrRk5SUzVIUWt4ZlFVMUZKVEl3U1c1bWNtRWxNakJEUVNVeU1EQTFMbU55ZERCVEJnZ3JCZ0VGQlFjd0FvWkhhSFIwY0RvdkwyTnliRE11WVcxbExtZGliQzloYVdFdlEwOHhVRXRKU1U1VVEwRXdNUzVCVFVVdVIwSk1YMEZOUlNVeU1FbHVabkpoSlRJd1EwRWxNakF3TlM1amNuUXdVd1lJS3dZQkJRVUhNQUtHUjJoMGRIQTZMeTlqY213MExtRnRaUzVuWW13dllXbGhMME5QTVZCTFNVbE9WRU5CTURFdVFVMUZMa2RDVEY5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EVXVZM0owTUIwR0ExVWREZ1FXQkJUTTFQNUN6dFd3WktHVjMtMTlxVVdiUzUtX1Z6QU9CZ05WSFE4QkFmOEVCQU1DQmFBd2dnRW1CZ05WSFI4RWdnRWRNSUlCR1RDQ0FSV2dnZ0VSb0lJQkRZWV9hSFIwY0RvdkwyTnliQzV0YVdOeWIzTnZablF1WTI5dEwzQnJhV2x1Wm5KaEwwTlNUQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURVdVkzSnNoakZvZEhSd09pOHZZM0pzTVM1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFV1WTNKc2hqRm9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EVXVZM0pzaGpGb2RIUndPaTh2WTNKc015NWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURVdVkzSnNoakZvZEhSd09pOHZZM0pzTkM1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFV1WTNKc01JR2RCZ05WSFNBRWdaVXdnWkl3REFZS0t3WUJCQUdDTjNzQkFUQm1CZ29yQmdFRUFZSTNld0lDTUZnd1ZnWUlLd1lCQlFVSEFnSXdTaDVJQURNQU13QmxBREFBTVFBNUFESUFNUUF0QURRQVpBQTJBRFFBTFFBMEFHWUFPQUJqQUMwQVlRQXdBRFVBTlFBdEFEVUFZZ0JrQUdFQVpnQm1BR1FBTlFCbEFETUFNd0JrTUF3R0Npc0dBUVFCZ2pkN0F3SXdEQVlLS3dZQkJBR0NOM3NFQWpBZkJnTlZIU01FR0RBV2dCUjYxaG1GS0hsc2NYWWVZUGp6Uy0taUJVSVdIVEFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFFX25xdUJKYVRTamRyaHVXSXZmN2pielZUVk45S3R1S2hpUU5QYmxyTWtZTTV1QTY3YXJPZGxTRUtFb2d0c0xMQjlHUEZQV3dtbXE5TnNuMGhtc015cHAxRmd5NDhmdFdRbHBzNDFtT3BpSkVwSVEtQ210cDh0aFVKRHJJaUM2d1UtOXZVSmxRcXBSNWYtdGNhTHJmNVBWQnNfWHR2RE9OV2J0Q296SGNGNFZVRVU5eHJYTVZOYWdRclVDVWVvZ21yZkpqR081MDBwR2RxVU5mWTJLOFNUV0RJMnU3X0J5SE42T3BtU3RZUFM2eXdMM196RWppMUZLTXBCMXF1TGRCUXptS3d5Mll1Y1J5TnFCY1YzWmRJNFhyZFBwakJSWFBGYVFvYlZ1am5nMXVPS2tmekFFS2dwM2VVaFRsejROX0VMOE90UUpmd3Z5OTRIeERUNlBabTAmcz1FSTVVR0x2Z1p1TkpkYVFIX2pGb3RKYm11bnZTU2VkaHV5bnNNYmFSek9NbzhBdzA1X2MxR29YcXJIZVVoYjZEc2U3WGJOLU9nQmpuOEtuRHhNcUJYeGNPWTA0YjhIZEJrNmE4NVZIY25tZXBFaXdFU2luYUlNcnBzX09qZTRfdkVaT04yQjRFa0dMT0tBeFdRNF9xdEVTa3dVQWJNYVE1YXVDX3htdlhYTFBjRkdvejlwcFFuT0ZlS1JrLXk4MEoyUHY2N1Y5d0hFMVg4bUFRci1RVHFxdU5EX2hKOFhhRkZrM1NTc09xdFB3X085Y3E0NHNFbUFaQ2RoSm9xdllnWS0ybGl6anJaUEpaeHEyS0pvUkhTVWY3a2FERFNBd3djaTNfb3N4cmdLNllzM210eFVXWVpyZVAxLUwyd1NGcXk2ZEVwbFdaZVJUZFFOLXExRHBuV2cmaD13MWZNWUJwa2xJUjFCWkU2RHFndHRRS2lVRWlLS205aGhaVHVJQ25PZTZJ", + "RequestMethod": "GET", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/8.0.2225.52707", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.26200", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.110" + ] + }, + "RequestBody": "", + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzY5MjItV0VTVENFTlRSQUxVUyIsImpvYkxvY2F0aW9uIjoid2VzdGNlbnRyYWx1cyJ9?api-version=2016-09-01&t=639033182719271234&c=MIIHhzCCBm-gAwIBAgITfAlY2NhYWz_rkiYT0gAACVjY2DANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjUxMDE5MDMwMTUzWhcNMjYwNDE3MDMwMTUzWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALb7q8LgkqS_7Sa915WSEvu_LerzErVZMTTkw7KXLAdnIWMjvrOw1RefK_Xe_cFp1_e2xVZM1Zog0tE-_XlllqRwZapoZJTL14Kmh7C0GvefEv-5GdvOnMy695cBHvQJTv1mqxiuvsmhJdB5__zphMuTvy0lF2K1ceor52XBk_VLEQtBcMhz8UUKVZ2KboqO1b56fjCSzbjn-sv5cQ7zx0_GZYADJbddS7dvpIwmb3QZzHcEcbAec_ouQ-YyxmKTpGa17K6DB_CoquSZ2A0TRHJqBpgeGjL0b652ekPbj9oy-sOOusDnwfN95QPWCJFjmNz1aKdnUhXmx8FU134pOkUCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBSi0lU0HWkl1SHwyRBzQPtbjPmHfTAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACdnVC4tNlyw3EyuiJTFX5692Q_SgsQB7SjH2__G8q1XVJ0GiNSI4NKXoC8rVoxrLDL28sgifuyaEjoA9IYoahBs9l6DzxOxA0fDaBOTteaFuniOzVtW6WubmshP_yDd1pFPJydCOEtgKApCNY8y5eo8GzdatHpMEID7E2ZDrxTnq7PtzLXpoeF0A5W6qhqGypYabh7ugJ5-R8hb1iOlFYy2yvCrBaAW9wwnUPpO3DQRyoxnbzomyTIbrxEJuuaalADYKnu7GVtfL43Srrrx_HEfhy1rsf0ZK9CmJ64NOTHXIRG0kYIl5LhwZVZSEDqBPTAAy9oAm1i5D1jbVw2FPF8&s=G5EPVwk-qNRPxEFhStY47wCfobJOR16dUqWshafhOY9F909_VXgjq5D3LahDNcIpwRW1UY3UAhfQSIHpN-2_KPrNYMT9PDN3UgGzzWqT5lJLyBPwNo2vAudMN05mGQHCaP-ac57irOlbvy08GDOgJBjqwymZUxrblhb4QynmHZfpAYUJLFFHYuGWrUpbg31OkZW5SFmscaaVLslY6HhWq98PxJ0eY-T8wq3brJJupBrnvyRyuFiKWUKvoQ1DUEOc8Ukx5UBdWJ0_to8UIX_sXD4Vs4ViHHo7j70NmUs4jijTkNaqgm8bF6B3h4EzUA7dHxDAVqlRcOHlr9pRNEQ9Cw&h=ElIAszKcMrKrGwlEP2mC2cCj5SHxnwkbgzT_PHSkmuI" + ], + "Retry-After": [ + "15" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "1099" + ], + "x-ms-ratelimit-remaining-subscription-global-reads": [ + "16499" + ], + "x-ms-request-id": [ + "960d5ba8-b381-4b0f-ab1d-ecf52ebbc6b7" + ], + "x-ms-correlation-request-id": [ + "960d5ba8-b381-4b0f-ab1d-ecf52ebbc6b7" + ], + "x-ms-routing-request-id": [ + "EASTUS:20260106T174431Z:960d5ba8-b381-4b0f-ab1d-ecf52ebbc6b7" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Cache": [ + "CONFIG_NOCACHE" + ], + "X-MSEdge-Ref": [ + "Ref A: 3E4E818137B54877AA5592891001EB5A Ref B: MNZ221060609007 Ref C: 2026-01-06T17:44:31Z" + ], + "Date": [ + "Tue, 06 Jan 2026 17:44:31 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzY5MjItV0VTVENFTlRSQUxVUyIsImpvYkxvY2F0aW9uIjoid2VzdGNlbnRyYWx1cyJ9?api-version=2016-09-01&t=639033182719271234&c=MIIHhzCCBm-gAwIBAgITfAlY2NhYWz_rkiYT0gAACVjY2DANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjUxMDE5MDMwMTUzWhcNMjYwNDE3MDMwMTUzWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALb7q8LgkqS_7Sa915WSEvu_LerzErVZMTTkw7KXLAdnIWMjvrOw1RefK_Xe_cFp1_e2xVZM1Zog0tE-_XlllqRwZapoZJTL14Kmh7C0GvefEv-5GdvOnMy695cBHvQJTv1mqxiuvsmhJdB5__zphMuTvy0lF2K1ceor52XBk_VLEQtBcMhz8UUKVZ2KboqO1b56fjCSzbjn-sv5cQ7zx0_GZYADJbddS7dvpIwmb3QZzHcEcbAec_ouQ-YyxmKTpGa17K6DB_CoquSZ2A0TRHJqBpgeGjL0b652ekPbj9oy-sOOusDnwfN95QPWCJFjmNz1aKdnUhXmx8FU134pOkUCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBSi0lU0HWkl1SHwyRBzQPtbjPmHfTAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACdnVC4tNlyw3EyuiJTFX5692Q_SgsQB7SjH2__G8q1XVJ0GiNSI4NKXoC8rVoxrLDL28sgifuyaEjoA9IYoahBs9l6DzxOxA0fDaBOTteaFuniOzVtW6WubmshP_yDd1pFPJydCOEtgKApCNY8y5eo8GzdatHpMEID7E2ZDrxTnq7PtzLXpoeF0A5W6qhqGypYabh7ugJ5-R8hb1iOlFYy2yvCrBaAW9wwnUPpO3DQRyoxnbzomyTIbrxEJuuaalADYKnu7GVtfL43Srrrx_HEfhy1rsf0ZK9CmJ64NOTHXIRG0kYIl5LhwZVZSEDqBPTAAy9oAm1i5D1jbVw2FPF8&s=G5EPVwk-qNRPxEFhStY47wCfobJOR16dUqWshafhOY9F909_VXgjq5D3LahDNcIpwRW1UY3UAhfQSIHpN-2_KPrNYMT9PDN3UgGzzWqT5lJLyBPwNo2vAudMN05mGQHCaP-ac57irOlbvy08GDOgJBjqwymZUxrblhb4QynmHZfpAYUJLFFHYuGWrUpbg31OkZW5SFmscaaVLslY6HhWq98PxJ0eY-T8wq3brJJupBrnvyRyuFiKWUKvoQ1DUEOc8Ukx5UBdWJ0_to8UIX_sXD4Vs4ViHHo7j70NmUs4jijTkNaqgm8bF6B3h4EzUA7dHxDAVqlRcOHlr9pRNEQ9Cw&h=ElIAszKcMrKrGwlEP2mC2cCj5SHxnwkbgzT_PHSkmuI", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYTU0ZDUwMGQtYTZiNS00NGYyLWIwOTAtMjFiMGVmMjRhNGZiL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpZNU1qSXRWMFZUVkVORlRsUlNRVXhWVXlJc0ltcHZZa3h2WTJGMGFXOXVJam9pZDJWemRHTmxiblJ5WVd4MWN5Sjk/YXBpLXZlcnNpb249MjAxNi0wOS0wMSZ0PTYzOTAzMzE4MjcxOTI3MTIzNCZjPU1JSUhoekNDQm0tZ0F3SUJBZ0lUZkFsWTJOaFlXel9ya2lZVDBnQUFDVmpZMkRBTkJna3Foa2lHOXcwQkFRc0ZBREJFTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUjBKTU1STXdFUVlLQ1pJbWlaUHlMR1FCR1JZRFFVMUZNUmd3RmdZRFZRUURFdzlCVFVVZ1NXNW1jbUVnUTBFZ01EVXdIaGNOTWpVeE1ERTVNRE13TVRVeldoY05Nall3TkRFM01ETXdNVFV6V2pCQU1UNHdQQVlEVlFRREV6VmhjM2x1WTI5d1pYSmhkR2x2Ym5OcFoyNXBibWRqWlhKMGFXWnBZMkYwWlM1dFlXNWhaMlZ0Wlc1MExtRjZkWEpsTG1OdmJUQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUxiN3E4TGdrcVNfN1NhOTE1V1NFdnVfTGVyekVyVlpNVFRrdzdLWExBZG5JV01qdnJPdzFSZWZLX1hlX2NGcDFfZTJ4VlpNMVpvZzB0RS1fWGxsbHFSd1phcG9aSlRMMTRLbWg3QzBHdmVmRXYtNUdkdk9uTXk2OTVjQkh2UUpUdjFtcXhpdXZzbWhKZEI1X196cGhNdVR2eTBsRjJLMWNlb3I1MlhCa19WTEVRdEJjTWh6OFVVS1ZaMktib3FPMWI1NmZqQ1N6YmpuLXN2NWNRN3p4MF9HWllBREpiZGRTN2R2cEl3bWIzUVp6SGNFY2JBZWNfb3VRLVl5eG1LVHBHYTE3SzZEQl9Db3F1U1oyQTBUUkhKcUJwZ2VHakwwYjY1MmVrUGJqOW95LXNPT3VzRG53Zk45NVFQV0NKRmptTnoxYUtkblVoWG14OEZVMTM0cE9rVUNBd0VBQWFPQ0JIUXdnZ1J3TUNjR0NTc0dBUVFCZ2pjVkNnUWFNQmd3Q2dZSUt3WUJCUVVIQXdFd0NnWUlLd1lCQlFVSEF3SXdQUVlKS3dZQkJBR0NOeFVIQkRBd0xnWW1Ld1lCQkFHQ054VUlocERqRFlUVnRIaUU4WXMtaFp2ZEZzNmRFb0ZnaGZtUlM0V3NtVFFDQVdRQ0FRY3dnZ0hMQmdnckJnRUZCUWNCQVFTQ0FiMHdnZ0c1TUdNR0NDc0dBUVVGQnpBQ2hsZG9kSFJ3T2k4dlkzSnNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBhVzVtY21FdlEyVnlkSE12UTA4eFVFdEpTVTVVUTBFd01TNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdOUzVqY25Rd1V3WUlLd1lCQlFVSE1BS0dSMmgwZEhBNkx5OWpjbXd4TG1GdFpTNW5ZbXd2WVdsaEwwTlBNVkJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURVdVkzSjBNRk1HQ0NzR0FRVUZCekFDaGtkb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyRnBZUzlEVHpGUVMwbEpUbFJEUVRBeExrRk5SUzVIUWt4ZlFVMUZKVEl3U1c1bWNtRWxNakJEUVNVeU1EQTFMbU55ZERCVEJnZ3JCZ0VGQlFjd0FvWkhhSFIwY0RvdkwyTnliRE11WVcxbExtZGliQzloYVdFdlEwOHhVRXRKU1U1VVEwRXdNUzVCVFVVdVIwSk1YMEZOUlNVeU1FbHVabkpoSlRJd1EwRWxNakF3TlM1amNuUXdVd1lJS3dZQkJRVUhNQUtHUjJoMGRIQTZMeTlqY213MExtRnRaUzVuWW13dllXbGhMME5QTVZCTFNVbE9WRU5CTURFdVFVMUZMa2RDVEY5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EVXVZM0owTUIwR0ExVWREZ1FXQkJTaTBsVTBIV2tsMVNId3lSQnpRUHRialBtSGZUQU9CZ05WSFE4QkFmOEVCQU1DQmFBd2dnRW1CZ05WSFI4RWdnRWRNSUlCR1RDQ0FSV2dnZ0VSb0lJQkRZWV9hSFIwY0RvdkwyTnliQzV0YVdOeWIzTnZablF1WTI5dEwzQnJhV2x1Wm5KaEwwTlNUQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURVdVkzSnNoakZvZEhSd09pOHZZM0pzTVM1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFV1WTNKc2hqRm9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EVXVZM0pzaGpGb2RIUndPaTh2WTNKc015NWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURVdVkzSnNoakZvZEhSd09pOHZZM0pzTkM1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFV1WTNKc01JR2RCZ05WSFNBRWdaVXdnWkl3REFZS0t3WUJCQUdDTjNzQkFUQm1CZ29yQmdFRUFZSTNld0lDTUZnd1ZnWUlLd1lCQlFVSEFnSXdTaDVJQURNQU13QmxBREFBTVFBNUFESUFNUUF0QURRQVpBQTJBRFFBTFFBMEFHWUFPQUJqQUMwQVlRQXdBRFVBTlFBdEFEVUFZZ0JrQUdFQVpnQm1BR1FBTlFCbEFETUFNd0JrTUF3R0Npc0dBUVFCZ2pkN0F3SXdEQVlLS3dZQkJBR0NOM3NFQWpBZkJnTlZIU01FR0RBV2dCUjYxaG1GS0hsc2NYWWVZUGp6Uy0taUJVSVdIVEFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFDZG5WQzR0Tmx5dzNFeXVpSlRGWDU2OTJRX1Nnc1FCN1NqSDJfX0c4cTFYVkowR2lOU0k0TktYb0M4clZveHJMREwyOHNnaWZ1eWFFam9BOUlZb2FoQnM5bDZEenhPeEEwZkRhQk9UdGVhRnVuaU96VnRXNld1Ym1zaFBfeURkMXBGUEp5ZENPRXRnS0FwQ05ZOHk1ZW84R3pkYXRIcE1FSUQ3RTJaRHJ4VG5xN1B0ekxYcG9lRjBBNVc2cWhxR3lwWWFiaDd1Z0o1LVI4aGIxaU9sRll5Mnl2Q3JCYUFXOXd3blVQcE8zRFFSeW94bmJ6b215VElicnhFSnV1YWFsQURZS251N0dWdGZMNDNTcnJyeF9IRWZoeTFyc2YwWks5Q21KNjROT1RIWElSRzBrWUlsNUxod1pWWlNFRHFCUFRBQXk5b0FtMWk1RDFqYlZ3MkZQRjgmcz1HNUVQVndrLXFOUlB4RUZoU3RZNDd3Q2ZvYkpPUjE2ZFVxV3NoYWZoT1k5RjkwOV9WWGdqcTVEM0xhaEROY0lwd1JXMVVZM1VBaGZRU0lIcE4tMl9LUHJOWU1UOVBETjNVZ0d6eldxVDVsSkx5QlB3Tm8ydkF1ZE1OMDVtR1FIQ2FQLWFjNTdpck9sYnZ5MDhHRE9nSkJqcXd5bVpVeHJibGhiNFF5bm1IWmZwQVlVSkxGRkhZdUdXclVwYmczMU9rWlc1U0Ztc2NhYVZMc2xZNkhoV3E5OFB4SjBlWS1UOHdxM2JySkp1cEJybnZ5Unl1RmlLV1VLdm9RMURVRU9jOFVreDVVQmRXSjBfdG84VUlYX3NYRDRWczRWaUhIbzdqNzBObVVzNGppalRrTmFxZ204YkY2QjNoNEV6VUE3ZEh4REFWcWxSY09IbHI5cFJORVE5Q3cmaD1FbElBc3pLY01yS3JHd2xFUDJtQzJjQ2o1U0h4bndrYmd6VF9QSFNrbXVJ", + "RequestMethod": "GET", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/8.0.2225.52707", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.26200", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.110" + ] + }, + "RequestBody": "", + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzY5MjItV0VTVENFTlRSQUxVUyIsImpvYkxvY2F0aW9uIjoid2VzdGNlbnRyYWx1cyJ9?api-version=2016-09-01&t=639033182870804263&c=MIIHhzCCBm-gAwIBAgITfAlbAuHJVGlWt5nvPQAACVsC4TANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjUxMDIwMDYxMjI2WhcNMjYwNDE4MDYxMjI2WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMy2rMZQG9krGl8uVrHhOxWEeSefupCGj4W39OG3hmsgHCdpJoVTYNkhCBBXKDiMPz4qOGTNo9ZuEtdDIgrgURZfB_yqvkFPpluc8G1zPLN-jiYbtj5pMAKuYgLO7iMfbKCCV7GjTrHV_wumSY9mtoHlkCrcXhhzpkJA87IHj7UrwyzONRzDo4k0KGqw1e7uF2ASiU9K59IwNCK5OTyLIUYEniYOtRG3wTnTc5pKlMy2k_Wx_amkYwkngAxaNLr0Ko3_0IuWpgJW3FSQcVUBFthJ7YaPIymOzcBcjMLnTbrKuafUxO7gaqmq92b3sH9sseHWY-yS7f2OUzfvriS2v30CAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBTM1P5CztWwZKGV3-19qUWbS5-_VzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAE_nquBJaTSjdrhuWIvf7jbzVTVN9KtuKhiQNPblrMkYM5uA67arOdlSEKEogtsLLB9GPFPWwmmq9Nsn0hmsMypp1Fgy48ftWQlps41mOpiJEpIQ-Cmtp8thUJDrIiC6wU-9vUJlQqpR5f-tcaLrf5PVBs_XtvDONWbtCozHcF4VUEU9xrXMVNagQrUCUeogmrfJjGO500pGdqUNfY2K8STWDI2u7_ByHN6OpmStYPS6ywL3_zEji1FKMpB1quLdBQzmKwy2YucRyNqBcV3ZdI4XrdPpjBRXPFaQobVujng1uOKkfzAEKgp3eUhTlz4N_EL8OtQJfwvy94HxDT6PZm0&s=PVrwDI2Tjhn3MgkLLXL2EV067lrJd4jUOr2vgtnXGCmoWxF9j2fENYuMsc_2EnVyi5NMDiEZVzrgzjpddp6_7V0PBwfdNZA3eAXnS9MNsf4p2LclW8MELnHMzx9EnDjGEU-cEsivOFt_D7dGGd7vzqx477amQx9qFv-2cv8ZXmvR54tSDrcgzPbVAlZReAEoNCz82VjAc_CPgLSZRz1oztUJbb1nY18iQK88YNiYGT0rXnfJO3dC0XnPATIuE8CG04Cl9nuKmCsFKVroF6_Xo4CWOkecYyuSeUqAbc5K3sBaSQBPsHYD1B6fuZUy3WEAq1GQ0Y7i7DqfW4TlNV-JqA&h=RPXpzrCi3YJ_0ecgHEGFGgAp0YKNvKELzJC2EzzHNa4" + ], + "Retry-After": [ + "15" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "1099" + ], + "x-ms-ratelimit-remaining-subscription-global-reads": [ + "16499" + ], + "x-ms-request-id": [ + "95c8927d-0062-4ea2-8233-2e04e32cda5c" + ], + "x-ms-correlation-request-id": [ + "95c8927d-0062-4ea2-8233-2e04e32cda5c" + ], + "x-ms-routing-request-id": [ + "EASTUS2:20260106T174447Z:95c8927d-0062-4ea2-8233-2e04e32cda5c" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Cache": [ + "CONFIG_NOCACHE" + ], + "X-MSEdge-Ref": [ + "Ref A: 8750A357D42F471D907233EB6C19B011 Ref B: MNZ221060609007 Ref C: 2026-01-06T17:44:46Z" + ], + "Date": [ + "Tue, 06 Jan 2026 17:44:46 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzY5MjItV0VTVENFTlRSQUxVUyIsImpvYkxvY2F0aW9uIjoid2VzdGNlbnRyYWx1cyJ9?api-version=2016-09-01&t=639033182870804263&c=MIIHhzCCBm-gAwIBAgITfAlbAuHJVGlWt5nvPQAACVsC4TANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjUxMDIwMDYxMjI2WhcNMjYwNDE4MDYxMjI2WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMy2rMZQG9krGl8uVrHhOxWEeSefupCGj4W39OG3hmsgHCdpJoVTYNkhCBBXKDiMPz4qOGTNo9ZuEtdDIgrgURZfB_yqvkFPpluc8G1zPLN-jiYbtj5pMAKuYgLO7iMfbKCCV7GjTrHV_wumSY9mtoHlkCrcXhhzpkJA87IHj7UrwyzONRzDo4k0KGqw1e7uF2ASiU9K59IwNCK5OTyLIUYEniYOtRG3wTnTc5pKlMy2k_Wx_amkYwkngAxaNLr0Ko3_0IuWpgJW3FSQcVUBFthJ7YaPIymOzcBcjMLnTbrKuafUxO7gaqmq92b3sH9sseHWY-yS7f2OUzfvriS2v30CAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBTM1P5CztWwZKGV3-19qUWbS5-_VzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAE_nquBJaTSjdrhuWIvf7jbzVTVN9KtuKhiQNPblrMkYM5uA67arOdlSEKEogtsLLB9GPFPWwmmq9Nsn0hmsMypp1Fgy48ftWQlps41mOpiJEpIQ-Cmtp8thUJDrIiC6wU-9vUJlQqpR5f-tcaLrf5PVBs_XtvDONWbtCozHcF4VUEU9xrXMVNagQrUCUeogmrfJjGO500pGdqUNfY2K8STWDI2u7_ByHN6OpmStYPS6ywL3_zEji1FKMpB1quLdBQzmKwy2YucRyNqBcV3ZdI4XrdPpjBRXPFaQobVujng1uOKkfzAEKgp3eUhTlz4N_EL8OtQJfwvy94HxDT6PZm0&s=PVrwDI2Tjhn3MgkLLXL2EV067lrJd4jUOr2vgtnXGCmoWxF9j2fENYuMsc_2EnVyi5NMDiEZVzrgzjpddp6_7V0PBwfdNZA3eAXnS9MNsf4p2LclW8MELnHMzx9EnDjGEU-cEsivOFt_D7dGGd7vzqx477amQx9qFv-2cv8ZXmvR54tSDrcgzPbVAlZReAEoNCz82VjAc_CPgLSZRz1oztUJbb1nY18iQK88YNiYGT0rXnfJO3dC0XnPATIuE8CG04Cl9nuKmCsFKVroF6_Xo4CWOkecYyuSeUqAbc5K3sBaSQBPsHYD1B6fuZUy3WEAq1GQ0Y7i7DqfW4TlNV-JqA&h=RPXpzrCi3YJ_0ecgHEGFGgAp0YKNvKELzJC2EzzHNa4", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYTU0ZDUwMGQtYTZiNS00NGYyLWIwOTAtMjFiMGVmMjRhNGZiL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpZNU1qSXRWMFZUVkVORlRsUlNRVXhWVXlJc0ltcHZZa3h2WTJGMGFXOXVJam9pZDJWemRHTmxiblJ5WVd4MWN5Sjk/YXBpLXZlcnNpb249MjAxNi0wOS0wMSZ0PTYzOTAzMzE4Mjg3MDgwNDI2MyZjPU1JSUhoekNDQm0tZ0F3SUJBZ0lUZkFsYkF1SEpWR2xXdDVudlBRQUFDVnNDNFRBTkJna3Foa2lHOXcwQkFRc0ZBREJFTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUjBKTU1STXdFUVlLQ1pJbWlaUHlMR1FCR1JZRFFVMUZNUmd3RmdZRFZRUURFdzlCVFVVZ1NXNW1jbUVnUTBFZ01EVXdIaGNOTWpVeE1ESXdNRFl4TWpJMldoY05Nall3TkRFNE1EWXhNakkyV2pCQU1UNHdQQVlEVlFRREV6VmhjM2x1WTI5d1pYSmhkR2x2Ym5OcFoyNXBibWRqWlhKMGFXWnBZMkYwWlM1dFlXNWhaMlZ0Wlc1MExtRjZkWEpsTG1OdmJUQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU15MnJNWlFHOWtyR2w4dVZySGhPeFdFZVNlZnVwQ0dqNFczOU9HM2htc2dIQ2RwSm9WVFlOa2hDQkJYS0RpTVB6NHFPR1RObzladUV0ZERJZ3JnVVJaZkJfeXF2a0ZQcGx1YzhHMXpQTE4tamlZYnRqNXBNQUt1WWdMTzdpTWZiS0NDVjdHalRySFZfd3VtU1k5bXRvSGxrQ3JjWGhoenBrSkE4N0lIajdVcnd5ek9OUnpEbzRrMEtHcXcxZTd1RjJBU2lVOUs1OUl3TkNLNU9UeUxJVVlFbmlZT3RSRzN3VG5UYzVwS2xNeTJrX1d4X2Fta1l3a25nQXhhTkxyMEtvM18wSXVXcGdKVzNGU1FjVlVCRnRoSjdZYVBJeW1PemNCY2pNTG5UYnJLdWFmVXhPN2dhcW1xOTJiM3NIOXNzZUhXWS15UzdmMk9VemZ2cmlTMnYzMENBd0VBQWFPQ0JIUXdnZ1J3TUNjR0NTc0dBUVFCZ2pjVkNnUWFNQmd3Q2dZSUt3WUJCUVVIQXdFd0NnWUlLd1lCQlFVSEF3SXdQUVlKS3dZQkJBR0NOeFVIQkRBd0xnWW1Ld1lCQkFHQ054VUlocERqRFlUVnRIaUU4WXMtaFp2ZEZzNmRFb0ZnaGZtUlM0V3NtVFFDQVdRQ0FRY3dnZ0hMQmdnckJnRUZCUWNCQVFTQ0FiMHdnZ0c1TUdNR0NDc0dBUVVGQnpBQ2hsZG9kSFJ3T2k4dlkzSnNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBhVzVtY21FdlEyVnlkSE12UTA4eFVFdEpTVTVVUTBFd01TNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdOUzVqY25Rd1V3WUlLd1lCQlFVSE1BS0dSMmgwZEhBNkx5OWpjbXd4TG1GdFpTNW5ZbXd2WVdsaEwwTlBNVkJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURVdVkzSjBNRk1HQ0NzR0FRVUZCekFDaGtkb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyRnBZUzlEVHpGUVMwbEpUbFJEUVRBeExrRk5SUzVIUWt4ZlFVMUZKVEl3U1c1bWNtRWxNakJEUVNVeU1EQTFMbU55ZERCVEJnZ3JCZ0VGQlFjd0FvWkhhSFIwY0RvdkwyTnliRE11WVcxbExtZGliQzloYVdFdlEwOHhVRXRKU1U1VVEwRXdNUzVCVFVVdVIwSk1YMEZOUlNVeU1FbHVabkpoSlRJd1EwRWxNakF3TlM1amNuUXdVd1lJS3dZQkJRVUhNQUtHUjJoMGRIQTZMeTlqY213MExtRnRaUzVuWW13dllXbGhMME5QTVZCTFNVbE9WRU5CTURFdVFVMUZMa2RDVEY5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EVXVZM0owTUIwR0ExVWREZ1FXQkJUTTFQNUN6dFd3WktHVjMtMTlxVVdiUzUtX1Z6QU9CZ05WSFE4QkFmOEVCQU1DQmFBd2dnRW1CZ05WSFI4RWdnRWRNSUlCR1RDQ0FSV2dnZ0VSb0lJQkRZWV9hSFIwY0RvdkwyTnliQzV0YVdOeWIzTnZablF1WTI5dEwzQnJhV2x1Wm5KaEwwTlNUQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURVdVkzSnNoakZvZEhSd09pOHZZM0pzTVM1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFV1WTNKc2hqRm9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EVXVZM0pzaGpGb2RIUndPaTh2WTNKc015NWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURVdVkzSnNoakZvZEhSd09pOHZZM0pzTkM1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFV1WTNKc01JR2RCZ05WSFNBRWdaVXdnWkl3REFZS0t3WUJCQUdDTjNzQkFUQm1CZ29yQmdFRUFZSTNld0lDTUZnd1ZnWUlLd1lCQlFVSEFnSXdTaDVJQURNQU13QmxBREFBTVFBNUFESUFNUUF0QURRQVpBQTJBRFFBTFFBMEFHWUFPQUJqQUMwQVlRQXdBRFVBTlFBdEFEVUFZZ0JrQUdFQVpnQm1BR1FBTlFCbEFETUFNd0JrTUF3R0Npc0dBUVFCZ2pkN0F3SXdEQVlLS3dZQkJBR0NOM3NFQWpBZkJnTlZIU01FR0RBV2dCUjYxaG1GS0hsc2NYWWVZUGp6Uy0taUJVSVdIVEFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFFX25xdUJKYVRTamRyaHVXSXZmN2pielZUVk45S3R1S2hpUU5QYmxyTWtZTTV1QTY3YXJPZGxTRUtFb2d0c0xMQjlHUEZQV3dtbXE5TnNuMGhtc015cHAxRmd5NDhmdFdRbHBzNDFtT3BpSkVwSVEtQ210cDh0aFVKRHJJaUM2d1UtOXZVSmxRcXBSNWYtdGNhTHJmNVBWQnNfWHR2RE9OV2J0Q296SGNGNFZVRVU5eHJYTVZOYWdRclVDVWVvZ21yZkpqR081MDBwR2RxVU5mWTJLOFNUV0RJMnU3X0J5SE42T3BtU3RZUFM2eXdMM196RWppMUZLTXBCMXF1TGRCUXptS3d5Mll1Y1J5TnFCY1YzWmRJNFhyZFBwakJSWFBGYVFvYlZ1am5nMXVPS2tmekFFS2dwM2VVaFRsejROX0VMOE90UUpmd3Z5OTRIeERUNlBabTAmcz1QVnJ3REkyVGpobjNNZ2tMTFhMMkVWMDY3bHJKZDRqVU9yMnZndG5YR0Ntb1d4RjlqMmZFTll1TXNjXzJFblZ5aTVOTURpRVpWenJnempwZGRwNl83VjBQQndmZE5aQTNlQVhuUzlNTnNmNHAyTGNsVzhNRUxuSE16eDlFbkRqR0VVLWNFc2l2T0Z0X0Q3ZEdHZDd2enF4NDc3YW1ReDlxRnYtMmN2OFpYbXZSNTR0U0RyY2d6UGJWQWxaUmVBRW9OQ3o4MlZqQWNfQ1BnTFNaUnoxb3p0VUpiYjFuWTE4aVFLODhZTmlZR1QwclhuZkpPM2RDMFhuUEFUSXVFOENHMDRDbDludUttQ3NGS1Zyb0Y2X1hvNENXT2tlY1l5dVNlVXFBYmM1SzNzQmFTUUJQc0hZRDFCNmZ1WlV5M1dFQXExR1EwWTdpN0RxZlc0VGxOVi1KcUEmaD1SUFhwenJDaTNZSl8wZWNnSEVHRkdnQXAwWUtOdktFTHpKQzJFenpITmE0", + "RequestMethod": "GET", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/8.0.2225.52707", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.26200", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.110" + ] + }, + "RequestBody": "", + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "1099" + ], + "x-ms-ratelimit-remaining-subscription-global-reads": [ + "16499" + ], + "x-ms-request-id": [ + "6773fef5-9dca-47f9-998f-35f1477578df" + ], + "x-ms-correlation-request-id": [ + "6773fef5-9dca-47f9-998f-35f1477578df" + ], + "x-ms-routing-request-id": [ + "EASTUS2:20260106T174502Z:6773fef5-9dca-47f9-998f-35f1477578df" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Cache": [ + "CONFIG_NOCACHE" + ], + "X-MSEdge-Ref": [ + "Ref A: 52422824887F432486DBFE39FD0DAB1B Ref B: MNZ221060609007 Ref C: 2026-01-06T17:45:02Z" + ], + "Date": [ + "Tue, 06 Jan 2026 17:45:01 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/a54d500d-a6b5-44f2-b090-21b0ef24a4fb/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzY5MjItV0VTVENFTlRSQUxVUyIsImpvYkxvY2F0aW9uIjoid2VzdGNlbnRyYWx1cyJ9?api-version=2016-09-01&t=639033182870804263&c=MIIHhzCCBm-gAwIBAgITfAlbAuHJVGlWt5nvPQAACVsC4TANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjUxMDIwMDYxMjI2WhcNMjYwNDE4MDYxMjI2WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMy2rMZQG9krGl8uVrHhOxWEeSefupCGj4W39OG3hmsgHCdpJoVTYNkhCBBXKDiMPz4qOGTNo9ZuEtdDIgrgURZfB_yqvkFPpluc8G1zPLN-jiYbtj5pMAKuYgLO7iMfbKCCV7GjTrHV_wumSY9mtoHlkCrcXhhzpkJA87IHj7UrwyzONRzDo4k0KGqw1e7uF2ASiU9K59IwNCK5OTyLIUYEniYOtRG3wTnTc5pKlMy2k_Wx_amkYwkngAxaNLr0Ko3_0IuWpgJW3FSQcVUBFthJ7YaPIymOzcBcjMLnTbrKuafUxO7gaqmq92b3sH9sseHWY-yS7f2OUzfvriS2v30CAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBTM1P5CztWwZKGV3-19qUWbS5-_VzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAE_nquBJaTSjdrhuWIvf7jbzVTVN9KtuKhiQNPblrMkYM5uA67arOdlSEKEogtsLLB9GPFPWwmmq9Nsn0hmsMypp1Fgy48ftWQlps41mOpiJEpIQ-Cmtp8thUJDrIiC6wU-9vUJlQqpR5f-tcaLrf5PVBs_XtvDONWbtCozHcF4VUEU9xrXMVNagQrUCUeogmrfJjGO500pGdqUNfY2K8STWDI2u7_ByHN6OpmStYPS6ywL3_zEji1FKMpB1quLdBQzmKwy2YucRyNqBcV3ZdI4XrdPpjBRXPFaQobVujng1uOKkfzAEKgp3eUhTlz4N_EL8OtQJfwvy94HxDT6PZm0&s=PVrwDI2Tjhn3MgkLLXL2EV067lrJd4jUOr2vgtnXGCmoWxF9j2fENYuMsc_2EnVyi5NMDiEZVzrgzjpddp6_7V0PBwfdNZA3eAXnS9MNsf4p2LclW8MELnHMzx9EnDjGEU-cEsivOFt_D7dGGd7vzqx477amQx9qFv-2cv8ZXmvR54tSDrcgzPbVAlZReAEoNCz82VjAc_CPgLSZRz1oztUJbb1nY18iQK88YNiYGT0rXnfJO3dC0XnPATIuE8CG04Cl9nuKmCsFKVroF6_Xo4CWOkecYyuSeUqAbc5K3sBaSQBPsHYD1B6fuZUy3WEAq1GQ0Y7i7DqfW4TlNV-JqA&h=RPXpzrCi3YJ_0ecgHEGFGgAp0YKNvKELzJC2EzzHNa4", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYTU0ZDUwMGQtYTZiNS00NGYyLWIwOTAtMjFiMGVmMjRhNGZiL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpZNU1qSXRWMFZUVkVORlRsUlNRVXhWVXlJc0ltcHZZa3h2WTJGMGFXOXVJam9pZDJWemRHTmxiblJ5WVd4MWN5Sjk/YXBpLXZlcnNpb249MjAxNi0wOS0wMSZ0PTYzOTAzMzE4Mjg3MDgwNDI2MyZjPU1JSUhoekNDQm0tZ0F3SUJBZ0lUZkFsYkF1SEpWR2xXdDVudlBRQUFDVnNDNFRBTkJna3Foa2lHOXcwQkFRc0ZBREJFTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUjBKTU1STXdFUVlLQ1pJbWlaUHlMR1FCR1JZRFFVMUZNUmd3RmdZRFZRUURFdzlCVFVVZ1NXNW1jbUVnUTBFZ01EVXdIaGNOTWpVeE1ESXdNRFl4TWpJMldoY05Nall3TkRFNE1EWXhNakkyV2pCQU1UNHdQQVlEVlFRREV6VmhjM2x1WTI5d1pYSmhkR2x2Ym5OcFoyNXBibWRqWlhKMGFXWnBZMkYwWlM1dFlXNWhaMlZ0Wlc1MExtRjZkWEpsTG1OdmJUQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU15MnJNWlFHOWtyR2w4dVZySGhPeFdFZVNlZnVwQ0dqNFczOU9HM2htc2dIQ2RwSm9WVFlOa2hDQkJYS0RpTVB6NHFPR1RObzladUV0ZERJZ3JnVVJaZkJfeXF2a0ZQcGx1YzhHMXpQTE4tamlZYnRqNXBNQUt1WWdMTzdpTWZiS0NDVjdHalRySFZfd3VtU1k5bXRvSGxrQ3JjWGhoenBrSkE4N0lIajdVcnd5ek9OUnpEbzRrMEtHcXcxZTd1RjJBU2lVOUs1OUl3TkNLNU9UeUxJVVlFbmlZT3RSRzN3VG5UYzVwS2xNeTJrX1d4X2Fta1l3a25nQXhhTkxyMEtvM18wSXVXcGdKVzNGU1FjVlVCRnRoSjdZYVBJeW1PemNCY2pNTG5UYnJLdWFmVXhPN2dhcW1xOTJiM3NIOXNzZUhXWS15UzdmMk9VemZ2cmlTMnYzMENBd0VBQWFPQ0JIUXdnZ1J3TUNjR0NTc0dBUVFCZ2pjVkNnUWFNQmd3Q2dZSUt3WUJCUVVIQXdFd0NnWUlLd1lCQlFVSEF3SXdQUVlKS3dZQkJBR0NOeFVIQkRBd0xnWW1Ld1lCQkFHQ054VUlocERqRFlUVnRIaUU4WXMtaFp2ZEZzNmRFb0ZnaGZtUlM0V3NtVFFDQVdRQ0FRY3dnZ0hMQmdnckJnRUZCUWNCQVFTQ0FiMHdnZ0c1TUdNR0NDc0dBUVVGQnpBQ2hsZG9kSFJ3T2k4dlkzSnNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBhVzVtY21FdlEyVnlkSE12UTA4eFVFdEpTVTVVUTBFd01TNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdOUzVqY25Rd1V3WUlLd1lCQlFVSE1BS0dSMmgwZEhBNkx5OWpjbXd4TG1GdFpTNW5ZbXd2WVdsaEwwTlBNVkJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURVdVkzSjBNRk1HQ0NzR0FRVUZCekFDaGtkb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyRnBZUzlEVHpGUVMwbEpUbFJEUVRBeExrRk5SUzVIUWt4ZlFVMUZKVEl3U1c1bWNtRWxNakJEUVNVeU1EQTFMbU55ZERCVEJnZ3JCZ0VGQlFjd0FvWkhhSFIwY0RvdkwyTnliRE11WVcxbExtZGliQzloYVdFdlEwOHhVRXRKU1U1VVEwRXdNUzVCVFVVdVIwSk1YMEZOUlNVeU1FbHVabkpoSlRJd1EwRWxNakF3TlM1amNuUXdVd1lJS3dZQkJRVUhNQUtHUjJoMGRIQTZMeTlqY213MExtRnRaUzVuWW13dllXbGhMME5QTVZCTFNVbE9WRU5CTURFdVFVMUZMa2RDVEY5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EVXVZM0owTUIwR0ExVWREZ1FXQkJUTTFQNUN6dFd3WktHVjMtMTlxVVdiUzUtX1Z6QU9CZ05WSFE4QkFmOEVCQU1DQmFBd2dnRW1CZ05WSFI4RWdnRWRNSUlCR1RDQ0FSV2dnZ0VSb0lJQkRZWV9hSFIwY0RvdkwyTnliQzV0YVdOeWIzTnZablF1WTI5dEwzQnJhV2x1Wm5KaEwwTlNUQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURVdVkzSnNoakZvZEhSd09pOHZZM0pzTVM1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFV1WTNKc2hqRm9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EVXVZM0pzaGpGb2RIUndPaTh2WTNKc015NWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURVdVkzSnNoakZvZEhSd09pOHZZM0pzTkM1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFV1WTNKc01JR2RCZ05WSFNBRWdaVXdnWkl3REFZS0t3WUJCQUdDTjNzQkFUQm1CZ29yQmdFRUFZSTNld0lDTUZnd1ZnWUlLd1lCQlFVSEFnSXdTaDVJQURNQU13QmxBREFBTVFBNUFESUFNUUF0QURRQVpBQTJBRFFBTFFBMEFHWUFPQUJqQUMwQVlRQXdBRFVBTlFBdEFEVUFZZ0JrQUdFQVpnQm1BR1FBTlFCbEFETUFNd0JrTUF3R0Npc0dBUVFCZ2pkN0F3SXdEQVlLS3dZQkJBR0NOM3NFQWpBZkJnTlZIU01FR0RBV2dCUjYxaG1GS0hsc2NYWWVZUGp6Uy0taUJVSVdIVEFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFFX25xdUJKYVRTamRyaHVXSXZmN2pielZUVk45S3R1S2hpUU5QYmxyTWtZTTV1QTY3YXJPZGxTRUtFb2d0c0xMQjlHUEZQV3dtbXE5TnNuMGhtc015cHAxRmd5NDhmdFdRbHBzNDFtT3BpSkVwSVEtQ210cDh0aFVKRHJJaUM2d1UtOXZVSmxRcXBSNWYtdGNhTHJmNVBWQnNfWHR2RE9OV2J0Q296SGNGNFZVRVU5eHJYTVZOYWdRclVDVWVvZ21yZkpqR081MDBwR2RxVU5mWTJLOFNUV0RJMnU3X0J5SE42T3BtU3RZUFM2eXdMM196RWppMUZLTXBCMXF1TGRCUXptS3d5Mll1Y1J5TnFCY1YzWmRJNFhyZFBwakJSWFBGYVFvYlZ1am5nMXVPS2tmekFFS2dwM2VVaFRsejROX0VMOE90UUpmd3Z5OTRIeERUNlBabTAmcz1QVnJ3REkyVGpobjNNZ2tMTFhMMkVWMDY3bHJKZDRqVU9yMnZndG5YR0Ntb1d4RjlqMmZFTll1TXNjXzJFblZ5aTVOTURpRVpWenJnempwZGRwNl83VjBQQndmZE5aQTNlQVhuUzlNTnNmNHAyTGNsVzhNRUxuSE16eDlFbkRqR0VVLWNFc2l2T0Z0X0Q3ZEdHZDd2enF4NDc3YW1ReDlxRnYtMmN2OFpYbXZSNTR0U0RyY2d6UGJWQWxaUmVBRW9OQ3o4MlZqQWNfQ1BnTFNaUnoxb3p0VUpiYjFuWTE4aVFLODhZTmlZR1QwclhuZkpPM2RDMFhuUEFUSXVFOENHMDRDbDludUttQ3NGS1Zyb0Y2X1hvNENXT2tlY1l5dVNlVXFBYmM1SzNzQmFTUUJQc0hZRDFCNmZ1WlV5M1dFQXExR1EwWTdpN0RxZlc0VGxOVi1KcUEmaD1SUFhwenJDaTNZSl8wZWNnSEVHRkdnQXAwWUtOdktFTHpKQzJFenpITmE0", + "RequestMethod": "GET", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/8.0.2225.52707", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.26200", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.110" + ] + }, + "RequestBody": "", + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "1099" + ], + "x-ms-ratelimit-remaining-subscription-global-reads": [ + "16499" + ], + "x-ms-request-id": [ + "c63cb758-9a39-43e2-9085-2ede8a8b03f1" + ], + "x-ms-correlation-request-id": [ + "c63cb758-9a39-43e2-9085-2ede8a8b03f1" + ], + "x-ms-routing-request-id": [ + "EASTUS:20260106T174502Z:c63cb758-9a39-43e2-9085-2ede8a8b03f1" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Cache": [ + "CONFIG_NOCACHE" + ], + "X-MSEdge-Ref": [ + "Ref A: 3E821BA4C7594088945391AE0CAC6777 Ref B: MNZ221060609007 Ref C: 2026-01-06T17:45:02Z" + ], + "Date": [ + "Tue, 06 Jan 2026 17:45:01 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 200 + } + ], + "Names": { + "Test-VirtualNetworkApplianceCRUD": [ + "ps6922", + "ps4154", + "ps9519" + ] + }, + "Variables": { + "SubscriptionId": "a54d500d-a6b5-44f2-b090-21b0ef24a4fb" + } +} \ No newline at end of file diff --git a/src/Network/Network/Az.Network.psd1 b/src/Network/Network/Az.Network.psd1 index 4bce393b8b52..4113c3c5aa4b 100644 --- a/src/Network/Network/Az.Network.psd1 +++ b/src/Network/Network/Az.Network.psd1 @@ -763,7 +763,10 @@ CmdletsToExport = 'Add-AzApplicationGatewayAuthenticationCertificate', 'Update-AzVirtualRouterPeer', 'Update-AzVirtualWan', 'Update-AzVpnConnection', 'Update-AzVpnGateway', 'Update-AzVpnGatewayNatRule', 'Update-AzVpnServerConfiguration', - 'Update-AzVpnServerConfigurationPolicyGroup', 'Update-AzVpnSite' + 'Update-AzVpnServerConfigurationPolicyGroup', 'Update-AzVpnSite', + 'Get-AzVirtualNetworkAppliance', 'New-AzVirtualNetworkAppliance', + 'Remove-AzVirtualNetworkAppliance', + 'Update-AzVirtualNetworkAppliance' # Variables to export from this module # VariablesToExport = @() @@ -839,4 +842,3 @@ PrivateData = @{ # DefaultCommandPrefix = '' } - diff --git a/src/Network/Network/ChangeLog.md b/src/Network/Network/ChangeLog.md index 4b3964b1de53..2bae3afa26fb 100644 --- a/src/Network/Network/ChangeLog.md +++ b/src/Network/Network/ChangeLog.md @@ -20,6 +20,11 @@ ## Upcoming Release * Added `-IpVersionType` parameter to `New-AzPrivateEndpoint` cmdlet to specify the IP version type for private IPs of the private endpoint. Allowed values are IPv4, IPv6, or DualStack. +* Added new cmdlets for VirtualNetworkAppliance resource: + - `Get-AzVirtualNetworkAppliance`: Get a Virtual Network Appliance resource by name, resource group, or list all. + - `New-AzVirtualNetworkAppliance`: Create a new Virtual Network Appliance resource. + - `Remove-AzVirtualNetworkAppliance`: Remove a Virtual Network Appliance resource. + - `Update-AzVirtualNetworkAppliance`: Update tags on a Virtual Network Appliance resource. ## Version 7.24.0 * Added support for `RecordType` property in `New-AzNetworkWatcherFlowLog` and `Set-AzNetworkWatcherFlowLog` cmdlets. diff --git a/src/Network/Network/Common/NetworkResourceManagerProfile.cs b/src/Network/Network/Common/NetworkResourceManagerProfile.cs index 8daaacdfad3c..04af6bf67c38 100644 --- a/src/Network/Network/Common/NetworkResourceManagerProfile.cs +++ b/src/Network/Network/Common/NetworkResourceManagerProfile.cs @@ -2556,8 +2556,17 @@ private static void Initialize() cfg.CreateMap(); cfg.CreateMap(); cfg.CreateMap(); + + // Virtual Network Appliance + // CNM to MNM + cfg.CreateMap(); + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + cfg.CreateMap(); }); _mapper = config.CreateMapper(); } } -} \ No newline at end of file +} diff --git a/src/Network/Network/Models/PSVirtualNetworkAppliance.cs b/src/Network/Network/Models/PSVirtualNetworkAppliance.cs new file mode 100644 index 000000000000..1356dc23daf1 --- /dev/null +++ b/src/Network/Network/Models/PSVirtualNetworkAppliance.cs @@ -0,0 +1,42 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +namespace Microsoft.Azure.Commands.Network.Models +{ + using System.Collections.Generic; + using Newtonsoft.Json; + + public class PSVirtualNetworkAppliance : PSTopLevelResource + { + public string ProvisioningState { get; set; } + + public string BandwidthInGbps { get; set; } + + public IList IPConfigurations { get; set; } + + public PSSubnet Subnet { get; set; } + + [JsonIgnore] + public string SubnetText + { + get { return JsonConvert.SerializeObject(Subnet, Formatting.Indented, new JsonSerializerSettings() { NullValueHandling = NullValueHandling.Ignore }); } + } + + [JsonIgnore] + public string IPConfigurationsText + { + get { return JsonConvert.SerializeObject(IPConfigurations, Formatting.Indented, new JsonSerializerSettings() { NullValueHandling = NullValueHandling.Ignore }); } + } + } +} diff --git a/src/Network/Network/Models/PSVirtualNetworkApplianceIpConfiguration.cs b/src/Network/Network/Models/PSVirtualNetworkApplianceIpConfiguration.cs new file mode 100644 index 000000000000..4c05ab800b86 --- /dev/null +++ b/src/Network/Network/Models/PSVirtualNetworkApplianceIpConfiguration.cs @@ -0,0 +1,29 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +namespace Microsoft.Azure.Commands.Network.Models +{ + public class PSVirtualNetworkApplianceIpConfiguration : PSChildResource + { + public string ProvisioningState { get; set; } + + public string PrivateIPAddress { get; set; } + + public string PrivateIPAllocationMethod { get; set; } + + public bool? Primary { get; set; } + + public string PrivateIPAddressVersion { get; set; } + } +} diff --git a/src/Network/Network/VirtualNetworkAppliance/GetVirtualNetworkApplianceCommand.cs b/src/Network/Network/VirtualNetworkAppliance/GetVirtualNetworkApplianceCommand.cs new file mode 100644 index 000000000000..c3f3dc275790 --- /dev/null +++ b/src/Network/Network/VirtualNetworkAppliance/GetVirtualNetworkApplianceCommand.cs @@ -0,0 +1,100 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Network.Models; +using Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters; +using Microsoft.Azure.Management.Network; +using Microsoft.Azure.Management.Network.Models; +using Microsoft.Rest.Azure; +using System.Collections.Generic; +using System.Management.Automation; + +namespace Microsoft.Azure.Commands.Network +{ + [Cmdlet("Get", ResourceManager.Common.AzureRMConstants.AzureRMPrefix + "VirtualNetworkAppliance", DefaultParameterSetName = ResourceNameParameterSet, HelpUri = "https://learn.microsoft.com/powershell/module/az.network/get-azvirtualnetworkappliance"), OutputType(typeof(PSVirtualNetworkAppliance))] + public class GetVirtualNetworkApplianceCommand : VirtualNetworkApplianceBaseCmdlet + { + private const string ResourceNameParameterSet = "ResourceNameParameterSet"; + private const string ResourceIdParameterSet = "ResourceIdParameterSet"; + + [Alias("ResourceName")] + [Parameter( + Mandatory = false, + ValueFromPipelineByPropertyName = true, + HelpMessage = "The resource name.", + ParameterSetName = ResourceNameParameterSet)] + [ValidateNotNullOrEmpty] + [ResourceNameCompleter("Microsoft.Network/virtualNetworkAppliances", "ResourceGroupName")] + public virtual string Name { get; set; } + + [Parameter( + Mandatory = false, + ValueFromPipelineByPropertyName = true, + HelpMessage = "The resource group name.", + ParameterSetName = ResourceNameParameterSet)] + [ResourceGroupCompleter] + [ValidateNotNullOrEmpty] + public virtual string ResourceGroupName { get; set; } + + [Parameter( + Mandatory = true, + ValueFromPipelineByPropertyName = true, + HelpMessage = "The resource Id.", + ParameterSetName = ResourceIdParameterSet)] + [ValidateNotNullOrEmpty] + public virtual string ResourceId { get; set; } + + public override void Execute() + { + base.Execute(); + if (ParameterSetName.Equals(ResourceIdParameterSet)) + { + this.ResourceGroupName = GetResourceGroup(this.ResourceId); + this.Name = GetResourceName(this.ResourceId, "Microsoft.Network/virtualNetworkAppliances"); + } + + if (ShouldGetByName(this.ResourceGroupName, this.Name)) + { + var vna = this.GetVirtualNetworkAppliance(this.ResourceGroupName, this.Name); + WriteObject(vna); + } + else + { + IPage vnaPage; + if (ShouldListByResourceGroup(this.ResourceGroupName, this.Name)) + { + vnaPage = this.VirtualNetworkAppliancesClient.List(this.ResourceGroupName); + } + else + { + vnaPage = this.VirtualNetworkAppliancesClient.ListAll(); + } + + // Get all resources by polling on next page link + var vnaList = ListNextLink.GetAllResourcesByPollingNextLink(vnaPage, this.VirtualNetworkAppliancesClient.ListNext); + + var psVnas = new List(); + + foreach (var vna in vnaList) + { + var psVna = this.ToPsVirtualNetworkAppliance(vna); + psVna.ResourceGroupName = NetworkBaseCmdlet.GetResourceGroup(vna.Id); + psVnas.Add(psVna); + } + + WriteObject(TopLevelWildcardFilter(this.ResourceGroupName, this.Name, psVnas), true); + } + } + } +} diff --git a/src/Network/Network/VirtualNetworkAppliance/NewVirtualNetworkApplianceCommand.cs b/src/Network/Network/VirtualNetworkAppliance/NewVirtualNetworkApplianceCommand.cs new file mode 100644 index 000000000000..52dff0e968c6 --- /dev/null +++ b/src/Network/Network/VirtualNetworkAppliance/NewVirtualNetworkApplianceCommand.cs @@ -0,0 +1,124 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Network.Models; +using Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters; +using Microsoft.Azure.Commands.ResourceManager.Common.Tags; +using Microsoft.Azure.Management.Network; +using Microsoft.Azure.Management.Network.Models; +using System; +using System.Collections; +using System.Management.Automation; + +namespace Microsoft.Azure.Commands.Network +{ + [Cmdlet("New", ResourceManager.Common.AzureRMConstants.AzureRMPrefix + "VirtualNetworkAppliance", SupportsShouldProcess = true, DefaultParameterSetName = ResourceNameParameterSet, HelpUri = "https://learn.microsoft.com/powershell/module/az.network/new-azvirtualnetworkappliance"), OutputType(typeof(PSVirtualNetworkAppliance))] + public class NewVirtualNetworkApplianceCommand : VirtualNetworkApplianceBaseCmdlet + { + private const string ResourceNameParameterSet = "ResourceNameParameterSet"; + + [Alias("ResourceName")] + [Parameter( + Mandatory = true, + ValueFromPipelineByPropertyName = true, + HelpMessage = "The resource name.", + ParameterSetName = ResourceNameParameterSet)] + [ValidateNotNullOrEmpty] + public virtual string Name { get; set; } + + [Parameter( + Mandatory = true, + ValueFromPipelineByPropertyName = true, + HelpMessage = "The resource group name.", + ParameterSetName = ResourceNameParameterSet)] + [ResourceGroupCompleter] + [ValidateNotNullOrEmpty] + public virtual string ResourceGroupName { get; set; } + + [Parameter( + Mandatory = true, + ValueFromPipelineByPropertyName = true, + HelpMessage = "The location.")] + [LocationCompleter("Microsoft.Network/virtualNetworkAppliances")] + [ValidateNotNullOrEmpty] + public virtual string Location { get; set; } + + [Parameter( + Mandatory = true, + ValueFromPipelineByPropertyName = true, + HelpMessage = "The subnet resource ID for the Virtual Network Appliance.")] + [ValidateNotNullOrEmpty] + public virtual string SubnetId { get; set; } + + [Parameter( + Mandatory = true, + ValueFromPipelineByPropertyName = true, + HelpMessage = "Bandwidth of the Virtual Network Appliance in Gbps. Valid values are: 50, 100, 200.")] + [ValidateNotNullOrEmpty] + public virtual string Bandwidth { get; set; } + + [Parameter( + Mandatory = false, + ValueFromPipelineByPropertyName = true, + HelpMessage = "A hashtable which represents resource tags.")] + public Hashtable Tag { get; set; } + + [Parameter( + Mandatory = false, + HelpMessage = "Do not ask for confirmation if you want to overwrite a resource")] + public SwitchParameter Force { get; set; } + + [Parameter(Mandatory = false, HelpMessage = "Run cmdlet in the background")] + public SwitchParameter AsJob { get; set; } + + public override void Execute() + { + base.Execute(); + + var present = this.IsVirtualNetworkAppliancePresent(this.ResourceGroupName, this.Name); + ConfirmAction( + Force.IsPresent, + string.Format(Properties.Resources.OverwritingResource, Name), + Properties.Resources.CreatingResourceMessage, + Name, + () => + { + var vna = CreateVirtualNetworkAppliance(); + WriteObject(vna); + }, + () => present); + } + + private PSVirtualNetworkAppliance CreateVirtualNetworkAppliance() + { + var vnaModel = new VirtualNetworkAppliance + { + Location = this.Location, + Tags = TagsConversionHelper.CreateTagDictionary(this.Tag, validate: true), + Subnet = new Subnet { Id = this.SubnetId } + }; + + // Set bandwidth (required) + vnaModel.BandwidthInGbps = this.Bandwidth; + + // Create the resource + var vnaResponse = this.VirtualNetworkAppliancesClient.CreateOrUpdate(this.ResourceGroupName, this.Name, vnaModel); + + var psVna = this.ToPsVirtualNetworkAppliance(vnaResponse); + psVna.ResourceGroupName = this.ResourceGroupName; + + return psVna; + } + } +} diff --git a/src/Network/Network/VirtualNetworkAppliance/RemoveVirtualNetworkApplianceCommand.cs b/src/Network/Network/VirtualNetworkAppliance/RemoveVirtualNetworkApplianceCommand.cs new file mode 100644 index 000000000000..8d1a4fbe6414 --- /dev/null +++ b/src/Network/Network/VirtualNetworkAppliance/RemoveVirtualNetworkApplianceCommand.cs @@ -0,0 +1,105 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Network.Models; +using Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters; +using Microsoft.Azure.Management.Network; +using System.Management.Automation; + +namespace Microsoft.Azure.Commands.Network +{ + [Cmdlet("Remove", ResourceManager.Common.AzureRMConstants.AzureRMPrefix + "VirtualNetworkAppliance", SupportsShouldProcess = true, DefaultParameterSetName = ResourceNameParameterSet, HelpUri = "https://learn.microsoft.com/powershell/module/az.network/remove-azvirtualnetworkappliance"), OutputType(typeof(bool))] + public class RemoveVirtualNetworkApplianceCommand : VirtualNetworkApplianceBaseCmdlet + { + private const string ResourceNameParameterSet = "ResourceNameParameterSet"; + private const string ResourceIdParameterSet = "ResourceIdParameterSet"; + private const string InputObjectParameterSet = "InputObjectParameterSet"; + + [Alias("ResourceName")] + [Parameter( + Mandatory = true, + ValueFromPipelineByPropertyName = true, + HelpMessage = "The resource name.", + ParameterSetName = ResourceNameParameterSet)] + [ValidateNotNullOrEmpty] + [ResourceNameCompleter("Microsoft.Network/virtualNetworkAppliances", "ResourceGroupName")] + public virtual string Name { get; set; } + + [Parameter( + Mandatory = true, + ValueFromPipelineByPropertyName = true, + HelpMessage = "The resource group name.", + ParameterSetName = ResourceNameParameterSet)] + [ResourceGroupCompleter] + [ValidateNotNullOrEmpty] + public virtual string ResourceGroupName { get; set; } + + [Parameter( + Mandatory = true, + ValueFromPipelineByPropertyName = true, + HelpMessage = "The resource Id.", + ParameterSetName = ResourceIdParameterSet)] + [ValidateNotNullOrEmpty] + public virtual string ResourceId { get; set; } + + [Parameter( + Mandatory = true, + ValueFromPipeline = true, + HelpMessage = "The Virtual Network Appliance object.", + ParameterSetName = InputObjectParameterSet)] + [ValidateNotNullOrEmpty] + public PSVirtualNetworkAppliance InputObject { get; set; } + + [Parameter( + Mandatory = false, + HelpMessage = "Do not ask for confirmation.")] + public SwitchParameter Force { get; set; } + + [Parameter(Mandatory = false)] + public SwitchParameter PassThru { get; set; } + + [Parameter(Mandatory = false, HelpMessage = "Run cmdlet in the background")] + public SwitchParameter AsJob { get; set; } + + public override void Execute() + { + base.Execute(); + + if (ParameterSetName.Equals(ResourceIdParameterSet)) + { + this.ResourceGroupName = GetResourceGroup(this.ResourceId); + this.Name = GetResourceName(this.ResourceId, "Microsoft.Network/virtualNetworkAppliances"); + } + else if (ParameterSetName.Equals(InputObjectParameterSet)) + { + this.ResourceGroupName = this.InputObject.ResourceGroupName; + this.Name = this.InputObject.Name; + } + + ConfirmAction( + Force.IsPresent, + string.Format(Properties.Resources.RemovingResource, Name), + Properties.Resources.RemoveResourceMessage, + Name, + () => + { + this.VirtualNetworkAppliancesClient.Delete(this.ResourceGroupName, this.Name); + if (PassThru) + { + WriteObject(true); + } + }); + } + } +} diff --git a/src/Network/Network/VirtualNetworkAppliance/UpdateVirtualNetworkApplianceCommand.cs b/src/Network/Network/VirtualNetworkAppliance/UpdateVirtualNetworkApplianceCommand.cs new file mode 100644 index 000000000000..1515c5dd2fe3 --- /dev/null +++ b/src/Network/Network/VirtualNetworkAppliance/UpdateVirtualNetworkApplianceCommand.cs @@ -0,0 +1,107 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Network.Models; +using Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters; +using Microsoft.Azure.Commands.ResourceManager.Common.Tags; +using Microsoft.Azure.Management.Network; +using Microsoft.Azure.Management.Network.Models; +using System.Collections; +using System.Management.Automation; + +namespace Microsoft.Azure.Commands.Network +{ + [Cmdlet("Update", ResourceManager.Common.AzureRMConstants.AzureRMPrefix + "VirtualNetworkAppliance", SupportsShouldProcess = true, DefaultParameterSetName = ResourceNameParameterSet, HelpUri = "https://learn.microsoft.com/powershell/module/az.network/update-azvirtualnetworkappliance"), OutputType(typeof(PSVirtualNetworkAppliance))] + public class UpdateVirtualNetworkApplianceCommand : VirtualNetworkApplianceBaseCmdlet + { + private const string ResourceNameParameterSet = "ResourceNameParameterSet"; + private const string ResourceIdParameterSet = "ResourceIdParameterSet"; + private const string InputObjectParameterSet = "InputObjectParameterSet"; + + [Alias("ResourceName")] + [Parameter( + Mandatory = true, + ValueFromPipelineByPropertyName = true, + HelpMessage = "The resource name.", + ParameterSetName = ResourceNameParameterSet)] + [ValidateNotNullOrEmpty] + [ResourceNameCompleter("Microsoft.Network/virtualNetworkAppliances", "ResourceGroupName")] + public virtual string Name { get; set; } + + [Parameter( + Mandatory = true, + ValueFromPipelineByPropertyName = true, + HelpMessage = "The resource group name.", + ParameterSetName = ResourceNameParameterSet)] + [ResourceGroupCompleter] + [ValidateNotNullOrEmpty] + public virtual string ResourceGroupName { get; set; } + + [Parameter( + Mandatory = true, + ValueFromPipelineByPropertyName = true, + HelpMessage = "The resource Id.", + ParameterSetName = ResourceIdParameterSet)] + [ValidateNotNullOrEmpty] + public virtual string ResourceId { get; set; } + + [Parameter( + Mandatory = true, + ValueFromPipeline = true, + HelpMessage = "The Virtual Network Appliance object.", + ParameterSetName = InputObjectParameterSet)] + [ValidateNotNullOrEmpty] + public PSVirtualNetworkAppliance InputObject { get; set; } + + [Parameter( + Mandatory = false, + ValueFromPipelineByPropertyName = true, + HelpMessage = "A hashtable which represents resource tags.")] + public Hashtable Tag { get; set; } + + [Parameter(Mandatory = false, HelpMessage = "Run cmdlet in the background")] + public SwitchParameter AsJob { get; set; } + + public override void Execute() + { + base.Execute(); + + if (ParameterSetName.Equals(ResourceIdParameterSet)) + { + this.ResourceGroupName = GetResourceGroup(this.ResourceId); + this.Name = GetResourceName(this.ResourceId, "Microsoft.Network/virtualNetworkAppliances"); + } + else if (ParameterSetName.Equals(InputObjectParameterSet)) + { + this.ResourceGroupName = this.InputObject.ResourceGroupName; + this.Name = this.InputObject.Name; + } + + if (ShouldProcess(Name, "Update Virtual Network Appliance")) + { + var tagsObject = new TagsObject + { + Tags = TagsConversionHelper.CreateTagDictionary(this.Tag, validate: true) + }; + + var vnaResponse = this.VirtualNetworkAppliancesClient.UpdateTags(this.ResourceGroupName, this.Name, tagsObject); + + var psVna = this.ToPsVirtualNetworkAppliance(vnaResponse); + psVna.ResourceGroupName = this.ResourceGroupName; + + WriteObject(psVna); + } + } + } +} diff --git a/src/Network/Network/VirtualNetworkAppliance/VirtualNetworkApplianceBaseCmdlet.cs b/src/Network/Network/VirtualNetworkAppliance/VirtualNetworkApplianceBaseCmdlet.cs new file mode 100644 index 000000000000..54e24be73544 --- /dev/null +++ b/src/Network/Network/VirtualNetworkAppliance/VirtualNetworkApplianceBaseCmdlet.cs @@ -0,0 +1,66 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Network.Models; +using Microsoft.Azure.Commands.ResourceManager.Common.Tags; +using Microsoft.Azure.Management.Network; +using Microsoft.Azure.Management.Network.Models; +using System.Net; + +namespace Microsoft.Azure.Commands.Network +{ + public abstract class VirtualNetworkApplianceBaseCmdlet : NetworkBaseCmdlet + { + public IVirtualNetworkAppliancesOperations VirtualNetworkAppliancesClient + { + get + { + return NetworkClient.NetworkManagementClient.VirtualNetworkAppliances; + } + } + + public bool IsVirtualNetworkAppliancePresent(string resourceGroupName, string name) + { + try + { + GetVirtualNetworkAppliance(resourceGroupName, name); + } + catch (Microsoft.Rest.Azure.CloudException exception) + { + if (exception.Response.StatusCode == HttpStatusCode.NotFound) + { + // Resource is not present + return false; + } + throw; + } + return true; + } + + public PSVirtualNetworkAppliance GetVirtualNetworkAppliance(string resourceGroupName, string name) + { + var vna = this.VirtualNetworkAppliancesClient.Get(resourceGroupName, name); + var psVna = ToPsVirtualNetworkAppliance(vna); + psVna.ResourceGroupName = resourceGroupName; + return psVna; + } + + public PSVirtualNetworkAppliance ToPsVirtualNetworkAppliance(VirtualNetworkAppliance vna) + { + var psVna = NetworkResourceManagerProfile.Mapper.Map(vna); + psVna.Tag = TagsConversionHelper.CreateTagHashtable(vna.Tags); + return psVna; + } + } +} diff --git a/src/Network/Network/help/Az.NetworkCmdlet.Design.md b/src/Network/Network/help/Az.NetworkCmdlet.Design.md new file mode 100644 index 000000000000..3da8953e8272 --- /dev/null +++ b/src/Network/Network/help/Az.NetworkCmdlet.Design.md @@ -0,0 +1,46565 @@ +#### New-AzVirtualNetworkAppliance + +#### SYNOPSIS +{{ Fill in the Synopsis }} + +#### SYNTAX + +```powershell +New-AzVirtualNetworkAppliance -Name -ResourceGroupName -Location -SubnetId + [-BandwidthInGbps ] [-Tag ] [-Force] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +PS C:\> {{ Add example code here }} +``` + +{{ Add example description here }} + + +#### Get-AzVirtualNetworkAppliance + +#### SYNOPSIS +{{ Fill in the Synopsis }} + +#### SYNTAX + ++ ResourceNameParameterSet (Default) +```powershell +Get-AzVirtualNetworkAppliance [-Name ] [-ResourceGroupName ] + [-DefaultProfile ] [] +``` + ++ ResourceIdParameterSet +```powershell +Get-AzVirtualNetworkAppliance -ResourceId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +PS C:\> {{ Add example code here }} +``` + +{{ Add example description here }} + + +#### Remove-AzVirtualNetworkAppliance + +#### SYNOPSIS +{{ Fill in the Synopsis }} + +#### SYNTAX + ++ ResourceNameParameterSet (Default) +```powershell +Remove-AzVirtualNetworkAppliance -Name -ResourceGroupName [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + ++ ResourceIdParameterSet +```powershell +Remove-AzVirtualNetworkAppliance -ResourceId [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + ++ InputObjectParameterSet +```powershell +Remove-AzVirtualNetworkAppliance -InputObject [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +PS C:\> {{ Add example code here }} +``` + +{{ Add example description here }} + + +#### Update-AzVirtualNetworkAppliance + +#### SYNOPSIS +{{ Fill in the Synopsis }} + +#### SYNTAX + ++ ResourceNameParameterSet (Default) +```powershell +Update-AzVirtualNetworkAppliance -Name -ResourceGroupName [-Tag ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + ++ ResourceIdParameterSet +```powershell +Update-AzVirtualNetworkAppliance -ResourceId [-Tag ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + ++ InputObjectParameterSet +```powershell +Update-AzVirtualNetworkAppliance -InputObject [-Tag ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +PS C:\> {{ Add example code here }} +``` + +{{ Add example description here }} + + +#### Get-AzAllVirtualNetworkGatewayRadiusServerSecret + +#### SYNOPSIS +Lists the Radius servers and corresponding radius secrets set on VirtualNetworkGateway PointToSite VpnClientConfiguration. + +#### SYNTAX + +```powershell +Get-AzAllVirtualNetworkGatewayRadiusServerSecret -Name -ResourceGroupName + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzAllVirtualNetworkGatewayRadiusServerSecret -ResourceGroupName resourceGroup -Name gatewayName +``` + +```output +RadiusServerAddress : 1.1.1.1 +RadiusServerSecret : **** + +RadiusServerAddress : 2.2.2.2 +RadiusServerSecret : **** +``` + +For the Azure virtual network gateway named gatewayname in resource group resourceGroup, retrieves the list of Radius servers and corresponding radius secrets set on VpnClientConfiguration. +The Azure virtual network gateway in this case has two radius servers set(1.1.1.1,2.2.2.2), and it returns set corresponding radius secrets as well. + + +#### Get-AzAllVpnServerConfigurationRadiusServerSecret + +#### SYNOPSIS +Lists the Radius servers and corresponding radius secrets set on VpnServerConfiguration. + +#### SYNTAX + +```powershell +Get-AzAllVpnServerConfigurationRadiusServerSecret -Name -ResourceGroupName + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzAllVpnServerConfigurationRadiusServerSecret -ResourceGroupName resourceGroup -Name vpnServerConfigName +``` + +```output +RadiusServerAddress : 1.1.1.1 +RadiusServerSecret : **** + +RadiusServerAddress : 2.2.2.2 +RadiusServerSecret : **** +``` + +For the VpnServerConfiguration named vpnServerConfigName in resource group resourceGroup, retrieves the list of Radius servers and corresponding radius secrets set. +The vpnServerConfigName in this case has two radius servers set(1.1.1.1,2.2.2.2), and it returns set corresponding radius secrets as well. + + +#### New-AzApplicationGateway + +#### SYNOPSIS +Creates an application gateway. + +#### SYNTAX + ++ IdentityByUserAssignedIdentityId (Default) +```powershell +New-AzApplicationGateway -Name -ResourceGroupName -Location + -Sku [-SslPolicy ] + -GatewayIPConfigurations + [-SslCertificates ] + [-AuthenticationCertificates ] + [-TrustedRootCertificate ] + [-TrustedClientCertificates ] + [-FrontendIPConfigurations ] + -FrontendPorts [-Probes ] + -BackendAddressPools + [-BackendHttpSettingsCollection ] + [-BackendSettingsCollection ] + [-SslProfiles ] [-HttpListeners ] + [-Listeners ] [-UrlPathMaps ] + [-RequestRoutingRules ] + [-RoutingRules ] [-RewriteRuleSet ] + [-RedirectConfigurations ] + [-WebApplicationFirewallConfiguration ] + [-AutoscaleConfiguration ] [-EnableHttp2] [-EnableFIPS] + [-EnableRequestBuffering ] [-EnableResponseBuffering ] [-ForceFirewallPolicyAssociation] + [-Zone ] [-Tag ] [-UserAssignedIdentityId ] [-Force] [-AsJob] + [-CustomErrorConfiguration ] + [-PrivateLinkConfiguration ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByResourceId +```powershell +New-AzApplicationGateway -Name -ResourceGroupName -Location + -Sku [-SslPolicy ] + -GatewayIPConfigurations + [-SslCertificates ] + [-AuthenticationCertificates ] + [-TrustedRootCertificate ] + [-TrustedClientCertificates ] + [-FrontendIPConfigurations ] + -FrontendPorts [-Probes ] + -BackendAddressPools + [-BackendHttpSettingsCollection ] + [-BackendSettingsCollection ] + [-SslProfiles ] [-HttpListeners ] + [-Listeners ] [-UrlPathMaps ] + [-RequestRoutingRules ] + [-RoutingRules ] [-RewriteRuleSet ] + [-RedirectConfigurations ] + [-WebApplicationFirewallConfiguration ] + [-FirewallPolicyId ] [-AutoscaleConfiguration ] + [-EnableHttp2] [-EnableFIPS] [-EnableRequestBuffering ] [-EnableResponseBuffering ] + [-ForceFirewallPolicyAssociation] [-Zone ] [-Tag ] [-Force] [-AsJob] + [-CustomErrorConfiguration ] + [-PrivateLinkConfiguration ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByResource +```powershell +New-AzApplicationGateway -Name -ResourceGroupName -Location + -Sku [-SslPolicy ] + -GatewayIPConfigurations + [-SslCertificates ] + [-AuthenticationCertificates ] + [-TrustedRootCertificate ] + [-TrustedClientCertificates ] + [-FrontendIPConfigurations ] + -FrontendPorts [-Probes ] + -BackendAddressPools + [-BackendHttpSettingsCollection ] + [-BackendSettingsCollection ] + [-SslProfiles ] [-HttpListeners ] + [-Listeners ] [-UrlPathMaps ] + [-RequestRoutingRules ] + [-RoutingRules ] [-RewriteRuleSet ] + [-RedirectConfigurations ] + [-WebApplicationFirewallConfiguration ] + [-FirewallPolicy ] + [-AutoscaleConfiguration ] [-EnableHttp2] [-EnableFIPS] + [-EnableRequestBuffering ] [-EnableResponseBuffering ] [-ForceFirewallPolicyAssociation] + [-Zone ] [-Tag ] [-Force] [-AsJob] + [-CustomErrorConfiguration ] + [-PrivateLinkConfiguration ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ IdentityByIdentityObject +```powershell +New-AzApplicationGateway -Name -ResourceGroupName -Location + -Sku [-SslPolicy ] + -GatewayIPConfigurations + [-SslCertificates ] + [-AuthenticationCertificates ] + [-TrustedRootCertificate ] + [-TrustedClientCertificates ] + [-FrontendIPConfigurations ] + -FrontendPorts [-Probes ] + -BackendAddressPools + [-BackendHttpSettingsCollection ] + [-BackendSettingsCollection ] + [-SslProfiles ] [-HttpListeners ] + [-Listeners ] [-UrlPathMaps ] + [-RequestRoutingRules ] + [-RoutingRules ] [-RewriteRuleSet ] + [-RedirectConfigurations ] + [-WebApplicationFirewallConfiguration ] + [-AutoscaleConfiguration ] [-EnableHttp2] [-EnableFIPS] + [-EnableRequestBuffering ] [-EnableResponseBuffering ] [-ForceFirewallPolicyAssociation] + [-Zone ] [-Tag ] -Identity [-Force] [-AsJob] + [-CustomErrorConfiguration ] + [-PrivateLinkConfiguration ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Create an application gateway +```powershell +$ResourceGroup = New-AzResourceGroup -Name "ResourceGroup01" -Location "West US" -Tag @{Name = "Department"; Value = "Marketing"} +$Subnet = New-AzVirtualNetworkSubnetConfig -Name "Subnet01" -AddressPrefix 10.0.0.0/24 +$VNet = New-AzVirtualNetwork -Name "VNet01" -ResourceGroupName "ResourceGroup01" -Location "West US" -AddressPrefix 10.0.0.0/16 -Subnet $Subnet +$VNet = Get-AzVirtualNetwork -Name "VNet01" -ResourceGroupName "ResourceGroup01" +$Subnet = Get-AzVirtualNetworkSubnetConfig -Name "Subnet01" -VirtualNetwork $VNet +$GatewayIPconfig = New-AzApplicationGatewayIPConfiguration -Name "GatewayIp01" -Subnet $Subnet +$Pool = New-AzApplicationGatewayBackendAddressPool -Name "Pool01" -BackendIPAddresses 10.10.10.1, 10.10.10.2, 10.10.10.3 +$PoolSetting = New-AzApplicationGatewayBackendHttpSetting -Name "PoolSetting01" -Port 80 -Protocol "Http" -CookieBasedAffinity "Disabled" +$FrontEndPort = New-AzApplicationGatewayFrontendPort -Name "FrontEndPort01" -Port 80 +#### Create a public IP address +$PublicIp = New-AzPublicIpAddress -ResourceGroupName "ResourceGroup01" -Name "PublicIpName01" -Location "West US" -AllocationMethod "Dynamic" +$FrontEndIpConfig = New-AzApplicationGatewayFrontendIPConfig -Name "FrontEndConfig01" -PublicIPAddress $PublicIp +$Listener = New-AzApplicationGatewayHttpListener -Name "ListenerName01" -Protocol "Http" -FrontendIpConfiguration $FrontEndIpConfig -FrontendPort $FrontEndPort +$Rule = New-AzApplicationGatewayRequestRoutingRule -Name "Rule01" -RuleType basic -BackendHttpSettings $PoolSetting -HttpListener $Listener -BackendAddressPool $Pool +$Sku = New-AzApplicationGatewaySku -Name "Standard_Small" -Tier Standard -Capacity 2 +$Gateway = New-AzApplicationGateway -Name "AppGateway01" -ResourceGroupName "ResourceGroup01" -Location "West US" -BackendAddressPools $Pool -BackendHttpSettingsCollection $PoolSetting -FrontendIpConfigurations $FrontEndIpConfig -GatewayIpConfigurations $GatewayIpConfig -FrontendPorts $FrontEndPort -HttpListeners $Listener -RequestRoutingRules $Rule -Sku $Sku +``` + +The following example creates an application gateway by first creating a resource group and a +virtual network, as well as the following: +- A back-end server pool +- Back-end server pool settings +- Front-end ports +- Front-end IP addresses +- A request routing rule +These four commands create a virtual network. +The first command creates a subnet configuration. +The second command creates a virtual network. +The third command verifies the subnet configuration and the fourth command verifies that the virtual network is created successfully. +The following commands create the application gateway. +The first command creates an IP configuration named GatewayIp01 for the subnet created previously. +The second command creates a back-end server pool named Pool01 with a list of back-end IP addresses and stores the pool in the $Pool variable. +The third command creates the settings for the back-end server pool and stores the settings in the $PoolSetting variable. +The forth command creates a front-end port on port 80, names it FrontEndPort01, and stores the port in the $FrontEndPort variable. +The fifth command creates a public IP address by using New-AzPublicIpAddress. +The sixth command creates a front-end IP configuration using $PublicIp, names it FrontEndPortConfig01, and stores it in the $FrontEndIpConfig variable. +The seventh command creates a listener using the previously created $FrontEndIpConfig $FrontEndPort. +The eighth command creates a rule for the listener. +The ninth command sets the SKU. +The tenth command creates the gateway using the objects set by the previous commands. + ++ Example 2: Create an application gateway with UserAssigned Identity +```powershell +$ResourceGroup = New-AzResourceGroup -Name "ResourceGroup01" -Location "West US" -Tag @{Name = "Department"; Value = "Marketing"} +$Subnet = New-AzVirtualNetworkSubnetConfig -Name "Subnet01" -AddressPrefix 10.0.0.0/24 +$VNet = New-AzVirtualNetwork -Name "VNet01" -ResourceGroupName "ResourceGroup01" -Location "West US" -AddressPrefix 10.0.0.0/16 -Subnet $Subnet +$VNet = Get-AzVirtualNetwork -Name "VNet01" -ResourceGroupName "ResourceGroup01" +$Subnet = Get-AzVirtualNetworkSubnetConfig -Name $Subnet01 -VirtualNetwork $VNet +$GatewayIPconfig = New-AzApplicationGatewayIPConfiguration -Name "GatewayIp01" -Subnet $Subnet +$Pool = New-AzApplicationGatewayBackendAddressPool -Name "Pool01" -BackendIPAddresses 10.10.10.1, 10.10.10.2, 10.10.10.3 +$PoolSetting = New-AzApplicationGatewayBackendHttpSetting -Name "PoolSetting01" -Port 80 -Protocol "Http" -CookieBasedAffinity "Disabled" +$FrontEndPort = New-AzApplicationGatewayFrontendPort -Name "FrontEndPort01" -Port 80 +#### Create a public IP address +$PublicIp = New-AzPublicIpAddress -ResourceGroupName "ResourceGroup01" -Name "PublicIpName01" -Location "West US" -AllocationMethod "Dynamic" +$FrontEndIpConfig = New-AzApplicationGatewayFrontendIPConfig -Name "FrontEndConfig01" -PublicIPAddress $PublicIp +$Listener = New-AzApplicationGatewayHttpListener -Name "ListenerName01" -Protocol "Http" -FrontendIpConfiguration $FrontEndIpConfig -FrontendPort $FrontEndPort +$Rule = New-AzApplicationGatewayRequestRoutingRule -Name "Rule01" -RuleType basic -BackendHttpSettings $PoolSetting -HttpListener $Listener -BackendAddressPool $Pool +$Sku = New-AzApplicationGatewaySku -Name "Standard_Small" -Tier Standard -Capacity 2 +$Identity = New-AzUserAssignedIdentity -Name "Identity01" -ResourceGroupName "ResourceGroup01" -Location "West US" +$AppgwIdentity = New-AzApplicationGatewayIdentity -UserAssignedIdentity $Identity.Id +$Gateway = New-AzApplicationGateway -Name "AppGateway01" -ResourceGroupName "ResourceGroup01" -Location "West US" -Identity $AppgwIdentity -BackendAddressPools $Pool -BackendHttpSettingsCollection $PoolSetting -FrontendIpConfigurations $FrontEndIpConfig -GatewayIpConfigurations $GatewayIpConfig -FrontendPorts $FrontEndPort -HttpListeners $Listener -RequestRoutingRules $Rule -Sku $Sku +``` + + +#### Get-AzApplicationGateway + +#### SYNOPSIS +Gets an application gateway. + +#### SYNTAX + +```powershell +Get-AzApplicationGateway [-Name ] [-ResourceGroupName ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Get a specified application gateway +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +``` + +```output +Sku : Microsoft.Azure.Commands.Network.Models.PSApplicationGatewaySku +SslPolicy : +GatewayIPConfigurations : {appGatewayFrontendIP} +AuthenticationCertificates : {} +SslCertificates : {} +TrustedRootCertificates : {} +FrontendIPConfigurations : {appGatewayFrontendIP} +FrontendPorts : {appGatewayFrontendPort} +Probes : {} +BackendAddressPools : {appGatewayBackendPool} +BackendHttpSettingsCollection : {appGatewayBackendHttpSettings} +HttpListeners : {appGatewayHttpListener} +UrlPathMaps : {} +RequestRoutingRules : {rule1} +RewriteRuleSets : {} +RedirectConfigurations : {} +WebApplicationFirewallConfiguration : +AutoscaleConfiguration : +CustomErrorConfigurations : {} +EnableHttp2 : +EnableFips : +ForceFirewallPolicyAssociation : +Zones : {} +OperationalState : Running +ProvisioningState : Succeeded +Identity : +DefaultPredefinedSslPolicy : AppGwSslPolicy20150501 +GatewayIpConfigurationsText : [] +AuthenticationCertificatesText : [] +SslCertificatesText : [] +FrontendIpConfigurationsText : [] +FrontendPortsText : [] +BackendAddressPoolsText : [] +BackendHttpSettingsCollectionText : [] +HttpListenersText : [] +RewriteRuleSetsText : [] +RequestRoutingRulesText : [] +ProbesText : [] +UrlPathMapsText : [] +IdentityText : null +SslPolicyText : null +ResourceGroupName : tjp-rg +Location : westus +ResourceGuid : 00000000-0000-0000-0000-000000000000 +Type : Microsoft.Network/applicationGateways +Tag : {} +TagsTable : +Name : ApplicationGateway01 +Etag : W/"00000000-0000-0000-0000-000000000000" +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ResourceGroup01/provide + rs/Microsoft.Network/applicationGateways/ApplicationGateway01 +``` + +This command gets the application gateway named ApplicationGateway01 that belongs to the resource group named ResourceGroup01 and stores it in the $AppGw variable. + ++ Example 2: Get a list of application gateways in a resource group +```powershell +$AppGwList = Get-AzApplicationGateway -ResourceGroupName "ResourceGroup01" +``` + +```output +Sku : Microsoft.Azure.Commands.Network.Models.PSApplicationGatewaySku +SslPolicy : +GatewayIPConfigurations : {appGatewayFrontendIP} +AuthenticationCertificates : {} +SslCertificates : {} +TrustedRootCertificates : {} +FrontendIPConfigurations : {appGatewayFrontendIP} +FrontendPorts : {appGatewayFrontendPort} +Probes : {} +BackendAddressPools : {appGatewayBackendPool} +BackendHttpSettingsCollection : {appGatewayBackendHttpSettings} +HttpListeners : {appGatewayHttpListener} +UrlPathMaps : {} +RequestRoutingRules : {rule1} +RewriteRuleSets : {} +RedirectConfigurations : {} +WebApplicationFirewallConfiguration : +AutoscaleConfiguration : +CustomErrorConfigurations : {} +EnableHttp2 : +EnableFips : +ForceFirewallPolicyAssociation : +Zones : {} +OperationalState : Running +ProvisioningState : Succeeded +Identity : +DefaultPredefinedSslPolicy : AppGwSslPolicy20150501 +GatewayIpConfigurationsText : [] +AuthenticationCertificatesText : [] +SslCertificatesText : [] +FrontendIpConfigurationsText : [] +FrontendPortsText : [] +BackendAddressPoolsText : [] +BackendHttpSettingsCollectionText : [] +HttpListenersText : [] +RewriteRuleSetsText : [] +RequestRoutingRulesText : [] +ProbesText : [] +UrlPathMapsText : [] +IdentityText : null +SslPolicyText : null +ResourceGroupName : tjp-rg +Location : westus +ResourceGuid : 00000000-0000-0000-0000-000000000000 +Type : Microsoft.Network/applicationGateways +Tag : {} +TagsTable : +Name : ApplicationGateway01 +Etag : W/"00000000-0000-0000-0000-000000000000" +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ResourceGroup01/provide + rs/Microsoft.Network/applicationGateways/ApplicationGateway01 +``` + +This command gets a list of all the application gateways in the resource group named ResourceGroup01 and stores it in the $AppGwList variable. + ++ Example 3: Get a list of application gateways in a subscription +```powershell +$AppGwList = Get-AzApplicationGateway +``` + +```output +Sku : Microsoft.Azure.Commands.Network.Models.PSApplicationGatewaySku +SslPolicy : +GatewayIPConfigurations : {appGatewayFrontendIP} +AuthenticationCertificates : {} +SslCertificates : {} +TrustedRootCertificates : {} +FrontendIPConfigurations : {appGatewayFrontendIP} +FrontendPorts : {appGatewayFrontendPort} +Probes : {} +BackendAddressPools : {appGatewayBackendPool} +BackendHttpSettingsCollection : {appGatewayBackendHttpSettings} +HttpListeners : {appGatewayHttpListener} +UrlPathMaps : {} +RequestRoutingRules : {rule1} +RewriteRuleSets : {} +RedirectConfigurations : {} +WebApplicationFirewallConfiguration : +AutoscaleConfiguration : +CustomErrorConfigurations : {} +EnableHttp2 : +EnableFips : +ForceFirewallPolicyAssociation : +Zones : {} +OperationalState : Running +ProvisioningState : Succeeded +Identity : +DefaultPredefinedSslPolicy : AppGwSslPolicy20150501 +GatewayIpConfigurationsText : [] +AuthenticationCertificatesText : [] +SslCertificatesText : [] +FrontendIpConfigurationsText : [] +FrontendPortsText : [] +BackendAddressPoolsText : [] +BackendHttpSettingsCollectionText : [] +HttpListenersText : [] +RewriteRuleSetsText : [] +RequestRoutingRulesText : [] +ProbesText : [] +UrlPathMapsText : [] +IdentityText : null +SslPolicyText : null +ResourceGroupName : tjp-rg +Location : westus +ResourceGuid : 00000000-0000-0000-0000-000000000000 +Type : Microsoft.Network/applicationGateways +Tag : {} +TagsTable : +Name : ApplicationGateway01 +Etag : W/"00000000-0000-0000-0000-000000000000" +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ResourceGroup01/provide + rs/Microsoft.Network/applicationGateways/ApplicationGateway01 +``` + +This command gets a list of all the application gateways in the subscription and stores it in the $AppGwList variable. + ++ Example 4: Get a list of application gateways in a subscription using filtering +```powershell +$AppGwList = Get-AzApplicationGateway -Name ApplicationGateway* +``` + +```output +Sku : Microsoft.Azure.Commands.Network.Models.PSApplicationGatewaySku +SslPolicy : +GatewayIPConfigurations : {appGatewayFrontendIP} +AuthenticationCertificates : {} +SslCertificates : {} +TrustedRootCertificates : {} +FrontendIPConfigurations : {appGatewayFrontendIP} +FrontendPorts : {appGatewayFrontendPort} +Probes : {} +BackendAddressPools : {appGatewayBackendPool} +BackendHttpSettingsCollection : {appGatewayBackendHttpSettings} +HttpListeners : {appGatewayHttpListener} +UrlPathMaps : {} +RequestRoutingRules : {rule1} +RewriteRuleSets : {} +RedirectConfigurations : {} +WebApplicationFirewallConfiguration : +AutoscaleConfiguration : +CustomErrorConfigurations : {} +EnableHttp2 : +EnableFips : +ForceFirewallPolicyAssociation : +Zones : {} +OperationalState : Running +ProvisioningState : Succeeded +Identity : +DefaultPredefinedSslPolicy : AppGwSslPolicy20150501 +GatewayIpConfigurationsText : [] +AuthenticationCertificatesText : [] +SslCertificatesText : [] +FrontendIpConfigurationsText : [] +FrontendPortsText : [] +BackendAddressPoolsText : [] +BackendHttpSettingsCollectionText : [] +HttpListenersText : [] +RewriteRuleSetsText : [] +RequestRoutingRulesText : [] +ProbesText : [] +UrlPathMapsText : [] +IdentityText : null +SslPolicyText : null +ResourceGroupName : tjp-rg +Location : westus +ResourceGuid : 00000000-0000-0000-0000-000000000000 +Type : Microsoft.Network/applicationGateways +Tag : {} +TagsTable : +Name : ApplicationGateway01 +Etag : W/"00000000-0000-0000-0000-000000000000" +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ResourceGroup01/provide + rs/Microsoft.Network/applicationGateways/ApplicationGateway01 +``` + +This command gets a list of all the application gateways in the subscription that start with "ApplicationGateway01" and stores it in the $AppGwList variable. + + +#### Remove-AzApplicationGateway + +#### SYNOPSIS +Removes an application gateway. + +#### SYNTAX + +```powershell +Remove-AzApplicationGateway -Name -ResourceGroupName [-Force] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Remove a specified application gateway +```powershell +Remove-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +``` + +This command removes the application gateway named ApplicationGateway01 in the resource group named ResourceGroup01. + + +#### Set-AzApplicationGateway + +#### SYNOPSIS +Updates an application gateway. + +#### SYNTAX + +```powershell +Set-AzApplicationGateway -ApplicationGateway [-AsJob] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Update an application gateway +```powershell +$AppGw = Get-AzApplicationGateway -Name Test -ResourceGroupName Appgwtest +$AppGw.Tag = @{"key"="value"} +$UpdatedAppGw = Set-AzApplicationGateway -ApplicationGateway $AppGw +``` + +These commands update the application gateway with settings in the $AppGw variable and stores the updated gateway in the $UpdatedAppGw variable. + + +#### Start-AzApplicationGateway + +#### SYNOPSIS +Starts an application gateway. + +#### SYNTAX + +```powershell +Start-AzApplicationGateway -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example1: Start an application gateway +```powershell +$AppGw = Get-AzApplicationGateway -Name Test -ResourceGroupName Appgwtest +Start-AzApplicationGateway -ApplicationGateway $AppGw +``` + +This command starts the application gateway stored in the $AppGw variable. + + +#### Stop-AzApplicationGateway + +#### SYNOPSIS +Stops an application gateway + +#### SYNTAX + +```powershell +Stop-AzApplicationGateway -ApplicationGateway [-AsJob] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Stop an application gateway +```powershell +$AppGw = Get-AzApplicationGateway -Name Test -ResourceGroupName Appgwtest +Stop-AzApplicationGateway -ApplicationGateway $AppGw +``` + +These commands set the $AppGw variable to an application gateway and then stops the application gateway. + + +#### New-AzApplicationGatewayAuthenticationCertificate + +#### SYNOPSIS +Creates an authentication certificate for an application gateway. + +#### SYNTAX + +```powershell +New-AzApplicationGatewayAuthenticationCertificate -Name -CertificateFile + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Create an authentication certificate +```powershell +$cert = New-AzApplicationGatewayAuthenticationCertificate -Name "cert01" -CertificateFile "C:\cert.cer" +``` + +The first command creates authentication certificate named cert01. + + +#### Add-AzApplicationGatewayAuthenticationCertificate + +#### SYNOPSIS +Adds an authentication certificate to an application gateway. + +#### SYNTAX + +```powershell +Add-AzApplicationGatewayAuthenticationCertificate -ApplicationGateway -Name + -CertificateFile [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Add authentication certificate to an application gateway +```powershell +$appgw = Get-AzApplicationGateway -ResourceGroupName "rg" -Name "appGwName" +$appgw = Add-AzApplicationGatewayAuthenticationCertificate -ApplicationGateway $appgw -Name "cert01" -CertificateFile "C:\cert.cer" +$appgw = Set-AzApplicationGateway -ApplicationGateway $appgw +``` + +The first command gets an application gateway named appGwName and stores it in $appgw variable. +The second command adds authentication certificate named cert01 to the application gateway. +The third command updates the application gateway. + + +#### Get-AzApplicationGatewayAuthenticationCertificate + +#### SYNOPSIS +Gets an authentication certificate for an application gateway. + +#### SYNTAX + +```powershell +Get-AzApplicationGatewayAuthenticationCertificate [-Name ] -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Get a specified authentication certificate +```powershell +$appgw = Get-AzApplicationGateway -ResourceGroupName "rg" -Name "appGwName" +$cert = Get-AzApplicationGatewayAuthenticationCertificate -Name "cert01" -ApplicationGateway $appgw +``` + +The first command gets the application gateway named appGwName and stores it in the $appgw variable. +The second command gets the authentication certificate named cert01 and stores it in the $cert variable. + + +#### Remove-AzApplicationGatewayAuthenticationCertificate + +#### SYNOPSIS +Removes an authentication certificate from an application gateway. + +#### SYNTAX + +```powershell +Remove-AzApplicationGatewayAuthenticationCertificate -Name -ApplicationGateway + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Remove an authentication certificate from an application gateway +```powershell +$appgw = Get-AzApplicationGateway -ResourceGroupName "rg" -Name "appGwName" +$appgw = Remove-AzApplicationGatewayAuthenticationCertificate -ApplicationGateway $appgw -Name "cert01" +$appgw = Set-AzApplicationGateway -ApplicationGateway $appgw +``` + +The first command gets the application gateway named appGwName and stores the result in the $appgw variable. +The second command removes the authentication certificate named cert01 from the application gateway. +The third command updates the application gateway. + + +#### Set-AzApplicationGatewayAuthenticationCertificate + +#### SYNOPSIS +Updates an authentication certificate for an application gateway. + +#### SYNTAX + +```powershell +Set-AzApplicationGatewayAuthenticationCertificate -ApplicationGateway -Name + -CertificateFile [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Update an authentication certificate +```powershell +$appgw = Get-AzApplicationGateway -ResourceGroupName "rg" -Name "appGwName" +$appgw = Set-AzApplicationGatewayAuthenticationCertificate -ApplicationGateway $appgw -Name "cert01" -CertificateFile "C:\cert2.cer" +$appgw = Set-AzApplicationGateway -ApplicationGateway $appgw +``` + +The first command gets the application gateway named appGwName and stores the result in the $appgw variable. +The second command updates the authentication certificate named cert01 in the application gateway. +The third command updates the application gateway. + + +#### New-AzApplicationGatewayAutoscaleConfiguration + +#### SYNOPSIS +Creates a Autoscale Configuration for the Application Gateway. + +#### SYNTAX + +```powershell +New-AzApplicationGatewayAutoscaleConfiguration -MinCapacity [-MaxCapacity ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$AutoscaleConfig = New-AzApplicationGatewayAutoscaleConfiguration -MinCapacity 3 +$Gateway = New-AzApplicationGateway -Name "AppGateway01" -ResourceGroupName "ResourceGroup01" -Location "West US" -BackendAddressPools $Pool -BackendHttpSettingsCollection $PoolSetting -FrontendIpConfigurations $FrontEndIpConfig -GatewayIpConfigurations $GatewayIpConfig -FrontendPorts $FrontEndPort -HttpListeners $Listener -RequestRoutingRules $Rule -Sku $Sku -AutoscaleConfiguration $AutoscaleConfig +``` + +The first command creates an autoscale configuration with minimum capacity 3. +The second command creates an application gateway with the autoscale configuration. + ++ Example 2 + +```powershell +$gw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$gw.Sku.Capacity = $null +$gw.AutoscaleConfiguration = New-AzApplicationGatewayAutoscaleConfiguration -MinCapacity 2 -MaxCapacity 4 +$gw = Set-AzApplicationGateway -ApplicationGateway $gw +``` + +The first command gets the configuration of the Application Gateway into a variable. +The second command clears the SKU Capacity variable to allow the Autoscale Configuration to be set. +The third command specifies a new AutoScale Configuration for the Application Gateway. +The fourth command applies the new configuration to the Application Gateway. + + +#### Get-AzApplicationGatewayAutoscaleConfiguration + +#### SYNOPSIS +Gets the Autoscale Configuration of the Application Gateway. + +#### SYNTAX + +```powershell +Get-AzApplicationGatewayAutoscaleConfiguration -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$gw = Get-AzApplicationGateway -Name $appgwName -ResourceGroupName $resgpName +$autoscaleConfiguration = Get-AzApplicationGatewayAutoscaleConfiguration -ApplicationGateway $gw +$autoscaleConfiguration.MinCapacity +``` + +The first command gets the application gateway and stores it in $gw variable. +The second command extracts out the autoscale configuration from the application gateway. + + +#### Remove-AzApplicationGatewayAutoscaleConfiguration + +#### SYNOPSIS +Removes Autoscale Configuration from an application gateway. + +#### SYNTAX + +```powershell +Remove-AzApplicationGatewayAutoscaleConfiguration -ApplicationGateway [-Force] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$gw = Get-AzApplicationGateway -Name $appgwName -ResourceGroupName $resgpName +$gw = Remove-AzApplicationGatewayAutoscaleConfiguration -ApplicationGateway $gw +$gw = Set-AzApplicationGateway -ApplicationGateway $gw +``` + +The first command gets the application gateway and stores it in $gw variable. +The second command removes the autoscale configuration from the application gateway. +The third command updates the application gateway on Azure. + + +#### Set-AzApplicationGatewayAutoscaleConfiguration + +#### SYNOPSIS +Updates Autoscale Configuration of an application gateway. + +#### SYNTAX + +```powershell +Set-AzApplicationGatewayAutoscaleConfiguration -ApplicationGateway -MinCapacity + [-MaxCapacity ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$gw = Get-AzApplicationGateway -Name $appgwName -ResourceGroupName $resgpName +$gw = Set-AzApplicationGatewayAutoscaleConfiguration -ApplicationGateway $gw -MinCapacity 5 +$gw = Set-AzApplicationGateway -ApplicationGateway $gw +``` + +The first command gets the application gateway and stores it in $gw variable. +The second command updates the autoscale configuration from the application gateway. +The third command updates the application gateway on Azure. + ++ Example 2 + +Updates Autoscale Configuration of an application gateway. (autogenerated) + + + + +```powershell +Set-AzApplicationGatewayAutoscaleConfiguration -ApplicationGateway -MaxCapacity 5 -MinCapacity 4 +``` + + +#### Get-AzApplicationGatewayAvailableServerVariableAndHeader + +#### SYNOPSIS +Get the supported server variables and available request and response headers. + +#### SYNTAX + +```powershell +Get-AzApplicationGatewayAvailableServerVariableAndHeader [-DefaultProfile ] + [-ServerVariable] [-RequestHeader] [-ResponseHeader] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzApplicationGatewayAvailableServerVariableAndHeader -ServerVariable +``` + +This commands returns all the available server variables. + ++ Example 2 +```powershell +Get-AzApplicationGatewayAvailableServerVariableAndHeader -RequestHeader +``` + +This commands returns all the available request headers. + ++ Example 3 +```powershell +Get-AzApplicationGatewayAvailableServerVariableAndHeader -ResponseHeader +``` + +This commands returns all the available response headers. + ++ Example 4 +```powershell +Get-AzApplicationGatewayAvailableServerVariableAndHeader -ServerVariable -RequestHeader -ResponseHeader +``` + +This commands returns all the available server variables, request and response headers. + ++ Example 5 +```powershell +Get-AzApplicationGatewayAvailableServerVariableAndHeader +``` + +This commands returns all the available server variables, request and response headers. + + +#### Get-AzApplicationGatewayAvailableSslOption + +#### SYNOPSIS +Gets all available ssl options for ssl policy for Application Gateway. + +#### SYNTAX + +```powershell +Get-AzApplicationGatewayAvailableSslOption [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$sslOptions = Get-AzApplicationGatewayAvailableSslOption +``` + +This commands returns all available ssl options for ssl policy. + + +#### Get-AzApplicationGatewayAvailableWafRuleSet + +#### SYNOPSIS +Gets all available web application firewall rule sets. + +#### SYNTAX + +```powershell +Get-AzApplicationGatewayAvailableWafRuleSet [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$availableRuleSets = Get-AzApplicationGatewayAvailableWafRuleSet +``` + +This commands returns all the available web application firewall rule sets. + + +#### New-AzApplicationGatewayBackendAddressPool + +#### SYNOPSIS +Creates a back-end address pool for an application gateway. + +#### SYNTAX + +```powershell +New-AzApplicationGatewayBackendAddressPool -Name [-BackendIPAddresses ] + [-BackendFqdns ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Create a back-end address pool by using the FQDN of a back-end server +```powershell +$Pool = New-AzApplicationGatewayBackendAddressPool -Name "Pool01" -BackendFqdns "contoso1.com", "contoso2.com" +``` + +This command creates a back-end address pool named Pool01 by using the FQDNs of back-end servers, and stores it in the $Pool variable. + ++ Example 2: Create a back-end address pool by using the IP address of a back-end server +```powershell +$Pool = New-AzApplicationGatewayBackendAddressPool -Name "Pool02" -BackendFqdns "10.10.10.10", "10.10.10.11" +``` + +This command creates a back-end address pool named Pool02 by using the IP addresses of back-end servers, and stores it in the $Pool variable. + + +#### Add-AzApplicationGatewayBackendAddressPool + +#### SYNOPSIS +Adds a back-end address pool to an application gateway. + +#### SYNTAX + +```powershell +Add-AzApplicationGatewayBackendAddressPool -ApplicationGateway -Name + [-BackendIPAddresses ] [-BackendFqdns ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Add a back-end address pool by using a back-end server FQDN +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$AppGw = Add-AzApplicationGatewayBackendAddressPool -ApplicationGateway $AppGw -Name "Pool02" -BackendFqdns "contoso1.com", " contoso1.com" +``` + +The first command gets the application gateway named ApplicationGateway01 in the resource group named ResourceGroup01, and stores it in the $AppGw variable.The second command adds the back-end address pool of the application gateway stored in $AppGw by using FQDNs. + ++ Example 2: Add a back-end address pool by using backend server IP addresses +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$AppGw = Add-AzApplicationGatewayBackendAddressPool -ApplicationGateway $AppGw -Name "Pool02" -BackendIPAddresses "10.10.10.10", "10.10.10.11" +``` + +The first command gets the application gateway named ApplicationGateway01 in the resource group named ResourceGroup01, and stores it in the $AppGw variable.The second command adds the back-end address pool of the application gateway stored in $AppGw by using IP addresses. + + +#### Get-AzApplicationGatewayBackendAddressPool + +#### SYNOPSIS +Gets a back-end address pool for an application gateway. + +#### SYNTAX + +```powershell +Get-AzApplicationGatewayBackendAddressPool [-Name ] -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Get a specified back-end server pool +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$BackendPool = Get-AzApplicationGatewayBackendAddressPool -Name "Pool01" -ApplicationGateway $AppGw +``` + +The first command gets the application gateway named ApplicationGateway01 in the resource group named ResourceGroup01 and stores it in the $AppGw variable. +The second command gets the back-end address pool associated with $AppGw named Pool01 and stores it in the $BackendPool variable. + ++ Example 2: Get a list of back-end server pool +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$BackendPools = Get-AzApplicationGatewayBackendAddressPool -ApplicationGateway $AppGw +``` + +The first command gets the application gateway named ApplicationGateway01 in the resource group named ResourceGroup01 and stores it in the $AppGw variable. +The second command gets a list of the back-end address pools associated with $AppGw, and stores the list in the $BackendPools variable. + + +#### Remove-AzApplicationGatewayBackendAddressPool + +#### SYNOPSIS +Removes a back-end address pool from an application gateway. + +#### SYNTAX + +```powershell +Remove-AzApplicationGatewayBackendAddressPool -Name -ApplicationGateway + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Remove a back-end address pool from an application gateway +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +Remove-AzApplicationGatewayBackendAddressPool -ApplicationGateway $AppGw -Name "BackEndPool02" +Set-AzApplicationGateway -ApplicationGateway $AppGw +``` + +The first command gets the application gateway named ApplicationGateway01 belonging to the resource group named ResourceGroup01 and saves it in the $AppGw variable. +The second command removes the back-end address pool named BackEndPool02 from the application gateway. Finally, the third command updates the application gateway. + + +#### Set-AzApplicationGatewayBackendAddressPool + +#### SYNOPSIS +Updates a back-end address pool for an application gateway. + +#### SYNTAX + +```powershell +Set-AzApplicationGatewayBackendAddressPool -ApplicationGateway -Name + [-BackendIPAddresses ] [-BackendFqdns ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Setting a back-end address pool by using FQDNs +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$AppGw = Set-AzApplicationGatewayBackendAddressPool -ApplicationGateway $AppGw -Name "Pool02" -BackendFqdns "contoso1.com", "contoso2.com" +Set-AzApplicationGateway -ApplicationGateway $AppGw +``` + +The first command gets the application gateway named ApplicationGateway01 in the resource group named ResourceGroup01, and stores it in the $AppGw variable. +The second command updates the back-end address pool of the application gateway in $AppGw by using FQDNs. + ++ Example 2: Setting a back-end address pool by using backend server IP addresses +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$AppGw = Set-AzApplicationGatewayBackendAddressPool -ApplicationGateway $AppGw -Name "Pool02" -BackendIPAddresses "10.10.10.10", "10.10.10.11" +Set-AzApplicationGateway -ApplicationGateway $AppGw +``` + +The first command gets the application gateway named ApplicationGateway01 in the resource group named ResourceGroup01, and stores it in the $AppGw variable. +The second command updates the back-end address pool of the application gateway in $AppGw by using IP addresses. + + +#### Get-AzApplicationGatewayBackendHealth + +#### SYNOPSIS +Gets application gateway backend health. + +#### SYNTAX + +```powershell +Get-AzApplicationGatewayBackendHealth -Name -ResourceGroupName [-ExpandResource ] + [-AsJob] [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Gets backend health without expanded resources. +```powershell +$BackendHealth = Get-AzApplicationGatewayBackendHealth -Name ApplicationGateway01 -ResourceGroupName ResourceGroup01 +``` + +This command gets the backend health of application gateway named ApplicationGateway01 that belongs to the resource group named ResourceGroup01 and stores it in the $BackendHealth variable. + ++ Example 2: Gets backend health with expanded resources. +```powershell +$BackendHealth = Get-AzApplicationGatewayBackendHealth -Name ApplicationGateway01 -ResourceGroupName ResourceGroup01 -ExpandResource "backendhealth/applicationgatewayresource" +``` + +This command gets the backend health (with expanded resources) of application gateway named ApplicationGateway01 that belongs to the resource group named ResourceGroup01 and stores it in the $BackendHealth variable. + + +#### New-AzApplicationGatewayBackendHttpSetting + +#### SYNOPSIS +Creates back-end HTTP setting for an application gateway. + +#### SYNTAX + +```powershell +New-AzApplicationGatewayBackendHttpSetting -Name -Port -Protocol + -CookieBasedAffinity [-RequestTimeout ] + [-ConnectionDraining ] [-ProbeId ] + [-Probe ] + [-AuthenticationCertificates ] + [-TrustedRootCertificate ] [-PickHostNameFromBackendAddress] + [-HostName ] [-AffinityCookieName ] [-Path ] [-DedicatedBackendConnection ] + [-ValidateCertChainAndExpiry ] [-ValidateSNI ] [-SniName ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Create back-end HTTP settings +```powershell +$Setting = New-AzApplicationGatewayBackendHttpSetting -Name "Setting01" -Port 80 -Protocol Http -CookieBasedAffinity Disabled +``` + +This command creates back-end HTTP settings named Setting01 on port 80, using the HTTP protocol, with cookie-based affinity disabled. +The settings are stored in the $Setting variable. + ++ Example 2 + +Creates back-end HTTP setting for an application gateway. (autogenerated) + + + + +```powershell +New-AzApplicationGatewayBackendHttpSetting -CookieBasedAffinity Enabled -Name 'Setting01' -PickHostNameFromBackendAddress -Port 80 -Probe -Protocol http -RequestTimeout +``` + + +#### Add-AzApplicationGatewayBackendHttpSetting + +#### SYNOPSIS +Adds back-end HTTP settings to an application gateway. + +#### SYNTAX + +```powershell +Add-AzApplicationGatewayBackendHttpSetting -ApplicationGateway -Name + -Port -Protocol -CookieBasedAffinity [-RequestTimeout ] + [-ConnectionDraining ] [-ProbeId ] + [-Probe ] + [-AuthenticationCertificates ] + [-TrustedRootCertificate ] [-PickHostNameFromBackendAddress] + [-HostName ] [-AffinityCookieName ] [-Path ] [-DedicatedBackendConnection ] + [-ValidateCertChainAndExpiry ] [-ValidateSNI ] [-SniName ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Add back-end HTTP settings to an application gateway +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$AppGw = Add-AzApplicationGatewayBackendHttpSetting -ApplicationGateway $AppGw -Name "Setting02" -Port 88 -Protocol "HTTP" -CookieBasedAffinity "Disabled" +``` + +The first command gets the application gateway named ApplicationGateway01 that belongs to the resource group named ResourceGroup01 and stores it in the $AppGw variable.The second command adds back-end HTTP settings to the application gateway, setting the port to 88 and the protocol to HTTP and names the settings Setting02. + ++ Example 2 + +Adds back-end HTTP settings to an application gateway. (autogenerated) + + + + +```powershell +Add-AzApplicationGatewayBackendHttpSetting -ApplicationGateway -CookieBasedAffinity Enabled -Name 'Setting02' -PickHostNameFromBackendAddress -Port 88 -Probe -Protocol http -RequestTimeout +``` + + +#### Get-AzApplicationGatewayBackendHttpSetting + +#### SYNOPSIS +Gets the back-end HTTP settings of an application gateway. + +#### SYNTAX + +```powershell +Get-AzApplicationGatewayBackendHttpSetting [-Name ] -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Get back-end HTTP settings by name +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$Settings = Get-AzApplicationGatewayBackendHttpSetting -Name "Settings01" -ApplicationGateway $AppGw +``` + +The first command gets the application gateway named ApplicationGateway01 in the resource group named ResourceGroup01, and stores it in the $AppGw variable.The second command gets the HTTP settings named Settings01 for $AppGw and stores the settings in the $Settings variable. + ++ Example 2: Get a collection of back-end HTTP settings +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$SettingsList = Get-AzApplicationGatewayBackendHttpSetting -ApplicationGateway $AppGw +``` + +The first command gets the application gateway named ApplicationGateway01 in the resource group named ResourceGroup01, and stores it in the $AppGw variable.The second command gets the collection of HTTP settings for $AppGw and stores the settings in the $SettingsList variable. + + +#### Remove-AzApplicationGatewayBackendHttpSetting + +#### SYNOPSIS +Removes back-end HTTP settings from an application gateway. + +#### SYNTAX + +```powershell +Remove-AzApplicationGatewayBackendHttpSetting -Name -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Remove back-end HTTP settings from an application gateway +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +Remove-AzApplicationGatewayBackendHttpSetting -ApplicationGateway $AppGw -Name "BackEndSetting02" +Set-AzApplicationGateway -ApplicationGateway $AppGW +``` + +The first command gets an application gateway named ApplicationGateway01 that belongs to the resource group named ResourceGroup01 and stores it in the $AppGw variable. +The second command removes the back-end HTTP setting named BackEndSetting02 from the application gateway stored in $AppGw. Finally, the third command updates the application gateway. + + +#### Set-AzApplicationGatewayBackendHttpSetting + +#### SYNOPSIS +Updates back-end HTTP settings for an application gateway. + +#### SYNTAX + +```powershell +Set-AzApplicationGatewayBackendHttpSetting -ApplicationGateway -Name + -Port -Protocol -CookieBasedAffinity [-RequestTimeout ] + [-ConnectionDraining ] [-ProbeId ] + [-Probe ] + [-AuthenticationCertificates ] + [-TrustedRootCertificate ] [-PickHostNameFromBackendAddress] + [-HostName ] [-AffinityCookieName ] [-Path ] [-DedicatedBackendConnection ] + [-ValidateCertChainAndExpiry ] [-ValidateSNI ] [-SniName ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Update the back-end HTTP settings for an application gateway +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$AppGw = Set-AzApplicationGatewayBackendHttpSetting -ApplicationGateway $AppGw -Name "Setting02" -Port 88 -Protocol "Http" -CookieBasedAffinity "Disabled" +``` + +The first command gets the application gateway named ApplicationGateway01 that belongs to the resource group named ResourceGroup01 and stores it in the $AppGw variable. +The second command updates the HTTP settings of the application gateway in the $AppGw variable to use port 88, the HTTP protocol and enables cookie-based affinity. + ++ Example 2 + +Updates back-end HTTP settings for an application gateway. (autogenerated) + + + + +```powershell +Set-AzApplicationGatewayBackendHttpSetting -ApplicationGateway -CookieBasedAffinity Enabled -Name 'Setting02' -Port 88 -Probe -Protocol https -RequestTimeout +``` + + +#### New-AzApplicationGatewayBackendSetting + +#### SYNOPSIS +Creates back-end TCP\TLS setting for an application gateway. + +#### SYNTAX + +```powershell +New-AzApplicationGatewayBackendSetting -Name -Port -Protocol [-Timeout ] + [-ProbeId ] [-Probe ] + [-TrustedRootCertificate ] [-PickHostNameFromBackendAddress] + [-HostName ] [-EnableL4ClientIpPreservation ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Create back-end TCP\TLS settings +```powershell +$Setting = New-AzApplicationGatewayBackendSetting -Name "Setting01" -Port 80 -Protocol Tcp +``` + +This command creates back-end settings named Setting01 on port 80, using the Tcp protocol +The settings are stored in the $Setting variable. + + +#### Add-AzApplicationGatewayBackendSetting + +#### SYNOPSIS +Adds back-end TCP\TLS settings to an application gateway. + +#### SYNTAX + +```powershell +Add-AzApplicationGatewayBackendSetting -ApplicationGateway -Name -Port + -Protocol [-Timeout ] [-ProbeId ] [-Probe ] + [-TrustedRootCertificate ] [-PickHostNameFromBackendAddress] + [-HostName ] [-EnableL4ClientIpPreservation ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Add back-end TCP\TLS settings to an application gateway +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$AppGw = Add-AzApplicationGatewayBackendSetting -ApplicationGateway $Appgw -Name "Setting01" -Port 88 -Protocol TCP +``` + +The first command gets the application gateway named ApplicationGateway01 that belongs to the resource group named ResourceGroup01 and stores it in the $AppGw variable.The second command adds back-end settings to the application gateway, setting the port to 88 and the protocol to TCP and names the settings Setting01. + + +#### Get-AzApplicationGatewayBackendSetting + +#### SYNOPSIS +Gets the back-end TCP\TLS settings of an application gateway. + +#### SYNTAX + +```powershell +Get-AzApplicationGatewayBackendSetting [-Name ] -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Get back-end TCP\TLS settings by name +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$Settings = Get-AzApplicationGatewayBackendSetting -Name "Settings01" -ApplicationGateway $AppGw +``` + +The first command gets the application gateway named ApplicationGateway01 in the resource group named ResourceGroup01, and stores it in the $AppGw variable.The second command gets the backend settings named Settings01 for $AppGw and stores the settings in the $Settings variable. + + +#### Remove-AzApplicationGatewayBackendSetting + +#### SYNOPSIS +Removes back-end TCP\TLS settings from an application gateway. + +#### SYNTAX + +```powershell +Remove-AzApplicationGatewayBackendSetting -Name -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Remove back-end TCP\TLS settings from an application gateway +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +Remove-AzApplicationGatewayBackendSetting -ApplicationGateway $AppGw -Name "BackEndSetting02" +Set-AzApplicationGateway -ApplicationGateway $AppGW +``` + +The first command gets an application gateway named ApplicationGateway01 that belongs to the resource group named ResourceGroup01 and stores it in the $AppGw variable. +The second command removes the back-end TCP\TLS setting named BackEndSetting02 from the application gateway stored in $AppGw. Finally, the third command updates the application gateway. + + +#### Set-AzApplicationGatewayBackendSetting + +#### SYNOPSIS +Updates back-end TCP\TLS settings for an application gateway. + +#### SYNTAX + +```powershell +Set-AzApplicationGatewayBackendSetting -ApplicationGateway -Name -Port + -Protocol [-Timeout ] [-ProbeId ] [-Probe ] + [-TrustedRootCertificate ] [-PickHostNameFromBackendAddress] + [-HostName ] [-EnableL4ClientIpPreservation ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Update the back-end TCP\TLS settings for an application gateway +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$AppGw = Set-AzApplicationGatewayBackendSetting -ApplicationGateway $AppGw -Name "Setting02" -Port 88 -Protocol "Tcp" +``` + +The first command gets the application gateway named ApplicationGateway01 that belongs to the resource group named ResourceGroup01 and stores it in the $AppGw variable. +The second command updates the Backend settings of the application gateway in the $AppGw variable to use port 88, the TCP protocol. + + +#### New-AzApplicationGatewayClientAuthConfiguration + +#### SYNOPSIS +Creates a new client authentication configuration for SSL profile. + +#### SYNTAX + +```powershell +New-AzApplicationGatewayClientAuthConfiguration [-VerifyClientCertIssuerDN] [-VerifyClientRevocation ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$clientAuthConfig = New-AzApplicationGatewayClientAuthConfiguration -VerifyClientCertIssuerDN -VerifyClientRevocation OCSP +``` + +The command create a new client auth configuration and stores it in $clientAuthConfig variable to be used in a SSL profile. + + +#### Get-AzApplicationGatewayClientAuthConfiguration + +#### SYNOPSIS +Gets the client authentication configuration of a SSL profile object. + +#### SYNTAX + +```powershell +Get-AzApplicationGatewayClientAuthConfiguration -SslProfile + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$SslProfile = Get-AzApplicationGatewaySslProfile -Name "SslProfile01" -ApplicationGateway $AppGw +$ClientAuthConfig = Get-AzApplicationGatewayClientAuthConfiguration -SslProfile $SslProfile +``` + +The first command gets the application gateway named ApplicationGateway01 in the resource group named ResourceGroup01 and stores it in the $AppGw variable. The second command gets the SSL profile named SslProfile01 for $AppGw and stores it $SslProfile variable. The last command gets the client authentication configuration from the SSL profile $SslProfile and stores it in the $ClientAuthConfig variable. + + +#### Remove-AzApplicationGatewayClientAuthConfiguration + +#### SYNOPSIS +Removes the client authentication configuration of a SSL profile object. + +#### SYNTAX + +```powershell +Remove-AzApplicationGatewayClientAuthConfiguration -SslProfile + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$profile = Get-AzApplicationGatewaySslProfile -Name "Profile01" -ApplicationGateway $AppGw +Remove-AzApplicationGatewayClientAuthConfiguration -SslProfile $profile +Set-AzApplicationGateway -ApplicationGateway $AppGW +``` + +The first command gets the application gateway named ApplicationGateway01 in the resource group named ResourceGroup01 and stores it in the $AppGw variable. The second command gets the SSL profile named Profile01 for $AppGw and stores it in the $profile variable. The next command removes the client authentication configuration of the ssl profile stored in $profile. The last command updates the application gateway. + + +#### Set-AzApplicationGatewayClientAuthConfiguration + +#### SYNOPSIS +Modifies the client auth configuration of a ssl profile object. + +#### SYNTAX + +```powershell +Set-AzApplicationGatewayClientAuthConfiguration -SslProfile + [-VerifyClientCertIssuerDN] [-VerifyClientRevocation ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$profile = Get-AzApplicationGatewaySslProfile -Name "SslProfile01" -ApplicationGateway $AppGw +Set-AzApplicationGatewayClientAuthConfiguration -SslProfile $profile -VerifyClientCertIssuerDN -VerifyClientRevocation OCSP +``` + +The first command gets the application gateway named ApplicationGateway01 in the resource group named ResourceGroup01 and stores it in the $AppGw variable. The second command gets the ssl profile named SslProfile01 for $AppGw and stores the settings in the $profile variable. The last command modifies the client auth configuration of the ssl profile object stored in $profile. + + +#### New-AzApplicationGatewayConnectionDraining + +#### SYNOPSIS +Creates a new connection draining configuration for back-end HTTP settings. + +#### SYNTAX + +```powershell +New-AzApplicationGatewayConnectionDraining -Enabled -DrainTimeoutInSec + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$connectionDraining = New-AzApplicationGatewayConnectionDraining -Enabled $True -DrainTimeoutInSec 42 +``` + +The command creates a new connection draining configuration with Enabled set to True and DrainTimeoutInSec set to 42 seconds and stores it in $connectionDraining. + + +#### Get-AzApplicationGatewayConnectionDraining + +#### SYNOPSIS +Gets the connection draining configuration of a back-end HTTP settings object. + +#### SYNTAX + +```powershell +Get-AzApplicationGatewayConnectionDraining -BackendHttpSettings + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$Settings = Get-AzApplicationGatewayBackendHttpSetting -Name "Settings01" -ApplicationGateway $AppGw +$ConnectionDraining = Get-AzApplicationGatewayConnectionDraining -BackendHttpSettings $Settings +``` + +The first command gets the application gateway named ApplicationGateway01 in the resource group named ResourceGroup01 and stores it in the $AppGw variable. +The second command gets the back-end HTTP settings named Settings01 for $AppGw and stores the settings in the $Settings variable. +The last command gets the connection draining configuration from the back-end HTTP settings $Settings and stores it in the $ConnectionDraining variable. + + +#### Remove-AzApplicationGatewayConnectionDraining + +#### SYNOPSIS +Removes the connection draining configuration of a back-end HTTP settings object. + +#### SYNTAX + +```powershell +Remove-AzApplicationGatewayConnectionDraining -BackendHttpSettings + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$Settings = Get-AzApplicationGatewayBackendHttpSetting -Name "Settings01" -ApplicationGateway $AppGw +Remove-AzApplicationGatewayConnectionDraining -BackendHttpSettings $Settings +Set-AzApplicationGateway -ApplicationGateway $AppGW +``` + +The first command gets the application gateway named ApplicationGateway01 in the resource group named ResourceGroup01 and stores it in the $AppGw variable. +The second command gets the back-end HTTP settings named Settings01 for $AppGw and stores the settings in the $Settings variable. +The third command removes the connection draining configuration of the back-end HTTP settings stored in $Settings. And, the last command updates the application gateway. + + +#### Set-AzApplicationGatewayConnectionDraining + +#### SYNOPSIS +Modifies the connection draining configuration of a back-end HTTP settings object. + +#### SYNTAX + +```powershell +Set-AzApplicationGatewayConnectionDraining -BackendHttpSettings + -Enabled -DrainTimeoutInSec [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$Settings = Get-AzApplicationGatewayBackendHttpSetting -Name "Settings01" -ApplicationGateway $AppGw +Set-AzApplicationGatewayConnectionDraining -BackendHttpSettings $poolSetting02 -Enabled $False -DrainTimeoutInSec 3600 +``` + +The first command gets the application gateway named ApplicationGateway01 in the resource group named ResourceGroup01 and stores it in the $AppGw variable. +The second command gets the back-end HTTP settings named Settings01 for $AppGw and stores the settings in the $Settings variable. +The last command modifies the connection draining configuration of the back-end HTTP settings object stored in $Settings by setting Enabled to False and DrainTimeoutInSec to 3600. + + +#### New-AzApplicationGatewayCustomError + +#### SYNOPSIS +Creates a custom error with http status code and custom error page url + +#### SYNTAX + +```powershell +New-AzApplicationGatewayCustomError -StatusCode -CustomErrorPageUrl + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$customError403Url = "https://mycustomerrorpages.blob.core.windows.net/errorpages/403-another.htm" +$ce = New-AzApplicationGatewayCustomError -StatusCode HttpStatus403 -CustomErrorPageUrl $customError403Url +``` + +This command creates the custom error of http status code 403. + + +#### Add-AzApplicationGatewayCustomError + +#### SYNOPSIS +Adds a custom error to an application gateway. + +#### SYNTAX + +```powershell +Add-AzApplicationGatewayCustomError -ApplicationGateway -StatusCode + -CustomErrorPageUrl [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Adds custom error to application gateway level +```powershell +$resourceGroupName = "resourceGroupName" +$AppGWName = "applicationGatewayName" +$AppGw = Get-AzApplicationGateway -Name $AppGWName -ResourceGroupName $resourceGroupName +$customError502Url = "https://mycustomerrorpages.blob.core.windows.net/errorpages/502.htm" +$updatedgateway = Add-AzApplicationGatewayCustomError -ApplicationGateway $AppGw -StatusCode HttpStatus502 -CustomErrorPageUrl $customError502Url +Set-AzApplicationGateway -ApplicationGateway $AppGw +``` + +This command adds a custom error of http status code 502 to the application gateway $appgw, and return the updated gateway. + ++ Example 2: Adds custom error to application gateway listener level +```powershell +$resourceGroupName = "resourceGroupName" + $AppGWName = "applicationGatewayName" + $customError502Url = "https://mycustomerrorpages.blob.core.windows.net/errorpages/502.htm" + $listenerName = "listenerName" + $AppGw = Get-AzApplicationGateway -Name $AppGWName -ResourceGroupName $resourceGroupName + $listener = Get-AzApplicationGatewayHttpListener -ApplicationGateway $AppGW -Name $listenerName + $updatedListener = Add-AzApplicationGatewayHttpListenerCustomError -HttpListener $listener -StatusCode HttpStatus502 -CustomErrorPageUrl $customError502Url + Set-AzApplicationGateway -ApplicationGateway $AppGw +``` + +This command adds a custom error of http status code 502 to the application gateway $appgw at the listener level, and return the updated gateway. + + +#### Get-AzApplicationGatewayCustomError + +#### SYNOPSIS +Gets custom error(s) from an application gateway. + +#### SYNTAX + +```powershell +Get-AzApplicationGatewayCustomError [-StatusCode ] -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Gets a custom error in an application gateway +```powershell +$ce = Get-AzApplicationGatewayCustomError -ApplicationGateway $appgw -StatusCode HttpStatus502 +``` + +This command gets and returns the custom error of http status code 502 from the application gateway $appgw. + ++ Example 2: Gets the list of all custom errors in an application gateway +```powershell +$ces = Get-AzApplicationGatewayCustomError -ApplicationGateway $appgw +``` + +This command gets and returns the list of all custom errors from the application gateway $appgw. + + +#### Remove-AzApplicationGatewayCustomError + +#### SYNOPSIS +Removes a custom error from an application gateway. + +#### SYNTAX + +```powershell +Remove-AzApplicationGatewayCustomError -StatusCode -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Removes custom error from an application gateway +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +Remove-AzApplicationGatewayCustomError -ApplicationGateway $AppGw -StatusCode HttpStatus502 +Set-AzApplicationGateway -ApplicationGateway $AppGW +``` + +The first command gets the application gateway named ApplicationGateway01 in the resource group named ResourceGroup01 and stores it in the $AppGw variable. +The second command removes the custom error for HTTP Status Code 502 from the application gateway and returns the updated gateway. +The last command updates the application gateway. + + +#### Set-AzApplicationGatewayCustomError + +#### SYNOPSIS +Updates a custom error in an application gateway. + +#### SYNTAX + +```powershell +Set-AzApplicationGatewayCustomError -ApplicationGateway -StatusCode + -CustomErrorPageUrl [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Updates custom error in an application gateway +```powershell +$customError502Url = "https://mycustomerrorpages.blob.core.windows.net/errorpages/502.htm" +$updatedgateway = Set-AzApplicationGatewayCustomError -ApplicationGateway $appgw -StatusCode HttpStatus502 -CustomErrorPageUrl $customError502Url +``` + +This command updates the custom error of http status code 502 in the application gateway $appgw, and returns the updated gateway. + + +#### New-AzApplicationGatewayFirewallCondition + +#### SYNOPSIS +Creates a match condition for custom rule + +#### SYNTAX + +```powershell +New-AzApplicationGatewayFirewallCondition -MatchVariable + -Operator [-NegationCondition ] [-MatchValue ] [-Transform ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$condition = New-AzApplicationGatewayFirewallCondition -MatchVariable $variable -Operator Contains -NegationCondition false -Transform Lowercase, Trim -MatchValue abc, cde +``` + +The command creates a new match condition using the match variable defined in the $variable, the operator is Contains and negation condition is false, Transforms including lowercase and trim, the match value is abc and cde. The new match condition is saved in $condition. + + +#### New-AzApplicationGatewayFirewallCustomRule + +#### SYNOPSIS +Creates a new custom rule for the application gateway firewall policy. + +#### SYNTAX + +```powershell +New-AzApplicationGatewayFirewallCustomRule -Name -Priority [-RateLimitDuration ] + [-RateLimitThreshold ] -RuleType -MatchCondition + [-GroupByUserSession ] -Action + [-State ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzApplicationGatewayFirewallCustomRule -Name example-rule -Priority 1 -RuleType MatchRule -MatchCondition $condition -Action Allow +``` + +```output +Name : example-rule +Priority : 1 +RuleType : MatchRule +MatchConditions : {Microsoft.Azure.Commands.Network.Models.PSApplicationGatewayFirewallCondition} +Action : Allow +State : Enabled +MatchConditionsText : [ + { + "MatchVariables": [ + { + "VariableName": "RequestHeaders", + "Selector": "Malicious-Header" + } + ], + "OperatorProperty": "Any", + "NegationConditon": false + } + ] +``` + +The command creates a new custom rule with name of example-rule, priority 1 and the rule type will be MatchRule with condition defined in the condition variable, the action will the allow. + ++ Example 2 +```powershell +New-AzApplicationGatewayFirewallCustomRule -Name example-rule -Priority 2 -RuleType MatchRule -MatchCondition $condition -Action Allow -State Disabled +``` + +```output +Name : example-rule +Priority : 2 +RuleType : MatchRule +MatchConditions : {Microsoft.Azure.Commands.Network.Models.PSApplicationGatewayFirewallCondition} +Action : Allow +State : Disabled +MatchConditionsText : [ + { + "MatchVariables": [ + { + "VariableName": "RequestHeaders", + "Selector": "Malicious-Header" + } + ], + "OperatorProperty": "Any", + "NegationConditon": false + } + ] +``` + +The command creates a new custom rule with name of example-rule, state as Disabled, priority 2 and the rule type will be MatchRule with condition defined in the condition variable, the action will the allow. + ++ Example 3 +```powershell +New-AzApplicationGatewayFirewallCustomRule -Name RateLimitRule3 -Priority 3 -RateLimitDuration OneMin -RateLimitThreshold 10 -RuleType RateLimitRule -MatchCondition $condition -GroupByUserSession $groupbyUserSes -Action Allow -State Disabled +``` + +```output +Name : RateLimitRule3 +Priority : 3 +RateLimitDuration : OneMin +RateLimitThreshold : 10 +RuleType : RateLimitRule +MatchConditions : {Microsoft.Azure.Commands.Network.Models.PSApplicationGatewayFirewallCondition} +GroupByUserSession : {Microsoft.Azure.Commands.Network.Models.PSApplicationGatewayFirewallCustomRuleGroupByUserSession} +Action : Allow +State : Disabled +MatchConditionsText : [ + { + "MatchVariables": [ + { + "VariableName": "RequestHeaders", + "Selector": "Malicious-Header" + } + ], + "OperatorProperty": "Any", + "NegationConditon": false + } + ] +GroupByUserSessionText : [ + { + "groupByVariables": [ + { + "variableName": "ClientAddr" + } + ] + } + ] +``` + +The command creates a new custom rule with name of RateLimitRule3, state as Disabled, priority 3, RateLimitDuration OneMin, RateLimitThreshold 10 and the rule type will be RateLimitRule with condition defined in the condition variable, the action will the allow, the GroupByUserSession defined in the GroupByUserSession condition variable. + + +#### Remove-AzApplicationGatewayFirewallCustomRule + +#### SYNOPSIS +Removes an application gateway firewall custom rule. + +#### SYNTAX + +```powershell +Remove-AzApplicationGatewayFirewallCustomRule -Name -ResourceGroupName -PolicyName + [-Force] [-PassThru] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzApplicationGatewayFirewallCustomRule -Name "ApplicationGatewayFirewallCustomRule01" -ResourceGroupName "ResourceGroup01" -PolicyName "PolicyName01" +``` + +This command removes the application gateway firewall custom rule named ApplicationGatewayFirewallCustomRule01 in the resource group named ResourceGroup01 in policy named PolicyName01. + + +#### New-AzApplicationGatewayFirewallCustomRuleGroupByUserSession + +#### SYNOPSIS +Creates a new GroupByUserSession for the application gateway firewall custom rule. + +#### SYNTAX + +```powershell +New-AzApplicationGatewayFirewallCustomRuleGroupByUserSession + -GroupByVariable + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzApplicationGatewayFirewallCustomRuleGroupByUserSession -GroupByVariable $groupbyVar +``` + +The command creates a new GroupByUserSession, with the GroupByVariables condition named groupbyVar + + +#### New-AzApplicationGatewayFirewallCustomRuleGroupByVariable + +#### SYNOPSIS +Creates a new GroupByVariable for the application gateway firewall custom rule GroupByUserSession. + +#### SYNTAX + +```powershell +New-AzApplicationGatewayFirewallCustomRuleGroupByVariable -VariableName + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzApplicationGatewayFirewallCustomRuleGroupByVariable -VariableName ClientAddr +``` + +The command creates a new GroupByVariable, with the VariableName ClientAddr + + +#### New-AzApplicationGatewayFirewallDisabledRuleGroupConfig + +#### SYNOPSIS +Creates a new disabled rule group configuration. + +#### SYNTAX + +```powershell +New-AzApplicationGatewayFirewallDisabledRuleGroupConfig -RuleGroupName [-Rules ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$disabledRuleGroup1 = New-AzApplicationGatewayFirewallDisabledRuleGroupConfig -RuleGroupName "REQUEST-942-APPLICATION-ATTACK-SQLI" -Rules 942130,942140 +``` + +The command creates a new disabled rule group configuration for the rule group named "REQUEST-942-APPLICATION-ATTACK-SQLI" with rule 942130 and rule 942140 being disabled. The new disabled rule group configuration is saved in $disabledRuleGroup1. + + +#### New-AzApplicationGatewayFirewallExclusionConfig + +#### SYNOPSIS +Creates a new exclusion rule list for application gateway waf + +#### SYNTAX + +```powershell +New-AzApplicationGatewayFirewallExclusionConfig -Variable -Operator -Selector + [-ExclusionManagedRuleSet ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$exclusion1 = New-AzApplicationGatewayFirewallExclusionConfig -Variable "RequestHeaderNames" -Operator "StartsWith" -Selector "xyz" +``` + +This command creates a new exclusion rule lists configuration for the variable named RequestHeaderNames and operator named StartsWith and Selector named xyz. The exclusion list configuration is saved in $exclusion1. + + +#### New-AzApplicationGatewayFirewallMatchVariable + +#### SYNOPSIS +Creates a match variable for firewall condition. + +#### SYNTAX + +```powershell +New-AzApplicationGatewayFirewallMatchVariable -VariableName [-Selector ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$variable = New-AzApplicationGatewayFirewallMatchVariable -VariableName RequestHeaders -Selector Content-Length +``` + +The command creates a new match variable with name of request headers and selector is Content-Length field. The new match variable is saved in $variable. + + +#### New-AzApplicationGatewayFirewallPolicy + +#### SYNOPSIS +Creates a application gateway firewall policy. + +#### SYNTAX + +```powershell +New-AzApplicationGatewayFirewallPolicy -Name -ResourceGroupName -Location + [-CustomRule ] + [-PolicySetting ] + [-ManagedRule ] [-Tag ] [-Force] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$firewallPolicy = New-AzApplicationGatewayFirewallPolicy -Name wafResource1 -ResourceGroupName "rg1" -Location "westus" -CustomRule $customRule +``` + +This command creates a new Azure application gateway firewall policy named "wafResource1" in resource group "rg1" in location "westus" with custom rules defined in the $customRule variable + ++ Example 2 + +Creates a application gateway firewall policy. (autogenerated) + + + + +```powershell +New-AzApplicationGatewayFirewallPolicy -CustomRule -Location 'westus' -Name wafResource1 -PolicySetting -ResourceGroupName 'rg1' +``` + + +#### Get-AzApplicationGatewayFirewallPolicy + +#### SYNOPSIS +Gets an application gateway or application gateway for containers firewall policy. + +#### SYNTAX + +```powershell +Get-AzApplicationGatewayFirewallPolicy [-Name ] [-ResourceGroupName ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$AppGwFirewallPolicy = Get-AzApplicationGatewayFirewallPolicy -Name "FirewallPolicy1" -ResourceGroupName "ResourceGroup01" +``` + +This command gets the application gateway firewall policy named FirewallPolicy1 that belongs to the resource group named ResourceGroup01 and stores it in the $AppGwFirewallPolicy variable. + + +#### Remove-AzApplicationGatewayFirewallPolicy + +#### SYNOPSIS +Removes an application gateway firewall policy. + +#### SYNTAX + ++ ByFactoryName (Default) +```powershell +Remove-AzApplicationGatewayFirewallPolicy -Name -ResourceGroupName [-Force] [-PassThru] + [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByFactoryObject +```powershell +Remove-AzApplicationGatewayFirewallPolicy -InputObject + [-Force] [-PassThru] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByResourceId +```powershell +Remove-AzApplicationGatewayFirewallPolicy -ResourceId [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzApplicationGatewayFirewallPolicy -Name "ApplicationGatewayFirewallPolicy01" -ResourceGroupName "ResourceGroup01" +``` + +This command removes the application gateway firewall policy named ApplicationGatewayFirewallPolicy01 in the resource group named ResourceGroup01. + + +#### Set-AzApplicationGatewayFirewallPolicy + +#### SYNOPSIS +Updates an application gateway firewall policy. + +#### SYNTAX + ++ ByFactoryObject (Default) +```powershell +Set-AzApplicationGatewayFirewallPolicy -InputObject + [-CustomRule ] + [-PolicySetting ] + [-ManagedRule ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByFactoryName +```powershell +Set-AzApplicationGatewayFirewallPolicy -Name -ResourceGroupName + [-CustomRule ] + [-PolicySetting ] + [-ManagedRule ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByResourceId +```powershell +Set-AzApplicationGatewayFirewallPolicy -ResourceId + [-CustomRule ] + [-PolicySetting ] + [-ManagedRule ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$UpdatedAppGwFirewallPolicy = Set-AzApplicationGatewayFirewallPolicy -InputObject $AppGwFirewallPolicy +``` + +This command updates the application gateway firewall policy with settings in the $AppGwFirewallPolicy variable and stores the updated application gateway firewall policy in the $UpdatedAppGwFirewallPolicy variable. + + +#### New-AzApplicationGatewayFirewallPolicyException + +#### SYNOPSIS +Creates an exception on the Firewall Policy + +#### SYNTAX + +```powershell +New-AzApplicationGatewayFirewallPolicyException -MatchVariable -Value + -ValueMatchOperator [-SelectorMatchOperator ] [-Selector ] + [-ExceptionManagedRuleSet ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$exceptionEntry = New-AzApplicationGatewayFirewallPolicyException -MatchVariable "RequestURI" -Value "hey","hi" -ValueMatchOperator "Contains" +``` + +This command creates a new exception-entry for the variable named RequestURI with the ValueMatchOperator as Contains and Match Values as hey and hi. The exception entry is saved in $exceptionEntry. + + +#### New-AzApplicationGatewayFirewallPolicyExclusion + +#### SYNOPSIS +Creates an exclusion on the Firewall Policy + +#### SYNTAX + +```powershell +New-AzApplicationGatewayFirewallPolicyExclusion -MatchVariable -SelectorMatchOperator + -Selector [-ExclusionManagedRuleSet ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$exclusionEntry = New-AzApplicationGatewayFirewallPolicyExclusion -MatchVariable "RequestHeaderNames" -SelectorMatchOperator "StartsWith" -Selector "xyz" +``` + +This command creates a new exclusion-entry for the variable named RequestHeaderNames and operator named StartsWith and Selector named xyz. The exclusion entry is saved in $exclusionEntry. + ++ Example 2 +```powershell +$exclusionEntry = New-AzApplicationGatewayFirewallPolicyExclusion -MatchVariable "RequestHeaderKeys" -SelectorMatchOperator "Contains" -Selector "abc" +``` + +This command creates a new exclusion-entry for the variable named RequestHeaderKeys and operator named Contains and Selector named abc. The exclusion entry is saved in $exclusionEntry. + ++ Example 3 +```powershell +$exclusionEntry = New-AzApplicationGatewayFirewallPolicyExclusion -MatchVariable "RequestHeaderNames" -SelectorMatchOperator "StartsWith" -Selector "xyz" -ExclusionManagedRuleSet $exclusionManagedRuleSet +``` + +This command creates a new exclusion-entry for the variable named RequestHeaderNames and operator named StartsWith, Selector named xyz and ExclusionManagedRuleSet named $exclusionManagedRuleSet. The exclusion entry is saved in $exclusionEntry. + + +#### New-AzApplicationGatewayFirewallPolicyExclusionManagedRule + +#### SYNOPSIS +Creates an exclusionManagedRule entry for ExclusionManagedRuleGroup entry. + +#### SYNTAX + +```powershell +New-AzApplicationGatewayFirewallPolicyExclusionManagedRule -RuleId + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$ruleOverrideEntry = New-AzApplicationGatewayFirewallPolicyExclusionManagedRule -RuleId $ruleId +``` + +Creates an exclusion rule Entry with RuleId as $ruleId. + + +#### New-AzApplicationGatewayFirewallPolicyExclusionManagedRuleGroup + +#### SYNOPSIS +Creates ExclusionManagedRuleGroup entry in ExclusionManagedRuleSets for the firewall policy exclusion. + +#### SYNTAX + +```powershell +New-AzApplicationGatewayFirewallPolicyExclusionManagedRuleGroup -Name + [-Rule ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$ruleGroupEntry = New-AzApplicationGatewayFirewallPolicyExclusionManagedRuleGroup -RuleGroupName $ruleName -Rule $rule1,$rule2 +``` + +Creates an ExclusionManagedRuleGroup entry with group name as $ruleName and Rules as $rule1, $rule2. Assigns the same to $ruleGroupEntry + ++ Example 2 +```powershell +$ruleGroupEntry = New-AzApplicationGatewayFirewallPolicyExclusionManagedRuleGroup -RuleGroupName $ruleName +``` + +Creates an ExclusionManagedRuleGroup entry with group name as $ruleName. Assigns the same to $ruleGroupEntry + + +#### New-AzApplicationGatewayFirewallPolicyExclusionManagedRuleSet + +#### SYNOPSIS +Creates an ExclusionManagedRuleSet for the firewallPolicy exclusion + +#### SYNTAX + +```powershell +New-AzApplicationGatewayFirewallPolicyExclusionManagedRuleSet -Type -Version + [-RuleGroup ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$managedRuleSet = New-AzApplicationGatewayFirewallPolicyExclusionManagedRuleSet -RuleSetType $ruleSetType ` +-RuleSetVersion $ruleSetVersion -RuleGroup $ruleGroup1, $ruleGroup2 +``` + +Creates an ExclusionManagedRuleSet with ruleSetType as $ruleSetType, ruleSetVersion as $ruleSetVersion and RuleGroups as a list with entires as $ruleGroup1, $ruleGroup2 +The new ExclusionManagedRuleSet is assigned to $managedRuleSet + + +#### New-AzApplicationGatewayFirewallPolicyLogScrubbingConfiguration + +#### SYNOPSIS +Creates a log scrubbing configuration for firewall policy + +#### SYNTAX + +```powershell +New-AzApplicationGatewayFirewallPolicyLogScrubbingConfiguration -State + -ScrubbingRule + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$logScrubbingRuleConfig = New-AzApplicationGatewayFirewallPolicyLogScrubbingConfiguration -State Enabled -ScrubbingRule $logScrubbingRule1 +``` + +The command creates a log scrubbing rule configuration with state as enable, ScrubbingRule as $logScrubbingRule1. +The new log scrubbing rule configuration is stored to $logScrubbingRuleConfig. + + +#### New-AzApplicationGatewayFirewallPolicyLogScrubbingRule + +#### SYNOPSIS +Creates a log scrubbing rule for firewall policy + +#### SYNTAX + +```powershell +New-AzApplicationGatewayFirewallPolicyLogScrubbingRule -State -MatchVariable + -SelectorMatchOperator [-Selector ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$logScrubbingRuleConfig1 = New-AzApplicationGatewayFirewallPolicyLogScrubbingRule -State Enabled -MatchVariable RequestArgNames -SelectorMatchOperator Equals -Selector test +``` + +The command creates a log scrubbing rule configuration with state as enable, MatchVariable as RequestArgNames, SelectorMatchOperator as Equals and Selector as test +The new log scrubbing rule is stored to $logScrubbingRuleConfig1. + ++ Example 2 +```powershell +$logScrubbingRuleConfig2 = New-AzApplicationGatewayFirewallPolicyLogScrubbingRule -State Enabled -MatchVariable RequestIPAddress -SelectorMatchOperator EqualsAny +``` + +The command creates a log scrubbing rule configuration with state as enable, MatchVariable as RequestIPAddress, SelectorMatchOperator as EqualsAny +The new log scrubbing rule is stored to $logScrubbingRuleConfig2. + + +#### New-AzApplicationGatewayFirewallPolicyManagedRule + +#### SYNOPSIS +Create ManagedRules for the firewall policy. + +#### SYNTAX + +```powershell +New-AzApplicationGatewayFirewallPolicyManagedRule + [-ManagedRuleSet ] + [-Exclusion ] + [-Exception ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$condition = New-AzApplicationGatewayFirewallPolicyManagedRule -ManagedRuleSet $managedRuleSet -Exclusion $exclusion1,$exclusion2 +``` + +The command creates managed rules a list of ManagedRuleSet with $managedRuleSet and an exclusion list with entries as $exclusion1, $exclusion2. + + +#### New-AzApplicationGatewayFirewallPolicyManagedRuleGroupOverride + +#### SYNOPSIS +Creates RuleGroupOverride entry in ManagedRuleSets for the firewall policy. + +#### SYNTAX + +```powershell +New-AzApplicationGatewayFirewallPolicyManagedRuleGroupOverride -RuleGroupName + [-Rule ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$overrideEntry = New-AzApplicationGatewayFirewallPolicyManagedRuleGroupOverride -RuleGroupName $ruleName -Rule $rule1,$rule2 +``` + +Creates a RuleGroupOverride entry with group name as $ruleName and Rules as $rule1, $rule2. Assigns the same to $overrideEntry + + +#### New-AzApplicationGatewayFirewallPolicyManagedRuleOverride + +#### SYNOPSIS +Creates a managedRuleOverride entry for RuleGroupOverrideGroup entry. + +#### SYNTAX + +```powershell +New-AzApplicationGatewayFirewallPolicyManagedRuleOverride -RuleId [-State ] [-Action ] + [-Sensitivity ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$ruleOverrideEntry = New-AzApplicationGatewayFirewallPolicyManagedRuleOverride -RuleId $ruleId -State Disabled +``` + +Creates a ruleOverride Entry with RuleId as $ruleId and State as Disabled. + ++ Example 2 +```powershell +$ruleOverrideEntry = New-AzApplicationGatewayFirewallPolicyManagedRuleOverride -RuleId $ruleId -State Enabled -Action Log +``` + +Creates a ruleOverride Entry with RuleId as $ruleId, State as Enabled and Action as Log. + ++ Example 3 +```powershell +$ruleOverrideEntry = New-AzApplicationGatewayFirewallPolicyManagedRuleOverride -RuleId $ruleId -State Enabled -Action Log -Sensitivity Low +``` + +Creates a ruleOverride Entry with RuleId as $ruleId, State as Enabled, Action as Log and Sensitivity as Low. + + +#### New-AzApplicationGatewayFirewallPolicyManagedRuleSet + +#### SYNOPSIS +Creates a ManagedRuleSet for the firewallPolicy + +#### SYNTAX + +```powershell +New-AzApplicationGatewayFirewallPolicyManagedRuleSet -RuleSetType -RuleSetVersion + [-RuleGroupOverride ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$managedRuleSet = New-AzApplicationGatewayFirewallPolicyManagedRuleSet -RuleSetType $ruleSetType ` +-RuleSetVersion $ruleSetVersion -RuleGroupOverride $ruleGroupOverride1, $ruleGroupOverride2 +``` + +Creates a ManagedRuleSet with ruleSetType as $ruleSetType, ruleSetVersion as $ruleSetVersion and RuleGroupOverrides as a list with entires as $ruleGroupOverride1, $ruleGroupOverride2 +The new ManagedRuleSet is assigned to $managedRuleSet + + +#### New-AzApplicationGatewayFirewallPolicySetting + +#### SYNOPSIS +Creates a policy setting for the firewall policy + +#### SYNTAX + +```powershell +New-AzApplicationGatewayFirewallPolicySetting [-Mode ] [-State ] + [-DisableRequestBodyEnforcement ] [-RequestBodyInspectLimitInKB ] [-DisableRequestBodyCheck] + [-MaxRequestBodySizeInKb ] [-DisableFileUploadEnforcement ] [-MaxFileUploadInMb ] + [-CustomBlockResponseStatusCode ] [-CustomBlockResponseBody ] + [-LogScrubbing ] + [-JSChallengeCookieExpirationInMins ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$condition = New-AzApplicationGatewayFirewallPolicySetting -State $enabledState -Mode $enabledMode -DisableRequestBodyCheck -MaxFileUploadInMb $fileUploadLimitInMb -MaxRequestBodySizeInKb $maxRequestBodySizeInKb +``` + +The command creates a policy setting with state as $enabledState, mode as $enabledMode, RequestBodyCheck as false, FileUploadLimitInMb as $fileUploadLimitInMb and MaxRequestBodySizeInKb as $maxRequestBodySizeInKb. +The new policySettings is stored to $condition. + ++ Example 2 +```powershell +$condition = New-AzApplicationGatewayFirewallPolicySetting -State $enabledState -Mode $enabledMode -DisableRequestBodyCheck -MaxFileUploadInMb $fileUploadLimitInMb -MaxRequestBodySizeInKb $maxRequestBodySizeInKb -LogScrubbing $logScrubbingRuleConfig +``` + +The command creates a policy setting with state as $enabledState, mode as $enabledMode, RequestBodyCheck as false, FileUploadLimitInMb as $fileUploadLimitInMb and MaxRequestBodySizeInKb as $maxRequestBodySizeInKb with a scrubbing rule as $logScrubbingRuleConfig. +The new policySettings is stored to $condition. + ++ Example 3 +```powershell +$condition = New-AzApplicationGatewayFirewallPolicySetting -State $enabledState -Mode $enabledMode -DisableRequestBodyEnforcement true -RequestBodyInspectLimitInKB 2000 -DisableRequestBodyCheck -MaxFileUploadInMb $fileUploadLimitInMb -DisableFileUploadEnforcement true -MaxRequestBodySizeInKb $maxRequestBodySizeInKb +``` + +The command creates a policy setting with state as $enabledState, mode as $enabledMode, RequestBodyEnforcement as false, RequestBodyInspectLimitInKB as 2000, RequestBodyCheck as false, FileUploadLimitInMb as $fileUploadLimitInMb, FileUploadEnforcement as false and MaxRequestBodySizeInKb as $maxRequestBodySizeInKb. +The new policySettings is stored to $condition. + ++ Example 4 +```powershell +$condition = New-AzApplicationGatewayFirewallPolicySetting -State $enabledState -Mode $enabledMode -DisableRequestBodyCheck -MaxFileUploadInMb $fileUploadLimitInMb -MaxRequestBodySizeInKb $maxRequestBodySizeInKb -JSChallengeCookieExpirationInMins $jsChallengeCookieExpirationInMins +``` + +The command creates a policy setting with state as $enabledState, mode as $enabledMode, RequestBodyCheck as false, FileUploadLimitInMb as $fileUploadLimitInMb and MaxRequestBodySizeInKb as $maxRequestBodySizeInKb, JSChallengeCookieExpirationInMins as $jsChallengeCookieExpirationInMins. +The new policySettings is stored to $condition. + + +#### New-AzApplicationGatewayFrontendIPConfig + +#### SYNOPSIS +Creates a front-end IP configuration for an application gateway. + +#### SYNTAX + ++ SetByResourceId +```powershell +New-AzApplicationGatewayFrontendIPConfig -Name [-PrivateIPAddress ] [-SubnetId ] + [-PublicIPAddressId ] [-PrivateLinkConfigurationId ] + [-DefaultProfile ] [] +``` + ++ SetByResource +```powershell +New-AzApplicationGatewayFrontendIPConfig -Name [-PrivateIPAddress ] [-Subnet ] + [-PublicIPAddress ] + [-PrivateLinkConfiguration ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Create a front-end IP configuration using a public IP resource object +```powershell +$PublicIP = New-AzPublicIpAddress -ResourceGroupName "ResourceGroup01" -Name "PublicIP01" -location "West US" -AllocationMethod Dynamic +$FrontEnd = New-AzApplicationGatewayFrontendIPConfig -Name "FrontEndIP01" -PublicIPAddress $PublicIP +``` + +The first command creates a public IP resource object and stores it in the $PublicIP variable. +The second command uses $PublicIP to create a new front-end IP configuration named FrontEndIP01 and stores it in the $FrontEnd variable. + ++ Example 2: Create a static private IP as the front-end IP address +```powershell +$VNet = Get-AzVirtualNetwork -Name "VNet01" -ResourceGroupName "ResourceGroup01" +$Subnet = Get-AzVirtualNetworkSubnetConfig -Name "Subnet01" -VirtualNetwork $VNet +$FrontEnd = New-AzApplicationGatewayFrontendIPConfig -Name "FrontendIP02" -Subnet $Subnet -PrivateIPAddress 10.0.1.1 +``` + +The first command gets a virtual network named VNet01 that belongs to the resource group named ResourceGroup01, and stores it in the $VNet variable. +The second command gets a subnet configuration named Subnet01 using $VNet from the first command and stores it in the $Subnet variable. +The third command creates a front-end IP configuration named FrontEndIP02 using $Subnet from the second command and the private IP address 10.0.1.1, and then stores it in the $FrontEnd variable. + ++ Example 3: Create a dynamic private IP as the front-end IP address +```powershell +$VNet = Get-AzVirtualNetwork -Name "VNet01" -ResourceGroupName "ResourceGroup01" +$Subnet = Get-AzVirtualNetworkSubnetConfig -Name "Subnet01" -VirtualNetwork $VNet +$FrontEnd = New-AzApplicationGatewayFrontendIPConfig -Name "FrontendIP03" -Subnet $Subnet +``` + +The first command gets a virtual network named VNet01 that belongs to the resource group named ResourceGroup01, and stores it in the $VNet variable. +The second command gets a subnet configuration named Subnet01 using $VNet from the first command and stores it in the $Subnet variable. +The third command creates a front-end IP configuration named FrontEndIP03 using $Subnet from the second command, and stores it in the $FrontEnd variable. + + +#### Add-AzApplicationGatewayFrontendIPConfig + +#### SYNOPSIS +Adds a front-end IP configuration to an application gateway. + +#### SYNTAX + ++ SetByResourceId +```powershell +Add-AzApplicationGatewayFrontendIPConfig -ApplicationGateway -Name + [-PrivateIPAddress ] [-SubnetId ] [-PublicIPAddressId ] + [-PrivateLinkConfigurationId ] [-DefaultProfile ] + [] +``` + ++ SetByResource +```powershell +Add-AzApplicationGatewayFrontendIPConfig -ApplicationGateway -Name + [-PrivateIPAddress ] [-Subnet ] [-PublicIPAddress ] + [-PrivateLinkConfiguration ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Add a public IP as the front-end IP address +```powershell +$PublicIp = New-AzPublicIpAddress -ResourceGroupName "ResourceGroup01" -Name "PublicIp01" -location "West US" -AllocationMethod Dynamic +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$AppGw = Add-AzApplicationGatewayFrontendIPConfig -ApplicationGateway $AppGw -Name "FrontEndIp01" -PublicIPAddress $PublicIp +``` + +The first command creates a public IP address object and stores it in the $PublicIp variable. +The second command gets the application gateway named ApplicationGateway01 that belongs to the resource group named ResourceGroup01, and stores it in the $AppGw variable. +The third command adds the front-end IP configuration named FrontEndIp01, for the gateway in $AppGw, using the address stored in $PublicIp. + ++ Example 2: Add a static private IP as the front-end IP address +```powershell +$VNet = Get-AzVirtualNetwork -Name "VNet01" -ResourceGroupName "ResourceGroup01" +$Subnet = Get-AzVirtualNetworkSubnetConfig -Name "Subnet01" -VirtualNetwork $VNet +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$AppGw = Add-AzApplicationGatewayFrontendIPConfig -ApplicationGateway $AppGw -Name "FrontendIP02" -Subnet $Subnet -PrivateIPAddress 10.0.1.1 +``` + +The first command gets a virtual network named VNet01 that belongs to the resource group named ResourceGroup01, and stores it in the $VNet variable. +The second command gets a subnet configuration named Subnet01 using $VNet from the first command and stores it in the $Subnet variable. +The third command gets the application gateway named ApplicationGateway01 that belongs to the resource group named ResourceGroup01, and stores it in the $AppGw variable. +The fourth command adds a front-end IP configuration named FrontendIP02 using $Subnet from the second command and the private IP address 10.0.1.1. + ++ Example 3: Add a dynamic private IP as the front-end IP address +```powershell +$VNet = Get-AzVirtualNetwork -Name "VNet01" -ResourceGroupName "ResourceGroup01" +$Subnet = Get-AzVirtualNetworkSubnetConfig -Name "Subnet01" -VirtualNetwork $VNet +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$AppGw = Add-AzApplicationGatewayFrontendIPConfig -ApplicationGateway $AppGw -Name "FrontendIP02" -Subnet $Subnet +``` + +The first command gets a virtual network named VNet01 that belongs to the resource group named ResourceGroup01, and stores it in the $VNet variable. +The second command gets a subnet configuration named Subnet01 using $VNet from the first command and stores it in the $Subnet variable. +The third command gets the application gateway named ApplicationGateway01 that belongs to the resource group named ResourceGroup01, and stores it in the $AppGw variable. +The fourth command adds a front-end IP configuration named FrontendIP02 using $Subnet from the second command. + + +#### Get-AzApplicationGatewayFrontendIPConfig + +#### SYNOPSIS +Gets the front-end IP configuration of an application gateway. + +#### SYNTAX + +```powershell +Get-AzApplicationGatewayFrontendIPConfig [-Name ] -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Get a specified front-end IP configuration +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$FrontEndIP= Get-AzApplicationGatewayFrontendIPConfig -Name "FrontEndIP01" -ApplicationGateway $AppGw +``` + +The first command gets an application gateway named ApplicationGateway01 from the resource group named ResourceGroup01, and stores it in the $AppGw variable.The second command gets the front-end IP configuration named FrontEndIP01 from $AppGw and stores it in the $FrontEndIP variable. + ++ Example 2: Get a list of front-end IP configurations +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$FrontEndIPs= Get-AzApplicationGatewayFrontendIPConfig -ApplicationGateway $AppGw +``` + +The first command gets an application gateway named ApplicationGateway01 from the resource group named ResourceGroup01, and stores it in the $AppGw variable.The second command gets a list of the front-end IP configurations from $AppGw and stores it in the $FrontEndIPs variable. + + +#### Remove-AzApplicationGatewayFrontendIPConfig + +#### SYNOPSIS +Removes a front-end IP configuration from an application gateway. + +#### SYNTAX + +```powershell +Remove-AzApplicationGatewayFrontendIPConfig -Name -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Remove a front-end IP configuration +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +Remove-AzApplicationGatewayFrontendIPConfig -ApplicationGateway $AppGw -Name "FrontEndIP02" +Set-AzApplicationGateway -ApplicationGateway $AppGW +``` + +The first command gets an application gateway named ApplicationGateway01 and stores it in the $AppGw variable. +The second command removes the front-end IP configuration named FrontEndIP02 from the application gateway stored in $AppGw. +The last command updates the application gateway. + + +#### Set-AzApplicationGatewayFrontendIPConfig + +#### SYNOPSIS +Modifies a front-end IP address configuration. + +#### SYNTAX + ++ SetByResourceId +```powershell +Set-AzApplicationGatewayFrontendIPConfig -ApplicationGateway -Name + [-PrivateIPAddress ] [-SubnetId ] [-PublicIPAddressId ] + [-PrivateLinkConfigurationId ] [-DefaultProfile ] + [] +``` + ++ SetByResource +```powershell +Set-AzApplicationGatewayFrontendIPConfig -ApplicationGateway -Name + [-PrivateIPAddress ] [-Subnet ] [-PublicIPAddress ] + [-PrivateLinkConfiguration ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Set a public IP as front-end IP of an application gateway +```powershell +$PublicIp = New-AzPublicIpAddress -ResourceGroupName "ResourceGroup01" -Name "PublicIp01" -location "West US" -AllocationMethod Dynamic +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$AppGw = Set-AzApplicationGatewayFrontendIPConfig -ApplicationGateway $AppGw -Name "FrontEndIp01" -PublicIPAddress $PublicIp +``` + +The first command creates a public IP address object and stores it in the $PublicIp variable. +The second command gets the application gateway named ApplicationGateway01 that belongs to the resource group named ResourceGroup01, and stores it in the $AppGw variable. +The third command updates the front-end IP configuration named FrontEndIp01, for the gateway in $AppGw, using the address stored in $PublicIp. + ++ Example 2: Set a static private IP as the front-end IP of an application gateway +```powershell +$VNet = Get-AzVirtualNetwork -Name "VNet01" -ResourceGroupName "ResourceGroup01" +$Subnet = Get-AzVirtualNetworkSubnetConfig -Name "Subnet01" -VirtualNetwork $VNet +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$AppGw = Set-AzApplicationGatewayFrontendIPConfig -ApplicationGateway $AppGw -Name "FrontendIP02" -Subnet $Subnet -PrivateIPAddress 10.0.1.1 +``` + +The first command gets a virtual network named VNet01 that belongs to the resource group named ResourceGroup01, and stores it in the $VNet variable. +The second command gets a subnet configuration named Subnet01 using $VNet from the first command and stores it in the $Subnet variable. +The third command gets the application gateway named ApplicationGateway01 that belongs to the resource group named ResourceGroup01, and stores it in the $AppGw variable. +The fourth command adds a front-end IP configuration named FrontendIP02 using $Subnet from the second command and the private IP address 10.0.1.1. + ++ Example 3: Set a dynamic private IP as the front-end IP of an application gateway +```powershell +$VNet = Get-AzVirtualNetwork -Name "VNet01" -ResourceGroupName "ResourceGroup01" +$Subnet = Get-AzVirtualNetworkSubnetConfig -Name "Subnet01" -VirtualNetwork $VNet +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$AppGw = Set-AzApplicationGatewayFrontendIPConfig -ApplicationGateway $AppGw -Name "FrontendIP02" -Subnet $Subnet +``` + +The first command gets a virtual network named VNet01 that belongs to the resource group named ResourceGroup01, and stores it in the $VNet variable. +The second command gets a subnet configuration named Subnet01 using $VNet from the first command and stores it in the $Subnet variable. +The third command gets the application gateway named ApplicationGateway01 that belongs to the resource group named ResourceGroup01, and stores it in the $AppGw variable. +The fourth command adds a front-end IP configuration named FrontendIP02 using $Subnet from the second command. + + +#### New-AzApplicationGatewayFrontendPort + +#### SYNOPSIS +Creates a front-end port for an application gateway. + +#### SYNTAX + +```powershell +New-AzApplicationGatewayFrontendPort -Name -Port [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Example1: Create a front-end port +```powershell +$FrontEndPort = New-AzApplicationGatewayFrontendPort -Name "FrontEndPort01" -Port 80 +``` + +This command creates a front-end port named FrontEndPort01 on port 80 and stores the result in the variable named $FrontEndPort. + + +#### Add-AzApplicationGatewayFrontendPort + +#### SYNOPSIS +Adds a front-end port to an application gateway. + +#### SYNTAX + +```powershell +Add-AzApplicationGatewayFrontendPort -ApplicationGateway -Name -Port + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Add a front-end port to an application gateway +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$AppGw = Add-AzApplicationGatewayFrontendPort -ApplicationGateway $AppGw -Name "FrontEndPort01" -Port 80 +``` + +The first command gets the application gateway named ApplicationGateway01 that belongs to the resource group named ResourceGroup01 and stores it in the $AppGw variable. +The second command adds port 80 as a front-end port for the application gateway stored in $AppGw and names the port FrontEndPort01. + + +#### Get-AzApplicationGatewayFrontendPort + +#### SYNOPSIS +Gets the front-end port of an application gateway. + +#### SYNTAX + +```powershell +Get-AzApplicationGatewayFrontendPort [-Name ] -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Get a specified front-end port +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$FrontEndPort = Get-AzApplicationGatewayFrontendPort -Name "FrontEndPort01" -ApplicationGateway $AppGw +``` + +The first command gets an application gateway named ApplicationGateway01 from the resource group named ResourceGroup01, and stores it in the $AppGw variable. +The second command gets the front-end port named FrontEndPort01 from $AppGw and stores it in the $FrontEndPort variable. + ++ Example 2: Get a list of front-end ports +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$FrontEndPorts = Get-AzApplicationGatewayFrontendPort -ApplicationGateway $AppGw +``` + +The first command gets an application gateway named ApplicationGateway01 from the resource group named ResourceGroup01, and stores it in the $AppGw variable. +The second command gets a list of the front-end ports from $AppGw and stores it in the $FrontEndPorts variable. + + +#### Remove-AzApplicationGatewayFrontendPort + +#### SYNOPSIS +Removes a front-end port from an application gateway. + +#### SYNTAX + +```powershell +Remove-AzApplicationGatewayFrontendPort -Name -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example: Remove a front-end port from an application gateway +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +Remove-AzApplicationGatewayFrontendPort -ApplicationGateway $AppGw -Name "FrontEndPort02" +Set-AzApplicationGateway -ApplicationGateway $AppGW +``` + +The first command gets an application gateway named ApplicationGateway01 that belongs to the resource group named ResourceGroup01 and stores the gateway in $AppGw variable. +The second command removes the port named FrontEndPort02 from the application gateway. +The last command updates the application gateway. + + +#### Set-AzApplicationGatewayFrontendPort + +#### SYNOPSIS +Modifies a front-end port for an application gateway. + +#### SYNTAX + +```powershell +Set-AzApplicationGatewayFrontendPort -ApplicationGateway -Name -Port + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Set an application gateway front-end port to 80 +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$AppGw = Set-AzApplicationGatewayFrontendPort -ApplicationGateway $AppGw -Name "FrontEndPort01" -Port 80 +``` + +The first command gets the application gateway named ApplicationGateway01 that belongs to the +resource group named ResourceGroup01 and stores it in the $AppGw variable. +The second command modifies the gateway in $AppGw to use port 80 for the front-end port named +FrontEndPort01. + + +#### New-AzApplicationGatewayHeaderValueMatcher + +#### SYNOPSIS +Creates a **HeaderValueMatcher** object configuration to use in **ApplicationGatewayRewriteRuleHeaderConfiguration** for an application gateway. + +#### SYNTAX + +```powershell +New-AzApplicationGatewayHeaderValueMatcher -Pattern [-IgnoreCase] [-Negate] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$hvm = New-AzApplicationGatewayHeaderValueMatcher -Pattern ".*" -IgnoreCase -Negate +$requestHeaderConfiguration01 = New-AzApplicationGatewayRewriteRuleHeaderConfiguration -HeaderName "Set-Cookie" -HeaderValue "val" -HeaderValueMatcher $headerValueMatcher +``` + +This command creates a HeaderValueMatcher configuration and stores the result in the variable named $hvm and then use it in a ApplicationGatewayRewriteRuleHeaderConfiguration object. + + +#### New-AzApplicationGatewayHttpListener + +#### SYNOPSIS +Creates an HTTP listener for an application gateway. + +#### SYNTAX + ++ SetByResourceId +```powershell +New-AzApplicationGatewayHttpListener -Name [-FrontendIPConfigurationId ] + [-FrontendPortId ] [-SslCertificateId ] [-FirewallPolicyId ] [-SslProfileId ] + [-HostName ] [-HostNames ] [-RequireServerNameIndication ] -Protocol + [-CustomErrorConfiguration ] [-DefaultProfile ] + [] +``` + ++ SetByResource +```powershell +New-AzApplicationGatewayHttpListener -Name + [-FrontendIPConfiguration ] + [-FrontendPort ] + [-FirewallPolicy ] + [-SslCertificate ] [-SslProfile ] + [-HostName ] [-HostNames ] [-RequireServerNameIndication ] -Protocol + [-CustomErrorConfiguration ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Create an HTTP listener +```powershell +$Listener = New-AzApplicationGatewayHttpListener -Name "Listener01" -Protocol "Http" -FrontendIpConfiguration $FIp01 -FrontendPort $FP01 +``` + +This command creates an HTTP listener named Listener01 and stores the result in the variable named $Listener. + ++ Example 2: Create an HTTP listener with SSL +```powershell +$Listener = New-AzApplicationGatewayHttpListener -Name "Listener01" -Protocol "Https" -FrontendIpConfiguration $FIp01 -FrontendPort $FP01 -SslCertificate $SSLCert01 +``` + +This command creates an HTTP listener that uses SSL offload and provides the SSL certificate in the $SSLCert01 variable. +The command stores the result in the variable named $Listener. + ++ Example 3: Create an HTTP listener with firewall-policy +```powershell +$Listener = New-AzApplicationGatewayHttpListener -Name "Listener01" -Protocol "Http" -FrontendIpConfiguration $FIp01 -FrontendPort $FP01 -FirewallPolicy $firewallPolicy +``` + +This command creates an HTTP listener named Listener01, FirewallPolicy as $firewallPolicy and stores the result in the variable named $Listener. + ++ Example 4: Add a HTTPS listener with SSL and HostNames +```powershell +$Listener = New-AzApplicationGatewayHttpListener -Name "Listener01" -Protocol "Https" -FrontendIpConfiguration $FIp01 -FrontendPort $FP01 -SslCertificate $SSLCert01 -HostNames "*.contoso.com","www.microsoft.com" +``` + +This command creates an HTTP listener that uses SSL offload and provides the SSL certificate in the $SSLCert01 variable along with two HostNames. +The command stores the result in the variable named $Listener. + + +#### Add-AzApplicationGatewayHttpListener + +#### SYNOPSIS +Adds an HTTP listener to an application gateway. + +#### SYNTAX + ++ SetByResourceId +```powershell +Add-AzApplicationGatewayHttpListener -ApplicationGateway -Name + [-FrontendIPConfigurationId ] [-FrontendPortId ] [-SslCertificateId ] + [-FirewallPolicyId ] [-SslProfileId ] [-HostName ] [-HostNames ] + [-RequireServerNameIndication ] -Protocol + [-CustomErrorConfiguration ] [-DefaultProfile ] + [] +``` + ++ SetByResource +```powershell +Add-AzApplicationGatewayHttpListener -ApplicationGateway -Name + [-FrontendIPConfiguration ] + [-FrontendPort ] + [-FirewallPolicy ] + [-SslCertificate ] [-SslProfile ] + [-HostName ] [-HostNames ] [-RequireServerNameIndication ] -Protocol + [-CustomErrorConfiguration ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Add a HTTP listener +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$Appgw = Add-AzApplicationGatewayHttpListener -ApplicationGateway $AppGw -Name "listener01" -Protocol "Http" -FrontendIpConfiguration $FIP01 -FrontendPort $FP01 +``` + +The first command gets the application gateway and stores it in the $AppGw variable.The second command adds the HTTP listener to the application gateway. + ++ Example 2: Add a HTTPS listener with SSL +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$AppGw = Add-AzApplicationGatewayHttpListener -ApplicationGateway $AppGw -Name "Listener01" -Protocol "Https" -FrontendIpConfiguration $FIP01 -FrontendPort $FP01 -SslCertificate $SSLCert01 +``` + +The first command gets the application gateway and stores it in the $AppGw variable. +The second command adds the listener, which uses the HTTPS protocol, to the application gateway. + ++ Example 3: Add a HTTPS listener with SSL and HostNames +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$AppGw = Add-AzApplicationGatewayHttpListener -ApplicationGateway $AppGw -Name "Listener01" -Protocol "Https" -FrontendIpConfiguration $FIP01 -FrontendPort $FP01 -SslCertificate $SSLCert01 -HostNames "*.contoso.com","www.microsoft.com" +``` + +The first command gets the application gateway and stores it in the $AppGw variable. +The second command adds the listener, which uses the HTTPS protocol, with SSL Certificates and HostNames, to the application gateway. + + +#### Get-AzApplicationGatewayHttpListener + +#### SYNOPSIS +Gets the HTTP listener of an application gateway. + +#### SYNTAX + +```powershell +Get-AzApplicationGatewayHttpListener [-Name ] -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Get a specific HTTP listener +```powershell +$Appgw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$Listener = Get-AzApplicationGatewayHttpListener -Name "Listener01" -ApplicationGateway $Appgw +``` + +This command gets an HTTP listener named Listener01. + ++ Example 2: Get a list of HTTP listeners +```powershell +$Appgw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$Listeners = Get-AzApplicationGatewayHttpListener -ApplicationGateway $Appgw +``` + +This command gets a list of HTTP listeners. + + +#### Remove-AzApplicationGatewayHttpListener + +#### SYNOPSIS +Removes an HTTP listener from an application gateway. + +#### SYNTAX + +```powershell +Remove-AzApplicationGatewayHttpListener -Name -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Remove an application gateway HTTP listener +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +Remove-AzApplicationGatewayHttpListener -ApplicationGateway $AppGw -Name "Listener02" +Set-AzApplicationGateway -ApplicationGateway $AppGW +``` + +The first command gets an application gateway and stores it in the $AppGw variable. +The second command removes the HTTP listener named Listener02 from the application gateway stored in $AppGw. +The last command updates the application gateway. + + +#### Set-AzApplicationGatewayHttpListener + +#### SYNOPSIS +Modifies an HTTP listener for an application gateway. + +#### SYNTAX + ++ SetByResourceId +```powershell +Set-AzApplicationGatewayHttpListener -ApplicationGateway -Name + [-FrontendIPConfigurationId ] [-FrontendPortId ] [-SslCertificateId ] + [-FirewallPolicyId ] [-SslProfileId ] [-HostName ] [-HostNames ] + [-RequireServerNameIndication ] -Protocol + [-CustomErrorConfiguration ] [-DefaultProfile ] + [] +``` + ++ SetByResource +```powershell +Set-AzApplicationGatewayHttpListener -ApplicationGateway -Name + [-FrontendIPConfiguration ] + [-FrontendPort ] + [-FirewallPolicy ] + [-SslCertificate ] [-SslProfile ] + [-HostName ] [-HostNames ] [-RequireServerNameIndication ] -Protocol + [-CustomErrorConfiguration ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Set an HTTP listener +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$AppGw = Set-AzApplicationGatewayHttpListener -ApplicationGateway $AppGw -Name "Listener01" -Protocol Http -FrontendIpConfiguration $FIP01 -FrontendPort 80 +``` + +The first command gets the application gateway named ApplicationGateway01 that belongs to the resource group named ResourceGroup01 and stores it in the $AppGw variable. +The second command sets the HTTP listener for the gateway to use the front-end configuration stored in $FIP01 with the HTTP protocol on port 80. + ++ Example 2: Add a HTTPS listener with SSL and HostNames +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$AppGw = Set-AzApplicationGatewayHttpListener -ApplicationGateway $AppGw -Name "Listener01" -Protocol "Https" -FrontendIpConfiguration $FIP01 -FrontendPort $FP01 -SslCertificate $SSLCert01 -HostNames "*.contoso.com,www.microsoft.com" +``` + +The first command gets the application gateway and stores it in the $AppGw variable. +The second command adds the listener, which uses the HTTPS protocol, with SSL Certificates and HostNames, to the application gateway. + + +#### Add-AzApplicationGatewayHttpListenerCustomError + +#### SYNOPSIS +Adds a custom error to a http listener of an application gateway. + +#### SYNTAX + +```powershell +Add-AzApplicationGatewayHttpListenerCustomError -HttpListener + -StatusCode -CustomErrorPageUrl [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Adds custom error to http listener level +```powershell +$customError502Url = "https://mycustomerrorpages.blob.core.windows.net/errorpages/502.htm" +$updatedlistener = Add-AzApplicationGatewayHttpListenerCustomError -HttpListener $listener01 -StatusCode HttpStatus502 -CustomErrorPageUrl $customError502Url +``` + +This command adds a custom error of http status code 502 to the http listener $listener01, and return the updated listener. + + +#### Get-AzApplicationGatewayHttpListenerCustomError + +#### SYNOPSIS +Gets custom error(s) from a http listener of an application gateway. + +#### SYNTAX + +```powershell +Get-AzApplicationGatewayHttpListenerCustomError [-StatusCode ] + -HttpListener [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Gets a custom error in a http listener +```powershell +$ce = Get-AzApplicationGatewayHttpListenerCustomError -HttpListener $listener01 -StatusCode HttpStatus502 +``` + +This command gets and returns the custom error of http status code 502 from the http listener $listener01. + ++ Example 2: Gets the list of all custom errors in a http listener +```powershell +$ces = Get-AzApplicationGatewayHttpListenerCustomError -HttpListener $listener01 +``` + +This command gets and returns the list of all custom errors from the http listener $listener01. + + +#### Remove-AzApplicationGatewayHttpListenerCustomError + +#### SYNOPSIS +Removes a custom error from a http listener of an application gateway. + +#### SYNTAX + +```powershell +Remove-AzApplicationGatewayHttpListenerCustomError -StatusCode + -HttpListener [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Removes custom error from a http listener +```powershell +Remove-AzApplicationGatewayHttpListenerCustomError -HttpListener $listener01 -StatusCode HttpStatus502 +``` + +This command removes the custom error of http status code 502 from the http listener $listener01, and return the updated listener. + + +#### Set-AzApplicationGatewayHttpListenerCustomError + +#### SYNOPSIS +Updates a custom error in a http listener of an application gateway. + +#### SYNTAX + +```powershell +Set-AzApplicationGatewayHttpListenerCustomError -HttpListener + -StatusCode -CustomErrorPageUrl [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Updates a custom error from a http listener +```powershell +$customError502Url = "https://mycustomerrorpages.blob.core.windows.net/errorpages/502.htm" +$updatedlistener = Set-AzApplicationGatewayHttpListenerCustomError -HttpListener $listener01 -StatusCode HttpStatus502 -CustomErrorPageUrl $customError502Url +``` + +This command updates the custom error of http status code 502 in the http listener $listener01, and returns the updated listener. + + +#### New-AzApplicationGatewayIdentity + +#### SYNOPSIS +Creates an identity object for an application gateway. This will hold reference to the user assigned identity. + +#### SYNTAX + +```powershell +New-AzApplicationGatewayIdentity -UserAssignedIdentityId [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$identity = New-AzUserAssignedIdentity -Name $identityName -ResourceGroupName $rgName -Location $location +$appgwIdentity = New-AzApplicationGatewayIdentity -UserAssignedIdentity $identity.Id +$gateway = New-AzApplicationGateway -Name "AppGateway01" -ResourceGroupName "ResourceGroup01" -Location "West US" -Identity $appgwIdentity <..> +``` + +In this example, we create a user assigned identity and then reference it in identity object used with Application Gateway. + + +#### Get-AzApplicationGatewayIdentity + +#### SYNOPSIS +Get identity assigned to the application gateway. + +#### SYNTAX + +```powershell +Get-AzApplicationGatewayIdentity -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$gw = Get-AzApplicationGateway -Name $appgwName -ResourceGroupName $resgpName +$identity = Get-AzApplicationGatewayIdentity -ApplicationGateway $gw +``` + +This examples shows how to get application gateway identity from Application Gateway. + + +#### Remove-AzApplicationGatewayIdentity + +#### SYNOPSIS +Removes a identity from an application gateway. + +#### SYNTAX + +```powershell +Remove-AzApplicationGatewayIdentity -ApplicationGateway + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$appgw = Remove-AzApplicationGatewayIdentity -ApplicationGateway $appgw +$updatedgateway = Set-AzApplicationGateway -ApplicationGateway $appgw +``` + +In this example, we remove identity from an existing application gateway. +Note: If the gateway is referencing a keyvault secret, then it is also important to remove those ssl certificate references along this operation. + + +#### Set-AzApplicationGatewayIdentity + +#### SYNOPSIS +Updates a identity assigned to the application gateway. + +#### SYNTAX + +```powershell +Set-AzApplicationGatewayIdentity -ApplicationGateway -UserAssignedIdentityId + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$appgw = Get-AzApplicationGateway -Name $appgwName -ResourceGroupName $rgName +$identity = New-AzUserAssignedIdentity -Name $identityName -ResourceGroupName $rgName -Location $location +$appgwIdentity = Set-AzApplicationGatewayIdentity -UserAssignedIdentity $identity.Id -ApplicationGateway $appgw +$updatedAppGw = Set-AzApplicationGateway -ApplicationGateway $appgw +``` + +In this example, we assign a user assigned identity to an existing application gateway. +Note: This identity should have access to the keyvault from which the certificates/secrets will be referenced. + + +#### New-AzApplicationGatewayIPConfiguration + +#### SYNOPSIS +Creates an IP configuration for an application gateway. + +#### SYNTAX + ++ SetByResourceId +```powershell +New-AzApplicationGatewayIPConfiguration -Name [-SubnetId ] + [-DefaultProfile ] [] +``` + ++ SetByResource +```powershell +New-AzApplicationGatewayIPConfiguration -Name [-Subnet ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Create an IP configuration for an application gateway. +```powershell +$VNet = Get-AzVirtualNetwork -Name "VNet01" -ResourceGroupName "ResourceGroup01" +$Subnet = Get-AzVirtualNetworkSubnetConfig -Name "Subnet01" -VirtualNetwork $VNet +$GatewayIpConfig = New-AzApplicationGatewayIPConfiguration -Name "AppGwSubnet01" -Subnet $Subnet +``` + +The first command gets a virtual network named VNet01 that belongs to the resource group named ResourceGroup01. +The second command gets the subnet configuration for the subnet that the virtual network in the previous command belongs to, and stores it in the $Subnet variable. +The third command creates the IP configuration using $Subnet. + + +#### Add-AzApplicationGatewayIPConfiguration + +#### SYNOPSIS +Adds an IP configuration to an application gateway. + +#### SYNTAX + ++ SetByResourceId +```powershell +Add-AzApplicationGatewayIPConfiguration -ApplicationGateway -Name + [-SubnetId ] [-DefaultProfile ] + [] +``` + ++ SetByResource +```powershell +Add-AzApplicationGatewayIPConfiguration -ApplicationGateway -Name + [-Subnet ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Add an virtual network configuration to an application gateway +```powershell +$Vnet = Get-AzVirtualNetwork -Name "Vnet01" -ResourceGroupName "ResourceGroup01" +$Subnet = Get-AzVirtualNetworkSubnetConfig -Name "Subnet01" -VirtualNetwork $Vnet +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$AppGw = Add-AzApplicationGatewayIPConfiguration -ApplicationGateway $AppGw -Name "Appgwsubnet01" -Subnet $Subnet +``` + +The first command gets a virtual network. +The second command gets a subnet using the previously created virtual network. +The third command gets the application gateway and stores it in the $AppGw variable. +The fourth command adds the IP configuration to the application gateway stored in $AppGw. + + +#### Get-AzApplicationGatewayIPConfiguration + +#### SYNOPSIS +Gets the IP configuration of an application gateway. + +#### SYNTAX + +```powershell +Get-AzApplicationGatewayIPConfiguration [-Name ] -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Get a specific IP configuration +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$GatewaySubnet = Get-AzApplicationGatewayIPConfiguration -Name "GatewaySubnet01" -ApplicationGateway $AppGw +``` + +The first command gets an application gateway and stores it in the $AppGw variable.The second command gets an IP configuration named GateSubnet01 from the gateway stored in $AppGw. + ++ Example 2: Get a list of IP configurations +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$GatewaySubnets = Get-AzApplicationGatewayIPConfiguration -ApplicationGateway $AppGw +``` + +The first command gets an application gateway and stores it in the $AppGw variable.The second command gets a list of all IP configurations. + + +#### Remove-AzApplicationGatewayIPConfiguration + +#### SYNOPSIS +Removes an IP configuration from an application gateway. + +#### SYNTAX + +```powershell +Remove-AzApplicationGatewayIPConfiguration -Name -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Remove an IP configuration from an Azure application gateway +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +Remove-AzApplicationGatewayIPConfiguration -ApplicationGateway $AppGw -Name "Subnet02" +Set-AzApplicationGateway -ApplicationGateway $AppGW +``` + +The first command gets an application gateway and stores it in the $AppGw variable. +The second command removes the IP configuration named Subnet02 from the application gateway stored in $AppGw. +The last command updates the application gateway. + + +#### Set-AzApplicationGatewayIPConfiguration + +#### SYNOPSIS +Modifies an IP configuration for an application gateway. + +#### SYNTAX + ++ SetByResourceId +```powershell +Set-AzApplicationGatewayIPConfiguration -ApplicationGateway -Name + [-SubnetId ] [-DefaultProfile ] + [] +``` + ++ SetByResource +```powershell +Set-AzApplicationGatewayIPConfiguration -ApplicationGateway -Name + [-Subnet ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Update an IP configuration for an application gateway +```powershell +$VNet = Get-AzVirtualNetwork -Name "VNet01" -ResourceGroupName "ResourceGroup01" +$Subnet = Get-AzVirtualNetworkSubnetConfig -Name "Subnet01" -VirtualNetwork $VNet +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$AppGw = Set-AzApplicationGatewayIPConfiguration -ApplicationGateway $AppGw -Name "AppgwSubnet01" -Subnet $Subnet +``` + +The first command gets the virtual network named VNet01 that belongs to the resource group named ResourceGroup01 and stores it in the $VNet variable. +The second command gets the subnet configuration named Subnet01 using $VNet and stores it in the $Subnet variable. +The third command gets an application gateway named ApplicationGateway01 that belongs to the resource group named ResourceGroup01 and stores it in the $AppGw variable. +The forth command sets the IP configuration of the application gateway stored in $AppGw to the subnet configuration stored in $Subnet. + + +#### New-AzApplicationGatewayListener + +#### SYNOPSIS +Creates an TCP\TLS listener for an application gateway. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +New-AzApplicationGatewayListener -Name + [-FrontendIPConfiguration ] + [-FrontendPort ] [-SslCertificate ] + [-SslProfile ] -Protocol [-HostNames ] + [-DefaultProfile ] [] +``` + ++ SetByResourceId +```powershell +New-AzApplicationGatewayListener -Name [-FrontendIPConfigurationId ] + [-FrontendPortId ] [-SslCertificateId ] [-SslProfileId ] -Protocol + [-HostNames ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Create an TCP listener +```powershell +$Listener = New-AzApplicationGatewayListener -Name "Listener01" -Protocol "Tcp" -FrontendIpConfiguration $FIp01 -FrontendPort $FP01 +``` + +This command creates an Tcp listener named Listener01 and stores the result in the variable named $Listener. + ++ Example 2: Create an TLS listener with SSL +```powershell +$Listener = New-AzApplicationGatewayListener -Name "Listener01" -Protocol "Tls" -FrontendIpConfiguration $FIp01 -FrontendPort $FP01 -SslCertificate $SSLCert01 +``` + +This command creates an Tls listener that uses SSL offload and provides the SSL certificate in the $SSLCert01 variable. +The command stores the result in the variable named $Listener. + + +#### Add-AzApplicationGatewayListener + +#### SYNOPSIS +Adds an listener to an application gateway. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +Add-AzApplicationGatewayListener -ApplicationGateway -Name + [-FrontendIPConfiguration ] + [-FrontendPort ] [-SslCertificate ] + [-SslProfile ] -Protocol [-HostNames ] + [-DefaultProfile ] [] +``` + ++ SetByResourceId +```powershell +Add-AzApplicationGatewayListener -ApplicationGateway -Name + [-FrontendIPConfigurationId ] [-FrontendPortId ] [-SslCertificateId ] + [-SslProfileId ] -Protocol [-HostNames ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Add a listener +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$AppGw = Add-AzApplicationGatewayListener -ApplicationGateway $Appgw -Name "Listener01" -Protocol "TCP" -FrontendIpConfiguration $FIp01 -FrontendPort $FP01 +``` + +The first command gets the application gateway and stores it in the $AppGw variable.The second command adds the listener to the application gateway. + + +#### Get-AzApplicationGatewayListener + +#### SYNOPSIS +Gets the TCP\TLS listener of an application gateway. + +#### SYNTAX + +```powershell +Get-AzApplicationGatewayListener [-Name ] -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Get a specific TCP\TLS listener +```powershell +$Appgw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$Listener = Get-AzApplicationGatewayListener -Name "Listener01" -ApplicationGateway $Appgw +``` + +This command gets a TCP\TLS listener named Listener01. + ++ Example 2: Get a list of TCP\TLS listeners +```powershell +$Appgw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$Listeners = Get-AzApplicationGatewayListener -ApplicationGateway $Appgw +``` + +This command gets a list of TCP\TLS listeners. + + +#### Remove-AzApplicationGatewayListener + +#### SYNOPSIS +Removes a TCP\TLS listener from an application gateway. + +#### SYNTAX + +```powershell +Remove-AzApplicationGatewayListener -Name -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Remove an application gateway TCP\TLS listener +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +Remove-AzApplicationGatewayListener -ApplicationGateway $AppGw -Name "Listener02" +Set-AzApplicationGateway -ApplicationGateway $AppGW +``` + +The first command gets an application gateway and stores it in the $AppGw variable. +The second command removes the TCP\TLS listener named Listener02 from the application gateway stored in $AppGw. +The last command updates the application gateway. + + +#### Set-AzApplicationGatewayListener + +#### SYNOPSIS +Modifies a TCP\TLS listener for an application gateway. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +Set-AzApplicationGatewayListener -ApplicationGateway -Name + [-FrontendIPConfiguration ] + [-FrontendPort ] [-SslCertificate ] + [-SslProfile ] -Protocol [-HostNames ] + [-DefaultProfile ] [] +``` + ++ SetByResourceId +```powershell +Set-AzApplicationGatewayListener -ApplicationGateway -Name + [-FrontendIPConfigurationId ] [-FrontendPortId ] [-SslCertificateId ] + [-SslProfileId ] -Protocol [-HostNames ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Set a TCP listener +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$AppGw = Set-AzApplicationGatewayListener -ApplicationGateway $AppGw -Name "Listener01" -Protocol Tcp -FrontendIpConfiguration $FIP01 -FrontendPort 80 +``` + +The first command gets the application gateway named ApplicationGateway01 that belongs to the resource group named ResourceGroup01 and stores it in the $AppGw variable. +The second command sets the listener for the gateway to use the front-end configuration stored in $FIP01 with the Tcp protocol on port 80. + ++ Example 2: Add a TLS listener with SSL Certificate +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$AppGw = Set-AzApplicationGatewayListener -ApplicationGateway $AppGw -Name "Listener01" -Protocol "Tls" -FrontendIpConfiguration $FIP01 -FrontendPort $FP01 -SslCertificate $SSLCert01 +``` + +The first command gets the application gateway and stores it in the $AppGw variable. +The second command adds the listener, which uses the Tls protocol, with SSL Certificates , to the application gateway. + + +#### New-AzApplicationGatewayPathRuleConfig + +#### SYNOPSIS +Creates an application gateway path rule. + +#### SYNTAX + ++ SetByResourceId +```powershell +New-AzApplicationGatewayPathRuleConfig -Name -Paths [-BackendAddressPoolId ] + [-BackendHttpSettingsId ] [-RewriteRuleSetId ] [-RedirectConfigurationId ] + [-FirewallPolicyId ] [-DefaultProfile ] + [] +``` + ++ SetByResource +```powershell +New-AzApplicationGatewayPathRuleConfig -Name -Paths + [-BackendAddressPool ] + [-BackendHttpSettings ] + [-RewriteRuleSet ] + [-RedirectConfiguration ] + [-FirewallPolicy ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$Gateway = Get-AzApplicationGateway -Name "ContosoApplicationGateway" +$AddressPool = New-AzApplicationGatewayBackendAddressPool -Name "ContosoAddressPool" -BackendIPAddresses "192.168.1.1", "192.168.1.2" +$HttpSettings = New-AzApplicationGatewayBackendHttpSetting -Name "ContosoHttpSettings" -Port 80 -Protocol "Http" -CookieBasedAffinity "Disabled" +$PathRuleConfig = New-AzApplicationGatewayPathRuleConfig -Name "base" -Paths "/base" -BackendAddressPool $AddressPool -BackendHttpSettings $HttpSettings +Add-AzApplicationGatewayUrlPathMapConfig -ApplicationGateway $Gateway -Name "ContosoUrlPathMap" -PathRules $PathRuleConfig -DefaultBackendAddressPool $AddressPool -DefaultBackendHttpSettings $HttpSettings +``` + +These commands create a new application gateway path rule and then use the **Add-AzApplicationGatewayUrlPathMapConfig** cmdlet to assign that rule to an application gateway. +To do this, the first command creates an object reference to the gateway ContosoApplicationGateway. +This object reference is stored in a variable named $Gateway. +The next two commands create a backend address pool and a backend HTTP settings object; these objects (stored in the variables $AddressPool and $HttpSettings) are needed in order to create a path rule object. +The fourth command creates the path rule object and is stored in a variable named $PathRuleConfig. +The fifth command uses **Add-AzApplicationGatewayUrlPathMapConfig** to add the configuration settings and the new path rule contained within those settings to ContosoApplicationGateway. + ++ Example 2 +```powershell +$PathRuleConfig = New-AzApplicationGatewayPathRuleConfig -Name "base" -Paths "/base" -BackendAddressPool $AddressPool -BackendHttpSettings $HttpSettings -FirewallPolicy $firewallPolicy +``` + +These command creates a path-rule with the Name as "base", Paths as "/base", BackendAddressPool as $AddressPool, BackendHttpSettings as $HttpSettings and FirewallPolicy as $firewallPolicy.ngs and the new path rule contained within those settings to ContosoApplicationGateway. + + +#### New-AzApplicationGatewayPrivateLinkConfiguration + +#### SYNOPSIS +Creates a private link configuration for an application gateway + +#### SYNTAX + +```powershell +New-AzApplicationGatewayPrivateLinkConfiguration -Name + -IpConfiguration [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Create an Private Link Configuration with single Ip Configuration +```powershell +$PrivateLinkIpConfiguration1 = New-AzApplicationGatewayPrivateLinkIpConfiguration -Name "ipConfig01" -Subnet $subnet -Primary +$PrivateLinkConfiguration = New-AzApplicationGatewayPrivateLinkConfiguration -Name "privateLinkConfig01" -IpConfiguration $privateLinkIpConfiguration1 +``` + +This command creates an PrivateLink configuration named 'privateLinkConfig01' and stores the result in the variable named $PrivateLinkConfiguration. + ++ Example 2: Create an Private Link Configuration with multiple Ip Configurations +```powershell +$PrivateLinkIpConfiguration1 = New-AzApplicationGatewayPrivateLinkIpConfiguration -Name "ipConfig01" -Subnet $subnet -Primary +$PrivateLinkIpConfiguration2 = New-AzApplicationGatewayPrivateLinkIpConfiguration -Name "ipConfig02" -Subnet $subnet +$PrivateLinkConfiguration = New-AzApplicationGatewayPrivateLinkConfiguration -Name "privateLinkConfig01" -IpConfiguration $privateLinkIpConfiguration1, $privateLinkIpConfiguration2 +``` + +This command creates an PrivateLink configuration named 'privateLinkConfig01' with two ipConfigurations and stores the result in the variable named $PrivateLinkConfiguration. + + +#### Add-AzApplicationGatewayPrivateLinkConfiguration + +#### SYNOPSIS +Adds a private link configuration to an application gateway. + +#### SYNTAX + +```powershell +Add-AzApplicationGatewayPrivateLinkConfiguration -ApplicationGateway -Name + -IpConfiguration [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$PrivateLinkIpConfiguration = New-AzApplicationGatewayPrivateLinkIpConfiguration -Name "ipConfig01" -Subnet $subnet -Primary +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$AppGw = Add-AzApplicationGatewayPrivateLinkConfiguration -ApplicationGateway $AppGw -Name "privateLinkConfig01" -IpConfiguration $PrivateLinkIpConfiguration +``` + +The first command creates a privateLinkIpConfiguration and stores it in the $PrivateLinkIpConfiguration variable. +The second command gets the application gateway named ApplicationGateway01 that belongs to the resource group named ResourceGroup01, and stores it in the $AppGw variable. +The third command adds the private link configuration named privateLinkConfig01, for the gateway in $AppGw + + +#### Get-AzApplicationGatewayPrivateLinkConfiguration + +#### SYNOPSIS +Gets the private link configuration of an application gateway. + +#### SYNTAX + +```powershell +Get-AzApplicationGatewayPrivateLinkConfiguration -ApplicationGateway [-Name ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 : Get a specified private link configuration +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$PrivateLinkConfiguration = Get-AzApplicationGatewayPrivateLinkConfiguration -Name "privateLinkConfig01" -ApplicationGateway $AppGw +``` + +The first command gets an application gateway named ApplicationGateway01 from the resource group named ResourceGroup01, and stores it in the $AppGw variable. +The second command gets the private link configuration named privateLinkConfig01 from $AppGw and stores it in the $PrivateLinkConfiguration variable. + ++ Example 2 : Get a list of private link configuration +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$PrivateLinkConfigurations = Get-AzApplicationGatewayPrivateLinkConfiguration -ApplicationGateway $AppGw +``` + +The first command gets an application gateway named ApplicationGateway01 from the resource group named ResourceGroup01, and stores it in the $AppGw variable. +The second command gets all the private link configurations from $AppGw and stores it in the $PrivateLinkConfigurations variable. + + +#### Remove-AzApplicationGatewayPrivateLinkConfiguration + +#### SYNOPSIS +Removes a privateLink configuration from an application gateway. + +#### SYNTAX + +```powershell +Remove-AzApplicationGatewayPrivateLinkConfiguration -Name -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Remove an application gateway PrivateLink Configuration +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +Remove-AzApplicationGatewayPrivateLinkConfiguration -ApplicationGateway $AppGw -Name "privateLinkConfig01" +Set-AzApplicationGateway -ApplicationGateway $AppGW +``` + +The first command gets an application gateway and stores it in the $AppGw variable. +The second command removes the privateLink configuration named privateLinkConfig01 from the application gateway stored in $AppGw. +The last command updates the application gateway. + + +#### Set-AzApplicationGatewayPrivateLinkConfiguration + +#### SYNOPSIS +Modifies an PrivateLink Configuration for an application gateway. + +#### SYNTAX + +```powershell +Set-AzApplicationGatewayPrivateLinkConfiguration -ApplicationGateway -Name + -IpConfiguration [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Set a PrivateLink Configuration +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$AppGw = Set-AzApplicationGatewayPrivateLinkConfiguration -ApplicationGateway $AppGw -Name "privateLinkConfig01" -IpConfiguration $privateLinkIpConfiguration01 +``` + +The first command gets the application gateway named ApplicationGateway01 that belongs to the resource group named ResourceGroup01 and stores it in the $AppGw variable. +The second command sets the privateLink configuration with name privateLinkConfig01 to use the ip configuration stored in $privateLinkIpConfiguration01 + + +#### New-AzApplicationGatewayPrivateLinkIpConfiguration + +#### SYNOPSIS +Creates an Ip Configuration to be associated with PrivateLink Configuration + +#### SYNTAX + +```powershell +New-AzApplicationGatewayPrivateLinkIpConfiguration -Name -Subnet + [-PrivateIpAddressVersion ] [-PrivateIpAddress ] [-Primary] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: PrivateLink Ip Configuration +```powershell +$PrivateLinkIpConfiguration = New-AzApplicationGatewayPrivateLinkIpConfiguration -Name "ipConfig01" -Subnet $subnet -Primary +``` + +This command creates an PrivateLink IP Configuration named 'ipConfig01' stores the result in the variable named $PrivateLinkIpConfiguration. + + +#### New-AzApplicationGatewayProbeConfig + +#### SYNOPSIS +Creates a health probe. + +#### SYNTAX + +```powershell +New-AzApplicationGatewayProbeConfig -Name -Protocol [-HostName ] [-Path ] + -Interval -Timeout -UnhealthyThreshold [-PickHostNameFromBackendHttpSettings] + [-MinServers ] [-Port ] [-EnableProbeProxyProtocolHeader ] + [-Match ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Example1: Create a health probe +```powershell +New-AzApplicationGatewayProbeConfig -Name "Probe03" -Protocol Http -HostName "contoso.com" -Path "/path/custompath.htm" -Interval 30 -Timeout 120 -UnhealthyThreshold 8 +``` + +This command creates a health probe named Probe03, with HTTP protocol, a 30 second interval, timeout of 120 seconds, and an unhealthy threshold of 8 retries. + ++ Example 2 + +Creates a health probe. (autogenerated) + + + + +```powershell +New-AzApplicationGatewayProbeConfig -Interval 30 -Match -Name 'Probe03' -Path '/path/custompath.htm' -PickHostNameFromBackendHttpSettings -Protocol https -Timeout 120 -UnhealthyThreshold 8 +``` + + +#### Add-AzApplicationGatewayProbeConfig + +#### SYNOPSIS +Adds a health probe to an Application Gateway. + +#### SYNTAX + +```powershell +Add-AzApplicationGatewayProbeConfig -ApplicationGateway -Name + -Protocol [-HostName ] [-Path ] -Interval -Timeout + -UnhealthyThreshold [-PickHostNameFromBackendHttpSettings] [-MinServers ] [-Port ] + [-EnableProbeProxyProtocolHeader ] [-Match ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Add a health probe to an application gateway +```powershell +$Probe = Add-AzApplicationGatewayProbeConfig -ApplicationGateway Gateway -Name "Probe01" -Protocol Http -HostName "contoso.com" -Path "/path/custompath.htm" -Interval 30 -Timeout 120 -UnhealthyThreshold 8 +``` + +This command adds a health probe named Probe01 for the application gateway named Gateway. +The command also sets the unhealthy threshold to 8 retries and times out after 120 seconds. + + +#### Get-AzApplicationGatewayProbeConfig + +#### SYNOPSIS +Gets an existing health probe configuration from an Application Gateway. + +#### SYNTAX + +```powershell +Get-AzApplicationGatewayProbeConfig [-Name ] -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Get an existing probe from an application gateway +```powershell +Get-AzApplicationGatewayProbeConfig -ApplicationGateway Gateway -Name "Probe02" +``` + +This command gets the health probe named Probe02 from the application gateway named Gateway. + + +#### Remove-AzApplicationGatewayProbeConfig + +#### SYNOPSIS +Removes a health probe from an existing application gateway. + +#### SYNTAX + +```powershell +Remove-AzApplicationGatewayProbeConfig -Name -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Remove a health probe from an existing application gateway +```powershell +$Gateway = Remove-AzApplicationGatewayProbeConfig -ApplicationGateway Gateway -Name "Probe04" +``` + +This command removes the health probe named Probe04 from the application gateway named Gateway. + + +#### Set-AzApplicationGatewayProbeConfig + +#### SYNOPSIS +Sets the health probe configuration on an existing Application Gateway. + +#### SYNTAX + +```powershell +Set-AzApplicationGatewayProbeConfig -ApplicationGateway -Name + -Protocol [-HostName ] [-Path ] -Interval -Timeout + -UnhealthyThreshold [-PickHostNameFromBackendHttpSettings] [-MinServers ] [-Port ] + [-EnableProbeProxyProtocolHeader ] [-Match ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Set the configuration for a health probe on an application gateway +```powershell +Set-AzApplicationGatewayProbeConfig -ApplicationGateway Gateway -Name "Probe05" -Protocol Http -HostName "contoso.com" -Path "/path/custompath.htm" -Interval 30 -Timeout 120 -UnhealthyThreshold 8 +``` + +This command sets the configuration for a health probe named Probe05 for the application gateway named Gateway. +The command also sets the unhealthy threshold to 8 retries and times out after 120 seconds. + ++ Example 2 + +Sets the health probe configuration on an existing Application Gateway. (autogenerated) + + + + +```powershell +Set-AzApplicationGatewayProbeConfig -ApplicationGateway Gateway -Interval 30 -Match -Name 'Probe05' -Path '/path/custompath.htm' -PickHostNameFromBackendHttpSettings -Protocol https -Timeout 120 -UnhealthyThreshold 8 +``` + + +#### New-AzApplicationGatewayProbeHealthResponseMatch + +#### SYNOPSIS +Creates a health probe response match used by Health Probe for an application gateway. + +#### SYNTAX + +```powershell +New-AzApplicationGatewayProbeHealthResponseMatch [-Body ] [-StatusCode ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$responsematch = New-AzApplicationGatewayProbeHealthResponseMatch -Body "helloworld" -StatusCode "200-399","503" +``` + +This command creates a health response match which can be passed to ProbeConfig as a parameter. + + +#### New-AzApplicationGatewayRedirectConfiguration + +#### SYNOPSIS +Creates a redirect configuration for an application gateway. + +#### SYNTAX + ++ SetByResourceId +```powershell +New-AzApplicationGatewayRedirectConfiguration -Name -RedirectType + [-TargetListenerID ] [-IncludePath ] [-IncludeQueryString ] + [-DefaultProfile ] [] +``` + ++ SetByResource +```powershell +New-AzApplicationGatewayRedirectConfiguration -Name -RedirectType + [-TargetListener ] [-IncludePath ] [-IncludeQueryString ] + [-DefaultProfile ] [] +``` + ++ SetByURL +```powershell +New-AzApplicationGatewayRedirectConfiguration -Name -RedirectType [-TargetUrl ] + [-IncludePath ] [-IncludeQueryString ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$RedirectConfig = New-AzApplicationGatewayRedirectConfiguration -Name "Redirect01" -RedirectType Permanent -TargetListener $listener01 +``` + +This command creates a redirect configuration named Redirect01 and stores the result in the variable named $RedirectConfig. + ++ Example 2 + +Creates a redirect configuration for an application gateway. (autogenerated) + + + + +```powershell +New-AzApplicationGatewayRedirectConfiguration -IncludePath $false -IncludeQueryString $false -Name 'Redirect01' -RedirectType Permanent -TargetListener +``` + + +#### Add-AzApplicationGatewayRedirectConfiguration + +#### SYNOPSIS +Adds a redirect configuration to an Application Gateway. + +#### SYNTAX + ++ SetByResourceId +```powershell +Add-AzApplicationGatewayRedirectConfiguration -ApplicationGateway -Name + -RedirectType [-TargetListenerID ] [-IncludePath ] [-IncludeQueryString ] + [-DefaultProfile ] [] +``` + ++ SetByResource +```powershell +Add-AzApplicationGatewayRedirectConfiguration -ApplicationGateway -Name + -RedirectType [-TargetListener ] [-IncludePath ] + [-IncludeQueryString ] [-DefaultProfile ] + [] +``` + ++ SetByURL +```powershell +Add-AzApplicationGatewayRedirectConfiguration -ApplicationGateway -Name + -RedirectType [-TargetUrl ] [-IncludePath ] [-IncludeQueryString ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$Appgw = Add-AzApplicationGatewayRedirectConfiguration -ApplicationGateway $AppGw -Name "Redirect01" -RedirectType Permanent -TargetListener $listener01 +``` + +The first command gets the application gateway and stores it in the $AppGw variable. +The second command adds the redirect configuration to the application gateway. + ++ Example 2 + +Adds a redirect configuration to an Application Gateway. (autogenerated) + + + + +```powershell +Add-AzApplicationGatewayRedirectConfiguration -ApplicationGateway -IncludePath $false -IncludeQueryString $false -Name 'Redirect01' -RedirectType Permanent -TargetListener +``` + + +#### Get-AzApplicationGatewayRedirectConfiguration + +#### SYNOPSIS +Gets an existing redirect configuration from an Application Gateway. + +#### SYNTAX + +```powershell +Get-AzApplicationGatewayRedirectConfiguration [-Name ] -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$AppGW = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$RedirectConfig = Get-AzApplicationGatewayRedirectConfiguration -Name "Redirect01" -ApplicationGateway $AppGW +``` + +The first command gets the Application Gateway named ApplicationGateway01 and stores the result in the variable named $AppGW. +The second command gets the redirect configuration named Redirect01 from the Application Gateway stored in the variable named $AppGW. + + +#### Remove-AzApplicationGatewayRedirectConfiguration + +#### SYNOPSIS +Removes a redirect configuration from an existing Application Gateway. + +#### SYNTAX + +```powershell +Remove-AzApplicationGatewayRedirectConfiguration -Name -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$AppGw = Remove-AzApplicationGatewayRedirectConfiguration -ApplicationGateway $AppGw -Name "Redirect01" +Set-AzApplicationGateway -ApplicationGateway $AppGw +``` + +The first command gets an application gateway and stores it in the $AppGw variable. +The second command removes the redirect configuration named Redirect01 from the application gateway stored in $AppGw. +The last command updates the application gateway. + + +#### Set-AzApplicationGatewayRedirectConfiguration + +#### SYNOPSIS +Sets the redirect configuration on an existing Application Gateway. + +#### SYNTAX + ++ SetByResourceId +```powershell +Set-AzApplicationGatewayRedirectConfiguration -ApplicationGateway -Name + -RedirectType [-TargetListenerID ] [-IncludePath ] [-IncludeQueryString ] + [-DefaultProfile ] [] +``` + ++ SetByResource +```powershell +Set-AzApplicationGatewayRedirectConfiguration -ApplicationGateway -Name + -RedirectType [-TargetListener ] [-IncludePath ] + [-IncludeQueryString ] [-DefaultProfile ] + [] +``` + ++ SetByURL +```powershell +Set-AzApplicationGatewayRedirectConfiguration -ApplicationGateway -Name + -RedirectType [-TargetUrl ] [-IncludePath ] [-IncludeQueryString ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$AppGw = Set-AzApplicationGatewayRedirectConfiguration -ApplicationGateway $appgw -Name "RedirectConfig01" -RedirectType Permanent -TargetUrl "https://www.contoso.com" +``` + +The first command gets the application gateway named ApplicationGateway01 and stores it in the $AppGw variable. +The second command modifies the redirect configuration for the application gateway to redirect type Permanent and use a target url. + ++ Example 2 + +Sets the redirect configuration on an existing Application Gateway. (autogenerated) + + + + +```powershell +Set-AzApplicationGatewayRedirectConfiguration -ApplicationGateway -IncludePath $false -IncludeQueryString $false -Name 'RedirectConfig01' -RedirectType Permanent -TargetListener +``` + + +#### New-AzApplicationGatewayRequestRoutingRule + +#### SYNOPSIS +Creates a request routing rule for an application gateway. + +#### SYNTAX + ++ SetByResourceId +```powershell +New-AzApplicationGatewayRequestRoutingRule -Name -RuleType [-Priority ] + [-BackendHttpSettingsId ] [-HttpListenerId ] [-BackendAddressPoolId ] + [-UrlPathMapId ] [-RewriteRuleSetId ] [-RedirectConfigurationId ] + [-DefaultProfile ] [] +``` + ++ SetByResource +```powershell +New-AzApplicationGatewayRequestRoutingRule -Name -RuleType [-Priority ] + [-BackendHttpSettings ] + [-HttpListener ] + [-BackendAddressPool ] [-UrlPathMap ] + [-RewriteRuleSet ] + [-RedirectConfiguration ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Create a request routing rule for an application gateway +```powershell +$Rule = New-AzApplicationGatewayRequestRoutingRule -Name "Rule01" -RuleType Basic -Priority 100 -BackendHttpSettings $Setting -HttpListener $Listener -BackendAddressPool $Pool +``` + +This command creates a basic request routing rule named Rule01 and stores the result in the variable named $Rule. + + +#### Add-AzApplicationGatewayRequestRoutingRule + +#### SYNOPSIS +Adds a request routing rule to an application gateway. + +#### SYNTAX + ++ SetByResourceId +```powershell +Add-AzApplicationGatewayRequestRoutingRule -ApplicationGateway -Name + -RuleType [-Priority ] [-BackendHttpSettingsId ] [-HttpListenerId ] + [-BackendAddressPoolId ] [-UrlPathMapId ] [-RewriteRuleSetId ] + [-RedirectConfigurationId ] [-DefaultProfile ] + [] +``` + ++ SetByResource +```powershell +Add-AzApplicationGatewayRequestRoutingRule -ApplicationGateway -Name + -RuleType [-Priority ] [-BackendHttpSettings ] + [-HttpListener ] + [-BackendAddressPool ] [-UrlPathMap ] + [-RewriteRuleSet ] + [-RedirectConfiguration ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Add a request routing rule to an application gateway +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$Appgw = Add-AzApplicationGatewayRequestRoutingRule -ApplicationGateway $AppGw -Name "Rule01" -RuleType Basic -Priority 100 -BackendHttpSettings $Setting -HttpListener $Listener -BackendAddressPool $Pool +``` + +The first command gets the application gateway and stores it in the $AppGw variable. +The second command adds the request routing rule to the application gateway. + + +#### Get-AzApplicationGatewayRequestRoutingRule + +#### SYNOPSIS +Gets the request routing rule of an application gateway. + +#### SYNTAX + +```powershell +Get-AzApplicationGatewayRequestRoutingRule [-Name ] -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Get a specific request routing rule +```powershell +$AppGW = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$Rule = Get-AzApplicationGatewayRequestRoutingRule -Name "Rule01" -ApplicationGateway $AppGW +``` + +The first command gets the Application Gateway named ApplicationGateway01 and stores the result in the variable named $AppGW. +The second command gets the request routing rule named Rule01 from the Application Gateway stored in the variable named $AppGW. + ++ Example 2: Get a list of request routing rules +```powershell +$AppGW = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$Rules = Get-AzApplicationGatewayRequestRoutingRule -ApplicationGateway $AppGW +``` + +The first command gets the Application Gateway named ApplicationGateway01 and stores the result in the variable named $AppGW. +The second command gets a list of request routing rules from the Application Gateway stored in the variable named $AppGW. + + +#### Remove-AzApplicationGatewayRequestRoutingRule + +#### SYNOPSIS +Removes a request routing rule from an application gateway. + +#### SYNTAX + +```powershell +Remove-AzApplicationGatewayRequestRoutingRule -Name -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Remove a request routing rule from an application gateway +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +Remove-AzApplicationGatewayRequestRoutingRule -ApplicationGateway $AppGw -Name "Rule02" +Set-AzApplicationGateway -ApplicationGateway $AppGw +``` + +The first command gets an application gateway and stores it in the $AppGw variable. +The second command removes the request routing rule named Rule02 from the application gateway stored in $AppGw. +The last command updates the application gateway. + + +#### Set-AzApplicationGatewayRequestRoutingRule + +#### SYNOPSIS +Modifies a request routing rule for an application gateway. + +#### SYNTAX + ++ SetByResourceId +```powershell +Set-AzApplicationGatewayRequestRoutingRule -ApplicationGateway -Name + -RuleType [-Priority ] [-BackendHttpSettingsId ] [-HttpListenerId ] + [-BackendAddressPoolId ] [-UrlPathMapId ] [-RewriteRuleSetId ] + [-RedirectConfigurationId ] [-DefaultProfile ] + [] +``` + ++ SetByResource +```powershell +Set-AzApplicationGatewayRequestRoutingRule -ApplicationGateway -Name + -RuleType [-Priority ] [-BackendHttpSettings ] + [-HttpListener ] + [-BackendAddressPool ] [-UrlPathMap ] + [-RewriteRuleSet ] + [-RedirectConfiguration ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Update a request routing rule +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$AppGw = Set-AzApplicationGatewayRequestRoutingRule -ApplicationGateway $AppGw -Name "Rule01" -RuleType Basic -Priority 100 -BackendHttpSettings $Setting -HttpListener $Listener -BackendAddressPool $Pool +``` + +The first command gets the application gateway named ApplicationGateway01 and stores it in the $AppGw variable. +The second command modifies the request routing rule for the application gateway to use back-end HTTP settings specified in the $Setting variable, an HTTP listener specified in the $Listener variable, and a back-end address pool specified in the $Pool variable. + + +#### New-AzApplicationGatewayRewriteRule + +#### SYNOPSIS +Creates a rewrite rule for an application gateway. + +#### SYNTAX + +```powershell +New-AzApplicationGatewayRewriteRule -Name -ActionSet + [-RuleSequence ] [-Condition ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 : Create a rewrite rule for an application gateway +```powershell +$rule = New-AzApplicationGatewayRewriteRule -Name rule1 -ActionSet $action -RuleSequence 101 -Condition $condition +``` + +This command creates a rewrite rule named rule1 and stores the result in the variable named $rule. + + +#### New-AzApplicationGatewayRewriteRuleActionSet + +#### SYNOPSIS +Creates a rewrite rule action set for an application gateway. + +#### SYNTAX + +```powershell +New-AzApplicationGatewayRewriteRuleActionSet + [-RequestHeaderConfiguration ] + [-ResponseHeaderConfiguration ] + [-UrlConfiguration ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$action = New-AzApplicationGatewayRewriteRuleActionSet -ResponseHeaderConfiguration $hc -UrlConfiguration $urlConfiguration +``` + +This command creates a rewrite rule action set and stores the result in the variable named $action. + + +#### New-AzApplicationGatewayRewriteRuleCondition + +#### SYNOPSIS +Adds a condition to the RewriteRule for an application gateway. + +#### SYNTAX + +```powershell +New-AzApplicationGatewayRewriteRuleCondition -Variable [-Pattern ] [-IgnoreCase] [-Negate] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 + + + +```powershell +$condition = New-AzApplicationGatewayRewriteRuleCondition -Variable "var_request_uri" -Pattern "http" -IgnoreCase +$condition + +Variable : var_request_uri +Pattern : http +IgnoreCase : True +Negate : False + +$condition | Format-Table + +Variable Pattern IgnoreCase Negate +-------- ------- ---------- ------ +var_request_uri http True False +``` + +This command creates a condition in a rewrite rule and stores the result in the variable named $condition. + + +#### New-AzApplicationGatewayRewriteRuleHeaderConfiguration + +#### SYNOPSIS +Creates a rewrite rule header configuration for an application gateway. + +#### SYNTAX + +```powershell +New-AzApplicationGatewayRewriteRuleHeaderConfiguration -HeaderName [-HeaderValue ] + [-HeaderValueMatcher ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$hc = New-AzApplicationGatewayRewriteRuleHeaderConfiguration -HeaderName abc -HeaderValue def +``` + +This command creates a rewrite rule header configuration and stores the result in the variable named $hc. + + +#### New-AzApplicationGatewayRewriteRuleSet + +#### SYNOPSIS +Creates a rewrite rule set for an application gateway. + +#### SYNTAX + +```powershell +New-AzApplicationGatewayRewriteRuleSet -Name + -RewriteRule + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$ruleset = New-AzApplicationGatewayRewriteRuleSet -Name ruleset1 -RewriteRule $rule +``` + +This command creates a rewrite rule set named ruleset1 and stores the result in the variable named $ruleset. + + +#### Add-AzApplicationGatewayRewriteRuleSet + +#### SYNOPSIS +Adds a rewrite rule set to an application gateway. + +#### SYNTAX + +```powershell +Add-AzApplicationGatewayRewriteRuleSet -ApplicationGateway -Name + -RewriteRule + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$AppGw = Add-AzApplicationGatewayRewriteRuleSet -ApplicationGateway $AppGw -Name "ruleset1" -RewriteRule $rule +``` + +The first command gets the application gateway and stores it in the $AppGw variable. +The second command adds the rewrite rule set to the application gateway. + + +#### Get-AzApplicationGatewayRewriteRuleSet + +#### SYNOPSIS +Gets the rewrite rule set of an application gateway. + +#### SYNTAX + +```powershell +Get-AzApplicationGatewayRewriteRuleSet [-Name ] -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 : Get a specific rewrite rule set +```powershell +$AppGW = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$Rule = Get-AzApplicationGatewayRewriteRuleSet -Name "RuleSet01" -ApplicationGateway $AppGW +``` + +The first command gets the Application Gateway named ApplicationGateway01 and stores the result in the variable named $AppGW. +The second command gets the rewrite rule set named RuleSet01 from the Application Gateway stored in the variable named $AppGW. + + +#### Remove-AzApplicationGatewayRewriteRuleSet + +#### SYNOPSIS +Removes a rewrite rule set from an application gateway. + +#### SYNTAX + +```powershell +Remove-AzApplicationGatewayRewriteRuleSet -Name -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +Remove-AzApplicationGatewayRewriteRuleSet -ApplicationGateway $AppGw -Name "RuleSet02" +Set-AzApplicationGateway -ApplicationGateway $AppGw +``` + +The first command gets an application gateway and stores it in the $AppGw variable. +The second command removes the rewrite rule set named RuleSet02 from the application gateway stored in $AppGw. +The last command updates the application gateway. + + +#### Set-AzApplicationGatewayRewriteRuleSet + +#### SYNOPSIS +Modifies a rewrite rule set for an application gateway. + +#### SYNTAX + +```powershell +Set-AzApplicationGatewayRewriteRuleSet -ApplicationGateway -Name + -RewriteRule + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$AppGw = Set-AzApplicationGatewayRewriteRuleSet -ApplicationGateway $AppGw -Name "ruleset1" -RewriteRule $rule +``` + +The first command gets the application gateway named ApplicationGateway01 and stores it in the $AppGw variable. +The second command modifies the rewrite rule set for the application gateway to use rewrite rules specified in the $rule variable. + + +#### New-AzApplicationGatewayRewriteRuleUrlConfiguration + +#### SYNOPSIS +Creates a rewrite rule url configuration for an application gateway. + +#### SYNTAX + +```powershell +New-AzApplicationGatewayRewriteRuleUrlConfiguration [-ModifiedPath ] [-ModifiedQueryString ] + [-Reroute] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$urlConfiguration = New-AzApplicationGatewayRewriteRuleUrlConfiguration -ModifiedPath "/abc" -ModifiedQueryString "x=y&a=b" +``` + +This command creates a rewrite rule url configuration and stores the result in the variable named $urlConfiguration. + +If you want to update any existing UrlConfiguration, you can do it by creating a new UrlConfiguration and assigning the new UrlConfiguration to the UrlConfiguration property of Rewrite Rule Action Set. + + +#### New-AzApplicationGatewayRoutingRule + +#### SYNOPSIS +Creates a routing rule for an application gateway. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +New-AzApplicationGatewayRoutingRule -Name -RuleType -Priority + [-BackendSettings ] [-Listener ] + [-BackendAddressPool ] [-DefaultProfile ] + [] +``` + ++ SetByResourceId +```powershell +New-AzApplicationGatewayRoutingRule -Name -RuleType -Priority + [-BackendSettingsId ] [-ListenerId ] [-BackendAddressPoolId ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Create a routing rule for an application gateway +```powershell +$Rule = New-AzApplicationGatewayRoutingRule -Name "Rule01" -RuleType Basic -Priority 100 -BackendSettings $Setting -Listener $Listener -BackendAddressPool $Pool +``` + +This command creates a basic routing rule named Rule01 and stores the result in the variable named $Rule. + + +#### Add-AzApplicationGatewayRoutingRule + +#### SYNOPSIS +Adds a routing rule to an application gateway. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +Add-AzApplicationGatewayRoutingRule -ApplicationGateway -Name + -RuleType -Priority [-BackendSettings ] + [-Listener ] [-BackendAddressPool ] + [-DefaultProfile ] [] +``` + ++ SetByResourceId +```powershell +Add-AzApplicationGatewayRoutingRule -ApplicationGateway -Name + -RuleType -Priority [-BackendSettingsId ] [-ListenerId ] + [-BackendAddressPoolId ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Add a routing rule to an application gateway +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$Appgw = Add-AzApplicationGatewayRoutingRule -ApplicationGateway $AppGw -Name "Rule01" -RuleType Basic -Priority 100 -BackendSettings $Setting -Listener $Listener -BackendAddressPool $Pool +``` + +The first command gets the application gateway and stores it in the $AppGw variable. +The second command adds the routing rule to the application gateway. + + +#### Get-AzApplicationGatewayRoutingRule + +#### SYNOPSIS +Gets the routing rule of an application gateway. + +#### SYNTAX + +```powershell +Get-AzApplicationGatewayRoutingRule [-Name ] -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Get a specific routing rule +```powershell +$AppGW = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$Rule = Get-AzApplicationGatewayRoutingRule -Name "Rule01" -ApplicationGateway $AppGW +``` + +The first command gets the Application Gateway named ApplicationGateway01 and stores the result in the variable named $AppGW. +The second command gets the routing rule named Rule01 from the Application Gateway stored in the variable named $AppGW. + ++ Example 2: Get a list of routing rules +```powershell +$AppGW = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$Rules = Get-AzApplicationGatewayRoutingRule -ApplicationGateway $AppGW +``` + +The first command gets the Application Gateway named ApplicationGateway01 and stores the result in the variable named $AppGW. +The second command gets a list of routing rules from the Application Gateway stored in the variable named $AppGW. + + +#### Remove-AzApplicationGatewayRoutingRule + +#### SYNOPSIS +Removes a routing rule from an application gateway. + +#### SYNTAX + +```powershell +Remove-AzApplicationGatewayRoutingRule -Name -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Remove a routing rule from an application gateway +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +Remove-AzApplicationGatewayRoutingRule -ApplicationGateway $AppGw -Name "Rule02" +Set-AzApplicationGateway -ApplicationGateway $AppGw +``` + +The first command gets an application gateway and stores it in the $AppGw variable. +The second command removes the routing rule named Rule02 from the application gateway stored in $AppGw. +The last command updates the application gateway. + + +#### Set-AzApplicationGatewayRoutingRule + +#### SYNOPSIS +Modifies a routing rule for an application gateway. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +Set-AzApplicationGatewayRoutingRule -ApplicationGateway -Name + -RuleType -Priority [-BackendSettings ] + [-Listener ] [-BackendAddressPool ] + [-DefaultProfile ] [] +``` + ++ SetByResourceId +```powershell +Set-AzApplicationGatewayRoutingRule -ApplicationGateway -Name + -RuleType -Priority [-BackendSettingsId ] [-ListenerId ] + [-BackendAddressPoolId ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Update a routing rule +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$AppGw = Set-AzApplicationGatewayRoutingRule -ApplicationGateway $AppGw -Name "Rule01" -RuleType Basic -Priority 100 -BackendSettings $Setting -Listener $Listener -BackendAddressPool $Pool +``` + +The first command gets the application gateway named ApplicationGateway01 and stores it in the $AppGw variable. +The second command modifies the routing rule for the application gateway to use back-end settings specified in the $Setting variable, a listener specified in the $Listener variable, and a back-end address pool specified in the $Pool variable. + + +#### New-AzApplicationGatewaySku + +#### SYNOPSIS +Creates a SKU for an application gateway. + +#### SYNTAX + +```powershell +New-AzApplicationGatewaySku -Name -Tier [-Capacity ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Create a SKU for an Azure application gateway +```powershell +$SKU = New-AzApplicationGatewaySku -Name "Standard_Small" -Tier "Standard" -Capacity 2 +``` + +This command creates a SKU named Standard_Small for an Azure application gateway and stores the result in the variable named $SKU. + + +#### Get-AzApplicationGatewaySku + +#### SYNOPSIS +Gets the SKU of an application gateway. + +#### SYNTAX + +```powershell +Get-AzApplicationGatewaySku -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Get an application gateway SKU +```powershell +$AppGW = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$SKU = Get-AzApplicationGatewaySku -ApplicationGateway $AppGW +``` + +The first command gets the Application Gateway named ApplicationGateway01 and stores the result in the variable named $AppGW. +The second command gets the SKU of an application gateway named ApplicationGateway01 and stores the result in the variable named $SKU. + + +#### Set-AzApplicationGatewaySku + +#### SYNOPSIS +Modifies the SKU of an application gateway. + +#### SYNTAX + +```powershell +Set-AzApplicationGatewaySku -ApplicationGateway -Name -Tier + [-Capacity ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Update the application gateway SKU +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$AppGw = Set-AzApplicationGatewaySku -ApplicationGateway $AppGw -Name "Standard_Small" -Tier "Standard" -Capacity 2 +``` + +The first command gets the application gateway named ApplicationGateway01 that belongs to the resource group named ResourceGroup01, and stores it in the $AppGw variable. +The second command updates the SKU of the application gateway. + + +#### New-AzApplicationGatewaySslCertificate + +#### SYNOPSIS +Creates an SSL certificate for an Azure application gateway. + +#### SYNTAX + +```powershell +New-AzApplicationGatewaySslCertificate -Name [-CertificateFile ] [-Password ] + [-KeyVaultSecretId ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Create an SSL certificate for an Azure application gateway. +```powershell +$password = ConvertTo-SecureString -String "****" -AsPlainText -Force +$cert = New-AzApplicationGatewaySslCertificate -Name "Cert01" -CertificateFile "D:\cert01.pfx" -Password $password +``` + +This command creates a SSL certificate named Cert01 for the default application gateway and stores the result in the variable named $Cert. + ++ Example 2: Create an SSL certificate using KeyVault Secret (version-less secretId) and add to an application gateway. +```powershell +$secret = Get-AzKeyVaultSecret -VaultName "keyvault01" -Name "sslCert01" +$secretId = $secret.Id.Replace($secret.Version, "") #### https://.vault.azure.net/secrets/ +$cert = New-AzApplicationGatewaySslCertificate -Name "Cert01" -KeyVaultSecretId $secretId +``` + +Get the secret and create an SSL Certificate using `New-AzApplicationGatewaySslCertificate`. +Note: As version-less secretId is provided here, Application Gateway will sync the certificate in regular intervals with the KeyVault. + ++ Example 3: Create an SSL certificate using KeyVault Secret and add to an Application Gateway. +```powershell +$secret = Get-AzKeyVaultSecret -VaultName "keyvault01" -Name "sslCert01" +$secretId = $secret.Id #### https://.vault.azure.net/secrets/ +$cert = New-AzApplicationGatewaySslCertificate -Name "Cert01" -KeyVaultSecretId $secretId +``` + +Get the secret and create an SSL Certificate using `New-AzApplicationGatewaySslCertificate`. +Note: If it is required that Application Gateway syncs the certificate with the KeyVault, please provide the version-less secretId. + + +#### Add-AzApplicationGatewaySslCertificate + +#### SYNOPSIS +Adds an SSL certificate to an application gateway. + +#### SYNTAX + +```powershell +Add-AzApplicationGatewaySslCertificate -ApplicationGateway -Name + [-CertificateFile ] [-Password ] [-KeyVaultSecretId ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Add an SSL certificate using pfx to an application gateway. +```powershell +$AppGW = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$password = ConvertTo-SecureString -String "****" -AsPlainText -Force +$AppGW = Add-AzApplicationGatewaySslCertificate -ApplicationGateway $AppGW -Name "Cert01" -CertificateFile "D:\cert01.pfx" -Password $password +``` + +This command gets an application gateway named ApplicationGateway01 and then adds an SSL certificate named Cert01 to it. + ++ Example 2: Add an SSL certificate using KeyVault Secret (version-less secretId) to an application gateway. +```powershell +$AppGW = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$secret = Get-AzKeyVaultSecret -VaultName "keyvault01" -Name "sslCert01" +$secretId = $secret.Id.Replace($secret.Version, "") #### https://.vault.azure.net/secrets/ +$AppGW = Add-AzApplicationGatewaySslCertificate -ApplicationGateway $AppGW -Name "Cert01" -KeyVaultSecretId $secretId +``` + +Get the secret and reference it in the `Add-AzApplicationGatewaySslCertificate` to add it to the Application Gateway with name `Cert01`. +Note: As version-less secretId is provided here, Application Gateway will sync the certificate in regular intervals with the KeyVault. + ++ Example 3: Add an SSL certificate using KeyVault Secret (versioned secretId) to an application gateway. +```powershell +$AppGW = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$secret = Get-AzKeyVaultSecret -VaultName "keyvault01" -Name "sslCert01" +$secretId = $secret.Id #### https://.vault.azure.net/secrets/ +$AppGW = Add-AzApplicationGatewaySslCertificate -ApplicationGateway $AppGW -Name "Cert01" -KeyVaultSecretId $secretId +``` + +Get the secret and reference it in the `Add-AzApplicationGatewaySslCertificate` to add it to the Application Gateway with name `Cert01`. +Note: If it is required that Application Gateway syncs the certificate with the KeyVault, please provide the version-less secretId. + + +#### Get-AzApplicationGatewaySslCertificate + +#### SYNOPSIS +Gets an SSL certificate for an application gateway. + +#### SYNTAX + +```powershell +Get-AzApplicationGatewaySslCertificate [-Name ] -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Get a specific SSL certificate +```powershell +$AppGW = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$Cert = Get-AzApplicationGatewaySslCertificate -Name "Cert01" -ApplicationGateway $AppGW +``` + +The first command gets the Application Gateway named ApplicationGateway01 and stores the result in the variable named $AppGW. +The second command gets the SSL certificate named Cert01 from the application gateway stored in the variable named $AppGW. +The command stores the certificate in the variable named $Cert. + ++ Example 2: Get a list of SSL certificates +```powershell +$AppGW = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$Certs = Get-AzApplicationGatewaySslCertificate -ApplicationGateway $AppGW +``` + +The first command gets the Application Gateway named ApplicationGateway01 and stores the result in the variable named $AppGW. +This second command gets a list of SSL certificates from the application gateway stored in the variable named $AppGW. +The command then stores the results in the variable named $Certs. + + +#### Remove-AzApplicationGatewaySslCertificate + +#### SYNOPSIS +Removes an SSL certificate from an Azure application gateway. + +#### SYNTAX + +```powershell +Remove-AzApplicationGatewaySslCertificate -Name -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Remove an SSL certificate from an application gateway +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +Remove-AzApplicationGatewaySslCertificate -ApplicationGateway $AppGw -Name "Cert02" +Set-AzApplicationGateway -ApplicationGateway $AppGw +``` + +The first command gets the application gateway named ApplicationGateway01 and stores the result in the variable named $AppGw. +The second command removes the SSL certificate named Cert02 from the application gateway stored in the $AppGw variable. +The last command "Set-AzApplicationGateway" updates the application gateway configuration changes to the $AppGw variable that holds the current configuration of Application gateway. + + +#### Set-AzApplicationGatewaySslCertificate + +#### SYNOPSIS +Updates an SSL certificate for an application gateway. + +#### SYNTAX + +```powershell +Set-AzApplicationGatewaySslCertificate -ApplicationGateway -Name + [-CertificateFile ] [-Password ] [-KeyVaultSecretId ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Update an existing SSL certificate on Application Gateway +```powershell +$appGW = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$password = ConvertTo-SecureString -String "****" -AsPlainText -Force +$cert = Set-AzApplicationGatewaySslCertificate -ApplicationGateway $AppGW -Name "Cert01" -CertificateFile "D:\cert01.pfx" -Password $password +``` + +Update an existing SSL certificate for the application gateway named ApplicationGateway01. + ++ Example 2: Update an existing SSL certificate using KeyVault Secret (version-less secretId) on Application Gateway +```powershell +$secret = Get-AzKeyVaultSecret -VaultName "keyvault01" -Name "sslCert01" +$secretId = $secret.Id.Replace($secret.Version, "") #### https://.vault.azure.net/secrets/ +$cert = Set-AzApplicationGatewaySslCertificate -ApplicationGateway $AppGW -Name "Cert01" -KeyVaultSecretId $secretId +``` + +Get the secret and update an existing SSL Certificate using `Set-AzApplicationGatewaySslCertificate`. + ++ Example 3: Update an existing SSL certificate using KeyVault Secret on Application Gateway +```powershell +$secret = Get-AzKeyVaultSecret -VaultName "keyvault01" -Name "sslCert01" +$secretId = $secret.Id #### https://.vault.azure.net/secrets/ +$cert = Set-AzApplicationGatewaySslCertificate -ApplicationGateway $AppGW -Name "Cert01" -KeyVaultSecretId $secretId +``` + +Get the secret and update an existing SSL Certificate using `Set-AzApplicationGatewaySslCertificate`. +Note: If it is required that Application Gateway syncs the certificate with the KeyVault, please provide the version-less secretId. + + +#### New-AzApplicationGatewaySslPolicy + +#### SYNOPSIS +Creates an SSL policy for an application gateway. + +#### SYNTAX + +```powershell +New-AzApplicationGatewaySslPolicy [-DisabledSslProtocols ] [-PolicyType ] + [-PolicyName ] [-CipherSuite ] [-MinProtocolVersion ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$sslPolicy = New-AzApplicationGatewaySslPolicy -PolicyType Custom -MinProtocolVersion TLSv1_1 -CipherSuite "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA", "TLS_RSA_WITH_AES_128_GCM_SHA256" +``` + +This command creates a custom policy. + + +#### Get-AzApplicationGatewaySslPolicy + +#### SYNOPSIS +Gets the SSL policy of an application gateway. + +#### SYNTAX + +```powershell +Get-AzApplicationGatewaySslPolicy -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: +```powershell +$AppGW = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$sslpolicy = Get-AzApplicationGatewaySslPolicy -ApplicationGateway $AppGW +``` + +The first command gets the Application Gateway named ApplicationGateway01 and stores the result in the variable named $AppGW. +The second command gets the ssl policy from the Application Gateway stored in the variable named $AppGW. + + +#### Remove-AzApplicationGatewaySslPolicy + +#### SYNOPSIS +Removes an SSL policy from an Azure application gateway. + +#### SYNTAX + +```powershell +Remove-AzApplicationGatewaySslPolicy -ApplicationGateway [-Force] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Remove an SSL policy from an application gateway +```powershell +$AppGW = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$AppGW = Remove-AzApplicationGatewaySslPolicy -ApplicationGateway $AppGW +Set-AzApplicationGateway -ApplicationGateway $AppGW +``` + +The first command gets the application gateway named ApplicationGateway01 in the resource group named ResourceGroup01 and stores it in the $AppGW variable. +The second command removes the SSL policy from the application gateway. +The last command updates the application gateway. + + +#### Set-AzApplicationGatewaySslPolicy + +#### SYNOPSIS +Modifies the SSL policy of an application gateway. + +#### SYNTAX + +```powershell +Set-AzApplicationGatewaySslPolicy -ApplicationGateway [-DisabledSslProtocols ] + [-PolicyType ] [-PolicyName ] [-CipherSuite ] [-MinProtocolVersion ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$AppGw = Set-AzApplicationGatewaySslPolicy -ApplicationGateway $getgw -PolicyType Predefined -PolicyName AppGwSslPolicy20170401 +``` + +The first command gets the application gateway named ApplicationGateway01 and stores it in the $AppGw variable. +This second command modifies the ssl policy to a policy type Predefined and policy name AppGwSslPolicy20170401. + ++ Example 2 + +Modifies the SSL policy of an application gateway. (autogenerated) + + + + +```powershell +Set-AzApplicationGatewaySslPolicy -ApplicationGateway -CipherSuite 'TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256' -MinProtocolVersion TLSv1_0 -PolicyType Predefined +``` + + +#### Get-AzApplicationGatewaySslPredefinedPolicy + +#### SYNOPSIS +Gets Predefined SSL Policies provided by Application Gateway. + +#### SYNTAX + +```powershell +Get-AzApplicationGatewaySslPredefinedPolicy [-Name ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzApplicationGatewaySslPredefinedPolicy +``` + +```output +Name: AppGwSslPolicy20150501 +MinProtocolVersion: TLSv1_0 +CipherSuites: + TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 + TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 + TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 + TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 + TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA + TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA + TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 + TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 + TLS_DHE_RSA_WITH_AES_256_CBC_SHA + TLS_DHE_RSA_WITH_AES_128_CBC_SHA + TLS_RSA_WITH_AES_256_GCM_SHA384 + TLS_RSA_WITH_AES_128_GCM_SHA256 + TLS_RSA_WITH_AES_256_CBC_SHA256 + TLS_RSA_WITH_AES_128_CBC_SHA256 + TLS_RSA_WITH_AES_256_CBC_SHA + TLS_RSA_WITH_AES_128_CBC_SHA + TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 + TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 + TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 + TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 + TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA + TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA + TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 + TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 + TLS_DHE_DSS_WITH_AES_256_CBC_SHA + TLS_DHE_DSS_WITH_AES_128_CBC_SHA + TLS_RSA_WITH_3DES_EDE_CBC_SHA + TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA + + +Name: AppGwSslPolicy20170401 +MinProtocolVersion: TLSv1_1 +CipherSuites: + TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 + TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 + TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA + TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA + TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 + TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 + TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 + TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 + TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA + TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA + TLS_RSA_WITH_AES_256_GCM_SHA384 + TLS_RSA_WITH_AES_128_GCM_SHA256 + TLS_RSA_WITH_AES_256_CBC_SHA256 + TLS_RSA_WITH_AES_128_CBC_SHA256 + TLS_RSA_WITH_AES_256_CBC_SHA + TLS_RSA_WITH_AES_128_CBC_SHA + + +Name: AppGwSslPolicy20170401S +MinProtocolVersion: TLSv1_2 +CipherSuites: + TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 + TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 + TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA + TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA + TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 + TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 + TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 + TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 + TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA + TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA + TLS_RSA_WITH_AES_256_GCM_SHA384 + TLS_RSA_WITH_AES_128_GCM_SHA256 + TLS_RSA_WITH_AES_256_CBC_SHA256 + TLS_RSA_WITH_AES_128_CBC_SHA256 + TLS_RSA_WITH_AES_256_CBC_SHA + TLS_RSA_WITH_AES_128_CBC_SHA +``` + +This commands returns all the predefined SSL policies. + ++ Example 2 +```powershell +Get-AzApplicationGatewaySslPredefinedPolicy -Name AppGwSslPolicy20170401 +``` + +```output +Name: AppGwSslPolicy20170401 +MinProtocolVersion: TLSv1_1 +CipherSuites: + TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 + TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 + TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA + TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA + TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 + TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 + TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 + TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 + TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA + TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA + TLS_RSA_WITH_AES_256_GCM_SHA384 + TLS_RSA_WITH_AES_128_GCM_SHA256 + TLS_RSA_WITH_AES_256_CBC_SHA256 + TLS_RSA_WITH_AES_128_CBC_SHA256 + TLS_RSA_WITH_AES_256_CBC_SHA + TLS_RSA_WITH_AES_128_CBC_SHA +``` + +This commands returns predefined policy with name AppGwSslPolicy20170401. + ++ Example 3 +```powershell +Get-AzApplicationGatewaySslPredefinedPolicy -Name AppGwSslPolicy2017* +``` + +```output +Name: AppGwSslPolicy20170401 +MinProtocolVersion: TLSv1_1 +CipherSuites: + TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 + TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 + TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA + TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA + TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 + TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 + TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 + TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 + TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA + TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA + TLS_RSA_WITH_AES_256_GCM_SHA384 + TLS_RSA_WITH_AES_128_GCM_SHA256 + TLS_RSA_WITH_AES_256_CBC_SHA256 + TLS_RSA_WITH_AES_128_CBC_SHA256 + TLS_RSA_WITH_AES_256_CBC_SHA + TLS_RSA_WITH_AES_128_CBC_SHA + + +Name: AppGwSslPolicy20170401S +MinProtocolVersion: TLSv1_2 +CipherSuites: + TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 + TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 + TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA + TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA + TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 + TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 + TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 + TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 + TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA + TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA + TLS_RSA_WITH_AES_256_GCM_SHA384 + TLS_RSA_WITH_AES_128_GCM_SHA256 + TLS_RSA_WITH_AES_256_CBC_SHA256 + TLS_RSA_WITH_AES_128_CBC_SHA256 + TLS_RSA_WITH_AES_256_CBC_SHA + TLS_RSA_WITH_AES_128_CBC_SHA +``` + +This commands returns predefined policy with name starting with "AppGwSslPolicy2017". + + +#### New-AzApplicationGatewaySslProfile + +#### SYNOPSIS +Creates SSL profile for an application gateway. + +#### SYNTAX + +```powershell +New-AzApplicationGatewaySslProfile -Name [-SslPolicy ] + [-ClientAuthConfiguration ] + [-TrustedClientCertificates ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$sslPolicy = New-AzApplicationGatewaySslPolicy -PolicyType Custom -MinProtocolVersion TLSv1_1 -CipherSuite "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA", "TLS_RSA_WITH_AES_128_GCM_SHA256" +$trustedClient01 = New-AzApplicationGatewayTrustedClientCertificate -Name "ClientCert01" -CertificateFile "C:\clientCAChain1.cer" +$profile = New-AzApplicationGatewaySslProfile -Name $sslProfile01Name -SslPolicy $sslPolicy -TrustedClientCertificates $trustedClient01 +``` + +The first command creates a new SSL policy and stores it in the $sslPolicy variable. +The second command creates a trusted client CA certificate chains and stores them in the $ClientCert01 variable. +The third command create a new SSL profile with the the ssl policy and trusted client CA certificate chain. + + +#### Add-AzApplicationGatewaySslProfile + +#### SYNOPSIS +Adds SSL profile to an application gateway. + +#### SYNTAX + +```powershell +Add-AzApplicationGatewaySslProfile -ApplicationGateway -Name + [-SslPolicy ] + [-ClientAuthConfiguration ] + [-TrustedClientCertificates ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$sslPolicy = New-AzApplicationGatewaySslPolicy -PolicyType Custom -MinProtocolVersion TLSv1_1 -CipherSuite "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA", "TLS_RSA_WITH_AES_128_GCM_SHA256" +$trustedClient01 = New-AzApplicationGatewayTrustedClientCertificate -Name "ClientCert01" -CertificateFile "C:\clientCAChain1.cer" +$trustedClient02 = New-AzApplicationGatewayTrustedClientCertificate -Name "ClientCert02" -CertificateFile "C:\clientCAChain2.cer" +$AppGw = Add-AzApplicationGatewaySslProfile -Name $sslProfile01Name -ApplicationGateway $AppGw -SslPolicy $sslPolicy -TrustedClientCertificates $trustedClient01,$trustedClient02 +``` + +The first command gets the application gateway and stores it in the $AppGw variable. +The second command creates a new SSL policy and stores it in the $sslPolicy variable. +The third and fourth command creates two new trusted client CA certificate chains and stores them in the $ClientCert01 and $ClientCert02 variables. +The fifth command adds the SSL profile with the the ssl policy and trusted client CA certificate chains to the application gateway $AppGw. + + +#### Get-AzApplicationGatewaySslProfile + +#### SYNOPSIS +Gets the SSL profile of an application gateway. + +#### SYNTAX + +```powershell +Get-AzApplicationGatewaySslProfile [-Name ] -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$profile = Get-AzApplicationGatewaySslProfile -Name "SslProfile01" -ApplicationGateway $AppGw +``` + +The first command gets the application gateway named ApplicationGateway01 in the resource group named ResourceGroup01, and stores it in the $AppGw variable.The second command gets the SSL profile SslProfile01 for $AppGw and stores it in the $profile variable. + + +#### Remove-AzApplicationGatewaySslProfile + +#### SYNOPSIS +Removes the ssl profile from an application gateway. + +#### SYNTAX + +```powershell +Remove-AzApplicationGatewaySslProfile -Name -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +Remove-AzApplicationGatewaySslProfile -ApplicationGateway $AppGw -Name "SslProfile01" +Set-AzApplicationGateway -ApplicationGateway $AppGw +``` + +The first command gets an application gateway named ApplicationGateway01 that belongs to the resource group named ResourceGroup01 and stores it in the $AppGw variable. The second command removes the ssl profile named SslProfile01 from the application gateway stored in $AppGw. +The last command updates the application gateway. + + +#### Set-AzApplicationGatewaySslProfile + +#### SYNOPSIS +Updates ssl profile for an application gateway. + +#### SYNTAX + +```powershell +Set-AzApplicationGatewaySslProfile -ApplicationGateway -Name + [-SslPolicy ] + [-ClientAuthConfiguration ] + [-TrustedClientCertificates ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$AppGw = Set-AzApplicationGatewaySslProfile -ApplicationGateway $AppGw -Name "Profile01" -ClientAuthConfiguration $newclientconfig +``` + +The first command gets the application gateway named ApplicationGateway01 that belongs to the resource group named ResourceGroup01 and stores it in the $AppGw variable. The second command updates the ssl profile of the application gateway in the $AppGw variable to update the client auth configuration to the new value stored in $newclientconfig. + + +#### Get-AzApplicationGatewaySslProfilePolicy + +#### SYNOPSIS +Gets the SSL policy of an application gateway SSL profile. + +#### SYNTAX + +```powershell +Get-AzApplicationGatewaySslProfilePolicy -SslProfile + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$AppGW = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$SslProfile = Get-AzApplicationGatewaySslProfile -Name "SslProfile01" -ApplicationGateway $AppGw +$sslpolicy = Get-AzApplicationGatewaySslProfilePolicy -SslProfile $SslProfile +``` + +The first command gets the application gateway named ApplicationGateway01 in the resource group named ResourceGroup01 and stores it in the $AppGw variable. The second command gets the SSL profile named SslProfile01 for $AppGw and stores it $SslProfile variable. The last command gets the SSL policy from the SSL profile $SslProfile and stores it in the $sslpolicy variable. + + +#### Remove-AzApplicationGatewaySslProfilePolicy + +#### SYNOPSIS +Removes an SSL policy from an Azure application gateway SSL profile. + +#### SYNTAX + +```powershell +Remove-AzApplicationGatewaySslProfilePolicy -SslProfile + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$AppGW = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$profile = Get-AzApplicationGatewaySslProfile -Name "Profile01" -ApplicationGateway $AppGw +$profile = Remove-AzApplicationGatewaySslProfilePolicy -SslProfile $profile +``` + +The first command gets the application gateway named ApplicationGateway01 in the resource group named ResourceGroup01 and stores it in the $AppGw variable. The second command gets the SSL profile named Profile01 for $AppGw and stores it in the $profile variable. The last command removes the ssl policy of the ssl profile stored in $profile. + + +#### Set-AzApplicationGatewaySslProfilePolicy + +#### SYNOPSIS +Modifies the SSL policy of an application gateway SSL profile. + +#### SYNTAX + +```powershell +Set-AzApplicationGatewaySslProfilePolicy -SslProfile + [-DisabledSslProtocols ] [-PolicyType ] [-PolicyName ] [-CipherSuite ] + [-MinProtocolVersion ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$profile = Get-AzApplicationGatewaySslProfile -Name "SslProfile01" -ApplicationGateway $AppGw +$profile = Set-AzApplicationGatewaySslProfilePolicy -SslProfile $profile -PolicyType Predefined -PolicyName AppGwSslPolicy20170401 +``` + +The first command gets the application gateway named ApplicationGateway01 in the resource group named ResourceGroup01 and stores it in the $AppGw variable. The second command gets the ssl profile named SslProfile01 for $AppGw and stores the settings in the $profile variable. The last command modifies the ssl policy of the ssl profile object stored in $profile. + + +#### New-AzApplicationGatewayTrustedClientCertificate + +#### SYNOPSIS +Creates a trusted client CA certificate chain for an application gateway. + +#### SYNTAX + +```powershell +New-AzApplicationGatewayTrustedClientCertificate -Name -CertificateFile + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$trustedClient = New-AzApplicationGatewayTrustedClientCertificate -Name "ClientCert" -CertificateFile "C:\clientCAChain.cer" +``` + +The command creates a new trusted client CA certificate chain object taking path of the client CA certificate as input. + + +#### Add-AzApplicationGatewayTrustedClientCertificate + +#### SYNOPSIS +Adds a trusted client CA certificate chain to an application gateway. + +#### SYNTAX + +```powershell +Add-AzApplicationGatewayTrustedClientCertificate -ApplicationGateway -Name + -CertificateFile [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 + +Adds a trusted client CA certificate chain to an application gateway. (autogenerated) + + + + +```powershell +Add-AzApplicationGatewayTrustedClientCertificate -ApplicationGateway -CertificateFile 'C:\cert.cer' -Name 'cert01' +``` + + +#### Get-AzApplicationGatewayTrustedClientCertificate + +#### SYNOPSIS +Gets the trusted client CA certificate chain with a specific name from the Application Gateway. + +#### SYNTAX + +```powershell +Get-AzApplicationGatewayTrustedClientCertificate [-Name ] -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$gw = Get-AzApplicationGateway -Name $appgwName -ResourceGroupName $resgpName +$trustedClientCert = Get-AzApplicationGatewayTrustedClientCertificate -ApplicationGateway $gw -Name $certName +``` + +The first command gets the Application Gateway and stores it in $gw variable. The second command gets the trusted client CA certificate chain with a specified name from the Application Gateway. + + +#### Remove-AzApplicationGatewayTrustedClientCertificate + +#### SYNOPSIS +Removes the trusted client CA certificate chain object from an application gateway. + +#### SYNTAX + +```powershell +Remove-AzApplicationGatewayTrustedClientCertificate -Name -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$gw = Get-AzApplicationGateway -Name $appgwName -ResourceGroupName $resgpName +$gw = Remove-AzApplicationGatewayTrustedClientCertificate -ApplicationGateway $gw -Name "TrustedClientCertificate01" +Set-AzApplicationGateway -ApplicationGateway $gw +``` + +The first command gets an application gateway and stores it in the $gw variable. The second command removes the trusted client CA certificate chain named "TrustedClientCertificate01" from the application gateway stored in $gw. The last command updates the application gateway. + + +#### Set-AzApplicationGatewayTrustedClientCertificate + +#### SYNOPSIS +Modifies the trusted client CA certificate chain of an application gateway. + +#### SYNTAX + +```powershell +Set-AzApplicationGatewayTrustedClientCertificate -ApplicationGateway -Name + -CertificateFile [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$gw = Get-AzApplicationGateway -Name $appgwName -ResourceGroupName $resgpName +$gw = Set-AzApplicationGatewayTrustedClientCertificate -ApplicationGateway $gw -Name $certName -CertificateFile ".\clientCAUpdated.cer" +$gw = Set-AzApplicationGateway -ApplicationGateway $gw +``` + +Above example scenarios shows how to update an existing trusted client CA certificate chain object. The first command gets an application gateway and stores it in the $gw variable. The second command modifies the existing trusted client CA certificate chain object with a new CA certificate chain file. The third command updates the application gateway on Azure. + + +#### New-AzApplicationGatewayTrustedRootCertificate + +#### SYNOPSIS +Creates a Trusted Root Certificate for an application gateway. + +#### SYNTAX + +```powershell +New-AzApplicationGatewayTrustedRootCertificate -Name -CertificateFile + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$certFilePath = ".\rootCA.cer" +$trc = New-AzApplicationGatewayTrustedRootCertificate -Name "trc1" -CertificateFile $certFilePath +``` + +This command creates a Trusted Root Certificate named List "trc1" and stores the result in the variable named $trc. + + +#### Add-AzApplicationGatewayTrustedRootCertificate + +#### SYNOPSIS +Adds a trusted root certificate to an application gateway. + +#### SYNTAX + +```powershell +Add-AzApplicationGatewayTrustedRootCertificate -ApplicationGateway -Name + -CertificateFile [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$gw = Get-AzApplicationGateway -Name $appgwName -ResourceGroupName $resgpName +$gw = Add-AzApplicationGatewayTrustedRootCertificate -ApplicationGateway $gw -Name $certName -CertificateFile ".\rootCA.cer" +$gw = Add-AzApplicationGatewayBackendHttpSetting -ApplicationGateway $gw -Name $poolSetting01Name -Port 443 -Protocol Https -CookieBasedAffinity Enabled -PickHostNameFromBackendAddress -TrustedRootCertificate $gw.TrustedRootCertificates[0] +$gw = Set-AzApplicationGateway -ApplicationGateway $gw +``` + +The first command gets the application gateway and stores it in $gw variable. +The second command adds a new trusted root certificate to Application Gateway taking path of the root certificate as input. +The third command creates new backend http setting using trusted root certificate for validating the backend server certificate against. +The fourth command updates the Application Gateway. + + +#### Get-AzApplicationGatewayTrustedRootCertificate + +#### SYNOPSIS +Gets the Trusted Root Certificate with a specific name from the Application Gateway. + +#### SYNTAX + +```powershell +Get-AzApplicationGatewayTrustedRootCertificate [-Name ] -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$gw = Get-AzApplicationGateway -Name $appgwName -ResourceGroupName $resgpName +$trustedRootCert = Get-AzApplicationGatewayTrustedRootCertificate -ApplicationGateway $gw -Name $certName +``` + +The first command gets the Application Gateway and stores it in $gw variable. +The second command gets the Trusted Root Certificate with a specified name from the Application Gateway. + + +#### Remove-AzApplicationGatewayTrustedRootCertificate + +#### SYNOPSIS +Removes a Trusted Root Certificate from an application gateway. + +#### SYNTAX + +```powershell +Remove-AzApplicationGatewayTrustedRootCertificate -Name -ApplicationGateway + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$gw = Get-AzApplicationGateway -Name $appgwName -ResourceGroupName $resgpName +$gw = Remove-AzApplicationGatewayTrustedRootCertificate -ApplicationGateway $gw -Name "myRootCA" +$gw = Set-AzApplicationGateway -ApplicationGateway $gw +``` + +The first command gets an application gateway and stores it in the $gw variable. +The second command removes the trusted root certificate named myRootCA from the application gateway stored in $gw. +The third command updates the application gateway on Azure. + + +#### Set-AzApplicationGatewayTrustedRootCertificate + +#### SYNOPSIS +Updates a Trusted Root Certificate of an application gateway. + +#### SYNTAX + +```powershell +Set-AzApplicationGatewayTrustedRootCertificate -ApplicationGateway -Name + -CertificateFile [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$gw = Get-AzApplicationGateway -Name $appgwName -ResourceGroupName $resgpName +$gw = Set-AzApplicationGatewayTrustedRootCertificate -ApplicationGateway $gw -Name $certName -CertificateFile ".\rootCAUpdated.cer" +$gw = Set-AzApplicationGateway -ApplicationGateway $gw +``` + +Above example scenarios shows how to update an existing trusted root certificate when a root certificate is rolled. +The first command gets an application gateway and stores it in the $gw variable. +The second command modifies the existing trusted root certificate with a new root certificate. +The third command updates the application gateway on Azure. + + +#### New-AzApplicationGatewayUrlPathMapConfig + +#### SYNOPSIS +Creates an array of URL path mappings to a backend server pool. + +#### SYNTAX + ++ BackendSetByResource (Default) +```powershell +New-AzApplicationGatewayUrlPathMapConfig -Name -PathRules + -DefaultBackendAddressPool + -DefaultBackendHttpSettings + [-DefaultRewriteRuleSet ] [-DefaultProfile ] + [] +``` + ++ BackendSetByResourceId +```powershell +New-AzApplicationGatewayUrlPathMapConfig -Name -PathRules + -DefaultBackendAddressPoolId -DefaultBackendHttpSettingsId + [-DefaultRewriteRuleSetId ] [-DefaultProfile ] + [] +``` + ++ RedirectSetByResource +```powershell +New-AzApplicationGatewayUrlPathMapConfig -Name -PathRules + [-DefaultRewriteRuleSet ] + -DefaultRedirectConfiguration + [-DefaultProfile ] [] +``` + ++ RedirectSetByResourceId +```powershell +New-AzApplicationGatewayUrlPathMapConfig -Name -PathRules + [-DefaultRewriteRuleSetId ] -DefaultRedirectConfigurationId + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Create an array of URL path mappings to a backend server pool +```powershell +New-AzApplicationGatewayUrlPathMapConfig -Name $UrlPathMapName -PathRules $VideoPathRule, $ImagePathRule -DefaultBackendAddressPool $Pool -DefaultBackendHttpSettings $PoolSetting02 +``` + +This command creates an array of URL path mappings to a backend server pool. + + +#### Add-AzApplicationGatewayUrlPathMapConfig + +#### SYNOPSIS +Adds an array of URL path mappings to a backend server pool. + +#### SYNTAX + ++ BackendSetByResource (Default) +```powershell +Add-AzApplicationGatewayUrlPathMapConfig -ApplicationGateway -Name + -PathRules + -DefaultBackendAddressPool + -DefaultBackendHttpSettings + [-DefaultRewriteRuleSet ] [-DefaultProfile ] + [] +``` + ++ BackendSetByResourceId +```powershell +Add-AzApplicationGatewayUrlPathMapConfig -ApplicationGateway -Name + -PathRules -DefaultBackendAddressPoolId + -DefaultBackendHttpSettingsId [-DefaultRewriteRuleSetId ] + [-DefaultProfile ] [] +``` + ++ RedirectSetByResource +```powershell +Add-AzApplicationGatewayUrlPathMapConfig -ApplicationGateway -Name + -PathRules [-DefaultRewriteRuleSet ] + -DefaultRedirectConfiguration + [-DefaultProfile ] [] +``` + ++ RedirectSetByResourceId +```powershell +Add-AzApplicationGatewayUrlPathMapConfig -ApplicationGateway -Name + -PathRules [-DefaultRewriteRuleSetId ] + -DefaultRedirectConfigurationId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Add an URL path mapping to an application gateway. +```powershell +$appgw = Get-AzApplicationGateway -ResourceGroupName "rg" -Name "appGwName" +$pool = Get-AzApplicationGatewayBackendAddressPool -ApplicationGateway $appgw -Name "pool01" +$poolSettings = Get-AzApplicationGatewayBackendHttpSetting -ApplicationGateway $appgw -Name "poolSettings01" +$pathRule = New-AzApplicationGatewayPathRuleConfig -Name "rule01" -Paths "/path" -BackendAddressPool $pool -BackendHttpSettings $poolSettings +$appgw = Add-AzApplicationGatewayUrlPathMapConfig -ApplicationGateway $appgw -Name "url01" -PathRules $pathRule -DefaultBackendAddressPool $pool -DefaultBackendHttpSettings $poolSettings +$appgw = Set-AzApplicationGateway -ApplicationGateway $appgw +``` + +The first command gets an application gateway named appGwName and stores it in $appgw variable. +The second command gets backend address pool and stores it in $pool variable. +The third command gets backend http settings and stores it in $poolSettings variable. +The fourth command create new path rule configuration named rule01 and stores it in $pathRule variable. +The fifth command adds url path mapping configuration named url01 to the application gateway. +The sixth command updates the application gateway. + + +#### Get-AzApplicationGatewayUrlPathMapConfig + +#### SYNOPSIS +Gets an array of URL path mappings to a backend server pool. + +#### SYNTAX + +```powershell +Get-AzApplicationGatewayUrlPathMapConfig [-Name ] -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Get a URL path map configuration +```powershell +Get-AzApplicationGatewayUrlPathMapConfig -ApplicationGateway Gateway +``` + +This command gets the URL path map configurations from the backend server located on the application gateway named Gateway. + + +#### Remove-AzApplicationGatewayUrlPathMapConfig + +#### SYNOPSIS +Removes URL path mappings to a backend server pool. + +#### SYNTAX + +```powershell +Remove-AzApplicationGatewayUrlPathMapConfig -Name -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Remove an URL path mapping from an application gateway +```powershell +$appgw = Get-AzApplicationGateway -ResourceGroupName "rg" -Name "appGwName" +$appgw = Remove-AzApplicationGatewayUrlPathMapConfig -ApplicationGateway $appgw -Name "map01" +$appgw = Set-AzApplicationGateway -ApplicationGateway $appgw +``` + +The first command gets the application gateway named appGwName and stores the result in the $appgw variable. +The second command removes the URL path mapping named map01 from the application gateway. +The third command updates the application gateway. + + +#### Set-AzApplicationGatewayUrlPathMapConfig + +#### SYNOPSIS +Sets configuration for an array of URL path mappings to a backend server pool. + +#### SYNTAX + ++ BackendSetByResource (Default) +```powershell +Set-AzApplicationGatewayUrlPathMapConfig -ApplicationGateway -Name + -PathRules + -DefaultBackendAddressPool + -DefaultBackendHttpSettings + [-DefaultRewriteRuleSet ] [-DefaultProfile ] + [] +``` + ++ BackendSetByResourceId +```powershell +Set-AzApplicationGatewayUrlPathMapConfig -ApplicationGateway -Name + -PathRules -DefaultBackendAddressPoolId + -DefaultBackendHttpSettingsId [-DefaultRewriteRuleSetId ] + [-DefaultProfile ] [] +``` + ++ RedirectSetByResource +```powershell +Set-AzApplicationGatewayUrlPathMapConfig -ApplicationGateway -Name + -PathRules [-DefaultRewriteRuleSet ] + -DefaultRedirectConfiguration + [-DefaultProfile ] [] +``` + ++ RedirectSetByResourceId +```powershell +Set-AzApplicationGatewayUrlPathMapConfig -ApplicationGateway -Name + -PathRules [-DefaultRewriteRuleSetId ] + -DefaultRedirectConfigurationId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Update an URL path mapping +```powershell +$appgw = Get-AzApplicationGateway -ResourceGroupName "rg" -Name "appGwName" +$appgw = Set-AzApplicationGatewayUrlPathMapConfig -ApplicationGateway $appgw -Name "map01" +$appgw = Set-AzApplicationGateway -ApplicationGateway $appgw +``` + +The first command gets the application gateway named appGwName and stores the result in the $appgw variable. +The second command updates the URL path mapping named map01 in the application gateway. +The third command updates the application gateway. + + +#### Get-AzApplicationGatewayWafDynamicManifest + +#### SYNOPSIS +Gets the web application firewall manifest and all the supported rule sets. + +#### SYNTAX + +```powershell +Get-AzApplicationGatewayWafDynamicManifest -Location [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$wafManifest = Get-AzApplicationGatewayWafDynamicManifest -Location westcentralus +``` + +This commands returns the web application firewall manifest and all the supported rule sets. + + +#### New-AzApplicationGatewayWebApplicationFirewallConfiguration + +#### SYNOPSIS +Creates a WAF configuration for an application gateway. + +#### SYNTAX + +```powershell +New-AzApplicationGatewayWebApplicationFirewallConfiguration -Enabled -FirewallMode + [-RuleSetType ] [-RuleSetVersion ] + [-DisabledRuleGroup ] [-RequestBodyCheck ] + [-MaxRequestBodySizeInKb ] [-FileUploadLimitInMb ] + [-Exclusion ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Create a web application firewall configuration for an application gateway +```powershell +$disabledRuleGroup1 = New-AzApplicationGatewayFirewallDisabledRuleGroupConfig -RuleGroupName "REQUEST-942-APPLICATION-ATTACK-SQLI" -Rules 942130,942140 +$disabledRuleGroup2 = New-AzApplicationGatewayFirewallDisabledRuleGroupConfig -RuleGroupName "REQUEST-921-PROTOCOL-ATTACK" +$firewallConfig = New-AzApplicationGatewayWebApplicationFirewallConfiguration -Enabled $true -FirewallMode "Prevention" -RuleSetType "OWASP" -RuleSetVersion "3.0" -DisabledRuleGroups $disabledRuleGroup1,$disabledRuleGroup2 +``` + +The first command creates a new disabled rule group configuration for the rule group named "REQUEST-942-APPLICATION-ATTACK-SQLI" with rule 942130 and rule 942140 being disabled. +The second command creates another disabled rule group configuration for a rule group named "REQUEST-921-PROTOCOL-ATTACK". No rules are specifically passed and thus all rules of the rule group will be disabled. +The last command then creates a WAF configuration with firewall rules disabled as configured in $disabledRuleGroup1 and $disabledRuleGroup2. The new WAF configuration is stored in the $firewallConfig variable. + + +#### Get-AzApplicationGatewayWebApplicationFirewallConfiguration + +#### SYNOPSIS +Gets the WAF configuration of an application gateway. + +#### SYNTAX + +```powershell +Get-AzApplicationGatewayWebApplicationFirewallConfiguration -ApplicationGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Get an application gateway web application firewall configuration +```powershell +$AppGW = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +$FirewallConfig = Get-AzApplicationGatewayWebApplicationFirewallConfiguration -ApplicationGateway $AppGW +``` + +The first command gets the application gateway named ApplicationGateway01, and then stores it in the $AppGW variable. +The second command gets the firewall configuration of the application gateway in $AppGW, and then stores it in $FirewallConfig. + + +#### Set-AzApplicationGatewayWebApplicationFirewallConfiguration + +#### SYNOPSIS +Modifies the WAF configuration of an application gateway. + +#### SYNTAX + +```powershell +Set-AzApplicationGatewayWebApplicationFirewallConfiguration -ApplicationGateway + -Enabled -FirewallMode [-RuleSetType ] [-RuleSetVersion ] + [-DisabledRuleGroup ] [-RequestBodyCheck ] + [-MaxRequestBodySizeInKb ] [-FileUploadLimitInMb ] + [-Exclusion ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Update the application gateway web application firewall configuration +```powershell +$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01" +Set-AzApplicationGatewayWebApplicationFirewallConfiguration -ApplicationGateway $AppGw -Enabled $True -FirewallMode "Detection" -RuleSetType "OWASP" -RuleSetVersion "3.0" +``` + +The first command gets the application gateway named ApplicationGateway01 and then stores it in the $AppGw variable. +The second command enables the firewall configuration for the application gateway stored in $AppGw and sets the firewall mode to "Detection", RuleSetType to "OWASP" and the RuleSetVersion to "3.0". + + +#### New-AzApplicationSecurityGroup + +#### SYNOPSIS +Creates an application security group. + +#### SYNTAX + +```powershell +New-AzApplicationSecurityGroup -ResourceGroupName -Name -Location [-Tag ] + [-Force] [-AsJob] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzApplicationSecurityGroup -ResourceGroupName "MyResourceGroup" -Name "MyApplicationSecurityGroup" -Location "West US" +``` + +This example creates an application security group with no associations. Once it is created, IP configurations in the network interface can be included in the group. Security rules may also refer to the group as their sources or destinations. + + +#### Get-AzApplicationSecurityGroup + +#### SYNOPSIS +Gets an application security group. + +#### SYNTAX + +```powershell +Get-AzApplicationSecurityGroup [-ResourceGroupName ] [-Name ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Retrieve all application security groups. +```powershell +Get-AzApplicationSecurityGroup +``` + +```output +ProvisioningState : Succeeded +ResourceGroupName : MyResourceGroup +Location : southcentralus +ResourceGuid : +Type : Microsoft.Network/applicationSecurityGroups +Tag : {} +TagsTable : +Name : MyApplicationSecurityGroup1 +Etag : W/"00000000-0000-0000-0000-000000000000" +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsof + t.Network/applicationSecurityGroups/MyApplicationSecurityGroup1 + +ProvisioningState : Succeeded +ResourceGroupName : MyResourceGroup +Location : southcentralus +ResourceGuid : +Type : Microsoft.Network/applicationSecurityGroups +Tag : {} +TagsTable : +Name : MyApplicationSecurityGroup2 +Etag : W/"00000000-0000-0000-0000-000000000000" +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsof + t.Network/applicationSecurityGroups/MyApplicationSecurityGroup2 +``` + +The command above returns the all application security groups in the subscription. + ++ Example 2: Retrieve application security groups in a resource group. +```powershell +Get-AzApplicationSecurityGroup -ResourceGroupName MyResourceGroup +``` + +```output +ProvisioningState : Succeeded +ResourceGroupName : MyResourceGroup +Location : southcentralus +ResourceGuid : +Type : Microsoft.Network/applicationSecurityGroups +Tag : {} +TagsTable : +Name : MyApplicationSecurityGroup1 +Etag : W/"00000000-0000-0000-0000-000000000000" +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsof + t.Network/applicationSecurityGroups/MyApplicationSecurityGroup1 + +ProvisioningState : Succeeded +ResourceGroupName : MyResourceGroup +Location : southcentralus +ResourceGuid : +Type : Microsoft.Network/applicationSecurityGroups +Tag : {} +TagsTable : +Name : MyApplicationSecurityGroup2 +Etag : W/"00000000-0000-0000-0000-000000000000" +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsof + t.Network/applicationSecurityGroups/MyApplicationSecurityGroup2 +``` + +The command above returns all application security groups that belong to the resource group MyResourceGroup. + ++ Example 3: Retrieve a specific application security group. +```powershell +Get-AzApplicationSecurityGroup -ResourceGroupName MyResourceGroup -Name MyApplicationSecurityGroup1 +``` + +```output +ProvisioningState : Succeeded +ResourceGroupName : MyResourceGroup +Location : southcentralus +ResourceGuid : +Type : Microsoft.Network/applicationSecurityGroups +Tag : {} +TagsTable : +Name : MyApplicationSecurityGroup1 +Etag : W/"00000000-0000-0000-0000-000000000000" +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsof + t.Network/applicationSecurityGroups/MyApplicationSecurityGroup1 +``` + +The command above returns the application security group MyApplicationSecurityGroup under the resource group MyResourceGroup. + ++ Example 4: Retrieve application security groups using filtering. +```powershell +Get-AzApplicationSecurityGroup -Name MyApplicationSecurityGroup* +``` + +```output +ProvisioningState : Succeeded +ResourceGroupName : MyResourceGroup +Location : southcentralus +ResourceGuid : +Type : Microsoft.Network/applicationSecurityGroups +Tag : {} +TagsTable : +Name : MyApplicationSecurityGroup1 +Etag : W/"00000000-0000-0000-0000-000000000000" +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsof + t.Network/applicationSecurityGroups/MyApplicationSecurityGroup1 + +ProvisioningState : Succeeded +ResourceGroupName : MyResourceGroup +Location : southcentralus +ResourceGuid : +Type : Microsoft.Network/applicationSecurityGroups +Tag : {} +TagsTable : +Name : MyApplicationSecurityGroup2 +Etag : W/"00000000-0000-0000-0000-000000000000" +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsof + t.Network/applicationSecurityGroups/MyApplicationSecurityGroup2 +``` + +The command above returns all application security groups that start with "MyApplicationSecurityGroup". + + +#### Remove-AzApplicationSecurityGroup + +#### SYNOPSIS +Removes an application security group. + +#### SYNTAX + +```powershell +Remove-AzApplicationSecurityGroup -ResourceGroupName -Name [-Force] [-AsJob] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzApplicationSecurityGroup -Name "MyApplicationSecurityGroup" -ResourceGroupName "MyResourceGroup" +``` + +This command deletes an application security group named MyApplicationSecurityGroup in the resource group named MyResourceGroup. + + +#### Get-AzAutoApprovedPrivateLinkService + +#### SYNOPSIS +Gets an array of private link service id that can be linked to a private end point with auto approved. + +#### SYNTAX + +```powershell +Get-AzAutoApprovedPrivateLinkService -Location [-ResourceGroupName ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example +```powershell +Get-AzAutoApprovedPrivateLinkService -Location westus -ResourceGroupName TestResourceGroup +``` + +This example return an array of private link service id that can be linked to a private end point with auto approved. + + +#### Get-AzAvailablePrivateEndpointType + +#### SYNOPSIS +Return available private end point types in the location. + +#### SYNTAX + +```powershell +Get-AzAvailablePrivateEndpointType -Location [-ResourceGroupName ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzAvailablePrivateEndpointType -Location eastus +``` + +```output +[ + { + "id": "subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/availablePrivateEndpointTypes/typename1", + "type": "Microsoft.Network/availablePrivateEndpointType", + "resourceName": "Microsoft.Sql/servers" + }, + { + "id": "subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/availablePrivateEndpointTypes/typename2", + "type": "Microsoft.Network/availablePrivateEndpointType", + "resourceName": "Microsoft.Storage/accounts" + }, + { + "id": "subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/availablePrivateEndpointTypes/typename3", + "type": "Microsoft.Network/availablePrivateEndpointType", + "resourceName": "Microsoft.Cosmos/cosmosDbAccounts" + } +] +``` + +This example returns all available private end point types in the location. + + +#### Get-AzAvailableServiceAlias + +#### SYNOPSIS +Get available service aliases in the region. + +#### SYNTAX + +```powershell +Get-AzAvailableServiceAlias -Location [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzAvailableServiceAlias -Location "westus" +``` + +```output +Name Id Type ResourceName +---- -- ---- ------------ +servicesAzure /subscriptions/61dc4623-b5f8-41a0-acfc-29537dcf6e5d/providers/Microsoft.Network/AvailableServiceAliases/servicesAzure Microsoft.Network/AvailableServiceAliases /services/Azure +servicesAzureManagedInstance /subscriptions/61dc4623-b5f8-41a0-acfc-29537dcf6e5d/providers/Microsoft.Network/AvailableServiceAliases/servicesAzureManagedInstance Microsoft.Network/AvailableServiceAliases /services/Azure/ManagedInstance +``` + + +#### Get-AzAvailableServiceDelegation + +#### SYNOPSIS +Get available service delegations in the region. + +#### SYNTAX + +```powershell +Get-AzAvailableServiceDelegation -Location [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Getting all available service delegations +```powershell +Get-AzAvailableServiceDelegation -Location "westus" +``` + +```output +Name : Microsoft.Web.serverFarms +Id : /subscriptions/subId/providers/Microsoft.Network/availableDelegations/Microsoft.Web.serverFarms +Type : Microsoft.Network/availableDelegations +ServiceName : Microsoft.Web/serverFarms +Actions : {Microsoft.Network/virtualNetworks/subnets/action} + +Name : Microsoft.Sql.servers +Id : /subscriptions/subId/providers/Microsoft.Network/availableDelegations/Microsoft.Sql.servers +Type : Microsoft.Network/availableDelegations +ServiceName : Microsoft.Sql/servers +Actions : {} +``` + + +#### New-AzBastion + +#### SYNOPSIS +Creates a bastion resource. + +#### SYNTAX + ++ ByPublicIpAddressByVirtualNetwork (Default) +```powershell +New-AzBastion -ResourceGroupName -Name -PublicIpAddress + -VirtualNetwork [-Sku ] [-ScaleUnit ] [-EnableKerberos ] + [-DisableCopyPaste ] [-EnableTunneling ] [-EnableIpConnect ] + [-EnableShareableLink ] [-EnableSessionRecording ] [-AsJob] [-Tag ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByPublicIpAddressByVirtualNetworkRGNameByVirtualNetworkName +```powershell +New-AzBastion -ResourceGroupName -Name -PublicIpAddress + -VirtualNetworkRgName -VirtualNetworkName [-Sku ] [-ScaleUnit ] + [-EnableKerberos ] [-DisableCopyPaste ] [-EnableTunneling ] + [-EnableIpConnect ] [-EnableShareableLink ] [-EnableSessionRecording ] [-AsJob] + [-Tag ] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + ++ ByPublicIpAddressByVirtualNetworkId +```powershell +New-AzBastion -ResourceGroupName -Name -PublicIpAddress + -VirtualNetworkId [-Sku ] [-ScaleUnit ] [-EnableKerberos ] + [-DisableCopyPaste ] [-EnableTunneling ] [-EnableIpConnect ] + [-EnableShareableLink ] [-EnableSessionRecording ] [-AsJob] [-Tag ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByPublicIpAddressIdByVirtualNetwork +```powershell +New-AzBastion -ResourceGroupName -Name -PublicIpAddressId + -VirtualNetwork [-Sku ] [-ScaleUnit ] [-EnableKerberos ] + [-DisableCopyPaste ] [-EnableTunneling ] [-EnableIpConnect ] + [-EnableShareableLink ] [-EnableSessionRecording ] [-AsJob] [-Tag ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByPublicIpAddressIdByVirtualNetworkRGNameByVirtualNetworkName +```powershell +New-AzBastion -ResourceGroupName -Name -PublicIpAddressId + -VirtualNetworkRgName -VirtualNetworkName [-Sku ] [-ScaleUnit ] + [-EnableKerberos ] [-DisableCopyPaste ] [-EnableTunneling ] + [-EnableIpConnect ] [-EnableShareableLink ] [-EnableSessionRecording ] [-AsJob] + [-Tag ] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + ++ ByPublicIpAddressIdByVirtualNetworkId +```powershell +New-AzBastion -ResourceGroupName -Name -PublicIpAddressId -VirtualNetworkId + [-Sku ] [-ScaleUnit ] [-EnableKerberos ] [-DisableCopyPaste ] + [-EnableTunneling ] [-EnableIpConnect ] [-EnableShareableLink ] + [-EnableSessionRecording ] [-AsJob] [-Tag ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByPublicIpAddressRgNameByPublicIpAddressNameByVirtualNetwork +```powershell +New-AzBastion -ResourceGroupName -Name -PublicIpAddressRgName + -PublicIpAddressName -VirtualNetwork [-Sku ] [-ScaleUnit ] + [-EnableKerberos ] [-DisableCopyPaste ] [-EnableTunneling ] + [-EnableIpConnect ] [-EnableShareableLink ] [-EnableSessionRecording ] [-AsJob] + [-Tag ] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + ++ ByPublicIpAddressRgNameByPublicIpAddressNameByVirtualNetworkRGNameByVirtualNetworkName +```powershell +New-AzBastion -ResourceGroupName -Name -PublicIpAddressRgName + -PublicIpAddressName -VirtualNetworkRgName -VirtualNetworkName [-Sku ] + [-ScaleUnit ] [-EnableKerberos ] [-DisableCopyPaste ] [-EnableTunneling ] + [-EnableIpConnect ] [-EnableShareableLink ] [-EnableSessionRecording ] [-AsJob] + [-Tag ] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + ++ ByPublicIpAddressRgNameByPublicIpAddressNameByVirtualNetworkId +```powershell +New-AzBastion -ResourceGroupName -Name -PublicIpAddressRgName + -PublicIpAddressName -VirtualNetworkId [-Sku ] [-ScaleUnit ] + [-EnableKerberos ] [-DisableCopyPaste ] [-EnableTunneling ] + [-EnableIpConnect ] [-EnableShareableLink ] [-EnableSessionRecording ] [-AsJob] + [-Tag ] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$subnetName = "AzureBastionSubnet" +$subnet = New-AzVirtualNetworkSubnetConfig -Name $subnetName -AddressPrefix 10.0.0.0/24 +$vnet = New-AzVirtualNetwork -Name "TestVnet" -ResourceGroupName "BastionPowershellTest" -Location "westeurope" -AddressPrefix 10.0.0.0/16 -Subnet $subnet +$publicip = New-AzPublicIpAddress -ResourceGroupName "BastionPowershellTest" -Name "Test-Ip" -location "westeurope" -AllocationMethod Dynamic -Sku Standard +$bastion = New-AzBastion -ResourceGroupName "BastionPowershellTest" -Name "test-Bastion2" -PublicIpAddress $publicip -VirtualNetwork $vnet +``` + +```output +IpConfigurations : {IpConf} +DnsName : bst-a9ca868f-ddab-4a50-9f45-a443ea8a0187.bastion.azure.com +ProvisioningState : Succeeded +IpConfigurationsText : [ + { + "Subnet": { + "Id": "/subscriptions/359a08a9-ff1b-463c-92d7-6df8d946f25c/resourceGroups/BastionPowershellTest/providers/Microsoft.Network/virtualNetworks/TestVnet/subnets/AzureBastionSubnet" + }, + "PublicIpAddress": { + "Id": "/subscriptions/359a08a9-ff1b-463c-92d7-6df8d946f25c/resourceGroups/BastionPowershellTest/providers/Microsoft.Network/publicIPAddresses/Test-Ip" + }, + "ProvisioningState": "Succeeded", + "PrivateIpAllocationMethod": "Dynamic", + "Name": "IpConf", + "Etag": "W/\"ed810ccd-b3f6-4e22-891e-b0ed0a26d6dd\"", + "Id": "/subscriptions/359a08a9-ff1b-463c-92d7-6df8d946f25c/resourceGroups/BastionPowershellTest/providers/Microsoft.Network/bastionHosts/test-Bastion2/bastionHostIpConfigurations/IpConf" + } + ] +ResourceGroupName : BastionPowershellTest +Location : westeurope +ResourceGuid : +Type : Microsoft.Network/bastionHosts +Tag : +TagsTable : +Name : test-Bastion2 +Etag : W/"ed810ccd-b3f6-4e22-891e-b0ed0a26d6dd" +Id : /subscriptions/359a08a9-ff1b-463c-92d7-6df8d946f25c/resourceGroups/BastionPowershellTest/providers/Microsoft.Network/bastionHosts/test-Bastion2 +Sku : { + "Name": "Basic" + } +Scale Units : 2 +``` + +This example creates a bastion attached to virtual network "vnet" in the same resource group as the bastion. +There must be a subnet with name AzureBastionSubnet in this vnet. +The Ip Address must be created with Sku Standard. + ++ Example 2 +```powershell +$vnet = Get-AzVirtualNetwork -ResourceGroupName "BastionPowershellTest" -Name "testVnet2" +Add-AzVirtualNetworkSubnetConfig -Name "AzureBastionSubnet" -VirtualNetwork $vnet -AddressPrefix "10.0.0.0/24" +$vnet| Set-AzVirtualNetwork +New-AzBastion -ResourceGroupName "BastionPowershellTest" -Name "testBastion2" -PublicIpAddressRgName "BastionPowershellTest" -PublicIpAddressName "testIp2" -VirtualNetworkRgName "BastionPowershellTest" -VirtualNetworkName "testVnet2" +``` + +```output +IpConfigurations : {IpConf} +DnsName : bst-53757658-c4fd-4908-b1a7-0849e555d489.bastion.azure.com +ProvisioningState : Succeeded +IpConfigurationsText : [ + { + "Name": "IpConf", + "Etag": "W/\"7460e5f6-ad41-438b-a595-a63346ed8f16\"", + "Id": "/subscriptions/359a08a9-ff1b-463c-92d7-6df8d946f25c/resourceGroups/BastionPowershellTest/providers/Microsoft.Network/bastionHosts/testBastion2/bastionHostIpConfigurations/IpConf", + "Subnet": { + "Id": "/subscriptions/359a08a9-ff1b-463c-92d7-6df8d946f25c/resourceGroups/BastionPowershellTest/providers/Microsoft.Network/virtualNetworks/testVnet2/subnets/AzureBastionSubnet" + }, + "PublicIpAddress": { + "Id": "/subscriptions/359a08a9-ff1b-463c-92d7-6df8d946f25c/resourceGroups/BastionPowershellTest/providers/Microsoft.Network/publicIPAddresses/testIp2" + }, + "ProvisioningState": "Succeeded", + "PrivateIpAllocationMethod": "Dynamic" + } + ] +ResourceGroupName : BastionPowershellTest +Location : westeurope +ResourceGuid : +Type : Microsoft.Network/bastionHosts +Tag : +TagsTable : +Name : testBastion2 +Etag : W/"7460e5f6-ad41-438b-a595-a63346ed8f16" +Id : /subscriptions/359a08a9-ff1b-463c-92d7-6df8d946f25c/resourceGroups/BastionPowershellTest/providers/Microsoft.Network/bastionHosts/testBastion2 +Sku : { + "Name": "Basic" + } +Scale Units : 2 +``` + ++ Example 3 +```powershell +$vnet = Get-AzVirtualNetwork -ResourceGroupName "BastionPowershellTest" -Name "testVnet2" +Add-AzVirtualNetworkSubnetConfig -Name "AzureBastionSubnet" -VirtualNetwork $vnet -AddressPrefix "10.0.0.0/24" +$vnet| Set-AzVirtualNetwork +New-AzBastion -ResourceGroupName "BastionPowershellTest" -Name "testBastion2" -PublicIpAddressRgName "BastionPowershellTest" -PublicIpAddressName "testIp2" -VirtualNetworkRgName "BastionPowershellTest" -VirtualNetworkName "testVnet2" -Sku "Standard" -ScaleUnit 3 +``` + +```output +IpConfigurations : {IpConf} +DnsName : bst-53757658-c4fd-4908-b1a7-0849e555d489.bastion.azure.com +ProvisioningState : Succeeded +IpConfigurationsText : [ + { + "Name": "IpConf", + "Etag": "W/\"7460e5f6-ad41-438b-a595-a63346ed8f16\"", + "Id": "/subscriptions/359a08a9-ff1b-463c-92d7-6df8d946f25c/resourceGroups/BastionPowershellTest/providers/Microsoft.Network/bastionHosts/testBastion2/bastionHostIpConfigurations/IpConf", + "Subnet": { + "Id": "/subscriptions/359a08a9-ff1b-463c-92d7-6df8d946f25c/resourceGroups/BastionPowershellTest/providers/Microsoft.Network/virtualNetworks/testVnet2/subnets/AzureBastionSubnet" + }, + "PublicIpAddress": { + "Id": "/subscriptions/359a08a9-ff1b-463c-92d7-6df8d946f25c/resourceGroups/BastionPowershellTest/providers/Microsoft.Network/publicIPAddresses/testIp2" + }, + "ProvisioningState": "Succeeded", + "PrivateIpAllocationMethod": "Dynamic" + } + ] +ResourceGroupName : BastionPowershellTest +Location : westeurope +ResourceGuid : +Type : Microsoft.Network/bastionHosts +Tag : +TagsTable : +Name : testBastion2 +Etag : W/"7460e5f6-ad41-438b-a595-a63346ed8f16" +Id : /subscriptions/359a08a9-ff1b-463c-92d7-6df8d946f25c/resourceGroups/BastionPowershellTest/providers/Microsoft.Network/bastionHosts/testBastion2 +Sku : { + "Name": "Standard" + } +Scale Units : 3 +``` + +This example creates a BastionHost resource with Standard Sku and 3 Scale Units. + + +#### Get-AzBastion + +#### SYNOPSIS +Gets a Bastion resource or Bastion resources. + +#### SYNTAX + ++ ListBySubscriptionId (Default) +```powershell +Get-AzBastion [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + ++ ListByResourceGroupName +```powershell +Get-AzBastion [-ResourceGroupName ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByResourceGroupNameByName +```powershell +Get-AzBastion -ResourceGroupName -Name [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByResourceId +```powershell +Get-AzBastion -ResourceId [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzBastion +``` + +```output +ResourceGroupName : abagarwaProd-PPTest +Location : westcentralus +ResourceGuid : +Type : Microsoft.Network/bastionHosts +Tag : {} +TagsTable : +Name : abagarwaProd-PPTest-vnet-bastion +Etag : W/"55702e34-348f-4b79-bf44-9c306623b7c7" +Id : /subscriptions/359a08a9-ff1b-463c-92d7-6df8d946f25c/resourceGroups/abagarwaProd-PPTest/providers/Microsoft.Network/bastionHosts/abagarwaProd-PPTest-vnet-bastion +IpConfigurations : {IpConf} +DnsName : bst-f594cc74-c21e-44c3-ad5e-5bb93933965f.bastion.azure.com +ProvisioningState : Succeeded +IpConfigurationsText : [ + { + "Name": "IpConf", + "Etag": "W/\"7ae27d14-9260-4e2d-8c48-47e9628a3e3b\"", + "Id": "/subscriptions/359a08a9-ff1b-463c-92d7-6df8d946f25c/resourceGroups/BastionTest/providers/Microsoft.Network/bastionHosts/BastionTest-vnet-bastion/bastionHostIpConfigurations/IpConf", + "Subnet": { + "Id": "/subscriptions/359a08a9-ff1b-463c-92d7-6df8d946f25c/resourceGroups/BastionTest/providers/Microsoft.Network/virtualNetworks/BastionTest-vnet/subnets/default" + }, + "PublicIpAddress": { + "Id": "/subscriptions/359a08a9-ff1b-463c-92d7-6df8d946f25c/resourceGroups/BastionTest/providers/Microsoft.Network/publicIPAddresses/BastionTest-vnet-ip" + }, + "ProvisioningState": "Succeeded", + "PrivateIpAllocationMethod": "Dynamic" + } + ] +Sku : { + "Name": "Basic" + } +Scale Units : 2 +Kerberos : False +Copy/Paste : False +Native Client : False +IP Connect : False +Shareable Link : False + +ResourceGroupName : BastionTest +Location : westcentralus +ResourceGuid : +Type : Microsoft.Network/bastionHosts +Tag : {} +TagsTable : +Name : BastionTest-vnet-bastion +Etag : W/"7ae27d14-9260-4e2d-8c48-47e9628a3e3b" +Id : /subscriptions/359a08a9-ff1b-463c-92d7-6df8d946f25c/resourceGroups/BastionTest/providers/Microsoft.Network/bastionHosts/BastionTest-vnet-bastion +IpConfigurations : {IpConf} +DnsName : bst-32359e0c-d6a5-45f1-b196-2f9a4b4b77e8.bastion.azure.com +ProvisioningState : Succeeded +IpConfigurationsText : [ + { + "Name": "IpConf", + "Etag": "W/\"bd537319-3379-4caf-a8dc-be4506f9dd3a\"", + "Id": "/subscriptions/359a08a9-ff1b-463c-92d7-6df8d946f25c/resourceGroups/ps1621/providers/Microsoft.Network/bastionHosts/ps5581/bastionHostIpConfigurations/IpConf", + "Subnet": { + "Id": "/subscriptions/359a08a9-ff1b-463c-92d7-6df8d946f25c/resourceGroups/ps1621/providers/Microsoft.Network/virtualNetworks/ps7070/subnets/AzureBastionSubnet" + }, + "PublicIpAddress": { + "Id": "/subscriptions/359a08a9-ff1b-463c-92d7-6df8d946f25c/resourceGroups/ps1621/providers/Microsoft.Network/publicIPAddresses/ps2217" + }, + "ProvisioningState": "Succeeded", + "PrivateIpAllocationMethod": "Dynamic" + } + ] +Sku : { + "Name": "Standard" + } +Scale Units : 50 +Kerberos : True +Copy/Paste : True +Native Client : True +IP Connect : True +Shareable Link : True + +ResourceGroupName : ps1621 +Location : westcentralus +ResourceGuid : +Type : Microsoft.Network/bastionHosts +Tag : +TagsTable : +Name : ps5581 +Etag : W/"bd537319-3379-4caf-a8dc-be4506f9dd3a" +Id : /subscriptions/359a08a9-ff1b-463c-92d7-6df8d946f25c/resourceGroups/ps1621/providers/Microsoft.Network/bastionHosts/ps5581 +IpConfigurations : {IpConf} +DnsName : bst-aee29973-3b60-44c1-a1de-bd8636e79127.bastion.azure.com +ProvisioningState : Succeeded +IpConfigurationsText : [ + { + "Name": "IpConf", + "Etag": "W/\"42f723dd-f1de-4fd0-b307-3fe82f0b50f7\"", + "Id": "/subscriptions/359a08a9-ff1b-463c-92d7-6df8d946f25c/resourceGroups/ps3151/providers/Microsoft.Network/bastionHosts/ps8815/bastionHostIpConfigurations/IpConf", + "Subnet": { + "Id": "/subscriptions/359a08a9-ff1b-463c-92d7-6df8d946f25c/resourceGroups/ps3151/providers/Microsoft.Network/virtualNetworks/ps5766/subnets/AzureBastionSubnet" + }, + "PublicIpAddress": { + "Id": "/subscriptions/359a08a9-ff1b-463c-92d7-6df8d946f25c/resourceGroups/ps3151/providers/Microsoft.Network/publicIPAddresses/ps2773" + }, + "ProvisioningState": "Succeeded", + "PrivateIpAllocationMethod": "Dynamic" + } + ] +Sku : { + "Name": "Standard" + } +Scale Units : 2 +Kerberos : False +Copy/Paste : False +Native Client : False +IP Connect : False +Shareable Link : False + +ResourceGroupName : ps3151 +Location : westcentralus +ResourceGuid : +Type : Microsoft.Network/bastionHosts +Tag : +TagsTable : +Name : ps8815 +Etag : W/"42f723dd-f1de-4fd0-b307-3fe82f0b50f7" +Id : /subscriptions/359a08a9-ff1b-463c-92d7-6df8d946f25c/resourceGroups/ps3151/providers/Microsoft.Network/bastionHosts/ps8815 +IpConfigurations : {IpConf} +DnsName : bst-746c229d-f144-4699-a7ea-303a15a70457.bastion.azure.com +ProvisioningState : Succeeded +IpConfigurationsText : [ + { + "Name": "IpConf", + "Etag": "W/\"0b11e3e7-330b-4727-b073-dfe458429fcf\"", + "Id": "/subscriptions/359a08a9-ff1b-463c-92d7-6df8d946f25c/resourceGroups/ps3429/providers/Microsoft.Network/bastionHosts/ps7790/bastionHostIpConfigurations/IpConf", + "Subnet": { + "Id": "/subscriptions/359a08a9-ff1b-463c-92d7-6df8d946f25c/resourceGroups/ps3429/providers/Microsoft.Network/virtualNetworks/ps7582/subnets/AzureBastionSubnet" + }, + "PublicIpAddress": { + "Id": "/subscriptions/359a08a9-ff1b-463c-92d7-6df8d946f25c/resourceGroups/ps3429/providers/Microsoft.Network/publicIPAddresses/ps8199" + }, + "ProvisioningState": "Succeeded", + "PrivateIpAllocationMethod": "Dynamic" + } + ] +Sku : { + "Name": "Basic" + } +Scale Units : 2 +Kerberos : False +Copy/Paste : False +Native Client : False +IP Connect : False +Shareable Link : False +``` + ++ Example 2 +```powershell +Get-AzBastion -ResourceGroupName "BastionPowershellTest" -Name "testBastion" +``` + +```output +IpConfigurations : {IpConf} +DnsName : bst-0597f607-ab71-46c2-ab2a-777bfa887aff.bastion.azure.com +ProvisioningState : Succeeded +IpConfigurationsText : [ + { + "Name": "IpConf", + "Etag": "W/\"4d023823-3ea8-439a-ac00-20f16fb0c9b2\"", + "Id": "/subscriptions/359a08a9-ff1b-463c-92d7-6df8d946f25c/resourceGroups/BastionPowershellTest/providers/Microsoft.Network/bastionHosts/testBastion/bastionHostIpConfigurations/IpConf", + "Subnet": { + "Id": "/subscriptions/359a08a9-ff1b-463c-92d7-6df8d946f25c/resourceGroups/BastionPowershellTest/providers/Microsoft.Network/virtualNetworks/TestVnet/subnets/AzureBastionSubnet" + }, + "PublicIpAddress": { + "Id": "/subscriptions/359a08a9-ff1b-463c-92d7-6df8d946f25c/resourceGroups/BastionPowershellTest/providers/Microsoft.Network/publicIPAddresses/Test-Ip" + }, + "ProvisioningState": "Succeeded", + "PrivateIpAllocationMethod": "Dynamic" + } + ] +ResourceGroupName : BastionPowershellTest +Location : westeurope +ResourceGuid : +Type : Microsoft.Network/bastionHosts +Tag : +TagsTable : +Name : testBastion +Etag : W/"4d023823-3ea8-439a-ac00-20f16fb0c9b2" +Id : /subscriptions/359a08a9-ff1b-463c-92d7-6df8d946f25c/resourceGroups/BastionPowershellTest/providers/Microsoft.Network/bastionHosts/testBastion +Sku : { + "Name": "Basic" + } +Scale Units : 2 +Kerberos : False +Copy/Paste : False +Native Client : False +IP Connect : False +Shareable Link : False +``` + + +#### Remove-AzBastion + +#### SYNOPSIS +Removes a bastion resource. + +#### SYNTAX + ++ ByResourceGroupName (Default) +```powershell +Remove-AzBastion -ResourceGroupName -Name [-PassThru] [-Force] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByInputObject +```powershell +Remove-AzBastion -InputObject [-PassThru] [-Force] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByResourceId +```powershell +Remove-AzBastion -ResourceId [-PassThru] [-Force] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzBastion -ResourceGroupName "BastionPowershellTest" -Name "testBastion2" +``` + ++ Example 2 +```powershell +Get-AzBastion -ResourceGroupName "BastionPowershellTest" -Name "testBastion" | Remove-AzBastion +``` + ++ Example 3 +```powershell +$bastion = Get-AzBastion -ResourceGroupName "BastionPowershellTest" -Name "testBastion" +Remove-AzBastion -InputObject $bastion +``` + + +#### Set-AzBastion + +#### SYNOPSIS +Updates the Bastion Resource. + +#### SYNTAX + +```powershell +Set-AzBastion -InputObject [-Sku ] [-ScaleUnit ] [-EnableKerberos ] + [-DisableCopyPaste ] [-EnableTunneling ] [-EnableIpConnect ] + [-EnableShareableLink ] [-EnableSessionRecording ] [-Tag ] [-Force] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Set-AzBastion -InputObject $bastionObj -Sku "Standard" -ScaleUnit 10 -Force +``` + +```output +Name : MyBastion +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyRg/providers/Microsoft.Network/bastionHosts/MyBastion +Etag : W/"000" +Type : Microsoft.Network/bastionHosts +Location : westus2 +Tag : +TagsTable : +ResourceGroupName : MyRg +DnsName : bst-00000000-0000-0000-0000-000000000001.test.bastion.azure.com +ResourceGuid : +ProvisioningState : Succeeded +IpConfigurationsText : [ + { + "Subnet": { + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyRg/providers/Microsoft.Network/virtualNetworks/MyVnet/subnets/AzureBastionSubnet" + }, + "PublicIpAddress": { + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyRg/providers/Microsoft.Network/publicIPAddresses/PublicIp1" + }, + "ProvisioningState": "Succeeded", + "PrivateIpAllocationMethod": "Dynamic", + "Name": "IpConf", + "Etag": "W/\"000\"", + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyRg/providers/Microsoft.Network/bastionHosts/MyBastion/bastionHostIpConfigurations/IpConf" + } + ] +Sku : { + "Name": "Standard" + } +Scale Units : 10 +``` + +Updates BastionHost resource with Basic Sku and 2 Scale Units to Standard Sku and 10 Scale Units + ++ Example 2 + + + +```powershell +$bastionObj = Get-AzBastion -ResourceGroupName "MyRg" -Name "MyBastion" +$bastionObj + +Name : MyBastion +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyRg/providers/Microsoft.Network/bastionHosts/MyBastion +Etag : W/"000" +Type : Microsoft.Network/bastionHosts +Location : westus2 +Tag : +TagsTable : +ResourceGroupName : MyRg +DnsName : bst-00000000-0000-0000-0000-000000000001.test.bastion.azure.com +ResourceGuid : +ProvisioningState : Succeeded +IpConfigurationsText : [ + { + "Subnet": { + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyRg/providers/Microsoft.Network/virtualNetworks/MyVnet/subnets/AzureBastionSubnet" + }, + "PublicIpAddress": { + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyRg/providers/Microsoft.Network/publicIPAddresses/PublicIp1" + }, + "ProvisioningState": "Succeeded", + "PrivateIpAllocationMethod": "Dynamic", + "Name": "IpConf", + "Etag": "W/\"000\"", + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyRg/providers/Microsoft.Network/bastionHosts/MyBastion/bastionHostIpConfigurations/IpConf" + } + ] +Sku : { + "Name": "Basic" + } +Scale Units : 2 + +$bastionObj.Sku.Name = "Standard" +$bastionObj.ScaleUnit = 50 +Set-AzBastion -InputObject $bastionObj -Force +Name : MyBastion +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyRg/providers/Microsoft.Network/bastionHosts/MyBastion +Etag : W/"000" +Type : Microsoft.Network/bastionHosts +Location : westus2 +Tag : +TagsTable : +ResourceGroupName : MyRg +DnsName : bst-00000000-0000-0000-0000-000000000001.test.bastion.azure.com +ResourceGuid : +ProvisioningState : Succeeded +IpConfigurationsText : [ + { + "Subnet": { + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyRg/providers/Microsoft.Network/virtualNetworks/MyVnet/subnets/AzureBastionSubnet" + }, + "PublicIpAddress": { + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyRg/providers/Microsoft.Network/publicIPAddresses/PublicIp1" + }, + "ProvisioningState": "Succeeded", + "PrivateIpAllocationMethod": "Dynamic", + "Name": "IpConf", + "Etag": "W/\"000\"", + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyRg/providers/Microsoft.Network/bastionHosts/MyBastion/bastionHostIpConfigurations/IpConf" + } + ] +Sku : { + "Name": "Standard" + } +Scale Units : 50 +``` + +Updates BastionHost resource with Basic Sku and 2 Scale Units to Standard Sku and 50 Scale Units + + +#### New-AzBastionShareableLink + +#### SYNOPSIS +The Bastion Shareable Link feature lets users connect to a target resource (virtual machine or virtual machine scale set) using Azure Bastion without accessing the Azure portal. + +#### SYNTAX + ++ ByResourceGroupNameByName (Default) +```powershell +New-AzBastionShareableLink -ResourceGroupName -Name + -TargetVmId [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByResourceId +```powershell +New-AzBastionShareableLink -ResourceId -TargetVmId + [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByInputObject +```powershell +New-AzBastionShareableLink -InputObject + -TargetVmId [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$vm = Get-AzVM -ResourceGroupName $RgName -Name $vmName +New-AzBastionShareableLink -ResourceGroupName $RgName -Name $bastionName -TargetVmId $vm.Id +``` + +```output +{ + "vm": { + "id": "/subscriptions/subid/resourceGroups/rgx/providers/Microsoft.Compute/virtualMachines/vm1" + }, + "bsl": "http://bst-bastionhostid.bastion.com/api/shareable-url/tokenvm1", + "createdAt": "2019-10-18T12:00:00.0000Z" +} +``` + ++ Example 2 +```powershell +$vm1 = Get-AzVM -ResourceGroupName $RgName -Name $vmName1 +$vm2 = Get-AzVM -ResourceGroupName $RgName -Name $vmName2 +$bastion = Get-AzBastion -ResourceGroupName $RgName -Name $bastionName +New-AzBastionShareableLink -InputObject $bastion -TargetVmId $vm1.Id, $vm2.Id +``` + +```output +{ + "vm": { + "id": "/subscriptions/subid/resourceGroups/rgx/providers/Microsoft.Compute/virtualMachines/vm1" + }, + "bsl": "http://bst-bastionhostid.bastion.com/api/shareable-url/tokenvm1", + "createdAt": "2019-10-18T12:00:00.0000Z" +}, +{ + "vm": { + "id": "/subscriptions/subid/resourceGroups/rgx/providers/Microsoft.Compute/virtualMachines/vm2" + }, + "bsl": "http://bst-bastionhostid.bastion.com/api/shareable-url/tokenvm2", + "createdAt": "2019-10-17T12:00:00.0000Z" +} +``` + +Creates a shareable link for specified VMs on a Bastion resource. + + +#### Get-AzBastionShareableLink + +#### SYNOPSIS +The Bastion Shareable Link feature lets users connect to a target resource (virtual machine or virtual machine scale set) using Azure Bastion without accessing the Azure portal. + +#### SYNTAX + ++ ByResourceGroupNameByName (Default) +```powershell +Get-AzBastionShareableLink -ResourceGroupName -Name + [-TargetVmId ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByResourceId +```powershell +Get-AzBastionShareableLink -ResourceId + [-TargetVmId ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByInputObject +```powershell +Get-AzBastionShareableLink -InputObject + [-TargetVmId ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzBastionShareableLink -ResourceGroupName $RgName -Name $bastionName +``` + +```output +{ + "vm": { + "id": "/subscriptions/subid/resourceGroups/rgx/providers/Microsoft.Compute/virtualMachines/vm" + }, + "bsl": "http://bst-bastionhostid.bastion.com/api/shareable-url/tokenvm", + "createdAt": "2019-10-17T12:00:00.0000Z" +} +``` + ++ Example 2 +```powershell +Get-AzBastionShareableLink -InputObject $bastion -TargetVmId $vm1.Id +``` + +```output +{ + "vm": { + "id": "/subscriptions/subid/resourceGroups/rgx/providers/Microsoft.Compute/virtualMachines/vm1" + }, + "bsl": "http://bst-bastionhostid.bastion.com/api/shareable-url/tokenvm1", + "createdAt": "2019-10-17T12:00:00.0000Z" +} +``` + +Gets shareable link(s) for specified VMs on a Bastion resource. + + +#### Remove-AzBastionShareableLink + +#### SYNOPSIS +The Bastion Shareable Link feature lets users connect to a target resource (virtual machine or virtual machine scale set) using Azure Bastion without accessing the Azure portal. + +#### SYNTAX + ++ ByResourceGroupNameByName (Default) +```powershell +Remove-AzBastionShareableLink -ResourceGroupName -Name + -TargetVmId [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByResourceId +```powershell +Remove-AzBastionShareableLink -ResourceId + -TargetVmId [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByInputObject +```powershell +Remove-AzBastionShareableLink -InputObject + -TargetVmId [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzBastionShareableLink -ResourceGroupName $RgName -Name $bastionName -TargetVmId $vm.Id -Force +``` + ++ Example 2 +```powershell +Remove-AzBastionShareableLink -InputObject $bastion -TargetVmId $vm.Id -Force +``` + +Deletes shareable link(s) for specified VMs on a Bastion resource. + + +#### Get-AzBgpServiceCommunity + +#### SYNOPSIS +Provides a list of all services / regions, BGP communities, and associated prefixes. + +#### SYNTAX + +```powershell +Get-AzBgpServiceCommunity [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzBgpServiceCommunity +``` + +```output +... + +Name : AzureCentralIndia +Id : /subscriptions//resourceGroups//providers/Microsoft.Network/bgpServiceCommunities/AzureCentralIndia +Type : Microsoft.Network/bgpServiceCommunities +BgpCommunities : [ + { + "ServiceSupportedRegion": "Global", + "CommunityName": "Azure Central India", + "CommunityValue": "12076:51017", + "CommunityPrefixes": [ + "13.71.0.0/18", + "20.190.146.0/25", + "40.79.214.0/24", + "40.81.224.0/19", + "40.87.224.0/22", + "40.112.39.0/25", + "40.112.39.128/26", + "40.126.18.0/25", + "52.136.24.0/24", + "52.140.64.0/18", + "52.159.64.0/19", + "52.172.128.0/17", + "52.239.135.64/26", + "52.239.202.0/24", + "52.245.96.0/22", + "52.253.168.0/22", + "104.47.210.0/23", + "104.211.64.0/20", + "104.211.81.0/24", + "104.211.82.0/23", + "104.211.84.0/22", + "104.211.88.0/21", + "104.211.96.0/19" + ], + "IsAuthorizedToUse": true, + "ServiceGroup": "Azure" + } + ] +... +``` + +This cmdlet provides a list of all services / regions, BGP communities, and associated prefixes. + + +#### New-AzContainerNicConfig + +#### SYNOPSIS +Creates a new container network interface configuration object. + +#### SYNTAX + +```powershell +New-AzContainerNicConfig [-Name ] [-IpConfiguration ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$containerNicConfig = New-AzContainerNicConfig -Name cnicConfig1 + +$networkProfile = New-AzNetworkProfile -Name np1 -ResourceGroupName rg1 -Location westus -ContainerNetworkInterfaceConfiguration $containerNicConfig +``` + +The first command creates an empty container network interface configuration. The second creates a new network profile, passing the previously created container network interface configuration as an argument to the New-NetworkProfile cmdlet. + ++ Example 2 + +Creates a new container network interface configuration object. (autogenerated) + + + + +```powershell +New-AzContainerNicConfig -IpConfiguration -Name cnic +``` + + +#### New-AzContainerNicConfigIpConfig + +#### SYNOPSIS +Creates a container nic configuration ip configuration object. + +#### SYNTAX + +```powershell +New-AzContainerNicConfigIpConfig -Name -Subnet [-SubnetId ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$subnet = New-AzVirtualNetworkSubnetConfig -Name subnet -AddressPrefix 10.0.1.0/24 + +$vnet = New-AzVirtualNetwork -Name vnet -ResourceGroupName rg1 -Location "West US" -AddressPrefix 10.0.0.0/16 -Subnet $subnet + +$containerNicConfigIpConfig = New-AzContainerNicConfigIpConfig -Name ipconfigprofile1 -Subnet $vnet.Subnets[0] + +$containerNicConfig = New-AzContainerNicConfig -Name cnic -IpConfiguration $containerNicConfigIpConfig + +$networkProfile = New-AzNetworkProfile -Name np1 -Location "West US" -ResourceGroupName rg1 -ContainerNetworkInterfaceConfiguration $containerNicConfig +``` + +The first two commands create and initialize a vnet and a subnet. The third command creates a container nic ip configuration profile referencing the created subnet. The fourth command creates a container network interface configuration supplying the ip configuration profile created in the previous command. Finally, the fifth command creates a network profile initialized with the container network interface configuration stored in $containerNicConfig. + + +#### New-AzCustomIpPrefix + +#### SYNOPSIS +Creates a CustomIpPrefix resource + +#### SYNTAX + +```powershell +New-AzCustomIpPrefix -Name -ResourceGroupName -Location -Cidr + [-Asn ] [-Geo ] [-SignedMessage ] [-AuthorizationMessage ] + [-ExpressRouteAdvertise] [-CustomIpPrefixParent ] [-IsParent] [-Zone ] + [-Tag ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$myCustomIpPrefix = New-AzCustomIpPrefix -Name $prefixName -ResourceGroupName $rgName -Cidr "40.40.40.0/24" -Location westus2 -Zone 1,2,3 -AuthorizationMessage $authorizationMessage -SignedMessage $signedMessage +``` + +This command kicks off the provisioning process for a new zone-redundant IPv4 Custom IP Prefix resource with name $prefixName in resource group $rgName with a CIDR of 40.40.40.0/24 in West US 2 region. Note the AuthorizationMessage is a concatenated string (containing the subscription ID, CIDR, and Route Origin Authorization expiration date) and the SignedMessage is the same string signed by X509 certificate offline. + ++ Example 2 +```powershell +$myV4ParentPrefix = New-AzCustomIpPrefix -Name $prefixName -ResourceGroupName $rgName -Cidr "40.40.40.0/24" -Location westus2 -IsParent -AuthorizationMessage $authorizationMessage -SignedMessage $signedMessage +``` + +This command kicks off the provisioning process for a new Parent IPv4 Custom IP Prefix resource with name $prefixName in resource group $rgName with a CIDR of 40.40.40.0/24. + ++ Example 3 +```powershell +$myV4ChildIpPrefix = New-AzCustomIpPrefix -Name $prefixName -ResourceGroupName $rgName -Cidr "40.40.40.0/25" -Location westus2 -CustomIpPrefixParent $myV4ParentPrefix +``` + +This command kicks off the provisioning process for a new Child IPv4 Custom IP Prefix resource with name $prefixName in resource group $rgName with a CIDR of 40.40.40.0/25. Its parent prefix is $myV4ParentPrefix. + + +#### Get-AzCustomIpPrefix + +#### SYNOPSIS +Gets a CustomIpPrefix resource + +#### SYNTAX + ++ GetByNameParameterSet (Default) +```powershell +Get-AzCustomIpPrefix [-Name ] [-ResourceGroupName ] [-DefaultProfile ] + [] +``` + ++ GetByResourceIdParameterSet +```powershell +Get-AzCustomIpPrefix -ResourceId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzCustomIpPrefix -ResourceGroupName myRg -Name myCustomIpPrefix +``` + +```output +Name : myCustomIpPrefix +ResourceGroupName : myRg +Location : westus +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/byoip-test-rg/providers/Micro + soft.Network/customIPPrefixes/testCustomIpPrefix +Etag : W/"00000000-0000-0000-0000-000000000000" +ResourceGuid : 00000000-0000-0000-0000-000000000000 +ProvisioningState : Succeeded +Tags : +Cidr : 111.111.111.111/24 +CommissionedState : Provisioning +PublicIpPrefixes : [] +Zones : {} +SignedMessage : SignedMessage +AuthorizationMessage : AuthorizationMessage +CustomIpPrefixParent : +ChildCustomIpPrefixes: [] +``` + +This command gets a CustomIpPrefix resource named myCustomIpPrefix in resource group myRg + + +#### Remove-AzCustomIpPrefix + +#### SYNOPSIS +Removes a CustomIpPrefix + +#### SYNTAX + ++ DeleteByNameParameterSet (Default) +```powershell +Remove-AzCustomIpPrefix -Name -ResourceGroupName [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ DeleteByResourceIdParameterSet +```powershell +Remove-AzCustomIpPrefix -ResourceId [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ DeleteByInputObjectParameterSet +```powershell +Remove-AzCustomIpPrefix -InputObject [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzCustomIpPrefix -Name $prefixName -ResourceGroupName $rgName +``` + +Removes the CustomIpPrefix with Name $prefixName from resource group $rgName + + +#### Update-AzCustomIpPrefix + +#### SYNOPSIS +Updates a CustomIpPrefix + +#### SYNTAX + ++ UpdateByNameParameterSet (Default) +```powershell +Update-AzCustomIpPrefix -Name -ResourceGroupName [-Commission] [-Decommission] [-Provision] + [-Deprovision] [-NoInternetAdvertise] [-Cidr ] [-Tag ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ UpdateByInputObjectParameterSet +```powershell +Update-AzCustomIpPrefix -InputObject [-Commission] [-Decommission] [-Provision] + [-Deprovision] [-NoInternetAdvertise] [-Cidr ] [-Tag ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ UpdateByResourceIdParameterSet +```powershell +Update-AzCustomIpPrefix -ResourceId [-Commission] [-Decommission] [-Provision] [-Deprovision] + [-NoInternetAdvertise] [-Cidr ] [-Tag ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 : Commission the CustomIpPrefix +```powershell +Update-AzCustomIpPrefix -Name $prefixName -ResourceGroupName $rgName -Commission +``` + +The above command will start the commissioning process of the CustomIpPrefix. + ++ Example 2 : Decommission the CustomIpPrefix +```powershell +Update-AzCustomIpPrefix -Name $prefixName -ResourceGroupName $rgName -Decommission +``` + +The above command will start the de-commissioning process of the CustomIpPrefix. + ++ Example 3 : Provision the CustomIpPrefix +```powershell +Update-AzCustomIpPrefix -Name $prefixName -ResourceGroupName $rgName -Provision +``` + +The above command will start the provisioning process of the CustomIpPrefix. + ++ Example 4 : Deprovision the CustomIpPrefix +```powershell +Update-AzCustomIpPrefix -Name $prefixName -ResourceGroupName $rgName -Deprovision +``` + +The above command will start the deprovisioning process of the CustomIpPrefix. + ++ Example 5 : Update tags for the CustomIpPrefix +```powershell +Update-AzCustomIpPrefix -Name $prefixName -ResourceGroupName $rgName -Tag $tags +``` + +The above command will update the tags for the CustomIpPrefix. + ++ Example 6 : Update CIDR for the CustomIpPrefix +```powershell +Update-AzCustomIpPrefix -Name $prefixName -ResourceGroupName $rgName -Cidr $cidr +``` + +The above command will update the cidr for the CustomIpPrefix. This would work only when resource is in validationfailed state. + + +#### New-AzDdosProtectionPlan + +#### SYNOPSIS +Creates a DDoS protection plan. + +#### SYNTAX + +```powershell +New-AzDdosProtectionPlan -ResourceGroupName -Name -Location [-Tag ] + [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Create and associate a DDoS protection plan with a new virtual network +```powershell +$ddosProtectionPlan = New-AzDdosProtectionPlan -ResourceGroupName ResourceGroupName -Name DdosProtectionPlanName -Location "West US" +$subnet = New-AzVirtualNetworkSubnetConfig -Name SubnetName -AddressPrefix 10.0.1.0/24 +$vnet = New-AzVirtualNetwork -Name VnetName -ResourceGroupName ResourceGroupName -Location "West US" -AddressPrefix 10.0.0.0/16 -DnsServer 8.8.8.8 -Subnet $subnet -EnableDdoSProtection -DdosProtectionPlanId $ddosProtectionPlan.Id +``` + +First, we create a new DDoS Protection plan with the **New-AzDdosProtectionPlan** command. +Then, we create a new virtual network with **New-AzVirtualNetwork** and we specify the ID of the newly created plan in the parameter **DdosProtectionPlanId**. In this case, since we are associating the virtual network with a plan, we can also specify the parameter **EnableDdoSProtection**. + ++ Example 2: Create and associate a DDoS protection plan with an existing virtual network +```powershell +$ddosProtectionPlan = New-AzDdosProtectionPlan -ResourceGroupName ResourceGroupName -Name DdosProtectionPlanName -Location "West US" +$vnet = Get-AzVirtualNetwork -Name VnetName -ResourceGroupName ResourceGroupName +$vnet.DdosProtectionPlan = New-Object Microsoft.Azure.Commands.Network.Models.PSResourceId +$vnet.DdosProtectionPlan.Id = $ddosProtectionPlan.Id +$vnet.EnableDdosProtection = $true +$vnet | Set-AzVirtualNetwork +``` + +```output +Name : VnetName +ResourceGroupName : ResourceGroupName +Location : westus +Id : /subscriptions/d1dbd366-9871-45ac-84b7-fb318152a9e0/resourceGroups/ResourceGroupName/providers/Microsoft.Network/virtualNetworks/VnetName +Etag : W/"fbf41754-3c13-43fd-bb5b-fcc37d5e1cbb" +ResourceGuid : fcb7bc1e-ee0d-4005-b3f1-feda76e3756c +ProvisioningState : Succeeded +Tags : +AddressSpace : { + "AddressPrefixes": [ + "10.0.0.0/16" + ] + } +DhcpOptions : { + "DnsServers": [ + "8.8.8.8" + ] + } +Subnets : [ + { + "Name": "SubnetName", + "Etag": "W/\"fbf41754-3c13-43fd-bb5b-fcc37d5e1cbb\"", + "Id": "/subscriptions/d1dbd366-9871-45ac-84b7-fb318152a9e0/resourceGroups/ResourceGroupName/providers/Microsoft.Network/virtualNetworks/VnetName/subnets/SubnetName", + "AddressPrefix": "10.0.1.0/24", + "IpConfigurations": [], + "ResourceNavigationLinks": [], + "ServiceEndpoints": [], + "ProvisioningState": "Succeeded" + } + ] +VirtualNetworkPeerings : [] +EnableDdosProtection : true +DdosProtectionPlan : { + "Id": "/subscriptions/d1dbd366-9871-45ac-84b7-fb318152a9e0/resourceGroups/ResourceGroupName/providers/Microsoft.Network/ddosProtectionPlans/DdosProtectionPlanName" + } +EnableVmProtection : false +``` + +First, we create a new DDoS Protection plan with the **New-AzDdosProtectionPlan** command. +Second, we get the most updated version of the virtual network we want to associate with the plan. We update the property **DdosProtectionPlan** with a **PSResourceId** object containing a reference to the ID of the newly created plan. In this case, if we associate the virtual network with a DDoS protection plan, we can also set the flag **EnableDdosProtection** to true. +Finally, we persist the new state by piping the local variable into **Set-AzVirtualNetwork**. + + +#### Get-AzDdosProtectionPlan + +#### SYNOPSIS +Gets a DDoS protection plan. + +#### SYNTAX + +```powershell +Get-AzDdosProtectionPlan [-ResourceGroupName ] [-Name ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Get a specific DDoS protection plan +```powershell +Get-AzDdosProtectionPlan -ResourceGroupName ResourceGroupName -Name DdosProtectionPlanName +``` + +```output +Name : DdosProtectionPlanName +Id : /subscriptions/d1dbd366-9871-45ac-84b7-fb318152a9e0/resourceGroups/ResourceGroupName/providers/Microsoft.Network/ddosProtectionPlans/DdosProtectionPlanName +Etag : W/"a20e5592-9b51-423b-9758-b00cd322f744" +ProvisioningState : Succeeded +VirtualNetworks : [ + { + "Id": "/subscriptions/d1dbd366-9871-45ac-84b7-fb318152a9e0/resourceGroups/ResourceGroupName/providers/Microsoft.Network/virtualNetworks/VnetName" + } + ] +``` + +In this case, we need to specify both **ResourceGroupName** and **Name** attributes, which correspond to the resource group and the name of the DDoS protection plan, respectively. + ++ Example 2: Get all DDoS protection plans in a resource group +```powershell +Get-AzDdosProtectionPlan -ResourceGroupName ResourceGroupName +``` + +```output +Name : DdosProtectionPlanName +Id : /subscriptions/d1dbd366-9871-45ac-84b7-fb318152a9e0/resourceGroups/ResourceGroupName/providers/Microsoft.Network/ddosProtectionPlans/DdosProtectionPlanName +Etag : W/"a20e5592-9b51-423b-9758-b00cd322f744" +ProvisioningState : Succeeded +VirtualNetworks : [ + { + "Id": "/subscriptions/d1dbd366-9871-45ac-84b7-fb318152a9e0/resourceGroups/ResourceGroupName/providers/Microsoft.Network/virtualNetworks/VnetName" + } + ] +``` + +In this scenario, we only specify the parameter **ResourceGroupName** to get a list of DDoS protection plans. + ++ Example 3: Get all DDoS protection plans in a subscription +```powershell +Get-AzDdosProtectionPlan +``` + +```output +Name : DdosProtectionPlanName +Id : /subscriptions/d1dbd366-9871-45ac-84b7-fb318152a9e0/resourceGroups/ResourceGroupName/providers/Microsoft.Network/ddosProtectionPlans/DdosProtectionPlanName +Etag : W/"a20e5592-9b51-423b-9758-b00cd322f744" +ProvisioningState : Succeeded +VirtualNetworks : [ + { + "Id": "/subscriptions/d1dbd366-9871-45ac-84b7-fb318152a9e0/resourceGroups/ResourceGroupName/providers/Microsoft.Network/virtualNetworks/VnetName" + } + ] +``` + +Here, we do not specify any parameters to get a list of all DDoS protection plans in a subscription. + ++ Example 4: Get all DDoS protection plans in a subscription +```powershell +Get-AzDdosProtectionPlan -Name test* +``` + +```output +Name : test1 +Id : /subscriptions/d1dbd366-9871-45ac-84b7-fb318152a9e0/resourceGroups/ResourceGroupName/providers/Microsoft.Network/ddosProtectionPlans/test1 +Etag : W/"a20e5592-9b51-423b-9758-b00cd322f744" +ProvisioningState : Succeeded +VirtualNetworks : [ + { + "Id": "/subscriptions/d1dbd366-9871-45ac-84b7-fb318152a9e0/resourceGroups/ResourceGroupName/providers/Microsoft.Network/virtualNetworks/VnetName" + } + ] + +Name : test2 +Id : /subscriptions/d1dbd366-9871-45ac-84b7-fb318152a9e0/resourceGroups/ResourceGroupName/providers/Microsoft.Network/ddosProtectionPlans/test2 +Etag : W/"a20e5592-9b51-423b-9758-b00cd322f744" +ProvisioningState : Succeeded +VirtualNetworks : [ + { + "Id": "/subscriptions/d1dbd366-9871-45ac-84b7-fb318152a9e0/resourceGroups/ResourceGroupName/providers/Microsoft.Network/virtualNetworks/VnetName" + } + ] +``` + +This cmdlet returns all DdosProtectionPlans that start with "test". + + +#### Remove-AzDdosProtectionPlan + +#### SYNOPSIS +Removes a DDoS protection plan. + +#### SYNTAX + +```powershell +Remove-AzDdosProtectionPlan -ResourceGroupName -Name [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Remove an empty DDoS protection plan +```powershell +Remove-AzDdosProtectionPlan -ResourceGroupName ResourceGroupName -Name DdosProtectionPlan +``` + +In this case, we remove a DDoS protection plan as specified. + ++ Example 2: Remove a DDoS protection plan associated with a virtual network + + + +```powershell +$vnet = Get-AzVirtualNetwork -Name VnetName -ResourceGroupName ResourceGroupName +$vnet.DdosProtectionPlan = $null +$vnet.EnableDdosProtection = $false +$vnet | Set-AzVirtualNetwork + +Name : VnetName +ResourceGroupName : ResourceGroupName +Location : westus +Id : /subscriptions/d1dbd366-9871-45ac-84b7-fb318152a9e0/resourceGroups/ResourceGroupName/providers/Microsoft.Network/virtualNetworks/VnetName +Etag : W/"65947351-747e-4686-aa8b-c40da58f6c8b" +ResourceGuid : fcb7bc1e-ee0d-4005-b3f1-feda76e3756c +ProvisioningState : Succeeded +Tags : +AddressSpace : { + "AddressPrefixes": [ + "10.0.0.0/16" + ] + } +DhcpOptions : { + "DnsServers": [ + "8.8.8.8" + ] + } +Subnets : [ + { + "Name": "SubnetName", + "Etag": "W/\"65947351-747e-4686-aa8b-c40da58f6c8b\"", + "Id": "/subscriptions/d1dbd366-9871-45ac-84b7-fb318152a9e0/resourceGroups/ResourceGroupName/providers/Microsoft.Network/virtualNetworks/VnetName/subnets/SubnetName", + "AddressPrefix": "10.0.1.0/24", + "IpConfigurations": [], + "ResourceNavigationLinks": [], + "ServiceEndpoints": [], + "ProvisioningState": "Succeeded" + } + ] +VirtualNetworkPeerings : [] +EnableDdosProtection : false +DdosProtectionPlan : null +EnableVmProtection : false + + +Remove-AzDdosProtectionPlan -ResourceGroupName ResourceGroupName -Name DdosProtectionPlan +``` + +DDoS protection plans cannot be deleted if they are associated with a virtual network. So the first step is to disassociate both objects. Here, we get the most updated version of the virtual network associated with the plan, and we set the property **DdosProtectionPlan** to an empty value and the flag **EnableDdosProtection** (this flag cannot be true without a plan). +Then, we persist the new state by piping the local variable into **Set-AzVirtualNetwork**. At this point, the plan is no longer associated with the virtual network. +If this is the last one associated with the plan, we can remove the DDoS protection plan by using the command Remove-AzDdosProtectionPlan. + + +#### New-AzDelegation + +#### SYNOPSIS +Creates a service delegation. + +#### SYNTAX + +```powershell +New-AzDelegation -Name -ServiceName [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$delegation = New-AzDelegation -Name "myDelegation" -ServiceName "Microsoft.Sql/servers" +$vnet = Get-AzVirtualNetwork -Name "myVNet" -ResourceGroupName "myResourceGroup" +$subnet = Get-AzVirtualNetworkSubnetConfig -Name "mySubnet" -VirtualNetwork $vnet +$subnet.Delegations.Add($delegation) +Set-AzVirtualNetwork -VirtualNetwork $vnet +``` + +The first cmdlet creates a delegation that can be added to a subnet, and stores it in the $delegation variable. The second and third cmdlets retrieve the subnet to be delegated. The fourth cmdlet adds the created delegation to the subnet of interest, and the final cmdlet sends the updated configuration to the server. + + +#### Add-AzDelegation + +#### SYNOPSIS +Adds a delegation to a subnet. + +#### SYNTAX + +```powershell +Add-AzDelegation -Name -ServiceName -Subnet + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Adding a delegation +```powershell +$vnet = Get-AzVirtualNetwork -Name "myVNet" -ResourceGroupName "myResourceGroup" +$subnet = Get-AzVirtualNetworkSubnetConfig -Name "mySubnet" -VirtualNetwork $vnet +$subnet = Add-AzDelegation -Name "myDelegation" -ServiceName "Microsoft.Sql/servers" -Subnet $subnet +Set-AzVirtualNetwork -VirtualNetwork $vnet +``` + +The first command retrieves the virtual network on which the subnet lies. The second command isolates out the subnet of interest - the one which you want to delegate. The third command adds a delegation to the subnet. This particular example would be useful when you want to enable SQL to create interface endpoints in this subnet. The final command sends the updated subnet to the server to actually update your subnet. + + +#### Get-AzDelegation + +#### SYNOPSIS +Get a delegation (or all of the delegations) on a given subnet. + +#### SYNTAX + +```powershell +Get-AzDelegation [-Name ] -Subnet [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Retrieving a specific delegation +```powershell +$subnet = Get-AzVirtualNetwork -Name "myVNet" -ResourceGroupName "myResourceGroup" | Get-AzVirtualNetworkSubnetConfig -Name "mySubnet" +Get-AzDelegation -Name "myDelegation" -Subnet $subnet +``` + +```output +ProvisioningState : Succeeded +ServiceName : Microsoft.Sql/servers +Actions : {} +Name : myDelegation +Etag : "thisisaguid" +Id : /subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/mySubnet/delegations/myDelegation +``` + +The first line retrieves the subnet of interest. The second line shows the delegation information for the delegation called "myDelegation." + ++ Example 2: Retrieving all subnet delegations +```powershell +$subnet = Get-AzVirtualNetwork -Name "myVNet" -ResourceGroupName "myResourceGroup" | Get-AzVirtualNetworkSubnetConfig -Name "mySubnet" +$delegations = Get-AzDelegation -Subnet $subnet +``` + +The first line retrieves the subnet of interest. The second line stores a list of all of the delegations on _mySubnet_ in the $delegations variable. + + +#### Remove-AzDelegation + +#### SYNOPSIS +Removes a service delegation from the provided subnet. + +#### SYNTAX + +```powershell +Remove-AzDelegation -Name -Subnet [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +#### Add a delegation to an existing subnet +$vnet = Get-AzVirtualNetwork -Name "myVNet" -ResourceGroupName "myResourceGroup" +$subnet = Get-AzVirtualNetworkSubnetConfig -Name "mySubnet" -VirtualNetwork $vnet +$subnet = Add-AzDelegation -Name "myDelegation" -ServiceName "Microsoft.Sql/servers" -Subnet $subnet +Set-AzVirtualNetwork -VirtualNetwork $vnet + +#### Remove the delegation +$vnet = Get-AzVirtualNetwork -Name "myVNet" -ResourceGroupName "myResourceGroup" +$subnet = Get-AzVirtualNetworkSubnetConfig -Name "mySubnet" -VirtualNetwork $vnet +$subnet = Remove-AzDelegation -Name "myDelegation" -Subnet $subnet +Set-AzVirtualNetwork -VirtualNetwork $vnet +``` + +In this example, the first half (found under _"Add a delegation to an existing subnet"_) is identical to [Add-AzDelegation](./Add-AzDelegation.md). In the second half, the first two cmdlets retrieve the subnet of interest, refreshing the local copy with what's on the server. The third cmdlet removes the delegation that was created in the first half from _mySubnet_ and stores the updated subnet in _$subnet_. The final cmdlet updates the server with the removed delegation. + + +#### Test-AzDnsAvailability + +#### SYNOPSIS +Checks whether a domain name in the cloudapp.azure.com zone is available for use. + +#### SYNTAX + +```powershell +Test-AzDnsAvailability -DomainNameLabel -Location [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Check if contoso.westus.cloudapp.azure.com is available for use. +```powershell +Test-AzDnsAvailability -DomainNameLabel contoso -Location westus +``` + + +#### Get-AzEffectiveNetworkSecurityGroup + +#### SYNOPSIS +Gets the effective network security group of a network interface. + +#### SYNTAX + +```powershell +Get-AzEffectiveNetworkSecurityGroup -NetworkInterfaceName [-ResourceGroupName ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Get the effective network security group on a network interface +```powershell +Get-AzEffectiveNetworkSecurityGroup -NetworkInterfaceName "MyNetworkInterface" -ResourceGroupName "myResourceGroup" +``` + +This command gets all of the effective network security rules associated with the network interface named MyNetworkInterface in the resource group named myResourceGroup. + + +#### Get-AzEffectiveRouteTable + +#### SYNOPSIS +Gets the effective route table of a network interface. + +#### SYNTAX + +```powershell +Get-AzEffectiveRouteTable -NetworkInterfaceName [-ResourceGroupName ] [-AsJob] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Get the effective route table on a network interface +```powershell +Get-AzEffectiveRouteTable -NetworkInterfaceName "MyNetworkInterface" -ResourceGroupName "MyResourceGroup" +``` + +This command gets the effective route table associated with network interface named MyNetworkInterface in the resource group named MyResourceGroup. + + +#### New-AzExpressRouteCircuit + +#### SYNOPSIS +Creates an Azure express route circuit. + +#### SYNTAX + ++ ServiceProvider (Default) +```powershell +New-AzExpressRouteCircuit -Name -ResourceGroupName -Location [-SkuTier ] + [-SkuFamily ] -ServiceProviderName -PeeringLocation -BandwidthInMbps + [-Peering ] [-Authorization ] + [-AllowClassicOperations ] [-Tag ] [-Force] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ExpressRoutePort +```powershell +New-AzExpressRouteCircuit -Name -ResourceGroupName -Location [-SkuTier ] + [-SkuFamily ] -ExpressRoutePort -BandwidthInGbps + [-AuthorizationKey ] [-Peering ] [-Authorization ] + [-AllowClassicOperations ] [-Tag ] [-Force] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Create a new ExpressRoute circuit +```powershell +$parameters = @{ + Name='ExpressRouteCircuit' + ResourceGroupName='ExpressRouteResourceGroup' + Location='West US' + SkuTier='Standard' + SkuFamily='MeteredData' + ServiceProviderName='Equinix' + PeeringLocation='Silicon Valley' + BandwidthInMbps=200 +} +New-AzExpressRouteCircuit @parameters +``` + ++ Example 2: Create a new ExpressRoute circuit on ExpressRoutePort +```powershell +$parameters = @{ + Name='ExpressRouteCircuit' + ResourceGroupName='ExpressRouteResourceGroup' + Location='West US' + SkuTier='Standard' + SkuFamily='MeteredData' + ExpressRoutePort=$PSExpressRoutePort + BandwidthInGbps=10.0 +} +New-AzExpressRouteCircuit @parameters +``` + + +#### Get-AzExpressRouteCircuit + +#### SYNOPSIS +Gets an Azure ExpressRoute circuit from Azure. + +#### SYNTAX + +```powershell +Get-AzExpressRouteCircuit [-Name ] [-ResourceGroupName ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Get the ExpressRoute circuit +```powershell +Get-AzExpressRouteCircuit -ResourceGroupName testrg -Name test +``` + +```output +Name : test +ResourceGroupName : testrg +Location : southcentralus +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/pro + viders/Microsoft.Network/expressRouteCircuits/test +Etag : W/"00000000-0000-0000-0000-000000000000" +ProvisioningState : Succeeded +Sku : { + "Name": "Standard_UnlimitedData", + "Tier": "Standard", + "Family": "UnlimitedData" + } +CircuitProvisioningState : Enabled +ServiceProviderProvisioningState : NotProvisioned +ServiceProviderNotes : +ServiceProviderProperties : { + "ServiceProviderName": "AT&T", + "PeeringLocation": "Silicon Valley", + "BandwidthInMbps": 50 + } +ExpressRoutePort : null +BandwidthInGbps : +Stag : +ServiceKey : 00000000-0000-0000-0000-000000000000 +Peerings : [] +Authorizations : [] +AllowClassicOperations : False +GatewayManagerEtag : +``` + +Get a specific ExpressRoute circuit with Name "testrg" and ResourceGroupName "test" + ++ Example 2: List the ExpressRoute circuits using filtering +```powershell +Get-AzExpressRouteCircuit -Name test* +``` + +```output +Name : test1 +ResourceGroupName : testrg +Location : southcentralus +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/pro + viders/Microsoft.Network/expressRouteCircuits/test1 +Etag : W/"00000000-0000-0000-0000-000000000000" +ProvisioningState : Succeeded +Sku : { + "Name": "Standard_UnlimitedData", + "Tier": "Standard", + "Family": "UnlimitedData" + } +CircuitProvisioningState : Enabled +ServiceProviderProvisioningState : NotProvisioned +ServiceProviderNotes : +ServiceProviderProperties : { + "ServiceProviderName": "AT&T", + "PeeringLocation": "Silicon Valley", + "BandwidthInMbps": 50 + } +ExpressRoutePort : null +BandwidthInGbps : +Stag : +ServiceKey : 00000000-0000-0000-0000-000000000000 +Peerings : [] +Authorizations : [] +AllowClassicOperations : False +GatewayManagerEtag : + +Name : test2 +ResourceGroupName : testrg +Location : southcentralus +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/pro + viders/Microsoft.Network/expressRouteCircuits/test2 +Etag : W/"00000000-0000-0000-0000-000000000000" +ProvisioningState : Succeeded +Sku : { + "Name": "Standard_UnlimitedData", + "Tier": "Standard", + "Family": "UnlimitedData" + } +CircuitProvisioningState : Enabled +ServiceProviderProvisioningState : NotProvisioned +ServiceProviderNotes : +ServiceProviderProperties : { + "ServiceProviderName": "AT&T", + "PeeringLocation": "Silicon Valley", + "BandwidthInMbps": 50 + } +ExpressRoutePort : null +BandwidthInGbps : +Stag : +ServiceKey : 00000000-0000-0000-0000-000000000000 +Peerings : [] +Authorizations : [] +AllowClassicOperations : False +GatewayManagerEtag : +``` + +Get all ExpressRoute circuits whose name starts with "test". + + +#### Move-AzExpressRouteCircuit + +#### SYNOPSIS +Moves an ExpressRoute circuit from the classic deployment model to the Resource Manager deployment model. + +#### SYNTAX + +```powershell +Move-AzExpressRouteCircuit -Name -ResourceGroupName -Location -ServiceKey + [-Tag ] [-Force] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Move an ExpressRoute circuit to the Resource Manager deployment model +```powershell +Move-AzExpressRouteCircuit -Name $CircuitName -ResourceGroupName $RG -Location $Location -ServiceKey $ServiceKey +``` + + +#### Remove-AzExpressRouteCircuit + +#### SYNOPSIS +Removes an ExpressRoute circuit. + +#### SYNTAX + +```powershell +Remove-AzExpressRouteCircuit -Name -ResourceGroupName [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Delete an ExpressRoute circuit +```powershell +Remove-AzExpressRouteCircuit -Name $CircuitName -ResourceGroupName $rg +``` + ++ Example 2: Delete an ExpressRoute circuit using the pipeline +```powershell +Get-AzExpressRouteCircuit -Name $CircuitName -ResourceGroupName $rg | Remove-AzExpressRouteCircuit +``` + + +#### Set-AzExpressRouteCircuit + +#### SYNOPSIS +Modifies an ExpressRoute circuit. + +#### SYNTAX + +```powershell +Set-AzExpressRouteCircuit -ExpressRouteCircuit [-AsJob] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Change the ServiceKey of an ExpressRoute circuit +```powershell +$ckt = Get-AzExpressRouteCircuit -Name $CircuitName -ResourceGroupName $rg +$ckt.ServiceKey = '64ce99dd-ee70-4e74-b6b8-91c6307433a0' +Set-AzExpressRouteCircuit -ExpressRouteCircuit $ckt +``` + + +#### Get-AzExpressRouteCircuitARPTable + +#### SYNOPSIS +Gets the ARP table from an ExpressRoute circuit. + +#### SYNTAX + +```powershell +Get-AzExpressRouteCircuitARPTable -ResourceGroupName -ExpressRouteCircuitName + -PeeringType -DevicePath [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Display the ARP table for an ExpressRoute peer +```powershell +Get-AzExpressRouteCircuitARPTable -ResourceGroupName $RG -ExpressRouteCircuitName $CircuitName -PeeringType MicrosoftPeering -DevicePath Primary +``` + + +#### New-AzExpressRouteCircuitAuthorization + +#### SYNOPSIS +Creates an ExpressRoute circuit authorization. + +#### SYNTAX + +```powershell +New-AzExpressRouteCircuitAuthorization -Name [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Create a new circuit authorization +```powershell +$Authorization = New-AzExpressRouteCircuitAuthorization -Name "ContosoCircuitAuthorization" +``` + +This command creates a new circuit authorization named ContosoCircuitAuthorization and then stores +that object in a variable named $Authorization. Saving the object to a variable is important: +although **New-AzExpressRouteCircuitAuthorization** can create a circuit authorization it +cannot add that authorization to a circuit route. Instead, the variable $Authorization is used +New-AzExpressRouteCircuit when creating a brand-new ExpressRoute circuit. +For more information, see the documentation for the New-AzExpressRouteCircuit cmdlet. + + +#### Add-AzExpressRouteCircuitAuthorization + +#### SYNOPSIS +Adds an ExpressRoute circuit authorization. + +#### SYNTAX + +```powershell +Add-AzExpressRouteCircuitAuthorization -Name -ExpressRouteCircuit + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Add an authorization to the specified ExpressRoute circuit +```powershell +$Circuit = Get-AzExpressRouteCircuit -Name "ContosoCircuit" -ResourceGroupName "ContosoResourceGroup" +Add-AzExpressRouteCircuitAuthorization -Name "ContosoCircuitAuthorization" -ExpressRouteCircuit $Circuit +Set-AzExpressRouteCircuit -ExpressRouteCircuit $Circuit +``` + +The commands in this example add a new authorization to an existing ExpressRoute circuit. The first +command uses **Get-AzExpressRouteCircuit** to create an object reference to a circuit named +ContosoCircuit. That object reference is stored in a variable named $Circuit. +In the second command, the **Add-AzExpressRouteCircuitAuthorization** cmdlet is used to add a +new authorization (ContosoCircuitAuthorization) to the ExpressRoute circuit. This command adds the +authorization but does not activate that authorization. Activating an authorization requires the +**Set-AzExpressRouteCircuit** shown in the final command in the example. + + +#### Get-AzExpressRouteCircuitAuthorization + +#### SYNOPSIS +Gets information about ExpressRoute circuit authorizations. + +#### SYNTAX + +```powershell +Get-AzExpressRouteCircuitAuthorization [-Name ] -ExpressRouteCircuit + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Get all ExpressRoute authorizations +```powershell +$Circuit = Get-AzExpressRouteCircuit -Name "ContosoCircuit" -ResourceGroupName "ContosoResourceGroup" +Get-AzExpressRouteCircuitAuthorization -ExpressRouteCircuit $Circuit +``` + +These commands return information about all the ExpressRoute authorizations associated with an +ExpressRoute circuit. The first command uses the **Get-AzExpressRouteCircuit** cmdlet to +create an object reference a circuit named ContosoCircuit; that object reference is stored in the +variable $Circuit. The second command then uses that object reference and the +**Get-AzExpressRouteCircuitAuthorization** cmdlet to return information about the +authorizations associated with ContosoCircuit. + ++ Example 2: Get all ExpressRoute authorizations using the Where-Object cmdlet +```powershell +$Circuit = Get-AzExpressRouteCircuit -Name "ContosoCircuit" -ResourceGroupName "ContosoResourceGroup" + Get-AzExpressRouteCircuitAuthorization -ExpressRouteCircuit $Circuit | Where-Object {$_.AuthorizationUseStatus -eq "Available"} +``` + +These commands represent a variation on the commands used in Example 1. In this case, however, +information is returned only for those authorizations that are available for use (that is, for +authorizations that have not been assigned to a virtual network). To do this, the circuit +authorization information is returned in command 2 and is piped to the **Where-Object** cmdlet. +**Where-Object** then picks out only those authorizations where the *AuthorizationUseStatus* +property is set to Available. To list only those authorizations that are not available, use this +syntax for the Where clause: +`{$_.AuthorizationUseStatus -ne "Available"}` + + +#### Remove-AzExpressRouteCircuitAuthorization + +#### SYNOPSIS +Removes an existing ExpressRoute configuration authorization. + +#### SYNTAX + +```powershell +Remove-AzExpressRouteCircuitAuthorization [-Name ] -ExpressRouteCircuit + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Remove a circuit authorization from an ExpressRoute circuit +```powershell +$Circuit = Get-AzExpressRouteCircuit -Name "ContosoCircuit" -ResourceGroupName "ContosoResourceGroup" +Remove-AzExpressRouteCircuitAuthorization -Name "ContosoCircuitAuthorization" -ExpressRouteCircuit $Circuit +Set-AzExpressRouteCircuit -ExpressRouteCircuit $Circuit +``` + +This example removes a circuit authorization from an ExpressRoute circuit. The first command uses +the **Get-AzExpressRouteCircuit** cmdlet to create an object reference to an ExpressRoute +circuit named ContosoCircuit and stores the result in the variable named $Circuit. +The second command marks the circuit authorization ContosoCircuitAuthorization for removal. +The third command uses the Set-AzExpressRouteCircuit cmdlet to confirm the removal of the +ExpressRoute circuit stored in the $Circuit variable. + + +#### Add-AzExpressRouteCircuitConnectionConfig + +#### SYNOPSIS +Adds a circuit connection configuration to Private Peering of an Express Route Circuit. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +Add-AzExpressRouteCircuitConnectionConfig [-Name] [-ExpressRouteCircuit] + [-AddressPrefix] [-AddressPrefixType ] [-AuthorizationKey ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByResourceId +```powershell +Add-AzExpressRouteCircuitConnectionConfig [-Name] [-ExpressRouteCircuit] + [-PeerExpressRouteCircuitPeering] [-AddressPrefix] [-AddressPrefixType ] + [-AuthorizationKey ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Add a circuit connection resource to an existing ExpressRoute circuit +```powershell +$circuit_init = Get-AzExpressRouteCircuit -Name $initiatingCircuitName -ResourceGroupName $rg +$circuit_peer = Get-AzExpressRouteCircuit -Name $peeringCircuitName -ResourceGroupName $rg +$addressSpace = '60.0.0.0/29' +$addressPrefixType = 'IPv4' +Add-AzExpressRouteCircuitConnectionConfig -Name $circuitConnectionName -ExpressRouteCircuit $circuit_init -PeerExpressRouteCircuitPeering $circuit_peer.Peerings[0].Id -AddressPrefix $addressSpace -AddressPrefixType $addressPrefixType -AuthorizationKey $circuit_peer.Authorizations[0].AuthorizationKey +Set-AzExpressRouteCircuit -ExpressRouteCircuit $circuit_init +``` + ++ Example 2: Add a circuit connection configuration using Piping to an existing ExpressRoute Circuit +```powershell +$circuit_peer = Get-AzExpressRouteCircuit -Name $peeringCircuitName -ResourceGroupName $rg +$addressSpace = '60.0.0.0/29' +Get-AzExpressRouteCircuit -Name $initiatingCircuitName -ResourceGroupName $rg|Add-AzExpressRouteCircuitConnectionConfig -Name $circuitConnectionName -PeerExpressRouteCircuitPeering $circuit_peer.Peerings[0].Id -AddressPrefix $addressSpace -AuthorizationKey $circuit_peer.Authorizations[0].AuthorizationKey |Set-AzExpressRouteCircuit +``` + + +#### Get-AzExpressRouteCircuitConnectionConfig + +#### SYNOPSIS +Gets an ExpressRoute circuit connection configuration associated with Private Peering of ExpressRouteCircuit. + +#### SYNTAX + +```powershell +Get-AzExpressRouteCircuitConnectionConfig [[-Name] ] [-ExpressRouteCircuit] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Display the circuit connection configuration for an ExpressRoute circuit +```powershell +$circuit_init = Get-AzExpressRouteCircuit -Name $initiatingCircuitName -ResourceGroupName $rg +Get-AzExpressRouteCircuitConnectionConfig -Name $circuitConnectionName -ExpressRouteCircuit $circuit_init +``` + ++ Example 2: Get circuit connection resource associated with an ExpressRoute Circuit using piping +```powershell +Get-AzExpressRouteCircuit -Name $initiatingCircuitName -ResourceGroupName $rg|Get-AzExpressRouteCircuitConnectionConfig -Name $circuitConnectionName +``` + + +#### Remove-AzExpressRouteCircuitConnectionConfig + +#### SYNOPSIS +Removes an ExpressRoute circuit connection configuration. + +#### SYNTAX + +```powershell +Remove-AzExpressRouteCircuitConnectionConfig [-Name] [-ExpressRouteCircuit] + [-AddressPrefixType ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Remove a circuit connection configuration from an ExpressRoute circuit +```powershell +$circuit_init = Get-AzExpressRouteCircuit -Name $initiatingCircuitName -ResourceGroupName $rg +Remove-AzExpressRouteCircuitConnectionConfig -Name $circuitConnectionName -ExpressRouteCircuit $circuit_init +Set-AzExpressRouteCircuit -ExpressRouteCircuit $circuit_init +``` + ++ Example 2: Remove a circuit connection configuration using Piping from an ExpressRoute Circuit +```powershell +Get-AzExpressRouteCircuit -Name $initiatingCircuitName -ResourceGroupName $rg|Remove-AzExpressRouteCircuitConnectionConfig -Name $circuitConnectionName|Set-AzExpressRouteCircuit +``` + ++ Example 3: Remove a circuit connection configuration from an ExpressRoute circuit for a specific address family +```powershell +$circuit_init = Get-AzExpressRouteCircuit -Name $initiatingCircuitName -ResourceGroupName $rg +Remove-AzExpressRouteCircuitConnectionConfig -Name $circuitConnectionName -ExpressRouteCircuit $circuit_init -AddressPrefixType IPv4 +Set-AzExpressRouteCircuit -ExpressRouteCircuit $circuit_init +``` + ++ Example 4: Remove a circuit connection configuration using Piping from an ExpressRoute Circuit for a specific address family +```powershell +Get-AzExpressRouteCircuit -Name $initiatingCircuitName -ResourceGroupName $rg|Remove-AzExpressRouteCircuitConnectionConfig -Name $circuitConnectionName -AddressPrefixType IPv6|Set-AzExpressRouteCircuit +``` + + +#### Set-AzExpressRouteCircuitConnectionConfig + +#### SYNOPSIS +Updates a circuit connection configuration created in Private Peerings for an Express Route Circuit. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +Set-AzExpressRouteCircuitConnectionConfig [-Name] [-ExpressRouteCircuit] + [-AddressPrefix] [-AddressPrefixType ] [-AuthorizationKey ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByResourceId +```powershell +Set-AzExpressRouteCircuitConnectionConfig [-Name] [-ExpressRouteCircuit] + [-PeerExpressRouteCircuitPeering] [-AddressPrefix] [-AddressPrefixType ] + [-AuthorizationKey ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Update a circuit connection resource to an existing ExpressRoute circuit +```powershell +$circuit_init = Get-AzExpressRouteCircuit -Name $initiatingCircuitName -ResourceGroupName $rg +$circuit_peer = Get-AzExpressRouteCircuit -Name $peeringCircuitName -ResourceGroupName $rg +$addressSpace = 'aa:bb::0/125' +$addressPrefixType = 'IPv6' +Set-AzExpressRouteCircuitConnectionConfig -Name $circuitConnectionName -ExpressRouteCircuit $circuit_init -PeerExpressRouteCircuitPeering $circuit_peer.Peerings[0].Id -AddressPrefix $addressSpace -AddressPrefixType $addressPrefixType -AuthorizationKey $circuit_peer.Authorizations[0].AuthorizationKey +Set-AzExpressRouteCircuit -ExpressRouteCircuit $circuit_init +``` + ++ Example 2: Set a circuit connection configuration using Piping to an existing ExpressRoute Circuit +```powershell +$circuit_peer = Get-AzExpressRouteCircuit -Name $peeringCircuitName -ResourceGroupName $rg +$addressSpace = '60.0.0.0/29' +Get-AzExpressRouteCircuit -Name $initiatingCircuitName -ResourceGroupName $rg|Set-AzExpressRouteCircuitConnectionConfig -Name $circuitConnectionName -PeerExpressRouteCircuitPeering $circuit_peer.Peerings[0].Id -AddressPrefix $addressSpace -AuthorizationKey $circuit_peer.Authorizations[0].AuthorizationKey |Set-AzExpressRouteCircuit +``` + + +#### Add-AzExpressRouteCircuitMicrosoftPeeringPrefixConfig + +#### SYNOPSIS +Adds prefix validation properties required to validate the advertised public prefixes in Microsoft peering. + +#### SYNTAX + +```powershell +Add-AzExpressRouteCircuitMicrosoftPeeringPrefixConfig -ExpressRouteCircuit + -PeerAddressType -Prefix [-ValidationId ] [-Signature ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Add Prefix validation config for IPv4 prefix +```powershell +$ckt = Get-AzExpressRouteCircuit -Name "ExpressRouteARMCircuit" -ResourceGroupName "ExpressRouteResourceGroup" +Add-AzExpressRouteCircuitMicrosoftPeeringPrefixConfig -ExpressRouteCircuit $ckt -PeerAddressType IPv4 -Prefix "123.1.0.0/24" -ValidationId "Azure-SKEY|7c44c70b-9c62-4a89-a6b2-d281b6ce7a49|123.1.0.0/24|ASN-23" -Signature "XxGp/5JtCJTrxSsOCeK+icaekDy18U4jZjrcHMAlN5cOTweH9XjZ7yfcLd4YegTPbGWiaKsX3Agvjk5q2hZ4fOGn+wHhL3SCNtoX6kF8/ukPVfw2cvZ7YS7otyCS7aR7g8kbugBhLDpB+g9SSChQT+/eR3QWgbC8m0C8RVGJo31gwDcXHsQ44hmnqs+OWcLI32FIVCoQeCOzmaGc4GVlZayFRvF/CiCm7g0k01+ipmVJQIkcdDArZZsfJuiXTiYNxLD57CEtuheX7knAj2AnceOJXaPpkS4f1i2Z8oVWC9YrqLWH5FCiIPU7PSh43YnDi/Pab3tT49EU3+PGZvWXCA==" +Set-AzExpressRouteCircuit -ExpressRouteCircuit $ckt +``` + ++ Example 2: Add Prefix validation config for IPv6 prefix +```powershell +$ckt = Get-AzExpressRouteCircuit -Name "ExpressRouteARMCircuit" -ResourceGroupName "ExpressRouteResourceGroup" +Add-AzExpressRouteCircuitMicrosoftPeeringPrefixConfig -ExpressRouteCircuit $ckt -PeerAddressType IPv6 -Prefix "123:1::0/64" -ValidationId "Azure-SKEY|7c44c70b-9c62-4a89-a6b2-d281b6ce7a49|123:1::0/64|ASN-23" -Signature "XxGp/5JtCJTrxSsOCeK+icaekDy18U4jZjrcHMAlN5cOTweH9XjZ7yfcLd4YegTPbGWiaKsX3Agvjk5q2hZ4fOGn+wHhL3SCNtoX6kF8/ukPVfw2cvZ7YS7otyCS7aR7g8kbugBhLDpB+g9SSChQT+/eR3QWgbC8m0C8RVGJo31gwDcXHsQ44hmnqs+OWcLI32FIVCoQeCOzmaGc4GVlZayFRvF/CiCm7g0k01+ipmVJQIkcdDArZZsfJuiXTiYNxLD57CEtuheX7knAj2AnceOJXaPpkS4f1i2Z8oVWC9YrqLWH5FCiIPU7PSh43YnDi/Pab3tT49EU3+PGZvWXCA==" +Set-AzExpressRouteCircuit -ExpressRouteCircuit $ckt +``` + + +#### Get-AzExpressRouteCircuitMicrosoftPeeringPrefixConfig + +#### SYNOPSIS +Gets prefix validation properties for an advertised public prefix in Microsoft peering. + +#### SYNTAX + +```powershell +Get-AzExpressRouteCircuitMicrosoftPeeringPrefixConfig -ExpressRouteCircuit + -PeerAddressType -Prefix [-ValidationId ] [-Signature ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Get prefix validation information for IPv4 prefix +```powershell +$ckt = Get-AzExpressRouteCircuit -Name "ExpressRouteARMCircuit" -ResourceGroupName "ExpressRouteResourceGroup" +Get-AzExpressRouteCircuitMicrosoftPeeringPrefixConfig -ExpressRouteCircuit $ckt -PeerAddressType IPv4 -Prefix "123.1.0.0/24" +``` + ++ Example 1: Get prefix validation information for IPv6 prefix +```powershell +$ckt = Get-AzExpressRouteCircuit -Name "ExpressRouteARMCircuit" -ResourceGroupName "ExpressRouteResourceGroup" +Get-AzExpressRouteCircuitMicrosoftPeeringPrefixConfig -ExpressRouteCircuit $ckt -PeerAddressType IPv6 -Prefix "123:1::/64" +``` + + +#### Remove-AzExpressRouteCircuitMicrosoftPeeringPrefixConfig + +#### SYNOPSIS +Removes prefix validation properties for an advertised public prefix from the Microsoft peering. + +#### SYNTAX + +```powershell +Remove-AzExpressRouteCircuitMicrosoftPeeringPrefixConfig -ExpressRouteCircuit + -PeerAddressType -Prefix [-ValidationId ] [-Signature ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Remove IPv4 Prefix validation config +```powershell +$ckt = Get-AzExpressRouteCircuit -Name "ExpressRouteARMCircuit" -ResourceGroupName "ExpressRouteResourceGroup" +Remove-AzExpressRouteCircuitMicrosoftPeeringPrefixConfig -ExpressRouteCircuit $ckt -PeerAddressType IPv4 -Prefix "123.1.0.0/24" +Set-AzExpressRouteCircuit -ExpressRouteCircuit $ckt +``` + ++ Example 2: Remove IPv6 Prefix validation config +```powershell +$ckt = Get-AzExpressRouteCircuit -Name "ExpressRouteARMCircuit" -ResourceGroupName "ExpressRouteResourceGroup" +Remove-AzExpressRouteCircuitMicrosoftPeeringPrefixConfig -ExpressRouteCircuit $ckt -PeerAddressType IPv6 -Prefix "123:1::0/64" +Set-AzExpressRouteCircuit -ExpressRouteCircuit $ckt +``` + + +#### Set-AzExpressRouteCircuitMicrosoftPeeringPrefixConfig + +#### SYNOPSIS +Modifies prefix validation properties required to validate the advertised public prefixes in Microsoft peering. + +#### SYNTAX + +```powershell +Set-AzExpressRouteCircuitMicrosoftPeeringPrefixConfig -ExpressRouteCircuit + -PeerAddressType -Prefix [-ValidationId ] [-Signature ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Modify Prefix validation config for IPv4 prefix +```powershell +$ckt = Get-AzExpressRouteCircuit -Name "ExpressRouteARMCircuit" -ResourceGroupName "ExpressRouteResourceGroup" +Set-AzExpressRouteCircuitMicrosoftPeeringPrefixConfig -ExpressRouteCircuit $ckt -PeerAddressType IPv4 -Prefix "123.1.0.0/24" -ValidationId "Azure-SKEY|7c44c70b-9c62-4a89-a6b2-d281b6ce7a49|123.1.0.0/24|ASN-23" -Signature "XxGp/5JtCJTrxSsOCeK+icaekDy18U4jZjrcHMAlN5cOTweH9XjZ7yfcLd4YegTPbGWiaKsX3Agvjk5q2hZ4fOGn+wHhL3SCNtoX6kF8/ukPVfw2cvZ7YS7otyCS7aR7g8kbugBhLDpB+g9SSChQT+/eR3QWgbC8m0C8RVGJo31gwDcXHsQ44hmnqs+OWcLI32FIVCoQeCOzmaGc4GVlZayFRvF/CiCm7g0k01+ipmVJQIkcdDArZZsfJuiXTiYNxLD57CEtuheX7knAj2AnceOJXaPpkS4f1i2Z8oVWC9YrqLWH5FCiIPU7PSh43YnDi/Pab3tT49EU3+PGZvWXCA==" +Set-AzExpressRouteCircuit -ExpressRouteCircuit $ckt +``` + ++ Example 2: Modify Prefix validation config for IPv6 prefix +```powershell +$ckt = Get-AzExpressRouteCircuit -Name "ExpressRouteARMCircuit" -ResourceGroupName "ExpressRouteResourceGroup" +Set-AzExpressRouteCircuitMicrosoftPeeringPrefixConfig -ExpressRouteCircuit $ckt -PeerAddressType IPv6 -Prefix "123:1::0/64" -ValidationId "Azure-SKEY|7c44c70b-9c62-4a89-a6b2-d281b6ce7a49|123:1::0/64|ASN-23" -Signature "XxGp/5JtCJTrxSsOCeK+icaekDy18U4jZjrcHMAlN5cOTweH9XjZ7yfcLd4YegTPbGWiaKsX3Agvjk5q2hZ4fOGn+wHhL3SCNtoX6kF8/ukPVfw2cvZ7YS7otyCS7aR7g8kbugBhLDpB+g9SSChQT+/eR3QWgbC8m0C8RVGJo31gwDcXHsQ44hmnqs+OWcLI32FIVCoQeCOzmaGc4GVlZayFRvF/CiCm7g0k01+ipmVJQIkcdDArZZsfJuiXTiYNxLD57CEtuheX7knAj2AnceOJXaPpkS4f1i2Z8oVWC9YrqLWH5FCiIPU7PSh43YnDi/Pab3tT49EU3+PGZvWXCA==" +Set-AzExpressRouteCircuit -ExpressRouteCircuit $ckt +``` + + +#### New-AzExpressRouteCircuitPeeringConfig + +#### SYNOPSIS +Creates a new peering configuration to be added to an ExpressRoute circuit. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +New-AzExpressRouteCircuitPeeringConfig -Name -PeeringType -PeerASN + -PrimaryPeerAddressPrefix -SecondaryPeerAddressPrefix -VlanId [-SharedKey ] + [-MicrosoftConfigAdvertisedPublicPrefixes ] [-MicrosoftConfigCustomerAsn ] + [-MicrosoftConfigRoutingRegistryName ] [-PeerAddressType ] [-LegacyMode ] + [-DefaultProfile ] [] +``` + ++ MicrosoftPeeringConfigRoutFilterId +```powershell +New-AzExpressRouteCircuitPeeringConfig -Name -PeeringType -PeerASN + -PrimaryPeerAddressPrefix -SecondaryPeerAddressPrefix -VlanId [-SharedKey ] + [-MicrosoftConfigAdvertisedPublicPrefixes ] [-MicrosoftConfigCustomerAsn ] + [-MicrosoftConfigRoutingRegistryName ] -RouteFilterId [-PeerAddressType ] + [-LegacyMode ] [-DefaultProfile ] + [] +``` + ++ MicrosoftPeeringConfigRoutFilter +```powershell +New-AzExpressRouteCircuitPeeringConfig -Name -PeeringType -PeerASN + -PrimaryPeerAddressPrefix -SecondaryPeerAddressPrefix -VlanId [-SharedKey ] + [-MicrosoftConfigAdvertisedPublicPrefixes ] [-MicrosoftConfigCustomerAsn ] + [-MicrosoftConfigRoutingRegistryName ] -RouteFilter [-PeerAddressType ] + [-LegacyMode ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Create a new ExpressRoute circuit with a peering configuration +```powershell +$parameters = @{ + Name = 'AzurePrivatePeering' + PeeringType = 'AzurePrivatePeering' + PeerASN = 100 + PrimaryPeerAddressPrefix = '10.6.1.0/30' + SecondaryPeerAddressPrefix = '10.6.2.0/30' + VlanId = 200 +} +$PeerConfig = New-AzExpressRouteCircuitPeeringConfig @parameters + +$parameters = @{ + Name='ExpressRouteCircuit' + ResourceGroupName='ExpressRouteResourceGroup' + Location='West US' + SkuTier='Standard' + SkuFamily='MeteredData' + ServiceProviderName='Equinix' + Peering=$PeerConfig + PeeringLocation='Silicon Valley' + BandwidthInMbps=200 +} +New-AzExpressRouteCircuit @parameters +``` + + +#### Add-AzExpressRouteCircuitPeeringConfig + +#### SYNOPSIS +Adds a peering configuration to an ExpressRoute circuit. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +Add-AzExpressRouteCircuitPeeringConfig -Name -ExpressRouteCircuit + -PeeringType -PeerASN -PrimaryPeerAddressPrefix + -SecondaryPeerAddressPrefix -VlanId [-SharedKey ] + [-MicrosoftConfigAdvertisedPublicPrefixes ] [-MicrosoftConfigCustomerAsn ] + [-MicrosoftConfigRoutingRegistryName ] [-PeerAddressType ] [-LegacyMode ] + [-DefaultProfile ] [] +``` + ++ MicrosoftPeeringConfigRoutFilterId +```powershell +Add-AzExpressRouteCircuitPeeringConfig -Name -ExpressRouteCircuit + -PeeringType -PeerASN -PrimaryPeerAddressPrefix + -SecondaryPeerAddressPrefix -VlanId [-SharedKey ] + [-MicrosoftConfigAdvertisedPublicPrefixes ] [-MicrosoftConfigCustomerAsn ] + [-MicrosoftConfigRoutingRegistryName ] -RouteFilterId [-PeerAddressType ] + [-LegacyMode ] [-DefaultProfile ] + [] +``` + ++ MicrosoftPeeringConfigRoutFilter +```powershell +Add-AzExpressRouteCircuitPeeringConfig -Name -ExpressRouteCircuit + -PeeringType -PeerASN -PrimaryPeerAddressPrefix + -SecondaryPeerAddressPrefix -VlanId [-SharedKey ] + [-MicrosoftConfigAdvertisedPublicPrefixes ] [-MicrosoftConfigCustomerAsn ] + [-MicrosoftConfigRoutingRegistryName ] -RouteFilter [-PeerAddressType ] + [-LegacyMode ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Add a peer to an existing ExpressRoute circuit +```powershell +$circuit = Get-AzExpressRouteCircuit -Name $CircuitName -ResourceGroupName $rg +$parameters = @{ + Name = 'AzurePrivatePeering' + Circuit = $circuit + PeeringType = 'AzurePrivatePeering' + PeerASN = 100 + PrimaryPeerAddressPrefix = '10.6.1.0/30' + SecondaryPeerAddressPrefix = '10.6.2.0/30' + VlanId = 200 +} +Add-AzExpressRouteCircuitPeeringConfig @parameters +Set-AzExpressRouteCircuit -ExpressRouteCircuit $circuit +``` + ++ Example 2 + +Adds a peering configuration to an ExpressRoute circuit. (autogenerated) + + + + +```powershell +Add-AzExpressRouteCircuitPeeringConfig -ExpressRouteCircuit -MicrosoftConfigAdvertisedPublicPrefixes -MicrosoftConfigCustomerAsn -MicrosoftConfigRoutingRegistryName -Name 'AzurePrivatePeering' -PeerASN 100 -PeerAddressType IPv4 -PeeringType AzurePrivatePeering -PrimaryPeerAddressPrefix '123.0.0.0/30' -SecondaryPeerAddressPrefix '123.0.0.4/30' -VlanId 300 +``` + + +#### Get-AzExpressRouteCircuitPeeringConfig + +#### SYNOPSIS +Gets an ExpressRoute circuit peering configuration. + +#### SYNTAX + +```powershell +Get-AzExpressRouteCircuitPeeringConfig [-Name ] -ExpressRouteCircuit + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Display the peering configuration for an ExpressRoute circuit +```powershell +$ckt = Get-AzExpressRouteCircuit -Name $CircuitName -ResourceGroupName $RG +Get-AzExpressRouteCircuitPeeringConfig -Name "AzurePrivatePeering" -ExpressRouteCircuit $ckt +``` + + +#### Remove-AzExpressRouteCircuitPeeringConfig + +#### SYNOPSIS +Removes an ExpressRoute circuit peering configuration. + +#### SYNTAX + +```powershell +Remove-AzExpressRouteCircuitPeeringConfig [-Name ] -ExpressRouteCircuit + [-PeerAddressType ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Remove a peering configuration from an ExpressRoute circuit +```powershell +$circuit = Get-AzExpressRouteCircuit -Name $CircuitName -ResourceGroupName $rg +Remove-AzExpressRouteCircuitPeeringConfig -Name 'AzurePrivatePeering' -ExpressRouteCircuit $circuit +Set-AzExpressRouteCircuit -ExpressRouteCircuit $circuit +``` + + +#### Set-AzExpressRouteCircuitPeeringConfig + +#### SYNOPSIS +Saves a modified ExpressRoute peering configuration. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +Set-AzExpressRouteCircuitPeeringConfig -Name -ExpressRouteCircuit + -PeeringType -PeerASN -PrimaryPeerAddressPrefix + -SecondaryPeerAddressPrefix -VlanId [-SharedKey ] + [-MicrosoftConfigAdvertisedPublicPrefixes ] [-MicrosoftConfigCustomerAsn ] + [-MicrosoftConfigRoutingRegistryName ] [-PeerAddressType ] [-LegacyMode ] + [-DefaultProfile ] [] +``` + ++ MicrosoftPeeringConfigRoutFilterId +```powershell +Set-AzExpressRouteCircuitPeeringConfig -Name -ExpressRouteCircuit + -PeeringType -PeerASN -PrimaryPeerAddressPrefix + -SecondaryPeerAddressPrefix -VlanId [-SharedKey ] + [-MicrosoftConfigAdvertisedPublicPrefixes ] [-MicrosoftConfigCustomerAsn ] + [-MicrosoftConfigRoutingRegistryName ] -RouteFilterId [-PeerAddressType ] + [-LegacyMode ] [-DefaultProfile ] + [] +``` + ++ MicrosoftPeeringConfigRoutFilter +```powershell +Set-AzExpressRouteCircuitPeeringConfig -Name -ExpressRouteCircuit + -PeeringType -PeerASN -PrimaryPeerAddressPrefix + -SecondaryPeerAddressPrefix -VlanId [-SharedKey ] + [-MicrosoftConfigAdvertisedPublicPrefixes ] [-MicrosoftConfigCustomerAsn ] + [-MicrosoftConfigRoutingRegistryName ] -RouteFilter [-PeerAddressType ] + [-LegacyMode ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Change an existing peering configuration +```powershell +$circuit = Get-AzExpressRouteCircuit -Name $CircuitName -ResourceGroupName $rg +$parameters = @{ + Name = 'AzurePrivatePeering' + Circuit = $circuit + PeeringType = 'AzurePrivatePeering' + PeerASN = 100 + PrimaryPeerAddressPrefix = '10.6.1.0/30' + SecondaryPeerAddressPrefix = '10.6.2.0/30' + VlanId = 201 +} +Set-AzExpressRouteCircuitPeeringConfig @parameters +Set-AzExpressRouteCircuit -ExpressRouteCircuit $circuit +``` + ++ Example 2 + +Saves a modified ExpressRoute peering configuration. (autogenerated) + + + + +```powershell +Set-AzExpressRouteCircuitPeeringConfig -ExpressRouteCircuit -Name 'cert01' -PeerASN 100 -PeerAddressType IPv4 -PeeringType AzurePrivatePeering -PrimaryPeerAddressPrefix '123.0.0.0/30' -SecondaryPeerAddressPrefix '123.0.0.4/30' -VlanId 300 +``` + ++ Example 3 + +Saves a modified ExpressRoute peering configuration. (autogenerated) + + + + +```powershell +Set-AzExpressRouteCircuitPeeringConfig -ExpressRouteCircuit -MicrosoftConfigAdvertisedPublicPrefixes -MicrosoftConfigCustomerAsn -MicrosoftConfigRoutingRegistryName -Name 'cert01' -PeerASN 100 -PeerAddressType IPv4 -PeeringType AzurePrivatePeering -PrimaryPeerAddressPrefix '123.0.0.0/30' -SecondaryPeerAddressPrefix '123.0.0.4/30' -VlanId 300 +``` + + +#### Get-AzExpressRouteCircuitRouteTable + +#### SYNOPSIS +Gets a route table from an ExpressRoute circuit. + +#### SYNTAX + +```powershell +Get-AzExpressRouteCircuitRouteTable -ResourceGroupName -ExpressRouteCircuitName + -PeeringType -DevicePath [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Display the route table for the primary path +```powershell +Get-AzExpressRouteCircuitRouteTable -ResourceGroupName $RG -ExpressRouteCircuitName $CircuitName -PeeringType 'AzurePrivatePeering' -DevicePath 'Primary' +``` + + +#### Get-AzExpressRouteCircuitRouteTableSummary + +#### SYNOPSIS +Gets a route table summary of an ExpressRoute circuit. + +#### SYNTAX + +```powershell +Get-AzExpressRouteCircuitRouteTableSummary -ResourceGroupName -ExpressRouteCircuitName + -PeeringType -DevicePath [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Display the route summary for the primary path +```powershell +Get-AzExpressRouteCircuitRouteTableSummary -ResourceGroupName $RG -ExpressRouteCircuitName $CircuitName -DevicePath 'Primary' +``` + + +#### Get-AzExpressRouteCircuitStat + +#### SYNOPSIS +Gets usage statistics of an ExpressRoute circuit. + +#### SYNTAX + +```powershell +Get-AzExpressRouteCircuitStat -ResourceGroupName -ExpressRouteCircuitName + [-PeeringType ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Display the traffic statistics for an ExpressRoute peer +```powershell +Get-AzExpressRouteCircuitStat -ResourceGroupName $RG -ExpressRouteCircuitName $CircuitName -PeeringType 'AzurePrivatePeering' +``` + + +#### New-AzExpressRouteConnection + +#### SYNOPSIS +Creates an ExpressRoute connection that connects an ExpressRoute gateway to an on premise ExpressRoute circuit + +#### SYNTAX + ++ ByExpressRouteGatewayName (Default) +```powershell +New-AzExpressRouteConnection -ResourceGroupName -ExpressRouteGatewayName -Name + -ExpressRouteCircuitPeeringId [-AuthorizationKey ] [-RoutingWeight ] + [-EnableInternetSecurity] [-RoutingConfiguration ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByExpressRouteGatewayObject +```powershell +New-AzExpressRouteConnection -ExpressRouteGatewayObject -Name + -ExpressRouteCircuitPeeringId [-AuthorizationKey ] [-RoutingWeight ] + [-EnableInternetSecurity] [-RoutingConfiguration ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByExpressRouteGatewayResourceId +```powershell +New-AzExpressRouteConnection -ParentResourceId -Name -ExpressRouteCircuitPeeringId + [-AuthorizationKey ] [-RoutingWeight ] [-EnableInternetSecurity] + [-RoutingConfiguration ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +New-AzResourceGroup -Location "West Central US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName testRG -Name myVirtualWAN -Location "West Central US" +$virtualHub = New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.0.1/24" +New-AzExpressRouteGateway -ResourceGroupName "testRG" -Name "testExpressRoutegw" -VirtualHubId $virtualHub.Id -MinScaleUnits 2 +$ExpressRouteGateway = Get-AzExpressRouteGateway -ResourceGroupName "testRG" -Name "testExpressRoutegw" +$ExpressRouteCircuit = New-AzExpressRouteCircuit -ResourceGroupName "testRG" -Name "testExpressRouteCircuit" -Location "West Central US" -SkuTier Premium -SkuFamily MeteredData -ServiceProviderName "Equinix" -PeeringLocation "Silicon Valley" -BandwidthInMbps 200 +Add-AzExpressRouteCircuitPeeringConfig -Name "AzurePrivatePeering" -ExpressRouteCircuit $ExpressRouteCircuit -PeeringType AzurePrivatePeering -PeerASN 100 -PrimaryPeerAddressPrefix "123.0.0.0/30" -SecondaryPeerAddressPrefix "123.0.0.4/30" -VlanId 300 +$ExpressRouteCircuit = Set-AzExpressRouteCircuit -ExpressRouteCircuit $ExpressRouteCircuit +$ExpressRouteCircuitPeeringId = $ExpressRouteCircuit.Peerings[0].Id +New-AzExpressRouteConnection -ResourceGroupName $ExpressRouteGateway.ResourceGroupName -ExpressRouteGatewayName $ExpressRouteGateway.Name -Name "testConnection" -ExpressRouteCircuitPeeringId $ExpressRouteCircuitPeeringId -RoutingWeight 20 +``` + +```output +ExpressRouteCircuitPeeringId : Microsoft.Azure.Commands.Network.Models.PSResourceId +AuthorizationKey : +RoutingWeight : 20 +ProvisioningState : Succeeded +Name : testConnection +Etag : W/"4580a2e2-2fab-4cff-88eb-92013a76b5a8" +Id : /subscriptions/{subscriptionId}/resourceGroups/ps9361/providers/Microsoft.Network/ExpressRouteGateways/testExpressRoutegw/expressRouteConnections/testConnection +RoutingConfiguration : { + "AssociatedRouteTable": { + "Id": "/subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub/hubRouteTables/defaultRouteTable" + }, + "PropagatedRouteTables": { + "Labels": [], + "Ids": [ + { + "Id": "/subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub/hubRouteTables/defaultRouteTable" + } + ] + }, + "VnetRoutes": { + "StaticRoutes": [] + } + } +``` + +The above will create a resource group, Virtual WAN, Virtual Network, Virtual Hub, Express Route gateway and an ExpressRoute circuit with private peering in West Central US in "testRG" resource group in Azure. +Once the gateway has been created, it is connected to the ExpressRoute Circuit Peering using the New-AzExpressRouteConnection command. + + +#### Get-AzExpressRouteConnection + +#### SYNOPSIS +Gets a ExpressRoute connection by name or lists all ExpressRoute connections connected to a ExpressRouteGateway. + +#### SYNTAX + ++ ByExpressRouteGatewayName (Default) +```powershell +Get-AzExpressRouteConnection -ResourceGroupName -ExpressRouteGatewayName [-Name ] + [-DefaultProfile ] [] +``` + ++ ByExpressRouteGatewayObject +```powershell +Get-AzExpressRouteConnection -ExpressRouteGatewayObject [-Name ] + [-DefaultProfile ] [] +``` + ++ ByExpressRouteGatewayResourceId +```powershell +Get-AzExpressRouteConnection -ParentResourceId [-Name ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +New-AzResourceGroup -Location "West Central US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName testRG -Name myVirtualWAN -Location "West Central US" +$virtualHub = New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.0.1/24" +New-AzExpressRouteGateway -ResourceGroupName "testRG" -Name "testExpressRoutegw" -VirtualHubId $virtualHub.Id -MinScaleUnits 2 +$ExpressRouteGateway = Get-AzExpressRouteGateway -ResourceGroupName "testRG" -Name "testExpressRoutegw" +$ExpressRouteCircuit = New-AzExpressRouteCircuit -ResourceGroupName "testRG" -Name "testExpressRouteCircuit" -Location "West Central US" -SkuTier Premium -SkuFamily MeteredData -ServiceProviderName "Equinix" -PeeringLocation "Silicon Valley" -BandwidthInMbps 200 +Add-AzExpressRouteCircuitPeeringConfig -Name "AzurePrivatePeering" -ExpressRouteCircuit $ExpressRouteCircuit -PeeringType AzurePrivatePeering -PeerASN 100 -PrimaryPeerAddressPrefix "123.0.0.0/30" -SecondaryPeerAddressPrefix "123.0.0.4/30" -VlanId 300 +$ExpressRouteCircuit = Set-AzExpressRouteCircuit -ExpressRouteCircuit $ExpressRouteCircuit +$ExpressRouteCircuitPeeringId = $ExpressRouteCircuit.Peerings[0].Id +New-AzExpressRouteConnection -ResourceGroupName $ExpressRouteGateway.ResourceGroupName -ExpressRouteGatewayName $ExpressRouteGateway.Name -Name "testConnection" -ExpressRouteCircuitPeeringId $ExpressRouteCircuitPeeringId -RoutingWeight 20 +Get-AzExpressRouteConnection -ResourceGroupName $ExpressRouteGateway.ResourceGroupName -ExpressRouteGatewayName $ExpressRouteGateway.Name -Name "testConnection" +``` + +```output +ExpressRouteCircuitPeeringId : Microsoft.Azure.Commands.Network.Models.PSResourceId +AuthorizationKey : +RoutingWeight : 20 +ProvisioningState : Succeeded +Name : testConnection +Etag : W/"00000000-0000-0000-0000-000000000000" +Id : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/ExpressRouteGateways/testExpressRoutegw/expressRouteConnections/testConnection +EnableInternetSecurity : False +RoutingConfiguration : { + "AssociatedRouteTable": { + "Id": "/subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub/hubRouteTables/defaultRouteTable" + }, + "PropagatedRouteTables": { + "Labels": [], + "Ids": [ + { + "Id": "/subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub/hubRouteTables/defaultRouteTable" + } + ] + }, + "VnetRoutes": { + "StaticRoutes": [] + } + } +``` + +The above will create a resource group, Virtual WAN, Virtual Network, Virtual Hub and a ExpressRouteSite in West US in "testRG" resource group in Azure. +A ExpressRoute gateway will be created thereafter in the Virtual Hub with 2 scale units. + +Once the gateway has been created, it is connected to the on premise ExpressRoute circuit using the New-AzExpressRouteConnection command. + +Then it gets the connection using the connection name. + ++ Example 2 + +```powershell +Get-AzExpressRouteConnection -ResourceGroupName ps9361 -ExpressRouteGatewayName testExpressRoutegw -Name test* +``` + +```output +ExpressRouteCircuitPeeringId : Microsoft.Azure.Commands.Network.Models.PSResourceId +AuthorizationKey : +RoutingWeight : 20 +ProvisioningState : Succeeded +Name : testConnection1 +Etag : W/"00000000-0000-0000-0000-000000000000" +Id : /subscriptions/{subscriptionId}/resourceGroups/ps9361/providers/Microsoft.Network/ExpressRouteGateways/testExpressRoutegw/expressRouteConnections/testConnection1 +EnableInternetSecurity : False +RoutingConfiguration : { + "AssociatedRouteTable": { + "Id": "/subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub/hubRouteTables/defaultRouteTable" + }, + "PropagatedRouteTables": { + "Labels": [], + "Ids": [ + { + "Id": "/subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub/hubRouteTables/defaultRouteTable" + } + ] + }, + "VnetRoutes": { + "StaticRoutes": [] + } + } + +ExpressRouteCircuitPeeringId : Microsoft.Azure.Commands.Network.Models.PSResourceId +AuthorizationKey : +RoutingWeight : 20 +ProvisioningState : Succeeded +Name : testConnection2 +Etag : W/"00000000-0000-0000-0000-000000000000" +Id : /subscriptions/{subscriptionId}/resourceGroups/ps9361/providers/Microsoft.Network/ExpressRouteGateways/testExpressRoutegw/expressRouteConnections/testConnection2 +EnableInternetSecurity : False +RoutingConfiguration : { + "AssociatedRouteTable": { + "Id": "/subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub/hubRouteTables/defaultRouteTable" + }, + "PropagatedRouteTables": { + "Labels": [], + "Ids": [ + { + "Id": "/subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub/hubRouteTables/defaultRouteTable" + } + ] + }, + "VnetRoutes": { + "StaticRoutes": [] + } + } +``` + +This command will get all Connections in ExpressRoute "testExpressRoutegw" that start with "test" + + +#### Remove-AzExpressRouteConnection + +#### SYNOPSIS +Removes a ExpressRouteConnection. + +#### SYNTAX + ++ ByExpressRouteConnectionName (Default) +```powershell +Remove-AzExpressRouteConnection -ResourceGroupName -ExpressRouteGatewayName -Name + [-Force] [-PassThru] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + ++ ByExpressRouteConnectionResourceId +```powershell +Remove-AzExpressRouteConnection -ResourceId [-Force] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByExpressRouteConnectionObject +```powershell +Remove-AzExpressRouteConnection -InputObject [-Force] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzResourceGroup -Location "West Central US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName testRG -Name myVirtualWAN -Location "West Central US" +$virtualHub = New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.0.1/24" +New-AzExpressRouteGateway -ResourceGroupName "testRG" -Name "testExpressRoutegw" -VirtualHubId $virtualHub.Id -MinScaleUnits 2 +$ExpressRouteGateway = Get-AzExpressRouteGateway -ResourceGroupName "testRG" -Name "testExpressRoutegw" +$ExpressRouteCircuit = New-AzExpressRouteCircuit -ResourceGroupName "testRG" -Name "testExpressRouteCircuit" -Location "West Central US" -SkuTier Premium -SkuFamily MeteredData -ServiceProviderName "Equinix" -PeeringLocation "Silicon Valley" -BandwidthInMbps 200 +Add-AzExpressRouteCircuitPeeringConfig -Name "AzurePrivatePeering" -ExpressRouteCircuit $ExpressRouteCircuit -PeeringType AzurePrivatePeering -PeerASN 100 -PrimaryPeerAddressPrefix "123.0.0.0/30" -SecondaryPeerAddressPrefix "123.0.0.4/30" -VlanId 300 +$ExpressRouteCircuit = Set-AzExpressRouteCircuit -ExpressRouteCircuit $ExpressRouteCircuit +$ExpressRouteCircuitPeeringId = $ExpressRouteCircuit.Peerings[0].Id +New-AzExpressRouteConnection -ResourceGroupName $ExpressRouteGateway.ResourceGroupName -ExpressRouteGatewayName $ExpressRouteGateway.Name -Name "testConnection" -ExpressRouteCircuitPeeringId $ExpressRouteCircuitPeeringId -RoutingWeight 20 +Remove-AzExpressRouteConnection -ResourceGroupName $ExpressRouteGateway.ResourceGroupName -ExpressRouteGatewayName $ExpressRouteGateway.Name -Name "testConnection" +``` + +The above will create a resource group, Virtual WAN, Virtual Network, Virtual Hub in West US in "testRG" resource group in Azure. +A ExpressRoute gateway will be created thereafter in the Virtual Hub with 2 scale units. + +Once the gateway has been created, it is connected to the ExpressRouteSite using the New-AzExpressRouteConnection command. + +Then it removes the connection using the connection name. + ++ Example 2 + +```powershell +New-AzResourceGroup -Location "West Central US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName testRG -Name myVirtualWAN -Location "West Central US" +$virtualHub = New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.0.1/24" +New-AzExpressRouteGateway -ResourceGroupName "testRG" -Name "testExpressRoutegw" -VirtualHubId $virtualHub.Id -MinScaleUnits 2 +$ExpressRouteGateway = Get-AzExpressRouteGateway -ResourceGroupName "testRG" -Name "testExpressRoutegw" +$ExpressRouteCircuit = New-AzExpressRouteCircuit -ResourceGroupName "testRG" -Name "testExpressRouteCircuit" -Location "West Central US" -SkuTier Premium -SkuFamily MeteredData -ServiceProviderName "Equinix" -PeeringLocation "Silicon Valley" -BandwidthInMbps 200 +Add-AzExpressRouteCircuitPeeringConfig -Name "AzurePrivatePeering" -ExpressRouteCircuit $ExpressRouteCircuit -PeeringType AzurePrivatePeering -PeerASN 100 -PrimaryPeerAddressPrefix "123.0.0.0/30" -SecondaryPeerAddressPrefix "123.0.0.4/30" -VlanId 300 +$ExpressRouteCircuit = Set-AzExpressRouteCircuit -ExpressRouteCircuit $ExpressRouteCircuit +$ExpressRouteCircuitPeeringId = $ExpressRouteCircuit.Peerings[0].Id +New-AzExpressRouteConnection -ResourceGroupName $ExpressRouteGateway.ResourceGroupName -ExpressRouteGatewayName $ExpressRouteGateway.Name -Name "testConnection" -ExpressRouteCircuitPeeringId $ExpressRouteCircuitPeeringId -RoutingWeight 20 +Get-AzExpressRouteConnection -ResourceGroupName $ExpressRouteGateway.ResourceGroupName -ExpressRouteGatewayName $ExpressRouteGateway.Name -Name "testConnection" | Remove-AzExpressRouteConnection +``` + +Same as example 1, but it now removes the connection using the piped object from Get-AzExpressRouteConnection. + + +#### Set-AzExpressRouteConnection + +#### SYNOPSIS +Updates an express route connection created between an express route gateway and on-premise express route circuit peering. + +#### SYNTAX + ++ ByExpressRouteConnectionName (Default) +```powershell +Set-AzExpressRouteConnection -ResourceGroupName -ExpressRouteGatewayName -Name + [-AuthorizationKey ] [-RoutingWeight ] [-EnableInternetSecurity ] + [-RoutingConfiguration ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByExpressRouteConnectionResourceId +```powershell +Set-AzExpressRouteConnection -ResourceId [-AuthorizationKey ] [-RoutingWeight ] + [-EnableInternetSecurity ] [-RoutingConfiguration ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByExpressRouteConnectionObject +```powershell +Set-AzExpressRouteConnection -InputObject [-AuthorizationKey ] + [-RoutingWeight ] [-EnableInternetSecurity ] [-RoutingConfiguration ] + [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +New-AzResourceGroup -Location "West Central US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName testRG -Name myVirtualWAN -Location "West Central US" +$virtualHub = New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.0.1/24" +New-AzExpressRouteGateway -ResourceGroupName "testRG" -Name "testExpressRoutegw" -VirtualHubId $virtualHub.Id -MinScaleUnits 2 +$ExpressRouteGateway = Get-AzExpressRouteGateway -ResourceGroupName "testRG" -Name "testExpressRoutegw" +$ExpressRouteCircuit = New-AzExpressRouteCircuit -ResourceGroupName "testRG" -Name "testExpressRouteCircuit" -Location "West Central US" -SkuTier Premium -SkuFamily MeteredData -ServiceProviderName "Equinix" -PeeringLocation "Silicon Valley" -BandwidthInMbps 200 +Add-AzExpressRouteCircuitPeeringConfig -Name "AzurePrivatePeering" -ExpressRouteCircuit $ExpressRouteCircuit -PeeringType AzurePrivatePeering -PeerASN 100 -PrimaryPeerAddressPrefix "123.0.0.0/30" -SecondaryPeerAddressPrefix "123.0.0.4/30" -VlanId 300 +$ExpressRouteCircuit = Set-AzExpressRouteCircuit -ExpressRouteCircuit $ExpressRouteCircuit +$ExpressRouteCircuitPeeringId = $ExpressRouteCircuit.Peerings[0].Id +New-AzExpressRouteConnection -ResourceGroupName $ExpressRouteGateway.ResourceGroupName -ExpressRouteGatewayName $ExpressRouteGateway.Name -Name "testConnection" -ExpressRouteCircuitPeeringId $ExpressRouteCircuitPeeringId -RoutingWeight 20 +Set-AzExpressRouteConnection -InputObject $ExpressRouteConnection -RoutingWeight 30 +``` + +```output +ExpressRouteCircuitPeeringId : Microsoft.Azure.Commands.Network.Models.PSResourceId +AuthorizationKey : +RoutingWeight : 30 +ProvisioningState : Succeeded +Name : testConnection +Etag : W/"4580a2e2-2fab-4cff-88eb-92013a76b5a8" +Id : /subscriptions/{subscriptionId}/resourceGroups/ps9361/providers/Microsoft.Network/ExpressRouteGateways/testExpressRoutegw/expressRouteConnections/testConnection +RoutingConfiguration : { + "AssociatedRouteTable": { + "Id": "/subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub/hubRouteTables/defaultRouteTable" + }, + "PropagatedRouteTables": { + "Labels": [], + "Ids": [ + { + "Id": "/subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub/hubRouteTables/defaultRouteTable" + } + ] + }, + "VnetRoutes": { + "StaticRoutes": [] + } + } +``` + +The above will create a resource group, Virtual WAN, Virtual Network, Virtual Hub and a ExpressRouteSite in West US in "testRG" resource group in Azure. +A ExpressRoute gateway will be created thereafter in the Virtual Hub with 2 scale units. + +Once the gateway has been created, it is connected to the on premise ExpressRoute circuit peering using the New-AzExpressRouteConnection command. + +The connection is then updated to have a different RoutingWeight by using the Set-AzExpressRouteConnection command. + + +#### Get-AzExpressRouteCrossConnection + +#### SYNOPSIS +Gets an Azure ExpressRoute cross connection from Azure. + +#### SYNTAX + +```powershell +Get-AzExpressRouteCrossConnection [-ResourceGroupName ] [-Name ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Get the ExpressRoute cross connection +```powershell +Get-AzExpressRouteCrossConnection -Name $CrossConnectionName -ResourceGroupName $rg +``` + ++ Example 2: List the ExpressRoute cross connections using a filter +```powershell +Get-AzExpressRouteCrossConnection -Name test* +``` + +This cmdlet will list all ExpressRoute cross connections that begin with "test" + + +#### Set-AzExpressRouteCrossConnection + +#### SYNOPSIS +Modifies an ExpressRoute cross connection. + +#### SYNTAX + ++ ModifyByCircuitReference +```powershell +Set-AzExpressRouteCrossConnection -ExpressRouteCrossConnection [-AsJob] + [-Force] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ModifyByParameterValues +```powershell +Set-AzExpressRouteCrossConnection -ResourceGroupName -Name + [-ServiceProviderProvisioningState ] [-ServiceProviderNotes ] + [-Peerings ] [-AsJob] [-Force] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Change the Service Provider Provisioning State of an ExpressRoute cross connection +```powershell +$cc = Get-AzExpressRouteCrossConnection -Name $CrossConnectionName -ResourceGroupName $rg +$cc.ServiceProviderProvisioningState = 'Provisioned' +Set-AzExpressRouteCrossConnection -ExpressRouteCrossConnection $cc +``` + + +#### Get-AzExpressRouteCrossConnectionArpTable + +#### SYNOPSIS +Gets the ARP table from an ExpressRoute cross connection. + +#### SYNTAX + ++ SpecifyByParameterValues +```powershell +Get-AzExpressRouteCrossConnectionArpTable -ResourceGroupName -CrossConnectionName + -PeeringType -DevicePath [-DefaultProfile ] + [] +``` + ++ SpecifyByReference +```powershell +Get-AzExpressRouteCrossConnectionArpTable -ExpressRouteCrossConnection + -PeeringType -DevicePath [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Display the ARP table for an ExpressRoute peer +```powershell +Get-AzExpressRouteCrossConnectionArpTable -ResourceGroupName $RG -CrossConnectionName $CrossConnectionName -PeeringType MicrosoftPeering -DevicePath Primary +``` + + +#### Add-AzExpressRouteCrossConnectionPeering + +#### SYNOPSIS +Adds a peering configuration to an ExpressRoute cross connection. + +#### SYNTAX + +```powershell +Add-AzExpressRouteCrossConnectionPeering -Name + -ExpressRouteCrossConnection [-Force] -PeeringType -PeerASN + -PrimaryPeerAddressPrefix -SecondaryPeerAddressPrefix -VlanId [-SharedKey ] + [-MicrosoftConfigAdvertisedPublicPrefix ] [-MicrosoftConfigCustomerAsn ] + [-MicrosoftConfigRoutingRegistryName ] [-PeerAddressType ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Add a peer to an existing ExpressRoute cross connection +```powershell +$cc = Get-AzExpressRouteCrossConnection -Name $CrossConnectionName -ResourceGroupName $rg +$parameters = @{ + Name = 'AzurePrivatePeering' + CrossConnection = $cc + PeeringType = 'AzurePrivatePeering' + PeerASN = 100 + PrimaryPeerAddressPrefix = '10.6.1.0/30' + SecondaryPeerAddressPrefix = '10.6.2.0/30' + VlanId = 200 +} +Add-AzExpressRouteCrossConnectionPeering @parameters +Set-AzExpressRouteCrossConnection -ExpressRouteCrossConnection $cc +``` + + +#### Get-AzExpressRouteCrossConnectionPeering + +#### SYNOPSIS +Gets an ExpressRoute cross connection peering configuration. + +#### SYNTAX + +```powershell +Get-AzExpressRouteCrossConnectionPeering [-Name ] + -ExpressRouteCrossConnection [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Display the peering configuration for an ExpressRoute cross connection +```powershell +$cc = Get-AzExpressRouteCrossConnection -Name $CrossConnectionName -ResourceGroupName $RG +Get-AzExpressRouteCrossConnectionPeering -Name "AzurePrivatePeering" -ExpressRouteCrossConnection $cc +``` + + +#### Remove-AzExpressRouteCrossConnectionPeering + +#### SYNOPSIS +Removes an ExpressRoute cross connection peering configuration. + +#### SYNTAX + +```powershell +Remove-AzExpressRouteCrossConnectionPeering -ExpressRouteCrossConnection + [-Name ] [-PeerAddressType ] [-Force] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Remove a peering configuration from an ExpressRoute cross connection +```powershell +$cc = Get-AzExpressRouteCrossConnection -Name $CrossConnectionName -ResourceGroupName $rg +Remove-AzExpressRouteCrossConnectionPeering -Name 'AzurePrivatePeering' -ExpressRouteCrossConnection $cc +Set-AzExpressRouteCrossConnection -ExpressRouteCrossConnection $cc +``` + + +#### Get-AzExpressRouteCrossConnectionRouteTable + +#### SYNOPSIS +Gets a route table from an ExpressRoute cross connection. + +#### SYNTAX + ++ SpecifyByParameterValues +```powershell +Get-AzExpressRouteCrossConnectionRouteTable -ResourceGroupName -CrossConnectionName + -PeeringType -DevicePath [-DefaultProfile ] + [] +``` + ++ SpecifyByReference +```powershell +Get-AzExpressRouteCrossConnectionRouteTable -ExpressRouteCrossConnection + -PeeringType -DevicePath [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Display the route table for the primary path +```powershell +Get-AzExpressRouteCrossConnectionRouteTable -ResourceGroupName $RG -CrossConnectionName $CircuitName -PeeringType MicrosoftPeering -DevicePath Primary +``` + + +#### Get-AzExpressRouteCrossConnectionRouteTableSummary + +#### SYNOPSIS +Gets a route table summary of an ExpressRoute cross connection. + +#### SYNTAX + ++ SpecifyByParameterValues +```powershell +Get-AzExpressRouteCrossConnectionRouteTableSummary -ResourceGroupName -CrossConnectionName + -PeeringType -DevicePath [-DefaultProfile ] + [] +``` + ++ SpecifyByReference +```powershell +Get-AzExpressRouteCrossConnectionRouteTableSummary -ExpressRouteCrossConnection + -PeeringType -DevicePath [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Display the route summary for the primary path +```powershell +Get-AzExpressRouteCrossConnectionRouteTableSummary -ResourceGroupName $RG -CrossConnectionName $CrossConnectionName -PeeringType MicrosoftPeering -DevicePath Primary +``` + + +#### New-AzExpressRouteGateway + +#### SYNOPSIS +Creates a Scalable ExpressRoute Gateway. + +#### SYNTAX + ++ ByVirtualHubName (Default) +```powershell +New-AzExpressRouteGateway -ResourceGroupName -Name -MinScaleUnits + [-MaxScaleUnits ] -VirtualHubName [-Tag ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVirtualHubObject +```powershell +New-AzExpressRouteGateway -ResourceGroupName -Name -MinScaleUnits + [-MaxScaleUnits ] -VirtualHub [-Tag ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVirtualHubResourceId +```powershell +New-AzExpressRouteGateway -ResourceGroupName -Name -MinScaleUnits + [-MaxScaleUnits ] -VirtualHubId [-Tag ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName testRG -Name myVirtualWAN -Location "West US" +$virtualHub = New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.0.1/24" +New-AzExpressRouteGateway -ResourceGroupName "testRG" -Name "testergw" -VirtualHubId $virtualHub.Id -MinScaleUnits 2 +``` + +```output +ResourceGroupName : testRG +Name : testergw +Id : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/expressRouteGateways/testergw +Location : West US +MinScaleUnits : 2 +VirtualHub : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub +BgpSettings : {} +Type : Microsoft.Network/expressRouteGateways +ProvisioningState : Succeeded +``` + +The above will create a resource group, Virtual WAN, Virtual Network, Virtual Hub in West US in "testRG" resource group in Azure. +An ExpressRoute gateway will be created thereafter in the Virtual Hub with 2 scale units. + ++ Example 2 + +Creates a Scalable ExpressRoute Gateway. (autogenerated) + + + + +```powershell +New-AzExpressRouteGateway -MaxScaleUnits -MinScaleUnits 2 -Name 'testExpressRoutegw' -ResourceGroupName 'testRG' -Tag @{"tag1"="value1"; "tag2"="value2"} -VirtualHubName +``` + + +#### Get-AzExpressRouteGateway + +#### SYNOPSIS +Gets a ExpressRouteGateway resource using ResourceGroupName and GatewayName OR lists all gateways by ResourceGroupName or SubscriptionId. + +#### SYNTAX + ++ ListBySubscriptionId (Default) +```powershell +Get-AzExpressRouteGateway [-DefaultProfile ] + [] +``` + ++ ListByResourceGroupName +```powershell +Get-AzExpressRouteGateway [-ResourceGroupName ] [-Name ] + [-DefaultProfile ] [] +``` + ++ ByExpressRouteGatewayResourceId +```powershell +Get-AzExpressRouteGateway -ResourceId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +New-AzResourceGroup -Location "West Central US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName testRG -Name myVirtualWAN -Location "West Central US" +$virtualHub = New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.0.1/24" +New-AzExpressRouteGateway -ResourceGroupName "testRG" -Name "testExpressRoutegw" -VirtualHubId $virtualHub.Id -MinScaleUnits 2 +Get-AzExpressRouteGateway -ResourceGroupName "testRG" -Name "testExpressRoutegw" +``` + +```output +ResourceGroupName : testRG +Name : testExpressRoutegw +Id : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/ExpressRouteGateways/testExpressRoutegw +Location : West Central US +ExpressRouteGatewayScaleUnit : 2 +VirtualHub : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub +BgpSettings : {} +Type : Microsoft.Network/ExpressRouteGateways +ProvisioningState : Succeeded +``` + +The above will create a resource group, Virtual WAN, Virtual Network, Virtual Hub in West Central US in "testRG" resource group in Azure. +A ExpressRoute gateway will be created thereafter in the Virtual Hub with 2 scale units. + +It then gets the ExpressRouteGateway using its resourceGroupName and the gateway name. + ++ Example 2 + +```powershell +Get-AzExpressRouteGateway -Name test* +``` + +```output +ResourceGroupName : testRG +Name : testExpressRoutegw1 +Id : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/ExpressRouteGateways/testExpressRoutegw1 +Location : West Central US +ExpressRouteGatewayScaleUnit : 2 +VirtualHub : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub +BgpSettings : {} +Type : Microsoft.Network/ExpressRouteGateways +ProvisioningState : Succeeded + +ResourceGroupName : testRG +Name : testExpressRoutegw2 +Id : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/ExpressRouteGateways/testExpressRoutegw2 +Location : West Central US +ExpressRouteGatewayScaleUnit : 2 +VirtualHub : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub +BgpSettings : {} +Type : Microsoft.Network/ExpressRouteGateways +ProvisioningState : Succeeded +``` + +This command will get all ExpressRouteGateways that start with "test" + + +#### Remove-AzExpressRouteGateway + +#### SYNOPSIS +The Remove-AzExpressRouteGateway cmdlet removes an Azure ExpressRoute gateway. This is a gateway specific to Azure Virtual WAN's software defined connectivity. + +#### SYNTAX + ++ ByExpressRouteGatewayName (Default) +```powershell +Remove-AzExpressRouteGateway -ResourceGroupName -Name [-PassThru] [-Force] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByExpressRouteGatewayObject +```powershell +Remove-AzExpressRouteGateway -InputObject [-PassThru] [-Force] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByExpressRouteGatewayResourceId +```powershell +Remove-AzExpressRouteGateway -ResourceId [-PassThru] [-Force] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +New-AzResourceGroup -Location "West Central US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName testRG -Name myVirtualWAN -Location "West Central US" +$virtualHub = New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.0.1/24" +New-AzExpressRouteGateway -ResourceGroupName "testRG" -Name "testExpressRoutegw" -VirtualHubId $virtualHub.Id -MinScaleUnits 2 +Remove-AzExpressRouteGateway -ResourceGroupName "testRG" -Name "testExpressRoutegw" -Passthru +``` + +This example creates a Resource group, Virtual WAN, Virtual Hub, scalable ExpressRoute gateway in Central US and then immediately deletes it. +To suppress the prompt when deleting the Virtual Gateway, use the -Force flag. +This will delete the ExpressRouteGateway and all ExpressRouteConnections attached to it. + ++ Example 2 + +```powershell +New-AzResourceGroup -Location "West Central US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName testRG -Name myVirtualWAN -Location "West Central US" +$virtualHub = New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.0.1/24" +New-AzExpressRouteGateway -ResourceGroupName "testRG" -Name "testExpressRoutegw" -VirtualHubId $virtualHub.Id -MinScaleUnits 2 +Get-AzExpressRouteGateway -ResourceGroupName "testRG" -Name "testExpressRoutegw" | Remove-AzExpressRouteGateway -Passthru +``` + +This example creates a Resource group, Virtual WAN, Virtual Hub, scalable ExpressRoute gateway in West Central US and then immediately deletes it. +This deletion happens using powershell piping, which uses the ExpressRouteGateway object returned by the Get-AzExpressRouteGateway command. +To suppress the prompt when deleting the Virtual Gateway, use the -Force flag. +This will delete the ExpressRouteGateway and all ExpressRouteConnections attached to it. + + +#### Set-AzExpressRouteGateway + +#### SYNOPSIS +Updates a Scalable ExpressRoute Gateway. + +#### SYNTAX + ++ ByExpressRouteGatewayName (Default) +```powershell +Set-AzExpressRouteGateway -ResourceGroupName -Name [-MinScaleUnits ] + [-MaxScaleUnits ] [-AllowNonVirtualWanTraffic ] [-Tag ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByExpressRouteGatewayObject +```powershell +Set-AzExpressRouteGateway -InputObject [-MinScaleUnits ] + [-MaxScaleUnits ] [-AllowNonVirtualWanTraffic ] [-Tag ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByExpressRouteGatewayResourceId +```powershell +Set-AzExpressRouteGateway -ResourceId [-MinScaleUnits ] [-MaxScaleUnits ] + [-AllowNonVirtualWanTraffic ] [-Tag ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName testRG -Name myVirtualWAN -Location "West US" +$virtualHub = New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.0.1/24" +New-AzExpressRouteGateway -ResourceGroupName "testRG" -Name "testergw" -VirtualHubId $virtualHub.Id -MinScaleUnits 2 +Set-AzExpressRouteGateway -ResourceGroupName "testRG" -Name "testergw" -MinScaleUnits 3 +``` + +```output +ResourceGroupName : testRG +Name : testergw +Id : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/expressRouteGateways/testergw +Location : West US +MinScaleUnits : 3 +Type : Microsoft.Network/expressRouteGateways +ProvisioningState : Succeeded +``` + +The above will create a resource group "testRG", a Virtual WAN and a Virtual Hub in West US in that resource group in Azure. +An ExpressRoute gateway will be created thereafter in the Virtual Hub with 2 scale units which will then be modified to 3 scale units. + ++ Example 2: Configure this gateway to accept traffic from non Virtual Wan networks. +You may either retrieve the gateway, configure its AllowNonVirtualWanTraffic property and save the changes on the gateway or you may just use the switch on the Set-AzExpressRouteGateway cmdlet + +```powershell +#### Option 1 - Retrieve the gateway object, configure it to allow traffic from VNets and persist those changes. +$gateway = Get-AzExpressRouteGateway -ResourceGroupName "resourceGroup001" -Name "gateway001" +$gateway.AllowNonVirtualWanTraffic = $true +$gateway = Set-AzExpressRouteGateway -InputObject $gateway + +#### Option 2 - Use the cmdlet switch +Set-AzExpressRouteGateway -ResourceGroupName "resourceGroup001" -Name "gateway001" -AllowNonVirtualWanTraffic $true +``` + ++ Example 3: Configure this gateway to block traffic from non Virtual Wan networks. +You may either retrieve the gateway, configure its AllowNonVirtualWanTraffic property and save the changes on the gateway or you may just use the switch on the Set-AzExpressRouteGateway cmdlet + +```powershell +#### Option 1 - Retrieve the gateway object, configure it to block traffic from VNets and persist those changes. +$gateway=Get-AzExpressRouteGateway -ResourceGroupName "resourceGroup001" -Name "gateway001" +$gateway.AllowNonVirtualWanTraffic = $false +$gateway = Set-AzExpressRouteGateway -InputObject $gateway + +#### Option 2 - Use the cmdlet switch +Set-AzExpressRouteGateway -ResourceGroupName "resourceGroup001" -Name "gateway001" -AllowNonVirtualWanTraffic $false +``` + + +#### New-AzExpressRoutePort + +#### SYNOPSIS +Creates an Azure ExpressRoutePort. + +#### SYNTAX + ++ ResourceNameParameterSet (Default) +```powershell +New-AzExpressRoutePort -ResourceGroupName -Name -PeeringLocation + -BandwidthInGbps -Encapsulation -Location [-Tag ] + [-Link ] [-Force] [-AsJob] [-Identity ] + [-BillingType ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ResourceIdParameterSet +```powershell +New-AzExpressRoutePort -ResourceId -PeeringLocation -BandwidthInGbps + -Encapsulation -Location [-Tag ] [-Link ] [-Force] [-AsJob] + [-Identity ] [-BillingType ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$parameters = @{ + Name='ExpressRoutePort' + ResourceGroupName='ExpressRouteResourceGroup' + Location='West US' + PeeringLocation='Silicon Valley' + BandwidthInGbps=100 + Encapsulation='QinQ' +} +New-AzExpressRoutePort @parameters +``` + ++ Example 2 +```powershell +$parameters = @{ + ResourceId='/subscriptions//resourceGroups//providers/Microsoft.Network/expressRoutePorts/' + Location='West US' + PeeringLocation='Silicon Valley' + BandwidthInGbps=100 + Encapsulation='QinQ' +} +New-AzExpressRoutePort @parameters +``` + + +#### Get-AzExpressRoutePort + +#### SYNOPSIS +Gets an Azure ExpressRoutePort resource. + +#### SYNTAX + ++ ResourceNameParameterSet (Default) +```powershell +Get-AzExpressRoutePort [-ResourceGroupName ] [-Name ] + [-DefaultProfile ] [] +``` + ++ ResourceIdParameterSet +```powershell +Get-AzExpressRoutePort -ResourceId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzExpressRoutePort -Name $PortName -ResourceGroupName $rg +``` + +Gets the ExpressRoutePort object with name $PortName in resource group $rg in your subscription. + ++ Example 2 +```powershell +Get-AzExpressRoutePort -Name test* +``` + +Gets all of the ExpressRoutePort objects whose name starts with "test". + ++ Example 3 +```powershell +Get-AzExpressRoutePort -ResourceId $id +``` + +Gets the ExpressRoutePort object with ResourceId $id. + + +#### Remove-AzExpressRoutePort + +#### SYNOPSIS +Removes an ExpressRoutePort. + +#### SYNTAX + ++ ResourceNameParameterSet (Default) +```powershell +Remove-AzExpressRoutePort -ResourceGroupName -Name [-Force] [-AsJob] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ InputObjectParameterSet +```powershell +Remove-AzExpressRoutePort -InputObject [-Force] [-AsJob] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ResourceIdParameterSet +```powershell +Remove-AzExpressRoutePort -ResourceId [-Force] [-AsJob] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzExpressRoutePort -Name $PortName -ResourceGroupName $rg +``` + +Removes $PortName ExpressRoutePort resource in $rg resource group in your subscription. + ++ Example 2 +```powershell +Remove-AzExpressRoutePort -InputObject $Port +``` + +Removes the ExpressRoutePort resource in InputObject. + ++ Example 3 +```powershell +Remove-AzExpressRoutePort -ResourceId $id +``` + +Removes the ExpressRoutePort resource with ResourceId $id. + + +#### Set-AzExpressRoutePort + +#### SYNOPSIS +Modifies an ExpressRoutePort. + +#### SYNTAX + +```powershell +Set-AzExpressRoutePort -ExpressRoutePort [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$erport = Get-AzExpressRoutePort -Name $PortName -ResourceGroupName $rg +$erport.Links[0].AdminState = 'Enabled' +Set-AzExpressRoutePort -ExpressRoutePort $erport +``` + ++ Example 2 +```powershell +$erport = Get-AzExpressRoutePort -Name $PortName -ResourceGroupName $rg +$erport.Links[0].AdminState = 'Enabled' +Set-AzExpressRoutePort -InputObject $erport +``` + +Modifies the admin state of a link of an ExpressRoutePort + ++ Example 3 +```powershell +$erport = Get-AzExpressRoutePort -Name $PortName -ResourceGroupName $rg +$erport.Links[0].AdminState = 'Enabled' +$erport.SciState = 'Disabled' +Set-AzExpressRoutePort -ExpressRoutePort $erport +``` + ++ Example 4 +```powershell +$erport = Get-AzExpressRoutePort -Name $PortName -ResourceGroupName $rg +$erport.BillingType = 'UnlimitedData' +Set-AzExpressRoutePort -ExpressRoutePort $erport +``` + + +#### Add-AzExpressRoutePortAuthorization + +#### SYNOPSIS +Adds an ExpressRoutePort authorization. + +#### SYNTAX + +```powershell +Add-AzExpressRoutePortAuthorization -Name -ExpressRoutePortObject + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$ERPort = Get-AzExpressRoutePort -Name "ContosoPort" -ResourceGroupName "ContosoResourceGroup" +``` + +```output +Name : ContosoPort +ResourceGroupName : ContosoResourceGroup +Location : westcentralus +Id : /subscriptions/62364504-2406-418e-971c-05822ff72fad/resourceGroups/ContosoResourceGroup/pr + oviders/Microsoft.Network/expressRoutePorts/ContosoPort +Etag : W/"cf987288-013e-40bf-a2aa-b29d017e7b7f" +ResourceGuid : 4c0e5cdb-79e1-4cb8-a430-0ce9b24472ca +ProvisioningState : Succeeded +PeeringLocation : Area51-ERDirect +BandwidthInGbps : 100 +ProvisionedBandwidthInGbps : 0 +Encapsulation : QinQ +Mtu : 1500 +EtherType : 0x8100 +AllocationDate : Thursday, March 31, 2022 +Identity : null +Links : [ + { + "Name": "link1", + "Etag": "W/\"cf987288-013e-40bf-a2aa-b29d017e7b7f\"", + "Id": "/subscriptions/62364504-2406-418e-971c-05822ff72fad/resourceGroups/ContosoResou + rceGroup/providers/Microsoft.Network/expressRoutePorts/ContosoPort/links/link1", + "RouterName": "a51-test-06gmr-cis-3", + "InterfaceName": "HundredGigE15/15/19", + "PatchPanelId": "PP:0123:1110201 - Port 42", + "RackId": "A51 02050-0123-L", + "ConnectorType": "LC", + "AdminState": "Disabled", + "ProvisioningState": "Succeeded", + "MacSecConfig": { + "SciState": "Disabled", + "Cipher": "GcmAes128" + } + }, + { + "Name": "link2", + "Etag": "W/\"cf987288-013e-40bf-a2aa-b29d017e7b7f\"", + "Id": "/subscriptions/62364504-2406-418e-971c-05822ff72fad/resourceGroups/ContosoResou + rceGroup/providers/Microsoft.Network/expressRoutePorts/ContosoPort/links/link2", + "RouterName": "a51-test-06gmr-cis-4", + "InterfaceName": "HundredGigE15/15/19", + "PatchPanelId": "2050:0124:1110854 - Port 42", + "RackId": "A51 02050-0124-L", + "ConnectorType": "LC", + "AdminState": "Disabled", + "ProvisioningState": "Succeeded", + "MacSecConfig": { + "SciState": "Disabled", + "Cipher": "GcmAes128" + } + } + ] +Circuits : [] +``` + +```powershell +Add-AzExpressRoutePortAuthorization -Name "ContosoPortAuthorization" -ExpressRoutePortObject $ERPort +``` + +```output +Name : ContosoPortAuthorization +Id : /subscriptions/62364504-2406-418e-971c-05822ff72fad/resourceGroups/ContosoResourceGroup/provid + ers/Microsoft.Network/expressRoutePorts/ContosoPort/authorizations/ContosoPortAuthorization +Etag : W/"36ccc199-c371-4d19-88cc-90d51bfe7ea9" +AuthorizationKey : 10d01cd7-0b67-4c44-88ca-51e7effa452d +AuthorizationUseStatus : Available +ProvisioningState : Succeeded +CircuitResourceUri : +``` + +The commands in this example add a new authorization to an existing ExpressRoutePort. The first +command uses **Get-AzExpressRoutePort** to create an object reference to a ExpressRoutePort named +ContosoPort. That object reference is stored in a variable named $ERPort. +In the second command, the **Add-AzExpressRoutePortAuthorization** cmdlet is used to add a +new authorization (ContosoPortAuthorization) to the ExpressRoutePort. + + +#### Get-AzExpressRoutePortAuthorization + +#### SYNOPSIS +Gets information about ExpressRoutePort authorizations. + +#### SYNTAX + +```powershell +Get-AzExpressRoutePortAuthorization [-Name ] -ExpressRoutePortObject + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$ERPort = Get-AzExpressRoutePort -Name "ContosoPort" -ResourceGroupName "ContosoResourceGroup" +``` + +```output +Name : ContosoPort +ResourceGroupName : ContosoResourceGroup +Location : westcentralus +Id : /subscriptions/62364504-2406-418e-971c-05822ff72fad/resourceGroups/ContosoResourceGroup/pr + oviders/Microsoft.Network/expressRoutePorts/ContosoPort +Etag : W/"cf987288-013e-40bf-a2aa-b29d017e7b7f" +ResourceGuid : 4c0e5cdb-79e1-4cb8-a430-0ce9b24472ca +ProvisioningState : Succeeded +PeeringLocation : Area51-ERDirect +BandwidthInGbps : 100 +ProvisionedBandwidthInGbps : 0 +Encapsulation : QinQ +Mtu : 1500 +EtherType : 0x8100 +AllocationDate : Thursday, March 31, 2022 +Identity : null +Links : [ + { + "Name": "link1", + "Etag": "W/\"cf987288-013e-40bf-a2aa-b29d017e7b7f\"", + "Id": "/subscriptions/62364504-2406-418e-971c-05822ff72fad/resourceGroups/ContosoResou + rceGroup/providers/Microsoft.Network/expressRoutePorts/ContosoPort/links/link1", + "RouterName": "a51-test-06gmr-cis-3", + "InterfaceName": "HundredGigE15/15/19", + "PatchPanelId": "PP:0123:1110201 - Port 42", + "RackId": "A51 02050-0123-L", + "ConnectorType": "LC", + "AdminState": "Disabled", + "ProvisioningState": "Succeeded", + "MacSecConfig": { + "SciState": "Disabled", + "Cipher": "GcmAes128" + } + }, + { + "Name": "link2", + "Etag": "W/\"cf987288-013e-40bf-a2aa-b29d017e7b7f\"", + "Id": "/subscriptions/62364504-2406-418e-971c-05822ff72fad/resourceGroups/ContosoResou + rceGroup/providers/Microsoft.Network/expressRoutePorts/ContosoPort/links/link2", + "RouterName": "a51-test-06gmr-cis-4", + "InterfaceName": "HundredGigE15/15/19", + "PatchPanelId": "2050:0124:1110854 - Port 42", + "RackId": "A51 02050-0124-L", + "ConnectorType": "LC", + "AdminState": "Disabled", + "ProvisioningState": "Succeeded", + "MacSecConfig": { + "SciState": "Disabled", + "Cipher": "GcmAes128" + } + } + ] +Circuits : [] +``` + +```powershell +Get-AzExpressRoutePortAuthorization -ExpressRoutePortObject $ERPort +``` + +```output +Name : ContosoPortAuthorization +Id : /subscriptions/62364504-2406-418e-971c-05822ff72fad/resourceGroups/ContosoResourceGroup/provid + ers/Microsoft.Network/expressRoutePorts/ContosoPort/authorizations/ContosoPortAuthorization +Etag : W/"36ccc199-c371-4d19-88cc-90d51bfe7ea9" +AuthorizationKey : 10d01cd7-0b67-4c44-88ca-51e7effa452d +AuthorizationUseStatus : Available +ProvisioningState : Succeeded +CircuitResourceUri : +``` + +These commands return information about all the ExpressRoute authorizations associated with an +ExpressRoutePort. The first command uses the **Get-AzExpressRoutePort** cmdlet to +create an object reference a ExpressRoutePort named ContosoPort; that object reference is stored in the +variable $ERPort. The second command then uses that object reference and the +**Get-AzExpressRoutePortAuthorization** cmdlet to return information about the +authorizations associated with ContosoPort. You can also specify the name of the authorization +with this command to a specific authorization associated with ContosoPort. + + +#### Remove-AzExpressRoutePortAuthorization + +#### SYNOPSIS +Removes an existing ExpressRoutePort authorization. + +#### SYNTAX + +```powershell +Remove-AzExpressRoutePortAuthorization -Name -ExpressRoutePortObject [-Force] + [-PassThru] [-AsJob] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$ERPort = Get-AzExpressRoutePort -Name "ContosoPort" -ResourceGroupName "ContosoResourceGroup" +``` + +```output +Name : ContosoPort +ResourceGroupName : ContosoResourceGroup +Location : westcentralus +Id : /subscriptions/62364504-2406-418e-971c-05822ff72fad/resourceGroups/ContosoResourceGroup/pr + oviders/Microsoft.Network/expressRoutePorts/ContosoPort +Etag : W/"cf987288-013e-40bf-a2aa-b29d017e7b7f" +ResourceGuid : 4c0e5cdb-79e1-4cb8-a430-0ce9b24472ca +ProvisioningState : Succeeded +PeeringLocation : Area51-ERDirect +BandwidthInGbps : 100 +ProvisionedBandwidthInGbps : 0 +Encapsulation : QinQ +Mtu : 1500 +EtherType : 0x8100 +AllocationDate : Thursday, March 31, 2022 +Identity : null +Links : [ + { + "Name": "link1", + "Etag": "W/\"cf987288-013e-40bf-a2aa-b29d017e7b7f\"", + "Id": "/subscriptions/62364504-2406-418e-971c-05822ff72fad/resourceGroups/ContosoResou + rceGroup/providers/Microsoft.Network/expressRoutePorts/ContosoPort/links/link1", + "RouterName": "a51-test-06gmr-cis-3", + "InterfaceName": "HundredGigE15/15/19", + "PatchPanelId": "PP:0123:1110201 - Port 42", + "RackId": "A51 02050-0123-L", + "ConnectorType": "LC", + "AdminState": "Disabled", + "ProvisioningState": "Succeeded", + "MacSecConfig": { + "SciState": "Disabled", + "Cipher": "GcmAes128" + } + }, + { + "Name": "link2", + "Etag": "W/\"cf987288-013e-40bf-a2aa-b29d017e7b7f\"", + "Id": "/subscriptions/62364504-2406-418e-971c-05822ff72fad/resourceGroups/ContosoResou + rceGroup/providers/Microsoft.Network/expressRoutePorts/ContosoPort/links/link2", + "RouterName": "a51-test-06gmr-cis-4", + "InterfaceName": "HundredGigE15/15/19", + "PatchPanelId": "2050:0124:1110854 - Port 42", + "RackId": "A51 02050-0124-L", + "ConnectorType": "LC", + "AdminState": "Disabled", + "ProvisioningState": "Succeeded", + "MacSecConfig": { + "SciState": "Disabled", + "Cipher": "GcmAes128" + } + } + ] +Circuits : [] +``` + +```powershell +Remove-AzExpressRoutePortAuthorization -Name "ContosoPortAuthorization" -ExpressRoutePortObject $ERPort +``` + +```output +Confirm +Are you sure you want to remove resource 'ContosoPortAuthorization' +[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): y +``` + +This example removes an authorization from an ExpressRoutePort. The first command uses +the **Get-AzExpressRoutePort** cmdlet to create an object reference to an ExpressRoutePort +named ContosoPort and stores the result in the variable named $ERPort. +The second command removes the ExpressRoutePort authorization ContosoPortAuthorization from +the ContosoPort. + + +#### New-AzExpressRoutePortIdentity + +#### SYNOPSIS +Creates an Azure ExpressRoutePortIdentity. + +#### SYNTAX + +```powershell +New-AzExpressRoutePortIdentity -UserAssignedIdentityId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$parameters = @{ + UserAssignedIdentityId='/subscriptions//resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/' + } +New-AzExpressRoutePortIdentity @parameters +``` + + +#### Get-AzExpressRoutePortIdentity + +#### SYNOPSIS +Get identity assigned to an ExpressRoutePort. + +#### SYNTAX + +```powershell +Get-AzExpressRoutePortIdentity -ExpressRoutePort + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$exrPort = Get-AzExpressRoutePort -Name $exrPortName -ResourceGroupName $resgpName +$identity = Get-AzExpressRoutePortIdentity -ExpressRoutePort $exrPort +``` + + +#### Remove-AzExpressRoutePortIdentity + +#### SYNOPSIS +Removes a identity from an ExpressRoutePort. + +#### SYNTAX + +```powershell +Remove-AzExpressRoutePortIdentity -ExpressRoutePort + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$expressroutePort = Remove-AzExpressRoutePortIdentity -ExpressRoutePort $expressroutePort +``` + + +#### Set-AzExpressRoutePortIdentity + +#### SYNOPSIS +Updates a identity assigned to an ExpressRoutePort. + +#### SYNTAX + +```powershell +Set-AzExpressRoutePortIdentity -ExpressRoutePort -UserAssignedIdentityId + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$exrport = Get-AzExpressRoutePort -Name $portName -ResourceGroupName $rgName +$identity = New-AzUserAssignedIdentity -Name $identityName -ResourceGroupName $rgName -Location $location +$exrPortIdentity = Set-AzExpressRoutePortIdentity -UserAssignedIdentity $identity.Id -ExpressRoutePort $exrPort +$updatedExrPort = Set-AzExpressRoutePort -ExpressRoutePort $exrPort +``` + + +#### Get-AzExpressRoutePortLinkConfig + +#### SYNOPSIS +Gets an ExpressRoutePort link configuration. + +#### SYNTAX + ++ ResourceNameParameterSet (Default) +```powershell +Get-AzExpressRoutePortLinkConfig -ExpressRoutePort [-Name ] + [-DefaultProfile ] [] +``` + ++ ResourceIdParameterSet +```powershell +Get-AzExpressRoutePortLinkConfig -ResourceId -ExpressRoutePort + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzExpressRoutePortLinkConfig -ExpressRoutePort $erport -Name Link1 +``` + +Gets the Link1 configuration of ExpressRoutePort $erport + ++ Example 2 +```powershell +Get-AzExpressRoutePortLinkConfig -ExpressRoutePort $erport -ResourceId $id +``` + +Gets the configuration of link with ResourceId $id in ExpressRoutePort $erport + + +#### New-AzExpressRoutePortLOA + +#### SYNOPSIS +Download letter of authorization document for an express route port. + +#### SYNTAX + ++ ResourceNameParameterSet (Default) +```powershell +New-AzExpressRoutePortLOA -PortName -ResourceGroupName -CustomerName + [-Destination ] [-PassThru] [-AsJob] [-DefaultProfile ] + [] +``` + ++ ResourceObjectParameterSet +```powershell +New-AzExpressRoutePortLOA -ExpressRoutePort -CustomerName [-Destination ] + [-PassThru] [-AsJob] [-DefaultProfile ] + [] +``` + ++ ResourceIdParameterSet +```powershell +New-AzExpressRoutePortLOA -Id -CustomerName [-Destination ] [-PassThru] [-AsJob] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzExpressRoutePortLOA -ResourceGroupName myRg -PortName myPort -CustomerName Contoso -Destination loa.pdf +``` + +Download the letter of authorization document for express route port 'myPort' and store it in file 'loa.pdf'. + ++ Example 2 + +Download letter of authorization document for an express route port. (autogenerated) + + + + +```powershell +New-AzExpressRoutePortLOA -CustomerName Contoso -Destination loa.pdf -ExpressRoutePort +``` + + +#### Get-AzExpressRoutePortsLocation + +#### SYNOPSIS +Gets the locations at which ExpressRoutePort resources are available. + +#### SYNTAX + +```powershell +Get-AzExpressRoutePortsLocation [-LocationName ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzExpressRoutePortsLocation +``` + +Lists the locations at which ExpressRoutePort resources are available. + ++ Example 2 +```powershell +Get-AzExpressRoutePortsLocation -LocationName $loc +``` + +Lists the ExpressRoutePort bandwidths available at location $loc. + + +#### Get-AzExpressRouteServiceProvider + +#### SYNOPSIS +Gets a list ExpressRoute service providers and their attributes. + +#### SYNTAX + +```powershell +Get-AzExpressRouteServiceProvider [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Get a list of service provider with locations in "Silicon Valley" +```powershell +Get-AzExpressRouteServiceProvider | + Where-Object PeeringLocations -Contains "Silicon Valley" | + Select-Object Name +``` + + +#### New-AzFirewall + +#### SYNOPSIS +Creates a new Firewall in a resource group. + +#### SYNTAX + ++ Default (Default) +```powershell +New-AzFirewall -Name -ResourceGroupName -Location + [-PublicIpAddress ] + [-ApplicationRuleCollection ] + [-NatRuleCollection ] + [-NetworkRuleCollection ] [-ThreatIntelMode ] + [-ThreatIntelWhitelist ] [-PrivateRange ] [-EnableDnsProxy] + [-DnsServer ] [-Tag ] [-Force] [-AsJob] [-Zone ] [-SkuName ] + [-SkuTier ] [-VirtualHubId ] [-HubIPAddress ] + [-FirewallPolicyId ] [-AllowActiveFTP] [-EnableFatFlowLogging] [-EnableDnstapLogging] + [-EnableUDPLogOptimization] [-RouteServerId ] [-MinCapacity ] [-MaxCapacity ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ OldIpConfigurationParameterValues +```powershell +New-AzFirewall -Name -ResourceGroupName -Location -VirtualNetworkName + [-PublicIpName ] [-PublicIpAddress ] + [-ApplicationRuleCollection ] + [-NatRuleCollection ] + [-NetworkRuleCollection ] [-ThreatIntelMode ] + [-ThreatIntelWhitelist ] [-PrivateRange ] [-EnableDnsProxy] + [-DnsServer ] [-Tag ] [-Force] [-AsJob] [-Zone ] [-SkuName ] + [-SkuTier ] [-VirtualHubId ] [-HubIPAddress ] + [-FirewallPolicyId ] [-AllowActiveFTP] [-EnableFatFlowLogging] [-EnableDnstapLogging] + [-EnableUDPLogOptimization] [-RouteServerId ] [-MinCapacity ] [-MaxCapacity ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ IpConfigurationParameterValues +```powershell +New-AzFirewall -Name -ResourceGroupName -Location -VirtualNetwork + [-PublicIpAddress ] [-ManagementPublicIpAddress ] + [-ApplicationRuleCollection ] + [-NatRuleCollection ] + [-NetworkRuleCollection ] [-ThreatIntelMode ] + [-ThreatIntelWhitelist ] [-PrivateRange ] [-EnableDnsProxy] + [-DnsServer ] [-Tag ] [-Force] [-AsJob] [-Zone ] [-SkuName ] + [-SkuTier ] [-VirtualHubId ] [-HubIPAddress ] + [-FirewallPolicyId ] [-AllowActiveFTP] [-EnableFatFlowLogging] [-EnableDnstapLogging] + [-EnableUDPLogOptimization] [-RouteServerId ] [-MinCapacity ] [-MaxCapacity ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Create a Firewall attached to a virtual network +```powershell +$rgName = "resourceGroupName" +$vnet = Get-AzVirtualNetwork -ResourceGroupName $rgName -Name "vnet" +$pip = Get-AzPublicIpAddress -ResourceGroupName $rgName -Name "publicIpName" +New-AzFirewall -Name "azFw" -ResourceGroupName $rgName -Location centralus -VirtualNetwork $vnet -PublicIpAddress $pip +``` + +This example creates a Firewall attached to virtual network "vnet" in the same resource group as the firewall. +Since no rules were specified, the firewall will block all traffic (default behavior). +Threat Intel will also run in default mode - Alert - which means malicious traffic will be logged, but not denied. + ++ Example 2: Create a Firewall which allows all HTTPS traffic +```powershell +$rgName = "resourceGroupName" +$vnet = Get-AzVirtualNetwork -ResourceGroupName $rgName -Name "vnet" +$pip = Get-AzPublicIpAddress -ResourceGroupName $rgName -Name "publicIpName" + +$rule = New-AzFirewallApplicationRule -Name R1 -Protocol "https:443" -TargetFqdn "*" +$ruleCollection = New-AzFirewallApplicationRuleCollection -Name RC1 -Priority 100 -Rule $rule -ActionType "Allow" +New-AzFirewall -Name "azFw" -ResourceGroupName $rgName -Location centralus -VirtualNetwork $vnet -PublicIpAddress $pip -ApplicationRuleCollection $ruleCollection +``` + +This example creates a Firewall which allows all HTTPS traffic on port 443. +Threat Intel will run in default mode - Alert - which means malicious traffic will be logged, but not denied. + ++ Example 3: DNAT - redirect traffic destined to 10.1.2.3:80 to 10.2.3.4:8080 +```powershell +$rule = New-AzFirewallNatRule -Name "natRule" -Protocol "TCP" -SourceAddress "*" -DestinationAddress "10.1.2.3" -DestinationPort "80" -TranslatedAddress "10.2.3.4" -TranslatedPort "8080" +$ruleCollection = New-AzFirewallNatRuleCollection -Name "NatRuleCollection" -Priority 1000 -Rule $rule +New-AzFirewall -Name "azFw" -ResourceGroupName "rg" -Location centralus -NatRuleCollection $ruleCollection -ThreatIntelMode Off +``` + +This example created a Firewall which translated the destination IP and port of all packets destined to 10.1.2.3:80 to 10.2.3.4:8080 +Threat Intel is turned off in this example. + ++ Example 4: Create a Firewall with no rules and with Threat Intel in Alert mode +```powershell +$rgName = "resourceGroupName" +$vnet = Get-AzVirtualNetwork -ResourceGroupName $rgName -Name "vnet" +$pip = Get-AzPublicIpAddress -ResourceGroupName $rgName -Name "publicIpName" +New-AzFirewall -Name "azFw" -ResourceGroupName $rgName -Location centralus -VirtualNetwork $vnet -PublicIpAddress $pip -ThreatIntelMode Alert +``` + +This example creates a Firewall which blocks all traffic (default behavior) and has Threat Intel running in Alert mode. +This means alerting logs are emitted for malicious traffic before applying the other rules (in this case just the default rule - Deny All) + ++ Example 5: Create a Firewall which allows all HTTP traffic on port 8080, but blocks malicious domains identified by Threat Intel +```powershell +$rgName = "resourceGroupName" +$vnet = Get-AzVirtualNetwork -ResourceGroupName $rgName -Name "vnet" +$pip = Get-AzPublicIpAddress -ResourceGroupName $rgName -Name "publicIpName" + +$rule = New-AzFirewallApplicationRule -Name R1 -Protocol "http:8080" -TargetFqdn "*" +$ruleCollection = New-AzFirewallApplicationRuleCollection -Name RC1 -Priority 100 -Rule $rule -ActionType "Allow" +New-AzFirewall -Name "azFw" -ResourceGroupName $rgName -Location centralus -VirtualNetwork $vnet -PublicIpAddress $pip -ApplicationRuleCollection $ruleCollection -ThreatIntelMode Deny +``` + +This example creates a Firewall which allows all HTTP traffic on port 8080 unless it is considered malicious by Threat Intel. +When running in Deny mode, unlike Alert, traffic considered malicious by Threat Intel is not just logged, but also blocked. + ++ Example 6: Create a Firewall with no rules and with availability zones +```powershell +$rgName = "resourceGroupName" +$vnet = Get-AzVirtualNetwork -ResourceGroupName $rgName -Name "vnet" +$pip = Get-AzPublicIpAddress -ResourceGroupName $rgName -Name "publicIpName" +New-AzFirewall -Name "azFw" -ResourceGroupName $rgName -Location centralus -VirtualNetworkName $vnet.Name -PublicIpName $pip.Name -Zone 1,2,3 +``` + +This example creates a Firewall with all available availability zones. + ++ Example 7: Create a Firewall with two or more Public IP Addresses +```powershell +$rgName = "resourceGroupName" +$vnet = Get-AzVirtualNetwork -Name "vnet" -ResourceGroupName $rgName +$pip1 = New-AzPublicIpAddress -Name "AzFwPublicIp1" -ResourceGroupName "rg" -Sku "Basic" -Tier "Regional" -Location "centralus" -AllocationMethod Static +$pip2 = New-AzPublicIpAddress -Name "AzFwPublicIp2" -ResourceGroupName "rg" -Sku "Basic" -Tier "Regional" -Location "centralus" -AllocationMethod Static +New-AzFirewall -Name "azFw" -ResourceGroupName $rgName -Location centralus -VirtualNetwork $vnet -PublicIpAddress @($pip1, $pip2) +``` + +This example creates a Firewall attached to virtual network "vnet" with two public IP addresses. + ++ Example 8: Create a Firewall which allows MSSQL traffic to specific SQL database +```powershell +$rgName = "resourceGroupName" +$vnet = Get-AzVirtualNetwork -ResourceGroupName $rgName -Name "vnet" +$pip = Get-AzPublicIpAddress -ResourceGroupName $rgName -Name "publicIpName" + +$rule = New-AzFirewallApplicationRule -Name R1 -Protocol "mssql:1433" -TargetFqdn "sql1.database.windows.net" +$ruleCollection = New-AzFirewallApplicationRuleCollection -Name RC1 -Priority 100 -Rule $rule -ActionType "Allow" +New-AzFirewall -Name "azFw" -ResourceGroupName $rgName -Location centralus -VirtualNetwork $vnet -PublicIpAddress $pip -ApplicationRuleCollection $ruleCollection -ThreatIntelMode Deny +``` + +This example creates a Firewall which allows MSSQL traffic on standard port 1433 to SQL database sql1.database.windows.net. + ++ Example 9: Create a Firewall attached to a virtual hub +```powershell +$rgName = "resourceGroupName" +$fp = Get-AzFirewallPolicy -ResourceGroupName $rgName -Name "fp" +$fpId = $fp.Id +$vHub = Get-AzVirtualHub -Name "hub" +$vHubId = $vHub.Id + +New-AzFirewall -Name "azFw" -ResourceGroupName $rgName -Location centralus -SkuName AZFW_Hub -VirtualHubId $vHubId -FirewallPolicyId -$fpId +``` + +This example creates a Firewall attached to virtual hub "vHub". A firewall policy $fp will be attached to the firewall. This firewall allows/denies the traffic based on the rules mentioned in the firewall policy $fp. The virtual hub and the firewall should be in the same regions. + ++ Example 10: Create a Firewall with threat intelligence allowlist setup +```powershell +$rgName = "resourceGroupName" +$vnet = Get-AzVirtualNetwork -ResourceGroupName $rgName -Name "vnet" +$pip = Get-AzPublicIpAddress -ResourceGroupName $rgName -Name "publicIpName" + +$tiWhitelist = New-AzFirewallThreatIntelWhitelist -FQDN @("www.microsoft.com") -IpAddress @("8.8.8.8") +New-AzFirewall -Name "azFw" -ResourceGroupName $rgName -Location centralus -VirtualNetwork $vnet -PublicIpAddress $pip -ThreatIntelWhitelist $tiWhitelist +``` + +This example creates a Firewall that allowlists "www.microsoft.com" and "8.8.8.8" from threat intelligence + ++ Example 11: Create a Firewall with customized private range setup +```powershell +$rgName = "resourceGroupName" +$vnet = Get-AzVirtualNetwork -ResourceGroupName $rgName -Name "vnet" +$pip = Get-AzPublicIpAddress -ResourceGroupName $rgName -Name "publicIpName" + +New-AzFirewall -Name "azFw" -ResourceGroupName $rgName -Location centralus -VirtualNetwork $vnet -PublicIpAddress $pip -PrivateRange @("99.99.99.0/24", "66.66.0.0/16") +``` + +This example creates a Firewall that treats "99.99.99.0/24" and "66.66.0.0/16" as private ip ranges and won't snat traffic to those addresses + ++ Example 12: Create a Firewall with a management subnet and Public IP address +```powershell +$rgName = "resourceGroupName" +$vnet = Get-AzVirtualNetwork -ResourceGroupName $rgName -Name "vnet" +$pip = Get-AzPublicIpAddress -ResourceGroupName $rgName -Name "publicIpName" +$mgmtPip = Get-AzPublicIpAddress -ResourceGroupName $rgName -Name "managementPublicIpName" + +New-AzFirewall -Name "azFw" -ResourceGroupName $rgName -Location centralus -VirtualNetwork $vnet -PublicIpAddress $pip -ManagementPublicIpAddress $mgmtPip +``` + +This example creates a Firewall attached to virtual network "vnet" in the same resource group as the firewall. +Since no rules were specified, the firewall will block all traffic (default behavior). +Threat Intel will also run in default mode - Alert - which means malicious traffic will be logged, but not denied. + +To support "forced tunneling" scenarios, this firewall will use the subnet "AzureFirewallManagementSubnet" and the management public IP address for its management traffic + ++ Example 13: Create a Firewall with Firewall Policy attached to a virtual network +```powershell +$rgName = "resourceGroupName" +$vnet = Get-AzVirtualNetwork -ResourceGroupName $rgName -Name "vnet" +$pip = Get-AzPublicIpAddress -ResourceGroupName $rgName -Name "publicIpName" +$fp = Get-AzFirewallPolicy -ResourceGroupName $rgName -Name "fp" +New-AzFirewall -Name "azFw" -ResourceGroupName $rgName -Location centralus -VirtualNetwork $vnet -PublicIpAddress $pip -FirewallPolicyId $fp +``` + +This example creates a Firewall attached to virtual network "vnet" in the same resource group as the firewall. +The rules and threat intelligence that will be applied to the firewall will be taken from the firewall policy + ++ Example 14: Create a Firewall with DNS Proxy and DNS Servers +```powershell +$rgName = "resourceGroupName" +$vnet = Get-AzVirtualNetwork -ResourceGroupName $rgName -Name "vnet" +$pip = Get-AzPublicIpAddress -ResourceGroupName $rgName -Name "publicIpName" +New-AzFirewall -Name "azFw" -ResourceGroupName $rgName -Location centralus -VirtualNetwork $vnet -PublicIpAddress $pip -DnsServer @("10.10.10.1", "20.20.20.2") +``` + +This example creates a Firewall attached to virtual network "vnet" in the same resource group as the firewall. +DNS Proxy is enabled for this firewall and 2 DNS Servers are provided. Also Require DNS Proxy for Network rules is set +so if there are any Network rules with FQDNs then DNS proxy will be used for them too. + ++ Example 15: Create a Firewall with multiple IPs. The Firewall can be associated with the Virtual Hub +```powershell +$rgName = "resourceGroupName" +$vHub = Get-AzVirtualHub -Name "hub" +$vHubId = $vHub.Id +$fwpips = New-AzFirewallHubPublicIpAddress -Count 2 +$hubIpAddresses = New-AzFirewallHubIpAddress -PublicIP $fwpips +$fw=New-AzFirewall -Name "azFw" -ResourceGroupName $rgName -Location westus -SkuName AZFW_Hub -HubIPAddress $hubIpAddresses -VirtualHubId $vHubId +``` + +This example creates a Firewall attached to virtual hub "hub" in the same resource group as the firewall. +The Firewall will be assigned 2 public IPs that are created implicitly. + ++ Example 16: Create a Firewall with Allow Active FTP. +```powershell +$rgName = "resourceGroupName" +$vnet = Get-AzVirtualNetwork -ResourceGroupName $rgName -Name "vnet" +$pip = Get-AzPublicIpAddress -ResourceGroupName $rgName -Name "publicIpName" +New-AzFirewall -Name "azFw" -ResourceGroupName $rgName -Location centralus -VirtualNetwork $vnet -PublicIpAddress $pip -AllowActiveFTP +``` + +This example creates a Firewall with allow active FTP flag. + ++ Example 17: Create a Firewall with a management subnet and no data Public IP address +```powershell +$rgName = "resourceGroupName" +$vnet = Get-AzVirtualNetwork -ResourceGroupName $rgName -Name "vnet" +$mgmtPip = Get-AzPublicIpAddress -ResourceGroupName $rgName -Name "managementPublicIpName" + +New-AzFirewall -Name "azFw" -ResourceGroupName $rgName -Location centralus -VirtualNetwork $vnet -ManagementPublicIpAddress $mgmtPip +``` + +This example creates a "forced tunneling" Firewall that uses the subnet "AzureFirewallManagementSubnet" and the management public IP address for its management traffic. +In this scenario, users do not have to specify a data Public IP if they are only using firewall for private traffic only. + + +#### Get-AzFirewall + +#### SYNOPSIS +Gets a Azure Firewall. + +#### SYNTAX + +```powershell +Get-AzFirewall [-Name ] [-ResourceGroupName ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Retrieve all Firewalls in a resource group +```powershell +Get-AzFirewall -ResourceGroupName rgName +``` + +```output +Name : azFw +ResourceGroupName : rgName +Location : westcentralus +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgName/providers/Micros + oft.Network/azureFirewalls/azFw +Etag : W/"00000000-0000-0000-0000-000000000000" +ResourceGuid : +ProvisioningState : Succeeded +Tags : +IpConfigurations : [ + { + "Name": "AzureFirewallIpConfiguration", + "Etag": "W/\"00000000-0000-0000-0000-000000000000\"", + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgName/provi + ders/Microsoft.Network/azureFirewalls/azFw/azureFirewallIpConfigurations/AzureFirewallIp + Configuration", + "PrivateIPAddress": "x.x.x.x", + "Subnet": { + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgName/pro + viders/Microsoft.Network/virtualNetworks/vnetname/subnets/AzureFirewallSubnet" + }, + "PublicIpAddress": { + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgName/pro + viders/Microsoft.Network/publicIPAddresses/publicipname" + } + } + ] +ApplicationRuleCollections : [] +NatRuleCollections : [] +NetworkRuleCollections : [] +Zones : {} + +Name : azFw1 +ResourceGroupName : rgName +Location : westcentralus +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgName/providers/Micros + oft.Network/azureFirewalls/azFw1 +Etag : W/"00000000-0000-0000-0000-000000000000" +ResourceGuid : +ProvisioningState : Succeeded +Tags : +IpConfigurations : [ + { + "Name": "AzureFirewallIpConfiguration", + "Etag": "W/\"00000000-0000-0000-0000-000000000000\"", + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgName/provi + ders/Microsoft.Network/azureFirewalls/azFw1/azureFirewallIpConfigurations/AzureFirewallIp + Configuration", + "PrivateIPAddress": "x.x.x.x", + "Subnet": { + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgName/pro + viders/Microsoft.Network/virtualNetworks/vnetname/subnets/AzureFirewallSubnet" + }, + "PublicIpAddress": { + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgName/pro + viders/Microsoft.Network/publicIPAddresses/publicipname" + } + } + ] +ApplicationRuleCollections : [] +NatRuleCollections : [] +NetworkRuleCollections : [] +Zones : {} +``` + +This example retrieves all Firewalls in resource group "rgName". + ++ Example 2: Retrieve a Firewall by name +```powershell +Get-AzFirewall -ResourceGroupName rgName -Name azFw +``` + +```output +Name : azFw +ResourceGroupName : rgName +Location : westcentralus +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgName/providers/Micros + oft.Network/azureFirewalls/azFw +Etag : W/"00000000-0000-0000-0000-000000000000" +ResourceGuid : +ProvisioningState : Succeeded +Tags : +IpConfigurations : [ + { + "Name": "AzureFirewallIpConfiguration", + "Etag": "W/\"00000000-0000-0000-0000-000000000000\"", + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgName/provi + ders/Microsoft.Network/azureFirewalls/azFw/azureFirewallIpConfigurations/AzureFirewallIp + Configuration", + "PrivateIPAddress": "x.x.x.x", + "Subnet": { + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgName/pro + viders/Microsoft.Network/virtualNetworks/vnetname/subnets/AzureFirewallSubnet" + }, + "PublicIpAddress": { + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgName/pro + viders/Microsoft.Network/publicIPAddresses/publicipname" + } + } + ] +ApplicationRuleCollections : [] +NatRuleCollections : [] +NetworkRuleCollections : [] +Zones : {} +``` + +This example retrieves Firewall named "azFw" in resource group "rgName". + ++ Example 3: Retrieve all Firewalls with filtering +```powershell +Get-AzFirewall -Name azFw* +``` + +```output +Name : azFw +ResourceGroupName : rgName +Location : westcentralus +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgName/providers/Micros + oft.Network/azureFirewalls/azFw +Etag : W/"00000000-0000-0000-0000-000000000000" +ResourceGuid : +ProvisioningState : Succeeded +Tags : +IpConfigurations : [ + { + "Name": "AzureFirewallIpConfiguration", + "Etag": "W/\"00000000-0000-0000-0000-000000000000\"", + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgName/provi + ders/Microsoft.Network/azureFirewalls/azFw/azureFirewallIpConfigurations/AzureFirewallIp + Configuration", + "PrivateIPAddress": "x.x.x.x", + "Subnet": { + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgName/pro + viders/Microsoft.Network/virtualNetworks/vnetname/subnets/AzureFirewallSubnet" + }, + "PublicIpAddress": { + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgName/pro + viders/Microsoft.Network/publicIPAddresses/publicipname" + } + } + ] +ApplicationRuleCollections : [] +NatRuleCollections : [] +NetworkRuleCollections : [] +Zones : {} + +Name : azFw1 +ResourceGroupName : rgName +Location : westcentralus +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgName/providers/Micros + oft.Network/azureFirewalls/azFw1 +Etag : W/"00000000-0000-0000-0000-000000000000" +ResourceGuid : +ProvisioningState : Succeeded +Tags : +IpConfigurations : [ + { + "Name": "AzureFirewallIpConfiguration", + "Etag": "W/\"00000000-0000-0000-0000-000000000000\"", + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgName/provi + ders/Microsoft.Network/azureFirewalls/azFw1/azureFirewallIpConfigurations/AzureFirewallIp + Configuration", + "PrivateIPAddress": "x.x.x.x", + "Subnet": { + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgName/pro + viders/Microsoft.Network/virtualNetworks/vnetname/subnets/AzureFirewallSubnet" + }, + "PublicIpAddress": { + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgName/pro + viders/Microsoft.Network/publicIPAddresses/publicipname" + } + } + ] +ApplicationRuleCollections : [] +NatRuleCollections : [] +NetworkRuleCollections : [] +Zones : {} +``` + +This example retrieves all Firewalls that start with "azFw" + ++ Example 4: Retrieve a firewall and then add a application rule collection to the Firewall +```powershell +$azFw=Get-AzFirewall -Name "azFw" -ResourceGroupName "rgName" +$appRule = New-AzFirewallApplicationRule -Name R1 -Protocol "http:80","https:443" -TargetFqdn "*google.com", "*microsoft.com" -SourceAddress "10.0.0.0" +$appRuleCollection = New-AzFirewallApplicationRuleCollection -Name "MyAppRuleCollection" -Priority 100 -Rule $appRule -ActionType "Allow" +$azFw.AddApplicationRuleCollection($appRuleCollection) +``` + +This example retrieves a firewall, then adds a application rule collection to the firewall by calling method AddApplicationRuleCollection. + ++ Example 5: Retrieve a firewall and then add a network rule collection to the Firewall +```powershell +$azFw=Get-AzFirewall -Name "azFw" -ResourceGroupName "rgName" +$netRule = New-AzFirewallNetworkRule -Name "all-udp-traffic" -Description "Rule for all UDP traffic" -Protocol "UDP" -SourceAddress "*" -DestinationAddress "*" -DestinationPort "*" +$netRuleCollection = New-AzFirewallNetworkRuleCollection -Name "MyNetworkRuleCollection" -Priority 100 -Rule $netRule -ActionType "Allow" +$azFw.AddNetworkRuleCollection($netRuleCollection) +``` + +This example retrieves a firewall, then adds a network rule collection to the firewall by calling method AddNetworkRuleCollection. + ++ Example 6: Retrieve a firewall and then retrieve a application rule collection by name from the Firewall +```powershell +$azFw=Get-AzFirewall -Name "azFw" -ResourceGroupName "rgName" +$getAppRc=$azFw.GetApplicationRuleCollectionByName("MyAppRuleCollection") +``` + +This example retrieves a firewall and then gets a rule collection by name, calling method GetApplicationRuleCollectionByName on the +firewall object. The rule collection name for method GetApplicationRuleCollectionByName is case-insensitive. + ++ Example 7: Retrieve a firewall and then retrieve a network rule collection by name from the Firewall +```powershell +$azFw=Get-AzFirewall -Name "azFw" -ResourceGroupName "rgName" +$getNetRc=$azFw.GetNetworkRuleCollectionByName("MyNetworkRuleCollection") +``` + +This example retrieves a firewall and then gets a rule collection by name, calling method GetNetworkRuleCollectionByName on the +firewall object. The rule collection name for method GetNetworkRuleCollectionByName is case-insensitive. + ++ Example 8: Retrieve a firewall and then remove a application rule collection by name from the Firewall +```powershell +$azFw=Get-AzFirewall -Name "azFw" -ResourceGroupName "rgName" +$azFw.RemoveApplicationRuleCollectionByName("MyAppRuleCollection") +``` + +This example retrieves a firewall and then removes a rule collection by name, calling method RemoveApplicationRuleCollectionByName on the +firewall object. The rule collection name for method RemoveApplicationRuleCollectionByName is case-insensitive. + ++ Example 9: Retrieve a firewall and then remove a network rule collection by name from the Firewall +```powershell +$azFw=Get-AzFirewall -Name "azFw" -ResourceGroupName "rgName" +$azFw.RemoveNetworkRuleCollectionByName("MyNetworkRuleCollection") +``` + +This example retrieves a firewall and then removes a rule collection by name, calling method RemoveNetworkRuleCollectionByName on the +firewall object. The rule collection name for method RemoveNetworkRuleCollectionByName is case-insensitive. + ++ Example 10: Retrieve a firewall and then allocate the firewall +```powershell +$vnet=Get-AzVirtualNetwork -Name "vnet" -ResourceGroupName "rgName" +$publicIp=Get-AzPublicIpAddress -Name "firewallpip" -ResourceGroupName "rgName" +$azFw=Get-AzFirewall -Name "azFw" -ResourceGroupName "rgName" +$azFw.Allocate($vnet, $publicIp) +``` + +This example retrieves a firewall and calls Allocate on the firewall to start the firewall service using the configuration +(application and network rule collections) associated with the firewall. + + +#### Remove-AzFirewall + +#### SYNOPSIS +Remove a Firewall. + +#### SYNTAX + +```powershell +Remove-AzFirewall -Name -ResourceGroupName [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Create and delete a Firewall +```powershell +New-AzFirewall -Name "azFw" -ResourceGroupName "rgName" -Location centralus + +Remove-AzFirewall -Name "azFw" -ResourceGroupName "rgName" +``` + +```output +Confirm +Are you sure you want to remove resource 'azFw' +[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): y +``` + +This example creates a Firewall and then deletes it. To suppress the prompt when deleting the Firewall, use the -Force flag. + + +#### Set-AzFirewall + +#### SYNOPSIS +Saves a modified Firewall. + +#### SYNTAX + +```powershell +Set-AzFirewall -AzureFirewall [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Update priority of a Firewall application rule collection +```powershell +$azFw = Get-AzFirewall -Name "AzureFirewall" -ResourceGroupName "rg" +$ruleCollection = $azFw.GetApplicationRuleCollectionByName("ruleCollectionName") +$ruleCollection.Priority = 101 +Set-AzFirewall -AzureFirewall $azFw +``` + +This example updates the priority of an existing rule collection of an Azure Firewall. +Assuming Azure Firewall "AzureFirewall" in resource group "rg" contains an application rule collection named +"ruleCollectionName", the commands above will change the priority of that rule collection and update the +Azure Firewall afterwards. Without the Set-AzFirewall command, all operations performed on the local $azFw +object are not reflected on the server. + ++ Example 2: Create a Azure Firewall and set an application rule collection later +```powershell +$azFw = New-AzFirewall -Name "AzureFirewall" -ResourceGroupName "rg" -VirtualNetworkName "vnet-name" -PublicIpName "pip-name" + +$rule = New-AzFirewallApplicationRule -Name R1 -Protocol "http:80","https:443" -TargetFqdn "*google.com", "*microsoft.com" -SourceAddress "10.0.0.0" +$RuleCollection = New-AzFirewallApplicationRuleCollection -Name RC1 -Priority 100 -Rule $rule -ActionType "Allow" +$azFw.ApplicationRuleCollections = $RuleCollection + +$azFw | Set-AzFirewall +``` + +In this example, a Firewall is created first without any application rule collections. Afterwards a Application Rule +and Application Rule Collection are created, then the Firewall object is modified in memory, without affecting +the real configuration in cloud. For changes to be reflected in cloud, Set-AzFirewall must be called. + ++ Example 3: Update Threat Intel operation mode of Azure Firewall +```powershell +$azFw = Get-AzFirewall -Name "AzureFirewall" -ResourceGroupName "rg" +$azFw.ThreatIntelMode = "Deny" +Set-AzFirewall -AzureFirewall $azFw +``` + +This example updates the Threat Intel operation mode of Azure Firewall "AzureFirewall" in resource group "rg". +Without the Set-AzFirewall command, all operations performed on the local $azFw object are not reflected on the server. + ++ Example 4: Deallocate and allocate the Firewall +```powershell +$firewall=Get-AzFirewall -ResourceGroupName rgName -Name azFw +$firewall.Deallocate() +$firewall | Set-AzFirewall + +$vnet = Get-AzVirtualNetwork -ResourceGroupName rgName -Name anotherVNetName +$pip = Get-AzPublicIpAddress -ResourceGroupName rgName -Name publicIpName +$firewall.Allocate($vnet, $pip) +$firewall | Set-AzFirewall +``` + +This example retrieves a Firewall, deallocates the firewall, and saves it. The Deallocate command removes the running +service but preserves the firewall's configuration. For changes to be reflected in cloud, Set-AzFirewall must be called. +If user wants to start the service again, the Allocate method should be called on the firewall. +The new VNet and Public IP must be in the same resource group as the Firewall. Again, for changes to be reflected in cloud, +Set-AzFirewall must be called. + ++ Example 5: Allocate with a management public IP address for forced tunneling scenarios +```powershell +$vnet = Get-AzVirtualNetwork -ResourceGroupName rgName -Name anotherVNetName +$pip = Get-AzPublicIpAddress -ResourceGroupName rgName -Name publicIpName +$mgmtPip = Get-AzPublicIpAddress -ResourceGroupName rgName -Name MgmtPublicIpName +$firewall.Allocate($vnet, $pip, $mgmtPip) +$firewall | Set-AzFirewall +``` + +This example allocates the firewall with a management public IP address and subnet for forced tunneling scenarios. The VNet must contain a subnet called "AzureFirewallManagementSubnet". + ++ Example 6: Add a Public IP address to an Azure Firewall +```powershell +$pip = New-AzPublicIpAddress -Name "azFwPublicIp1" -ResourceGroupName "rg" -Sku "Standard" -Location "centralus" -AllocationMethod Static +$azFw = Get-AzFirewall -Name "AzureFirewall" -ResourceGroupName "rg" +$azFw.AddPublicIpAddress($pip) + +$azFw | Set-AzFirewall +``` + +In this example, the Public IP Address "azFwPublicIp1" as attached to the Firewall. + ++ Example 7: Remove a Public IP address from an Azure Firewall +```powershell +$pip = Get-AzPublicIpAddress -Name "azFwPublicIp1" -ResourceGroupName "rg" +$azFw = Get-AzFirewall -Name "AzureFirewall" -ResourceGroupName "rg" +$azFw.RemovePublicIpAddress($pip) + +$azFw | Set-AzFirewall +``` + +In this example, the Public IP Address "azFwPublicIp1" as detached from the Firewall. + ++ Example 8: Change the management public IP address on an Azure Firewall +```powershell +$newMgmtPip = New-AzPublicIpAddress -Name "azFwMgmtPublicIp2" -ResourceGroupName "rg" -Sku "Standard" -Location "centralus" -AllocationMethod Static +$azFw = Get-AzFirewall -Name "AzureFirewall" -ResourceGroupName "rg" +$azFw.ManagementIpConfiguration.PublicIpAddress = $newMgmtPip + +$azFw | Set-AzFirewall +``` + +In this example, the management public IP address of the firewall will be changed to "AzFwMgmtPublicIp2" + ++ Example 9: Add DNS configuration to an Azure Firewall +```powershell +$dnsServers = @("10.10.10.1", "20.20.20.2") +$azFw = Get-AzFirewall -Name "AzureFirewall" -ResourceGroupName "rg" +$azFw.DNSEnableProxy = $true +$azFw.DNSServer = $dnsServers + +$azFw | Set-AzFirewall +``` + +In this example, DNS Proxy and DNS Server configuration is attached to the Firewall. + ++ Example 10: Update destination of an existing rule within a Firewall application rule collection +```powershell +$azFw = Get-AzFirewall -Name "AzureFirewall" -ResourceGroupName "rg" +$ruleCollection = $azFw.GetNetworkRuleCollectionByName("ruleCollectionName") +$rule=$ruleCollection.GetRuleByName("ruleName") +$rule.DestinationAddresses = "10.10.10.10" +Set-AzFirewall -AzureFirewall $azFw +``` + +This example updates the destination of an existing rule within a rule collection of an Azure Firewall. This allows you to automatically update your rules when IP addresses change dynamically. + ++ Example 11: Allow Active FTP on Azure Firewall +```powershell +$azFw = Get-AzFirewall -Name "AzureFirewall" -ResourceGroupName "rg" +$azFw.AllowActiveFTP = $true + +$azFw | Set-AzFirewall +``` + +In this example, Active FTP is allowed on the Firewall. + ++ Example 12: Deallocate and allocate the Firewall from a Virtual Hub +```powershell +$firewall=Get-AzFirewall -ResourceGroupName rgName -Name azFw +$firewall.Deallocate() +$firewall | Set-AzFirewall + +$Hub = Get-AzVirtualHub -ResourceGroupName "testRG" -Name "westushub" +$firewall.Allocate($Hub.Id) +$firewall | Set-AzFirewall +``` + +This example retrieves a Hub Firewall, deallocates the hub firewall, and saves it. The Deallocate command removes the reference +to the virtual hub but preserves the firewall's configuration. For changes to be reflected in cloud, Set-AzFirewall must be called. +The Allocate method assigns the virtual hub reference to the firewall. Again, for changes to be reflected in cloud, +Set-AzFirewall must be called. + ++ Example 13: Enable Fat Flow Logging on Azure Firewall +```powershell +$azFw = Get-AzFirewall -Name "ps184" -ResourceGroupName "ps774" +$azFw.EnableFatFlowLogging = $true + +$azFw | Set-AzFirewall +``` + +```output +AllowActiveFTP : null + ApplicationRuleCollections : Count = 0 + ApplicationRuleCollectionsText : "[]" + DNSEnableProxy : null + DNSServer : null + DNSServersText : "null" + Etag : "W/\"7533fa1b-8588-400d-857c-6bc372e14f1b\"" + FirewallPolicy : null + HubIPAddresses : null + Id : "/subscriptions/aeb5b02a-0f18-45a4-86d6-81808115cacf/resourceGroups/ps774/providers/Microsoft.Network/azureFirewalls/ps184" + EnableFatFlowLogging : "true" + IpConfigurations : Count = 0 + IpConfigurationsText : "[]" + Location : "eastus" + ManagementIpConfiguration : null + ManagementIpConfigurationText : "null" + Name : "ps184" + NatRuleCollections : Count = 0 + NatRuleCollectionsText : "[]" + NetworkRuleCollections : Count = 0 + NetworkRuleCollectionsText : "[]" + PrivateRange : null + PrivateRangeText : "null" + ProvisioningState : "Succeeded" + ResourceGroupName : "ps774" + ResourceGuid : null + Sku : {Microsoft.Azure.Commands.Network.Models.PSAzureFirewallSku} + Tag : null + TagsTable : null + ThreatIntelMode : "Alert" + ThreatIntelWhitelist : {Microsoft.Azure.Commands.Network.Models.PSAzureFirewallThreatIntelWhitelist} + ThreatIntelWhitelistText : "{\r\n \"FQDNs\": null,\r\n \"IpAddresses\": null\r\n}" + Type : "Microsoft.Network/azureFirewalls" + VirtualHub : null + Zones : Count = 0 + privateRange : null +``` + +In this example, Enable Fat Flow Logging is enabled on the Firewall. + ++ Example 14: Upgrade Azure Firewall Standard to Premium +```powershell +$azfw = Get-AzFirewall -Name "AzureFirewall" -ResourceGroupName "rg" +$azfw.Sku.Tier="Premium" +Set-AzFirewall -AzureFirewall $azfw +``` + +This example upgrades your existing Azure Firewall Standard to Premium Firewall. Upgrade process may take several minutes and does not require service down time. After upgrade is completed successfully you may replace your exiting standard policy with premium. + ++ Example 15: Deallocate and allocate the Firewall with Availability Zones +```powershell +$firewall=Get-AzFirewall -ResourceGroupName rgName -Name azFw +$firewall.Deallocate() +$firewall | Set-AzFirewall + +$vnet = Get-AzVirtualNetwork -ResourceGroupName rgName -Name anotherVNetName +$pip = Get-AzPublicIpAddress -ResourceGroupName rgName -Name publicIpName +$firewall.Zones = "1","2","3" +$firewall.Allocate($vnet, $pip) +$firewall | Set-AzFirewall +``` + +This example retrieves a Firewall, deallocates the firewall, and saves it. The Deallocate command removes the running +service but preserves the firewall's configuration. For changes to be reflected in cloud, Set-AzFirewall must be called. +If user wants to start the service again but with Availability Zones, the Zones method needs to be called defining the desired Availability Zones in quotes and separated by comma. In case Availability Zones needs to be removed, the $null parameter needs to be introduced instead. Finally, the Allocate method should be called on the firewall. +The new VNet and Public IP must be in the same resource group as the Firewall. Again, for changes to be reflected in cloud, +Set-AzFirewall must be called. + ++ Example 16: Enable Dnstap Logging on Azure Firewall +```powershell +$azFw = Get-AzFirewall -Name "ps184" -ResourceGroupName "ps774" +$azFw.EnableDnstapLogging = $true + +$azFw | Set-AzFirewall +``` + +```output +AllowActiveFTP : null + ApplicationRuleCollections : Count = 0 + ApplicationRuleCollectionsText : "[]" + DNSEnableProxy : null + DNSServer : null + DNSServersText : "null" + Etag : "W/\"7533fa1b-8588-400d-857c-6bc372e14f1b\"" + FirewallPolicy : null + HubIPAddresses : null + Id : "/subscriptions/aeb5b02a-0f18-45a4-86d6-81808115cacf/resourceGroups/ps774/providers/Microsoft.Network/azureFirewalls/ps184" + EnableDnstapLogging : "true" + IpConfigurations : Count = 0 + IpConfigurationsText : "[]" + Location : "eastus" + ManagementIpConfiguration : null + ManagementIpConfigurationText : "null" + Name : "ps184" + NatRuleCollections : Count = 0 + NatRuleCollectionsText : "[]" + NetworkRuleCollections : Count = 0 + NetworkRuleCollectionsText : "[]" + PrivateRange : null + PrivateRangeText : "null" + ProvisioningState : "Succeeded" + ResourceGroupName : "ps774" + ResourceGuid : null + Sku : {Microsoft.Azure.Commands.Network.Models.PSAzureFirewallSku} + Tag : null + TagsTable : null + ThreatIntelMode : "Alert" + ThreatIntelWhitelist : {Microsoft.Azure.Commands.Network.Models.PSAzureFirewallThreatIntelWhitelist} + ThreatIntelWhitelistText : "{\r\n \"FQDNs\": null,\r\n \"IpAddresses\": null\r\n}" + Type : "Microsoft.Network/azureFirewalls" + VirtualHub : null + Zones : Count = 0 + privateRange : null +``` + +In this example, Enable Dnstap Logging is enabled on the Firewall. + + +#### New-AzFirewallApplicationRule + +#### SYNOPSIS +Creates a Firewall Application Rule. + +#### SYNTAX + ++ TargetFqdn (Default) +```powershell +New-AzFirewallApplicationRule -Name [-Description ] [-SourceAddress ] + [-SourceIpGroup ] -TargetFqdn -Protocol + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ FqdnTag +```powershell +New-AzFirewallApplicationRule -Name [-Description ] [-SourceAddress ] + [-SourceIpGroup ] -FqdnTag [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Create a rule to allow all HTTPS traffic from 10.0.0.0 +```powershell +New-AzFirewallApplicationRule -Name "https-rule" -Protocol "https:443" -TargetFqdn "*" -SourceAddress "10.0.0.0" +``` + +This example creates a rule which will allow all HTTPS traffic on port 443 from 10.0.0.0. + ++ Example 2: Create a rule to allow WindowsUpdate for 10.0.0.0/24 subnet +```powershell +New-AzFirewallApplicationRule -Name "windows-update-rule" -FqdnTag WindowsUpdate -SourceAddress "10.0.0.0/24" +``` + +This example creates a rule which will allow traffic for Windows Updates for 10.0.0.0/24 domain. + + +#### New-AzFirewallApplicationRuleCollection + +#### SYNOPSIS +Creates a collection of Firewall application rules. + +#### SYNTAX + +```powershell +New-AzFirewallApplicationRuleCollection -Name -Priority + -Rule -ActionType [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Create a collection with one rule +```powershell +$rule1 = New-AzFirewallApplicationRule -Name "httpsRule" -Protocol "https:443" -TargetFqdn "*" -SourceAddress "10.0.0.0" +New-AzFirewallApplicationRuleCollection -Name "MyAppRuleCollection" -Priority 1000 -Rule $rule1 -ActionType "Allow" +``` + +This example creates a collection with one rule. All traffic that matches the conditions identified in $rule1 will be allowed. +The first rule is for all HTTPS traffic on port 443 from 10.0.0.0. +If there is another application rule collection with higher priority (smaller number) which also matches traffic identified in $rule1, +the action of the rule collection with higher priority will take in effect instead. + ++ Example 2: Add a rule to a rule collection +```powershell +$rule1 = New-AzFirewallApplicationRule -Name R1 -Protocol "http:80","https:443" -TargetFqdn "*google.com", "*microsoft.com" -SourceAddress "10.0.0.0" +$ruleCollection = New-AzFirewallApplicationRuleCollection -Name "MyAppRuleCollection" -Priority 100 -Rule $rule1 -ActionType "Allow" + +$rule2 = New-AzFirewallApplicationRule -Name R2 -Protocol "http:80","https:443" -TargetFqdn "*google.com", "*microsoft.com" +$ruleCollection.AddRule($rule2) +``` + +This example creates a new application rule collection with one rule and then adds a second rule to the rule collection using method +AddRule on the rule collection object. Each rule name in a given rule collection must have a unique name and is case insensitive. + ++ Example 3: Get a rule from a rule collection +```powershell +$rule1 = New-AzFirewallApplicationRule -Name R1 -Protocol "http:80","https:443" -TargetFqdn "*google.com", "*microsoft.com" -SourceAddress "10.0.0.0" +$ruleCollection = New-AzFirewallApplicationRuleCollection -Name "MyAppRuleCollection" -Priority 100 -Rule $rule1 -ActionType "Allow" +$getRule=$ruleCollection.GetRuleByName("r1") +``` + +This example creates a new application rule collection with one rule and then gets the rule by name, calling method GetRuleByName on the +rule collection object. The rule name for method GetRuleByName is case-insensitive. + ++ Example 4: Remove a rule from a rule collection +```powershell +$rule1 = New-AzFirewallApplicationRule -Name R1 -Protocol "http:80","https:443" -TargetFqdn "*google.com", "*microsoft.com" -SourceAddress "10.0.0.0" +$rule2 = New-AzFirewallApplicationRule -Name R2 -Protocol "http:80","https:443" -TargetFqdn "*google.com", "*microsoft.com" +$ruleCollection = New-AzFirewallApplicationRuleCollection -Name "MyAppRuleCollection" -Priority 100 -Rule $rule1, $rule1 -ActionType "Allow" +$ruleCollection.RemoveRuleByName("r1") +``` + +This example creates a new application rule collection with two rules and then removes the first rule from the rule collection by calling method +RemoveRuleByName on the rule collection object. The rule name for method RemoveRuleByName is case-insensitive. + + +#### Get-AzFirewallFqdnTag + +#### SYNOPSIS +Gets the available Azure Firewall Fqdn Tags. + +#### SYNTAX + +```powershell +Get-AzFirewallFqdnTag [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Retrieve all available FQDN Tags +```powershell +Get-AzFirewallFqdnTag +``` + +This example retrieves all available FQDN Tags. + ++ Example 2: Use first available FQDN Tag in an Application Rule +```powershell +$fqdnTags = Get-AzFirewallFqdnTag +New-AzFirewallApplicationRule -Name AR -SourceAddress * -FqdnTag $fqdnTags[0].FqdnTagName +``` + +This example creates a Firewall Application Rule using the first available FQDN Tag + + +#### New-AzFirewallHubIpAddress + +#### SYNOPSIS +Ip addresses associated to the firewall on virtual hub + +#### SYNTAX + +```powershell +New-AzFirewallHubIpAddress [-PrivateIPAddress ] [-PublicIP ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$fwpips = New-AzFirewallHubPublicIpAddress -Count 2 +New-AzFirewallHubIpAddress -PublicIP $fwpips +``` + +This example creates a Hub Ip address object with a count of 2 public IPs. The HubIPAddress object is associated to the firewall on the virtual hub. + + +#### New-AzFirewallHubPublicIpAddress + +#### SYNOPSIS +Public Ip associated to the firewall on virtual hub + +#### SYNTAX + +```powershell +New-AzFirewallHubPublicIpAddress [-Count ] [-Address ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzFirewallHubPublicIpAddress -Count 2 +``` + +This will create 2 public ips on the firewall attached to the virtual hub. This will create the ip address in the backend.We cannot provide the ipaddresses explicitly for a new firewall. + ++ Example 2 +```powershell +$publicIp1 = New-AzFirewallPublicIpAddress -Address 10.2.3.4 +$publicIp2 = New-AzFirewallPublicIpAddress -Address 20.56.37.46 +New-AzFirewallHubPublicIpAddress -Count 3 -Address $publicIp1, $publicIp2 +``` + +This will create 1 new public ip on the firewall by retain $publicIp1, $publicIp2 which are already exist on the firewall. + + +#### Get-AzFirewallLearnedIpPrefix + +#### SYNOPSIS +Gets firewall auto learned ip prefixes. + +#### SYNTAX + +```powershell +Get-AzFirewallLearnedIpPrefix [-Name ] [-ResourceGroupName ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Retrieve a Firewall auto learned ip prefixes by its name + +```powershell +Get-AzFirewallLearnedIpPrefix -ResourceGroupName rgName -Name azFw +``` + +```output +IpPrefixes : [ "10.101.0.0/16", "10.102.0.0/16" ] +``` + + +#### New-AzFirewallNatRule + +#### SYNOPSIS +Creates a Firewall NAT Rule. + +#### SYNTAX + +```powershell +New-AzFirewallNatRule -Name [-Description ] [-SourceAddress ] + [-SourceIpGroup ] -DestinationAddress -DestinationPort -Protocol + [-TranslatedAddress ] [-TranslatedFqdn ] -TranslatedPort + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Create a rule to DNAT all TCP traffic from 10.0.0.0/24 with destination 10.1.2.3:80 to destination 10.4.5.6:8080 +```powershell +New-AzFirewallNatRule -Name "dnat-rule" -Protocol "TCP" -SourceAddress "10.0.0.0/24" -DestinationAddress "10.1.2.3" -DestinationPort "80" -TranslatedAddress "10.4.5.6" -TranslatedPort "8080" +``` + +This example creates a rule which will DNAT all traffic originating in 10.0.0.0/24 with destination 10.1.2.3:80 to 10.4.5.6:8080 + ++ Example 2 + +Creates a Firewall NAT Rule. (autogenerated) + + + + +```powershell +New-AzFirewallNatRule -DestinationAddress '10.0.0.1' -DestinationPort '443' -Name 'dnat-rule' -Protocol Any -SourceIpGroup -TranslatedAddress '10.0.0.2' -TranslatedPort '8080' +``` + + +#### New-AzFirewallNatRuleCollection + +#### SYNOPSIS +Creates a collection of Firewall NAT rules. + +#### SYNTAX + +```powershell +New-AzFirewallNatRuleCollection -Name -Priority -Rule + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Create a collection with one rule +```powershell +$rule1 = New-AzFirewallNatRule -Name "natRule" -Protocol "TCP" -SourceAddress "*" -DestinationAddress "10.0.0.1" -DestinationPort "80" -TranslatedAddress "10.0.0.2" -TranslatedPort "8080" +New-AzFirewallNatRuleCollection -Name "MyNatRuleCollection" -Priority 1000 -Rule $rule1 +``` + +This example creates a collection with one rule. All traffic that matches the conditions identified in $rule1 will be DNAT'ed to translated address and port. + ++ Example 2: Add a rule to a rule collection +```powershell +$rule1 = New-AzFirewallNatRule -Name R1 -Protocol "UDP","TCP" -SourceAddress "*" -DestinationAddress "10.0.0.1" -DestinationPort "80" -TranslatedAddress "10.0.0.2" -TranslatedPort "8080" +$ruleCollection = New-AzFirewallNatRuleCollection -Name "MyNatRuleCollection" -Priority 100 -Rule $rule1 + +$rule2 = New-AzFirewallNatRule -Name R2 -Protocol "TCP" -SourceAddress "*" -DestinationAddress "10.0.0.1" -DestinationPort "443" -TranslatedAddress "10.0.0.2" -TranslatedPort "8443" +$ruleCollection.AddRule($rule2) +``` + +This example creates a new NAT rule collection with one rule and then adds a second rule to the rule collection using method +AddRule on the rule collection object. Each rule name in a given rule collection must have an unique name and is case insensitive. + ++ Example 3: Get a rule from a rule collection +```powershell +$rule1 = New-AzFirewallNatRule -Name R1 -Protocol "TCP" -SourceAddress "10.0.0.0/24" -DestinationAddress "10.0.1.0/24" -DestinationPort "443" -TranslatedAddress "10.0.0.2" -TranslatedPort "8443" +$ruleCollection = New-AzFirewallNatRuleCollection -Name "MyNatRuleCollection" -Priority 100 -Rule $rule1 + +$rule=$ruleCollection.GetRuleByName("r1") +``` + +This example creates a new NAT rule collection with one rule and then gets the rule by name, calling method GetRuleByName on the +rule collection object. The rule name for method GetRuleByName is case-insensitive. + ++ Example 4: Remove a rule from a rule collection +```powershell +$rule1 = New-AzFirewallNatRule -Name R1 -Protocol "UDP","TCP" -SourceAddress "*" -DestinationAddress "10.0.0.1" -DestinationPort "80" -TranslatedAddress "10.0.0.2" -TranslatedPort "8080" +$rule2 = New-AzFirewallNatRule -Name R2 -Protocol "TCP" -SourceAddress "*" -DestinationAddress "10.0.0.1" -DestinationPort "443" -TranslatedAddress "10.0.0.2" -TranslatedPort "8443" +$ruleCollection = New-AzFirewallNatRuleCollection -Name "MyNatRuleCollection" -Priority 100 -Rule $rule1, $rule2 +$ruleCollection.RemoveRuleByName("r1") +``` + +This example creates a new NAT rule collection with two rules and then removes the first rule from the rule collection by calling method +RemoveRuleByName on the rule collection object. The rule name for method RemoveRuleByName is case-insensitive. + + +#### New-AzFirewallNetworkRule + +#### SYNOPSIS +Creates a Firewall Network Rule. + +#### SYNTAX + +```powershell +New-AzFirewallNetworkRule -Name [-Description ] [-SourceAddress ] + [-SourceIpGroup ] [-DestinationAddress ] [-DestinationIpGroup ] + [-DestinationFqdn ] -DestinationPort -Protocol + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Create a rule for all TCP traffic +```powershell +$rule = New-AzFirewallNetworkRule -Name "all-tcp-traffic" -Description "Rule for all TCP traffic" -Protocol TCP -SourceAddress "*" -DestinationAddress "*" -DestinationPort "*" +``` + +This example creates a rule for all TCP traffic. User enforces whether traffic will be allowed or denied for a rule based on the rule collection it is associated with. + ++ Example 2: Create a rule for all TCP traffic from 10.0.0.0 to 60.1.5.0:4040 +```powershell +$rule = New-AzFirewallNetworkRule -Name "partial-tcp-rule" -Description "Rule for all TCP traffic from 10.0.0.0 to 60.1.5.0:4040" -Protocol TCP -SourceAddress "10.0.0.0" -DestinationAddress "60.1.5.0" -DestinationPort "4040" +``` + +This example creates a rule for all TCP traffic from 10.0.0.0 to 60.1.5.0:4040. User enforces whether traffic will be allowed or denied for a rule based on the rule collection it is associated with. + ++ Example 3: Create a rule for all TCP and ICMP traffic from any source to 10.0.0.0/16 +```powershell +$rule = New-AzFirewallNetworkRule -Name "tcp-and-icmp-rule" -Description "Rule for all TCP and ICMP traffic from any source to 10.0.0.0/16" -Protocol TCP,ICMP -SourceAddress * -DestinationAddress "10.0.0.0/16" -DestinationPort * +``` + +This example creates a rule for all TCP traffic from any source to 10.0.0.0/16. User enforces whether traffic will be allowed or denied for a rule based on the rule collection it is associated with. + + +#### New-AzFirewallNetworkRuleCollection + +#### SYNOPSIS +Creates a Azure Firewall Network Collection of Network rules. + +#### SYNTAX + +```powershell +New-AzFirewallNetworkRuleCollection -Name -Priority -Rule + -ActionType [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Create a network collection with two rules +```powershell +$rule1 = New-AzFirewallNetworkRule -Name "all-udp-traffic" -Description "Rule for all UDP traffic" -Protocol UDP -SourceAddress "*" -DestinationAddress "*" -DestinationPort "*" +$rule2 = New-AzFirewallNetworkRule -Name "partial-tcp-rule" -Description "Rule for all TCP traffic from 10.0.0.0 to 60.1.5.0:4040" -Protocol TCP -SourceAddress "10.0.0.0" -DestinationAddress "60.1.5.0" -DestinationPort "4040" +New-AzFirewallNetworkRuleCollection -Name RC1 -Priority 100 -Rule $rule1, $rule2 -ActionType "Allow" +``` + +This example creates a collection which will allow all traffic that matches either of the two rules. +The first rule is for all UDP traffic. +The second rule is for TCP traffic from 10.0.0.0 to 60.1.5.0:4040. +If there is another Network rule collection with higher priority (smaller number) which also matches traffic identified in $rule1 or $rule2, +the action of the rule collection with higher priority will take in effect instead. + ++ Example 2: Add a rule to a rule collection +```powershell +$rule1 = New-AzFirewallNetworkRule -Name "all-udp-traffic" -Description "Rule for all UDP traffic" -Protocol UDP -SourceAddress "*" -DestinationAddress "*" -DestinationPort "*" +$ruleCollection = New-AzFirewallNetworkRuleCollection -Name "MyNetworkRuleCollection" -Priority 100 -Rule $rule1 -ActionType "Allow" + +$rule2 = New-AzFirewallNetworkRule -Name "partial-tcp-rule" -Description "Rule for all TCP traffic from 10.0.0.0 to 60.1.5.0:4040" -Protocol TCP -SourceAddress "10.0.0.0" -DestinationAddress "60.1.5.0" -DestinationPort "4040" +$ruleCollection.AddRule($rule2) +``` + +This example creates a new network rule collection with one rule and then adds a second rule to the rule collection using method +AddRule on the rule collection object. Each rule name in a given rule collection must have a unique name and is case insensitive. + ++ Example 3: Get a rule from a rule collection +```powershell +$rule1 = New-AzFirewallNetworkRule -Name "all-udp-traffic" -Description "Rule for all UDP traffic" -Protocol UDP -SourceAddress "*" -DestinationAddress "*" -DestinationPort "*" +$ruleCollection = New-AzFirewallNetworkRuleCollection -Name "MyNetworkRuleCollection" -Priority 100 -Rule $rule1 -ActionType "Allow" +$getRule=$ruleCollection.GetRuleByName("ALL-UDP-traffic") +``` + +This example creates a new network rule collection with one rule and then gets the rule by name, calling method GetRuleByName on the +rule collection object. The rule name for method GetRuleByName is case-insensitive. + ++ Example 4: Remove a rule from a rule collection +```powershell +$rule1 = New-AzFirewallNetworkRule -Name "all-udp-traffic" -Description "Rule for all UDP traffic" -Protocol UDP -SourceAddress "*" -DestinationAddress "*" -DestinationPort "*" +$rule2 = New-AzFirewallNetworkRule -Name "partial-tcp-rule" -Description "Rule for all TCP traffic from 10.0.0.0 to 60.1.5.0:4040" -Protocol TCP -SourceAddress "10.0.0.0" -DestinationAddress "60.1.5.0" -DestinationPort "4040" +$ruleCollection = New-AzFirewallNetworkRuleCollection -Name "MyNetworkRuleCollection" -Priority 100 -Rule $rule1, $rule2 -ActionType "Allow" +$ruleCollection.RemoveRuleByName("ALL-udp-traffic") +``` + +This example creates a new network rule collection with two rules and then removes the first rule from the rule collection by calling method +RemoveRuleByName on the rule collection object. The rule name for method RemoveRuleByName is case-insensitive. + + +#### Invoke-AzFirewallPacketCapture + +#### SYNOPSIS +Invoke Packet Capture on Azure Firewall + +#### SYNTAX + +```powershell +Invoke-AzFirewallPacketCapture -AzureFirewall + -Parameter [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Invokes a packet capture request on Azure Firewall +``` +$azureFirewall = New-AzFirewall -Name $azureFirewallName -ResourceGroupName $rgname -Location $location + +$azFirewall = Get-AzFirewall -Name $azureFirewallName -ResourceGroupName $rgname + +#### Create a filter rules +$filter1 = New-AzFirewallPacketCaptureRule -Source "10.0.0.2","192.123.12.1" -Destination "172.32.1.2" -DestinationPort "80","443" +$filter2 = New-AzFirewallPacketCaptureRule -Source "10.0.0.5" -Destination "172.20.10.2" -DestinationPort "80","443" + +#### Create the firewall packet capture parameters +$Params = New-AzFirewallPacketCaptureParameter -DurationInSeconds 300 -NumberOfPacketsToCapture 5000 -SASUrl "ValidSasUrl" -Filename "AzFwPacketCapture" -Flag "Syn","Ack" -Protocol "Any" -Filter $Filter1, $Filter2 + +#### Invoke a firewall packet capture +Invoke-AzFirewallPacketCapture -AzureFirewall $azureFirewall -Parameter $Params +``` + +This example invokes packet capture request on azure firewall with the parameters mentioned. + + +#### Invoke-AzFirewallPacketCaptureOperation + +#### SYNOPSIS +Invokes a Start/Status/Stop packet capture operation request on Azure Firewall + +#### SYNTAX + +```powershell +Invoke-AzFirewallPacketCaptureOperation -AzureFirewall + -Parameter [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Invokes a start packet capture operation on Azure Firewall +``` +$azureFirewall = New-AzFirewall -Name $azureFirewallName -ResourceGroupName $rgname -Location $location + +$azFirewall = Get-AzFirewall -Name $azureFirewallName -ResourceGroupName $rgname + +#### Create a filter rules +$filter1 = New-AzFirewallPacketCaptureRule -Source "10.0.0.2","192.123.12.1" -Destination "172.32.1.2" -DestinationPort "80","443" +$filter2 = New-AzFirewallPacketCaptureRule -Source "10.0.0.5" -Destination "172.20.10.2" -DestinationPort "80","443" + +#### Create the firewall packet capture parameters +$Params = New-AzFirewallPacketCaptureParameter -DurationInSeconds 1200 -NumberOfPacketsToCapture 20000 -SASUrl $sasurl -Filename "AzFwPowershellPacketCapture" -Flag "Syn","Ack" -Protocol "Any" -Filter $Filter1, $Filter2 -Operation "Start" + +#### Invoke a firewall packet capture +Invoke-AzFirewallPacketCaptureOperation -AzureFirewall $azureFirewall -Parameter $Params +``` + +This example invokes a start packet capture request on azure firewall with the parameters mentioned. + ++ Example 2: Invokes a check status packet capture operation on Azure Firewall +``` +$azureFirewall = New-AzFirewall -Name $azureFirewallName -ResourceGroupName $rgname -Location $location + +$azFirewall = Get-AzFirewall -Name $azureFirewallName -ResourceGroupName $rgname + +#### Create the firewall packet capture parameters +$Params = New-AzFirewallPacketCaptureParameter -Operation "Status" + +#### Invoke a firewall packet capture +Invoke-AzFirewallPacketCaptureOperation -AzureFirewall $azureFirewall -Parameter $Params +``` + +This example invokes a check status packet capture request on azure firewall with the parameters mentioned. + ++ Example 3: Invokes a stop packet capture operation on Azure Firewall +``` +$azureFirewall = New-AzFirewall -Name $azureFirewallName -ResourceGroupName $rgname -Location $location + +$azFirewall = Get-AzFirewall -Name $azureFirewallName -ResourceGroupName $rgname + +#### Create the firewall packet capture parameters +$Params = New-AzFirewallPacketCaptureParameter -Operation "Stop" + +#### Invoke a firewall packet capture +Invoke-AzFirewallPacketCaptureOperation -AzureFirewall $azureFirewall -Parameter $Params +``` + +This example invokes a stop packet capture request on azure firewall with the parameters mentioned. + + +#### New-AzFirewallPacketCaptureParameter + +#### SYNOPSIS +Create a Packet Capture Parameter for Azure Firewall + +#### SYNTAX + +```powershell +New-AzFirewallPacketCaptureParameter [-DurationInSeconds ] [-NumberOfPacketsToCapture ] + [-SasUrl ] [-FileName ] [-Protocol ] [-Flag ] + [-Filter ] -Operation [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Configuring Azure Firewall Packet Capture with Advanced Rules and Parameters for start operation +```powershell +$filter1 = New-AzFirewallPacketCaptureRule -Source "10.0.0.2","192.123.12.1" -Destination "172.32.1.2" -DestinationPort "80","443" +$filter2 = New-AzFirewallPacketCaptureRule -Source "10.0.0.5" -Destination "172.20.10.2" -DestinationPort "80","443" +#### Create the firewall packet capture parameters +$Params = New-AzFirewallPacketCaptureParameter -DurationInSeconds 300 -NumberOfPacketsToCapture 5000 -SASUrl "ValidSasUrl" -Filename "AzFwPacketCapture" -Flag "Syn","Ack" -Protocol "Any" -Filter $Filter1, $Filter2 -Operation "Start" +``` + +This creates the parameters used for starting a packet capture on the azure firewall + ++ Example 2: Configuring Azure Firewall Packet Capture for status operation +```powershell +#### Create the firewall packet capture parameters to check Status operation +$Params = New-AzFirewallPacketCaptureParameter -Operation "Status" +``` + +This creates the parameters used for getting the status of a packet capture operation on the azure firewall + ++ Example 3: Configuring Azure Firewall Packet Capture for stop operation +```powershell +#### Create the firewall packet capture parameters to check Status operation +$Params = New-AzFirewallPacketCaptureParameter -Operation "Stop" +``` + +This creates the parameters used for stopping a packet capture operation on the azure firewall + + +#### New-AzFirewallPacketCaptureRule + +#### SYNOPSIS +Creates a Packet Capture Rule for Azure Firewall + +#### SYNTAX + +```powershell +New-AzFirewallPacketCaptureRule -Source -Destination [-DestinationPort ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Create a new Firewall Packet Capture Rule +```powershell +New-AzFirewallPacketCaptureRule -Source "10.0.0.2","192.123.12.1" -Destination "172.32.1.2" -DestinationPort "80","443" +``` + + +#### New-AzFirewallPolicy + +#### SYNOPSIS +Creates a new Azure Firewall Policy + +#### SYNTAX + +```powershell +New-AzFirewallPolicy -Name -ResourceGroupName -Location [-ThreatIntelMode ] + [-ThreatIntelWhitelist ] [-BasePolicy ] + [-DnsSetting ] [-SqlSetting ] + [-Tag ] [-Force] [-AsJob] [-IntrusionDetection ] + [-TransportSecurityName ] [-TransportSecurityKeyVaultSecretId ] [-SkuTier ] + [-UserAssignedIdentityId ] [-Identity ] [-PrivateRange ] + [-ExplicitProxy ] [-Snat ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Create an empty policy +```powershell +New-AzFirewallPolicy -Name fp1 -ResourceGroupName TestRg +``` + +This example creates an azure firewall policy + ++ Example 2: Create an empty policy with ThreatIntel Mode +```powershell +New-AzFirewallPolicy -Name fp1 -ResourceGroupName TestRg -ThreatIntelMode "Deny" +``` + +This example creates an azure firewall policy with a threat intel mode + ++ Example 3: Create an empty policy with ThreatIntelWhitelist +```powershell +$threatIntelWhitelist = New-AzFirewallPolicyThreatIntelWhitelist -IpAddress 23.46.72.91,192.79.236.79 -FQDN microsoft.com +New-AzFirewallPolicy -Name fp1 -ResourceGroupName TestRg -ThreatIntelWhitelist $threatIntelWhitelist +``` + +This example creates an azure firewall policy with a threat intel allowlist + ++ Example 4: Create policy with intrusion detection, identity and transport security +```powershell +$bypass = New-AzFirewallPolicyIntrusionDetectionBypassTraffic -Name "bypass-setting" -Protocol "TCP" -DestinationPort "80" -SourceAddress "10.0.0.0" -DestinationAddress "*" +$signatureOverride = New-AzFirewallPolicyIntrusionDetectionSignatureOverride -Id "123456798" -Mode "Deny" +$intrusionDetection = New-AzFirewallPolicyIntrusionDetection -Mode "Alert" -SignatureOverride $signatureOverride -BypassTraffic $bypass +$userAssignedIdentity = '/subscriptions/9e223dbe-3399-4e19-88eb-0975f02ac87f/resourcegroups/TestRg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/user-assign-identity' +New-AzFirewallPolicy -Name fp1 -Location "westus2" -ResourceGroupName TestRg -SkuTier "Premium" -IntrusionDetection $intrusionDetection -TransportSecurityName tsName -TransportSecurityKeyVaultSecretId "https://.vault.azure.net/secrets/cacert" -UserAssignedIdentityId $userAssignedIdentity +``` + +This example creates an azure firewall policy with a intrusion detection in mode alert, user assigned identity and transport security + ++ Example 5: Create an empty Firewall Policy with customized private range setup +```powershell +New-AzFirewallPolicy -Name fp1 -ResourceGroupName TestRg -PrivateRange @("99.99.99.0/24", "66.66.0.0/16") +``` + +This example creates a Firewall that treats "99.99.99.0/24" and "66.66.0.0/16" as private ip ranges and won't snat traffic to those addresses + ++ Example 6: Create an empty Firewall Policy with Explicit Proxy Settings +```powershell +$exProxy = New-AzFirewallPolicyExplicitProxy -EnableExplicitProxy -HttpPort 100 -HttpsPort 101 -EnablePacFile -PacFilePort 130 -PacFile "sampleurlfortesting.blob.core.windowsnet/nothing" +New-AzFirewallPolicy -Name fp1 -ResourceGroupName TestRg -ExplicitProxy $exProxy +``` + +```output +BasePolicy : null + DnsSettings : null + Etag : null + ExplicitProxy + EnableExplicitProxy : true + EnablePacFile : true + HttpPort : 100 + HttpsPort : 101 + PacFile : "sampleurlfortesting.blob.core.windowsnet/nothing" + PacFilePort : 130 + Id : null + Identity : null + IntrusionDetection : null + Location : "westus2" + Name : "fp1" + PrivateRange : null + PrivateRangeText : "[]" + ProvisioningState : null + ResourceGroupName : "TestRg" + ResourceGuid : null + RuleCollectionGroups : null + Sku + Tier : "Standard" + Snat + AutoLearnPrivateRanges : null + PrivateRanges : null + SqlSetting : null + Tag : null + TagsTable : null + ThreatIntelMode : "Alert" + ThreatIntelWhitelist : null + TransportSecurity : null + Type : null +``` + +This example creates a firewall policy with explicit proxy settings + + +#### Deploy-AzFirewallPolicy + +#### SYNOPSIS +Deploys the Azure Firewall Policy draft and all Rule Collection Group drafts associated with this Azure Firewall Policy. + +#### SYNTAX + ++ DeployByNameParameterSet (Default) +```powershell +Deploy-AzFirewallPolicy -Name -ResourceGroupName [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ DeployByResourceIdParameterSet +```powershell +Deploy-AzFirewallPolicy [-AsJob] -ResourceId [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ DeployByInputObjectParameterSet +```powershell +Deploy-AzFirewallPolicy [-AsJob] -InputObject + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Deploy-AzFirewallPolicy -Name firewallPolicy -ResourceGroupName TestRg +``` + +This example deploys the firewall policy draft to the firewallPolicy. + + +#### Get-AzFirewallPolicy + +#### SYNOPSIS +Gets a Azure Firewall Policy + +#### SYNTAX + ++ GetByNameParameterSet (Default) +```powershell +Get-AzFirewallPolicy -Name -ResourceGroupName [-DefaultProfile ] + [] +``` + ++ GetByResourceIdParameterSet +```powershell +Get-AzFirewallPolicy -ResourceId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzFirewallPolicy -Name firewallPolicy -ResourceGroupName TestRg +``` + +This example gets a firewall policy named "firewallPolicy" in the resource group "TestRg" + + +#### Remove-AzFirewallPolicy + +#### SYNOPSIS +Removes an Azure Firewall Policy + +#### SYNTAX + ++ RemoveByNameParameterSet (Default) +```powershell +Remove-AzFirewallPolicy -Name -ResourceGroupName [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ RemoveByResourceIdParameterSet +```powershell +Remove-AzFirewallPolicy [-Force] [-PassThru] [-AsJob] -ResourceId + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ RemoveByInputObjectParameterSet +```powershell +Remove-AzFirewallPolicy [-Force] [-PassThru] [-AsJob] -InputObject + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzFirewallPolicy -Name firewallpolicy -ResourceGroupName TestRg +``` + +This example removes the firewall policy named "firewallpolicy" in the resourcegroup "TestRg" + ++ Example 2 +```powershell +Remove-AzFirewallPolicy -ResourceId "/subscriptions/12345/resourceGroups/TestRg/providers/Microsoft.Network/firewallpolicies/firewallPolicy1" +``` + +This example removes the firewall policy by the Id. + ++ Example 3 +```powershell +Remove-AzFirewallPolicy -InputObject $fp +``` + +This example removes the firewall policy $fp + + +#### Set-AzFirewallPolicy + +#### SYNOPSIS +Saves a modified azure firewall policy + +#### SYNTAX + ++ SetByNameParameterSet (Default) +```powershell +Set-AzFirewallPolicy -Name -ResourceGroupName [-AsJob] [-ThreatIntelMode ] + [-ThreatIntelWhitelist ] [-BasePolicy ] + [-DnsSetting ] [-SqlSetting ] + -Location [-Tag ] [-IntrusionDetection ] + [-TransportSecurityName ] [-TransportSecurityKeyVaultSecretId ] [-SkuTier ] + [-UserAssignedIdentityId ] [-Identity ] [-PrivateRange ] + [-ExplicitProxy ] [-Snat ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByInputObjectParameterSet +```powershell +Set-AzFirewallPolicy [-Name ] -InputObject [-AsJob] [-ThreatIntelMode ] + [-ThreatIntelWhitelist ] [-BasePolicy ] + [-DnsSetting ] [-SqlSetting ] + [-Location ] [-Tag ] [-IntrusionDetection ] + [-TransportSecurityName ] [-TransportSecurityKeyVaultSecretId ] [-SkuTier ] + [-UserAssignedIdentityId ] [-Identity ] [-PrivateRange ] + [-ExplicitProxy ] [-Snat ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByResourceIdParameterSet +```powershell +Set-AzFirewallPolicy [-AsJob] -ResourceId [-ThreatIntelMode ] + [-ThreatIntelWhitelist ] [-BasePolicy ] + [-DnsSetting ] [-SqlSetting ] + -Location [-Tag ] [-IntrusionDetection ] + [-TransportSecurityName ] [-TransportSecurityKeyVaultSecretId ] [-SkuTier ] + [-UserAssignedIdentityId ] [-Identity ] [-PrivateRange ] + [-ExplicitProxy ] [-Snat ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Set-AzFirewallPolicy -InputObject $fp +``` + +This example sets the firewall policy with the new firewall policy value + ++ Example 2 +```powershell +Set-AzFirewallPolicy -Name firewallPolicy1 -ResourceGroupName TestRg -Location westcentralus -ThreatIntelMode "Alert" +``` + +This example sets the firewall policy with the new threat intel mode + ++ Example 3 +```powershell +$threatIntelWhitelist = New-AzFirewallPolicyThreatIntelWhitelist -IpAddress 23.46.72.91,192.79.236.79 -FQDN microsoft.com +Set-AzFirewallPolicy -Name firewallPolicy1 -ResourceGroupName TestRg -Location westcentralus -ThreatIntelWhitelist $threatIntelWhitelist +``` + +This example sets the firewall policy with the new threat intel allowlist + ++ Example 4 +```powershell +$exProxy = New-AzFirewallPolicyExplicitProxy -EnableExplicitProxy -HttpPort 100 -HttpsPort 101 -EnablePacFile -PacFilePort 130 -PacFile "sampleurlfortesting.blob.core.windowsnet/nothing" +Set-AzFirewallPolicy -Name firewallPolicy1 -ResourceGroupName TestRg -Location westcentralus -ExplicitProxy $exProxy +``` + +```output +BasePolicy : null + DnsSettings : null + Etag : null + ExplicitProxy + EnableExplicitProxy : true + EnablePacFile : true + HttpPort : 100 + HttpsPort : 101 + PacFile : "sampleurlfortesting.blob.core.windowsnet/nothing" + PacFilePort : 130 + Id : null + Identity : null + IntrusionDetection : null + Location : "westcentralus" + Name : "firewallPolicy1" + PrivateRange : null + PrivateRangeText : "[]" + ProvisioningState : null + ResourceGroupName : "TestRg" + ResourceGuid : null + RuleCollectionGroups : null + Sku + Tier : "Standard" + Snat + AutoLearnPrivateRanges : null + PrivateRanges : null + SqlSetting : null + Tag : null + TagsTable : null + ThreatIntelMode : "Alert" + ThreatIntelWhitelist : null + TransportSecurity : null + Type : null +``` + +This example sets the firewall policy with the explicit proxy settings + + +#### New-AzFirewallPolicyApplicationRule + +#### SYNOPSIS +Create a new Azure Firewall Policy Application Rule + +#### SYNTAX + ++ SourceAddressAndTargetFqdn (Default) +```powershell +New-AzFirewallPolicyApplicationRule -Name [-Description ] -SourceAddress + -TargetFqdn -Protocol [-TerminateTLS] [-DefaultProfile ] + [] +``` + ++ SourceAddressAndFqdnTag +```powershell +New-AzFirewallPolicyApplicationRule -Name [-Description ] -SourceAddress + -FqdnTag [-TerminateTLS] [-DefaultProfile ] + [] +``` + ++ SourceAddressAndWebCategory +```powershell +New-AzFirewallPolicyApplicationRule -Name [-Description ] -SourceAddress + -WebCategory -Protocol [-TerminateTLS] [-DefaultProfile ] + [] +``` + ++ SourceAddressAndTargetUrl +```powershell +New-AzFirewallPolicyApplicationRule -Name [-Description ] -SourceAddress + -Protocol -TargetUrl [-TerminateTLS] [-DefaultProfile ] + [] +``` + ++ SourceIpGroupAndTargetFqdn +```powershell +New-AzFirewallPolicyApplicationRule -Name [-Description ] -SourceIpGroup + -TargetFqdn -Protocol [-TerminateTLS] [-DefaultProfile ] + [] +``` + ++ SourceIpGroupAndFqdnTag +```powershell +New-AzFirewallPolicyApplicationRule -Name [-Description ] -SourceIpGroup + -FqdnTag [-TerminateTLS] [-DefaultProfile ] + [] +``` + ++ SourceIpGroupAndWebCategory +```powershell +New-AzFirewallPolicyApplicationRule -Name [-Description ] -SourceIpGroup + -FqdnTag -WebCategory -Protocol [-TerminateTLS] + [-DefaultProfile ] [] +``` + ++ SourceIpGroupAndTargetUrl +```powershell +New-AzFirewallPolicyApplicationRule -Name [-Description ] -SourceIpGroup + -Protocol -TargetUrl [-TerminateTLS] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzFirewallPolicyApplicationRule -Name AR1 -SourceAddress "192.168.0.0/16" -Protocol "http:80","https:443" -TargetFqdn "*.ro", "*.com" +``` + +This example creates an application rule with the source address, protocol and the target fqdns. + ++ Example 2 +```powershell +New-AzFirewallPolicyApplicationRule -Name AR1 -SourceAddress "192.168.0.0/16" -Protocol "http:80","https:443" -WebCategory "DatingAndPersonals", "Tasteless" +``` + +This example creates an application rule with the source address, protocol and web categories. + + +#### New-AzFirewallPolicyApplicationRuleCustomHttpHeader + +#### SYNOPSIS +Create a new Azure Firewall Policy Application Rule Custom HTTP Header + +#### SYNTAX + +```powershell +New-AzFirewallPolicyApplicationRuleCustomHttpHeader -HeaderName -HeaderValue + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$appRule = New-AzFirewallPolicyApplicationRule -Name "appRule" -SourceAddress "192.168.0.0/16" -TargetFqdn "*.contoso.com" -Protocol "https:443" + +$headerToInsert = New-AzFirewallPolicyApplicationRuleCustomHttpHeader -HeaderName "Restrict-Access-To-Tenants" -HeaderValue "contoso.com,fabrikam.onmicrosoft.com" + +$appRule.AddCustomHttpHeaderToInsert($headerToInsert) +``` + +This example creates an application rule and a custom HTTP header, then adds the header to the rule. + + +#### New-AzFirewallPolicyDnsSetting + +#### SYNOPSIS +Creates a new DNS Setting for Azure Firewall Policy + +#### SYNTAX + +```powershell +New-AzFirewallPolicyDnsSetting [-EnableProxy] [-Server ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1. Create an empty policy +```powershell +New-AzFirewallPolicyDnsSetting -EnableProxy +``` + +This example creates a dns Setting object with setting enabling dns proxy. + ++ Example 2. Create an empty policy with ThreatIntel Mode +```powershell +$dnsServers = @("10.10.10.1", "20.20.20.2") +New-AzFirewallPolicyDnsSetting -EnableProxy -Server $dnsServers +``` + +This example creates a dns Setting object with setting enabling dns proxy and setting custom dns servers. + + +#### New-AzFirewallPolicyDraft + +#### SYNOPSIS +Creates a new Azure Firewall Policy draft. + +#### SYNTAX + ++ SetByNameParameterSet (Default) +```powershell +New-AzFirewallPolicyDraft -AzureFirewallPolicyName -ResourceGroupName + [-ThreatIntelMode ] [-ThreatIntelWhitelist ] + [-BasePolicy ] [-DnsSetting ] + [-SqlSetting ] [-Tag ] [-Force] [-AsJob] + [-IntrusionDetection ] [-PrivateRange ] + [-ExplicitProxy ] [-Snat ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByParentInputObjectParameterSet +```powershell +New-AzFirewallPolicyDraft -FirewallPolicyObject [-ThreatIntelMode ] + [-ThreatIntelWhitelist ] [-BasePolicy ] + [-DnsSetting ] [-SqlSetting ] + [-Tag ] [-Force] [-AsJob] [-IntrusionDetection ] + [-PrivateRange ] [-ExplicitProxy ] + [-Snat ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Create a policy draft +```powershell +New-AzFirewallPolicyDraft -AzureFirewallPolicyName fp1 -ResourceGroupName TestRg +``` + +This example creates an azure firewall policy draft + ++ Example 2: Create a policy draft with ThreatIntel Mode +```powershell +New-AzFirewallPolicyDraft -AzureFirewallPolicyName fp1 -ResourceGroupName TestRg -ThreatIntelMode "Deny" +``` + +This example creates an azure firewall policy draft with the same properties as the parent policy except for a specified threat intel mode + ++ Example 3: Create a policy draft with ThreatIntelWhitelist +```powershell +$threatIntelWhitelist = New-AzFirewallPolicyThreatIntelWhitelist -IpAddress 23.46.72.91,192.79.236.79 -FQDN microsoft.com +New-AzFirewallPolicyDraft -AzureFirewallPolicyName fp1 -ResourceGroupName TestRg -ThreatIntelWhitelist $threatIntelWhitelist +``` + +This example creates an azure firewall policy draft with the same properties as the parent policy except for a specified ThreatIntelWhitelist + ++ Example 4: Create policy with intrusion detection +```powershell +$bypass = New-AzFirewallPolicyIntrusionDetectionBypassTraffic -Name "bypass-setting" -Protocol "TCP" -DestinationPort "80" -SourceAddress "10.0.0.0" -DestinationAddress "*" +$signatureOverride = New-AzFirewallPolicyIntrusionDetectionSignatureOverride -Id "123456798" -Mode "Deny" +$intrusionDetection = New-AzFirewallPolicyIntrusionDetection -Mode "Alert" -SignatureOverride $signatureOverride -BypassTraffic $bypass +New-AzFirewallPolicyDraft -AzureFirewallPolicyName fp1 -ResourceGroupName TestRg -IntrusionDetection $intrusionDetection +``` + +This example creates an azure firewall policy draft with the same properties as the parent policy except that the intrusion detection in mode is set to alert + ++ Example 5: Create an empty Firewall Policy with customized private range setup +```powershell +New-AzFirewallPolicyDraft -AzureFirewallPolicyName fp1 -ResourceGroupName TestRg -PrivateRange @("99.99.99.0/24", "66.66.0.0/16") +``` + +This example creates a Firewall that treats "99.99.99.0/24" and "66.66.0.0/16" as private ip ranges and won't snat traffic to those addresses. Other properties are set by the parent policy. + ++ Example 6: Create an empty Firewall Policy with Explicit Proxy Settings +```powershell +$exProxy = New-AzFirewallPolicyExplicitProxy -EnableExplicitProxy -HttpPort 100 -HttpsPort 101 -EnablePacFile -PacFilePort 130 -PacFile "sampleurlfortesting.blob.core.windowsnet/nothing" +New-AzFirewallPolicyDraft -AzureFirewallPolicyName fp1 -ResourceGroupName TestRg -ExplicitProxy $exProxy +``` + +```output +BasePolicy : null + DnsSettings : null + Etag : null + ExplicitProxy + EnableExplicitProxy : true + EnablePacFile : true + HttpPort : 100 + HttpsPort : 101 + PacFile : "sampleurlfortesting.blob.core.windowsnet/nothing" + PacFilePort : 130 + Id : null + IntrusionDetection : null + Location : "westus2" + Name : "fp1" + PrivateRange : null + PrivateRangeText : "[]" + ProvisioningState : null + ResourceGroupName : "TestRg" + ResourceGuid : null + RuleCollectionGroups : null + Snat + AutoLearnPrivateRanges : null + PrivateRanges : null + SqlSetting : null + Tag : null + TagsTable : null + ThreatIntelMode : "Alert" + ThreatIntelWhitelist : null +``` + +This example creates a firewall policy with explicit proxy settings + + +#### Get-AzFirewallPolicyDraft + +#### SYNOPSIS +Gets an Azure Firewall Policy Draft. + +#### SYNTAX + ++ GetByNameParameterSet (Default) +```powershell +Get-AzFirewallPolicyDraft -AzureFirewallPolicyName -ResourceGroupName + [-DefaultProfile ] [] +``` + ++ GetByResourceIdParameterSet +```powershell +Get-AzFirewallPolicyDraft -ResourceId [-DefaultProfile ] + [] +``` + ++ GetByParentInputObjectParameterSet +```powershell +Get-AzFirewallPolicyDraft -FirewallPolicyObject + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzFirewallPolicyDraft -AzureFirewallPolicyName firewallPolicy -ResourceGroupName TestRg +``` + +This example gets a firewall policy draft associated with a policy named "firewallPolicy" in the resource group "TestRg". + + +#### Remove-AzFirewallPolicyDraft + +#### SYNOPSIS +Removes an Azure Firewall Policy + +#### SYNTAX + ++ RemoveByNameParameterSet (Default) +```powershell +Remove-AzFirewallPolicyDraft -AzureFirewallPolicyName -ResourceGroupName [-Force] [-PassThru] + [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ RemoveByParentInputObjectParameterSet +```powershell +Remove-AzFirewallPolicyDraft -FirewallPolicyObject [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ RemoveByResourceIdParameterSet +```powershell +Remove-AzFirewallPolicyDraft -ResourceId [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ RemoveByInputObjectParameterSet +```powershell +Remove-AzFirewallPolicyDraft -InputObject [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzFirewallPolicyDraft -AzureFirewallPolicyName firewallpolicy -ResourceGroupName TestRg +``` + +This example removes the firewall policy draft associated with the firewall policy named "firewallpolicy" in the resourcegroup "TestRg" + ++ Example 2 +```powershell +Remove-AzFirewallPolicyDraft -ResourceId "/subscriptions/12345/resourceGroups/TestRg/providers/Microsoft.Network/firewallpolicies/firewallPolicy1/firewallpolicydrafts/default" +``` + +This example removes the firewall policy draft by the resource Id. + ++ Example 3 +```powershell +Remove-AzFirewallPolicyDraft -FirewallPolicyObject $fp +``` + +This example removes the firewall policy draft associated with the firewall policy $fp + + +#### Set-AzFirewallPolicyDraft + +#### SYNOPSIS +Saves a modified azure firewall policy draft + +#### SYNTAX + ++ SetByNameParameterSet (Default) +```powershell +Set-AzFirewallPolicyDraft -AzureFirewallPolicyName -ResourceGroupName [-AsJob] + [-ThreatIntelMode ] [-ThreatIntelWhitelist ] + [-BasePolicy ] [-DnsSetting ] + [-SqlSetting ] [-Tag ] + [-IntrusionDetection ] [-PrivateRange ] + [-ExplicitProxy ] [-Snat ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByInputObjectParameterSet +```powershell +Set-AzFirewallPolicyDraft -InputObject [-AsJob] [-ThreatIntelMode ] + [-ThreatIntelWhitelist ] [-BasePolicy ] + [-DnsSetting ] [-SqlSetting ] + [-Tag ] [-IntrusionDetection ] [-PrivateRange ] + [-ExplicitProxy ] [-Snat ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByParentInputObjectParameterSet +```powershell +Set-AzFirewallPolicyDraft -FirewallPolicyObject [-AsJob] [-ThreatIntelMode ] + [-ThreatIntelWhitelist ] [-BasePolicy ] + [-DnsSetting ] [-SqlSetting ] + [-Tag ] [-IntrusionDetection ] [-PrivateRange ] + [-ExplicitProxy ] [-Snat ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByResourceIdParameterSet +```powershell +Set-AzFirewallPolicyDraft [-AsJob] -ResourceId [-ThreatIntelMode ] + [-ThreatIntelWhitelist ] [-BasePolicy ] + [-DnsSetting ] [-SqlSetting ] + [-Tag ] [-IntrusionDetection ] [-PrivateRange ] + [-ExplicitProxy ] [-Snat ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Set-AzFirewallPolicyDraft -InputObject $fpDraft +``` + +This example sets the firewall policy draft with the new firewall policy draft value + ++ Example 2 +```powershell +Set-AzFirewallPolicyDraft -AzureFirewallPolicyName firewallPolicy1 -ResourceGroupName TestRg -ThreatIntelMode "Alert" +``` + +This example sets the firewall policy draft with the new threat intel mode + ++ Example 3 +```powershell +$threatIntelWhitelist = New-AzFirewallPolicyThreatIntelWhitelist -IpAddress 23.46.72.91,192.79.236.79 -FQDN microsoft.com +Set-AzFirewallPolicyDraft -AzureFirewallPolicyName firewallPolicy1 -ResourceGroupName TestRg -ThreatIntelWhitelist $threatIntelWhitelist +``` + +This example sets the firewall policy draft with the new threat intel allowlist + ++ Example 4 +```powershell +$exProxy = New-AzFirewallPolicyExplicitProxy -EnableExplicitProxy -HttpPort 100 -HttpsPort 101 -EnablePacFile -PacFilePort 130 -PacFile "sampleurlfortesting.blob.core.windowsnet/nothing" +Set-AzFirewallPolicyDraft -AzureFirewallPolicyName firewallPolicy1 -ResourceGroupName TestRg -ExplicitProxy $exProxy +``` + +```output +BasePolicy : null + DnsSettings : null + Etag : null + ExplicitProxy + EnableExplicitProxy : true + EnablePacFile : true + HttpPort : 100 + HttpsPort : 101 + PacFile : "sampleurlfortesting.blob.core.windowsnet/nothing" + PacFilePort : 130 + Id : null + IntrusionDetection : null + Location : "westcentralus" + Name : "firewallPolicy1" + PrivateRange : null + PrivateRangeText : "[]" + ProvisioningState : null + ResourceGroupName : "TestRg" + ResourceGuid : null + RuleCollectionGroups : null + Snat + AutoLearnPrivateRanges : null + PrivateRanges : null + SqlSetting : null + Tag : null + TagsTable : null + ThreatIntelMode : "Alert" + ThreatIntelWhitelist : null + Type : null +``` + +This example sets the firewall policy draft with the explicit proxy settings + + +#### New-AzFirewallPolicyExplicitProxy + +#### SYNOPSIS +Creates a new Explicit Proxy + +#### SYNTAX + +```powershell +New-AzFirewallPolicyExplicitProxy [-EnableExplicitProxy] [-HttpPort ] [-HttpsPort ] + [-EnablePacFile] [-PacFilePort ] [-PacFile ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzFirewallPolicyExplicitProxy -EnableExplicitProxy -HttpPort 100 -HttpsPort 101 -EnablePacFile -PacFilePort 130 -PacFile "sampleurlfortesting.blob.core.windowsnet/nothing" +``` + +```output +EnableExplicitProxy : true + EnablePacFile : true + HttpPort : 100 + HttpsPort : 101 + PacFile : "sampleurlfortesting.blob.core.windowsnet/nothing" + PacFilePort : 130 +``` + +This example creates an explicit proxy with provided settings + + +#### New-AzFirewallPolicyFilterRuleCollection + +#### SYNOPSIS +Create a new Azure Firewall Policy Filter Rule Collection + +#### SYNTAX + +```powershell +New-AzFirewallPolicyFilterRuleCollection -Name -Priority + [-Rule ] -ActionType [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzFirewallPolicyFilterRuleCollection -Name FR1 -Priority 400 -Rule $appRule1 ,$appRule2 -ActionType "Allow" +``` + +This example creates a Filter rule with 2 rule conditions + + +#### New-AzFirewallPolicyIntrusionDetection + +#### SYNOPSIS +Creates a new Azure Firewall Policy Intrusion Detection to associate with Firewall Policy + +#### SYNTAX + +```powershell +New-AzFirewallPolicyIntrusionDetection -Mode [-Profile ] + [-SignatureOverride ] + [-BypassTraffic ] [-PrivateRange ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Create intrusion detection with mode +```powershell +New-AzFirewallPolicyIntrusionDetection -Mode "Alert" +``` + +This example creates intrusion detection with Alert (detection) mode + ++ Example 2: Create intrusion detection with signature overrides +```powershell +$signatureOverride = New-AzFirewallPolicyIntrusionDetectionSignatureOverride -Id "123456798" -Mode "Deny" +New-AzFirewallPolicyIntrusionDetection -Mode "Alert" -SignatureOverride $signatureOverride +``` + +This example creates intrusion detection with specific signature override + ++ Example 3: Create firewall policy with intrusion detection configured with bypass traffic setting +```powershell +$bypass = New-AzFirewallPolicyIntrusionDetectionBypassTraffic -Name "bypass-setting" -Protocol "TCP" -DestinationPort "80" -SourceAddress "10.0.0.0" -DestinationAddress "10.0.0.0" +$intrusionDetection = New-AzFirewallPolicyIntrusionDetection -Mode "Deny" -BypassTraffic $bypass +New-AzFirewallPolicy -Name fp1 -Location "westus2" -ResourceGroupName TestRg -SkuTier "Premium" -IntrusionDetection $intrusionDetection +``` + +This example creates intrusion detection with bypass traffic setting + ++ Example 4: Create firewall policy with intrusion detection configured with private ranges setting +```powershell +$intrusionDetection = New-AzFirewallPolicyIntrusionDetection -Mode "Deny" -PrivateRange @("167.220.204.0/24", "167.221.205.101/32") +New-AzFirewallPolicy -Name fp1 -Location "westus2" -ResourceGroupName TestRg -SkuTier "Premium" -IntrusionDetection $intrusionDetection +``` + +This example creates intrusion detection with bypass traffic setting + ++ Example 5: Create firewall policy with intrusion detection profile setting +```powershell +$intrusionDetection = New-AzFirewallPolicyIntrusionDetection -Mode "Deny" -Profile �Advanced� +New-AzFirewallPolicy -Name fp1 -Location "westus2" -ResourceGroupName TestRg -SkuTier "Premium" -IntrusionDetection $intrusionDetection +``` + +This example creates intrusion detection with Alert and Deny mode and Advanced signatures Profile. + + +#### New-AzFirewallPolicyIntrusionDetectionBypassTraffic + +#### SYNOPSIS +Creates a new Azure Firewall Policy Intrusion Detection Bypass Traffic Setting + +#### SYNTAX + +```powershell +New-AzFirewallPolicyIntrusionDetectionBypassTraffic -Name [-Description ] -Protocol + [-SourceAddress ] [-DestinationAddress ] [-SourceIpGroup ] + [-DestinationIpGroup ] -DestinationPort [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Create bypass traffic with specific port and source address +```powershell +$bypass = New-AzFirewallPolicyIntrusionDetectionBypassTraffic -Name "bypass-setting" -Protocol "TCP" -DestinationPort "80" -SourceAddress "10.0.0.0" -DestinationAddress "*" +New-AzFirewallPolicyIntrusionDetection -Mode "Deny" -BypassTraffic $bypass +``` + +This example creates intrusion detection with bypass traffic setting + + +#### New-AzFirewallPolicyIntrusionDetectionSignatureOverride + +#### SYNOPSIS +Creates a new Azure Firewall Policy Intrusion Detection Signature Override + +#### SYNTAX + +```powershell +New-AzFirewallPolicyIntrusionDetectionSignatureOverride -Id -Mode + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Create intrusion detection with signature overrides +```powershell +$signatureOverride = New-AzFirewallPolicyIntrusionDetectionSignatureOverride -Id "123456798" -Mode "Deny" +New-AzFirewallPolicyIntrusionDetection -Mode "Alert" -SignatureOverride $signatureOverride +``` + +This example creates intrusion detection with specific signature override to Deny mode + + +#### New-AzFirewallPolicyNatRule + +#### SYNOPSIS +Create a new Azure Firewall Policy NAT Rule + +#### SYNTAX + ++ SourceAddressAndTranslatedAddress +```powershell +New-AzFirewallPolicyNatRule -Name [-Description ] -SourceAddress + -DestinationAddress -DestinationPort -Protocol -TranslatedAddress + -TranslatedPort [-DefaultProfile ] + [] +``` + ++ SourceAddressAndTranslatedFqdn +```powershell +New-AzFirewallPolicyNatRule -Name [-Description ] -SourceAddress + -DestinationAddress -DestinationPort -Protocol -TranslatedFqdn + -TranslatedPort [-DefaultProfile ] + [] +``` + ++ SourceIpGroupAndTranslatedAddress +```powershell +New-AzFirewallPolicyNatRule -Name [-Description ] -SourceIpGroup + -DestinationAddress -DestinationPort -Protocol -TranslatedAddress + -TranslatedPort [-DefaultProfile ] + [] +``` + ++ SourceIpGroupAndTranslatedFqdn +```powershell +New-AzFirewallPolicyNatRule -Name [-Description ] -SourceIpGroup + -DestinationAddress -DestinationPort -Protocol -TranslatedFqdn + -TranslatedPort [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzFirewallPolicyNatRule -Name NatRule1 -Protocol "TCP" -SourceAddress "192.168.0.0/16" -DestinationAddress 10.20.30.40 -DestinationPort 1000 -TranslatedAddress "192.168.0.1" -TranslatedPort "100" +``` + +This example creates a NAT rule with the source address, protocol, destination address, destination port, translated address, and translated port. + ++ Example 2 +```powershell +New-AzFirewallPolicyNatRule -Name NatRule1 -Protocol "TCP" -SourceAddress "192.168.0.0/16" -DestinationAddress 10.20.30.40 -DestinationPort 1000 -TranslatedFqdn "internalhttp.server.net" -TranslatedPort "100" +``` + +This example creates a NAT rule with the source address, protocol, destination address, destination port, translated fqdn, and translated port. + + +#### New-AzFirewallPolicyNatRuleCollection + +#### SYNOPSIS +Create a new Azure Firewall Policy Nat Rule Collection + +#### SYNTAX + +```powershell +New-AzFirewallPolicyNatRuleCollection -Name -Priority + [-Rule ] -ActionType [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$netRule1 = New-AzFirewallPolicyNatRule -Name NatRule1 -Protocol "TCP" -SourceAddress "192.168.0.0/16" -DestinationAddress 10.20.30.40 -DestinationPort 1000 -TranslatedAddress "192.168.0.1" -TranslatedPort "100" +New-AzFirewallPolicyNatRuleCollection -Name NatRC1 -Priority 200 -Rule $netRule1 -ActionType "Dnat" +``` + +This example creates a nat rule collection with a network rule + + +#### New-AzFirewallPolicyNetworkRule + +#### SYNOPSIS +Create a new Azure Firewall Policy Network Rule + +#### SYNTAX + ++ SourceAddress +```powershell +New-AzFirewallPolicyNetworkRule -Name [-Description ] -SourceAddress + [-DestinationAddress ] [-DestinationIpGroup ] -DestinationPort + [-DestinationFqdn ] -Protocol [-DefaultProfile ] + [] +``` + ++ SourceIpGroup +```powershell +New-AzFirewallPolicyNetworkRule -Name [-Description ] -SourceIpGroup + [-DestinationAddress ] [-DestinationIpGroup ] -DestinationPort + [-DestinationFqdn ] -Protocol [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzFirewallPolicyNetworkRule -Name NRC1 -Protocol "TCP" -SourceAddress "192.168.0.0/16" -DestinationAddress * -DestinationPort * +``` + +This example creates an network rule with the source address, protocol , destination address and destination port + + +#### New-AzFirewallPolicyRuleCollectionGroup + +#### SYNOPSIS +Create a new Azure Firewall Policy Rule Collection Group + +#### SYNTAX + ++ SetByNameParameterSet (Default) +```powershell +New-AzFirewallPolicyRuleCollectionGroup -Name -Priority + [-RuleCollection ] -ResourceGroupName + -FirewallPolicyName [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ SetByInputObjectParameterSet +```powershell +New-AzFirewallPolicyRuleCollectionGroup -Name -Priority + [-RuleCollection ] -FirewallPolicyObject + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzFirewallPolicyRuleCollectionGroup -Name rg1 -Priority 200 -RuleCollection $filterRule1 -FirewallPolicyObject $fp +``` + +This example creates a rule collection group in the firewall policy $fp + ++ Example 2 + +Create a new Azure Firewall Policy Rule Collection Group. (autogenerated) + + + + +```powershell +New-AzFirewallPolicyRuleCollectionGroup -FirewallPolicyName -Name rg1 -Priority 200 -ResourceGroupName TestRg +``` + + +#### Get-AzFirewallPolicyRuleCollectionGroup + +#### SYNOPSIS +Gets a Azure Firewall Policy Rule Collection Group + +#### SYNTAX + ++ GetByNameParameterSet (Default) +```powershell +Get-AzFirewallPolicyRuleCollectionGroup -Name -ResourceGroupName + -AzureFirewallPolicyName [-DefaultProfile ] + [] +``` + ++ GetByInputObjectParameterSet +```powershell +Get-AzFirewallPolicyRuleCollectionGroup -Name -AzureFirewallPolicy + [-DefaultProfile ] [] +``` + ++ GetByResourceIdParameterSet +```powershell +Get-AzFirewallPolicyRuleCollectionGroup -ResourceId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzFirewallPolicyRuleCollectionGroup -Name ruleGroupName -AzureFirewallPolicy $fp +``` + +This example get the rule collectionGroup in the firewall policy $fp + ++ Example 2 + +Gets a Azure Firewall Policy Rule Collection Group. (autogenerated) + + + + +```powershell +Get-AzFirewallPolicyRuleCollectionGroup -AzureFirewallPolicyName fpName -Name ruleGroupName -ResourceGroupName myresourcegroup +``` + + +#### Remove-AzFirewallPolicyRuleCollectionGroup + +#### SYNOPSIS +Removes a Azure Firewall Policy Rule Collection Group in a Azure firewall policy + +#### SYNTAX + ++ RemoveByNameParameterSet (Default) +```powershell +Remove-AzFirewallPolicyRuleCollectionGroup -Name -ResourceGroupName + -AzureFirewallPolicyName [-Force] [-PassThru] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ RemoveByParentInputObjectParameterSet +```powershell +Remove-AzFirewallPolicyRuleCollectionGroup -Name -FirewallPolicyObject + [-Force] [-PassThru] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ RemoveByInputObjectParameterSet +```powershell +Remove-AzFirewallPolicyRuleCollectionGroup -InputObject + [-Force] [-PassThru] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ RemoveByResourceIdParameterSet +```powershell +Remove-AzFirewallPolicyRuleCollectionGroup -ResourceId [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzFirewallPolicyRuleCollectionGroup -Name testRcGroup -FirewallPolicyObject $fp +``` + +This example removes the firewall policy rule collection group named "testRcGroup" in the firewall policy object $fp + ++ Example 2 +```powershell +Remove-AzFirewallPolicyRuleCollectionGroup -Name testRcGroup -ResourceGroupName testRg -AzureFirewallPolicyName fpName +``` + +This example removes the firewall policy rule collection group named "testRcGroup" in the firewall named "fpName" from the resourcegroup names "testRg" + + +#### Set-AzFirewallPolicyRuleCollectionGroup + +#### SYNOPSIS +saves a modified azure firewall policy rule collection group + +#### SYNTAX + ++ SetByNameParameterSet (Default) +```powershell +Set-AzFirewallPolicyRuleCollectionGroup -Name -ResourceGroupName -FirewallPolicyName + -Priority [-RuleCollection ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByParentInputObjectParameterSet +```powershell +Set-AzFirewallPolicyRuleCollectionGroup -Name -FirewallPolicyObject + -Priority [-RuleCollection ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByInputObjectParameterSet +```powershell +Set-AzFirewallPolicyRuleCollectionGroup -InputObject + [-Priority ] [-RuleCollection ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByResourceIdParameterSet +```powershell +Set-AzFirewallPolicyRuleCollectionGroup -ResourceId -Priority + [-RuleCollection ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Set-AzFirewallPolicyRuleCollectionGroup -Name rg1 -ResourceGroupName TestRg -Priority 200 -RuleCollection $filterRule1 -FirewallPolicyName "firewallPolicy" +``` + +This example updates a rule collection group in the firewall policy $fp + ++ Example 2 + +saves a modified azure firewall policy rule collection group. (autogenerated) + + + + +```powershell +Set-AzFirewallPolicyRuleCollectionGroup -FirewallPolicyName -Name rg1 -Priority 200 -ResourceGroupName TestRg -RuleCollection +``` + + +#### New-AzFirewallPolicyRuleCollectionGroupDraft + +#### SYNOPSIS +Create a new Azure Firewall Policy Rule Collection Group draft. + +#### SYNTAX + ++ SetByNameParameterSet (Default) +```powershell +New-AzFirewallPolicyRuleCollectionGroupDraft -AzureFirewallPolicyRuleCollectionGroupName + -ResourceGroupName -AzureFirewallPolicyName -Priority + [-RuleCollection ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ SetByInputObjectParameterSet +```powershell +New-AzFirewallPolicyRuleCollectionGroupDraft -AzureFirewallPolicyRuleCollectionGroupName + -FirewallPolicyObject -Priority + [-RuleCollection ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzFirewallPolicyRuleCollectionGroupDraft -AzureFirewallPolicyRuleCollectionGroupName rg1 -Priority 200 -RuleCollection $filterRule1 -FirewallPolicyObject $fp +``` + +TThis example creates a Rule Collection Group draft associated with the a Rule Collection Group rg1 in the Azure Firewall Policy $fp. + ++ Example 2 + +Create a new Azure Firewall Policy Rule Collection Group draft. (autogenerated) + + + + +```powershell +New-AzFirewallPolicyRuleCollectionGroupDraft -FirewallPolicyName -AzureFirewallPolicyRuleCollectionGroupName rg1 -Priority 200 -ResourceGroupName TestRg +``` + + +#### Get-AzFirewallPolicyRuleCollectionGroupDraft + +#### SYNOPSIS +Gets an Azure Firewall Policy Rule Collection Group Draft. + +#### SYNTAX + ++ GetByNameParameterSet (Default) +```powershell +Get-AzFirewallPolicyRuleCollectionGroupDraft -AzureFirewallPolicyRuleCollectionGroupName + -ResourceGroupName -AzureFirewallPolicyName [-DefaultProfile ] + [] +``` + ++ GetByParentInputObjectParameterSet +```powershell +Get-AzFirewallPolicyRuleCollectionGroupDraft -AzureFirewallPolicyRuleCollectionGroupName + -FirewallPolicyObject [-DefaultProfile ] + [] +``` + ++ GetByResourceIdParameterSet +```powershell +Get-AzFirewallPolicyRuleCollectionGroupDraft -ResourceId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzFirewallPolicyRuleCollectionGroupDraft -AzureFirewallPolicyRuleCollectionGroupName rg1 -FirewallPolicyObject $fp +``` + +This example get the rule collection group draft associated with rule collection group rg1 in the firewall policy $fp. + ++ Example 2 + +Gets a Azure Firewall Policy Rule Collection Group. (autogenerated) + + + + +```powershell +Get-AzFirewallPolicyRuleCollectionGroupDraft -AzureFirewallPolicyName fpName -AzureFirewallPolicyRuleCollectionGroupName rg1 -ResourceGroupName myresourcegroup +``` + + +#### Remove-AzFirewallPolicyRuleCollectionGroupDraft + +#### SYNOPSIS +Removes an Azure Firewall Policy Rule Collection Group draft in an Azure firewall policy. + +#### SYNTAX + ++ RemoveByNameParameterSet (Default) +```powershell +Remove-AzFirewallPolicyRuleCollectionGroupDraft -AzureFirewallPolicyRuleCollectionGroupName + -ResourceGroupName -AzureFirewallPolicyName [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ RemoveByParentInputObjectParameterSet +```powershell +Remove-AzFirewallPolicyRuleCollectionGroupDraft -AzureFirewallPolicyRuleCollectionGroupName + -FirewallPolicyObject [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ RemoveByInputObjectParameterSet +```powershell +Remove-AzFirewallPolicyRuleCollectionGroupDraft + -InputObject [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ RemoveByResourceIdParameterSet +```powershell +Remove-AzFirewallPolicyRuleCollectionGroupDraft -ResourceId [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzFirewallPolicyRuleCollectionGroupDraft -AzureFirewallPolicyRuleCollectionGroupName testRcGroup -FirewallPolicyObject $fp +``` + +This example removes the firewall policy rule collection group draft named "testRcGroup" in the firewall policy object $fp. + ++ Example 2 +```powershell +Remove-AzFirewallPolicyRuleCollectionGroupDraft -AzureFirewallPolicyRuleCollectionGroupName testRcGroup -ResourceGroupName testRg -AzureFirewallPolicyName fpName +``` + +This example removes the firewall policy rule collection group draft named "testRcGroup" in the firewall named "fpName" from the resource group named "testRg". + + +#### Set-AzFirewallPolicyRuleCollectionGroupDraft + +#### SYNOPSIS +Sets a modified Azure Firewall Policy Rule Collection Group draft. + +#### SYNTAX + ++ SetByNameParameterSet (Default) +```powershell +Set-AzFirewallPolicyRuleCollectionGroupDraft -AzureFirewallPolicyRuleCollectionGroupName + -ResourceGroupName -AzureFirewallPolicyName -Priority + [-RuleCollection ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ SetByParentInputObjectParameterSet +```powershell +Set-AzFirewallPolicyRuleCollectionGroupDraft -AzureFirewallPolicyRuleCollectionGroupName + -FirewallPolicyObject -Priority + [-RuleCollection ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ SetByInputObjectParameterSet +```powershell +Set-AzFirewallPolicyRuleCollectionGroupDraft + -InputObject [-Priority ] + [-RuleCollection ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ SetByResourceIdParameterSet +```powershell +Set-AzFirewallPolicyRuleCollectionGroupDraft -ResourceId -Priority + [-RuleCollection ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Set-AzFirewallPolicyRuleCollectionGroupDraft -AzureFirewallPolicyRuleCollectionGroupName rg1 -ResourceGroupName TestRg -Priority 200 -RuleCollection $filterRule1 -AzureFirewallPolicyName "firewallPolicy" +``` + +This example updates a rule collection group draft in the firewall policy $fp. + ++ Example 2 + +Sets a modified Azure Firewall Policy Rule Collection Group draft. (autogenerated) + + + + +```powershell +Set-AzFirewallPolicyRuleCollectionGroupDraft -AzureFirewallPolicyName -AzureFirewallPolicyRuleCollectionGroupName rg1 -Priority 200 -ResourceGroupName TestRg -RuleCollection +``` + + +#### New-AzFirewallPolicySnat + +#### SYNOPSIS +Creates SNAT configuration of PrivateRange and AutoLearnPrivateRanges for the firewall policy + +#### SYNTAX + +```powershell +New-AzFirewallPolicySnat [-PrivateRange ] [-AutoLearnPrivateRange] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzFirewallPolicySnat -PrivateRange @("3.3.0.0/24", "98.0.0.0/8","10.227.16.0/20") -AutoLearnPrivateRange +``` + +```output +PrivateRange : ["3.3.0.0/24", "98.0.0.0/8","10.227.16.0/20"] + AutoLearnPrivateRanges : Enabled +``` + +This example configures private IP addresses/IP ranges to which traffic will not be SNATed and enables auto learn of private ip ranges in Firewall Policy. + ++ Example 2 +```powershell +New-AzFirewallPolicySnat -PrivateRange @("3.3.0.0/24", "98.0.0.0/8","10.227.16.0/20") +``` + +```output +PrivateRange : ["3.3.0.0/24", "98.0.0.0/8","10.227.16.0/20"] + AutoLearnPrivateRanges : Disabled +``` + +This example configures private IP addresses/IP ranges to which traffic will not be SNATed and disables auto learn of private ip ranges in Firewall Policy. + + +#### New-AzFirewallPolicySqlSetting + +#### SYNOPSIS +Creates a new SQL Setting for Azure Firewall Policy + +#### SYNTAX + +```powershell +New-AzFirewallPolicySqlSetting [-AllowSqlRedirect] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1. Create a SQL setting that allows SQL server redirect mode traffic +```powershell +New-AzFirewallPolicySqlSetting -AllowSqlRedirect +``` + +This example creates a SQL setting object with setting allow sql redirect. + + +#### New-AzFirewallPolicyThreatIntelWhitelist + +#### SYNOPSIS +Create a new threat intelligence allowlist for Azure Firewall Policy + +#### SYNTAX + +```powershell +New-AzFirewallPolicyThreatIntelWhitelist [-FQDN ] [-IpAddress ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzFirewallPolicyThreatIntelWhitelist -IpAddress 23.46.72.91,192.79.236.79 -FQDN microsoft.com +``` + +This example creates a threat intel allowlist containing a FQDN allowlist of one entry and an Ip address allowlist of two entries + + +#### New-AzFirewallPublicIpAddress + +#### SYNOPSIS +This is the placeholder for the Ip Address that can be used for multi pip on azure firewall. + +#### SYNTAX + +```powershell +New-AzFirewallPublicIpAddress [-Address ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$publicIp = New-AzFirewallPublicIpAddress -Address 20.2.3.4 +``` + +$publicIp will be the placeholder for the ip address 20.2.3.4 + + +#### New-AzFirewallThreatIntelWhitelist + +#### SYNOPSIS +Create a new threat intelligence allowlist for Azure Firewall + +#### SYNTAX + +```powershell +New-AzFirewallThreatIntelWhitelist [-FQDN ] [-IpAddress ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzFirewallThreatIntelWhitelist -IpAddress @("2.2.2.2", "3.3.3.3") -FQDN @("bing.com", "yammer.com") +``` + +This example creates a threat intel allowlist containing a FQDN allowlist of two entries and an Ip address allowlist of two entries + + +#### New-AzGatewayCustomBgpIpConfigurationObject + +#### SYNOPSIS +creates a new GatewayCustomBgpIpConfigurationObject. + +#### SYNTAX + +```powershell +New-AzGatewayCustomBgpIpConfigurationObject -IpConfigurationId -CustomBgpIpAddress + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 Create a AzGatewayCustomBgpIpConfigurationObject VirtualNetworkGatewayConnection +```powershell +$address = New-AzGatewayCustomBgpIpConfigurationObject -IpConfigurationId "/subscriptions/83704d68-d560-4c67-b1c7-12404db89dc3/resourceGroups/khbaheti_PS_testing/providers/Microsoft.Network/virtualNetworkGateways/testGw/ipConfigurations/default" -CustomBgpIpAddress "169.254.21.1" +``` + ++ Example 2 Create a AzGatewayCustomBgpIpConfigurationObject VpnsiteLinkConnection +```powershell +$vpnGateway = Get-AzVpnGateway -ResourceGroupName PS_testing -Name 196ddf92afae40e4b20edc32dfb48a63-eastus-gw +$address1 = New-AzGatewayCustomBgpIpConfigurationObject -IpConfigurationId "Instance0" -CustomBgpIpAddress "169.254.22.1" +$address2 = New-AzGatewayCustomBgpIpConfigurationObject -IpConfigurationId "Instance1" -CustomBgpIpAddress "169.254.22.3" +``` + +The above will create a IpConfigurationBgpPeeringAddressObject. + + +#### Reset-AzHubRouter + +#### SYNOPSIS +Resets the RoutingState of a VirtualHub resource. + +#### SYNTAX + ++ ByVirtualHubObject (Default) +```powershell +Reset-AzHubRouter -InputObject [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVirtualHubName +```powershell +Reset-AzHubRouter -ResourceGroupName -Name [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVirtualHubResourceId +```powershell +Reset-AzHubRouter -ResourceId [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +Reset-AzHubRouter -ResourceGroupName "testRG" -Name "westushub" +``` + +Reset the routing state of the virtual hub using its ResourceGroupName and ResourceName. + ++ Example 2 + +```powershell +Reset-AzHubRouter -ResourceId "/subscriptions/testSub/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub" +``` + +Reset the routing state of the virtual hub using its ResourceId. + ++ Example 3 + +```powershell +Reset-AzHubRouter -InputObject $virtualHub +``` + +Reset the routing state of the virtual hub using an input object. The input object is of type PSVirtualHub. + ++ Example 4 + +```powershell +Get-AzVirtualHub -ResourceGroupName "testRG" -Name "westushub" | Reset-AzHubRouter +``` + +An existing virtual hub object can be retrieved and then passed as input object to Reset-AzHubRouter. + + +#### New-AzIpAllocation + +#### SYNOPSIS +Creates an Azure IpAllocation. + +#### SYNTAX + +```powershell +New-AzIpAllocation -Name -ResourceGroupName -Location -IpAllocationType + [-Prefix ] [-PrefixLength ] [-PrefixType ] [-IpamAllocationId ] + [-IpAllocationTag ] [-Tag ] [-Force] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzIpAllocation -ResourceName 'TestIpAllocation' -ResourceGroupName 'TestResourcegroupName' -Location 'eastus' -IpAllocationType 'Hypernet' -Prefix '1.2.3.4/32' -IpAllocationTag @{"VnetId"="vnet1"} +``` + ++ Example 2 +```powershell +New-AzIpAllocation -ResourceName 'TestIpAllocation' -ResourceGroupName 'TestResourcegroupName' -Location 'eastus' -IpAllocationType 'Hypernet' -PrefixLength 32 -PrefixType 'ipv4' -IpAllocationTag @{"VnetId"="vnet1"} +``` + + +#### Get-AzIpAllocation + +#### SYNOPSIS +Gets a Azure IpAllocation. + +#### SYNTAX + ++ GetByNameParameterSet +```powershell +Get-AzIpAllocation -ResourceGroupName -Name [-DefaultProfile ] + [] +``` + ++ ListParameterSet +```powershell +Get-AzIpAllocation [-ResourceGroupName ] [-DefaultProfile ] + [] +``` + ++ GetByResourceIdParameterSet +```powershell +Get-AzIpAllocation -ResourceId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzIpAllocation -ResourceGroupName 'TestResourceGroup' -Name 'TestIpAllocation' +``` + + +#### Remove-AzIpAllocation + +#### SYNOPSIS +Deletes an Azure IpAllocation. + +#### SYNTAX + ++ DeleteByNameParameterSet +```powershell +Remove-AzIpAllocation -Name -ResourceGroupName [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ DeleteByInputObjectParameterSet +```powershell +Remove-AzIpAllocation -InputObject [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ DeleteByResourceIdParameterSet +```powershell +Remove-AzIpAllocation -ResourceId [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzIpAllocation -ResourceGroupName 'TestResourceGroup' -Name 'TestIpAllocation' +``` + + +#### Set-AzIpAllocation + +#### SYNOPSIS +Saves a modified IpAllocation. + +#### SYNTAX + ++ SetByNameParameterSet +```powershell +Set-AzIpAllocation -ResourceGroupName -Name [-IpAllocationTag ] [-Tag ] + [-AsJob] [-DefaultProfile ] [] +``` + ++ SetByResourceIdParameterSet +```powershell +Set-AzIpAllocation -ResourceId [-IpAllocationTag ] [-Tag ] [-AsJob] + [-DefaultProfile ] [] +``` + ++ SetByInputObjectParameterSet +```powershell +Set-AzIpAllocation -InputObject [-IpAllocationTag ] [-Tag ] [-AsJob] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Set-AzIpAllocation -ResourceGroupName 'TestResourceGroup' -Name 'TestIpAllocation' -IpAllocationTag @{"VnetId"="vnet1"} -Tag @{"TestTag"="TestValue"} +``` + + +#### New-AzIpConfigurationBgpPeeringAddressObject + +#### SYNOPSIS +creates a new IpconfigurationBgpPeeringAddressObject + +#### SYNTAX + +```powershell +New-AzIpConfigurationBgpPeeringAddressObject -IpConfigurationId + -CustomAddress [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Create a AzIpConfigurationBgpPeeringAddressObject +```powershell +$ipconfigurationId1 = '/subscriptions/c886bc58-0000-4e01-993f-e01ba3702aaf/resourceGroups/testRg/providers/Microsoft.Network/virtualNetworkGateways/gw1/ipConfigurations/default' +$addresslist1 = @('169.254.21.5') +$gw1ipconfBgp1 = New-AzIpConfigurationBgpPeeringAddressObject -IpConfigurationId $ipconfigurationId1 -CustomAddress $addresslist1 +``` + +The above will create a IpConfigurationBgpPeeringAddressObject.This new object will be to gw1ipconfBgp1. + + +#### New-AzIpGroup + +#### SYNOPSIS +Creates an Azure IpGroup. + +#### SYNTAX + +```powershell +New-AzIpGroup -Name -ResourceGroupName [-IpAddress ] -Location + [-Tag ] [-Force] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzIpGroup -Name ipGroup -ResourceGroupName ipGroupRG -Location 'West US' +``` + ++ Example 2 +```powershell +New-AzIpGroup -Name ipGroup -ResourceGroupName ipGroupRG -Location 'West US' -IpAddress 10.0.0.0/24,11.9.0.0/24 +``` + + +#### Get-AzIpGroup + +#### SYNOPSIS +Get an Azure IpGroup + +#### SYNTAX + ++ IpGroupNameParameterSet (Default) +```powershell +Get-AzIpGroup [-ResourceGroupName ] [-Name ] [-DefaultProfile ] + [] +``` + ++ IpGroupResourceIdParameterSet +```powershell +Get-AzIpGroup -ResourceId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzIpGroup -ResourceGroupName ipGroupRG -Name ipGroup +``` + ++ Example 2 +```powershell +$ipGroupId = '/subscriptions/8c992d64-fce9-426d-b278-85642dfeab03/resourceGroups/ipGroupRG/providers/Microsoft.Network/ipGroups/ipGroup' +Get-AzIpGroup -ResourceId $ipGroupId +``` + + +#### Remove-AzIpGroup + +#### SYNOPSIS +Deletes an Azure IpGroup. + +#### SYNTAX + ++ IpGroupNameParameterSet (Default) +```powershell +Remove-AzIpGroup -Name -ResourceGroupName [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ IpGroupInputObjectParameterSet +```powershell +Remove-AzIpGroup -IpGroup [-Force] [-PassThru] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ IpGroupResourceIdParameterSet +```powershell +Remove-AzIpGroup -ResourceId [-Force] [-PassThru] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzIpGroup -ResourceGroupName ipGroupRG -Name ipGroup +``` + ++ Example 2 +```powershell +$ipGroupId = '/subscriptions/8c992d64-fce9-426d-b278-85642dfeab03/resourceGroups/ipGroupRG/providers/Microsoft.Network/ipGroups/ipGroup' +Remove-AzIpGroup -ResourceId $ipGroupId +``` + ++ Example 3 +```powershell +$ipGroup = Get-AzIpGroup -ResourceGroupName ipGroupRG -Name ipGroup +Remove-AzIpGroup -IpGroup $ipGroup +``` + + +#### Set-AzIpGroup + +#### SYNOPSIS +Saves a modified Firewall. + +#### SYNTAX + +```powershell +Set-AzIpGroup -IpGroup [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$ipGroup = Get-AzIpGroup -ResourceGroupName ipGroupRG -Name ipGroup +$ipGroup.IpAddresses.Add("11.11.0.0/24") +Set-AzIpGroup -IpGroup $ipGroup +``` + + +#### New-AzIpsecPolicy + +#### SYNOPSIS +Creates an IPSec Policy. + +#### SYNTAX + +```powershell +New-AzIpsecPolicy [-SALifeTimeSeconds ] [-SADataSizeKilobytes ] -IpsecEncryption + -IpsecIntegrity -IkeEncryption -IkeIntegrity -DhGroup -PfsGroup + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$ipsecPolicy = New-AzIpsecPolicy -SALifeTimeSeconds 1000 -SADataSizeKilobytes 2000 -IpsecEncryption "GCMAES256" -IpsecIntegrity "GCMAES256" -IkeEncryption "AES256" -IkeIntegrity "SHA256" -DhGroup "DHGroup14" -PfsGroup "PFS2048" +New-AzVirtualNetworkGatewayConnection -ResourceGroupName $rgname -name $vnetConnectionName -location $location -VirtualNetworkGateway1 $vnetGateway -LocalNetworkGateway2 $localnetGateway -ConnectionType IPsec -RoutingWeight 3 -SharedKey $sharedKey -UsePolicyBasedTrafficSelectors $true -IpsecPolicies $ipsecPolicy +``` + +Creating an IPSec policy to be used for a new virtual network gateway connection. + + +#### New-AzIpsecTrafficSelectorPolicy + +#### SYNOPSIS +Creates a traffic selector policy. + +#### SYNTAX + +```powershell +New-AzIpsecTrafficSelectorPolicy -LocalAddressRange -RemoteAddressRange + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$trafficSelectorPolicy = New-AzIpsecTrafficSelectorPolicy -LocalAddressRange ("10.10.10.0/24", "20.20.20.0/24") -RemoteAddressRange ("30.30.30.0/24", "40.40.40.0/24") +New-AzVirtualNetworkGatewayConnection -ResourceGroupName $rgname -name $vnetConnectionName -location $location -VirtualNetworkGateway1 $vnetGateway -LocalNetworkGateway2 $localnetGateway -ConnectionType IPsec -RoutingWeight 3 -SharedKey $sharedKey -UsePolicyBasedTrafficSelectors $true -TrafficSelectorPolicy ($trafficSelectorPolicy) +``` + +Creates an instance of a traffic selector policy and adds it as a parameter when creating a virtual network gateway connection with an IKEv2 protocol. + + +#### New-AzLoadBalancer + +#### SYNOPSIS +Creates a load balancer. + +#### SYNTAX + +```powershell +New-AzLoadBalancer -ResourceGroupName -Name -Location [-Tag ] + [-Sku ] [-Tier ] [-FrontendIpConfiguration ] + [-BackendAddressPool ] [-LoadBalancingRule ] + [-Probe ] [-InboundNatRule ] [-InboundNatPool ] + [-OutboundRule ] [-EdgeZone ] [-Force] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Create a load balancer +```powershell +$publicip = New-AzPublicIpAddress -ResourceGroupName "MyResourceGroup" -Name "MyPublicIp" -Location "West US" -AllocationMethod "Dynamic" +$frontend = New-AzLoadBalancerFrontendIpConfig -Name "MyFrontEnd" -PublicIpAddress $publicip +$backendAddressPool = New-AzLoadBalancerBackendAddressPoolConfig -Name "MyBackendAddPoolConfig02" +$probe = New-AzLoadBalancerProbeConfig -Name "MyProbe" -Protocol "http" -Port 80 -IntervalInSeconds 15 -ProbeCount 2 -ProbeThreshold 2 -RequestPath "healthcheck.aspx" +$inboundNatRule1 = New-AzLoadBalancerInboundNatRuleConfig -Name "MyinboundNatRule1" -FrontendIPConfiguration $frontend -Protocol "Tcp" -FrontendPort 3389 -BackendPort 3389 -IdleTimeoutInMinutes 15 -EnableFloatingIP +$inboundNatRule2 = New-AzLoadBalancerInboundNatRuleConfig -Name "MyinboundNatRule2" -FrontendIPConfiguration $frontend -Protocol "Tcp" -FrontendPort 3391 -BackendPort 3392 +$lbrule = New-AzLoadBalancerRuleConfig -Name "MyLBruleName" -FrontendIPConfiguration $frontend -BackendAddressPool $backendAddressPool -Probe $probe -Protocol "Tcp" -FrontendPort 80 -BackendPort 80 -IdleTimeoutInMinutes 15 -EnableFloatingIP -LoadDistribution SourceIP +$lb = New-AzLoadBalancer -Name "MyLoadBalancer" -ResourceGroupName "MyResourceGroup" -Location "West US" -FrontendIpConfiguration $frontend -BackendAddressPool $backendAddressPool -Probe $probe -InboundNatRule $inboundNatRule1,$inboundNatRule2 -LoadBalancingRule $lbrule +Get-AzLoadBalancer -Name "MyLoadBalancer" -ResourceGroupName "MyResourceGroup" +``` + +Deploying a load balancer requires that you first create several objects, and the first seven +commands show how to create those objects. +The eighth command creates a load balancer named MyLoadBalancer in the resource group named +MyResourceGroup. +The ninth and last command gets the new load balancer to ensure it was successfully created. +Note that this example only shows how to create a load balancer. You must also configure it using +the Add-AzNetworkInterfaceIpConfig cmdlet to assign the NICs to different virtual machines. + ++ Example 2: Create a global load balancer +```powershell +$publicip = New-AzPublicIpAddress -ResourceGroupName "MyResourceGroup" -name "MyPublicIp" -Location "West US" -AllocationMethod Static -DomainNameLabel $domainNameLabel -Sku Standard -Tier Global +$frontend = New-AzLoadBalancerFrontendIpConfig -Name $frontendName -PublicIpAddress $publicip +$backendAddressPool = New-AzLoadBalancerBackendAddressPoolConfig -Name "MyBackendAddPoolConfig01" +$probe = New-AzLoadBalancerProbeConfig -Name "MyProbe" -RequestPath healthcheck.aspx -Protocol http -Port 80 -IntervalInSeconds 15 -ProbeCount 2 -ProbeThreshold 2 +$lbrule = New-AzLoadBalancerRuleConfig -Name "MyLBruleName" -FrontendIPConfiguration $frontend -BackendAddressPool $backendAddressPool -Probe $probe -Protocol Tcp -FrontendPort 80 -BackendPort 80 -IdleTimeoutInMinutes 15 -EnableFloatingIP -LoadDistribution SourceIP -DisableOutboundSNAT +$lb = New-AzLoadBalancer -Name "MyLoadBalancer" -ResourceGroupName "MyResourceGroup" -Location "West US" -FrontendIpConfiguration $frontend -BackendAddressPool $backendAddressPool -Probe $probe -LoadBalancingRule $lbrule -Sku Standard -Tier Global +Get-AzLoadBalancer -Name "MyLoadBalancer" -ResourceGroupName "MyResourceGroup" +``` + +Deploying a global load balancer requires that you first create several objects, and the first five +commands show how to create those objects. +The sixth command creates a load balancer named MyLoadBalancer in the resource group named +MyResourceGroup. +The seventh and last command gets the new load balancer to ensure it was successfully created. +Note that this example only shows how to create a global load balancer. You must also configure it using +the New-AzLoadBalancerBackendAddressConfig cmdlet to assign regional load balancer frontend ipconfig ids to +its backend address pool + + +#### Get-AzLoadBalancer + +#### SYNOPSIS +Gets a load balancer. + +#### SYNTAX + ++ NoExpand (Default) +```powershell +Get-AzLoadBalancer [-ResourceGroupName ] [-Name ] [-DefaultProfile ] + [] +``` + ++ Expand +```powershell +Get-AzLoadBalancer -ResourceGroupName -Name -ExpandResource + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Get a load balancer +```powershell +Get-AzLoadBalancer -Name "MyLoadBalancer1" -ResourceGroupName "MyResourceGroup" +``` + +```output +Name : MyLoadBalancer1 +ResourceGroupName : MyResourceGroup +Location : australiaeast +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/M + icrosoft.Network/loadBalancers/MyLoadBalancer1 +Etag : W/"00000000-0000-0000-0000-000000000000" +ResourceGuid : 00000000-0000-0000-0000-000000000000 +ProvisioningState : Succeeded +Tags : +FrontendIpConfigurations : [] +BackendAddressPools : [] +LoadBalancingRules : [] +Probes : [] +InboundNatRules : [] +InboundNatPools : [] +Sku : { + "Name": "Basic", + "Tier": "Regional" + } +``` + +This command gets the load balancer named MyLoadBalancer. +A load balancer must exist before you can run this cmdlet. + ++ Example 2: List load balancers using filtering +```powershell +Get-AzLoadBalancer -Name MyLoadBalancer* +``` + +```output +Name : MyLoadBalancer1 +ResourceGroupName : MyResourceGroup +Location : australiaeast +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/M + icrosoft.Network/loadBalancers/MyLoadBalancer1 +Etag : W/"00000000-0000-0000-0000-000000000000" +ResourceGuid : 00000000-0000-0000-0000-000000000000 +ProvisioningState : Succeeded +Tags : +FrontendIpConfigurations : [] +BackendAddressPools : [] +LoadBalancingRules : [] +Probes : [] +InboundNatRules : [] +InboundNatPools : [] +Sku : { + "Name": "Basic", + "Tier": "Regional" + } + +Name : MyLoadBalancer2 +ResourceGroupName : MyResourceGroup +Location : australiaeast +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/M + icrosoft.Network/loadBalancers/MyLoadBalancer2 +Etag : W/"00000000-0000-0000-0000-000000000000" +ResourceGuid : 00000000-0000-0000-0000-000000000000 +ProvisioningState : Succeeded +Tags : +FrontendIpConfigurations : [] +BackendAddressPools : [] +LoadBalancingRules : [] +Probes : [] +InboundNatRules : [] +InboundNatPools : [] +Sku : { + "Name": "Basic", + "Tier": "Regional" + } +``` + +This command gets all load balancers with a name that starts with "MyLoadBalancer" + + +#### Remove-AzLoadBalancer + +#### SYNOPSIS +Removes a load balancer. + +#### SYNTAX + +```powershell +Remove-AzLoadBalancer -ResourceGroupName -Name [-Force] [-AsJob] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Remove a load balancer +```powershell +Remove-AzLoadBalancer -Name "MyLoadBalancer" -ResourceGroupName "MyResourceGroup" +``` + +This command deletes a load balancer named MyLoadBalancer in the resource group named MyResourceGroup. + + +#### Set-AzLoadBalancer + +#### SYNOPSIS +Updates a load balancer. + +#### SYNTAX + +```powershell +Set-AzLoadBalancer -LoadBalancer [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Modify a load balancer +```powershell +$slb = Get-AzLoadBalancer -Name "NRPLB" +$slb | Add-AzLoadBalancerInboundNatRuleConfig -Name "NewRule" -FrontendIpConfiguration $slb.FrontendIpConfigurations[0] -FrontendPort 81 -BackendPort 8181 -Protocol "TCP" +$slb | Set-AzLoadBalancer +``` + +The first command gets the load balancer named NRPLB, and then stores it in the $slb variable. +The second command uses the pipeline operator to pass the load balancer in $slb to Add-AzLoadBalancerInboundNatRuleConfig, which adds an inbound NAT rule named NewRule. +The third command passes the load balancer to **Set-AzLoadBalancer**, which updates the load balancer configuration and saves it. + + +#### New-AzLoadBalancerBackendAddressConfig + +#### SYNOPSIS +Returns a load balancer backend address config. + +#### SYNTAX + ++ SetByIpAndSubnet (Default) +```powershell +New-AzLoadBalancerBackendAddressConfig -IpAddress -Name -SubnetId + [-AdminState ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ SetByIpAndVnet +```powershell +New-AzLoadBalancerBackendAddressConfig -IpAddress -Name -VirtualNetworkId + [-AdminState ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ SetByResourceFrontendIPConfiguration +```powershell +New-AzLoadBalancerBackendAddressConfig -Name -LoadBalancerFrontendIPConfigurationId + [-AdminState ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: New loadbalancer address config with virtual network reference +```powershell +$virtualNetwork = Get-AzVirtualNetwork -Name $vnetName -ResourceGroupName $resourceGroup +New-AzLoadBalancerBackendAddressConfig -IpAddress "10.0.0.5" -Name "TestVNetRef" -VirtualNetworkId $virtualNetwork.Id +``` + ++ Example 2: New loadbalancer address config with subnet reference +```powershell +$virtualNetwork = Get-AzVirtualNetwork -Name $vnetName -ResourceGroupName $resourceGroup +$subnet = Get-AzVirtualNetworkSubnetConfig -Name $subnetName -VirtualNetwork $virtualNetwork +New-AzLoadBalancerBackendAddressConfig -IpAddress "10.0.0.5" -Name "TestVNetRef" -SubnetId $subnet.Id +``` + ++ Example 3: New loadbalancer address config with loadbalancer frontend ip configuration reference +```powershell +$frontend = New-AzLoadBalancerFrontendIpConfig -Name $frontendName -PublicIpAddress $publicip +New-AzLoadBalancerBackendAddressConfig -LoadBalancerFrontendIPConfigurationId $frontend.Id -Name "TestLBFERef" +``` + + +#### Get-AzLoadBalancerBackendAddressInboundNatRulePortMapping + +#### SYNOPSIS +Get-AzLoadBalancerBackendAddressInboundNatRulePortMapping retrieves inbound nat rule port mapping list for one backend address. + +#### SYNTAX + ++ GetByNameParameterSet (Default) +```powershell +Get-AzLoadBalancerBackendAddressInboundNatRulePortMapping -ResourceGroupName + -LoadBalancerName [-Name ] [-IpAddress ] + [-NetworkInterfaceIpConfigurationId ] [-DefaultProfile ] + [] +``` + ++ GetByParentObjectParameterSet +```powershell +Get-AzLoadBalancerBackendAddressInboundNatRulePortMapping [-Name ] -LoadBalancer + [-IpAddress ] [-NetworkInterfaceIpConfigurationId ] [-DefaultProfile ] + [] +``` + ++ GetByResourceIdParameterSet +```powershell +Get-AzLoadBalancerBackendAddressInboundNatRulePortMapping -ResourceId [-IpAddress ] + [-NetworkInterfaceIpConfigurationId ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +#### Get inbound nat rule port mapping by NIC id +Get-AzLoadBalancerBackendAddressInboundNatRulePortMapping -ResourceGroupName $rgname -LoadBalancerName $lbName -NetworkInterfaceIpConfigurationId $ipconfig.Id -Name pool1 +``` + ++ Example 2 +```powershell +#### Get inbound nat rule port mapping by ip address +$testIpAddress1 = "10.0.0.5" +Get-AzLoadBalancerBackendAddressInboundNatRulePortMapping -ResourceGroupName $rgname -LoadBalancerName $lbName -Name $backendAddressPoolName -IpAddress $testIpAddress1 +``` + ++ Example 3 +```powershell +#### Get inbound nat rule port mapping by ip address and load balancer object +$slb = Get-AzLoadBalancer -Name "MyLoadBalancer" -ResourceGroupName "MyResourceGroup" +Get-AzLoadBalancerBackendAddressInboundNatRulePortMapping -LoadBalancer $slb -Name $backendAddressPoolName -IpAddress $testIpAddress1 +``` + ++ Example 4 +```powershell +#### Get inbound nat rule port mapping by ip address and backend pool id +Get-AzLoadBalancerBackendAddressInboundNatRulePortMapping -ResourceId $backendPool1.Id -IpAddress $testIpAddress1 +``` + + +#### New-AzLoadBalancerBackendAddressPool + +#### SYNOPSIS +Creates a backend address pool on a loadbalancer. + +#### SYNTAX + ++ CreateByNameParameterSet (Default) +```powershell +New-AzLoadBalancerBackendAddressPool -ResourceGroupName -LoadBalancerName -Name + [-TunnelInterface ] [-LoadBalancerBackendAddress ] + [-SyncMode ] [-VirtualNetworkId ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ CreateByParentObjectParameterSet +```powershell +New-AzLoadBalancerBackendAddressPool -LoadBalancer -Name + [-TunnelInterface ] [-LoadBalancerBackendAddress ] + [-SyncMode ] [-VirtualNetworkId ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +#### create by passing loadbalancer without Ips +$virtualNetwork = Get-AzVirtualNetwork -Name $vnetName -ResourceGroupName $resourceGroup +$lb = Get-AzLoadBalancer -ResourceGroupName $resourceGroup -Name $loadBalancerName +$ip1 = New-AzLoadBalancerBackendAddressConfig -IpAddress "10.0.0.5" -Name "TestVNetRef" -VirtualNetworkId $virtualNetwork.Id +$ip2 = New-AzLoadBalancerBackendAddressConfig -IpAddress "10.0.0.6" -Name "TestVNetRef2" -VirtualNetworkId $virtualNetwork.Id +$ips = @($ip1, $ip2) + +$lb | New-AzLoadBalancerBackendAddressPool -Name $backendPool1 +``` + ++ Example 2 +```powershell +#### create by passing loadbalancer with ips +$lb | New-AzLoadBalancerBackendAddressPool -Name $backendPool7 -LoadBalancerBackendAddress $ips +``` + ++ Example 3 +```powershell +#### create by name without ips +New-AzLoadBalancerBackendAddressPool -ResourceGroupName $resourceGroup -LoadBalancerName $loadBalancerName -Name $backendPool3 +``` + ++ Example 4 +```powershell +#### create by name with ips +New-AzLoadBalancerBackendAddressPool -ResourceGroupName $resourceGroup -LoadBalancerName $loadBalancerName -Name $backendPool3 -LoadBalancerBackendAddress $ips +``` + ++ Example 5: Create a backend address pool configuration with tunnel interface for a load balancer +```powershell +#### create with Gateway LoadBalancer TunnelInterface configuration +$tunnelInterface1 = New-AzLoadBalancerBackendAddressPoolTunnelInterfaceConfig -Protocol 'Vxlan' -Type 'Internal' -Port 2000 -Identifier 800 +$tunnelInterface2 = New-AzLoadBalancerBackendAddressPoolTunnelInterfaceConfig -Protocol 'Vxlan' -Type 'External' -Port 2001 -Identifier 801 +New-AzLoadBalancerBackendAddressPool -ResourceGroupName $resourceGroup -LoadBalancerName $loadBalancerName -Name $backendPool3 -TunnelInterface $tunnelInterface1, $tunnelInterface2 +``` + + +#### Get-AzLoadBalancerBackendAddressPool + +#### SYNOPSIS +Get-AzLoadBalancerBackendAddressPool retrieves one or more backend address pools associated with a load balancer. + +#### SYNTAX + ++ GetByNameParameterSet (Default) +```powershell +Get-AzLoadBalancerBackendAddressPool -ResourceGroupName -LoadBalancerName [-Name ] + [-DefaultProfile ] [] +``` + ++ GetByParentObjectParameterSet +```powershell +Get-AzLoadBalancerBackendAddressPool [-Name ] -LoadBalancer + [-DefaultProfile ] [] +``` + ++ GetByResourceIdParameterSet +```powershell +Get-AzLoadBalancerBackendAddressPool -ResourceId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +#### Get single backend under loadbalancer +$lb = Get-AzLoadBalancer -ResourceGroupName $resourceGroup -Name $loadBalancerName +``` + +```powershell +#### Get all backends under loadbalancer +$lb | Get-AzLoadBalancerBackendAddressPool +``` + ++ Example 2 +```powershell +####Get specific backend from loadbalancer +$lb | Get-AzLoadBalancerBackendAddressPool -Name $backendPool1 +``` + ++ Example 3 +```powershell +####Get a backend by resource Id +Get-AzLoadBalancerBackendAddressPool -ResourceId $backendPool1.Id +``` + + +#### Remove-AzLoadBalancerBackendAddressPool + +#### SYNOPSIS +Removes a backend pool from a load balancer + +#### SYNTAX + ++ DeleteByNameParameterSet (Default) +```powershell +Remove-AzLoadBalancerBackendAddressPool -ResourceGroupName -Name [-LoadBalancerName ] + [-PassThru] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + ++ DeleteByParentObjectParameterSet +```powershell +Remove-AzLoadBalancerBackendAddressPool -Name [-LoadBalancerName ] + -LoadBalancer [-PassThru] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ DeleteByInputObjectParameterSet +```powershell +Remove-AzLoadBalancerBackendAddressPool [-LoadBalancerName ] -InputObject + [-PassThru] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + ++ DeleteByResourceIdParameterSet +```powershell +Remove-AzLoadBalancerBackendAddressPool [-LoadBalancerName ] -ResourceId [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +####removing by passing lb object via pipeline +$lb | Remove-AzLoadBalancerBackendAddressPool -Name $backendPool1 +``` + ++ Example 2 +```powershell +####removing by passing input object +Remove-AzLoadBalancerBackendAddressPool -InputObject $backendPoolObject +``` + ++ Example 3 +```powershell +####removing by passing input object +Remove-AzLoadBalancerBackendAddressPool -ResourceId $backendPoolObject.Id +``` + + +#### Set-AzLoadBalancerBackendAddressPool + +#### SYNOPSIS +Updates the backend pool on a loadbalancer + +#### SYNTAX + ++ SetByNameParameterSet (Default) +```powershell +Set-AzLoadBalancerBackendAddressPool -ResourceGroupName -LoadBalancerName -Name + -LoadBalancerBackendAddress [-TunnelInterface ] [-Force] + [-PassThru] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + ++ SetByParentObjectParameterSet +```powershell +Set-AzLoadBalancerBackendAddressPool -Name -LoadBalancer + -LoadBalancerBackendAddress [-TunnelInterface ] [-Force] + [-PassThru] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + ++ SetByInputObjectParameterSet +```powershell +Set-AzLoadBalancerBackendAddressPool -InputObject + [-TunnelInterface ] [-Force] [-PassThru] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ SetByResourceIdParameterSet +```powershell +Set-AzLoadBalancerBackendAddressPool -LoadBalancerBackendAddress + -ResourceId [-TunnelInterface ] [-Force] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +#### Set by name and modified input object +$virtualNetwork = Get-AzVirtualNetwork -Name $vnetName -ResourceGroupName $resourceGroup +$lb = Get-AzLoadBalancer -ResourceGroupName $resourceGroup -Name $loadBalancerName +$ip1 = New-AzLoadBalancerBackendAddressConfig -IpAddress "10.0.0.5" -Name "TestVNetRef" -VirtualNetworkId $virtualNetwork.Id +$ip2 = New-AzLoadBalancerBackendAddressConfig -IpAddress "10.0.0.6" -Name "TestVNetRef2" -VirtualNetworkId $virtualNetwork.Id +$ip3 = New-AzLoadBalancerBackendAddressConfig -IpAddress "10.0.0.7" -Name "TestVNetRef3" -VirtualNetworkId $virtualNetwork.id +$tunnelInterface1 = New-AzLoadBalancerBackendAddressPoolTunnelInterfaceConfig -Protocol "Vxlan" -Type "Internal" -Port 2000 -Identifier 800 +$tunnelInterface2 = New-AzLoadBalancerBackendAddressPoolTunnelInterfaceConfig -Protocol "Vxlan" -Type "External" -Port 2001 -Identifier 801 +New-AzLoadBalancerBackendAddressPool -ResourceGroupName $resourceGroup -LoadBalancerName $loadBalancerName -Name $backendPool3 -TunnelInterface $tunnelInterface1, $tunnelInterface2 +$ips = @($ip1, $ip2) +$b2 = Get-AzLoadBalancerBackendAddressPool -ResourceGroupName $resourceGroup -LoadBalancerName $loadBalancerName -Name $backendPool1 +$b2.LoadBalancerBackendAddresses.Add($ip3) + +Set-AzLoadBalancerBackendAddressPool -InputObject $b2 +``` + ++ Example 2 +```powershell +#### Set by specific backend from piped loadbalancer and set two IP's +$lb | Set-AzLoadBalancerBackendAddressPool -LoadBalancerBackendAddress $ips -Name $backendPool1 +``` + ++ Example 3 +```powershell +#### Set by ResourceId +Set-AzLoadBalancerBackendAddressPool -ResourceId $b2.Id -LoadBalancerBackendAddress $b2.LoadBalancerBackendAddresses +``` + + +#### New-AzLoadBalancerBackendAddressPoolConfig + +#### SYNOPSIS +Creates a backend address pool configuration for a load balancer. + +#### SYNTAX + +```powershell +New-AzLoadBalancerBackendAddressPoolConfig -Name [-TunnelInterface ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Create a backend address pool configuration for a load balancer +```powershell +New-AzLoadBalancerBackendAddressPoolConfig -Name "BackendAddressPool02" +``` + +This command creates a backend address pool configuration named BackendAddressPool02 for a load balancer. + ++ Example 2: Create a backend address pool configuration with tunnel interface for a load balancer +```powershell +#### create with Gateway LoadBalancer TunnelInterface configuration +$tunnelInterface1 = New-AzLoadBalancerBackendAddressPoolTunnelInterfaceConfig -Protocol 'Vxlan' -Type 'Internal' -Port 2000 -Identifier 800 +$tunnelInterface2 = New-AzLoadBalancerBackendAddressPoolTunnelInterfaceConfig -Protocol 'Vxlan' -Type 'External' -Port 2001 -Identifier 801 +New-AzLoadBalancerBackendAddressPool -ResourceGroupName $resourceGroup -LoadBalancerName $loadBalancerName -Name $backendPool3 -TunnelInterface $tunnelInterface1, $tunnelInterface2 +``` + + +#### Add-AzLoadBalancerBackendAddressPoolConfig + +#### SYNOPSIS +Adds a backend address pool configuration to a load balancer. + +#### SYNTAX + +```powershell +Add-AzLoadBalancerBackendAddressPoolConfig -LoadBalancer -Name + [-TunnelInterface ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Add a backend address pool configuration to a load balancer +```powershell +Get-AzLoadBalancer -Name "MyLoadBalancer" -ResourceGroupName "myrg" | Add-AzLoadBalancerBackendAddressPoolConfig -Name "BackendAddressPool02" | Set-AzLoadBalancer +``` + +This command gets the load balancer named MyLoadBalancer, adds the backend address pool named BackendAddressPool02 to MyLoadBalancer, and then uses the **Set-AzLoadBalancer** cmdlet to update MyLoadBalancer. + + +#### Get-AzLoadBalancerBackendAddressPoolConfig + +#### SYNOPSIS +Gets a backend address pool configuration for a load balancer. + +#### SYNTAX + +```powershell +Get-AzLoadBalancerBackendAddressPoolConfig -LoadBalancer [-Name ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Get the backend address pool +```powershell +$loadbalancer = Get-AzLoadBalancer -Name "MyLoadBalancer" -ResourceGroupName "MyResourceGroup" +Get-AzLoadBalancerBackendAddressPoolConfig -Name "BackendAddressPool02" -LoadBalancer $loadbalancer +``` + +The first command gets an existing load balancer named MyLoadBalancer in the resource group named MyResourceGroup, and then stores it in the $loadbalancer variable. +The second command gets the associated backend address pool configuration named BackendAddressPool02 for the load balancer in $loadbalancer. + + +#### Remove-AzLoadBalancerBackendAddressPoolConfig + +#### SYNOPSIS +Removes a backend address pool configuration from a load balancer. + +#### SYNTAX + +```powershell +Remove-AzLoadBalancerBackendAddressPoolConfig -LoadBalancer [-Name ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Remove a backend address pool configuration from a load balancer +```powershell +Get-AzLoadBalancer -Name "MyLoadBalancer" -ResourceGroupName "MyResourceGroup" | Remove-AzLoadBalancerBackendAddressPoolConfig -Name "BackendAddressPool02" | Set-AzLoadBalancer +``` + +This command gets the load balancer named MyLoadBalancer and passes it to **Remove-AzLoadBalancerBackendAddressPoolConfig**, which removes the BackendAddressPool02 configuration from MyLoadBalancer. +Finally, the Set-AzLoadBalancer cmdlet updates MyLoadBalancer. +Note that a backend address pool configuration must exist before you can delete it. + + +#### New-AzLoadBalancerBackendAddressPoolTunnelInterfaceConfig + +#### SYNOPSIS +Creates a tunnel interface in a backend address pool of a load balancer. + +#### SYNTAX + +```powershell +New-AzLoadBalancerBackendAddressPoolTunnelInterfaceConfig -Protocol -Type -Identifier + -Port [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Add a tunnel interface to a backend address pool configuration to a load balancer +```powershell +#### Get loadbalancer +$lb = Get-AzLoadBalancer -ResourceGroupName $resourceGroup -Name $loadBalancerName + +#### Create tunnel interface to backend address pool +$tunnelInterface1 = New-AzLoadBalancerBackendAddressPoolTunnelInterfaceConfig -Protocol Vxlan -Type Internal -Port 2000 -Identifier 800 +$tunnelInterface2 = New-AzLoadBalancerBackendAddressPoolTunnelInterfaceConfig -Protocol Vxlan -Type External -Port 2001 -Identifier 801 + +#### Set backend address pool +$pool = Set-AzLoadBalancerBackendAddressPool -Name "BackendAddressPool02" -TunnelInterface $tunnelInterface1, $tunnelInterface2 +``` + +If the properties are not provided then they will be replaced with default values. + + +#### New-AzLoadBalancerFrontendIpConfig + +#### SYNOPSIS +Creates a front-end IP configuration for a load balancer. + +#### SYNTAX + ++ SetByResourceSubnet (Default) +```powershell +New-AzLoadBalancerFrontendIpConfig -Name [-PrivateIpAddress ] + [-PrivateIpAddressVersion ] [-Zone ] -Subnet + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByResourceIdSubnet +```powershell +New-AzLoadBalancerFrontendIpConfig -Name [-PrivateIpAddress ] + [-PrivateIpAddressVersion ] [-Zone ] -SubnetId + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByResourceIdPublicIpAddress +```powershell +New-AzLoadBalancerFrontendIpConfig -Name [-Zone ] -PublicIpAddressId + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByResourcePublicIpAddress +```powershell +New-AzLoadBalancerFrontendIpConfig -Name [-Zone ] -PublicIpAddress + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByResourceIdPublicIpAddressPrefix +```powershell +New-AzLoadBalancerFrontendIpConfig -Name [-Zone ] -PublicIpAddressPrefixId + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByResourcePublicIpAddressPrefix +```powershell +New-AzLoadBalancerFrontendIpConfig -Name [-Zone ] -PublicIpAddressPrefix + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Create a front-end IP configuration for a load balancer +```powershell +$publicip = New-AzPublicIpAddress -ResourceGroupName "MyResourceGroup" -Name "MyPublicIP" -Location "West US" -AllocationMethod "Dynamic" +New-AzLoadBalancerFrontendIpConfig -Name "FrontendIpConfig01" -PublicIpAddress $publicip +``` + +The first command creates a dynamic public IP address named MyPublicIP in the resource group named MyResourceGroup, and then stores it in the $publicip variable. +The second command creates a front-end IP configuration named FrontendIpConfig01 using the public IP address in $publicip. + ++ Example 2: Create a front-end IP configuration for a load balancer using ip prefix +```powershell +$publicipprefix = New-AzPublicIpPrefix -ResourceGroupName "MyResourceGroup" -name "MyPublicIPPrefix" -location "West US" -Sku Standard -PrefixLength 28 +$frontend = New-AzLoadBalancerFrontendIpConfig -Name "FrontendIpConfig01" -PublicIpAddressPrefix $publicipprefix +``` + +The first command creates a public ip prefix named MyPublicIP of length 28 in the resource group named MyResourceGroup, and then stores it in the $publicipprefix variable. +The second command creates a front-end IP configuration named FrontendIpConfig01 using the public IP prefix in $publicipprefix. + + +#### Add-AzLoadBalancerFrontendIpConfig + +#### SYNOPSIS +Adds a front-end IP configuration to a load balancer. + +#### SYNTAX + ++ SetByResourceSubnet (Default) +```powershell +Add-AzLoadBalancerFrontendIpConfig -LoadBalancer -Name [-PrivateIpAddress ] + [-PrivateIpAddressVersion ] [-Zone ] -Subnet [-GatewayLoadBalancerId ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByResourceIdSubnet +```powershell +Add-AzLoadBalancerFrontendIpConfig -LoadBalancer -Name [-PrivateIpAddress ] + [-PrivateIpAddressVersion ] [-Zone ] -SubnetId [-GatewayLoadBalancerId ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByResourceIdPublicIpAddress +```powershell +Add-AzLoadBalancerFrontendIpConfig -LoadBalancer -Name [-Zone ] + -PublicIpAddressId [-GatewayLoadBalancerId ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ SetByResourcePublicIpAddress +```powershell +Add-AzLoadBalancerFrontendIpConfig -LoadBalancer -Name [-Zone ] + -PublicIpAddress [-GatewayLoadBalancerId ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByResourceIdPublicIpAddressPrefix +```powershell +Add-AzLoadBalancerFrontendIpConfig -LoadBalancer -Name [-Zone ] + -PublicIpAddressPrefixId [-GatewayLoadBalancerId ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ SetByResourcePublicIpAddressPrefix +```powershell +Add-AzLoadBalancerFrontendIpConfig -LoadBalancer -Name [-Zone ] + -PublicIpAddressPrefix [-GatewayLoadBalancerId ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 Add a front-end IP configuration with a dynamic IP address +```powershell +$Subnet = Get-AzVirtualNetwork -Name "MyVnet" -ResourceGroupName "MyRg" | Get-AzVirtualNetworkSubnetConfig -Name "MySubnet" +Get-AzLoadBalancer -Name "MyLB" -ResourceGroupName "NrpTest" | Add-AzLoadBalancerFrontendIpConfig -Name "FrontendName" -Subnet $Subnet | Set-AzLoadBalancer +``` + +The first command gets the Azure virtual network named MyVnet and passes the result using the pipeline to the **Get-AzVirtualNetworkSubnetConfig** cmdlet to get the subnet named MySubnet. +The command then stores the result in the variable named $Subnet. +The second command gets the load balancer named MyLB and passes the result to the **Add-AzLoadBalancerFrontendIpConfig** cmdlet that adds a front-end IP configuration to the load balancer with a dynamic private IP address from the subnet stored in the variable named $MySubnet. + ++ Example 2 Add a front-end IP configuration with a static IP address +```powershell +$Subnet = Get-AzVirtualNetwork -Name "MyVnet" -ResourceGroupName "RG001" | Get-AzVirtualNetworkSubnetConfig -Name "MySubnet" +Get-AzLoadBalancer -Name "MyLB" -ResourceGroupName "NrpTest" | Add-AzLoadBalancerFrontendIpConfig -Name "FrontendName" -Subnet $Subnet -PrivateIpAddress "10.0.1.6" | Set-AzLoadBalancer +``` + +The first command gets the Azure virtual network named MyVnet and passes the result using the pipeline to the **Get-AzVirtualNetworkSubnetConfig** cmdlet to get the subnet named MySubnet. +The command then stores the result in the variable named $Subnet. +The second command gets the load balancer named MyLB and passes the result to the **Add-AzLoadBalancerFrontendIpConfig** cmdlet that adds a front-end IP configuration to the load balancer with a static private IP address from the subnet stored in the variable named $Subnet. + ++ Example 3 Add a front-end IP configuration with a public IP address +```powershell +$PublicIp = Get-AzPublicIpAddress -ResourceGroupName "myRG" -Name "MyPub" +Get-AzLoadBalancer -Name "MyLB" -ResourceGroupName "NrpTest" | Add-AzLoadBalancerFrontendIpConfig -Name "FrontendName" -PublicIpAddress $PublicIp | Set-AzLoadBalancer +``` + +The first command gets the Azure public IP address named MyPub and stores the result in the variable named $PublicIp. +The second command gets the load balancer named MyLB and passes the result to the **Add-AzLoadBalancerFrontendIpConfig** cmdlet that adds a front-end IP configuration to the load balancer with public IP address stored in the variable named $PublicIp. + ++ Example 4 Add a front-end IP configuration with a public IP prefix +```powershell +$PublicIpPrefix = Get-AzPublicIpPrefix -ResourceGroupName "myRG" -Name "MyPubPrefix" +Get-AzLoadBalancer -Name "MyLB" -ResourceGroupName "NrpTest" | Add-AzLoadBalancerFrontendIpConfig -Name "FrontendName" -PublicIpAddressPrefix $PublicIpPrefix | Set-AzLoadBalancer +``` + +The first command gets the Azure public IP prefix named MyPubPrefix and stores the result in the variable named $PublicIpPrefix. +The second command gets the load balancer named MyLB and passes the result to the **Add-AzLoadBalancerFrontendIpConfig** cmdlet that adds a front-end IP configuration to the load balancer with public IP prefix stored in the variable named $PublicIpPrefix. + + +#### Get-AzLoadBalancerFrontendIpConfig + +#### SYNOPSIS +Gets a front-end IP configuration in a load balancer. + +#### SYNTAX + +```powershell +Get-AzLoadBalancerFrontendIpConfig -LoadBalancer [-Name ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Get a front-end IP configuration in a load balancer +```powershell +$slb = Get-AzLoadBalancer -Name "MyLoadBalancer" -ResourceGroupName "MyResourceGroup" +Get-AzLoadBalancerFrontendIpConfig -Name "MyFrontEnd" -LoadBalancer $slb +``` + +The first command gets the load balancer named MyLoadBalancer, and then stores it in the variable $slb. +The second command gets the front end IP configuration associated with that load balancer. + + +#### Remove-AzLoadBalancerFrontendIpConfig + +#### SYNOPSIS +Removes a front-end IP configuration from a load balancer. + +#### SYNTAX + +```powershell +Remove-AzLoadBalancerFrontendIpConfig -LoadBalancer [-Name ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Remove a front-end IP configuration from a load balancer +```powershell +$loadbalancer = Get-AzLoadBalancer -Name "MyLoadBalancer" -ResourceGroupName "MyResourceGroup" +Remove-AzLoadBalancerFrontendIpConfig -Name "frontendName" -LoadBalancer $loadbalancer +``` + +The first command gets the load balancer that is associated with the front-end IP configuration you want to remove, and then stores it in the $loadbalancer variable. +The second command removes the associated frontend IP configuration from the load balancer in $loadbalancer. + + +#### Set-AzLoadBalancerFrontendIpConfig + +#### SYNOPSIS +Updates a front-end IP configuration for a load balancer. + +#### SYNTAX + ++ SetByResourceSubnet (Default) +```powershell +Set-AzLoadBalancerFrontendIpConfig -LoadBalancer -Name [-PrivateIpAddress ] + [-PrivateIpAddressVersion ] [-Zone ] -Subnet [-GatewayLoadBalancerId ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByResourceIdSubnet +```powershell +Set-AzLoadBalancerFrontendIpConfig -LoadBalancer -Name [-PrivateIpAddress ] + [-PrivateIpAddressVersion ] [-Zone ] -SubnetId [-GatewayLoadBalancerId ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByResourceIdPublicIpAddress +```powershell +Set-AzLoadBalancerFrontendIpConfig -LoadBalancer -Name [-Zone ] + -PublicIpAddressId [-GatewayLoadBalancerId ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ SetByResourcePublicIpAddress +```powershell +Set-AzLoadBalancerFrontendIpConfig -LoadBalancer -Name [-Zone ] + -PublicIpAddress [-GatewayLoadBalancerId ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByResourceIdPublicIpAddressPrefix +```powershell +Set-AzLoadBalancerFrontendIpConfig -LoadBalancer -Name [-Zone ] + -PublicIpAddressPrefixId [-GatewayLoadBalancerId ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ SetByResourcePublicIpAddressPrefix +```powershell +Set-AzLoadBalancerFrontendIpConfig -LoadBalancer -Name [-Zone ] + -PublicIpAddressPrefix [-GatewayLoadBalancerId ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Modify the front-end IP configuration of a load balancer +```powershell +$Subnet = Get-AzVirtualNetwork -Name "MyVnet" -ResourceGroupName "MyResourceGroup" | Get-AzVirtualNetworkSubnetConfig -Name "Subnet" +$slb = Get-AzLoadBalancer -Name "MyLoadBalancer" -ResourceGroupName "MyResourceGroup" +$slb | Add-AzLoadBalancerFrontendIpConfig -Name "NewFrontend" -Subnet $Subnet +$slb | Set-AzLoadBalancerFrontendIpConfig -Name "NewFrontend" -Subnet $Subnet +$slb | Set-AzLoadBalancer +``` + +The first command gets the virtual subnet named Subnet, and then stores it in the $Subnet variable. +The second command gets the associated load balancer named MyLoadBalancer, and then stores it in the $slb variable. +The third command uses the pipeline operator to pass the load balancer in $slb to Add-AzLoadBalancerFrontendIpConfig, which creates a front-end IP configuration named NewFrontend for $slb. +The fourth command passes the load balancer in $slb to **Set-AzLoadBalancerFrontendIpConfig**, which saves and updates the front-end IP configuration. + ++ Example 2: Modify the front-end IP configuration of a load balancer with Gateway Load Balancer +```powershell +$slb1 = Get-AzLoadBalancer -Name "MyLoadBalancer1" -ResourceGroupName "MyResourceGroup" +$feip = Get-AzLoadBalancerFrontendIpConfig -Name "MyFrontEnd" -LoadBalancer $slb1 +$slb2 = Get-AzLoadBalancer -Name "MyLoadBalancer1" -ResourceGroupName "MyResourceGroup" +$slb2 | Set-AzLoadBalancerFrontendIpConfig -Name "NewFrontend" -PublicIpAddress $publicIp -GatewayLoadBalancerId $feip.Id +$slb2 | Set-AzLoadBalancer +``` + + +#### New-AzLoadBalancerInboundNatPoolConfig + +#### SYNOPSIS +Creates an inbound NAT pool configuration for a load balancer. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +New-AzLoadBalancerInboundNatPoolConfig -Name -Protocol -FrontendPortRangeStart + -FrontendPortRangeEnd -BackendPort [-IdleTimeoutInMinutes ] [-EnableFloatingIP] + [-EnableTcpReset] [-FrontendIpConfiguration ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByResourceId +```powershell +New-AzLoadBalancerInboundNatPoolConfig -Name -Protocol -FrontendPortRangeStart + -FrontendPortRangeEnd -BackendPort [-IdleTimeoutInMinutes ] [-EnableFloatingIP] + [-EnableTcpReset] [-FrontendIpConfigurationId ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: New +```powershell +$slb = Get-AzLoadBalancer -Name "MyLoadBalancer" -ResourceGroupName "MyResourceGroup" +$feIpConfig = Get-AzLoadBalancerFrontendIpConfig -Name "FrontendName" -Loadbalancer $slb +New-AzLoadBalancerInboundNatPoolConfig -Name "myInboundNatPool" -FrontendIpConfigurationId $feIpConfig.Id -Protocol TCP -FrontendPortRangeStart 1001 -FrontendPortRangeEnd 2000 -BackendPort 1001 +``` + + +#### Add-AzLoadBalancerInboundNatPoolConfig + +#### SYNOPSIS +Adds an inbound NAT pool to a load balancer. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +Add-AzLoadBalancerInboundNatPoolConfig -LoadBalancer -Name -Protocol + -FrontendPortRangeStart -FrontendPortRangeEnd -BackendPort + [-IdleTimeoutInMinutes ] [-EnableFloatingIP] [-EnableTcpReset] + [-FrontendIpConfiguration ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ SetByResourceId +```powershell +Add-AzLoadBalancerInboundNatPoolConfig -LoadBalancer -Name -Protocol + -FrontendPortRangeStart -FrontendPortRangeEnd -BackendPort + [-IdleTimeoutInMinutes ] [-EnableFloatingIP] [-EnableTcpReset] [-FrontendIpConfigurationId ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Add +```powershell +$slb = Get-AzLoadBalancer -Name "MyLoadBalancer" -ResourceGroupName "MyResourceGroup" +$feIpConfig = Get-AzLoadBalancerFrontendIpConfig -Name "FrontendName" -Loadbalancer $slb +$slb | Add-AzLoadBalancerInboundNatPoolConfig -Name "myInboundNatPool" -Protocol TCP -FrontendIPConfigurationId $feIpConfig.Id -FrontendPortRangeStart 1001 -FrontendPortRangeEnd 2000 -BackendPort 1001 +$lb | Set-AzLoadBalancer +``` + ++ Example 2 + +Adds an inbound NAT pool to a load balancer. (autogenerated) + + + + +```powershell +Add-AzLoadBalancerInboundNatPoolConfig -BackendPort 1001 -FrontendIpConfigurationId -FrontendPortRangeEnd 2000 -FrontendPortRangeStart 1001 -Name 'myInboundNatPool' -Protocol TCP -LoadBalancer +``` + + +#### Get-AzLoadBalancerInboundNatPoolConfig + +#### SYNOPSIS +Gets one or more inbound NAT pool configurations from a load balancer. + +#### SYNTAX + +```powershell +Get-AzLoadBalancerInboundNatPoolConfig -LoadBalancer [-Name ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Get +```powershell +$slb = Get-AzLoadBalancer -Name "MyLoadBalancer" -ResourceGroupName "MyResourceGroup" +$slb | Get-AzLoadBalancerInboundNatPoolConfig -Name myInboundNatPool +``` + + +#### Remove-AzLoadBalancerInboundNatPoolConfig + +#### SYNOPSIS +Removes an inbound NAT pool configuration from a load balancer. + +#### SYNTAX + +```powershell +Remove-AzLoadBalancerInboundNatPoolConfig -LoadBalancer [-Name ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Remove +```powershell +$slb = Get-AzLoadBalancer -Name "MyLoadBalancer" -ResourceGroupName "MyResourceGroup" +Remove-AzLoadBalancerInboundNatPoolConfig -Name myinboundnatpool -LoadBalancer $slb +``` + + +#### Set-AzLoadBalancerInboundNatPoolConfig + +#### SYNOPSIS +Sets an inbound NAT pool configuration for a load balancer. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +Set-AzLoadBalancerInboundNatPoolConfig -LoadBalancer -Name -Protocol + -FrontendPortRangeStart -FrontendPortRangeEnd -BackendPort + [-IdleTimeoutInMinutes ] [-EnableFloatingIP] [-EnableTcpReset] + [-FrontendIpConfiguration ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ SetByResourceId +```powershell +Set-AzLoadBalancerInboundNatPoolConfig -LoadBalancer -Name -Protocol + -FrontendPortRangeStart -FrontendPortRangeEnd -BackendPort + [-IdleTimeoutInMinutes ] [-EnableFloatingIP] [-EnableTcpReset] [-FrontendIpConfigurationId ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Set +```powershell +$slb = Get-AzLoadBalancer -Name "MyLoadBalancer" -ResourceGroupName "MyResourceGroup" +$feIpConfig = Get-AzLoadBalancerFrontendIpConfig -Name "FrontendName" -LoadBalancer $slb +Set-AzLoadBalancerInboundNatPoolConfig -Name "myInboundNatPool" -LoadBalancer $slb -FrontendIpConfigurationId $inboundNatPoolConfig.FrontendIPConfiguration -Protocol TCP -FrontendPortRangeStart 2001 -FrontendPortRangeEnd 3000 -BackendPort 2001 +$slb | Set-AzLoadBalancer +``` + + +#### New-AzLoadBalancerInboundNatRuleConfig + +#### SYNOPSIS +Creates an inbound NAT rule configuration for a load balancer. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +New-AzLoadBalancerInboundNatRuleConfig -Name [-Protocol ] [-FrontendPort ] + [-BackendPort ] [-IdleTimeoutInMinutes ] [-EnableFloatingIP] [-EnableTcpReset] + [-FrontendIpConfiguration ] [-FrontendPortRangeStart ] + [-FrontendPortRangeEnd ] [-BackendAddressPool ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByResourceId +```powershell +New-AzLoadBalancerInboundNatRuleConfig -Name [-Protocol ] [-FrontendPort ] + [-BackendPort ] [-IdleTimeoutInMinutes ] [-EnableFloatingIP] [-EnableTcpReset] + [-FrontendIpConfigurationId ] [-FrontendPortRangeStart ] [-FrontendPortRangeEnd ] + [-BackendAddressPoolId ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Create an inbound NAT rule configuration for a load balancer +```powershell +$publicip = New-AzPublicIpAddress -ResourceGroupName "MyResourceGroup" -Name "MyPublicIP" -Location "West US" -AllocationMethod "Dynamic" +$frontend = New-AzLoadBalancerFrontendIpConfig -Name "FrontendIpConfig01" -PublicIpAddress $publicip +New-AzLoadBalancerInboundNatRuleConfig -Name "MyInboundNatRule" -FrontendIPConfiguration $frontend -Protocol "Tcp" -FrontendPort 3389 -BackendPort 3389 +``` + +The first command creates a public IP address named MyPublicIP in the resource group named MyResourceGroup, and then stores it in the $publicip variable. +The second command creates a front-end IP configuration named FrontendIpConfig01 using the public IP address in $publicip, and then stores it in the $frontend variable. +The third command creates an inbound NAT rule configuration named MyInboundNatRule using the front-end object in $frontend. +The TCP protocol is specified and the front-end port is 3389, the same as the backend port in this case. +The *FrontendIpConfiguration*, *Protocol*, *FrontendPort*, and *BackendPort* parameters are all required to create an inbound NAT rule configuration. + ++ Example 2: Create an inbound NAT rule V2 configuration for a load balancer +```powershell +$slb = Get-AzLoadBalancer -Name "MyLoadBalancer" -ResourceGroupName "MyResourceGroup" +$natRuleV2 = New-AzLoadBalancerInboundNatRuleConfig -Name natRuleV2 -Protocol "Tcp" -FrontendIpConfiguration $slb.FrontendIpConfigurations[0] -FrontendPortRangeStart 3390 -FrontendPortRangeEnd 4001 -BackendAddressPool $slb.BackendAddressPools[0] -IdleTimeoutInMinutes 4 -BackendPort 3389 +``` + +The first command gets the load balancer named MyloadBalancer, and then stores it in the variable $slb. +The second command creates an inbound NAT rule configuration named natRuleV2.The *FrontendIpConfiguration*, *BackendAddressPool*, *Protocol*, *FrontendPortRangeStart*, *FrontendPortRangeEnd* and *BackendPort* parameters are all required to create an inbound NAT rule V2 configuration. + + +#### Add-AzLoadBalancerInboundNatRuleConfig + +#### SYNOPSIS +Adds an inbound NAT rule configuration to a load balancer. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +Add-AzLoadBalancerInboundNatRuleConfig -LoadBalancer -Name [-Protocol ] + [-FrontendPort ] [-BackendPort ] [-IdleTimeoutInMinutes ] [-EnableFloatingIP] + [-EnableTcpReset] [-FrontendIpConfiguration ] [-FrontendPortRangeStart ] + [-FrontendPortRangeEnd ] [-BackendAddressPool ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByResourceId +```powershell +Add-AzLoadBalancerInboundNatRuleConfig -LoadBalancer -Name [-Protocol ] + [-FrontendPort ] [-BackendPort ] [-IdleTimeoutInMinutes ] [-EnableFloatingIP] + [-EnableTcpReset] [-FrontendIpConfigurationId ] [-FrontendPortRangeStart ] + [-FrontendPortRangeEnd ] [-BackendAddressPoolId ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Add an inbound NAT rule configuration to a load balancer +```powershell +$slb = Get-AzLoadBalancer -Name "MyLoadBalancer" -ResourceGroupName "MyResourceGroup" +$slb | Add-AzLoadBalancerInboundNatRuleConfig -Name "NewNatRule" -FrontendIPConfiguration $slb.FrontendIpConfigurations[0] -Protocol "Tcp" -FrontendPort 3350 -BackendPort 3350 -EnableFloatingIP +$slb | Set-AzLoadBalancer +``` + +The first command gets the load balancer named MyloadBalancer, and then stores it in the variable $slb. +The second command uses the pipeline operator to pass the load balancer in $slb to **Add-AzLoadBalancerInboundNatRuleConfig**, which adds an inbound NAT rule configuration to the load balancer. +The last command sets the configuration to the loadbalancer, if you don't perform Set-AzLoadBalancer, your changes will not be applied to the loadbalancer. + ++ Example 2: Add an inbound NAT rule V2 configuration to a load balancer +```powershell +$slb = Get-AzLoadBalancer -Name "MyLoadBalancer" -ResourceGroupName "MyResourceGroup" +$slb | Add-AzLoadBalancerInboundNatRuleConfig -Name "NewNatRuleV2" -FrontendIPConfiguration $slb.FrontendIpConfigurations[0] -Protocol "Tcp" -IdleTimeoutInMinutes 10 -FrontendPortRangeStart 3389 -FrontendPortRangeEnd 4000 -BackendAddressPool $slb.BackendAddressPools[0] -BackendPort 3389 +$slb | Set-AzLoadBalancer +``` + +The first command gets the load balancer named MyloadBalancer, and then stores it in the variable $slb. +The second command uses the pipeline operator to pass the load balancer in $slb to **Add-AzLoadBalancerInboundNatRuleConfig**, which adds an inbound NAT rule V2 configuration to the load balancer. +The last command sets the configuration to the loadbalancer, if you don't perform Set-AzLoadBalancer, your changes will not be applied to the loadbalancer. + + +#### Get-AzLoadBalancerInboundNatRuleConfig + +#### SYNOPSIS +Gets an inbound NAT rule configuration for a load balancer. + +#### SYNTAX + +```powershell +Get-AzLoadBalancerInboundNatRuleConfig -LoadBalancer [-Name ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Get an inbound NAT rule configuration +```powershell +$slb = Get-AzLoadBalancer -Name "MyLoadBalancer" -ResourceGroupName "MyResourceGroup" +Get-AzLoadBalancerInboundNatRuleConfig -Name "MyInboundNatRule1" -LoadBalancer $slb +``` + +The first command gets the load balancer named MyLoadBalancer, and stores it in the variable $slb. +The second command gets the associated NAT rule named MyInboundNatRule1 from the load balancer in $slb. + + +#### Remove-AzLoadBalancerInboundNatRuleConfig + +#### SYNOPSIS +Removes an inbound NAT rule configuration from a load balancer. + +#### SYNTAX + +```powershell +Remove-AzLoadBalancerInboundNatRuleConfig -LoadBalancer [-Name ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Delete an inbound NAT rule from an Azure load balancer +```powershell +$loadbalancer = Get-AzLoadBalancer -Name mylb -ResourceGroupName myrg + +Remove-AzLoadBalancerInboundNatRuleConfig -Name "myinboundnatrule" -LoadBalancer $loadbalancer +``` + +The first command loads an already existing load balancer called "mylb" and stores it in the variable $load + balancer. The second command removes the inbound NAT rule associated with this load balancer. + + +#### Set-AzLoadBalancerInboundNatRuleConfig + +#### SYNOPSIS +Sets an inbound NAT rule configuration for a load balancer. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +Set-AzLoadBalancerInboundNatRuleConfig -LoadBalancer -Name [-Protocol ] + [-FrontendPort ] [-BackendPort ] [-IdleTimeoutInMinutes ] [-EnableFloatingIP] + [-EnableTcpReset] [-FrontendIpConfiguration ] [-FrontendPortRangeStart ] + [-FrontendPortRangeEnd ] [-BackendAddressPool ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByResourceId +```powershell +Set-AzLoadBalancerInboundNatRuleConfig -LoadBalancer -Name [-Protocol ] + [-FrontendPort ] [-BackendPort ] [-IdleTimeoutInMinutes ] [-EnableFloatingIP] + [-EnableTcpReset] [-FrontendIpConfigurationId ] [-FrontendPortRangeStart ] + [-FrontendPortRangeEnd ] [-BackendAddressPoolId ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Modify the inbound NAT rule configuration on a load balancer +```powershell +$slb = Get-AzLoadBalancer -Name "MyLoadBalancer" -ResourceGroupName "MyResourceGroup" +$slb | Add-AzLoadBalancerInboundNatRuleConfig -Name "NewNatRule" -FrontendIPConfiguration $slb.FrontendIpConfigurations[0] -Protocol "Tcp" -FrontendPort 3350 -BackendPort 3350 -EnableFloatingIP +$slb | Set-AzLoadBalancerInboundNatRuleConfig -Name "NewNatRule" -FrontendIPConfiguration $slb.FrontendIpConfigurations[0] -Protocol "Tcp" -FrontendPort 3350 -BackendPort 3350 +``` + +The first command gets the load balancer named MyLoadBalancer, and then stores it in the $slb variable. +The second command uses the pipeline operator to pass the load balancer in $slb to Add-AzLoadBalancerInboundNatRuleConfig, which adds an inbound NAT rule configuration to it. +The third command passes the load balancer to **Set-AzLoadBalancerInboundNatRuleConfig**, which saves and updates the inbound NAT rule configuration. +Note that the rule configuration was set without enabling floating IP, which had been enabled by the previous command. + ++ Example 2 + +Sets an inbound NAT rule configuration for a load balancer. (autogenerated) + + + + +```powershell +Set-AzLoadBalancerInboundNatRuleConfig -BackendPort 3350 -FrontendIpConfigurationId -FrontendPort 3350 -LoadBalancer -Name 'NewNatRule' -Protocol 'Tcp' +``` + ++ Example 3: Modify the inbound NAT rule V2 configuration on a load balancer +```powershell +$slb = Get-AzLoadBalancer -Name "MyLoadBalancer" -ResourceGroupName "MyResourceGroup" +$slb | Add-AzLoadBalancerInboundNatRuleConfig -Name "NewNatRuleV2" -FrontendIPConfiguration $slb.FrontendIpConfigurations[0] -Protocol "Tcp" -IdleTimeoutInMinutes 10 -FrontendPortRangeStart 3389 -FrontendPortRangeEnd 4000 -BackendAddressPool $slb.BackendAddressPools[0] -BackendPort 3389 +$slb | Set-AzLoadBalancerInboundNatRuleConfig -Name "NewNatRuleV2" -FrontendIPConfiguration $slb.FrontendIpConfigurations[0] -Protocol "Tcp" -IdleTimeoutInMinutes 10 -FrontendPortRangeStart 3370 -FrontendPortRangeEnd 3389 -BackendAddressPool $slb.BackendAddressPools[0] -BackendPort 3380 +``` + +The first command gets the load balancer named MyLoadBalancer, and then stores it in the $slb variable. +The second command uses the pipeline operator to pass the load balancer in $slb to Add-AzLoadBalancerInboundNatRuleConfig, which adds an inbound NAT rule V2 configuration to it. +The third command passes the load balancer to **Set-AzLoadBalancerInboundNatRuleConfig**, which saves and updates the inbound NAT rule V2 configuration. +Note that FrontendPortRangeStart, FrontendPortRangeEnd and BackendPort are changed in rule configuration. + + +#### New-AzLoadBalancerOutboundRuleConfig + +#### SYNOPSIS +Creates an outbound rule configuration for a load balancer. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +New-AzLoadBalancerOutboundRuleConfig -Name [-AllocatedOutboundPort ] -Protocol + [-EnableTcpReset] [-IdleTimeoutInMinutes ] -FrontendIpConfiguration + -BackendAddressPool [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ SetByResourceId +```powershell +New-AzLoadBalancerOutboundRuleConfig -Name [-AllocatedOutboundPort ] -Protocol + [-EnableTcpReset] [-IdleTimeoutInMinutes ] -FrontendIpConfiguration + -BackendAddressPoolId [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Create an outbound rule configuration for a load balancer +```powershell +$publicip = New-AzPublicIpAddress -ResourceGroupName "MyResourceGroup" -Name "MyPublicIP" -Location "West US" -AllocationMethod "Dynamic" -Sku "Standard" +$frontend = New-AzLoadBalancerFrontendIpConfig -Name "FrontendIpConfig01" -PublicIpAddress $publicip +$backend = New-AzLoadBalancerBackendAddressPoolConfig -Name "BackendAddressPool01" +New-AzLoadBalancerOutboundRuleConfig -Name "MyOutboundRule" -Protocol "Tcp" -FrontendIPConfiguration $frontend -BackendAddressPool $backend +``` + +The first command creates a public IP address named MyPublicIP in the resource group named MyResourceGroup, and then stores it in the $publicip variable. +The second command creates a front-end IP configuration named FrontendIpConfig01 using the public IP address in $publicip, and then stores it in the $frontend variable. +The third command creates a back-end address pool configuration named BackendAddressPool01, and then stores it in the $backend variable. +The fourth command creates an outbound rule configuration named MyOutboundRule using the front-end and back-end objects in $frontend and $backend. +The *Protocol*, *FrontendIPConfiguration*, and *BackendAddressPool* parameters are all required to create an outbound rule configuration. + ++ Example 2 + +Creates an outbound rule configuration for a load balancer. (autogenerated) + + + + +```powershell +New-AzLoadBalancerOutboundRuleConfig -BackendAddressPool -EnableTcpReset -FrontendIpConfiguration -Name 'MyOutboundRule' -Protocol 'Tcp' +``` + + +#### Add-AzLoadBalancerOutboundRuleConfig + +#### SYNOPSIS +Adds an outbound rule configuration to a load balancer. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +Add-AzLoadBalancerOutboundRuleConfig -LoadBalancer -Name + [-AllocatedOutboundPort ] -Protocol [-EnableTcpReset] [-IdleTimeoutInMinutes ] + -FrontendIpConfiguration -BackendAddressPool + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByResourceId +```powershell +Add-AzLoadBalancerOutboundRuleConfig -LoadBalancer -Name + [-AllocatedOutboundPort ] -Protocol [-EnableTcpReset] [-IdleTimeoutInMinutes ] + -FrontendIpConfiguration -BackendAddressPoolId + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Add an outbound rule configuration to a load balancer +```powershell +$slb = Get-AzLoadBalancer -ResourceGroupName "MyResourceGroup" -Name "MyLoadBalancer" +$slb | Add-AzLoadBalancerOutboundRuleConfig -Name "NewRule" -Protocol "Tcp" -FrontendIPConfiguration $slb.FrontendIpConfigurations[0] -BackendAddressPool $slb.BackendAddressPools[0] +``` + +The first command gets the load balancer named MyLoadBalancer, and then stores it in the variable $slb. +The second command uses the pipeline operator to pass the load balancer in $slb to **Add-AzLoadBalancerOutboundRuleConfig**, which adds an outbound rule configuration to the load balancer. + + +#### Get-AzLoadBalancerOutboundRuleConfig + +#### SYNOPSIS +Gets an outbound rule configuration in a load balancer. + +#### SYNTAX + +```powershell +Get-AzLoadBalancerOutboundRuleConfig -LoadBalancer [-Name ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Get an outbound rule configuration in a load balancer +```powershell +$slb = Get-AzLoadBalancer -ResourceGroupName "MyResourceGroup" -Name "MyLoadBalancer" +Get-AzLoadBalancerOutboundRuleConfig -LoadBalancer $slb -Name "MyRule" +``` + +The first command gets the load balancer named MyLoadBalancer, and then stores it in the variable $slb. +The second command gets the outbound rule configuration named MyRule associated with that load balancer. + + +#### Remove-AzLoadBalancerOutboundRuleConfig + +#### SYNOPSIS +Removes an outbound rule configuration from a load balancer. + +#### SYNTAX + +```powershell +Remove-AzLoadBalancerOutboundRuleConfig -LoadBalancer -Name + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Delete an outbound rule from an Azure load balancer +```powershell +$slb = Get-AzLoadBalancer -ResourceGroupName "MyResourceGroup" -Name "MyLoadBalancer" +Remove-AzLoadBalancerOutboundRuleConfig -Name "RuleName" -LoadBalancer $slb +Set-AzLoadBalancer -LoadBalancer $slb +``` + +The first command gets the load balancer that is associated with the outbound rule configuration you want to remove, and then stores it in the $slb variable. +The second command removes the associated outbound rule configuration from the load balancer. +The third command updates the load balancer. + + +#### Set-AzLoadBalancerOutboundRuleConfig + +#### SYNOPSIS +Sets an outbound rule configuration for a load balancer. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +Set-AzLoadBalancerOutboundRuleConfig -LoadBalancer -Name + [-AllocatedOutboundPort ] -Protocol [-EnableTcpReset] [-IdleTimeoutInMinutes ] + -FrontendIpConfiguration -BackendAddressPool + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByResourceId +```powershell +Set-AzLoadBalancerOutboundRuleConfig -LoadBalancer -Name + [-AllocatedOutboundPort ] -Protocol [-EnableTcpReset] [-IdleTimeoutInMinutes ] + -FrontendIpConfiguration -BackendAddressPoolId + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Modify the outbound rule configuration on a load balancer +```powershell +$slb = Get-AzLoadBalancer -ResourceGroupName "MyResourceGroup" -Name "MyLoadBalancer" +$slb | Add-AzLoadBalancerOutboundRuleConfig -Name "NewRule" -Protocol "Tcp" -FrontendIPConfiguration $slb.FrontendIpConfigurations[0] -BackendAddressPool $slb.BackendAddressPools[0] -IdleTimeoutInMinutes 5 +$slb | Set-AzLoadBalancerOutboundRuleConfig -Name "NewRule" -Protocol "Tcp" -FrontendIPConfiguration $slb.FrontendIpConfigurations[0] -BackendAddressPool $slb.BackendAddressPools[0] -IdleTimeoutInMinutes 10 +``` + +The first command gets the load balancer named MyLoadBalancer, and then stores it in the $slb variable. +The second command uses the pipeline operator to pass the load balancer in $slb to Add-AzLoadBalancerOutboundRuleConfig, which adds an outbound rule configuration to it. +The third command passes the load balancer to **Set-AzLoadBalancerOutboundRuleConfig**, which saves and updates the outbound rule configuration. + + +#### New-AzLoadBalancerProbeConfig + +#### SYNOPSIS +Creates a probe configuration for a load balancer. + +#### SYNTAX + +```powershell +New-AzLoadBalancerProbeConfig -Name [-Protocol ] -Port -IntervalInSeconds + -ProbeCount [-ProbeThreshold ] [-RequestPath ] [-NoHealthyBackendsBehavior ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Create a probe configuration +```powershell +New-AzLoadBalancerProbeConfig -Name "MyProbe" -Protocol "http" -Port 80 -IntervalInSeconds 15 -ProbeCount 15 -ProbeThreshold 15 -NoHealthyBackendsBehavior "AllProbedUp" +``` + +This command creates a probe configuration named MyProbe using the HTTP protocol. +The new probe will connect to a load-balanced service on port 80. + ++ Example 2 + +Creates a probe configuration for a load balancer. (autogenerated) + + + + +```powershell +New-AzLoadBalancerProbeConfig -IntervalInSeconds 15 -Name 'MyProbe' -Port 80 -ProbeCount 15 -ProbeThreshold 15 -Protocol 'http' -RequestPath 'healthcheck.aspx' +``` + + +#### Add-AzLoadBalancerProbeConfig + +#### SYNOPSIS +Adds a probe configuration to a load balancer. + +#### SYNTAX + +```powershell +Add-AzLoadBalancerProbeConfig -LoadBalancer -Name [-Protocol ] -Port + -IntervalInSeconds -ProbeCount [-ProbeThreshold ] [-RequestPath ] + [-NoHealthyBackendsBehavior ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Add a probe configuration to a load balancer +```powershell +Get-AzLoadBalancer -Name "myLb" -ResourceGroupName "myRg" | Add-AzLoadBalancerProbeConfig -Name "probeName" -RequestPath healthcheck2.aspx -Protocol http -Port 81 -IntervalInSeconds 16 -ProbeCount 3 -ProbeThreshold 3 -NoHealthyBackendsBehavior "AllProbedUp" | Set-AzLoadBalancer +``` + +This command gets the load balancer named myLb, adds the specified probe configuration to it, and then uses the **Set-AzLoadBalancer** cmdlet to update the load balancer. + + +#### Get-AzLoadBalancerProbeConfig + +#### SYNOPSIS +Gets a probe configuration for a load balancer. + +#### SYNTAX + +```powershell +Get-AzLoadBalancerProbeConfig -LoadBalancer [-Name ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Get the probe configuration of a load balancer +```powershell +$slb = Get-AzLoadBalancer -Name "MyLoadBalancer" -ResourceGroupName "MyResourceGroup" +Get-AzLoadBalancerProbeConfig -Name "MyProbe" -LoadBalancer $slb +``` + +The first command gets the load balancer named MyLoadBalancer, and then stores it in the variable $slb. +The second command gets the associated probe configuration named MyProbe from the load balancer in $slb. + + +#### Remove-AzLoadBalancerProbeConfig + +#### SYNOPSIS +Removes a probe configuration from a load balancer. + +#### SYNTAX + +```powershell +Remove-AzLoadBalancerProbeConfig -LoadBalancer [-Name ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Remove a probe configuration from a load balancer +```powershell +$loadbalancer = Get-AzLoadBalancer -Name "MyLoadBalancer" -ResourceGroupName "MyResourceGroup" +Remove-AzLoadBalancerProbeConfig -Name "MyProbe" -LoadBalancer $loadbalancer +``` + +The first command gets the load balancer named MyLoadBalancer, and then stores it in the $loadbalancer variable. +The second command deletes the configuration named MyProbe from the load balancer in $loadbalancer. + + +#### Set-AzLoadBalancerProbeConfig + +#### SYNOPSIS +Updates a probe configuration for a load balancer. + +#### SYNTAX + +```powershell +Set-AzLoadBalancerProbeConfig -LoadBalancer -Name [-Protocol ] -Port + -IntervalInSeconds -ProbeCount [-ProbeThreshold ] [-RequestPath ] + [-NoHealthyBackendsBehavior ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Modify the probe configuration on a load balancer +```powershell +$slb = Get-AzLoadBalancer -Name "MyLoadBalancer" -ResourceGroupName "MyResourceGroup" +$slb | Add-AzLoadBalancerProbeConfig -Name "NewProbe" -Protocol "http" -Port 80 -IntervalInSeconds 15 -ProbeCount 2 -ProbeThreshold 2 -RequestPath "healthcheck.aspx" +$slb | Set-AzLoadBalancerProbeConfig -Name "NewProbe" -Port 80 -IntervalInSeconds 15 -ProbeCount 2 -NoHealthyBackendsBehavior "AllProbedUp" +``` + +The first command gets the loadbalancer named MyLoadBalancer, and then stores it in the $slb variable. +The second command uses the pipeline operator to pass the load balancer in $slb to Add-AzLoadBalancerProbeConfig, which adds a new probe configuration to it. +The third command passes the load balancer to **Set-AzLoadBalancerProbeConfig**, which sets the new configuration. +Note that it is necessary to specify several of the same parameters that were specified in the previous command because they are required by the current cmdlet. + ++ Example 2 + +Updates a probe configuration for a load balancer. (autogenerated) + + + + +```powershell +Set-AzLoadBalancerProbeConfig -IntervalInSeconds 15 -Name 'NewProbe' -Port 443 -ProbeCount 2 -Protocol https -LoadBalancer +``` + + +#### New-AzLoadBalancerRuleConfig + +#### SYNOPSIS +Creates a rule configuration for a load balancer. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +New-AzLoadBalancerRuleConfig -Name [-Protocol ] [-LoadDistribution ] + [-FrontendPort ] [-BackendPort ] [-IdleTimeoutInMinutes ] [-EnableFloatingIP] + [-EnableTcpReset] [-DisableOutboundSNAT] [-EnableConnectionTracking] + [-FrontendIpConfiguration ] [-BackendAddressPool ] + [-Probe ] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + ++ SetByResourceId +```powershell +New-AzLoadBalancerRuleConfig -Name [-Protocol ] [-LoadDistribution ] + [-FrontendPort ] [-BackendPort ] [-IdleTimeoutInMinutes ] [-EnableFloatingIP] + [-EnableTcpReset] [-DisableOutboundSNAT] [-EnableConnectionTracking] [-FrontendIpConfigurationId ] + [-BackendAddressPoolId ] [-ProbeId ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Creating a rule configuration for an Azure Load Balancer +```powershell +$publicip = New-AzPublicIpAddress -ResourceGroupName "MyResourceGroup" ` + -name MyPublicIP -location 'West US' -AllocationMethod Dynamic +$frontend = New-AzLoadBalancerFrontendIpConfig -Name MyFrontEnd ` + -PublicIpAddress $publicip +$probe = New-AzLoadBalancerProbeConfig -Name MyProbe -Protocol http -Port ` + 80 -IntervalInSeconds 15 -ProbeCount 2 -ProbeThreshold 2 -RequestPath healthcheck.aspx +New-AzLoadBalancerRuleConfig -Name "MyLBrule" -FrontendIPConfiguration ` + $frontend -BackendAddressPool $backendAddressPool -Probe $probe -Protocol Tcp ` + -FrontendPort 80 -BackendPort 80 -IdleTimeoutInMinutes 15 -EnableFloatingIP ` + -LoadDistribution SourceIP +``` + ++ Example 2: Creating a rule configuration for an Azure Load Balancer with Gateway Load Balancer +```powershell +$slb = Get-AzLoadBalancer -Name "MyLoadBalancer" -ResourceGroupName "MyResourceGroup" +$MyBackendPool1 = Get-AzLoadBalancerBackendAddressPool -ResourceGroupName $resourceGroup -LoadBalancerName $MyLoadBalancer -Name $backendPool1Name +$MyBackendPool2 = Get-AzLoadBalancerBackendAddressPool -ResourceGroupName $resourceGroup -LoadBalancerName $MyLoadBalancer -Name $backendPool2Name +$slb | Add-AzLoadBalancerRuleConfig -Name "NewRule" -FrontendIPConfiguration $slb.FrontendIpConfigurations[0] -Protocol "All" -FrontendPort 0 -BackendPort 0 -BackendAddressPool $MyBackendPool1,$MyBackendPool2 +$slb | Set-AzLoadBalancer +``` + +The first three commands set up a public IP, a front end, and a probe for the rule configuration in the forth command. The forth command creates a new rule called MyLBrule with certain specifications. + + +#### Add-AzLoadBalancerRuleConfig + +#### SYNOPSIS +Adds a rule configuration to a load balancer. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +Add-AzLoadBalancerRuleConfig -LoadBalancer -Name [-Protocol ] + [-LoadDistribution ] [-FrontendPort ] [-BackendPort ] [-IdleTimeoutInMinutes ] + [-EnableFloatingIP] [-EnableTcpReset] [-DisableOutboundSNAT] [-EnableConnectionTracking] + [-FrontendIpConfiguration ] [-BackendAddressPool ] + [-Probe ] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + ++ SetByResourceId +```powershell +Add-AzLoadBalancerRuleConfig -LoadBalancer -Name [-Protocol ] + [-LoadDistribution ] [-FrontendPort ] [-BackendPort ] [-IdleTimeoutInMinutes ] + [-EnableFloatingIP] [-EnableTcpReset] [-DisableOutboundSNAT] [-EnableConnectionTracking] + [-FrontendIpConfigurationId ] [-BackendAddressPoolId ] [-ProbeId ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Add a rule configuration to a load balancer +```powershell +$slb = Get-AzLoadBalancer -Name "MyLoadBalancer" -ResourceGroupName "MyResourceGroup" +$slb | Add-AzLoadBalancerRuleConfig -Name "NewRule" -FrontendIPConfiguration $slb.FrontendIpConfigurations[0] -Protocol "Tcp" -FrontendPort 3350 -BackendPort 3350 -EnableFloatingIP +$slb | Set-AzLoadBalancer +``` + +The first command gets the load balancer named MyLoadBalancer, and then stores it in the variable $slb. +The second command uses the pipeline operator to pass the load balancer in $slb to **Add-AzLoadBalancerRuleConfig**, which adds the rule configuration named NewRule. +The third command will update the load balancer in azure with the new Load Balancer Rule Config. + ++ Example 2: Add a rule configuration with two backend address pools to a load balancer +```powershell +$slb = Get-AzLoadBalancer -Name "MyLoadBalancer" -ResourceGroupName "MyResourceGroup" +$MyBackendPool1 = Get-AzLoadBalancerBackendAddressPool -ResourceGroupName $resourceGroup -LoadBalancerName $MyLoadBalancer -Name $backendPool1Name +$MyBackendPool2 = Get-AzLoadBalancerBackendAddressPool -ResourceGroupName $resourceGroup -LoadBalancerName $MyLoadBalancer -Name $backendPool2Name +$slb | Add-AzLoadBalancerRuleConfig -Name "NewRule" -FrontendIPConfiguration $slb.FrontendIpConfigurations[0] -Protocol All -FrontendPort 0 -BackendPort 0 -BackendAddressPool $MyBackendPool1, $MyBackendPool2 +$slb | Set-AzLoadBalancer +``` + +This enables Gateway Load Balancer to have multiple backend pools +The first command will get the load balancer named MyLoadBalancer, and then stores it in the variable $slb. +The second and third command will get the backend address pools to be added the rule +The forth command will add a new rule with configured backend pools +the fifth command will update the load balancer in azure with the new Load Balancer Rule Config. + + +#### Get-AzLoadBalancerRuleConfig + +#### SYNOPSIS +Gets the rule configuration for a load balancer. + +#### SYNTAX + +```powershell +Get-AzLoadBalancerRuleConfig -LoadBalancer [-Name ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Get the rule configuration of a load balancer +```powershell +$slb = Get-AzLoadBalancer -Name "MyLoadBalancer" -ResourceGroupName "MyResourceGroup" +Get-AzLoadBalancerRuleConfig -Name "MyLBrulename" -LoadBalancer $slb +``` + +The first command gets the load balancer named MyLoadBalancer, and then stores it in the variable $slb. +The second command gets the associated rule configuration named MyLBrulename from the load balancer in $slb. + + +#### Remove-AzLoadBalancerRuleConfig + +#### SYNOPSIS +Removes a rule configuration for a load balancer. + +#### SYNTAX + +```powershell +Remove-AzLoadBalancerRuleConfig -LoadBalancer [-Name ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Remove a rule configuration from a load balancer +```powershell +$loadbalancer = Get-AzLoadBalancer -Name "MyLoadBalancer" -ResourceGroupName "MyResourceGroup" +Remove-AzLoadBalancerRuleConfig -Name "MyLBruleName" -LoadBalancer $loadbalancer +``` + +The first command gets the load balancer named MyLoadBalancer, and then stores it in the $loadbalancer variable. +The second command removes the rule configuration named MyLBruleName from the load balancer in $loadbalancer. + + +#### Set-AzLoadBalancerRuleConfig + +#### SYNOPSIS +Updates a rule configuration for a load balancer. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +Set-AzLoadBalancerRuleConfig -LoadBalancer -Name [-Protocol ] + [-LoadDistribution ] [-FrontendPort ] [-BackendPort ] [-IdleTimeoutInMinutes ] + [-EnableFloatingIP] [-EnableTcpReset] [-DisableOutboundSNAT] [-EnableConnectionTracking] + [-FrontendIpConfiguration ] [-BackendAddressPool ] + [-Probe ] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + ++ SetByResourceId +```powershell +Set-AzLoadBalancerRuleConfig -LoadBalancer -Name [-Protocol ] + [-LoadDistribution ] [-FrontendPort ] [-BackendPort ] [-IdleTimeoutInMinutes ] + [-EnableFloatingIP] [-EnableTcpReset] [-DisableOutboundSNAT] [-EnableConnectionTracking] + [-FrontendIpConfigurationId ] [-BackendAddressPoolId ] [-ProbeId ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Modify a load balancing rule configuration +```powershell +$slb = Get-AzLoadBalancer -Name "MyLoadBalancer" -ResourceGroupName "MyResourceGroup" +$slb | Add-AzLoadBalancerRuleConfig -Name "NewRule" -FrontendIPConfiguration $slb.FrontendIpConfigurations[0] -Protocol "Tcp" -FrontendPort 3350 -BackendPort 3350 -EnableFloatingIP +$slb | Set-AzLoadBalancerRuleConfig -Name "NewRule" -FrontendIPConfiguration $slb.FrontendIpConfigurations[0] -Protocol "Tcp" -FrontendPort 3350 -BackendPort 3350 +$slb | Set-AzLoadBalancer +``` + ++ Example 2: Modify a load balancing rule configuration to have two backend address pools +```powershell +$slb = Get-AzLoadBalancer -Name "MyLoadBalancer" -ResourceGroupName "MyResourceGroup" +$MyBackendPool1 = Get-AzLoadBalancerBackendAddressPool -ResourceGroupName $resourceGroup -LoadBalancerName $MyLoadBalancer -Name $backendPool1Name +$MyBackendPool2 = Get-AzLoadBalancerBackendAddressPool -ResourceGroupName $resourceGroup -LoadBalancerName $MyLoadBalancer -Name $backendPool2Name +$slb | Set-AzLoadBalancerRuleConfig -Name "NewRule" -FrontendIPConfiguration $slb.FrontendIpConfigurations[0] -Protocol "All" -FrontendPort 0 -BackendPort 0 -BackendAddressPool $MyBackendPool1, $MyBackendPool2 +$slb | Set-AzLoadBalancer +``` + +The first command gets the load balancer named MyLoadBalancer, and then stores it in the $slb variable. +The second command uses the pipeline operator to pass the load balancer in $slb to Add-AzLoadBalancerRuleConfig, which adds a rule named NewRule to it. +The third command passes the load balancer to **Set-AzLoadBalancerRuleConfig**, which sets the new rule configuration. +Note that the configuration does not enable a floating IP address, which had been enabled by the previous command. + + +#### Get-AzLoadBalancerRuleHealth + +#### SYNOPSIS +Gets the load balancer rule health information. + +#### SYNTAX + +```powershell +Get-AzLoadBalancerRuleHealth -ResourceGroupName -LoadBalancerName -Name + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzLoadBalancerRuleHealth -Name myhttprule -LoadBalancerName myloadbalancer -ResourceGroupName Health-Rg +``` + +With this command we can get the health information of the rule named myhttprule from the load balancer named myloadbalancer in the resource group Health-Rg. + + +#### New-AzLocalNetworkGateway + +#### SYNOPSIS +Creates a Local Network Gateway + +#### SYNTAX + ++ ByLocalNetworkGatewayIpAddress +```powershell +New-AzLocalNetworkGateway -Name -ResourceGroupName -Location + [-GatewayIpAddress ] [-AddressPrefix ] [-Asn ] [-BgpPeeringAddress ] + [-PeerWeight ] [-Tag ] [-Force] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByLocalNetworkGatewayFqdn +```powershell +New-AzLocalNetworkGateway -Name -ResourceGroupName -Location [-Fqdn ] + [-AddressPrefix ] [-Asn ] [-BgpPeeringAddress ] [-PeerWeight ] + [-Tag ] [-Force] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Create a Local Network Gateway +```powershell +New-AzLocalNetworkGateway -Name myLocalGW -ResourceGroupName myRG -Location "West US" -GatewayIpAddress 23.99.221.164 -AddressPrefix "10.5.51.0/24" +``` + +Creates the object of the Local Network Gateway with the name "myLocalGW" within the resource group +"myRG" in location "West US" with the IP address "23.99.221.164" and the address prefix +"10.5.51.0/24" on-prem. + + +#### Get-AzLocalNetworkGateway + +#### SYNOPSIS +Gets a Local Network Gateway + +#### SYNTAX + +```powershell +Get-AzLocalNetworkGateway [-Name ] -ResourceGroupName + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Get a Local Network Gateway +```powershell +Get-AzLocalNetworkGateway -Name myLocalGW1 -ResourceGroupName myRG +``` + +```output +Name : myLocalGW1 +ResourceGroupName : myRG +Location : eastus +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/M + icrosoft.Network/localNetworkGateways/myLocalGW1 +Etag : W/"00000000-0000-0000-0000-000000000000" +ResourceGuid : 00000000-0000-0000-0000-000000000000 +ProvisioningState : Succeeded +Tags : +GatewayIpAddress : x.x.x.x +LocalNetworkAddressSpace : { + "AddressPrefixes": [] + } +BgpSettings : null +``` + +Returns the object of the Local Network Gateway with the name "myLocalGW1" within the resource group "myRG" + ++ Example 2: Get Local Network Gateways using filtering +```powershell +Get-AzLocalNetworkGateway -Name myLocalGW* -ResourceGroupName myRG +``` + +```output +Name : myLocalGW1 +ResourceGroupName : myRG +Location : eastus +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/M + icrosoft.Network/localNetworkGateways/myLocalGW1 +Etag : W/"00000000-0000-0000-0000-000000000000" +ResourceGuid : 00000000-0000-0000-0000-000000000000 +ProvisioningState : Succeeded +Tags : +GatewayIpAddress : x.x.x.x +LocalNetworkAddressSpace : { + "AddressPrefixes": [] + } +BgpSettings : null + +Name : myLocalGW2 +ResourceGroupName : myRG +Location : eastus +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/M + icrosoft.Network/localNetworkGateways/myLocalGW2 +Etag : W/"00000000-0000-0000-0000-000000000000" +ResourceGuid : 00000000-0000-0000-0000-000000000000 +ProvisioningState : Succeeded +Tags : +GatewayIpAddress : x.x.x.x +LocalNetworkAddressSpace : { + "AddressPrefixes": [] + } +BgpSettings : null +``` + +Returns the object of the Local Network Gateway with name starting with "myLocalGW" within the resource group "myRG" + + +#### Remove-AzLocalNetworkGateway + +#### SYNOPSIS +Deletes a Local Network Gateway + +#### SYNTAX + +```powershell +Remove-AzLocalNetworkGateway -Name -ResourceGroupName [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Delete a Local Network Gateway +```powershell +Remove-AzLocalNetworkGateway -Name myLocalGW -ResourceGroupName myRG +``` + +Deletes the object of the Local Network Gateway with the name "myLocalGW" within the resource group "myRG" +Note: You must first delete all connections to the Local Network Gateway using the **Remove-AzVirtualNetworkGatewayConnection** cmdlet. + + +#### Set-AzLocalNetworkGateway + +#### SYNOPSIS +Modifies a local network gateway. + +#### SYNTAX + +```powershell +Set-AzLocalNetworkGateway -LocalNetworkGateway [-AddressPrefix ] + [-Asn ] [-BgpPeeringAddress ] [-PeerWeight ] [-AsJob] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +Set configuration for an existing gateway + + +```powershell +$lgw = Get-AzLocalNetworkGateway -Name myLocalGW -ResourceGroupName myRG +Set-AzLocalNetworkGateway -LocalNetworkGateway $lgw +``` + +```output +Name : myLocalGW +ResourceGroupName : TestRG1 +Location : westus +Id : /subscriptions/81ab786c-56eb-4a4d-bb5f-f60329772466/resourceGroups/TestRG1/providers/Microso + ft.Network/localNetworkGateways/myLocalGW +Etag : W/"d2de6968-315e-411d-a4b8-a8c335abe61b" +ResourceGuid : 393acf8b-dbb8-4b08-a9ea-c714570710e1 +ProvisioningState : Succeeded +Tags : +GatewayIpAddress : 1.2.3.4 +LocalNetworkAddressSpace : { + "AddressPrefixes": [] + } +BgpSettings : null +``` + + +#### New-AzNatGateway + +#### SYNOPSIS +Create new Nat Gateway resource with properties Public Ip Address/Public Ip Prefix, IdleTimeoutInMinutes and Sku. + +#### SYNTAX + +```powershell +New-AzNatGateway -ResourceGroupName -Name [-IdleTimeoutInMinutes ] [-Zone ] + [-Sku ] [-Location ] [-Tag ] [-PublicIpAddress ] + [-PublicIpAddressV6 ] [-PublicIpPrefix ] [-PublicIpPrefixV6 ] + [-SourceVirtualNetwork ] [-Force] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Create Nat Gateway with Public Ip Address +```powershell +$pip = New-AzPublicIpAddress -Name "pip" -ResourceGroupName "natgateway_test" -Location "eastus2" -Sku "Standard" -IdleTimeoutInMinutes 4 -AllocationMethod "static" +$natgateway = New-AzNatGateway -ResourceGroupName "natgateway_test" -Name "nat_gateway" -IdleTimeoutInMinutes 4 -Sku "Standard" -Location "eastus2" -PublicIpAddress $pip +``` + ++ Example 2: Create Nat Gateway with Public Ip Prefix +```powershell +$publicipprefix = New-AzPublicIpPrefix -Name "prefix2" -ResourceGroupName "natgateway_test" -Location "eastus2" -Sku "Standard" -PrefixLength "31" +$natgateway = New-AzNatGateway -ResourceGroupName "natgateway_test" -Name "nat_gateway" -IdleTimeoutInMinutes 4 -Sku "Standard" -Location "eastus2" -PublicIpPrefix $publicipprefix +``` + ++ Example 3: Create Nat Gateway with Public IP Address in Availability Zone 1 +```powershell +$pip = New-AzPublicIpAddress -Name "pip" -ResourceGroupName "natgateway_test" -Location "eastus2" -Sku "Standard" -IdleTimeoutInMinutes 4 -AllocationMethod "static" +$natgateway = New-AzNatGateway -ResourceGroupName "natgateway_test" -Name "nat_gateway" -IdleTimeoutInMinutes 4 -Sku "Standard" -Location "eastus2" -PublicIpAddress $pip -Zone "1" +``` + +The first command creates standard Public IP Address. +The second command creates NAT Gateway with Public IP Address in Availability Zone 1. + + +#### Get-AzNatGateway + +#### SYNOPSIS +Gets a Nat Gateway resource in a resource group by name or NatGateway Id or all Nat Gateway resources in a resource group. + +#### SYNTAX + ++ ListParameterSet (Default) +```powershell +Get-AzNatGateway [-ResourceGroupName ] [-DefaultProfile ] + [] +``` + ++ GetByNameParameterSet +```powershell +Get-AzNatGateway -ResourceGroupName -Name [-DefaultProfile ] + [] +``` + ++ GetByResourceIdParameterSet +```powershell +Get-AzNatGateway -ResourceId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 + + + +```powershell +Get-AzNatGateway -ResourceGroupName "natgateway_test" + + +IdleTimeoutInMinutes : 4 +ProvisioningState : Succeeded +Sku : Microsoft.Azure.Commands.Network.Models.PSNatGatewaySku +PublicIpAddresses : {/subscriptions//resourceGroups/natgateway_test/providers/Microsoft.Network/publicIPAddresses/Test_Pip} +PublicIpPrefixes : {} +SkuText : { + "Name": "Standard" + } +PublicIpAddressesText : [ + { + "Id": "/subscriptions//resourceGroups/natgateway_test/providers/Microsoft.Network/publicIPAddresses/Test_Pip" + } + ] +PublicIpPrefixesText : [] +ResourceGroupName : natgateway_test +Location : eastus2 +ResourceGuid : +Type : Microsoft.Network/natGateways +Tag : +TagsTable : +Name : nat_gateway +Etag : W/"178470d2-7b86-4ddd-b954-e0cd3ab30a90" +Id : /subscriptions//resourceGroups/natgateway_test/providers/Microsoft.Network/natGateways/nat_gateway + +IdleTimeoutInMinutes : 4 +ProvisioningState : Succeeded +Sku : Microsoft.Azure.Commands.Network.Models.PSNatGatewaySku +PublicIpAddresses : {} +PublicIpPrefixes : {} +SkuText : { + "Name": "Standard" + } +PublicIpAddressesText : [] +PublicIpPrefixesText : [] +ResourceGroupName : natgateway_test +Location : eastus2 +ResourceGuid : +Type : Microsoft.Network/natGateways +Tag : +TagsTable : +Name : ng1 +Etag : W/"bdf98e30-d6c6-4af2-8f62-10d1fdaa6e84" +Id : /subscriptions//resourceGroups/natgateway_test/providers/Microsoft.Network/natGateways/ng1 + + +Get-AzNatGateway -ResourceGroupName "natgateway_test" -Name "nat_gateway" + + +IdleTimeoutInMinutes : 4 +ProvisioningState : Succeeded +Sku : Microsoft.Azure.Commands.Network.Models.PSNatGatewaySku +PublicIpAddresses : {/subscriptions//resourceGroups/natgateway_test/providers/Microsoft.Network/publicIPAddresses/Test_Pip} +PublicIpPrefixes : {} +SkuText : { + "Name": "Standard" + } +PublicIpAddressesText : [ + { + "Id": "/subscriptions//resourceGroups/natgateway_test/providers/Microsoft.Network/publicIPAddresses/Test_Pip" + } + ] +PublicIpPrefixesText : [] +ResourceGroupName : natgateway_test +Location : eastus2 +ResourceGuid : +Type : Microsoft.Network/natGateways +Tag : +TagsTable : +Name : nat_gateway +Etag : W/"178470d2-7b86-4ddd-b954-e0cd3ab30a90" +Id : /subscriptions//resourceGroups/natgateway_test/providers/Microsoft.Network/natGateways/nat_gateway + +Get-AzNatGateway -ResourceId "/subscriptions//resourceGroups/natgateway_test/providers/Microsoft.Network/natGateways/nat_gateway" + + +IdleTimeoutInMinutes : 4 +ProvisioningState : Succeeded +Sku : Microsoft.Azure.Commands.Network.Models.PSNatGatewaySku +PublicIpAddresses : {/subscriptions//resourceGroups/natgateway_test/providers/Microsoft.Network/publicIPAddresses/Test_Pip} +PublicIpPrefixes : {} +SkuText : { + "Name": "Standard" + } +PublicIpAddressesText : [ + { + "Id": "/subscriptions//resourceGroups/natgateway_test/providers/Microsoft.Network/publicIPAddresses/Test_Pip" + } + ] +PublicIpPrefixesText : [] +ResourceGroupName : natgateway_test +Location : eastus2 +ResourceGuid : +Type : Microsoft.Network/natGateways +Tag : +TagsTable : +Name : nat_gateway +Etag : W/"178470d2-7b86-4ddd-b954-e0cd3ab30a90" +Id : /subscriptions//resourceGroups/natgateway_test/providers/Microsoft.Network/natGateways/nat_gateway +``` + + +#### Remove-AzNatGateway + +#### SYNOPSIS +Remove Nat Gateway resource. + +#### SYNTAX + ++ DeleteByNameParameterSet (Default) +```powershell +Remove-AzNatGateway -ResourceGroupName -Name [-Force] [-AsJob] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ DeleteByInputObjectParameterSet +```powershell +Remove-AzNatGateway -InputObject [-Force] [-AsJob] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ DeleteByResourceIdParameterSet +```powershell +Remove-AzNatGateway -ResourceId [-Force] [-AsJob] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$nat = Get-AzNatGateway -ResourceGroupName "natgateway_test" -Name "nat_gateway" +Remove-AzNatGateway -InputObject $nat +Remove-AzNatGateway -ResourceId "/subscriptions//resourceGroups/natgateway_test/providers/Microsoft.Network/natGateways/natgateway" +``` + + +#### Set-AzNatGateway + +#### SYNOPSIS +Update Nat Gateway Resource with Public Ip Address, Public Ip Prefix and IdleTimeoutInMinutes. + +#### SYNTAX + ++ SetByNameParameterSet (Default) +```powershell +Set-AzNatGateway -ResourceGroupName -Name [-PublicIpAddress ] + [-PublicIpAddressV6 ] [-PublicIpPrefix ] [-PublicIpPrefixV6 ] + [-SourceVirtualNetwork ] [-AsJob] [-IdleTimeoutInMinutes ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByResourceIdParameterSet +```powershell +Set-AzNatGateway -ResourceId [-PublicIpAddress ] [-PublicIpAddressV6 ] + [-PublicIpPrefix ] [-PublicIpPrefixV6 ] [-SourceVirtualNetwork ] + [-AsJob] [-IdleTimeoutInMinutes ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ SetByInputObjectParameterSet +```powershell +Set-AzNatGateway -InputObject [-PublicIpAddress ] + [-PublicIpAddressV6 ] [-PublicIpPrefix ] [-PublicIpPrefixV6 ] + [-SourceVirtualNetwork ] [-AsJob] [-IdleTimeoutInMinutes ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$nGateway = Get-AzNatGateway -ResourceGroupName "natgateway_test" -Name "ng1" +$pipArray = $pip, $pip2 +$natUpdate = Set-AzNatGateway -InputObject $nGateway -IdleTimeoutInMinutes 5 -PublicIpAddress $pipArray +$natUpdate = Set-AzNatGateway -ResourceGroupName "natgateway_test" -Name "ng1" -PublicIpAddress $pipArray +$natUpdate = Set-AzNatGateway -ResourceId "natgateway_id" -PublicIpAddress $pipArray +``` + + +#### New-AzNetworkInterface + +#### SYNOPSIS +Creates a network interface. + +#### SYNTAX + ++ SetByIpConfigurationResource (Default) +```powershell +New-AzNetworkInterface -Name -ResourceGroupName -Location [-EdgeZone ] + -IpConfiguration [-DnsServer ] + [-InternalDnsNameLabel ] [-DisableTcpStateTracking ] [-EnableIPForwarding] + [-EnableAcceleratedNetworking] [-AuxiliaryMode ] [-AuxiliarySku ] [-Tag ] [-Force] + [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByIpConfigurationResourceId +```powershell +New-AzNetworkInterface -Name -ResourceGroupName -Location [-EdgeZone ] + -IpConfiguration [-NetworkSecurityGroupId ] + [-NetworkSecurityGroup ] [-DnsServer ] [-InternalDnsNameLabel ] + [-DisableTcpStateTracking ] [-EnableIPForwarding] [-EnableAcceleratedNetworking] + [-AuxiliaryMode ] [-AuxiliarySku ] [-Tag ] [-Force] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByResourceId +```powershell +New-AzNetworkInterface -Name -ResourceGroupName -Location [-EdgeZone ] + -SubnetId [-PublicIpAddressId ] [-NetworkSecurityGroupId ] + [-LoadBalancerBackendAddressPoolId ] [-LoadBalancerInboundNatRuleId ] + [-ApplicationGatewayBackendAddressPoolId ] [-ApplicationSecurityGroupId ] + [-PrivateIpAddress ] [-IpConfigurationName ] [-DnsServer ] + [-InternalDnsNameLabel ] [-DisableTcpStateTracking ] [-EnableIPForwarding] + [-EnableAcceleratedNetworking] [-AuxiliaryMode ] [-AuxiliarySku ] [-Tag ] [-Force] + [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByResource +```powershell +New-AzNetworkInterface -Name -ResourceGroupName -Location [-EdgeZone ] + -Subnet [-PublicIpAddress ] [-NetworkSecurityGroup ] + [-LoadBalancerBackendAddressPool ] [-LoadBalancerInboundNatRule ] + [-ApplicationGatewayBackendAddressPool ] + [-ApplicationSecurityGroup ] [-PrivateIpAddress ] + [-IpConfigurationName ] [-DnsServer ] [-InternalDnsNameLabel ] + [-DisableTcpStateTracking ] [-EnableIPForwarding] [-EnableAcceleratedNetworking] + [-AuxiliaryMode ] [-AuxiliarySku ] [-Tag ] [-Force] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Create an Azure network interface +```powershell +New-AzNetworkInterface -Name "NetworkInterface1" -ResourceGroupName "ResourceGroup1" -Location "centralus" -SubnetId "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/ResourceGroup1/providers/Microsoft.Network/virtualNetworks/VirtualNetwork1/subnets/Subnet1" -IpConfigurationName "IPConfiguration1" -DnsServer "8.8.8.8", "8.8.4.4" +``` + +This command creates a network interface named NetworkInterface001 with a dynamically assigned +private IP address from Subnet1 in the virtual network named VirtualNetwork1. The command also +assigns two DNS servers to the network interface. The IPConfiguration child resource will be +created automatically using the name IPConfiguration1. + ++ Example 2: Create an Azure network interface using an IP configuration object +```powershell +$Subnet = Get-AzVirtualNetwork -Name "VirtualNetwork1" -ResourceGroupName "ResourceGroup1" +$IPconfig = New-AzNetworkInterfaceIpConfig -Name "IPConfig1" -PrivateIpAddressVersion IPv4 -PrivateIpAddress "10.0.1.10" -SubnetId $Subnet.Subnets[0].Id +New-AzNetworkInterface -Name "NetworkInterface1" -ResourceGroupName "ResourceGroup1" -Location "centralus" -IpConfiguration $IPconfig +``` + +This example creates a new network interface using an IP configuration object. The IP configuration +object specifies a static private IPv4 address. +The first command retrieves an existing specified virtual network used to assign the subnet in the second command. +The second command creates a network interface IP configuration named IPConfig1 and stores the +configuration in the variable named $IPconfig. +The third command creates a network interface named NetworkInterface1 that uses the network +interface IP configuration stored in the variable named $IPconfig. + ++ Example 3 + +Creates a network interface. (autogenerated) + + + + +```powershell +New-AzNetworkInterface -Location 'West US' -Name 'NetworkInterface1' -PrivateIpAddress '10.0.1.10' -ResourceGroupName 'ResourceGroup1' -SubnetId '/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/ResourceGroup1/providers/Microsoft.Network/virtualNetworks/VirtualNetwork1/subnets/Subnet1' +``` + + +#### Get-AzNetworkInterface + +#### SYNOPSIS +Gets a network interface. + +#### SYNTAX + ++ NoExpandStandAloneNic (Default) +```powershell +Get-AzNetworkInterface [-Name ] [-ResourceGroupName ] + [-DefaultProfile ] [] +``` + ++ ExpandStandAloneNic +```powershell +Get-AzNetworkInterface -Name -ResourceGroupName -ExpandResource + [-DefaultProfile ] [] +``` + ++ NoExpandScaleSetNic +```powershell +Get-AzNetworkInterface [-Name ] -ResourceGroupName [-VirtualMachineScaleSetName ] + [-VirtualMachineIndex ] [-DefaultProfile ] + [] +``` + ++ ExpandScaleSetNic +```powershell +Get-AzNetworkInterface -Name -ResourceGroupName -VirtualMachineScaleSetName + -VirtualMachineIndex -ExpandResource [-DefaultProfile ] + [] +``` + ++ GetByResourceIdExpandParameterSet +```powershell +Get-AzNetworkInterface -ResourceId -ExpandResource [-DefaultProfile ] + [] +``` + ++ GetByResourceIdNoExpandParameterSet +```powershell +Get-AzNetworkInterface -ResourceId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Get all network interfaces +```powershell +Get-AzNetworkInterface +``` + +```output +Name : test1 +ResourceGroupName : ResourceGroup1 +Location : eastus +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ResourceGroup1/providers/Micros + oft.Network/networkInterfaces/test1 +Etag : W/"00000000-0000-0000-0000-000000000000" +ResourceGuid : 00000000-0000-0000-0000-000000000000 +ProvisioningState : Succeeded +Tags : +VirtualMachine : { + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ResourceGroup1/provide + rs/Microsoft.Compute/virtualMachines/test1" + } +IpConfigurations : [ + { + "Name": "test1", + "Etag": "W/\"00000000-0000-0000-0000-000000000000\"", + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ResourceGroup1/provi + ders/Microsoft.Network/networkInterfaces/test1/ipConfigurations/test1", + "PrivateIpAddress": "x.x.x.x", + "PrivateIpAllocationMethod": "Dynamic", + "Subnet": { + "Delegations": [], + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ResourceGroup1/pro + viders/Microsoft.Network/virtualNetworks/test1/subnets/test1", + "ServiceAssociationLinks": [] + }, + "PublicIpAddress": { + "IpTags": [], + "Zones": [], + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ResourceGroup1/pro + viders/Microsoft.Network/publicIPAddresses/test1" + }, + "ProvisioningState": "Succeeded", + "PrivateIpAddressVersion": "IPv4", + "LoadBalancerBackendAddressPools": [], + "LoadBalancerInboundNatRules": [], + "Primary": true, + "ApplicationGatewayBackendAddressPools": [], + "ApplicationSecurityGroups": [] + } + ] +DnsSettings : { + "DnsServers": [], + "AppliedDnsServers": [] + } +EnableIPForwarding : False +EnableAcceleratedNetworking : False +NetworkSecurityGroup : { + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ResourceGroup1/provide + rs/Microsoft.Network/networkSecurityGroups/test1" + } +Primary : True +MacAddress : +``` + +This command gets all network interfaces for the current subscription. + ++ Example 2: Get all network interfaces with a specific provisioning state +```powershell +Get-AzNetworkInterface -ResourceGroupName "ResourceGroup1" | Where-Object {$_.ProvisioningState -eq 'Succeeded'} +``` + +```output +Name : test1 +ResourceGroupName : ResourceGroup1 +Location : eastus +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ResourceGroup1/providers/Micros + oft.Network/networkInterfaces/test1 +Etag : W/"00000000-0000-0000-0000-000000000000" +ResourceGuid : 00000000-0000-0000-0000-000000000000 +ProvisioningState : Succeeded +Tags : +VirtualMachine : { + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ResourceGroup1/provide + rs/Microsoft.Compute/virtualMachines/test1" + } +IpConfigurations : [ + { + "Name": "test1", + "Etag": "W/\"00000000-0000-0000-0000-000000000000\"", + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ResourceGroup1/provi + ders/Microsoft.Network/networkInterfaces/test1/ipConfigurations/test1", + "PrivateIpAddress": "x.x.x.x", + "PrivateIpAllocationMethod": "Dynamic", + "Subnet": { + "Delegations": [], + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ResourceGroup1/pro + viders/Microsoft.Network/virtualNetworks/test1/subnets/test1", + "ServiceAssociationLinks": [] + }, + "PublicIpAddress": { + "IpTags": [], + "Zones": [], + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ResourceGroup1/pro + viders/Microsoft.Network/publicIPAddresses/test1" + }, + "ProvisioningState": "Succeeded", + "PrivateIpAddressVersion": "IPv4", + "LoadBalancerBackendAddressPools": [], + "LoadBalancerInboundNatRules": [], + "Primary": true, + "ApplicationGatewayBackendAddressPools": [], + "ApplicationSecurityGroups": [] + } + ] +DnsSettings : { + "DnsServers": [], + "AppliedDnsServers": [] + } +EnableIPForwarding : False +EnableAcceleratedNetworking : False +NetworkSecurityGroup : { + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ResourceGroup1/provide + rs/Microsoft.Network/networkSecurityGroups/test1" + } +Primary : True +MacAddress : +``` + +This command gets all network interfaces in the resource group named ResourceGroup1 that has a provisioning state of succeeded. + ++ Example 3: Get network interfaces using filtering +```powershell +Get-AzNetworkInterface -Name test* +``` + +```output +Name : test1 +ResourceGroupName : ResourceGroup1 +Location : eastus +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ResourceGroup1/providers/Micros + oft.Network/networkInterfaces/test1 +Etag : W/"00000000-0000-0000-0000-000000000000" +ResourceGuid : 00000000-0000-0000-0000-000000000000 +ProvisioningState : Succeeded +Tags : +VirtualMachine : { + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ResourceGroup1/provide + rs/Microsoft.Compute/virtualMachines/test1" + } +IpConfigurations : [ + { + "Name": "test1", + "Etag": "W/\"00000000-0000-0000-0000-000000000000\"", + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ResourceGroup1/provi + ders/Microsoft.Network/networkInterfaces/test1/ipConfigurations/test1", + "PrivateIpAddress": "x.x.x.x", + "PrivateIpAllocationMethod": "Dynamic", + "Subnet": { + "Delegations": [], + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ResourceGroup1/pro + viders/Microsoft.Network/virtualNetworks/test1/subnets/test1", + "ServiceAssociationLinks": [] + }, + "PublicIpAddress": { + "IpTags": [], + "Zones": [], + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ResourceGroup1/pro + viders/Microsoft.Network/publicIPAddresses/test1" + }, + "ProvisioningState": "Succeeded", + "PrivateIpAddressVersion": "IPv4", + "LoadBalancerBackendAddressPools": [], + "LoadBalancerInboundNatRules": [], + "Primary": true, + "ApplicationGatewayBackendAddressPools": [], + "ApplicationSecurityGroups": [] + } + ] +DnsSettings : { + "DnsServers": [], + "AppliedDnsServers": [] + } +EnableIPForwarding : False +EnableAcceleratedNetworking : False +NetworkSecurityGroup : { + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ResourceGroup1/provide + rs/Microsoft.Network/networkSecurityGroups/test1" + } +Primary : True +MacAddress : +``` + +This command gets all network interfaces for the current subscription that start with "test". + + +#### Remove-AzNetworkInterface + +#### SYNOPSIS +Removes a network interface. + +#### SYNTAX + +```powershell +Remove-AzNetworkInterface -Name -ResourceGroupName [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Remove a network interface +```powershell +Remove-AzNetworkInterface -Name "NetworkInterface1" -ResourceGroupName "ResourceGroup1" +``` + +This command removes the network interface NetworkInterface1 in resource group ResourceGroup1. +Because the *Force* parameter is not used, the user will be prompted to confirm this action. + ++ Example 2: Remove a network interface +```powershell +Get-AzNetworkInterface -ResourceGroupName "ResourceGroup1" | Remove-AzNetworkInterface -Force +``` + +This command removes all network interfaces in resource group ResourceGroup1. +Because the *Force* parameter is used, the user is not prompted for confirmation. + + +#### Set-AzNetworkInterface + +#### SYNOPSIS +Updates a network interface. + +#### SYNTAX + +```powershell +Set-AzNetworkInterface -NetworkInterface [-AsJob] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Configure a network interface +```powershell +$Nic = Get-AzNetworkInterface -ResourceGroupName "ResourceGroup1" -Name "NetworkInterface1" +$Nic.IpConfigurations[0].PrivateIpAddress = "10.0.1.20" +$Nic.IpConfigurations[0].PrivateIpAllocationMethod = "Static" +$Nic.Tag = @{Name = "Name"; Value = "Value"} +Set-AzNetworkInterface -NetworkInterface $Nic +``` + +This example configures a network interface. +The first command gets a network interface named NetworkInterface1 in resource group ResourceGroup1. +The second command sets the private IP address of the IP configuration. +The third command sets the private IP allocation method to Static. +The fourth command sets a tag on the network interface. +The fifth command uses the information stored in the $Nic variable to set the network interface. + ++ Example 2: Change DNS settings on a network interface +```powershell +$nic = Get-AzNetworkInterface -ResourceGroupName "ResourceGroup1" -Name "NetworkInterface1" +$nic.DnsSettings.DnsServers.Add("192.168.1.100") +$nic | Set-AzNetworkInterface +``` + +The first command gets a network interface named NetworkInterface1 that exists within resource group ResourceGroup1. The second command adds DNS server 192.168.1.100 to this interface. The third command applies these changes to the network interface. To remove a DNS server, follow the commands listed above, but replace ".Add" with ".Remove" in the second command. + ++ Example 3: Enable IP forwarding on a network interface +```powershell +$nic = Get-AzNetworkInterface -ResourceGroupName "ResourceGroup1" -Name "NetworkInterface1" +$nic.EnableIPForwarding = 1 +$nic | Set-AzNetworkInterface +``` + +The first command gets an existing network interface called NetworkInterface1 and stores it in the $nic variable. The second command changes the IP forwarding value to true. Finally, the third command applies the changes to the network interface. To disable IP forwarding on a network interface, follow the sample example, but be sure to change the second command to "$nic.EnableIPForwarding = 0". + ++ Example 4: Change the subnet of a network interface +```powershell +$nic = Get-AzNetworkInterface -ResourceGroupName "ResourceGroup1" -Name "NetworkInterface1" +$vnet = Get-AzVirtualNetwork -Name VNet1 -ResourceGroupName crosssubcrossversionpeering +$subnet2 = Get-AzVirtualNetworkSubnetConfig -Name Subnet2 -VirtualNetwork $vnet +$nic.IpConfigurations[0].Subnet.Id = $subnet2.Id +$nic | Set-AzNetworkInterface +``` + +The first command gets the network interface NetworkInterface1 and stores it in the $nic variable. The second command gets the virtual network associated with the subnet that the network interface is going to be associated with. The second command gets the subnet and stores it in the $subnet2 variable. The third command associated the primary private IP address of the network interface with the new subnet. Finally the last command applied these changes on the network interface. +>[!NOTE] +>The IP configurations must be dynamic before you can change the subnet. If you have static IP configurations, change then to dynamic before proceeding. +>[!NOTE] +>If the network interface has multiple IP configurations, the fourth command must be done for all these IP configurations before the final Set-AzNetworkInterface command is executed. This can be done as in the fourth command but by replacing "0" with the appropriate number. If a network interface has N IP configurations, then N-1 of these commands must exist. + ++ Example 5: Associate/Dissociate a Network Security Group to a network interface +```powershell +$nic = Get-AzNetworkInterface -ResourceGroupName "ResourceGroup1" -Name "NetworkInterface1" +$nsg = Get-AzNetworkSecurityGroup -ResourceGroupName "ResourceGroup1" -Name "MyNSG" +$nic.NetworkSecurityGroup = $nsg +$nic | Set-AzNetworkInterface +``` + +The first command gets an existing network interface called NetworkInterface1 and stores it in the $nic variable. The second command gets an existing network security group called MyNSG and stores it in the $nsg variable. The third command assigns the $nsg to the $nic. Finally, the fourth command applies the changes to the Network interface. To dissociate network security groups from a network interface, simple replace $nsg in the third command with $null. + + +#### New-AzNetworkInterfaceIpConfig + +#### SYNOPSIS +Creates a network interface IP configuration. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +New-AzNetworkInterfaceIpConfig -Name [-PrivateIPAddressPrefixLength ] + [-PrivateIpAddressVersion ] [-PrivateIpAddress ] [-Primary] [-Subnet ] + [-PublicIpAddress ] [-LoadBalancerBackendAddressPool ] + [-LoadBalancerInboundNatRule ] + [-ApplicationGatewayBackendAddressPool ] + [-ApplicationSecurityGroup ] [-GatewayLoadBalancerId ] + [-DefaultProfile ] [] +``` + ++ SetByResourceId +```powershell +New-AzNetworkInterfaceIpConfig -Name [-PrivateIPAddressPrefixLength ] + [-PrivateIpAddressVersion ] [-PrivateIpAddress ] [-Primary] [-SubnetId ] + [-PublicIpAddressId ] [-LoadBalancerBackendAddressPoolId ] + [-LoadBalancerInboundNatRuleId ] [-ApplicationGatewayBackendAddressPoolId ] + [-ApplicationSecurityGroupId ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Create an IP configuration with a public IP address for a network interface +```powershell +$vnet = Get-AzVirtualNetwork -Name myvnet -ResourceGroupName myrg +$Subnet = Get-AzVirtualNetworkSubnetConfig -Name mysubnet -VirtualNetwork $vnet +$PIP1 = Get-AzPublicIpAddress -Name "PIP1" -ResourceGroupName "RG1" + +$IPConfig1 = New-AzNetworkInterfaceIpConfig -Name "IPConfig-1" -Subnet $Subnet -PublicIpAddress $PIP1 -Primary + +$nic = New-AzNetworkInterface -Name mynic1 -ResourceGroupName myrg -Location westus -IpConfiguration $IpConfig1 +``` + +The first two commands get a virtual network called myvnet and a subnet called mysubnet respectively that were + previously created. These are stored in $vnet and $Subnet respectively. The third command gets a previously + created public IP address called PIP1. The forth command creates a new IP configuration called "IPConfig-1" as the + primary IP configuration with a public IP address associated with it. + The last command then creates a network interface called mynic1 using this IP configuration. + ++ Example 2: Create an IP configuration with a private IP address +```powershell +$vnet = Get-AzVirtualNetwork -Name myvnet -ResourceGroupName myrg +$Subnet = Get-AzVirtualNetworkSubnetConfig -Name mysubnet -VirtualNetwork $vnet + +$IPConfig2 = New-AzNetworkInterfaceIpConfig -Name "IP-Config2" -Subnet $Subnet -PrivateIpAddress 10.0.0.5 + +$nic = New-AzNetworkInterface -Name mynic1 -ResourceGroupName myrg -Location westus -IpConfiguration $IpConfig2 +``` + +The first two commands get a virtual network called myvnet and a subnet called mysubnet respectively that were + previously created. These are stored in $vnet and $Subnet respectively. The third command creates a new IP + configuration called "IPConfig-2" with a private IP address 10.0.0.5 associated with it. + The last command then creates a network interface called mynic1 using this IP configuration. + ++ Example 3 + +Creates a network interface IP configuration. (autogenerated) + + + + +```powershell +New-AzNetworkInterfaceIpConfig -Name 'IP-Config2' -PrivateIpAddress '10.0.1.10' -PrivateIpAddressVersion IPv4 -SubnetId +``` + + +#### Add-AzNetworkInterfaceIpConfig + +#### SYNOPSIS +Adds a network interface IP configuration to a network interface. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +Add-AzNetworkInterfaceIpConfig -Name -NetworkInterface + [-PrivateIPAddressPrefixLength ] [-PrivateIpAddressVersion ] [-PrivateIpAddress ] + [-Primary] [-Subnet ] [-PublicIpAddress ] + [-LoadBalancerBackendAddressPool ] [-LoadBalancerInboundNatRule ] + [-ApplicationGatewayBackendAddressPool ] + [-ApplicationSecurityGroup ] [-GatewayLoadBalancerId ] + [-DefaultProfile ] [] +``` + ++ SetByResourceId +```powershell +Add-AzNetworkInterfaceIpConfig -Name -NetworkInterface + [-PrivateIPAddressPrefixLength ] [-PrivateIpAddressVersion ] [-PrivateIpAddress ] + [-Primary] [-SubnetId ] [-PublicIpAddressId ] [-LoadBalancerBackendAddressPoolId ] + [-LoadBalancerInboundNatRuleId ] [-ApplicationGatewayBackendAddressPoolId ] + [-ApplicationSecurityGroupId ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Add a new IP configuration with an application security group +```powershell +$subnet = New-AzVirtualNetworkSubnetConfig -Name MySubnet -AddressPrefix 10.0.1.0/24 +$vnet = New-AzVirtualNetwork -Name MyVNET -ResourceGroupName MyResourceGroup -Location "West US" -AddressPrefix 10.0.0.0/16 -Subnet $subnet + +$nic = New-AzNetworkInterface -Name MyNetworkInterface -ResourceGroupName MyResourceGroup -Location "West US" -Subnet $vnet.Subnets[0] + +$asg = New-AzApplicationSecurityGroup -ResourceGroupName MyResourceGroup -Name MyASG -Location "West US" + +$nic | Set-AzNetworkInterfaceIpConfig -Name $nic.IpConfigurations[0].Name -Subnet $vnet.Subnets[0] -ApplicationSecurityGroup $asg | Set-AzNetworkInterface + +$nic | Add-AzNetworkInterfaceIpConfig -Name MyNewIpConfig -Subnet $vnet.Subnets[0] -ApplicationSecurityGroup $asg | Set-AzNetworkInterface +``` + +In this example, we create a new network interface MyNetworkInterface that belongs to a subnet in the new virtual network MyVNET. We also create an empty application security group MyASG to associate with the IP configurations in the network interface. Once both objects are created, we link the default IP configuration to the MyASG object. At last, we create a new IP configuration in the network interface also linked to the application security group object. + + +#### Get-AzNetworkInterfaceIpConfig + +#### SYNOPSIS +Gets a network interface IP configuration for a network interface. + +#### SYNTAX + +```powershell +Get-AzNetworkInterfaceIpConfig [-Name ] -NetworkInterface + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Get an IP configuration of a network interface +```powershell +$nic1 = Get-AzNetworkInterface -Name mynic -ResourceGroupName $myrg +Get-AzNetworkInterfaceIpConfig -Name ipconfig1 -NetworkInterface $nic1 +``` + +The first command gets an existing network interface called mynic and stores it in the variable $nic1. The second + command gets the IP configuration called ipconfig1 of this network interface. + + + +#### Remove-AzNetworkInterfaceIpConfig + +#### SYNOPSIS +Removes a network interface IP configuration from a network interface. + +#### SYNTAX + +```powershell +Remove-AzNetworkInterfaceIpConfig -Name -NetworkInterface + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Delete an IP configuration from a network interface +```powershell +$nic = Get-AzNetworkInterface -Name mynic -ResourceGroupName myrg + +Remove-AzNetworkInterfaceIpConfig -Name IPConfig-1 -NetworkInterface $nic + +Set-AzNetworkInterface -NetworkInterface $nic +``` + +The first command gets a network interface called mynic and stores it in the variable $nic. The second command + removes the IP configuration called IPConfig-1 associated with this network interface. The third command sets changes made to the network interface. + + +#### Set-AzNetworkInterfaceIpConfig + +#### SYNOPSIS +Updates an IP configuration for a network interface. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +Set-AzNetworkInterfaceIpConfig -Name -NetworkInterface + [-PrivateIpAddressVersion ] [-PrivateIpAddress ] [-Primary] [-Subnet ] + [-PublicIpAddress ] [-LoadBalancerBackendAddressPool ] + [-LoadBalancerInboundNatRule ] + [-ApplicationGatewayBackendAddressPool ] + [-ApplicationSecurityGroup ] [-GatewayLoadBalancerId ] + [-DefaultProfile ] [] +``` + ++ SetByResourceId +```powershell +Set-AzNetworkInterfaceIpConfig -Name -NetworkInterface + [-PrivateIpAddressVersion ] [-PrivateIpAddress ] [-Primary] [-SubnetId ] + [-PublicIpAddressId ] [-LoadBalancerBackendAddressPoolId ] + [-LoadBalancerInboundNatRuleId ] [-ApplicationGatewayBackendAddressPoolId ] + [-ApplicationSecurityGroupId ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Changing the IP address of an IP configuration +```powershell +$vnet = Get-AzVirtualNetwork -Name myvnet -ResourceGroupName myrg +$subnet = Get-AzVirtualNetworkSubnetConfig -Name mysubnet -VirtualNetwork $vnet + +$nic = Get-AzNetworkInterface -Name nic1 -ResourceGroupName myrg + +$nic | Set-AzNetworkInterfaceIpConfig -Name ipconfig1 -PrivateIpAddress 10.0.0.11 -Subnet $subnet -Primary + +$nic | Set-AzNetworkInterface +``` + +The first two commands get a virtual network called myvnet and a subnet called mysubnet and store it in the + variables $vnet and $subnet respectively. The third command gets the network interface nic1 associated with the IP + configuration that needs to be updated. The third command sets the private IP address of the primary IP + configuration ipconfig1 to 10.0.0.11. Finally, the last command updates the network interface ensuring the changes + have been made successfully. + + ++ Example 2: Associating an IP configuration with an application security group +```powershell +$vnet = Get-AzVirtualNetwork -Name myvnet -ResourceGroupName myrg +$subnet = Get-AzVirtualNetworkSubnetConfig -Name mysubnet -VirtualNetwork $vnet +$asg = Get-AzApplicationSecurityGroup -Name myasg -ResourceGroupName myrg + +$nic = Get-AzNetworkInterface -Name nic1 -ResourceGroupName myrg + +$nic | Set-AzNetworkInterfaceIpConfig -Name ipconfig1 -PrivateIpAddress 10.0.0.11 -Subnet $subnet -ApplicationSecurityGroup $asg -Primary + +$nic | Set-AzNetworkInterface +``` + +In this example, the variable $asg contains a reference to an application security group. + The fourth command gets the network interface nic1 associated with the IP + configuration that needs to be updated. The Set-AzNetworkInterfaceIpConfig sets the private IP address of the primary IP + configuration ipconfig1 to 10.0.0.11 and creates an association with the retrieved application security group. + Finally, the last command updates the network interface ensuring the changes + have been made successfully. + ++ Example 3: Disassociating an IP configuration with an application gateway backend address pool +```powershell +$nic = Get-AzNetworkInterface -Name nic1 -ResourceGroupName myrg + +$nic | Set-AzNetworkInterfaceIpConfig -Name ipconfig1 -ApplicationGatewayBackendAddressPool $null + +$nic | Set-AzNetworkInterface +``` + +The Set-AzNetworkInterfaceIpConfig sets the application gateway backend address pool of the IP configuration ipconfig1 to null and disassociate with the network interface. Finally, the last command updates the network interface ensuring the changes have been made successfully. + + +#### Add-AzNetworkInterfaceTapConfig + +#### SYNOPSIS +Creates a TapConfiguration resource associated to a NetworkInterface. This will reference to an existing VirtualNetworkTap resource. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +Add-AzNetworkInterfaceTapConfig -NetworkInterface -Name + [-VirtualNetworkTap ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ SetByResourceId +```powershell +Add-AzNetworkInterfaceTapConfig -NetworkInterface -Name + [-VirtualNetworkTapId ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Add TapConfiguration to a given NetworkInterface +```powershell +Add-AzNetworkInterfaceTapConfig -NetworkInterface $sourceNic -VirtualNetworkTap $vVirtualNetworkTap -Name 'myTapConfig' +``` + +Add the TapConfiguration to a sourceNic. The traffic from sourceNic VM will be mirrored to destination VM referred in vVirtualNetworkTap resource. + + +#### Get-AzNetworkInterfaceTapConfig + +#### SYNOPSIS +Gets a Tap configuration resource. + +#### SYNTAX + ++ GetByNameParameterSet (Default) +```powershell +Get-AzNetworkInterfaceTapConfig -ResourceGroupName -NetworkInterfaceName [-Name ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ GetByResourceIdParameterSet +```powershell +Get-AzNetworkInterfaceTapConfig -ResourceId [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Get all tap configurations for a given network interface +```powershell +Get-AzNetworkInterfaceTapConfig -ResourceGroupName "ResourceGroup1" -NetworkInterfaceName "sourceNicName" +``` + +This command gets tap configurations added for the given network interface. + ++ Example 2: Get a given tap configuration +```powershell +Get-AzNetworkInterfaceTapConfig -ResourceGroupName "ResourceGroup1" -NetworkInterfaceName "sourceNicName" -Name "tapconfigName" +``` + +This command gets specific tap configuration added for the given network interface. + ++ Example 3: Get a given tap configuration +```powershell +Get-AzNetworkInterfaceTapConfig -ResourceGroupName "ResourceGroup1" -NetworkInterfaceName "sourceNicName" -Name "tapconfig*" +``` + +This command gets tap configurations added for the given network interface with name starting with "tapconfig". + + +#### Remove-AzNetworkInterfaceTapConfig + +#### SYNOPSIS +Removes a tap configuration from given network interface + +#### SYNTAX + ++ RemoveByNameParameterSet (Default) +```powershell +Remove-AzNetworkInterfaceTapConfig -ResourceGroupName -NetworkInterfaceName -Name + [-Force] [-PassThru] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + ++ DeleteByResourceIdParameterSet +```powershell +Remove-AzNetworkInterfaceTapConfig -ResourceId [-Force] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ DeleteByInputObjectParameterSet +```powershell +Remove-AzNetworkInterfaceTapConfig -InputObject [-Force] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Remove a tap configuration +```powershell +Remove-AzNetworkInterfaceTapConfig -Name "TapConfiguration" -NetworkInterfaceName "NetworkInterface1" -ResourceGroupName "ResourceGroup1" +``` + +This command removes the TapConfiguration from NetworkInterface1 in a resource group ResourceGroup1. +Because the *Force* parameter is not used, the user will be prompted to confirm this action. + ++ Example 2: Remove a network interface +```powershell +Get-AzNetworkInterfaceTapConfig -Name "TapConfiguration" -NetworkInterfaceName "NetworkInterface1" -ResourceGroupName "ResourceGroup1" | Remove-AzNetworkInterfaceTapConfig -Force +``` + +This command removes the TapConfiguration from NetworkInterface1 in a resource group ResourceGroup1. +Because the *Force* parameter is used, the user is not prompted for confirmation. + + +#### Set-AzNetworkInterfaceTapConfig + +#### SYNOPSIS +Updates a tap configuration for a network interface. + +#### SYNTAX + +```powershell +Set-AzNetworkInterfaceTapConfig -NetworkInterfaceTapConfig [-AsJob] + [-Force] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Set the TapConfiguration with updated TapConfig name +```powershell +$tapConfig = Get-AzNetworkInterfaceTapConfig -ResourceGroupName "ResourceGroup1" -NetworkInterfaceName "sourceNicName" -Name "tapconfigName" +$tapConfig.Name = "NewTapName" +Set-AzNetworkInterfaceTapConfig -NetworkInterfaceTapConfig $tapConfig +``` + + +#### New-AzNetworkManager + +#### SYNOPSIS +Creates a network manager. + +#### SYNTAX + +```powershell +New-AzNetworkManager -Name -ResourceGroupName -Location [-Description ] + [-Tag ] -NetworkManagerScope + [-NetworkManagerScopeAccess ] [-Force] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Creates a connectivity network manager. +```powershell +$subscriptions = @("/subscriptions/0fd190fa-dd1c-4724-b7f6-c5cc3ba5c884") +$managementGroups = @("/providers/Microsoft.Management/managementGroups/PowerShellTest") +$scope = New-AzNetworkManagerScope -Subscription $subscriptions -ManagementGroup $managementGroups +$access = @("Connectivity") +New-AzNetworkManager -ResourceGroupName "psResourceGroup" -Name "psNetworkManager" -NetworkManagerScope $scope -NetworkManagerScopeAccess $access -Location "westus" +``` + +```output +Location : westus +Tag : {} +NetworkManagerScopes : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSNetworkManagerScopes +NetworkManagerScopeAccesses : {Connectivity} +NetworkManagerScopeAccessesText : [ + "Connectivity" + ] +NetworkManagerScopesText : { + "ManagementGroups": [ + "/providers/Microsoft.Management/managementGroups/PowerShellTest" + ], + "Subscriptions": [ + "/subscriptions/0fd190fa-dd1c-4724-b7f6-c5cc3ba5c884" + ] + } +TagsTable : +DisplayName : +Description : +Type : Microsoft.Network/networkManagers +ProvisioningState : Succeeded +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "jaredgorthy@microsoft.com", + "CreatedByType": "User", + "CreatedAt": "2022-08-07T04:12:51.7463424Z", + "LastModifiedBy": "jaredgorthy@microsoft.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2022-08-07T04:12:51.7463424Z" + } +Name : psNetworkManager +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager +``` + +Creates a network manager with connectivity access in West US, with a subscription and management group in scope. + ++ Example 2: Creates a security admin network manager. +```powershell +$subscriptions = @("/subscriptions/0fd190fa-dd1c-4724-b7f6-c5cc3ba5c884") +$scope = New-AzNetworkManagerScope -Subscription $subscriptions +$access = @("SecurityAdmin") +New-AzNetworkManager -ResourceGroupName "psResourceGroup" -Name "psNetworkManager" -NetworkManagerScope $scope -NetworkManagerScopeAccess $access -Location "westus" +``` + +```output +Location : westus +Tag : {} +NetworkManagerScopes : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSNetworkManagerScopes +NetworkManagerScopeAccesses : {"SecurityAdmin"} +NetworkManagerScopeAccessesText : [ + "SecurityAdmin" + ] +NetworkManagerScopesText : { + "Subscriptions": [ + "/subscriptions/0fd190fa-dd1c-4724-b7f6-c5cc3ba5c884" + ] + } +TagsTable : +DisplayName : +Description : +Type : Microsoft.Network/networkManagers +ProvisioningState : Succeeded +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "jaredgorthy@microsoft.com", + "CreatedByType": "User", + "CreatedAt": "2022-08-07T04:12:51.7463424Z", + "LastModifiedBy": "jaredgorthy@microsoft.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2022-08-07T04:12:51.7463424Z" + } +Name : psNetworkManager +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/pr + oviders/Microsoft.Network/networkManagers/psNetworkManager +``` + +Creates a network manager with security administrator access in West US, with a subscription in scope. + + +#### Get-AzNetworkManager + +#### SYNOPSIS +Gets a network manager in a resource group. + +#### SYNTAX + ++ NoExpand (Default) +```powershell +Get-AzNetworkManager [-Name ] [-ResourceGroupName ] [-DefaultProfile ] + [] +``` + ++ Expand +```powershell +Get-AzNetworkManager -Name -ResourceGroupName [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Retrieve a network manager +```powershell +Get-AzNetworkManager -ResourceGroupName "TestResourceGroup" -Name "TestNM" +``` + +```output +DisplayName : +Description : +Location : eastus2euap +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestResourceGroup/provider + s/Microsoft.Network/networkManagers/TestNM +Type : Microsoft.Network/networkManagers +Tag : {} +ProvisioningState : Succeeded +NetworkManagerScopeAccesses : [ + "SecurityAdmin", + "SecurityUser" + ] +NetworkManagerScopes : { + "ManagementGroups": [], + "Subscriptions": [ + "/subscriptions/00000000-0000-0000-0000-000000000000" + ] + } +SystemData : { + "CreatedBy": "user@microsoft.com", + "CreatedByType": "User", + "CreatedAt": "2021-10-05T04:15:42", + "LastModifiedBy": "user@microsoft.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2021-10-05T04:15:42" + } +Name : TestNM +Etag : W/"00000000-0000-0000-0000-000000000000" +``` + +Retrieve a network manager. + ++ Example 2: List all network managers in a resource group +```powershell +Get-AzNetworkManager -ResourceGroupName "TestResourceGroup" +``` + +```output +DisplayName : +Description : +Location : eastus2euap +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestResourceGroup/provider + s/Microsoft.Network/networkManagers/TestNM +Type : Microsoft.Network/networkManagers +Tag : {} +ProvisioningState : Succeeded +NetworkManagerScopeAccesses : [ + "SecurityAdmin", + "SEcurityUser" + ] +NetworkManagerScopes : { + "ManagementGroups": [], + "Subscriptions": [ + "/subscriptions/00000000-0000-0000-0000-000000000000" + ] + } +SystemData : { + "CreatedBy": "user@microsoft.com", + "CreatedByType": "User", + "CreatedAt": "2021-10-05T04:15:42", + "LastModifiedBy": "user@microsoft.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2021-10-05T04:15:42" + } +Name : TestNM +Etag : W/"00000000-0000-0000-0000-000000000000" +``` + +List all network managers in a resource group. + + +#### Remove-AzNetworkManager + +#### SYNOPSIS +Removes a network manager. + +#### SYNTAX + +```powershell +Remove-AzNetworkManager -Name -ResourceGroupName [-ForceDelete] [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzNetworkManager -Name TestNMName -ResourceGroupName TestRGName +``` + +Deletes a network manager. + + +#### Set-AzNetworkManager + +#### SYNOPSIS +Updates a network manager.. + +#### SYNTAX + +```powershell +Set-AzNetworkManager -InputObject [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$networkManager = Get-AzNetworkManager -ResourceGroupName "psResourceGroup" -Name "psNetworkManager" +$networkManager.Description = "updated description" +Set-AzNetworkManager -InputObject $networkManager +``` + +```output +Location : westus +Tag : {} +NetworkManagerScopes : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSNetworkManagerScopes +NetworkManagerScopeAccesses : {Connectivity, SecurityAdmin} +NetworkManagerScopeAccessesText : [ + "Connectivity", + "SecurityAdmin" + ] +NetworkManagerScopesText : { + "ManagementGroups": [ + "/providers/Microsoft.Management/managementGroups/PowerShellTest" + ], + "Subscriptions": [ + "/subscriptions/0fd190fa-dd1c-4724-b7f6-c5cc3ba5c884" + ] + } +TagsTable : +DisplayName : +Description : updated description +Type : Microsoft.Network/networkManagers +ProvisioningState : Succeeded +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "jaredgorthy@microsoft.com", + "CreatedByType": "User", + "CreatedAt": "2022-08-07T04:12:51.7463424Z", + "LastModifiedBy": "jaredgorthy@microsoft.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2022-08-08T00:50:28.6707606Z" + } +Name : psNetworkManager +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager +``` + +Example to update the description of a network manager. + ++ Example 2 +```powershell +$networkManager = Get-AzNetworkManager -ResourceGroupName "psResourceGroup" -Name "psNetworkManager" +$access = @("Connectivity", "SecurityAdmin") +$networkManager.NetworkManagerScopeAccesses = $access +Set-AzNetworkManager -InputObject $networkManager +``` + +```output +Location : westus +Tag : {} +NetworkManagerScopes : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSNetworkManagerScopes +NetworkManagerScopeAccesses : {Connectivity, SecurityAdmin} +NetworkManagerScopeAccessesText : [ + "Connectivity", + "SecurityAdmin" + ] +NetworkManagerScopesText : { + "ManagementGroups": [ + "/providers/Microsoft.Management/managementGroups/PowerShellTest" + ], + "Subscriptions": [ + "/subscriptions/0fd190fa-dd1c-4724-b7f6-c5cc3ba5c884" + ] + } +TagsTable : +DisplayName : +Description : updated description +Type : Microsoft.Network/networkManagers +ProvisioningState : Succeeded +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "jaredgorthy@microsoft.com", + "CreatedByType": "User", + "CreatedAt": "2022-08-07T04:12:51.7463424Z", + "LastModifiedBy": "jaredgorthy@microsoft.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2022-08-08T00:52:45.0100913Z" + } +Name : psNetworkManager +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager +``` + +Updates a network manager scope access. + + +#### Get-AzNetworkManagerActiveConnectivityConfiguration + +#### SYNOPSIS +Lists NetworkManager Active Connectivity Configurations in network manager. + +#### SYNTAX + +```powershell +Get-AzNetworkManagerActiveConnectivityConfiguration -NetworkManagerName -ResourceGroupName + [-Region ] [-SkipToken ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$regions = @("centraluseuap") +Get-AzNetworkManagerActiveConnectivityConfiguration -NetworkManagerName "TestNMName" -ResourceGroupName "TestRG" -Region $regions -SkipToken "FakeSkipToken" +``` + +```output +Value : [ + { + "Region": "centraluseuap", + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/connectivityConfigurations/TestConn", + "DisplayName": "Sample Config Name", + "Description": "", + "ConnectivityTopology": "HubAndSpoke", + "Hubs": [ + { + "ResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/provide + rs/Microsoft.Network/virtualNetworks/hub", + "ResourceType": "Microsoft.Network/virtualNetworks" + } + ], + "IsGlobal": "False", + "AppliesToGroups": [ + { + "NetworkGroupId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/pro + viders/Microsoft.Network/networkManagers/TestNMName/networkGroups/testNG", + "UseHubGateway": "False", + "IsGlobal": "True", + "GroupConnectivity": "None" + } + ], + "ProvisioningState": "Succeeded", + "DeleteExistingPeering": "True", + "ConfigurationGroups": [ + { + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/networkGroups/testNG", + "DisplayName": "DISplayName", + "Description": "SampleDESCRIption", + "GroupMembers": [ + { + "ResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/virtualNetworks/testvnet" + } + ], + "ConditionalMembership": "", + "ProvisioningState": "Succeeded" + } + ] + } + ] +SkipToken : +``` + +Lists NetworkManager Active Connectivity Configurations in network manager for region centraluseuap. + + +#### Get-AzNetworkManagerActiveSecurityAdminRule + +#### SYNOPSIS +Lists NetworkManager Active Security Admin Rules in network manager. + +#### SYNTAX + +```powershell +Get-AzNetworkManagerActiveSecurityAdminRule -NetworkManagerName -ResourceGroupName + [-Region ] [-SkipToken ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$regions = @("centraluseuap") +Get-AzNetworkManagerActiveSecurityAdminRule -NetworkManagerName "TestNMName" -ResourceGroupName "TestRG" -Region $regions -SkipToken "FakeSkipToken" +``` + +```output +Value : [ + { + "DisplayName": "Sample Rule Name", + "Description": "Description", + "Protocol": "Tcp", + "Sources": [ + { + "AddressPrefix": "Internet", + "AddressPrefixType": "ServiceTag" + } + ], + "Destinations": [ + { + "AddressPrefix": "10.0.0.1", + "AddressPrefixType": "IPPrefix" + } + ], + "SourcePortRanges": [ + "100" + ], + "DestinationPortRanges": [ + "99" + ], + "Access": "Allow", + "Priority": 100, + "Direction": "Inbound", + "ProvisioningState": "Succeeded", + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/securityAdminConfigurations/TestAdminConfig/ruleCollections/TestRuleCollection/rules/TestRule", + "Region": "eastus2euap", + "ConfigurationDisplayName": "sample Config DisplayName", + "ConfigurationDescription": "DESCription", + "RuleCollectionDisplayName": "Sample rule Collection displayName", + "RuleCollectionDescription": "Sample rule Collection Description", + "RuleCollectionAppliesToGroups": [ + { + "NetworkGroupId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/networkGroups/testNG" + } + ], + "RuleGroups": [ + { + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/networkGroups/testNG", + "DisplayName": "DISplayName", + "Description": "SampleConfigDESCRIption", + "GroupMembers": [ + { + "ResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/virtualNetworks/testvnet" + } + ], + "ConditionalMembership": "", + "ProvisioningState": "Succeeded" + } + ] + } + ] +SkipToken : +``` + +Lists NetworkManager Active Security Admin Rules in network manager for region centraluseuap. + + +#### New-AzNetworkManagerAddressPrefixItem + +#### SYNOPSIS +Creates a network manager address prefix item. + +#### SYNTAX + +```powershell +New-AzNetworkManagerAddressPrefixItem -AddressPrefix -AddressPrefixType + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzNetworkManagerAddressPrefixItem -AddressPrefix "Internet" -AddressPrefixType "ServiceTag" +``` + +```output +AddressPrefix AddressPrefixType +------------- ----------------- +Internet ServiceTag +``` + +Creates a network manager service tag address prefix item. + ++ Example 2 +```powershell +New-AzNetworkManagerAddressPrefixItem -AddressPrefix "10.0.0.1" -AddressPrefixType "IPPrefix" +``` + +```output +AddressPrefix AddressPrefixType +------------- ----------------- +10.0.0.1 IPPrefix +``` + +Creates a network manager IP address prefix item. + + +#### Get-AzNetworkManagerAssociatedResourcesList + +#### SYNOPSIS +Gets list of associated resources in network manager IPAM pool. + +#### SYNTAX + ++ ByName (Default) +```powershell +Get-AzNetworkManagerAssociatedResourcesList -IpamPoolName -NetworkManagerName + -ResourceGroupName [-DefaultProfile ] + [] +``` + ++ ByResourceId +```powershell +Get-AzNetworkManagerAssociatedResourcesList -ResourceId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzNetworkManagerAssociatedResourcesList -IpamPoolName "TestPool" -NetworkManagerName "TestNetworkManager" -ResourceGroupName "TestResourceGroupName" +``` + +```output +ResourceId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Network/virtualNetworks/testvNet +PoolId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Network/networkManagers/testNM/ + ipamPools/testPool +Description : +AddressPrefixes : {10.0.16.0/20} +ReservedAddressPrefixes : +TotalNumberOfIPAddresses : 4096 +NumberOfReservedIPAddresses : 0 +CreatedAt : 10/2/2024 6:29:55 PM +ReservationExpiresAt : +AddressPrefixesText : [ + "10.0.16.0/20" + ] +ReservedAddressPrefixesText : null + +ResourceId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ipam-test-rg/providers/Microsoft.Network/virtualNetworks/paige-vn + et +PoolId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Network/networkManagers/testNM/ + ipamPools/testPool +Description : +AddressPrefixes : {10.0.8.0/23} +ReservedAddressPrefixes : +TotalNumberOfIPAddresses : 512 +NumberOfReservedIPAddresses : 0 +CreatedAt : 10/2/2024 2:37:10 PM +ReservationExpiresAt : +AddressPrefixesText : [ + "10.0.8.0/23" + ] +ReservedAddressPrefixesText : null + +ResourceId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Network/networkManagers/testNM/ + ipamPools/testPool/staticCidrs/appleCidr1 +PoolId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Network/networkManagers/testNM/ + ipamPools/testPool +Description : +AddressPrefixes : {10.0.0.0/24} +ReservedAddressPrefixes : +TotalNumberOfIPAddresses : 256 +NumberOfReservedIPAddresses : 0 +CreatedAt : 9/9/2024 2:17:36 PM +ReservationExpiresAt : +AddressPrefixesText : [ + "10.0.0.0/24" + ] +ReservedAddressPrefixesText : null +``` + +Gets the resources in a pool. + + +#### Deploy-AzNetworkManagerCommit + +#### SYNOPSIS +Deploys a network manager commit. + +#### SYNTAX + +```powershell +Deploy-AzNetworkManagerCommit -Name -ResourceGroupName -TargetLocation + [-ConfigurationId ] -CommitType [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$regions = @("eastus", "westus") +$configIds = @("/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/connectivityConfigurations/psConnectivityConfigMesh") +Deploy-AzNetworkManagerCommit -ResourceGroupName "psResourceGroup" -Name "psNetworkManager" -TargetLocation $regions -ConfigurationId $configids -CommitType "Connectivity" +``` + +This example is used to commit connectivity configuration in East US and West US regions. + ++ Example 2 +```powershell +$regions = @( "westus") +Deploy-AzNetworkManagerCommit -ResourceGroupName "psResourceGroup" -Name "psNetworkManager" -TargetLocation $regions -CommitType "Connectivity" +``` + +This example is used to uncommit all connectivity configurations in West US region. + ++ Example 3 +```powershell +$regions = @( "westus") +$configIds = @("/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/securityAdminConfigurations/psSecurityAdminConfig") +Deploy-AzNetworkManagerCommit -ResourceGroupName "psResourceGroup" -Name "psNetworkManager" -TargetLocation $regions -CommitType "SecurityAdmin" -ConfigurationId $configids +``` + +This example is used to commit a security admin config in West US region. + ++ Example 3 +```powershell +$regions = @( "westus") +$configIds = @("/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/routingConfigurations/psRoutingConfig") +Deploy-AzNetworkManagerCommit -ResourceGroupName "psResourceGroup" -Name "psNetworkManager" -TargetLocation $regions -CommitType "Routing" -ConfigurationId $configids +``` + +This example is used to commit a routing config in West US region. + ++ Example 3 +```powershell +$regions = @( "westus") +$configIds = @("/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/securityUserConfigurations/psSecurityUserConfig") +Deploy-AzNetworkManagerCommit -ResourceGroupName "psResourceGroup" -Name "psNetworkManager" -TargetLocation $regions -CommitType "SecurityUser" -ConfigurationId $configids +``` + +This example is used to commit a security user config in West US region. + + +#### New-AzNetworkManagerConnectivityConfiguration + +#### SYNOPSIS +Creates a network manager connectivity configuration. + +#### SYNTAX + +```powershell +New-AzNetworkManagerConnectivityConfiguration -Name -NetworkManagerName + -ResourceGroupName -AppliesToGroup + -ConnectivityTopology [-Description ] [-Hub ] [-DeleteExistingPeering] + [-IsGlobal] [-ConnectivityCapability ] [-Force] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$connectivityGroupItem = New-AzNetworkManagerConnectivityGroupItem -NetworkGroupId "/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup" +$connectivityGroup = @($connectivityGroupItem) + +$hub = New-AzNetworkManagerHub -ResourceId "/subscriptions/0fd190fa-dd1c-4724-b7f6-c5cc3ba5c884/resourceGroups/jaredgorthy-PowerShellTestResources/providers/Microsoft.Network/virtualNetworks/powerShellTestVnetHub" -ResourceType "Microsoft.Network/virtualNetworks" +$hubList = @($hub) +New-AzNetworkManagerConnectivityConfiguration -ResourceGroupName psResourceGroup -Name "psConnectivityConfig" -NetworkManagerName psNetworkManager -ConnectivityTopology "HubAndSpoke" -Hub $hublist -AppliesToGroup $connectivityGroup -DeleteExistingPeering +``` + +```output +ConnectivityTopology : HubAndSpoke +Hubs : {/subscriptions/0fd190fa-dd1c-4724-b7f6-c5cc3ba5c884/resourceGroups/jaredgorthy-PowerShellTestResources/providers/Microsoft.Network/virtualNetworks/powerShellTestVnetHub} +DeleteExistingPeering : True +IsGlobal : False +ConnectivityCapability : { + "ConnectedGroupPrivateEndpointScale": "Standard", + "ConnectedGroupAddressOverlap": "Allowed", + "PeeringEnforcement": "Unenforced" + } +AppliesToGroups : {/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup} +AppliesToGroupsText : [ + { + "NetworkGroupId": "/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup", + "UseHubGateway": "False", + "IsGlobal": "False", + "GroupConnectivity": "None" + } + ] +HubsText : [ + { + "ResourceId": "/subscriptions/0fd190fa-dd1c-4724-b7f6-c5cc3ba5c884/resourceGroups/jaredgorthy-PowerShellTestResources/providers/Microsoft.Network/virtualNetworks/powerShellTestVnetHub", + "ResourceType": "Microsoft.Network/virtualNetworks" + } + ] +DisplayName : +Description : +Type : Microsoft.Network/networkManagers/connectivityConfigurations +ProvisioningState : Succeeded +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "jaredgorthy@microsoft.com", + "CreatedByType": "User", + "CreatedAt": "2022-08-07T04:37:43.1186543Z", + "LastModifiedBy": "jaredgorthy@microsoft.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2022-08-07T04:37:43.1186543Z" + } +Name : psConnectivityConfig +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/connectivityConfigurations/psConnectivityConfig +``` + +Creates a hub and spoke network manager connectivity configuration. + ++ Example 2 +```powershell +$connectivityGroupItem = New-AzNetworkManagerConnectivityGroupItem -NetworkGroupId "/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup" +[System.Collections.Generic.List[Microsoft.Azure.Commands.Network.Models.NetworkManager.PSNetworkManagerConnectivityGroupItem]]$connectivityGroup = @() +$connectivityGroup.Add($connectivityGroupItem) +New-AzNetworkManagerConnectivityConfiguration -ResourceGroupName psResourceGroup -Name "psConnectivityConfigMesh" -NetworkManagerName psNetworkManager -ConnectivityTopology "Mesh" -AppliesToGroup $connectivityGroup -DeleteExistingPeering +``` + +```output +ConnectivityTopology : Mesh +Hubs : {} +DeleteExistingPeering : True +IsGlobal : False +ConnectivityCapability : { + "ConnectedGroupPrivateEndpointScale": "Standard", + "ConnectedGroupAddressOverlap": "Allowed", + "PeeringEnforcement": "Unenforced" + } +AppliesToGroups : {/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup} +AppliesToGroupsText : [ + { + "NetworkGroupId": "/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup", + "UseHubGateway": "False", + "IsGlobal": "False", + "GroupConnectivity": "None" + } + ] +HubsText : [] +DisplayName : +Description : +Type : Microsoft.Network/networkManagers/connectivityConfigurations +ProvisioningState : Succeeded +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "jaredgorthy@microsoft.com", + "CreatedByType": "User", + "CreatedAt": "2022-08-07T04:43:00.9075845Z", + "LastModifiedBy": "jaredgorthy@microsoft.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2022-08-07T04:43:00.9075845Z" + } +Name : psConnectivityConfigMesh +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/connectivityConfigurations/psConnectivityConfigMesh +``` + +Creates a mesh network manager connectivity configuration. + ++ Example 3: Create with ConnectivityCapability +```powershell +$connectivityGroupItem = New-AzNetworkManagerConnectivityGroupItem -NetworkGroupId "/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup" +[System.Collections.Generic.List[Microsoft.Azure.Commands.Network.Models.NetworkManager.PSNetworkManagerConnectivityGroupItem]]$connectivityGroup = @() +$connectivityGroup.Add($connectivityGroupItem) +$capabilities = [PSCustomObject]@{ + ConnectedGroupPrivateEndpointScale = "HighScale" + ConnectedGroupAddressOverlap = "Disallowed" + PeeringEnforcement = "Enforced" +} +New-AzNetworkManagerConnectivityConfiguration -ResourceGroupName psResourceGroup -Name "psConnectivityConfigMesh" -NetworkManagerName psNetworkManager -ConnectivityTopology "Mesh" -AppliesToGroup $connectivityGroup -DeleteExistingPeering -ConnectivityCapability $capabilities +``` + +```output +ConnectivityTopology : Mesh +Hubs : {} +DeleteExistingPeering : True +IsGlobal : False +ConnectivityCapability : { + "ConnectedGroupPrivateEndpointScale": "HighScale", + "ConnectedGroupAddressOverlap": "Disallowed", + "PeeringEnforcement": "Enforced" + } +AppliesToGroups : {/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup} +AppliesToGroupsText : [ + { + "NetworkGroupId": "/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup", + "UseHubGateway": "False", + "IsGlobal": "False", + "GroupConnectivity": "None" + } + ] +HubsText : [] +DisplayName : +Description : +Type : Microsoft.Network/networkManagers/connectivityConfigurations +ProvisioningState : Succeeded +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "jaredgorthy@microsoft.com", + "CreatedByType": "User", + "CreatedAt": "2022-08-07T04:43:00.9075845Z", + "LastModifiedBy": "jaredgorthy@microsoft.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2022-08-07T04:43:00.9075845Z" + } +Name : psConnectivityConfigMesh +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/connectivityConfigurations/psConnectivityConfigMesh +``` + + +#### Get-AzNetworkManagerConnectivityConfiguration + +#### SYNOPSIS +Gets a connectivity configuration in a network manager. + +#### SYNTAX + ++ NoExpand (Default) +```powershell +Get-AzNetworkManagerConnectivityConfiguration [-Name ] -NetworkManagerName + -ResourceGroupName [-DefaultProfile ] + [] +``` + ++ Expand +```powershell +Get-AzNetworkManagerConnectivityConfiguration -Name -NetworkManagerName + -ResourceGroupName [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzNetworkManagerConnectivityConfiguration -ResourceGroupName "psResourceGroup" -NetworkManagerName "psNetworkManager" -Name "psConnectivityConfig" +``` + +```output +ConnectivityTopology : HubAndSpoke +Hubs : {/subscriptions/0fd190fa-dd1c-4724-b7f6-c5cc3ba5c884/resourceGroups/jaredgorthy-PowerShellTestResources/providers/Microsoft.Network/virtualNetworks/powerShellTestVnetHub} +DeleteExistingPeering : True +IsGlobal : False +ConnectivityCapability : { + "ConnectedGroupPrivateEndpointsScale": "Standard", + "ConnectedGroupAddressOverlap": "Disallowed", + "PeeringEnforcement": "Unenforced" + } +AppliesToGroups : {/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup, + /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup2} +AppliesToGroupsText : [ + { + "NetworkGroupId": + "/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup", + "UseHubGateway": "False", + "IsGlobal": "False", + "GroupConnectivity": "None" + }, + { + "NetworkGroupId": + "/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup2", + "UseHubGateway": "False", + "IsGlobal": "False", + "GroupConnectivity": "None" + } + ] +HubsText : [ + { + "ResourceId": "/subscriptions/0fd190fa-dd1c-4724-b7f6-c5cc3ba5c884/resourceGroups/jaredgorthy-PowerShellTestResources/providers/Microsoft.Network/virtualNetworks/powerShellTestVnetHub", + "ResourceType": "Microsoft.Network/virtualNetworks" + } + ] +DisplayName : +Description : +Type : Microsoft.Network/networkManagers/connectivityConfigurations +ProvisioningState : Succeeded +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "jaredgorthy@microsoft.com", + "CreatedByType": "User", + "CreatedAt": "2022-08-07T04:37:43.1186543Z", + "LastModifiedBy": "jaredgorthy@microsoft.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2022-08-08T00:58:41.1751638Z" + } +Name : psConnectivityConfig +Etag : "02002303-0000-0700-0000-62f05fc10000" +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/connectivityConfigurations/psConnectivityConfig +``` + +Gets a connectivity configuration in a network manager. + ++ Example 2 +```powershell +Get-AzNetworkManagerConnectivityConfiguration -ResourceGroupName "psResourceGroup" -NetworkManagerName "psNetworkManager" +``` + +```output +ConnectivityTopology : HubAndSpoke +Hubs : {/subscriptions/0fd190fa-dd1c-4724-b7f6-c5cc3ba5c884/resourceGroups/jaredgorthy-PowerShellTestResources/providers/Microsoft.Network/virtualNetworks/powerShellTestVnetHub} +DeleteExistingPeering : True +IsGlobal : False +ConnectivityCapability : { + "ConnectedGroupPrivateEndpointsScale": "Standard", + "ConnectedGroupAddressOverlap": "Disallowed", + "PeeringEnforcement": "Unenforced" + } +AppliesToGroups : {/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup, + /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup2} +AppliesToGroupsText : [ + { + "NetworkGroupId": + "/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup", + "UseHubGateway": "False", + "IsGlobal": "False", + "GroupConnectivity": "None" + }, + { + "NetworkGroupId": + "/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup2", + "UseHubGateway": "False", + "IsGlobal": "False", + "GroupConnectivity": "None" + } + ] +HubsText : [ + { + "ResourceId": "/subscriptions/0fd190fa-dd1c-4724-b7f6-c5cc3ba5c884/resourceGroups/jaredgorthy-PowerShellTestResources/providers/Microsoft.Network/virtualNetworks/powerShellTestVnetHub", + "ResourceType": "Microsoft.Network/virtualNetworks" + } + ] +DisplayName : +Description : +Type : Microsoft.Network/networkManagers/connectivityConfigurations +ProvisioningState : Succeeded +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "jaredgorthy@microsoft.com", + "CreatedByType": "User", + "CreatedAt": "2022-08-07T04:37:43.1186543Z", + "LastModifiedBy": "jaredgorthy@microsoft.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2022-08-08T00:58:41.1751638Z" + } +Name : psConnectivityConfig +Etag : "02002303-0000-0700-0000-62f05fc10000" +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/connectivityConfigurations/psConnectivityConfig + +ConnectivityTopology : Mesh +Hubs : {} +DeleteExistingPeering : True +IsGlobal : False +ConnectivityCapability : { + "ConnectedGroupPrivateEndpointsScale": "Standard", + "ConnectedGroupAddressOverlap": "Disallowed", + "PeeringEnforcement": "Unenforced" + } +AppliesToGroups : {/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup} +AppliesToGroupsText : [ + { + "NetworkGroupId": + "/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup", + "UseHubGateway": "False", + "IsGlobal": "False", + "GroupConnectivity": "None" + } + ] +HubsText : [] +DisplayName : +Description : +Type : Microsoft.Network/networkManagers/connectivityConfigurations +ProvisioningState : Succeeded +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "jaredgorthy@microsoft.com", + "CreatedByType": "User", + "CreatedAt": "2022-08-07T04:43:00.9075845Z", + "LastModifiedBy": "jaredgorthy@microsoft.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2022-08-07T04:43:00.9075845Z" + } +Name : psConnectivityConfigMesh +Etag : "010010af-0000-0700-0000-62ef42d50000" +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/connectivityConfigurations/psConnectivityConfigMesh +``` + +Gets all connectivity configurations in a network manager. + + +#### Remove-AzNetworkManagerConnectivityConfiguration + +#### SYNOPSIS +Removes a connectivity configuration. + +#### SYNTAX + +```powershell +Remove-AzNetworkManagerConnectivityConfiguration -Name -NetworkManagerName + -ResourceGroupName [-ForceDelete] [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzNetworkManagerConnectivityConfiguration -Name TestConnConfigName -NetworkManagerName TestNMName -ResourceGroupName TestRGName -ForceDelete +``` + +Removes a connectivity configuration. + + +#### Set-AzNetworkManagerConnectivityConfiguration + +#### SYNOPSIS +Updates a connectivity configuration. + +#### SYNTAX + +```powershell +Set-AzNetworkManagerConnectivityConfiguration -InputObject [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$ConnectivityConfiguration = Get-AzNetworkManagerConnectivityConfiguration -Name "psConnectivityConfig" -NetworkManagerName "psNetworkManager" -ResourceGroupName "psResourceGroup" +$connectivityGroupItem = New-AzNetworkManagerConnectivityGroupItem -NetworkGroupId "/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup" +$connectivityGroupItem2 = New-AzNetworkManagerConnectivityGroupItem -NetworkGroupId "/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup2" +[System.Collections.Generic.List[Microsoft.Azure.Commands.Network.Models.NetworkManager.PSNetworkManagerConnectivityGroupItem]]$connectivityGroup = @() +$connectivityGroup.Add($connectivityGroupItem) +$connectivityGroup.Add($connectivityGroupItem2) +$ConnectivityConfiguration.AppliesToGroups = $connectivityGroup +Set-AzNetworkManagerConnectivityConfiguration -InputObject $ConnectivityConfiguration +``` + +```output +ConnectivityTopology : HubAndSpoke +Hubs : {/subscriptions/0fd190fa-dd1c-4724-b7f6-c5cc3ba5c884/resourceGroups/jaredgorthy-PowerShellTestResources/providers/Microsoft.Network/virtualNetworks/powerShellTestVnetHub} +DeleteExistingPeering : True +IsGlobal : False +ConnectivityCapability : { + "ConnectedGroupPrivateEndpointScale": "Standard", + "ConnectedGroupAddressOverlap": "Disallowed", + "PeeringEnforcement": "Unenforced" + } +AppliesToGroups : {/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup, + /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup2} +AppliesToGroupsText : [ + { + "NetworkGroupId": + "/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup", + "UseHubGateway": "False", + "IsGlobal": "False", + "GroupConnectivity": "None" + }, + { + "NetworkGroupId": + "/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup2", + "UseHubGateway": "False", + "IsGlobal": "False", + "GroupConnectivity": "None" + } + ] +HubsText : [ + { + "ResourceId": "/subscriptions/0fd190fa-dd1c-4724-b7f6-c5cc3ba5c884/resourceGroups/jaredgorthy-PowerShellTestResources/providers/Microsoft.Network/virtualNetworks/powerShellTestVnetHub", + "ResourceType": "Microsoft.Network/virtualNetworks" + } + ] +DisplayName : +Description : +Type : Microsoft.Network/networkManagers/connectivityConfigurations +ProvisioningState : Succeeded +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "jaredgorthy@microsoft.com", + "CreatedByType": "User", + "CreatedAt": "2022-08-07T04:37:43.1186543Z", + "LastModifiedBy": "jaredgorthy@microsoft.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2022-08-08T00:58:41.1751638Z" + } +Name : psConnectivityConfig +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/connectivityConfigurations/psConnectivityConfig +``` + +Updates a connectivity configuration's group members. + ++ Example 2 +```powershell +$ConnectivityConfiguration = Get-AzNetworkManagerConnectivityConfiguration -Name "psConnectivityConfig" -NetworkManagerName "psNetworkManager" -ResourceGroupName "psResourceGroup" +$ConnectivityConfiguration.ConnectivityCapability = [PSCustomObject]@{ + ConnectedGroupPrivateEndpointScale = "HighScale" + ConnectedGroupAddressOverlap = "Allowed" + PeeringEnforcement = "Enforced" +} +Set-AzNetworkManagerConnectivityConfiguration -InputObject $ConnectivityConfiguration +``` + +```output +ConnectivityTopology : HubAndSpoke +Hubs : {/subscriptions/0fd190fa-dd1c-4724-b7f6-c5cc3ba5c884/resourceGroups/jaredgorthy-PowerShellTestResources/providers/Microsoft.Network/virtualNetworks/powerShellTestVnetHub} +DeleteExistingPeering : True +IsGlobal : False +ConnectivityCapability : { + "ConnectedGroupPrivateEndpointScale": "HighScale", + "ConnectedGroupAddressOverlap": "Allowed", + "PeeringEnforcement": "Enforced" + } +AppliesToGroups : {/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup, + /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup2} +AppliesToGroupsText : [ + { + "NetworkGroupId": + "/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup", + "UseHubGateway": "False", + "IsGlobal": "False", + "GroupConnectivity": "None" + }, + { + "NetworkGroupId": + "/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup2", + "UseHubGateway": "False", + "IsGlobal": "False", + "GroupConnectivity": "None" + } + ] +HubsText : [ + { + "ResourceId": "/subscriptions/0fd190fa-dd1c-4724-b7f6-c5cc3ba5c884/resourceGroups/jaredgorthy-PowerShellTestResources/providers/Microsoft.Network/virtualNetworks/powerShellTestVnetHub", + "ResourceType": "Microsoft.Network/virtualNetworks" + } + ] +DisplayName : +Description : +Type : Microsoft.Network/networkManagers/connectivityConfigurations +ProvisioningState : Succeeded +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "jaredgorthy@microsoft.com", + "CreatedByType": "User", + "CreatedAt": "2022-08-07T04:37:43.1186543Z", + "LastModifiedBy": "jaredgorthy@microsoft.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2022-08-08T00:58:41.1751638Z" + } +Name : psConnectivityConfig +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/connectivityConfigurations/psConnectivityConfig +``` + +Updates the connectivity capabilities of an existing configuration. + + +#### New-AzNetworkManagerConnectivityGroupItem + +#### SYNOPSIS +Creates a connectivity group item. + +#### SYNTAX + +```powershell +New-AzNetworkManagerConnectivityGroupItem -NetworkGroupId [-UseHubGateway] + [-GroupConnectivity ] [-IsGlobal] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$networkGroupId = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/networkGroups/TestGroup" +New-AzNetworkManagerConnectivityGroupItem -NetworkGroupId $networkGroupId -UseHubGateway -GroupConnectivity "None" -IsGlobal +``` + +```output +NetworkGroupId UseHubGateway IsGlobal GroupConnectivity +-------------- ------------- -------- ----------------- +/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/networkGroups/TestGroup True True None +``` + +Creates a connectivity group item using hub as gateway. + ++ Example 2 +```powershell +$networkGroupId = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/networkGroups/TestGroup" +New-AzNetworkManagerConnectivityGroupItem -NetworkGroupId $networkGroupId -GroupConnectivity "DirectlyConnected" +``` + +```output +NetworkGroupId UseHubGateway IsGlobal GroupConnectivity +-------------- ------------- -------- ----------------- +/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/networkGroups/TestGroup False False DirectlyConnected +``` + +Creates a connectivity group item with direct connectivity. + + +#### Get-AzNetworkManagerDeploymentStatus + +#### SYNOPSIS +Lists Deployment Status in a network manager. + +#### SYNTAX + +```powershell +Get-AzNetworkManagerDeploymentStatus -NetworkManagerName -ResourceGroupName + [-Region ] [-DeploymentType ] [-SkipToken ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$regions = @("centraluseuap") +$DeploymentTypes = @("SecurityAdmin") +Get-AzNetworkManagerDeploymentStatus -NetworkManagerName "TestNMName" -ResourceGroupName "TestRG" -region $regions -skipToken "FakeSkipToken" -DeploymentType $DeploymentTypes +``` + +```output +Value : [ + { + "CommitTime": "2021-10-18T04:06:08Z", + "Region": "centraluseuap", + "DeploymentStatus": "Deployed", + "ConfigurationIds": [ + "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/securityAdminConfigurations/testAdminConfig" + ], + "DeploymentType": "SecurityAdmin", + "ErrorMessage": "" + } + ] +SkipToken : +``` + +Lists Deployment Status of SecurityAdmin configurations in region centraluseuap for a network manager. + + +#### Get-AzNetworkManagerEffectiveConnectivityConfiguration + +#### SYNOPSIS +Lists NetworkManager Effective Connectivity Configurations applied on a virtual networks. + +#### SYNTAX + +```powershell +Get-AzNetworkManagerEffectiveConnectivityConfiguration -VirtualNetworkName + -VirtualNetworkResourceGroupName [-SkipToken ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzNetworkManagerEffectiveConnectivityConfiguration -VirtualNetworkName "TestVnet" -VirtualNetworkResourceGroupName "TestRG" -SkipToken "FakeSkipToken" +``` + +```output +Value : [ + { + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/connectivityConfigurations/TestConn", + "DisplayName": "Sample Config Name", + "Description": "", + "ConnectivityTopology": "HubAndSpoke", + "Hubs": [ + { + "ResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/virtualNetworks/hub", + "ResourceType": "Microsoft.Network/virtualNetworks" + } + ], + "IsGlobal": "False", + "AppliesToGroups": [ + { + "NetworkGroupId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/networkGroups/testNG", + "UseHubGateway": "False", + "IsGlobal": "True", + "GroupConnectivity": "None" + } + ], + "ProvisioningState": "Succeeded", + "DeleteExistingPeering": "True", + "ConfigurationGroups": [ + { + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/networkGroups/testNG", + "DisplayName": "DISplayName", + "Description": "SampleDESCRIption", + "GroupMembers": [ + { + "ResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/virtualNetworks/testvnet" + } + ], + "ConditionalMembership": "", + "ProvisioningState": "Succeeded" + } + ] + } + ] +SkipToken : +``` + +Lists NetworkManager Effective Connectivity Configurations applied on a virtual network 'TestVnet'. + + +#### Get-AzNetworkManagerEffectiveSecurityAdminRule + +#### SYNOPSIS +Lists NetworkManager Effective Security Admin Rules applied on a virtual networks. + +#### SYNTAX + +```powershell +Get-AzNetworkManagerEffectiveSecurityAdminRule -VirtualNetworkName + -VirtualNetworkResourceGroupName [-SkipToken ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzNetworkManagerEffectiveSecurityAdminRule -VirtualNetworkName "TestVnet" -VirtualNetworkResourceGroupName "TestRG" -SkipToken "FakeSkipToken" +``` + +```output +Value : [ + { + "DisplayName": "Sample Rule Name", + "Description": "Description", + "Protocol": "Tcp", + "Sources": [ + { + "AddressPrefix": "Internet", + "AddressPrefixType": "ServiceTag" + } + ], + "Destinations": [ + { + "AddressPrefix": "10.0.0.1", + "AddressPrefixType": "IPPrefix" + } + ], + "SourcePortRanges": [ + "100" + ], + "DestinationPortRanges": [ + "99" + ], + "Access": "Allow", + "Priority": 100, + "Direction": "Inbound", + "ProvisioningState": "Succeeded", + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/securityAdminConfigurations/TestAdminConfig/ruleCollections/TestRuleCollection/rules/TestRule", + "ConfigurationDisplayName": "sample Config DisplayName", + "ConfigurationDescription": "DESCription", + "RuleCollectionDisplayName": "Sample rule Collection displayName", + "RuleCollectionDescription": "Sample rule Collection Description", + "RuleCollectionAppliesToGroups": [ + { + "NetworkGroupId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/networkGroups/testNG" + } + ], + "RuleGroups": [ + { + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/networkGroups/testNG", + "DisplayName": "DISplayName", + "Description": "SampleConfigDESCRIption", + "GroupMembers": [ + { + "ResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/virtualNetworks/TestVnet" + } + ], + "ConditionalMembership": "", + "ProvisioningState": "Succeeded" + } + ] + } + ] +SkipToken : +``` + +Lists NetworkManager Effective Security Admin Rules applied on a virtual network 'TestVnet'. + + +#### New-AzNetworkManagerGroup + +#### SYNOPSIS +Creates a network manager group. + +#### SYNTAX + +```powershell +New-AzNetworkManagerGroup -Name -NetworkManagerName -ResourceGroupName + [-Description ] [-MemberType ] [-IfMatch ] [-Force] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzNetworkManagerGroup -ResourceGroupName "psTestResourceGroup" -NetworkManagerName "psNetworkManager" -Name psNetworkGroup -Description "psDescription" +``` + +```output +MemberType : VirtualNetwork +DisplayName : +Description : psDescription +Type : Microsoft.Network/networkManagers/networkGroups +ProvisioningState : Succeeded +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "jaredgorthy@microsoft.com", + "CreatedByType": "User", + "CreatedAt": "2022-08-07T04:32:21.6585296Z", + "LastModifiedBy": "jaredgorthy@microsoft.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2022-08-07T04:32:21.6585296Z" + } +Name : psNetworkGroup +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup +``` + +Creates a network manager group. Default member type is Virtual Network. + ++ Example 2 +```powershell +New-AzNetworkManagerGroup -ResourceGroupName "psTestResourceGroup" -NetworkManagerName "psNetworkManager" -Name psNetworkGroup -Description "psDescription" -MemberType "Subnet" +``` + +```output +MemberType : Subnet +DisplayName : +Description : psDescription +Type : Microsoft.Network/networkManagers/networkGroups +ProvisioningState : Succeeded +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "jaredgorthy@microsoft.com", + "CreatedByType": "User", + "CreatedAt": "2022-08-07T04:32:21.6585296Z", + "LastModifiedBy": "jaredgorthy@microsoft.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2022-08-07T04:32:21.6585296Z" + } +Name : psNetworkGroup +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup +``` + +Creates a network manager group of type Subnet. + + +#### Get-AzNetworkManagerGroup + +#### SYNOPSIS +Gets network group(s) in a network manager. + +#### SYNTAX + ++ NoExpand (Default) +```powershell +Get-AzNetworkManagerGroup [-Name ] -NetworkManagerName -ResourceGroupName + [-DefaultProfile ] [] +``` + ++ Expand +```powershell +Get-AzNetworkManagerGroup -Name -NetworkManagerName -ResourceGroupName + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzNetworkManagerGroup -Name "TestGroup" -NetworkManagerName "TestNMName" -ResourceGroupName "TestRG" +``` + +```output +Name : TestGroup +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/networkGroups/TestGroup +Description : +Etag : "00000000-0000-0000-0000-000000000000" +ProvisioningState : Succeeded +ConditionalMembership : +MemberType : +SystemData : { + "CreatedBy": "00000000-0000-0000-0000-000000000000", + "CreatedByType": "Application", + "CreatedAt": "2021-10-17T21:13:02", + "LastModifiedBy": "00000000-0000-0000-0000-000000000000", + "LastModifiedByType": "Application", + "LastModifiedAt": "2021-10-17T21:13:02" + } +``` + +Gets a network group 'TestGroup' in a network manager. + ++ Example 2 +```powershell +Get-AzNetworkManagerGroup -NetworkManagerName "TestNMName" -ResourceGroupName "TestRG" +``` + +```output +Name : TestGroup +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/networkGroups/TestGroup +Description : +Etag : "00000000-0000-0000-0000-000000000000" +ProvisioningState : Succeeded +ConditionalMembership : +MemberType : +SystemData : { + "CreatedBy": "00000000-0000-0000-0000-000000000000", + "CreatedByType": "Application", + "CreatedAt": "2021-10-17T21:13:02", + "LastModifiedBy": "00000000-0000-0000-0000-000000000000", + "LastModifiedByType": "Application", + "LastModifiedAt": "2021-10-17T21:13:02" + } + + Name : TestGroup2 +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/networkGroups/TestGroup2 +Description : +Etag : "00000000-0000-0000-0000-000000000000" +ProvisioningState : Succeeded +ConditionalMembership : +MemberType : +SystemData : { + "CreatedBy": "00000000-0000-0000-0000-000000000000", + "CreatedByType": "Application", + "CreatedAt": "2021-10-17T21:13:02", + "LastModifiedBy": "00000000-0000-0000-0000-000000000000", + "LastModifiedByType": "Application", + "LastModifiedAt": "2021-10-17T21:13:02" + } +``` + +Gets all network groups in a network manager. + + +#### Remove-AzNetworkManagerGroup + +#### SYNOPSIS +Removes a network Group. + +#### SYNTAX + +```powershell +Remove-AzNetworkManagerGroup -Name -NetworkManagerName -ResourceGroupName + [-ForceDelete] [-Force] [-PassThru] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzNetworkManagerGroup -Name TestNetworkGroupName -NetworkManagerName TestNMName -ResourceGroupName TestRGName -ForceDelete +``` + +Deletes a network Group. + + +#### Set-AzNetworkManagerGroup + +#### SYNOPSIS +Updates a network manager group. + +#### SYNTAX + +```powershell +Set-AzNetworkManagerGroup -InputObject [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$networkGroup = Get-AzNetworkManagerGroup -Name "psNetworkGroup" -NetworkManagerName psNetworkManager -ResourceGroupName psResourceGroup +$networkGroup.description = "new description" +Set-AzNetworkManagerGroup -InputObject $networkGroup +``` + +```output +MemberType : +DisplayName : +Description : new description +Type : Microsoft.Network/networkManagers/networkGroups +ProvisioningState : Succeeded +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "jaredgorthy@microsoft.com", + "CreatedByType": "User", + "CreatedAt": "2022-08-07T04:32:21.6585296Z", + "LastModifiedBy": "jaredgorthy@microsoft.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2022-08-07T05:12:06.8159045Z" + } +Name : psNetworkGroup +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup +``` + +Updates a network manager group description. + + +#### New-AzNetworkManagerHub + +#### SYNOPSIS +Creates a network manager hub. + +#### SYNTAX + +```powershell +New-AzNetworkManagerHub -ResourceId -ResourceType [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzNetworkManagerHub -ResourceId "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/networkGroups/TestGroup" -ResourceType "Microsoft.Network/virtualNetworks" +``` + +```output +ResourceId ResourceType +---------- ------------ +/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/networkGroups/TestGroup Microsoft.Network/virtualNetworks +``` + +Creates a network manager virtual network hub. + + +#### New-AzNetworkManagerIpamPool + +#### SYNOPSIS +Creates a new IPAM pool. + +#### SYNTAX + +```powershell +New-AzNetworkManagerIpamPool -Name -NetworkManagerName -ResourceGroupName + -Location -AddressPrefix [-Description ] + [-DisplayName ] [-ParentPoolName ] [-Tag ] [-Force] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzNetworkManagerIpamPool -Name testCmdletPool -NetworkManagerName testNM -ResourceGroupName testRG -Location eastus -AddressPrefix @("10.0.0.0/24") +``` + +```output +Location : eastus +Tags : +Properties : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSIpamPoolProperties +TagsTable : +PropertiesText : { + "ProvisioningState": "Succeeded", + "DisplayName": "", + "IPAddressType": [ + "IPv4" + ], + "AddressPrefixes": [ + "10.0.0.0/24" + ] + } +Name : testCmdletPool +ResourceGroupName : testRGg +NetworkManagerName : testNM +Etag : "00000000-0000-0000-0000-000000000000" +Type : Microsoft.Network/networkManagers/ipamPools +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "test@email.com", + "CreatedByType": "User", + "CreatedAt": "2024-10-02T22:08:42.6972318Z", + "LastModifiedBy": "test@email.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2024-10-02T22:08:42.6972318Z" + } +Id : /subscriptions/c9295b92-3574-4021-95a1-26c8f74f8359/resourceGroups/testRG/providers/Microsoft.Network/networkManagers/testNM/ipamPools/testCmdletPool +``` + +A new IPAM pool was created called 'testCmdletPool' in the Network Manager 'testNM' + + +#### Get-AzNetworkManagerIpamPool + +#### SYNOPSIS +Gets IPAM pool(s). + +#### SYNTAX + ++ ByList (Default) +```powershell +Get-AzNetworkManagerIpamPool -NetworkManagerName -ResourceGroupName + [-DefaultProfile ] [] +``` + ++ ByName +```powershell +Get-AzNetworkManagerIpamPool [-Name ] -NetworkManagerName -ResourceGroupName + [-DefaultProfile ] [] +``` + ++ ByResourceId +```powershell +Get-AzNetworkManagerIpamPool -ResourceId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzNetworkManagerIpamPool -Name testPool -NetworkManagerName testNM -ResourceGroupName testRG +``` + +```output +Location : eastus2euap +Tags : {} +Properties : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSIpamPoolProperties +TagsTable : +PropertiesText : { + "ProvisioningState": "Succeeded", + "Description": "", + "DisplayName": "", + "ParentPoolName": "", + "IPAddressType": [ + "IPv4" + ], + "AddressPrefixes": [ + "10.0.0.0/16" + ] + } +Name : testPool +ResourceGroupName : testRG +NetworkManagerName : testNM +Etag : "00000000-0000-0000-0000-000000000000" +Type : Microsoft.Network/networkManagers/ipamPools +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "test@email.com", + "CreatedByType": "User", + "CreatedAt": "2024-09-09T14:10:54.2514072Z", + "LastModifiedBy": "test@email.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2024-09-09T14:10:54.2514072Z" + } +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Network/networkManagers/testNM/ipamPools + /testPool +``` + +Gets specific IPAM pool 'testPool'. + ++ Example 2 +```powershell +Get-AzNetworkManagerIpamPool -NetworkManagerName cusNM -ResourceGroupName testRG +``` + +```output +Get-AzNetworkManagerIpamPool -NetworkManagerName cusNM -ResourceGroupName testRG + +Location : centralus +Tags : {} +Properties : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSIpamPoolProperties +TagsTable : +PropertiesText : { + "ProvisioningState": "Succeeded", + "Description": "", + "DisplayName": "", + "ParentPoolName": "", + "IPAddressType": [ + "IPv4" + ], + "AddressPrefixes": [ + "10.0.0.0/16" + ] + } +Name : cusPool +ResourceGroupName : testRG +NetworkManagerName : cusNM +Etag : "00000000-0000-0000-0000-000000000000" +Type : Microsoft.Network/networkManagers/ipamPools +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "test@email.com", + "CreatedByType": "User", + "CreatedAt": "2024-09-11T15:14:17.2421406Z", + "LastModifiedBy": "test@email.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2024-09-11T15:14:17.2421406Z" + } +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Network/networkManagers/cusNM/ipamPools/cusPool + +Location : centralus +Tags : {} +Properties : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSIpamPoolProperties +TagsTable : +PropertiesText : { + "ProvisioningState": "Succeeded", + "Description": "", + "DisplayName": "", + "ParentPoolName": "", + "IPAddressType": [ + "IPv4" + ], + "AddressPrefixes": [ + "10.0.0.0/10" + ] + } +Name : sm_cus_pool1_0911 +ResourceGroupName : testRG +NetworkManagerName : cusNM +Etag : "00000000-0000-0000-0000-000000000000" +Type : Microsoft.Network/networkManagers/ipamPools +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "test@email.com", + "CreatedByType": "User", + "CreatedAt": "2024-09-11T15:50:56.5860251Z", + "LastModifiedBy": "test@email.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2024-09-11T15:50:56.5860251Z" + } +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Network/networkManagers/cusNM/ipamPools/sm_cus_pool1_0911 +``` + +Gets all IPAM pools in network manager 'cusNM'. + + +#### Remove-AzNetworkManagerIpamPool + +#### SYNOPSIS +Removes an IPAM pool. + +#### SYNTAX + ++ ByName (Default) +```powershell +Remove-AzNetworkManagerIpamPool -Name -NetworkManagerName -ResourceGroupName + [-Force] [-PassThru] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByInputObject +```powershell +Remove-AzNetworkManagerIpamPool -InputObject [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByResourceId +```powershell +Remove-AzNetworkManagerIpamPool -ResourceId [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzNetworkManagerIpamPool -Name testPool -NetworkManagerName testNM -ResourceGroupName testRG +``` + +```output +Confirm +Are you sure you want to remove resource 'testPool' +[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): Y +``` + +Removes the pool, testPool, from the network manager, testNM. + + +#### Set-AzNetworkManagerIpamPool + +#### SYNOPSIS +Updates an IPAM pool. + +#### SYNTAX + +```powershell +Set-AzNetworkManagerIpamPool -InputObject [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$ResourceGroupName = "testRG" +$NetworkManagerName = "testNM" +$IpamPoolName = "testPool" +$NewAddressPrefixes = @("10.0.0.0/15", "10.0.0.0/16") + +$ipamPool = Get-AzNetworkManagerIpamPool -ResourceGroupName $ResourceGroupName -NetworkManagerName $NetworkManagerName -Name $IpamPoolName + +$ipamPool.Properties.AddressPrefixes = [System.Collections.Generic.List[string]]$NewAddressPrefixes + +Set-AzNetworkManagerIpamPool -InputObject $ipamPool +``` + +```output +Location : eastus +Tags : {} +Properties : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSIpamPoolProperties +TagsTable : +PropertiesText : { + "ProvisioningState": "Succeeded", + "Description": "Test description.", + "DisplayName": "allocationView test", + "ParentPoolName": "", + "IPAddressType": [ + "IPv4" + ], + "AddressPrefixes": [ + "10.0.0.0/15", + "10.0.0.0/16" + ] + } +Name : testPool +ResourceGroupName : testRG +NetworkManagerName : testNM +Etag : "00000000-0000-0000-0000-000000000000" +Type : Microsoft.Network/networkManagers/ipamPools +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "test@email.com", + "CreatedByType": "User", + "CreatedAt": "2024-10-01T15:22:51.5180609Z", + "LastModifiedBy": "test@email.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2024-10-03T14:22:22.7534287Z" + } +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Network/networkManagers/testNM/ipamPools/testPool +``` + +Update the IPAM pool's addressPrefixes. + ++ Example 2 +```powershell +$ResourceGroupName = "testRG" +$NetworkManagerName = "testNM" +$IpamPoolName = "testPool" +$NewDisplayName = "My Test Pool" + +$ipamPool = Get-AzNetworkManagerIpamPool -ResourceGroupName $ResourceGroupName -NetworkManagerName $NetworkManagerName -Name $IpamPoolName + +$ipamPool.Properties.DisplayName = $NewDisplayName + +Set-AzNetworkManagerIpamPool -InputObject $ipamPool +``` + +```output +Location : eastus +Tags : {} +Properties : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSIpamPoolProperties +TagsTable : +PropertiesText : { + "ProvisioningState": "Succeeded", + "Description": "Test description.", + "DisplayName": "My Test Pool", + "ParentPoolName": "", + "IPAddressType": [ + "IPv4" + ], + "AddressPrefixes": [ + "10.0.0.0/15", + "10.0.0.0/16" + ] + } +Name : testPool +ResourceGroupName : testRG +NetworkManagerName : testNM +Etag : "00000000-0000-0000-0000-000000000000" +Type : Microsoft.Network/networkManagers/ipamPools +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "test@email.com", + "CreatedByType": "User", + "CreatedAt": "2024-10-01T15:22:51.5180609Z", + "LastModifiedBy": "test@email.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2024-10-03T14:48:24.9403689Z" + } +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Network/networkManagers/testNM/ipamPools/testPool +``` + +Gives the IPAM pool 'testPool' Display Name of 'My Test Pool' + + +#### New-AzNetworkManagerIpamPoolStaticCidr + +#### SYNOPSIS +Creates a new Static Cidr. + +#### SYNTAX + +```powershell +New-AzNetworkManagerIpamPoolStaticCidr -Name -NetworkManagerName -ResourceGroupName + -PoolName [-NumberOfIPAddressesToAllocate ] + -AddressPrefix [-Description ] [-Force] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzNetworkManagerIpamPoolStaticCidr -Name testStaticCidr -NetworkManagerName testNM -ResourceGroupName testRG -PoolName testCmdletPool -AddressPrefix @("10.0.0.0/28") +``` + +```output +Name : testStaticCidr +PoolName : testCmdletPool +ResourceGroupName : testRG +NetworkManagerName : testNM +Properties : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSStaticCidrProperties +Type : Microsoft.Network/networkManagers/ipamPools/staticCidrs +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedAt": "2024-10-02T22:34:01.3598795Z" + } +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Network/networkManagers/testNM/ipamPools/testCmdletPool/staticCidrs/testStaticCidr +``` + +Created the Static Cidr 'testStaticCidr' and allocated it to the IPAM pool 'testCmdletPool'. + + +#### Get-AzNetworkManagerIpamPoolStaticCidr + +#### SYNOPSIS +Gets Static Cidr(s) in an IPAM pool. + +#### SYNTAX + ++ ByList (Default) +```powershell +Get-AzNetworkManagerIpamPoolStaticCidr -NetworkManagerName -ResourceGroupName + -IpamPoolName [-DefaultProfile ] + [] +``` + ++ ByName +```powershell +Get-AzNetworkManagerIpamPoolStaticCidr [-Name ] -NetworkManagerName + -ResourceGroupName -IpamPoolName [-DefaultProfile ] + [] +``` + ++ ByResourceId +```powershell +Get-AzNetworkManagerIpamPoolStaticCidr -ResourceId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzNetworkManagerIpamPoolStaticCidr -Name testStaticCidr -NetworkManagerName testNM -ResourceGroupName testRG -IpamPoolName testPool +``` + +```output +Name : testStaticCidr +PoolName : testPool +ResourceGroupName : testRG +NetworkManagerName : testNM +Properties : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSStaticCidrProperties +Type : Microsoft.Network/networkManagers/ipamPools/staticCidrs +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedAt": "2024-08-09T15:41:45.4596243Z" + } +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Network/networkManagers/testNM/ipamPools + /testPool/staticCidrs/testStaticCidr +``` + +Gets static Cidr with name 'testStaticCidr' + ++ Example 2 +```powershell +Get-AzNetworkManagerIpamPoolStaticCidr -NetworkManagerName testNM -ResourceGroupName testRG -IpamPoolName testPool +``` + +```output +Name : New +PoolName : +ResourceGroupName : testRG +NetworkManagerName : testNM +Properties : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSStaticCidrProperties +Type : Microsoft.Network/networkManagers/ipamPools/staticCidrs +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedAt": "2024-08-09T16:14:26.6711721Z" + } +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Network/networkManagers/testNM/ipamPools + /testPool/staticCidrs/New + +Name : New2 +PoolName : +ResourceGroupName : testRG +NetworkManagerName : testNM +Properties : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSStaticCidrProperties +Type : Microsoft.Network/networkManagers/ipamPools/staticCidrs +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedAt": "2024-08-09T16:21:25.6566499Z" + } +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Network/networkManagers/testNM/ipamPools + /testPool/staticCidrs/New2 + +Name : On-Prem +PoolName : +ResourceGroupName : testRG +NetworkManagerName : testNM +Properties : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSStaticCidrProperties +Type : Microsoft.Network/networkManagers/ipamPools/staticCidrs +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedAt": "2024-08-02T01:37:35.4681441Z" + } +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Network/networkManagers/testNM/ipamPools + /testPool/staticCidrs/On-Prem +``` + +Gets all Static Cidrs present in the testPool. + + +#### Remove-AzNetworkManagerIpamPoolStaticCidr + +#### SYNOPSIS +Removes a Static Cidr. + +#### SYNTAX + ++ ByName (Default) +```powershell +Remove-AzNetworkManagerIpamPoolStaticCidr -Name -NetworkManagerName + -ResourceGroupName -IpamPoolName [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByInputObject +```powershell +Remove-AzNetworkManagerIpamPoolStaticCidr -InputObject [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByResourceId +```powershell +Remove-AzNetworkManagerIpamPoolStaticCidr -ResourceId [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzNetworkManagerIpamPoolStaticCidr -Name testStaticCidr -NetworkManagerName testNM -ResourceGroupName testRG -IpamPoolName testPool +``` + +```output +Confirm +Are you sure you want to remove resource 'testStaticCidr' +[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): Y +``` + +Removes the Static Cidr 'testStaticCidr'. + + +#### Set-AzNetworkManagerIpamPoolStaticCidr + +#### SYNOPSIS +Updates a static CIDR allocation in an IPAM pool. + +#### SYNTAX + +```powershell +Set-AzNetworkManagerIpamPoolStaticCidr -InputObject [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Update static CIDR description +```powershell +$ResourceGroupName = "testRG" +$NetworkManagerName = "testNM" +$IpamPoolName = "testPool" +$StaticCidrName = "testStaticCidr" + +$staticCidr = Get-AzNetworkManagerIpamPoolStaticCidr -ResourceGroupName $ResourceGroupName -NetworkManagerName $NetworkManagerName -IpamPoolName $IpamPoolName -Name $StaticCidrName + +$staticCidr.Properties.Description = "Updated description" + +Set-AzNetworkManagerIpamPoolStaticCidr -InputObject $staticCidr +``` + +Updates the description of an existing static CIDR allocation. + ++ Example 2: Update static CIDR address prefixes +```powershell +$ResourceGroupName = "testRG" +$NetworkManagerName = "testNM" +$IpamPoolName = "testPool" +$StaticCidrName = "testStaticCidr" + +$staticCidr = Get-AzNetworkManagerIpamPoolStaticCidr -ResourceGroupName $ResourceGroupName -NetworkManagerName $NetworkManagerName -IpamPoolName $IpamPoolName -Name $StaticCidrName + +$staticCidr.Properties.AddressPrefixes = @("10.0.0.0/24", "10.0.1.0/24") + +Set-AzNetworkManagerIpamPoolStaticCidr -InputObject $staticCidr +``` + +Updates the address prefixes of an existing static CIDR allocation. + + +#### Get-AzNetworkManagerIpamPoolUsage + +#### SYNOPSIS +Gets pool usage information for a given pool. + +#### SYNTAX + ++ ByName (Default) +```powershell +Get-AzNetworkManagerIpamPoolUsage -IpamPoolName -NetworkManagerName + -ResourceGroupName [-DefaultProfile ] + [] +``` + ++ ByResourceId +```powershell +Get-AzNetworkManagerIpamPoolUsage -ResourceId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzNetworkManagerIpamPoolUsage -IpamPoolName testPool -NetworkManagerName testNM -ResourceGroupName testRG +``` + +```output +AddressPrefixes : {10.0.0.0/14} +AllocatedAddressPrefixes : {10.0.0.0/20, 10.0.32.0/19, 10.0.64.0/18, 10.0.128.0/29…} +ReservedAddressPrefixes : {} +AvailableAddressPrefixes : {10.0.16.0/20, 10.0.128.8/29, 10.0.128.16/28, 10.0.128.32/27…} +TotalNumberOfIPAddresses : 262144 +NumberOfAllocatedIPAddresses : 111112 +NumberOfReservedIPAddresses : 0 +NumberOfAvailableIPAddresses : 151032 +AddressPrefixesText : [ + "10.0.0.0/14" + ] +AllocatedAddressPrefixesText : [ + "10.0.0.0/20", + "10.0.32.0/19", + "10.0.64.0/18", + ] +ReservedAddressPrefixesText : [] +AvailableAddressPrefixesText : [ + "10.0.16.0/20", + "10.0.128.8/29", + "10.0.128.16/28", + "10.0.128.32/27", + "10.0.128.64/26", + "10.0.128.128/25", + "10.0.129.0/24", + ] +``` + +Retrieved pool usage information for the pool 'testPool'. + + +#### New-AzNetworkManagerIPTraffic + +#### SYNOPSIS +Create a new instance of IP Traffic + +#### SYNTAX + +```powershell +New-AzNetworkManagerIPTraffic -SourceIp + -DestinationIp + -SourcePort + -DestinationPort + -Protocol [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzNetworkManagerIPTraffic -SourceIp @("192.168.1.10") -DestinationIp @("172.16.0.5") -SourcePort @("100") -DestinationPort @("99") -Protocol @("TCP") +``` + +```output +SourceIps : {192.168.1.10} +DestinationIps : {172.16.0.5} +SourcePorts : {100} +DestinationPorts : {99} +Protocols : {TCP} +IpTrafficText : { + "SourceIps": [ + "192.168.1.10" + ], + "DestinationIps": [ + "172.16.0.5" + ], + "SourcePorts": [ + "100" + ], + "DestinationPorts": [ + "99" + ], + "Protocols": [ + "TCP" + ] + } +``` + +Created a new instance of IP Traffic + + +#### New-AzNetworkManagerManagementGroupConnection + +#### SYNOPSIS +Creates a network manager management group connection. + +#### SYNTAX + +```powershell +New-AzNetworkManagerManagementGroupConnection -ManagementGroupId -Name + -NetworkManagerId [-Description ] [-AsJob] [-Force] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$networkManagerId = "/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager" +$managementGroupId = "newMG" +New-AzNetworkManagerManagementGroupConnection -ManagementGroupId $managementGroupId -Name "psConnection" -NetworkManagerId $networkManagerId -Description "sample description" +``` + +```output +NetworkManagerId : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager +ConnectionState : Pending +DisplayName : +Description : sample description +Type : Microsoft.Network/networkManagerConnections +ProvisioningState : +SystemData : +SystemDataText : null +Name : psConnection +Etag : +Id : /providers/Microsoft.Management/managementGroups/newMG/providers/Microsoft.Network/networkManagerConnections/psConnection +``` + +Creates a network manager management group connection. + + +#### Get-AzNetworkManagerManagementGroupConnection + +#### SYNOPSIS +Gets a network manager management group connection. + +#### SYNTAX + ++ NoExpand (Default) +```powershell +Get-AzNetworkManagerManagementGroupConnection -ManagementGroupId [-Name ] + [-DefaultProfile ] [] +``` + ++ Expand +```powershell +Get-AzNetworkManagerManagementGroupConnection -ManagementGroupId -Name + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzNetworkManagerManagementGroupConnection -ManagementGroupId "newMG" -Name "psConnection" +``` + +```output +NetworkManagerId : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager +ConnectionState : Pending +DisplayName : +Description : sample description +Type : Microsoft.Network/networkManagerConnections +ProvisioningState : +SystemData : +SystemDataText : null +Name : psConnection +Etag : +Id : /providers/Microsoft.Management/managementGroups/newMG/providers/Microsoft.Network/networkManagerConnections/psConnection +``` + +Gets a network manager connection on management group 'newMG'. + ++ Example 2 +```powershell +Get-AzNetworkManagerManagementGroupConnection -ManagementGroupId "newMG" +``` + +```output +NetworkManagerId : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/jaredgorthy-testResources/providers/Microsoft.Network/networkManagers/jaredgorthy +ConnectionState : Pending +DisplayName : +Description : +Type : Microsoft.Network/networkManagerConnections +ProvisioningState : +SystemData : +SystemDataText : null +Name : mgConnection +Etag : +Id : /providers/Microsoft.Management/managementGroups/newMG/providers/Microsoft.Network/networkManagerConnections/mgConnection + +NetworkManagerId : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager +ConnectionState : Pending +DisplayName : +Description : sample description +Type : Microsoft.Network/networkManagerConnections +ProvisioningState : +SystemData : +SystemDataText : null +Name : psConnection +Etag : +Id : /providers/Microsoft.Management/managementGroups/newMG/providers/Microsoft.Network/networkManagerConnections/psConnection +``` + +Gets all network manager connections on management group 'newMG'. + + +#### Remove-AzNetworkManagerManagementGroupConnection + +#### SYNOPSIS +Removes a network manager management group connection. + +#### SYNTAX + +```powershell +Remove-AzNetworkManagerManagementGroupConnection -ManagementGroupId -Name [-Force] + [-PassThru] [-AsJob] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzNetworkManagerManagementGroupConnection -ManagementGroupId "newMG" -Name "psConnection" -Force +``` + +Removes a network manager management group connection. + + +#### Set-AzNetworkManagerManagementGroupConnection + +#### SYNOPSIS +Update a network manger management group connection + +#### SYNTAX + +```powershell +Set-AzNetworkManagerManagementGroupConnection -InputObject [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$networkManagerConnection = Get-AzNetworkManagerManagementGroupConnection -ManagementGroupId "newMG" -Name "psConnection" +$networkManagerConnection.description = "new description" +Set-AzNetworkManagerManagementGroupConnection -InputObject $networkManagerConnection +``` + +```output +NetworkManagerId : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager +ConnectionState : Pending +DisplayName : +Description : new description +Type : Microsoft.Network/networkManagerConnections +ProvisioningState : +SystemData : +SystemDataText : null +Name : psConnection +Etag : +Id : /providers/Microsoft.Management/managementGroups/newMG/providers/Microsoft.Network/networkManagerConnections/psConnection +``` + +Updates a network manger management group connection. + + +#### New-AzNetworkManagerRoutingConfiguration + +#### SYNOPSIS +Creates a routing configuration. + +#### SYNTAX + +```powershell +New-AzNetworkManagerRoutingConfiguration -Name -NetworkManagerName + -ResourceGroupName [-Description ] [-RouteTableUsageMode ] [-Force] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Create a routing configuration with default RouteTableUsageMode +```powershell +New-AzNetworkManagerRoutingConfiguration -ResourceGroupName "psResourceGroup" -NetworkManagerName "psNetworkManager" -Name "psRoutingConfig" -Description "TestDescription" +``` + +```output +DisplayName : +Description : TestDescription +Type : Microsoft.Network/networkManagers/routingConfigurations +ProvisioningState : Succeeded +RouteTableUsageMode : ManagedOnly +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "00000000-0000-0000-0000-000000000000", + "CreatedByType": "Application", + "CreatedAt": "2021-10-18T04:05:57", + "LastModifiedBy": "00000000-0000-0000-0000-000000000000", + "LastModifiedByType": "Application", + "LastModifiedAt": "2021-10-18T04:05:59" + } +Name : psRoutingConfig +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/routingConfigurations/psRoutingConfig +``` + +Creates a routing configuration with default RouteTableUsageMode set to ManagedOnly. + ++ Example 2: Create routing configuration with UseExisting RouteTableUsageMode + +```powershell +New-AzNetworkManagerRoutingConfiguration -ResourceGroupName "psResourceGroup" -NetworkManagerName "psNetworkManager" -Name "psRoutingConfig" -Description "TestDescription" -RouteTableUsageMode "UseExisting" +``` + +```output +DisplayName : +Description : TestDescription +Type : Microsoft.Network/networkManagers/routingConfigurations +ProvisioningState : Succeeded +RouteTableUsageMode : UseExisting +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "00000000-0000-0000-0000-000000000000", + "CreatedByType": "Application", + "CreatedAt": "2021-10-18T04:06:57", + "LastModifiedBy": "00000000-0000-0000-0000-000000000000", + "LastModifiedByType": "Application", + "LastModifiedAt": "2021-10-18T04:06:59" + } +Name : psRoutingConfig +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/routingConfigurations/psRoutingConfig +``` + +Creates a routing configuration with UseExisting RouteTableUsageMode value. + + +#### Get-AzNetworkManagerRoutingConfiguration + +#### SYNOPSIS +Gets a routing configuration in a network manager. + +#### SYNTAX + ++ ByList (Default) +```powershell +Get-AzNetworkManagerRoutingConfiguration -NetworkManagerName -ResourceGroupName + [-DefaultProfile ] [] +``` + ++ ByName +```powershell +Get-AzNetworkManagerRoutingConfiguration -Name -NetworkManagerName + -ResourceGroupName [-DefaultProfile ] + [] +``` + ++ ByResourceId +```powershell +Get-AzNetworkManagerRoutingConfiguration -ResourceId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzNetworkManagerRoutingConfiguration -Name "TestRoutingConfig" -NetworkManagerName "TestNMName" -ResourceGroupName "TestRG" +``` + +```output +Name : TestRoutingConfig +Description : Description +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/routingConfigurations/TestRoutingConfig +Type : Microsoft.Network/networkManagers/routingConfigurations +Etag : "00000000-0000-0000-0000-000000000000" +ProvisioningState : Succeeded +SystemData : { + "CreatedBy": "00000000-0000-0000-0000-000000000000", + "CreatedByType": "Application", + "CreatedAt": "2021-10-18T04:05:57", + "LastModifiedBy": "00000000-0000-0000-0000-000000000000", + "LastModifiedByType": "Application", + "LastModifiedAt": "2021-10-18T04:05:59" + } +``` + +Gets a routing configuration. + ++ Example 2 +```powershell +Get-AzNetworkManagerRoutingConfiguration -NetworkManagerName "TestNMName" -ResourceGroupName "TestRG" +``` + +```output +Name : TestRoutingConfig +Description : Description +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/routingConfigurations/TestRoutingConfig +Type : Microsoft.Network/networkManagers/routingConfigurations +Etag : "00000000-0000-0000-0000-000000000000" +ProvisioningState : Succeeded +SystemData : { + "CreatedBy": "00000000-0000-0000-0000-000000000000", + "CreatedByType": "Application", + "CreatedAt": "2021-10-18T04:05:57", + "LastModifiedBy": "00000000-0000-0000-0000-000000000000", + "LastModifiedByType": "Application", + "LastModifiedAt": "2021-10-18T04:05:59" + } + +Name : TestRoutingConfig2 +Description : Description +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/routingConfigurations/TestRoutingConfig2 +Type : Microsoft.Network/networkManagers/routingConfigurations +Etag : "00000000-0000-0000-0000-000000000000" +ProvisioningState : Succeeded +SystemData : { + "CreatedBy": "00000000-0000-0000-0000-000000000000", + "CreatedByType": "Application", + "CreatedAt": "2021-10-18T04:05:57", + "LastModifiedBy": "00000000-0000-0000-0000-000000000000", + "LastModifiedByType": "Application", + "LastModifiedAt": "2021-10-18T04:05:59" + } +``` + +Gets all routing configurations on a network manager. + + +#### Remove-AzNetworkManagerRoutingConfiguration + +#### SYNOPSIS +Removes a routing configuration. + +#### SYNTAX + ++ ByName (Default) +```powershell +Remove-AzNetworkManagerRoutingConfiguration -Name -NetworkManagerName + -ResourceGroupName [-ForceDelete] [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByInputObject +```powershell +Remove-AzNetworkManagerRoutingConfiguration -InputObject [-ForceDelete] + [-Force] [-PassThru] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByResourceId +```powershell +Remove-AzNetworkManagerRoutingConfiguration -ResourceId [-ForceDelete] [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzNetworkManagerRoutingConfiguration -Name TestRoutingConfigName -NetworkManagerName TestNMName -ResourceGroupName TestRGName -ForceDelete +``` + +Removes a routing configuration. + + +#### Set-AzNetworkManagerRoutingConfiguration + +#### SYNOPSIS +Updates a network manager routing configuration. + +#### SYNTAX + ++ ByInputObject (Default) +```powershell +Set-AzNetworkManagerRoutingConfiguration -InputObject + [-RouteTableUsageMode ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByName +```powershell +Set-AzNetworkManagerRoutingConfiguration -Name -ResourceGroupName + -NetworkManagerName [-Description ] [-RouteTableUsageMode ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByResourceId +```powershell +Set-AzNetworkManagerRoutingConfiguration -ResourceId [-Description ] + [-RouteTableUsageMode ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Update routing configuration using InputObject +```powershell +$NetworkManagerRoutingConfiguration = Get-AzNetworkManagerRoutingConfiguration -Name "psRoutingConfig" -NetworkManagerName "psNetworkManager" -ResourceGroupName "psResourceGroup" +Set-AzNetworkManagerRoutingConfiguration -InputObject $NetworkManagerRoutingConfiguration +``` + +```output +DisplayName : +Description : TestDescription +Type : Microsoft.Network/networkManagers/routingConfigurations +ProvisioningState : Succeeded +RouteTableUsageMode : ManagedOnly +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "00000000-0000-0000-0000-000000000000", + "CreatedByType": "Application", + "CreatedAt": "2021-10-18T04:05:57", + "LastModifiedBy": "00000000-0000-0000-0000-000000000000", + "LastModifiedByType": "Application", + "LastModifiedAt": "2021-10-18T04:05:59" + } +Name : psRoutingConfig +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/routingConfigurations/psRoutingConfig +``` + +Updates a network manager routing configuration. + ++ Example 2: Update RouteTableUsageMode using ByName parameter set +```powershell +Set-AzNetworkManagerRoutingConfiguration -Name "psRoutingConfig" -NetworkManagerName "psNetworkManager" -ResourceGroupName "psResourceGroup" -RouteTableUsageMode "UseExisting" +``` + +```output +DisplayName : +Description : TestDescription +Type : Microsoft.Network/networkManagers/routingConfigurations +ProvisioningState : Succeeded +RouteTableUsageMode : UseExisting +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "00000000-0000-0000-0000-000000000000", + "CreatedByType": "Application", + "CreatedAt": "2021-10-18T04:05:57", + "LastModifiedBy": "00000000-0000-0000-0000-000000000000", + "LastModifiedByType": "Application", + "LastModifiedAt": "2021-10-18T04:06:59" + } +Name : psRoutingConfig +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/routingConfigurations/psRoutingConfig +``` + +Updates the RouteTableUsageMode for an existing routing configuration to UseExisting. + + +#### New-AzNetworkManagerRoutingGroupItem + +#### SYNOPSIS +Creates a routing group item. + +#### SYNTAX + +```powershell +New-AzNetworkManagerRoutingGroupItem -NetworkGroupId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzNetworkManagerRoutingGroupItem -NetworkGroupId "/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup" +``` + +```output +NetworkGroupId +-------------- +/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup +``` + +Creates a routing group item. + + +#### New-AzNetworkManagerRoutingRule + +#### SYNOPSIS +Creates a routing rule. + +#### SYNTAX + +```powershell +New-AzNetworkManagerRoutingRule -Name -RuleCollectionName -RoutingConfigurationName + -NetworkManagerName -ResourceGroupName -Destination + -NextHop [-Description ] [-Force] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Create Custom routing Rule +```powershell +$destination = New-AzNetworkManagerRoutingRuleDestination -DestinationAddress "10.1.1.1/32" -Type "AddressPrefix" +$nextHop = New-AzNetworkManagerRoutingRuleNextHop -NextHopType "VirtualAppliance" -NextHopAddress "2.2.2.2" +New-AzNetworkManagerRoutingRule -ResourceGroupName "psResourceGroup" -NetworkManagerName "psNetworkManager" -ConfigName "psRoutingConfig" -RuleCollectionName "psRuleCollection" -Name "psRule" -Description "TestDescription" -Destination $destination -NextHop $nextHop +``` + +```output +Destination : {Microsoft.Azure.Commands.Network.Models.NetworkManager.PSNetworkManagerRoutingRuleDestination} +NextHop : {Microsoft.Azure.Commands.Network.Models.NetworkManager.PSNetworkManagerRoutingRuleNextHop} +DisplayName : +Description : TestDescription +Type : Microsoft.Network/networkManagers/routingConfigurations/ruleCollections/rules +ProvisioningState : Succeeded +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "00000000-0000-0000-0000-000000000000", + "CreatedByType": "Application", + "CreatedAt": "2021-10-18T04:05:57", + "LastModifiedBy": "00000000-0000-0000-0000-000000000000", + "LastModifiedByType": "Application", + "LastModifiedAt": "2021-10-18T04:05:59" + } +Name : psRule +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/routingConfigurations/psRoutingConfig/ruleCollections/psRuleCollection/rules/psRule +``` + +Creates a routing rule. + + +#### Get-AzNetworkManagerRoutingRule + +#### SYNOPSIS +Gets a routing rule in a network manager. + +#### SYNTAX + ++ ByList (Default) +```powershell +Get-AzNetworkManagerRoutingRule -RuleCollectionName -RoutingConfigurationName + -NetworkManagerName -ResourceGroupName [-DefaultProfile ] + [] +``` + ++ ByName +```powershell +Get-AzNetworkManagerRoutingRule -Name -RuleCollectionName -RoutingConfigurationName + -NetworkManagerName -ResourceGroupName [-DefaultProfile ] + [] +``` + ++ ByResourceId +```powershell +Get-AzNetworkManagerRoutingRule -ResourceId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzNetworkManagerRoutingRule -Name "testRule" -RuleCollectionName "TestRC" -RoutingConfigurationName "TestRoutingConfig" -NetworkManagerName "TestNMName" -ResourceGroupName "TestRG" +``` + +```output +Name : testRule +Description : Description +Type : Microsoft.Network/networkManagers/routingConfigurations/ruleCollections/rules +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/routingConfigurations/TestRoutingConfig/ruleCollections/TestRC/rules/testRule +Etag : "00000000-0000-0000-0000-000000000000" +ProvisioningState : Succeeded +NextHop : { + "NextHopAddress": "ApiManagement", + "NextHopType": "ServiceTag" + } +Destination : { + "DestinationAddress": "10.0.0.1", + "Type": "AddressPrefix" + } +SystemData : { + "CreatedBy": "00000000-0000-0000-0000-000000000000", + "CreatedByType": "Application", + "CreatedAt": "2021-10-18T04:06:05", + "LastModifiedBy": "00000000-0000-0000-0000-000000000000", + "LastModifiedByType": "Application", + "LastModifiedAt": "2021-10-18T04:06:06" + } +``` + +Gets a routing rule in a rule collection. + ++ Example 2 +```powershell +Get-AzNetworkManagerRoutingRule -RuleCollectionName "TestRC" -RoutingConfigurationName "TestRoutingConfig" -NetworkManagerName "TestNMName" -ResourceGroupName "TestRG" +``` + +```output +Name : testRule +Description : Description +Type : Microsoft.Network/networkManagers/routingConfigurations/ruleCollections/rules +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/routingConfigurations/TestRoutingConfig/ruleCollections/TestRC/rules/testRule +Etag : "00000000-0000-0000-0000-000000000000" +ProvisioningState : Succeeded +NextHop : { + "NextHopAddress": "ApiManagement", + "NextHopType": "ServiceTag" + } +Destination : { + "DestinationAddress": "10.0.0.1", + "Type": "AddressPrefix" + } +SystemData : { + "CreatedBy": "00000000-0000-0000-0000-000000000000", + "CreatedByType": "Application", + "CreatedAt": "2021-10-18T04:06:05", + "LastModifiedBy": "00000000-0000-0000-0000-000000000000", + "LastModifiedByType": "Application", + "LastModifiedAt": "2021-10-18T04:06:06" + } + +Name : testRule2 +Description : Description +Type : Microsoft.Network/networkManagers/routingConfigurations/ruleCollections/rules +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/routingConfigurations/TestRoutingConfig/ruleCollections/TestRC/rules/testRule2 +Etag : "00000000-0000-0000-0000-000000000000" +ProvisioningState : Succeeded +NextHop : { + "NextHopAddress": "ApiManagement", + "NextHopType": "ServiceTag" + } +Destination : { + "DestinationAddress": "20.0.0.1", + "Type": "AddressPrefix" + } +SystemData : { + "CreatedBy": "00000000-0000-0000-0000-000000000000", + "CreatedByType": "Application", + "CreatedAt": "2021-10-18T04:06:05", + "LastModifiedBy": "00000000-0000-0000-0000-000000000000", + "LastModifiedByType": "Application", + "LastModifiedAt": "2021-10-18T04:06:06" + } +``` + +Gets all rules within a routing rule collection. + + +#### Remove-AzNetworkManagerRoutingRule + +#### SYNOPSIS +Removes a routing rule. + +#### SYNTAX + ++ ByName (Default) +```powershell +Remove-AzNetworkManagerRoutingRule -Name -RuleCollectionName + -RoutingConfigurationName -NetworkManagerName -ResourceGroupName [-ForceDelete] + [-Force] [-PassThru] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByInputObject +```powershell +Remove-AzNetworkManagerRoutingRule -InputObject [-ForceDelete] [-Force] + [-PassThru] [-AsJob] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + ++ ByResourceId +```powershell +Remove-AzNetworkManagerRoutingRule -ResourceId [-ForceDelete] [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzNetworkManagerRoutingRule -Name TestRoutingRuleName -RuleCollectionName TestRuleCollectionName -RoutingConfigurationName TestAdminConfigName -NetworkManagerName TestNMName -ResourceGroupName TestRGName +``` + +Removes a routing rule. + + +#### Set-AzNetworkManagerRoutingRule + +#### SYNOPSIS +Updates a network manager routing rule. + +#### SYNTAX + ++ ByInputObject (Default) +```powershell +Set-AzNetworkManagerRoutingRule -InputObject [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByNameParameters +```powershell +Set-AzNetworkManagerRoutingRule -Name -ResourceGroupName -NetworkManagerName + -RoutingConfigurationName -RuleCollectionName -DestinationAddress + -DestinationType [-NextHopAddress ] -NextHopType [-Description ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByResourceId +```powershell +Set-AzNetworkManagerRoutingRule -ResourceId -DestinationAddress -DestinationType + [-NextHopAddress ] -NextHopType [-Description ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$destination = New-AzNetworkManagerRoutingRuleDestination -DestinationAddress "10.1.1.1/32" -Type "AddressPrefix" +$RoutingRule = Get-AzNetworkManagerRoutingRule -Name "psRule" -RuleCollectionName "psRuleCollection" -RoutingConfigurationName "psRoutingConfig" -NetworkManagerName "psNetworkManager" -ResourceGroupName "psResourceGroup" +Set-AzNetworkManagerRoutingRule -InputObject $RoutingRule +``` + +```output +Destination : {Microsoft.Azure.Commands.Network.Models.NetworkManager.PSNetworkManagerRoutingRuleDestination} +NextHop : {Microsoft.Azure.Commands.Network.Models.NetworkManager.PSNetworkManagerRoutingRuleNextHop} +DestinationText : [ + { + "DestinationAddress": "10.1.1.1/32", + "Type": "AddressPrefix" + } + ] +NextHopText : [ + { + "AddressNextHopType": "NoNextHop" + } + ] +DisplayName : +Description : TestDescription +Type : Microsoft.Network/networkManagers/routingConfigurations/ruleCollections/rules +ProvisioningState : Succeeded +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataTest : { + "CreatedBy": "00000000-0000-0000-0000-000000000000", + "CreatedByType": "Application", + "CreatedAt": "2021-10-18T04:05:57", + "LastModifiedBy": "00000000-0000-0000-0000-000000000000", + "LastModifiedByType": "Application", + "LastModifiedAt": "2021-10-18T04:05:59" + } +Name : psRule +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/routingConfigurations/psRoutingConfig/ruleCollections/psRuleCollection/rules/psRule +``` + +Updates a network manager routing rule's destination. + + +#### New-AzNetworkManagerRoutingRuleCollection + +#### SYNOPSIS +Creates a routing rule collection. + +#### SYNTAX + +```powershell +New-AzNetworkManagerRoutingRuleCollection -Name -RoutingConfigurationName + -NetworkManagerName -ResourceGroupName [-Description ] + -AppliesTo -DisableBgpRoutePropagation [-Force] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$groupItem = New-AzNetworkManagerRoutingGroupItem -NetworkGroupId "/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup" +$configGroup = @($groupItem) +New-AzNetworkManagerRoutingRuleCollection -ResourceGroupName "psResourceGroup" -NetworkManagerName "psNetworkManager" -ConfigName "psRoutingConfig" -Name "psRuleCollection" -AppliesTo $configGroup +``` + +```output +AppliesTo : {/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup} +AppliesTo : [ + { + "NetworkGroupId": "/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup" + } + ] +DisplayName : +Description : +Type : Microsoft.Network/networkManagers/routingConfigurations/ruleCollections +ProvisioningState : Succeeded +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "00000000-0000-0000-0000-000000000000", + "CreatedByType": "Application", + "CreatedAt": "2021-10-18T04:05:57", + "LastModifiedBy": "00000000-0000-0000-0000-000000000000", + "LastModifiedByType": "Application", + "LastModifiedAt": "2021-10-18T04:05:59" + } +Name : psRuleCollection +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/routingConfigurations/psRoutingConfig/ruleCollections/psRuleCollection +``` + +Creates a routing rule collection with a network group member. + + +#### Get-AzNetworkManagerRoutingRuleCollection + +#### SYNOPSIS +Gets a routing rule collection in a network manager. + +#### SYNTAX + ++ ByList (Default) +```powershell +Get-AzNetworkManagerRoutingRuleCollection -RoutingConfigurationName -NetworkManagerName + -ResourceGroupName [-DefaultProfile ] + [] +``` + ++ ByName +```powershell +Get-AzNetworkManagerRoutingRuleCollection -Name -RoutingConfigurationName + -NetworkManagerName -ResourceGroupName [-DefaultProfile ] + [] +``` + ++ ByResourceId +```powershell +Get-AzNetworkManagerRoutingRuleCollection -ResourceId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzNetworkManagerRoutingRuleCollection -Name "TestRC" -RoutingConfigurationName "TestRoutingConfig" -NetworkManagerName "TestNMName" -ResourceGroupName "TestRG" +``` + +```output +Name : TestRC +Description : Sample rule Collection Description +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/routingConfigurations/TestRoutingConfig/ruleCollections/TestRC +Type : Microsoft.Network/networkManagers/routingConfigurations/ruleCollections +Etag : "00000000-0000-0000-0000-000000000000" +ProvisioningState : Succeeded +AppliesTo : [ + { + "NetworkGroupId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/networkGroups/testng" + } + ] +DisableBgpRoutePropagation : "False" +SystemData : { + "CreatedBy": "00000000-0000-0000-0000-000000000000", + "CreatedByType": "Application", + "CreatedAt": "2021-10-18T04:06:01", + "LastModifiedBy": "00000000-0000-0000-0000-000000000000", + "LastModifiedByType": "Application", + "LastModifiedAt": "2021-10-18T04:06:03" + } +``` + +Gets a rule collection within a routing configuration. + ++ Example 2 +```powershell +Get-AzNetworkManagerRoutingRuleCollection -RoutingConfigurationName "TestRoutingConfig" -NetworkManagerName "TestNMName" -ResourceGroupName "TestRG" +``` + +```output +Name : TestRC +Description : Sample rule Collection Description +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/routingConfigurations/TestRoutingConfig/ruleCollections/TestRC +Type : Microsoft.Network/networkManagers/routingConfigurations/ruleCollections +Etag : "00000000-0000-0000-0000-000000000000" +ProvisioningState : Succeeded +AppliesTo : [ + { + "NetworkGroupId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/networkGroups/testng" + } + ] +DisableBgpRoutePropagation : "False" +SystemData : { + "CreatedBy": "00000000-0000-0000-0000-000000000000", + "CreatedByType": "Application", + "CreatedAt": "2021-10-18T04:06:01", + "LastModifiedBy": "00000000-0000-0000-0000-000000000000", + "LastModifiedByType": "Application", + "LastModifiedAt": "2021-10-18T04:06:03" + } + +Name : TestRC2 +Description : Sample rule Collection Description +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/routingConfigurations/TestRoutingConfig/ruleCollections/TestRC2 +Type : Microsoft.Network/networkManagers/routingConfigurations/ruleCollections +Etag : "00000000-0000-0000-0000-000000000000" +ProvisioningState : Succeeded +AppliesTo : [ + { + "NetworkGroupId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/networkGroups/testng" + } + ] +SystemData : { + "CreatedBy": "00000000-0000-0000-0000-000000000000", + "CreatedByType": "Application", + "CreatedAt": "2021-10-18T04:06:01", + "LastModifiedBy": "00000000-0000-0000-0000-000000000000", + "LastModifiedByType": "Application", + "LastModifiedAt": "2021-10-18T04:06:03" + } +``` + +Gets all rule collections within a routing configuration. + + +#### Remove-AzNetworkManagerRoutingRuleCollection + +#### SYNOPSIS +Removes a routing rule collection. + +#### SYNTAX + ++ ByName (Default) +```powershell +Remove-AzNetworkManagerRoutingRuleCollection -Name -RoutingConfigurationName + -NetworkManagerName -ResourceGroupName [-ForceDelete] [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByInputObject +```powershell +Remove-AzNetworkManagerRoutingRuleCollection -InputObject + [-ForceDelete] [-Force] [-PassThru] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByResourceId +```powershell +Remove-AzNetworkManagerRoutingRuleCollection -ResourceId [-ForceDelete] [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzNetworkManagerRoutingRuleCollection -Name TestRuleCollectionName -RoutingConfigurationName TestRoutingConfigName -NetworkManagerName TestNMName -ResourceGroupName TestRGName +``` + +Removes a routing rule collection. + + +#### Set-AzNetworkManagerRoutingRuleCollection + +#### SYNOPSIS +Updates a network manager routing rule collection. + +#### SYNTAX + ++ ByInputObject (Default) +```powershell +Set-AzNetworkManagerRoutingRuleCollection -InputObject [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByName +```powershell +Set-AzNetworkManagerRoutingRuleCollection -Name -ResourceGroupName + -NetworkManagerName -RoutingConfigurationName [-Description ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByResourceId +```powershell +Set-AzNetworkManagerRoutingRuleCollection -ResourceId [-Description ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$NetworkManagerRoutingRuleCollection = Get-AzNetworkManagerRoutingRuleCollection -RoutingConfigurationName "psRoutingConfig" -Name "psRuleCollection" -NetworkManagerName "psNetworkManager" -ResourceGroupName "psResourceGroup" +$groupItem = New-AzNetworkManagerRoutingGroupItem -NetworkGroupId "/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup" +$groupItem2 = New-AzNetworkManagerRoutingGroupItem -NetworkGroupId "/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup2" +[System.Collections.Generic.List[Microsoft.Azure.Commands.Network.Models.NetworkManager.PSNetworkManagerRoutingGroupItem]]$configGroup = @() +$configGroup.Add($groupItem) +$configGroup.Add($groupItem2) +$NetworkManagerRoutingRuleCollection.AppliesTo = $configGroup +Set-AzNetworkManagerRoutingRuleCollection -InputObject $NetworkManagerRoutingRuleCollection +``` + +```output +AppliesTo : {/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup, /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup2} +AppliesToText : [ + { + "NetworkGroupId": "/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup" + }, + { + "NetworkGroupId": "/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup2" + } + ] +DisplayName : +Description : +Type : Microsoft.Network/networkManagers/routingConfigurations/ruleCollections +DisableBgpRoutePropagation : "False" +ProvisioningState : Succeeded +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "00000000-0000-0000-0000-000000000000", + "CreatedByType": "Application", + "CreatedAt": "2021-10-18T04:05:57", + "LastModifiedBy": "00000000-0000-0000-0000-000000000000", + "LastModifiedByType": "Application", + "LastModifiedAt": "2021-10-18T04:05:59" + } +Name : psRuleCollection +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/routingConfigurations/psRoutingConfig/ruleCollections/psRuleCollection +``` + +Updates a network manager routing rule collection to include new network groups. + + +#### New-AzNetworkManagerRoutingRuleDestination + +#### SYNOPSIS +Creates a network manager routing rule destination. + +#### SYNTAX + +```powershell +New-AzNetworkManagerRoutingRuleDestination -DestinationAddress -Type + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzNetworkManagerRoutingRuleDestination -DestinationAddress "ApiManagement" -Type "ServiceTag" +``` + +```output +DestinationAddress Type +------------------ ----------------- +ApiManagement ServiceTag +``` + +Creates a network manager service tag routing rule destination. + ++ Example 2 +```powershell +New-AzNetworkManagerRoutingRuleDestination -DestinationAddress "10.0.0.1" -Type "AddressPrefix" +``` + +```output +DestinationAddress Type +------------------ ----------------- +10.0.0.1 AddressPrefix +``` + +Creates a network manager routing rule destination object. + + +#### New-AzNetworkManagerRoutingRuleNextHop + +#### SYNOPSIS +Creates a network manager routing rule next hop. + +#### SYNTAX + +```powershell +New-AzNetworkManagerRoutingRuleNextHop [-NextHopAddress ] -NextHopType + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzNetworkManagerRoutingRuleNextHop -NextHopAddress "ApiManagement" -NextHopType "ServiceTag" +``` + +```output +NextHopAddress NextHopType +------------------ ----------------- +ApiManagement ServiceTag +``` + +Creates a network manager service tag routing rule next hop. + ++ Example 2 +```powershell +New-AzNetworkManagerRoutingRuleNextHop -NextHopAddress "10.0.0.1" -NextHopType "AddressPrefix" +``` + +```output +NextHopAddress NextHopType +------------------ ----------------- +10.0.0.1 AddressPrefix +``` + +Creates a network manager routing rule next hop object. + + +#### New-AzNetworkManagerScope + +#### SYNOPSIS +Creates a network manager scope. + +#### SYNTAX + +```powershell +New-AzNetworkManagerScope [-ManagementGroup ] [-Subscription ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$subgroup = @("/subscriptions/00000000-0000-0000-0000-000000000000") +$mggroup = @("/providers/Microsoft.Management/managementGroups/PowerShellTest") +New-AzNetworkManagerScope -Subscription $subgroup -ManagementGroup $mggroup +``` + +```output +ManagementGroups Subscriptions +---------------- ------------- +{/providers/Microsoft.Management/managementGroups/PowerShellTest} {/subscriptions/00000000-0000-0000-0000-000000000000} +``` + +Creates a network manager scope with management group and subscription. + + +#### New-AzNetworkManagerScopeConnection + +#### SYNOPSIS +Creates a scope connection. + +#### SYNTAX + +```powershell +New-AzNetworkManagerScopeConnection -Name -NetworkManagerName -ResourceGroupName + -TenantId -ResourceId [-Description ] [-AsJob] [-Force] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzNetworkManagerScopeConnection -ResourceGroupName psResourceGroup -NetworkManagerName psNetworkManager -Name "subConnection" -TenantId "00001111-aaaa-2222-bbbb-3333cccc4444" -ResourceId "/subscriptions/0fd190fa-dd1c-4724-b7f6-c5cc3ba5c884" -Description "SampleDescription" +``` + +```output +TenantId : 00001111-aaaa-2222-bbbb-3333cccc4444 +ResourceId : /subscriptions/0fd190fa-dd1c-4724-b7f6-c5cc3ba5c884 +ConnectionState : Pending +DisplayName : +Description : SampleDescription +Type : Microsoft.Network/networkManagers/scopeConnections +ProvisioningState : +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "jaredgorthy@microsoft.com", + "CreatedByType": "User", + "CreatedAt": "2022-08-07T23:53:52.6942092Z", + "LastModifiedBy": "jaredgorthy@microsoft.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2022-08-07T23:53:52.6942092Z" + } +Name : subConnection +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/scopeConnections/subConnection +``` + +Creates a scope connection to a cross-tenant subscription. + ++ Example 2 +```powershell +New-AzNetworkManagerScopeConnection -ResourceGroupName psResourceGroup -NetworkManagerName psNetworkManager -Name "mgConnection" -TenantId "00001111-aaaa-2222-bbbb-3333cccc4444" -ResourceId "/providers/Microsoft.Management/managementGroups/newMG" -Description "SampleDescription" +``` + +```output +TenantId : 00001111-aaaa-2222-bbbb-3333cccc4444 +ResourceId : /providers/Microsoft.Management/managementGroups/newMG +ConnectionState : Pending +DisplayName : +Description : SampleDescription +Type : Microsoft.Network/networkManagers/scopeConnections +ProvisioningState : +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "jaredgorthy@microsoft.com", + "CreatedByType": "User", + "CreatedAt": "2022-08-07T23:55:14.7516201Z", + "LastModifiedBy": "jaredgorthy@microsoft.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2022-08-07T23:55:14.7516201Z" + } +Name : mgConnection +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/scopeConnections/mgConnection +``` + +Creates a scope connection to a cross-tenant management group. + + +#### Get-AzNetworkManagerScopeConnection + +#### SYNOPSIS +Gets a scope connection in a network manager. + +#### SYNTAX + ++ NoExpand (Default) +```powershell +Get-AzNetworkManagerScopeConnection [-Name ] -NetworkManagerName -ResourceGroupName + [-DefaultProfile ] [] +``` + ++ Expand +```powershell +Get-AzNetworkManagerScopeConnection -Name -NetworkManagerName -ResourceGroupName + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Retrieve a scope connection +```powershell +Get-AzNetworkManagerScopeConnection -ResourceGroupName "TestResourceGroup" -NetworkManagerName "TestNM" -Name "testsc" +``` + +```output +TenantId : 00000000-0000-0000-0000-000000000000 +ResourceId : /subscriptions/00000000-0000-0000-0000-000000000000 +ConnectionState : Pending +Description : SampleDescription +DisplayName : +Type : Microsoft.Network/networkManagers/scopeConnections +ProvisioningState : +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "user@microsoft.com", + "CreatedByType": "User", + "CreatedAt": "2022-03-16T03:01:26.397158Z", + "LastModifiedBy": "user@microsoft.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2022-03-16T03:01:26.397158Z" + } +Name : testsc +Etag : +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestResourceGroup/providers/Microsoft.Network/networkManagers/TestNM/scopeConnections/testsc +``` + +Get a specific scope connection on a network manager. + ++ Example 2: List scope connections +```powershell +Get-AzNetworkManagerScopeConnection -ResourceGroupName "psResourceGroup" -NetworkManagerName "psNetworkManager" +``` + +```output +TenantId : 00001111-aaaa-2222-bbbb-3333cccc4444 +ResourceId : /subscriptions/0fd190fa-dd1c-4724-b7f6-c5cc3ba5c884 +ConnectionState : Pending +DisplayName : +Description : SampleDescription +Type : Microsoft.Network/networkManagers/scopeConnections +ProvisioningState : +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "jaredgorthy@microsoft.com", + "CreatedByType": "User", + "CreatedAt": "2022-08-07T23:53:52.6942092Z", + "LastModifiedBy": "jaredgorthy@microsoft.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2022-08-07T23:53:52.6942092Z" + } +Name : subConnection +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/scopeConnections/subConnection + +TenantId : 00001111-aaaa-2222-bbbb-3333cccc4444 +ResourceId : /providers/Microsoft.Management/managementGroups/newMG +ConnectionState : Pending +DisplayName : +Description : SampleDescription +Type : Microsoft.Network/networkManagers/scopeConnections +ProvisioningState : +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "jaredgorthy@microsoft.com", + "CreatedByType": "User", + "CreatedAt": "2022-08-07T23:55:14.7516201Z", + "LastModifiedBy": "jaredgorthy@microsoft.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2022-08-07T23:55:14.7516201Z" + } +Name : mgConnection +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/scopeConnections/mgConnection +``` + + +#### Remove-AzNetworkManagerScopeConnection + +#### SYNOPSIS +Removes a network manager scope connection. + +#### SYNTAX + +```powershell +Remove-AzNetworkManagerScopeConnection -Name -NetworkManagerName -ResourceGroupName + [-Force] [-PassThru] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzNetworkManagerScopeConnection -ResourceGroupName "testRG" -NetworkManagerName "TestNM" -Name "TestScopeConn" -PassThru -Force -AsJob +``` + +Deletes a network manager scope connection. + + +#### Set-AzNetworkManagerScopeConnection + +#### SYNOPSIS +Update a network manager scope connection. + +#### SYNTAX + +```powershell +Set-AzNetworkManagerScopeConnection -InputObject [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$scopeConnection = Get-AzNetworkManagerScopeConnection -ResourceGroupName "psResourceGroup" -NetworkManagerName "psNetworkManager" -Name "mgConnection" +$scopeConnection.description = "new description" +Set-AzNetworkManagerScopeConnection -InputObject $scopeConnection +``` + +```output +TenantId : 00001111-aaaa-2222-bbbb-3333cccc4444 +ResourceId : /providers/Microsoft.Management/managementGroups/newMG +ConnectionState : Pending +DisplayName : +Description : new description +Type : Microsoft.Network/networkManagers/scopeConnections +ProvisioningState : +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "jaredgorthy@microsoft.com", + "CreatedByType": "User", + "CreatedAt": "2022-08-08T00:08:30.7250851Z", + "LastModifiedBy": "jaredgorthy@microsoft.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2022-08-08T00:08:30.7250851Z" + } +Name : mgConnection +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/scopeConnections/mgConnection +``` + +Updates a scope connection description. + + +#### New-AzNetworkManagerSecurityAdminConfiguration + +#### SYNOPSIS +Creates a security admin configuration. + +#### SYNTAX + +```powershell +New-AzNetworkManagerSecurityAdminConfiguration -Name -NetworkManagerName + -ResourceGroupName [-Description ] + [-ApplyOnNetworkIntentPolicyBasedService ] + [-NetworkGroupAddressSpaceAggregationOption ] [-DeleteExistingNSG] [-Force] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$ApplyOnNetworkIntentPolicyBasedService = @("None") +New-AzNetworkManagerSecurityAdminConfiguration -ResourceGroupName "psResourceGroup" -NetworkManagerName "psNetworkManager" -Name "psSecurityAdminConfig" -Description "TestDescription" -DeleteExistingNSG -ApplyOnNetworkIntentPolicyBasedService $ApplyOnNetworkIntentPolicyBasedService -NetworkGroupAddressSpaceAggregationOption $NetworkGroupAddressSpaceAggregationOption +``` + +```output +SecurityType : +ApplyOnNetworkIntentPolicyBasedServices : {None} +ApplyOnNetworkIntentPolicyBasedServicesText : [ + "None" + ] +DeleteExistingNSGs : +DisplayName : +Description : TestDescription +Type : Microsoft.Network/networkManagers/securityAdminConfigurations +ProvisioningState : Succeeded +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "jaredgorthy@microsoft.com", + "CreatedByType": "User", + "CreatedAt": "2022-08-07T23:58:54.8549506Z", + "LastModifiedBy": "jaredgorthy@microsoft.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2022-08-07T23:59:12.5789979Z" + } +Name : psSecurityAdminConfig +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/securityAdminConfigurations/psSecurityAdminConfig +``` + +Creates a security admin configuration that will delete existing NSGs and not apply on NIP based services. + ++ Example 2 +```powershell +$ApplyOnNetworkIntentPolicyBasedService = @("All") +New-AzNetworkManagerSecurityAdminConfiguration -ResourceGroupName "psResourceGroup" -NetworkManagerName "psNetworkManager" -Name "psSecurityAdminConfig" -Description "TestDescription" -ApplyOnNetworkIntentPolicyBasedService $ApplyOnNetworkIntentPolicyBasedService +``` + +```output +SecurityType : +ApplyOnNetworkIntentPolicyBasedServices : {All} +ApplyOnNetworkIntentPolicyBasedServicesText : [ + "All" + ] +DeleteExistingNSGs : +DisplayName : +Description : TestDescription +Type : Microsoft.Network/networkManagers/securityAdminConfigurations +ProvisioningState : Succeeded +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "jaredgorthy@microsoft.com", + "CreatedByType": "User", + "CreatedAt": "2022-08-07T23:58:54.8549506Z", + "LastModifiedBy": "jaredgorthy@microsoft.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2022-08-08T00:01:21.391989Z" + } +Name : psSecurityAdminConfig +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/securityAdminConfigurations/psSecurityAdminConfig +``` + +Creates a security admin configuration that will apply on NIP based services. + + +#### Get-AzNetworkManagerSecurityAdminConfiguration + +#### SYNOPSIS +Gets a network security admin configuration in a network manager. + +#### SYNTAX + ++ NoExpand (Default) +```powershell +Get-AzNetworkManagerSecurityAdminConfiguration [-Name ] -NetworkManagerName + -ResourceGroupName [-DefaultProfile ] + [] +``` + ++ Expand +```powershell +Get-AzNetworkManagerSecurityAdminConfiguration -Name -NetworkManagerName + -ResourceGroupName [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzNetworkManagerSecurityAdminConfiguration -Name "TestSecConfig" -NetworkManagerName "TestNMName" -ResourceGroupName "TestRG" +``` + +```output +Name : TestSecConfig +Description : DESCription +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/securityAdminConfigurations/TestSecConfig +Type : Microsoft.Network/networkManagers/securityAdminConfigurations +Etag : "00000000-0000-0000-0000-000000000000" +ProvisioningState : Succeeded +DeleteExistingNSGs : +ApplyOnNetworkIntentPolicyBasedServices: +SecurityType : +SystemData : { + "CreatedBy": "00000000-0000-0000-0000-000000000000", + "CreatedByType": "Application", + "CreatedAt": "2021-10-18T04:05:57", + "LastModifiedBy": "00000000-0000-0000-0000-000000000000", + "LastModifiedByType": "Application", + "LastModifiedAt": "2021-10-18T04:05:59" + } +``` + +Get a security admin configuration. + ++ Example 2 +```powershell +Get-AzNetworkManagerSecurityAdminConfiguration -NetworkManagerName "TestNMName" -ResourceGroupName "TestRG" +``` + +```output +Name : TestSecConfig +Description : DESCription +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/securityAdminConfigurations/TestSecConfig +Type : Microsoft.Network/networkManagers/securityAdminConfigurations +Etag : "00000000-0000-0000-0000-000000000000" +ProvisioningState : Succeeded +DeleteExistingNSGs : +ApplyOnNetworkIntentPolicyBasedServices: +SecurityType : +SystemData : { + "CreatedBy": "00000000-0000-0000-0000-000000000000", + "CreatedByType": "Application", + "CreatedAt": "2021-10-18T04:05:57", + "LastModifiedBy": "00000000-0000-0000-0000-000000000000", + "LastModifiedByType": "Application", + "LastModifiedAt": "2021-10-18T04:05:59" + } + + Name : TestSecConfig2 +Description : DESCription +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/securityAdminConfigurations/TestSecConfig2 +Type : Microsoft.Network/networkManagers/securityAdminConfigurations +Etag : "00000000-0000-0000-0000-000000000000" +ProvisioningState : Succeeded +DeleteExistingNSGs : +ApplyOnNetworkIntentPolicyBasedServices: +SecurityType : +SystemData : { + "CreatedBy": "00000000-0000-0000-0000-000000000000", + "CreatedByType": "Application", + "CreatedAt": "2021-10-18T04:05:57", + "LastModifiedBy": "00000000-0000-0000-0000-000000000000", + "LastModifiedByType": "Application", + "LastModifiedAt": "2021-10-18T04:05:59" + } +``` + +Gets all security admin configurations on a network manager. + + +#### Remove-AzNetworkManagerSecurityAdminConfiguration + +#### SYNOPSIS +Removes a security admin configuration. + +#### SYNTAX + +```powershell +Remove-AzNetworkManagerSecurityAdminConfiguration -Name -NetworkManagerName + -ResourceGroupName [-ForceDelete] [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzNetworkManagerSecurityAdminConfiguration -Name TestAdminConfigName -NetworkManagerName TestNMName -ResourceGroupName TestRGName -ForceDelete +``` + +Removes a security admin configuration. + + +#### Set-AzNetworkManagerSecurityAdminConfiguration + +#### SYNOPSIS +Updates a network manager security admin configuration. + +#### SYNTAX + +```powershell +Set-AzNetworkManagerSecurityAdminConfiguration -InputObject + [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$NetworkManagerSecurityConfiguration = Get-AzNetworkManagerSecurityAdminConfiguration -Name "psSecurityAdminConfig" -NetworkManagerName "psNetworkManager" -ResourceGroupName "psResourceGroup" +$NetworkManagerSecurityConfiguration.applyOnNetworkIntentPolicyBasedServices = @("None") +Set-AzNetworkManagerSecurityAdminConfiguration -InputObject $NetworkManagerSecurityConfiguration +``` + +```output +SecurityType : +ApplyOnNetworkIntentPolicyBasedServices : {None} +ApplyOnNetworkIntentPolicyBasedServicesText : [ + "None" + ] +DeleteExistingNSGs : +DisplayName : +Description : TestDescription +Type : Microsoft.Network/networkManagers/securityAdminConfigurations +ProvisioningState : Succeeded +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "jaredgorthy@microsoft.com", + "CreatedByType": "User", + "CreatedAt": "2022-08-07T23:58:54.8549506Z", + "LastModifiedBy": "jaredgorthy@microsoft.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2022-08-08T01:14:53.4574151Z" + } +Name : psSecurityAdminConfig +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/securityAdminConfigurations/psSecurityAdminConfig +``` + +Updates a network manager security admin configuration apply on network intent policy based services property. + + +#### New-AzNetworkManagerSecurityAdminRule + +#### SYNOPSIS +Creates a security admin rule. + +#### SYNTAX + ++ Custom (Default) +```powershell +New-AzNetworkManagerSecurityAdminRule -Name -RuleCollectionName + -SecurityAdminConfigurationName -NetworkManagerName -ResourceGroupName + [-Description ] -Protocol -Direction -Access + [-SourceAddressPrefix ] + [-DestinationAddressPrefix ] [-SourcePortRange ] + [-DestinationPortRange ] -Priority [-Force] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ Default +```powershell +New-AzNetworkManagerSecurityAdminRule -Name -RuleCollectionName + -SecurityAdminConfigurationName -NetworkManagerName -ResourceGroupName + -Flag [-Force] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Create Custom Security Admin Rule +```powershell +$sourceAddressPrefix = New-AzNetworkManagerAddressPrefixItem -AddressPrefix "Internet" -AddressPrefixType "ServiceTag" +$destinationAddressPrefix = New-AzNetworkManagerAddressPrefixItem -AddressPrefix "10.0.0.1" -AddressPrefixType "IPPrefix" +$sourcePortList = @("100") +$destinationPortList = @("99") +New-AzNetworkManagerSecurityAdminRule -ResourceGroupName "psResourceGroup" -NetworkManagerName "psNetworkManager" -ConfigName "psSecurityAdminConfig" -RuleCollectionName "psRuleCollection" -Name "psRule" -Description "TestDescription" -Protocol "TCP" -Direction "Inbound" -Access "Allow" -Priority 100 -SourcePortRange $sourcePortList -DestinationPortRange $destinationPortList -SourceAddressPrefix $sourceAddressPrefix -DestinationAddressPrefix $destinationAddressPrefix +``` + +```output +Protocol : Tcp +Direction : Inbound +Sources : {Microsoft.Azure.Commands.Network.Models.NetworkManager.PSNetworkManagerAddressPrefixItem} +Destinations : {Microsoft.Azure.Commands.Network.Models.NetworkManager.PSNetworkManagerAddressPrefixItem} +SourcePortRanges : {100} +DestinationPortRanges : {99} +Access : Allow +Priority : 100 +SourcesText : [ + { + "AddressPrefix": "Internet", + "AddressPrefixType": "ServiceTag" + } + ] +DestinationsText : [ + { + "AddressPrefix": "10.0.0.1", + "AddressPrefixType": "IPPrefix" + } + ] +SourcePortRangesText : [ + "100" + ] +DestinationPortRangesText : [ + "99" + ] +DisplayName : +Description : TestDescription +Type : Microsoft.Network/networkManagers/securityAdminConfigurations/ruleCollections/rules +ProvisioningState : Succeeded +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "jaredgorthy@microsoft.com", + "CreatedByType": "User", + "CreatedAt": "2022-08-08T00:39:56.4512419Z", + "LastModifiedBy": "jaredgorthy@microsoft.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2022-08-08T00:39:56.4512419Z" + } +Name : psRule +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/securityAdminConfigurations/psSecurityAdminConfig/ruleCollections/psRuleCollection/rules/psRule +``` + +Creates a security admin rule. + + +#### Get-AzNetworkManagerSecurityAdminRule + +#### SYNOPSIS +Gets a security admin rule in a network manager. + +#### SYNTAX + ++ NoExpand (Default) +```powershell +Get-AzNetworkManagerSecurityAdminRule [-Name ] -RuleCollectionName + -SecurityAdminConfigurationName -NetworkManagerName -ResourceGroupName + [-DefaultProfile ] [] +``` + ++ Expand +```powershell +Get-AzNetworkManagerSecurityAdminRule -Name -RuleCollectionName + -SecurityAdminConfigurationName -NetworkManagerName -ResourceGroupName + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzNetworkManagerSecurityAdminRule -Name "testRule" -RuleCollectionName "TestRC" -SecurityAdminConfigurationName "TestSecConfig" -NetworkManagerName "TestNMName" -ResourceGroupName "TestRG" +``` + +```output +Name : testRule +Description : Description +Type : Microsoft.Network/networkManagers/securityAdminConfigurations/ruleCollections/rules +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/securityAdminConfigurations/TestSecConfig/ruleCollections/TestRC/rules/testRule +Etag : "00000000-0000-0000-0000-000000000000" +ProvisioningState : Succeeded +Protocol : Tcp +Direction : Inbound +Sources : [ + { + "AddressPrefix": "Internet", + "AddressPrefixType": "ServiceTag" + } + ] +Destinations : [ + { + "AddressPrefix": "10.0.0.1", + "AddressPrefixType": "IPPrefix" + } + ] +SourcePortRanges : [ + "100" + ] +DestinationPortRanges : [ + "99" + ] +Access : Allow +Priority : 100 +SystemData : { + "CreatedBy": "00000000-0000-0000-0000-000000000000", + "CreatedByType": "Application", + "CreatedAt": "2021-10-18T04:06:05", + "LastModifiedBy": "00000000-0000-0000-0000-000000000000", + "LastModifiedByType": "Application", + "LastModifiedAt": "2021-10-18T04:06:06" + } +``` + +Gets a security admin rule in a rule collection. + ++ Example 2 +```powershell +Get-AzNetworkManagerSecurityAdminRule -RuleCollectionName "TestRC" -SecurityAdminConfigurationName "TestSecConfig" -NetworkManagerName "TestNMName" -ResourceGroupName "TestRG" +``` + +```output +Name : testRule +Description : Description +Type : Microsoft.Network/networkManagers/securityAdminConfigurations/ruleCollections/rules +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/securityAdminConfigurations/TestSecConfig/ruleCollections/TestRC/rules/testRule +Etag : "00000000-0000-0000-0000-000000000000" +ProvisioningState : Succeeded +Protocol : Tcp +Direction : Inbound +Sources : [ + { + "AddressPrefix": "Internet", + "AddressPrefixType": "ServiceTag" + } + ] +Destinations : [ + { + "AddressPrefix": "10.0.0.1", + "AddressPrefixType": "IPPrefix" + } + ] +SourcePortRanges : [ + "100" + ] +DestinationPortRanges : [ + "99" + ] +Access : Allow +Priority : 100 +SystemData : { + "CreatedBy": "00000000-0000-0000-0000-000000000000", + "CreatedByType": "Application", + "CreatedAt": "2021-10-18T04:06:05", + "LastModifiedBy": "00000000-0000-0000-0000-000000000000", + "LastModifiedByType": "Application", + "LastModifiedAt": "2021-10-18T04:06:06" + } + + Name : testRule2 +Description : Description +Type : Microsoft.Network/networkManagers/securityAdminConfigurations/ruleCollections/rules +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/securityAdminConfigurations/TestSecConfig/ruleCollections/TestRC/rules/testRule2 +Etag : "00000000-0000-0000-0000-000000000000" +ProvisioningState : Succeeded +Protocol : Tcp +Direction : Inbound +Sources : [ + { + "AddressPrefix": "Internet", + "AddressPrefixType": "ServiceTag" + } + ] +Destinations : [ + { + "AddressPrefix": "10.0.0.1", + "AddressPrefixType": "IPPrefix" + } + ] +SourcePortRanges : [ + "100" + ] +DestinationPortRanges : [ + "99" + ] +Access : Allow +Priority : 100 +SystemData : { + "CreatedBy": "00000000-0000-0000-0000-000000000000", + "CreatedByType": "Application", + "CreatedAt": "2021-10-18T04:06:05", + "LastModifiedBy": "00000000-0000-0000-0000-000000000000", + "LastModifiedByType": "Application", + "LastModifiedAt": "2021-10-18T04:06:06" + } +``` + +Gets all rules within a security admin rule collection. + + +#### Remove-AzNetworkManagerSecurityAdminRule + +#### SYNOPSIS +Removes a security admin rule. + +#### SYNTAX + +```powershell +Remove-AzNetworkManagerSecurityAdminRule -Name -RuleCollectionName + -SecurityAdminConfigurationName -NetworkManagerName -ResourceGroupName + [-ForceDelete] [-Force] [-PassThru] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzNetworkManagerSecurityAdminRule -Name TestAdminRuleName -RuleCollectionName TestRuleCollectionName -SecurityAdminConfigurationName TestAdminConfigName -NetworkManagerName TestNMName -ResourceGroupName TestRGName +``` + +Removes a security admin rule. + + +#### Set-AzNetworkManagerSecurityAdminRule + +#### SYNOPSIS +Updates a network manager security admin rule. + +#### SYNTAX + +```powershell +Set-AzNetworkManagerSecurityAdminRule -InputObject [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$SecurityAdminRule = Get-AzNetworkManagerSecurityAdminRule -Name "psRule" -RuleCollectionName "psRuleCollection" -SecurityAdminConfigurationName "psSecurityAdminConfig" -NetworkManagerName "psNetworkManager" -ResourceGroupName "psResourceGroup" +$SecurityAdminRule.priority = 50 +Set-AzNetworkManagerSecurityAdminRule -InputObject $SecurityAdminRule +``` + +```output +Protocol : Tcp +Direction : Inbound +Sources : {Microsoft.Azure.Commands.Network.Models.NetworkManager.PSNetworkManagerAddressPrefixItem} +Destinations : {Microsoft.Azure.Commands.Network.Models.NetworkManager.PSNetworkManagerAddressPrefixItem} +SourcePortRanges : {100} +DestinationPortRanges : {99} +Access : Allow +Priority : 50 +SourcesText : [ + { + "AddressPrefix": "Internet", + "AddressPrefixType": "ServiceTag" + } + ] +DestinationsText : [ + { + "AddressPrefix": "10.0.0.1", + "AddressPrefixType": "IPPrefix" + } + ] +SourcePortRangesText : [ + "100" + ] +DestinationPortRangesText : [ + "99" + ] +DisplayName : +Description : TestDescription +Type : Microsoft.Network/networkManagers/securityAdminConfigurations/ruleCollections/rules +ProvisioningState : Succeeded +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "jaredgorthy@microsoft.com", + "CreatedByType": "User", + "CreatedAt": "2022-08-08T00:39:56.4512419Z", + "LastModifiedBy": "jaredgorthy@microsoft.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2022-08-08T01:23:18.6454664Z" + } +Name : psRule +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/securityAdminConfigurations/psSecurityAdminConfig/ruleCollections/psRuleCollection/rules/psRule +``` + +Updates a network manager security admin rule's priority'. + + +#### New-AzNetworkManagerSecurityAdminRuleCollection + +#### SYNOPSIS +Creates a security admin rule collection. + +#### SYNTAX + +```powershell +New-AzNetworkManagerSecurityAdminRuleCollection -Name -SecurityAdminConfigurationName + -NetworkManagerName -ResourceGroupName [-Description ] + -AppliesToGroup [-Force] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$groupItem = New-AzNetworkManagerSecurityGroupItem -NetworkGroupId "/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup" +$configGroup = @($groupItem) +New-AzNetworkManagerSecurityAdminRuleCollection -ResourceGroupName "psResourceGroup" -NetworkManagerName "psNetworkManager" -ConfigName "psSecurityAdminConfig" -Name "psRuleCollection" -AppliesToGroup $configGroup +``` + +```output +AppliesToGroups : {/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup} +AppliesToGroupsText : [ + { + "NetworkGroupId": + "/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup" + } + ] +DisplayName : +Description : +Type : Microsoft.Network/networkManagers/securityAdminConfigurations/ruleCollections +ProvisioningState : Succeeded +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "jaredgorthy@microsoft.com", + "CreatedByType": "User", + "CreatedAt": "2022-08-08T00:34:32.030751Z", + "LastModifiedBy": "jaredgorthy@microsoft.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2022-08-08T00:34:32.030751Z" + } +Name : psRuleCollection +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/securityAdminConfigurations/psSecurityAdminConfig/ruleCollections/psRuleCollection +``` + +Creates a security admin rule collection with a network group member. + + +#### Get-AzNetworkManagerSecurityAdminRuleCollection + +#### SYNOPSIS +Gets a security admin rule collection in a network manager. + +#### SYNTAX + ++ NoExpand (Default) +```powershell +Get-AzNetworkManagerSecurityAdminRuleCollection [-Name ] -SecurityAdminConfigurationName + -NetworkManagerName -ResourceGroupName [-DefaultProfile ] + [] +``` + ++ Expand +```powershell +Get-AzNetworkManagerSecurityAdminRuleCollection -Name -SecurityAdminConfigurationName + -NetworkManagerName -ResourceGroupName [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzNetworkManagerSecurityAdminRuleCollection -Name "TestRC" -SecurityAdminConfigurationName "TestSecConfig" -NetworkManagerName "TestNMName" -ResourceGroupName "TestRG" +``` + +```output +Name : TestRC +Description : Sample rule Collection Description +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/securityAdminConfigurations/TestSecConfig/ruleCollections/TestRC +Type : Microsoft.Network/networkManagers/securityAdminConfigurations/ruleCollections +Etag : "00000000-0000-0000-0000-000000000000" +ProvisioningState : Succeeded +AppliesToGroups : [ + { + "NetworkGroupId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/networkGroups/testng" + } + ] +SystemData : { + "CreatedBy": "00000000-0000-0000-0000-000000000000", + "CreatedByType": "Application", + "CreatedAt": "2021-10-18T04:06:01", + "LastModifiedBy": "00000000-0000-0000-0000-000000000000", + "LastModifiedByType": "Application", + "LastModifiedAt": "2021-10-18T04:06:03" + } +``` + +Gets a rule collection with a security admin configuration. + ++ Example 2 +```powershell +Get-AzNetworkManagerSecurityAdminRuleCollection -SecurityAdminConfigurationName "TestSecConfig" -NetworkManagerName "TestNMName" -ResourceGroupName "TestRG" +``` + +```output +Name : TestRC +Description : Sample rule Collection Description +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/securityAdminConfigurations/TestSecConfig/ruleCollections/TestRC +Type : Microsoft.Network/networkManagers/securityAdminConfigurations/ruleCollections +Etag : "00000000-0000-0000-0000-000000000000" +ProvisioningState : Succeeded +AppliesToGroups : [ + { + "NetworkGroupId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/networkGroups/testng" + } + ] +SystemData : { + "CreatedBy": "00000000-0000-0000-0000-000000000000", + "CreatedByType": "Application", + "CreatedAt": "2021-10-18T04:06:01", + "LastModifiedBy": "00000000-0000-0000-0000-000000000000", + "LastModifiedByType": "Application", + "LastModifiedAt": "2021-10-18T04:06:03" + } + + Name : TestRC2 +Description : Sample rule Collection Description +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/securityAdminConfigurations/TestSecConfig/ruleCollections/TestRC2 +Type : Microsoft.Network/networkManagers/securityAdminConfigurations/ruleCollections +Etag : "00000000-0000-0000-0000-000000000000" +ProvisioningState : Succeeded +AppliesToGroups : [ + { + "NetworkGroupId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/networkGroups/testng" + } + ] +SystemData : { + "CreatedBy": "00000000-0000-0000-0000-000000000000", + "CreatedByType": "Application", + "CreatedAt": "2021-10-18T04:06:01", + "LastModifiedBy": "00000000-0000-0000-0000-000000000000", + "LastModifiedByType": "Application", + "LastModifiedAt": "2021-10-18T04:06:03" + } +``` + +Gets all rule collections within a security admin configuration. + + +#### Remove-AzNetworkManagerSecurityAdminRuleCollection + +#### SYNOPSIS +Removes a security admin rule collection. + +#### SYNTAX + +```powershell +Remove-AzNetworkManagerSecurityAdminRuleCollection -Name -SecurityAdminConfigurationName + -NetworkManagerName -ResourceGroupName [-ForceDelete] [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzNetworkManagerSecurityAdminRuleCollection -Name TestRuleCollectionName -SecurityAdminConfigurationName TestAdminConfigName -NetworkManagerName TestNMName -ResourceGroupName TestRGName +``` + +Removes a security admin rule collection. + + +#### Set-AzNetworkManagerSecurityAdminRuleCollection + +#### SYNOPSIS +Updates a network manager security admin rule collection. + +#### SYNTAX + +```powershell +Set-AzNetworkManagerSecurityAdminRuleCollection -InputObject + [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$NetworkManagerSecurityAdminRuleCollection = Get-AzNetworkManagerSecurityAdminRuleCollection -SecurityAdminConfigurationName "psSecurityAdminConfig" -Name "psRuleCollection" -NetworkManagerName "psNetworkManager" -ResourceGroupName "psResourceGroup" +$groupItem = New-AzNetworkManagerSecurityGroupItem -NetworkGroupId "/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup" +$groupItem2 = New-AzNetworkManagerSecurityGroupItem -NetworkGroupId "/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup2" +[System.Collections.Generic.List[Microsoft.Azure.Commands.Network.Models.NetworkManager.PSNetworkManagerSecurityGroupItem]]$configGroup = @() +$configGroup.Add($groupItem) +$configGroup.Add($groupItem2) +$NetworkManagerSecurityAdminRuleCollection.AppliesToGroups = $configGroup +Set-AzNetworkManagerSecurityAdminRuleCollection -InputObject $NetworkManagerSecurityAdminRuleCollection +``` + +```output +AppliesToGroups : {/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup, + /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup2} +AppliesToGroupsText : [ + { + "NetworkGroupId": + "/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup" + }, + { + "NetworkGroupId": + "/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup2" + } + ] +DisplayName : +Description : +Type : Microsoft.Network/networkManagers/securityAdminConfigurations/ruleCollections +ProvisioningState : Succeeded +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "jaredgorthy@microsoft.com", + "CreatedByType": "User", + "CreatedAt": "2022-08-08T00:34:32.030751Z", + "LastModifiedBy": "jaredgorthy@microsoft.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2022-08-08T01:19:40.2407843Z" + } +Name : psRuleCollection +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/securityAdminConfigurations/psSecurityAdminConfig/ruleCollections/psRuleCollection +``` + +Updates a network manager security admin rule collection to include new network groups. + + +#### New-AzNetworkManagerSecurityGroupItem + +#### SYNOPSIS +Creates a security group item. + +#### SYNTAX + +```powershell +New-AzNetworkManagerSecurityGroupItem -NetworkGroupId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzNetworkManagerSecurityGroupItem -NetworkGroupId "/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup" +``` + +```output +NetworkGroupId +-------------- +/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup +``` + +Creates a security group item. + + +#### New-AzNetworkManagerSecurityUserConfiguration + +#### SYNOPSIS +Creates a security user configuration. + +#### SYNTAX + +```powershell +New-AzNetworkManagerSecurityUserConfiguration -Name -NetworkManagerName + -ResourceGroupName [-Description ] [-Force] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzNetworkManagerSecurityUserConfiguration -ResourceGroupName "psResourceGroup" -NetworkManagerName "psNetworkManager" -Name "psSecurityUserConfig" -Description "TestDescription" +``` + +```output +DisplayName : +Description : TestDescription +Type : Microsoft.Network/networkManagers/securityUserConfigurations +ProvisioningState : Succeeded +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "jaredgorthy@microsoft.com", + "CreatedByType": "User", + "CreatedAt": "2022-08-07T23:58:54.8549506Z", + "LastModifiedBy": "jaredgorthy@microsoft.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2022-08-07T23:59:12.5789979Z" + } +Name : psSecurityUserConfig +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/securityUserConfigurations/psSecurityUserConfig +``` + +Creates a security user configuration. + + +#### Get-AzNetworkManagerSecurityUserConfiguration + +#### SYNOPSIS +Gets a network security user configuration in a network manager. + +#### SYNTAX + ++ ByList (Default) +```powershell +Get-AzNetworkManagerSecurityUserConfiguration -NetworkManagerName -ResourceGroupName + [-DefaultProfile ] [] +``` + ++ ByName +```powershell +Get-AzNetworkManagerSecurityUserConfiguration -Name -NetworkManagerName + -ResourceGroupName [-DefaultProfile ] + [] +``` + ++ ByResourceId +```powershell +Get-AzNetworkManagerSecurityUserConfiguration -ResourceId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzNetworkManagerSecurityUserConfiguration -Name "TestSecConfig" -NetworkManagerName "TestNMName" -ResourceGroupName "TestRG" +``` + +```output +Name : TestSecConfig +Description : Description +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/securityUserConfigurations/TestSecConfig +Type : Microsoft.Network/networkManagers/securityUserConfigurations +Etag : "00000000-0000-0000-0000-000000000000" +ProvisioningState : Succeeded +SystemData : { + "CreatedBy": "00000000-0000-0000-0000-000000000000", + "CreatedByType": "Application", + "CreatedAt": "2021-10-18T04:05:57", + "LastModifiedBy": "00000000-0000-0000-0000-000000000000", + "LastModifiedByType": "Application", + "LastModifiedAt": "2021-10-18T04:05:59" + } +``` + +Get a security user configuration. + ++ Example 2 +```powershell +Get-AzNetworkManagerSecurityUserConfiguration -NetworkManagerName "TestNMName" -ResourceGroupName "TestRG" +``` + +```output +Name : TestSecConfig +Description : Description +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/securityUserConfigurations/TestSecConfig +Type : Microsoft.Network/networkManagers/securityUserConfigurations +Etag : "00000000-0000-0000-0000-000000000000" +ProvisioningState : Succeeded +SystemData : { + "CreatedBy": "00000000-0000-0000-0000-000000000000", + "CreatedByType": "Application", + "CreatedAt": "2021-10-18T04:05:57", + "LastModifiedBy": "00000000-0000-0000-0000-000000000000", + "LastModifiedByType": "Application", + "LastModifiedAt": "2021-10-18T04:05:59" + } + + Name : TestSecConfig2 +Description : Description +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/securityUserConfigurations/TestSecConfig2 +Type : Microsoft.Network/networkManagers/securityUserConfigurations +Etag : "00000000-0000-0000-0000-000000000000" +ProvisioningState : Succeeded +SystemData : { + "CreatedBy": "00000000-0000-0000-0000-000000000000", + "CreatedByType": "Application", + "CreatedAt": "2021-10-18T04:05:57", + "LastModifiedBy": "00000000-0000-0000-0000-000000000000", + "LastModifiedByType": "Application", + "LastModifiedAt": "2021-10-18T04:05:59" + } +``` + +Gets all security user configurations on a network manager. + + +#### Remove-AzNetworkManagerSecurityUserConfiguration + +#### SYNOPSIS +Removes a security user configuration. + +#### SYNTAX + ++ ByName (Default) +```powershell +Remove-AzNetworkManagerSecurityUserConfiguration -Name -NetworkManagerName + -ResourceGroupName [-ForceDelete] [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByInputObject +```powershell +Remove-AzNetworkManagerSecurityUserConfiguration -InputObject + [-ForceDelete] [-Force] [-PassThru] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByResourceId +```powershell +Remove-AzNetworkManagerSecurityUserConfiguration -ResourceId [-ForceDelete] [-Force] [-PassThru] + [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzNetworkManagerSecurityUserConfiguration -Name TestUserConfigName -NetworkManagerName TestNMName -ResourceGroupName TestRGName -ForceDelete +``` + +Removes a security user configuration. + + +#### Set-AzNetworkManagerSecurityUserConfiguration + +#### SYNOPSIS +Updates a network manager security user configuration. + +#### SYNTAX + ++ ByInputObject (Default) +```powershell +Set-AzNetworkManagerSecurityUserConfiguration -InputObject [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByName +```powershell +Set-AzNetworkManagerSecurityUserConfiguration -Name -ResourceGroupName + -NetworkManagerName [-Description ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByResourceId +```powershell +Set-AzNetworkManagerSecurityUserConfiguration -ResourceId [-Description ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$NetworkManagerSecurityConfiguration = Get-AzNetworkManagerSecurityUserConfiguration -Name "psSecurityUserConfig" -NetworkManagerName "psNetworkManager" -ResourceGroupName "psResourceGroup" +Set-AzNetworkManagerSecurityUserConfiguration -InputObject $NetworkManagerSecurityConfiguration +``` + +```output +DisplayName : +Description : TestDescription +Type : Microsoft.Network/networkManagers/securityUserConfigurations +ProvisioningState : Succeeded +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "00000000-0000-0000-0000-000000000000", + "CreatedByType": "Application", + "CreatedAt": "2021-10-18T04:05:57", + "LastModifiedBy": "00000000-0000-0000-0000-000000000000", + "LastModifiedByType": "Application", + "LastModifiedAt": "2021-10-18T04:05:59" + } +Name : psSecurityUserConfig +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/securityUserConfigurations/psSecurityUserConfig +``` + +Updates a network manager security user configuration. + + +#### New-AzNetworkManagerSecurityUserGroupItem + +#### SYNOPSIS +Creates a security group item. + +#### SYNTAX + +```powershell +New-AzNetworkManagerSecurityUserGroupItem -NetworkGroupId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzNetworkManagerSecurityUserGroupItem -NetworkGroupId "/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup" +``` + +```output +NetworkGroupId +-------------- +/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup +``` + +Creates a security group item. + + +#### New-AzNetworkManagerSecurityUserRule + +#### SYNOPSIS +Creates a security user rule. + +#### SYNTAX + +```powershell +New-AzNetworkManagerSecurityUserRule -Name -RuleCollectionName + -SecurityUserConfigurationName -NetworkManagerName -ResourceGroupName + [-Description ] -Protocol -Direction + [-SourceAddressPrefix ] + [-DestinationAddressPrefix ] [-SourcePortRange ] + [-DestinationPortRange ] [-Force] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Create Custom Security User Rule +```powershell +$sourceAddressPrefix = New-AzNetworkManagerAddressPrefixItem -AddressPrefix "Internet" -AddressPrefixType "ServiceTag" +$destinationAddressPrefix = New-AzNetworkManagerAddressPrefixItem -AddressPrefix "10.0.0.1" -AddressPrefixType "IPPrefix" +$sourcePortList = @("100") +$destinationPortList = @("99") +New-AzNetworkManagerSecurityUserRule -ResourceGroupName "psResourceGroup" -NetworkManagerName "psNetworkManager" -ConfigName "psSecurityUserConfig" -RuleCollectionName "psRuleCollection" -Name "psRule" -Description "TestDescription" -Protocol "TCP" -Direction "Inbound" -SourcePortRange $sourcePortList -DestinationPortRange $destinationPortList -SourceAddressPrefix $sourceAddressPrefix -DestinationAddressPrefix $destinationAddressPrefix +``` + +```output +Protocol : Tcp +Direction : Inbound +Sources : {Microsoft.Azure.Commands.Network.Models.NetworkManager.PSNetworkManagerAddressPrefixItem} +Destinations : {Microsoft.Azure.Commands.Network.Models.NetworkManager.PSNetworkManagerAddressPrefixItem} +SourcePortRanges : {100} +DestinationPortRanges : {99} +SourcesText : [ + { + "AddressPrefix": "Internet", + "AddressPrefixType": "ServiceTag" + } + ] +DestinationsText : [ + { + "AddressPrefix": "10.0.0.1", + "AddressPrefixType": "IPPrefix" + } + ] +SourcePortRangesText : [ + "100" + ] +DestinationPortRangesText : [ + "99" + ] +DisplayName : +Description : TestDescription +Type : Microsoft.Network/networkManagers/securityUserConfigurations/ruleCollections/rules +ProvisioningState : Succeeded +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "00000000-0000-0000-0000-000000000000", + "CreatedByType": "Application", + "CreatedAt": "2021-10-18T04:05:57", + "LastModifiedBy": "00000000-0000-0000-0000-000000000000", + "LastModifiedByType": "Application", + "LastModifiedAt": "2021-10-18T04:05:59" + } +Name : psRule +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/securityUserConfigurations/psSecurityUserConfig/ruleCollections/psRuleCollection/rules/psRule +``` + +Creates a security user rule. + + +#### Get-AzNetworkManagerSecurityUserRule + +#### SYNOPSIS +Gets a security user rule in a network manager. + +#### SYNTAX + ++ ByList (Default) +```powershell +Get-AzNetworkManagerSecurityUserRule -RuleCollectionName -SecurityUserConfigurationName + -NetworkManagerName -ResourceGroupName [-DefaultProfile ] + [] +``` + ++ ByName +```powershell +Get-AzNetworkManagerSecurityUserRule -Name -RuleCollectionName + -SecurityUserConfigurationName -NetworkManagerName -ResourceGroupName + [-DefaultProfile ] [] +``` + ++ ByResourceId +```powershell +Get-AzNetworkManagerSecurityUserRule -ResourceId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzNetworkManagerSecurityUserRule -Name "testRule" -RuleCollectionName "TestRC" -SecurityUserConfigurationName "TestSecConfig" -NetworkManagerName "TestNMName" -ResourceGroupName "TestRG" +``` + +```output +Name : testRule +Description : Description +Type : Microsoft.Network/networkManagers/securityUserConfigurations/ruleCollections/rules +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/securityUserConfigurations/TestSecConfig/ruleCollections/TestRC/rules/testRule +Etag : "00000000-0000-0000-0000-000000000000" +ProvisioningState : Succeeded +Protocol : Tcp +Direction : Inbound +Sources : [ + { + "AddressPrefix": "Internet", + "AddressPrefixType": "ServiceTag" + } + ] +Destinations : [ + { + "AddressPrefix": "10.0.0.1", + "AddressPrefixType": "IPPrefix" + } + ] +SourcePortRanges : [ + "100" + ] +DestinationPortRanges : [ + "99" + ] +Access : Allow +Priority : 100 +SystemData : { + "CreatedBy": "00000000-0000-0000-0000-000000000000", + "CreatedByType": "Application", + "CreatedAt": "2021-10-18T04:06:05", + "LastModifiedBy": "00000000-0000-0000-0000-000000000000", + "LastModifiedByType": "Application", + "LastModifiedAt": "2021-10-18T04:06:06" + } +``` + +Gets a security user rule in a rule collection. + ++ Example 2 +```powershell +Get-AzNetworkManagerSecurityUserRule -RuleCollectionName "TestRC" -SecurityUserConfigurationName "TestSecConfig" -NetworkManagerName "TestNMName" -ResourceGroupName "TestRG" +``` + +```output +Name : testRule +Description : Description +Type : Microsoft.Network/networkManagers/securityUserConfigurations/ruleCollections/rules +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/securityUserConfigurations/TestSecConfig/ruleCollections/TestRC/rules/testRule +Etag : "00000000-0000-0000-0000-000000000000" +ProvisioningState : Succeeded +Protocol : Tcp +Direction : Inbound +Sources : [ + { + "AddressPrefix": "Internet", + "AddressPrefixType": "ServiceTag" + } + ] +Destinations : [ + { + "AddressPrefix": "10.0.0.1", + "AddressPrefixType": "IPPrefix" + } + ] +SourcePortRanges : [ + "100" + ] +DestinationPortRanges : [ + "99" + ] +Access : Allow +Priority : 100 +SystemData : { + "CreatedBy": "00000000-0000-0000-0000-000000000000", + "CreatedByType": "Application", + "CreatedAt": "2021-10-18T04:06:05", + "LastModifiedBy": "00000000-0000-0000-0000-000000000000", + "LastModifiedByType": "Application", + "LastModifiedAt": "2021-10-18T04:06:06" + } + + Name : testRule2 +Description : Description +Type : Microsoft.Network/networkManagers/securityUserConfigurations/ruleCollections/rules +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/securityUserConfigurations/TestSecConfig/ruleCollections/TestRC/rules/testRule2 +Etag : "00000000-0000-0000-0000-000000000000" +ProvisioningState : Succeeded +Protocol : Tcp +Direction : Inbound +Sources : [ + { + "AddressPrefix": "Internet", + "AddressPrefixType": "ServiceTag" + } + ] +Destinations : [ + { + "AddressPrefix": "10.0.0.1", + "AddressPrefixType": "IPPrefix" + } + ] +SourcePortRanges : [ + "100" + ] +DestinationPortRanges : [ + "99" + ] +Access : Allow +Priority : 100 +SystemData : { + "CreatedBy": "00000000-0000-0000-0000-000000000000", + "CreatedByType": "Application", + "CreatedAt": "2021-10-18T04:06:05", + "LastModifiedBy": "00000000-0000-0000-0000-000000000000", + "LastModifiedByType": "Application", + "LastModifiedAt": "2021-10-18T04:06:06" + } +``` + +Gets all rules within a security user rule collection. + + +#### Remove-AzNetworkManagerSecurityUserRule + +#### SYNOPSIS +Removes a security user rule. + +#### SYNTAX + ++ ByName (Default) +```powershell +Remove-AzNetworkManagerSecurityUserRule -Name -RuleCollectionName + -SecurityUserConfigurationName -NetworkManagerName -ResourceGroupName + [-ForceDelete] [-Force] [-PassThru] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByInputObject +```powershell +Remove-AzNetworkManagerSecurityUserRule -InputObject [-ForceDelete] [-Force] + [-PassThru] [-AsJob] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + ++ ByResourceId +```powershell +Remove-AzNetworkManagerSecurityUserRule -ResourceId [-ForceDelete] [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzNetworkManagerSecurityUserRule -Name TestUserRuleName -RuleCollectionName TestRuleCollectionName -SecurityUserConfigurationName TestUserConfigName -NetworkManagerName TestNMName -ResourceGroupName TestRGName +``` + +Removes a security user rule. + + +#### Set-AzNetworkManagerSecurityUserRule + +#### SYNOPSIS +Updates a network manager security user rule. + +#### SYNTAX + ++ ByInputObject (Default) +```powershell +Set-AzNetworkManagerSecurityUserRule -InputObject [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByNameParameters +```powershell +Set-AzNetworkManagerSecurityUserRule -Name -ResourceGroupName -NetworkManagerName + -SecurityUserConfigurationName -RuleCollectionName [-Description ] + -Protocol -Direction [-SourceAddressPrefix ] + [-DestinationAddressPrefix ] [-SourcePortRange ] + [-DestinationPortRange ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByResourceId +```powershell +Set-AzNetworkManagerSecurityUserRule -ResourceId [-Description ] -Protocol + -Direction [-SourceAddressPrefix ] + [-DestinationAddressPrefix ] [-SourcePortRange ] + [-DestinationPortRange ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$SecurityUserRule = Get-AzNetworkManagerSecurityUserRule -Name "psRule" -RuleCollectionName "psRuleCollection" -SecurityUserConfigurationName "psSecurityUserConfig" -NetworkManagerName "psNetworkManager" -ResourceGroupName "psResourceGroup" +Set-AzNetworkManagerSecurityUserRule -InputObject $SecurityUserRule +``` + +```output +Protocol : Tcp +Direction : Inbound +Sources : {Microsoft.Azure.Commands.Network.Models.NetworkManager.PSNetworkManagerAddressPrefixItem} +Destinations : {Microsoft.Azure.Commands.Network.Models.NetworkManager.PSNetworkManagerAddressPrefixItem} +SourcePortRanges : {100} +DestinationPortRanges : {99} +SourcesText : [ + { + "AddressPrefix": "Internet", + "AddressPrefixType": "ServiceTag" + } + ] +DestinationsText : [ + { + "AddressPrefix": "10.0.0.1", + "AddressPrefixType": "IPPrefix" + } + ] +SourcePortRangesText : [ + "100" + ] +DestinationPortRangesText : [ + "99" + ] +DisplayName : +Description : TestDescription +Type : Microsoft.Network/networkManagers/securityUserConfigurations/ruleCollections/rules +ProvisioningState : Succeeded +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "00000000-0000-0000-0000-000000000000", + "CreatedByType": "Application", + "CreatedAt": "2021-10-18T04:05:57", + "LastModifiedBy": "00000000-0000-0000-0000-000000000000", + "LastModifiedByType": "Application", + "LastModifiedAt": "2021-10-18T04:05:59" + } +Name : psRule +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/securityUserConfigurations/psSecurityUserConfig/ruleCollections/psRuleCollection/rules/psRule +``` + +Updates a network manager security user rule's priority'. + + +#### New-AzNetworkManagerSecurityUserRuleCollection + +#### SYNOPSIS +Creates a security user rule collection. + +#### SYNTAX + +```powershell +New-AzNetworkManagerSecurityUserRuleCollection -Name -SecurityUserConfigurationName + -NetworkManagerName -ResourceGroupName [-Description ] + -AppliesToGroup [-Force] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$groupItem = New-AzNetworkManagerSecurityGroupItem -NetworkGroupId "/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup" +$configGroup = @($groupItem) +New-AzNetworkManagerSecurityUserRuleCollection -ResourceGroupName "psResourceGroup" -NetworkManagerName "psNetworkManager" -ConfigName "psSecurityUserConfig" -Name "psRuleCollection" -AppliesToGroup $configGroup +``` + +```output +AppliesToGroups : {/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup} +AppliesToGroupsText : [ + { + "NetworkGroupId": + "/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup" + } + ] +DisplayName : +Description : +Type : Microsoft.Network/networkManagers/securityUserConfigurations/ruleCollections +ProvisioningState : Succeeded +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "00000000-0000-0000-0000-000000000000", + "CreatedByType": "Application", + "CreatedAt": "2021-10-18T04:05:57", + "LastModifiedBy": "00000000-0000-0000-0000-000000000000", + "LastModifiedByType": "Application", + "LastModifiedAt": "2021-10-18T04:05:59" + } +Name : psRuleCollection +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/securityUserConfigurations/psSecurityUserConfig/ruleCollections/psRuleCollection +``` + +Creates a security user rule collection with a network group member. + + +#### Get-AzNetworkManagerSecurityUserRuleCollection + +#### SYNOPSIS +Gets a security user rule collection in a network manager. + +#### SYNTAX + ++ ByList (Default) +```powershell +Get-AzNetworkManagerSecurityUserRuleCollection -SecurityUserConfigurationName + -NetworkManagerName -ResourceGroupName [-DefaultProfile ] + [] +``` + ++ ByName +```powershell +Get-AzNetworkManagerSecurityUserRuleCollection -Name -SecurityUserConfigurationName + -NetworkManagerName -ResourceGroupName [-DefaultProfile ] + [] +``` + ++ ByResourceId +```powershell +Get-AzNetworkManagerSecurityUserRuleCollection -ResourceId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzNetworkManagerSecurityUserRuleCollection -Name "TestRC" -SecurityUserConfigurationName "TestSecConfig" -NetworkManagerName "TestNMName" -ResourceGroupName "TestRG" +``` + +```output +Name : TestRC +Description : Sample rule Collection Description +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/securityUserConfigurations/TestSecConfig/ruleCollections/TestRC +Type : Microsoft.Network/networkManagers/securityUserConfigurations/ruleCollections +Etag : "00000000-0000-0000-0000-000000000000" +ProvisioningState : Succeeded +AppliesToGroups : [ + { + "NetworkGroupId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/networkGroups/testng" + } + ] +SystemData : { + "CreatedBy": "00000000-0000-0000-0000-000000000000", + "CreatedByType": "Application", + "CreatedAt": "2021-10-18T04:06:01", + "LastModifiedBy": "00000000-0000-0000-0000-000000000000", + "LastModifiedByType": "Application", + "LastModifiedAt": "2021-10-18T04:06:03" + } +``` + +Gets a rule collection with a security user configuration. + ++ Example 2 +```powershell +Get-AzNetworkManagerSecurityUserRuleCollection -SecurityUserConfigurationName "TestSecConfig" -NetworkManagerName "TestNMName" -ResourceGroupName "TestRG" +``` + +```output +Name : TestRC +Description : Sample rule Collection Description +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/securityUserConfigurations/TestSecConfig/ruleCollections/TestRC +Type : Microsoft.Network/networkManagers/securityUserConfigurations/ruleCollections +Etag : "00000000-0000-0000-0000-000000000000" +ProvisioningState : Succeeded +AppliesToGroups : [ + { + "NetworkGroupId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/networkGroups/testng" + } + ] +SystemData : { + "CreatedBy": "00000000-0000-0000-0000-000000000000", + "CreatedByType": "Application", + "CreatedAt": "2021-10-18T04:06:01", + "LastModifiedBy": "00000000-0000-0000-0000-000000000000", + "LastModifiedByType": "Application", + "LastModifiedAt": "2021-10-18T04:06:03" + } + + Name : TestRC2 +Description : Sample rule Collection Description +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/securityUserConfigurations/TestSecConfig/ruleCollections/TestRC2 +Type : Microsoft.Network/networkManagers/securityUserConfigurations/ruleCollections +Etag : "00000000-0000-0000-0000-000000000000" +ProvisioningState : Succeeded +AppliesToGroups : [ + { + "NetworkGroupId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestRG/providers/Microsoft.Network/networkManagers/TestNMName/networkGroups/testng" + } + ] +SystemData : { + "CreatedBy": "00000000-0000-0000-0000-000000000000", + "CreatedByType": "Application", + "CreatedAt": "2021-10-18T04:06:01", + "LastModifiedBy": "00000000-0000-0000-0000-000000000000", + "LastModifiedByType": "Application", + "LastModifiedAt": "2021-10-18T04:06:03" + } +``` + +Gets all rule collections within a security user configuration. + + +#### Remove-AzNetworkManagerSecurityUserRuleCollection + +#### SYNOPSIS +Removes a security user rule collection. + +#### SYNTAX + ++ ByName (Default) +```powershell +Remove-AzNetworkManagerSecurityUserRuleCollection -Name -SecurityUserConfigurationName + -NetworkManagerName -ResourceGroupName [-ForceDelete] [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByInputObject +```powershell +Remove-AzNetworkManagerSecurityUserRuleCollection -InputObject + [-ForceDelete] [-Force] [-PassThru] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByResourceId +```powershell +Remove-AzNetworkManagerSecurityUserRuleCollection -ResourceId [-ForceDelete] [-Force] [-PassThru] + [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzNetworkManagerSecurityUserRuleCollection -Name TestRuleCollectionName -SecurityUserConfigurationName TestUserConfigName -NetworkManagerName TestNMName -ResourceGroupName TestRGName +``` + +Removes a security user rule collection. + + +#### Set-AzNetworkManagerSecurityUserRuleCollection + +#### SYNOPSIS +Updates a network manager security user rule collection. + +#### SYNTAX + ++ ByInputObject (Default) +```powershell +Set-AzNetworkManagerSecurityUserRuleCollection -InputObject + [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByName +```powershell +Set-AzNetworkManagerSecurityUserRuleCollection -Name -ResourceGroupName + -NetworkManagerName -SecurityUserConfigurationName [-Description ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByResourceId +```powershell +Set-AzNetworkManagerSecurityUserRuleCollection -ResourceId [-Description ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$NetworkManagerSecurityUserRuleCollection = Get-AzNetworkManagerSecurityUserRuleCollection -SecurityUserConfigurationName "psSecurityUserConfig" -Name "psRuleCollection" -NetworkManagerName "psNetworkManager" -ResourceGroupName "psResourceGroup" +$groupItem = New-AzNetworkManagerSecurityUserGroupItem -NetworkGroupId "/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup" +$groupItem2 = New-AzNetworkManagerSecurityUserGroupItem -NetworkGroupId "/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup2" +[System.Collections.Generic.List[Microsoft.Azure.Commands.Network.Models.NetworkManager.PSNetworkManagerSecurityUserGroupItem]]$configGroup = @() +$configGroup.Add($groupItem) +$configGroup.Add($groupItem2) +$NetworkManagerSecurityUserRuleCollection.AppliesToGroups = $configGroup +Set-AzNetworkManagerSecurityUserRuleCollection -InputObject $NetworkManagerSecurityUserRuleCollection +``` + +```output +AppliesToGroups : {/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup, + /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup2} +AppliesToGroupsText : [ + { + "NetworkGroupId": + "/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup" + }, + { + "NetworkGroupId": + "/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup2" + } + ] +DisplayName : +Description : +Type : Microsoft.Network/networkManagers/securityUserConfigurations/ruleCollections +ProvisioningState : Succeeded +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "00000000-0000-0000-0000-000000000000", + "CreatedByType": "Application", + "CreatedAt": "2021-10-18T04:05:57", + "LastModifiedBy": "00000000-0000-0000-0000-000000000000", + "LastModifiedByType": "Application", + "LastModifiedAt": "2021-10-18T04:05:59" + } +Name : psRuleCollection +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/securityUserConfigurations/psSecurityUserConfig/ruleCollections/psRuleCollection +``` + +Updates a network manager security user rule collection to include new network groups. + + +#### New-AzNetworkManagerStaticMember + +#### SYNOPSIS +Creates a network manager static member. + +#### SYNTAX + +```powershell +New-AzNetworkManagerStaticMember -Name -NetworkManagerName -NetworkGroupName + -ResourceGroupName -ResourceId [-Force] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$vnetId = "/subscriptions/0fd190fa-dd1c-4724-b7f6-c5cc3ba5c884/resourceGroups/PowerShellTestResources/providers/Microsoft.Network/virtualNetworks/powerShellTestVnet" +New-AzNetworkManagerStaticMember -ResourceGroupName "psResourceGroup" -NetworkManagerName "psNetworkManager" -NetworkGroupName "psNetworkGroup" -Name "psStaticMember" -ResourceId $vnetId +``` + +```output +ResourceId : /subscriptions/0fd190fa-dd1c-4724-b7f6-c5cc3ba5c884/resourceGroups/PowerShellTestResources/providers/Microsoft.Network/virtualNetworks/powerShellTestVnet +DisplayName : +Description : +Type : Microsoft.Network/networkManagers/networkGroups/staticMembers +ProvisioningState : Updating +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "jaredgorthy@microsoft.com", + "CreatedByType": "User", + "CreatedAt": "2022-08-08T00:13:22.2067814Z", + "LastModifiedBy": "jaredgorthy@microsoft.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2022-08-08T00:13:22.2067814Z" + } +Name : psStaticMember +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager/networkGroups/psNetworkGroup/staticMembers/psStaticMember +``` + +Creates a network manager static member with a vnet resource. + + +#### Get-AzNetworkManagerStaticMember + +#### SYNOPSIS +Gets network manager static members. + +#### SYNTAX + ++ NoExpand (Default) +```powershell +Get-AzNetworkManagerStaticMember [-Name ] -NetworkGroupName -NetworkManagerName + -ResourceGroupName [-DefaultProfile ] + [] +``` + ++ Expand +```powershell +Get-AzNetworkManagerStaticMember -Name -NetworkGroupName -NetworkManagerName + -ResourceGroupName [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzNetworkManagerStaticMember -Name "TestStaticMember" -NetworkManagerName "TestNMName" -ResourceGroupName "TestRG" -NetworkGroupName "TestNetworkGroup" +``` + +```output +Name : TestSM +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Network/networkManagers/TestNMName/networkGroups/TestNetworkGroup/staticMembers/TestStaticMember +ResourceId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Network/virtualNetworks/vnet1 +Description : +Type : Microsoft.Network/networkManagers/networkGroups/staticMembers +Etag : +ProvisioningState : Succeeded +``` + +Gets a single static member. + ++ Example 2 +```powershell +Get-AzNetworkManagerStaticMember -NetworkManagerName "psNetworkManager" -ResourceGroupName "psResourceGroup" -NetworkGroupName "psNetworkGroup" +``` + +```output +Name : TestSM +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Network/networkManagers/TestNMName/networkGroups/TestNetworkGroup/staticMembers/TestSM +ResourceId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Network/virtualNetworks/vnet1 +Description : +Type : Microsoft.Network/networkManagers/networkGroups/staticMembers +Etag : +ProvisioningState : Succeeded + +Name : TestSM2 +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Network/networkManagers/TestNMName/networkGroups/TestNetworkGroup/staticMembers/TestSM2 +ResourceId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Network/virtualNetworks/vnet2 +Description : +Type : Microsoft.Network/networkManagers/networkGroups/staticMembers +Etag : +ProvisioningState : Succeeded +``` + + +#### Remove-AzNetworkManagerStaticMember + +#### SYNOPSIS +Removes a network manager static member. + +#### SYNTAX + +```powershell +Remove-AzNetworkManagerStaticMember -Name -NetworkGroupName -NetworkManagerName + -ResourceGroupName [-Force] [-PassThru] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzNetworkManagerStaticMember -Name "TestStaticMember" -NetworkManagerName "TestNMName" -ResourceGroupName "TestRG" -NetworkGroupName "TestNetworkGroup" +``` + +Removes a network manager static member. + + +#### New-AzNetworkManagerSubscriptionConnection + +#### SYNOPSIS +Creates a network manager subscription connection. + +#### SYNTAX + +```powershell +New-AzNetworkManagerSubscriptionConnection -Name -NetworkManagerId [-Description ] + [-AsJob] [-Force] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzNetworkManagerSubscriptionConnection -Name "subConnection" -NetworkManagerId "/subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager" -Description "SampleDescription" +``` + +```output +NetworkManagerId : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager +ConnectionState : Pending +DisplayName : +Description : SampleDescription +Type : Microsoft.Network/networkManagerConnections +ProvisioningState : +SystemData : +SystemDataText : null +Name : subConnection +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/providers/Microsoft.Network/networkManagerConnections/subConnection +``` + +Creates a network manager connection to a subscription. + + +#### Get-AzNetworkManagerSubscriptionConnection + +#### SYNOPSIS +Gets a network manager subscription connection. + +#### SYNTAX + ++ NoExpand (Default) +```powershell +Get-AzNetworkManagerSubscriptionConnection [-Name ] [-DefaultProfile ] + [] +``` + ++ Expand +```powershell +Get-AzNetworkManagerSubscriptionConnection -Name [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzNetworkManagerSubscriptionConnection -Name "subConnection" +``` + +```output +NetworkManagerId : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager +ConnectionState : Conflict +DisplayName : +Description : new description +Type : Microsoft.Network/networkManagerConnections +ProvisioningState : +SystemData : +SystemDataText : null +Name : subConnection +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/providers/Microsoft.Network/networkManagerConnections/subConnection +``` + +Gets a network manager connection on a subscription. + ++ Example 2 +```powershell +Get-AzNetworkManagerSubscriptionConnection +``` + +```output +NetworkManagerId : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager +ConnectionState : Conflict +DisplayName : +Description : new description +Type : Microsoft.Network/networkManagerConnections +ProvisioningState : +SystemData : +SystemDataText : null +Name : subConnection +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/providers/Microsoft.Network/networkManagerConnections/subConnection + +NetworkManagerId : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager2 +ConnectionState : Conflict +DisplayName : +Description : SampleDescription +Type : Microsoft.Network/networkManagerConnections +ProvisioningState : +SystemData : +SystemDataText : null +Name : subConnection2 +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/providers/Microsoft.Network/networkManagerConnections/subConnection2 +``` + +Gets all network manager connections on a subscription. + + +#### Remove-AzNetworkManagerSubscriptionConnection + +#### SYNOPSIS +Remove a network manager subscription connection. + +#### SYNTAX + +```powershell +Remove-AzNetworkManagerSubscriptionConnection -Name [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzNetworkManagerSubscriptionConnection -Name psNetworkManagerConnection +``` + +Removes a network manager subscription connection. + + +#### Set-AzNetworkManagerSubscriptionConnection + +#### SYNOPSIS +Update a network manager subscription connection. + +#### SYNTAX + +```powershell +Set-AzNetworkManagerSubscriptionConnection -InputObject [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$networkManagerConnection = Get-AzNetworkManagerSubscriptionConnection -Name "subConnection" +$networkManagerConnection.description = " new description" +Set-AzNetworkManagerSubscriptionConnection -InputObject $networkManagerConnection +``` + +```output +NetworkManagerId : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/psResourceGroup/providers/Microsoft.Network/networkManagers/psNetworkManager +ConnectionState : Conflict +DisplayName : +Description : new description +Type : Microsoft.Network/networkManagerConnections +ProvisioningState : +SystemData : +SystemDataText : null +Name : subConnection +Etag : +Id : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/providers/Microsoft.Network/networkManagerConnections/subConnection +``` + +Updates a network manager subscription connection description. + + +#### New-AzNetworkManagerVerifierWorkspace + +#### SYNOPSIS +To create network manager verifier workspace. + +#### SYNTAX + +```powershell +New-AzNetworkManagerVerifierWorkspace -Name -NetworkManagerName -ResourceGroupName + -Location [-Description ] [-Tag ] [-Force] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzNetworkManagerVerifierWorkspace -Name "testVerifierWorkspace10" -NetworkManagerName "testNM" -ResourceGroupName "testRG" -Location "eastus2euap " +``` + +```output +Location : eastus2euap +Tags : +Properties : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSVerifierWorkspaceProperties +TagsTable : +PropertiesText : { + "ProvisioningState": "Succeeded" + } +Name : testVerifierWorkspace10 +ResourceGroupName : testRG +NetworkManagerName : testNM +Type : Microsoft.Network/networkManagers/verifierWorkspaces +Etag : "\"00000000-0000-0000-0000-000000000000\"" +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "test@email.com", + "CreatedByType": "User", + "CreatedAt": "2024-10-12T17:17:22.4851889Z", + "LastModifiedBy": "test@email.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2024-10-12T17:17:22.4851889Z" + } +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Network/networkManagers/testNM/verifierWork + spaces/testVerifierWorkspace10 +``` + +Created a new network manager verifier workspace of name 'testVerifierWorkspace10'. + + +#### Get-AzNetworkManagerVerifierWorkspace + +#### SYNOPSIS +To get network manager verifier workspace + +#### SYNTAX + ++ ByList (Default) +```powershell +Get-AzNetworkManagerVerifierWorkspace -NetworkManagerName -ResourceGroupName + [-DefaultProfile ] [] +``` + ++ ByName +```powershell +Get-AzNetworkManagerVerifierWorkspace -Name -NetworkManagerName -ResourceGroupName + [-DefaultProfile ] [] +``` + ++ ByResourceId +```powershell +Get-AzNetworkManagerVerifierWorkspace -ResourceId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzNetworkManagerVerifierWorkspace -NetworkManagerName "testNM" -ResourceGroupName "testRG" +``` + +```output +Location : eastus2euap +Tags : {} +Properties : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSVerifierWorkspaceProperties +TagsTable : +PropertiesText : { + "ProvisioningState": "Succeeded", + "Description": "" + } +Name : AmeWorkspace +ResourceGroupName : testRG +NetworkManagerName : testNM +Type : Microsoft.Network/networkManagers/verifierWorkspaces +Etag : "\"00000000-0000-0000-0000-000000000000\"" +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "test@email.com", + "CreatedByType": "User", + "CreatedAt": "2024-04-08T22:14:28.9064474Z", + "LastModifiedBy": "test@email.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2024-04-08T22:14:28.9064474Z" + } +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsof + t.Network/networkManagers/testNM/verifierWorkspaces/AmeWorkspace + +Location : eastus2euap +Tags : {} +Properties : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSVerifierWorkspaceProperties +TagsTable : +PropertiesText : { + "ProvisioningState": "Succeeded", + "Description": "" + } +Name : ameWorkspace2 +ResourceGroupName : testRG +NetworkManagerName : testNM +Type : Microsoft.Network/networkManagers/verifierWorkspaces +Etag : "\"00000000-0000-0000-0000-000000000000\"" +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "test@email.com", + "CreatedByType": "User", + "CreatedAt": "2024-04-08T22:34:58.4212634Z", + "LastModifiedBy": "test@email.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2024-04-08T22:34:58.4212634Z" + } +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsof + t.Network/networkManagers/testNM/verifierWorkspaces/ameWorkspace2 + +Location : eastus2euap +Tags : {} +Properties : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSVerifierWorkspaceProperties +TagsTable : +PropertiesText : { + "ProvisioningState": "Succeeded", + "Description": "string" + } +Name : testworkspaceame1 +ResourceGroupName : testRG +NetworkManagerName : testNM +Type : Microsoft.Network/networkManagers/verifierWorkspaces +Etag : "\"00000000-0000-0000-0000-000000000000\"" +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "test@email.com", + "CreatedByType": "User", + "CreatedAt": "2024-04-08T23:02:36.3712Z", + "LastModifiedBy": "test@email.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2024-04-08T23:02:36.3712Z" + } +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsof + t.Network/networkManagers/testNM/verifierWorkspaces/testworkspaceame1 + +Location : eastus2euap +Tags : {} +Properties : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSVerifierWorkspaceProperties +TagsTable : +PropertiesText : { + "ProvisioningState": "Succeeded", + "Description": "" + } +Name : testVNV +ResourceGroupName : testRG +NetworkManagerName : testNM +Type : Microsoft.Network/networkManagers/verifierWorkspaces +Etag : "\"00000000-0000-0000-0000-000000000000\"" +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "test@email.com", + "CreatedByType": "User", + "CreatedAt": "2024-05-03T20:34:19.9181023Z", + "LastModifiedBy": "test@email.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2024-05-03T20:34:19.9181023Z" + } +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsof + t.Network/networkManagers/testNM/verifierWorkspaces/testVNV + +Location : eastus2euap +Tags : {} +Properties : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSVerifierWorkspaceProperties +TagsTable : +PropertiesText : { + "ProvisioningState": "Succeeded", + "Description": "string" + } +Name : testVerifierWorkspace5 +ResourceGroupName : testRG +NetworkManagerName : testNM +Type : Microsoft.Network/networkManagers/verifierWorkspaces +Etag : "\"00000000-0000-0000-0000-000000000000\"" +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "test@email.com", + "CreatedByType": "User", + "CreatedAt": "2024-01-30T16:25:07.4175577Z", + "LastModifiedBy": "test@email.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2024-01-30T16:25:07.4175577Z" + } +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsof + t.Network/networkManagers/testNM/verifierWorkspaces/testVerifierWorkspace5 + +Location : eastus2euap +Tags : {} +Properties : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSVerifierWorkspaceProperties +TagsTable : +PropertiesText : { + "ProvisioningState": "Succeeded", + "Description": "string" + } +Name : testVerifierWorkspace8 +ResourceGroupName : testRG +NetworkManagerName : testNM +Type : Microsoft.Network/networkManagers/verifierWorkspaces +Etag : "\"00000000-0000-0000-0000-000000000000\"" +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "LastModifiedBy": "test@email.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2024-02-15T23:35:24.1880643Z" + } +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsof + t.Network/networkManagers/testNM/verifierWorkspaces/testVerifierWorkspace8 + +Location : eastus2euap +Tags : {} +Properties : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSVerifierWorkspaceProperties +TagsTable : +PropertiesText : { + "ProvisioningState": "Succeeded", + "Description": "string" + } +Name : testVerifierWorkspace9 +ResourceGroupName : testRG +NetworkManagerName : testNM +Type : Microsoft.Network/networkManagers/verifierWorkspaces +Etag : "\"00000000-0000-0000-0000-000000000000\"" +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "test@email.com", + "CreatedByType": "User", + "CreatedAt": "2024-02-16T00:03:39.541236Z", + "LastModifiedBy": "test@email.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2024-02-16T00:24:13.1874766Z" + } +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsof + t.Network/networkManagers/testNM/verifierWorkspaces/testVerifierWorkspace9 +``` + +Gets all network manager verifier workspaces in network manager 'testNM'. + ++ Example 2 + +```powershell +Get-AzNetworkManagerVerifierWorkspace -Name "testVerifierWorkspace9" -NetworkManagerName "testNM" -ResourceGroupName "testRG" +``` + +```output +Location : eastus2euap +Tags : +Properties : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSVerifierWorkspaceProperties +TagsTable : +PropertiesText : { + "ProvisioningState": "Succeeded", + "Description": "string" + } +Name : testVerifierWorkspace9 +ResourceGroupName : testRG +NetworkManagerName : testNM +Type : Microsoft.Network/networkManagers/verifierWorkspaces +Etag : "\"00000000-0000-0000-0000-000000000000\"" +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "test@email.com", + "CreatedByType": "User", + "CreatedAt": "2024-02-16T00:03:39.541236Z", + "LastModifiedBy": "test@email.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2024-02-16T00:24:13.1874766Z" + } +Id : /subscriptions//00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsof + t.Network/networkManagers/testNM/verifierWorkspaces/testVerifierWorkspace9 +``` + +Gets the network manager verifier workspace of name'testVerifierWorkspace9'. + + +#### Remove-AzNetworkManagerVerifierWorkspace + +#### SYNOPSIS +To remove network manager verifier workspace. + +#### SYNTAX + ++ ByName (Default) +```powershell +Remove-AzNetworkManagerVerifierWorkspace -Name -NetworkManagerName + -ResourceGroupName [-Force] [-PassThru] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByInputObject +```powershell +Remove-AzNetworkManagerVerifierWorkspace -InputObject [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByResourceId +```powershell +Remove-AzNetworkManagerVerifierWorkspace -ResourceId [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzNetworkManagerVerifierWorkspace -Name "testVerifierWorkspace10" -NetworkManagerName "testNM" -ResourceGroupName "testRG" +``` + +```output +Confirm +Are you sure you want to remove resource 'testVerifierWorkspace10' +[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): Y +``` + +Removes the network manager verifier workspace 'testVerifierWorkspace10'. + + +#### Set-AzNetworkManagerVerifierWorkspace + +#### SYNOPSIS +To update network manager verifier workspace. + +#### SYNTAX + ++ ByInputObject (Default) +```powershell +Set-AzNetworkManagerVerifierWorkspace -InputObject [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByNameParameters +```powershell +Set-AzNetworkManagerVerifierWorkspace -Name -ResourceGroupName -NetworkManagerName + [-Description ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByResourceId +```powershell +Set-AzNetworkManagerVerifierWorkspace -ResourceId [-Description ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$verifierWorkspace = Get-AzNetworkManagerVerifierWorkspace -ResourceGroupName "testRG" -NetworkManagerName "testNM" -Name "AmeWorkspace" +$verifierWorkspace.Properties.Description = "Updated description" +Set-AzNetworkManagerVerifierWorkspace -InputObject $verifierWorkspace +``` + +```output +Location : eastus2euap +Tags : {} +Properties : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSVerifierWorkspaceProperties +TagsTable : +PropertiesText : { + "ProvisioningState": "Succeeded", + "Description": "Updated description" + } +Name : AmeWorkspace +ResourceGroupName : testRG +NetworkManagerName : testNM +Type : Microsoft.Network/networkManagers/verifierWorkspaces +Etag : "\"00000000-0000-0000-0000-000000000000\"" +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "test@email.com", + "CreatedByType": "User", + "CreatedAt": "2024-04-08T22:14:28.9064474Z", + "LastModifiedBy": "test@email.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2024-10-15T17:48:28.0902461Z" + } +Id : /subscriptions/00000000-0000-0000-0000-00000000000/resourceGroups/testRG/providers/Microsoft.Network/networkManagers/testNM/verifierWorkspaces/AmeWorkspace +``` + +Changed the description of the Verifier Workspace 'AmeWorkspace' to "Updated description" + ++ Example 2 +```powershell +$verifierWorkspace = Get-AzNetworkManagerVerifierWorkspace -ResourceGroupName "testRG" -NetworkManagerName "testNM" -Name "testVerifierWorkspace5" +$tags = [System.Collections.Generic.Dictionary[string, string]]::new() +$tags.Add("testTag", "test") +$verifierWorkspace.Tags = $tags +Set-AzNetworkManagerVerifierWorkspace -InputObject $verifierWorkspace +``` + +```output +Location : eastus2euap +Tags : {[testTag, test]} +Properties : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSVerifierWorkspaceProperties +TagsTable : + Name Value + ===== ===== + testTag test + +PropertiesText : { + "ProvisioningState": "Succeeded", + "Description": "string" + } +Name : testVerifierWorkspace5 +ResourceGroupName : testRG +NetworkManagerName : testNM +Type : Microsoft.Network/networkManagers/verifierWorkspaces +Etag : "\"00000000-0000-0000-0000-000000000000\"" +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "test@email.com", + "CreatedByType": "User", + "CreatedAt": "2024-01-30T16:25:07.4175577Z", + "LastModifiedBy": "test@email.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2024-10-15T18:00:26.5078204Z" + } +Id : /subscriptions/00000000-0000-0000-0000-00000000000/resourceGroups/testRG/providers/Microsoft.Network/networkManagers/testNM/verifierWorkspaces/testVerifierWorkspace5 +``` + +Added the tag of of name 'testTag' and value 'test' to the Verifier Workspace 'testVerifierWorkspace5' + + +#### New-AzNetworkManagerVerifierWorkspaceReachabilityAnalysisIntent + +#### SYNOPSIS +To create a new Network Manager Verifier Workspace Reachability Analysis Intent + +#### SYNTAX + +```powershell +New-AzNetworkManagerVerifierWorkspaceReachabilityAnalysisIntent [-Name ] -NetworkManagerName + -ResourceGroupName -VerifierWorkspaceName [-Description ] -SourceResourceId + -DestinationResourceId -IpTraffic [-Force] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$ipTraffic = New-AzNetworkManagerIPTraffic -SourceIp @("192.168.1.10") -DestinationIp @("172.16.0.5") -SourcePort @("100") -DestinationPort @("99") -Protocol @("TCP"); +New-AzNetworkManagerVerifierWorkspaceReachabilityAnalysisIntent -Name "analysisIntentTest24" -NetworkManagerName "testNM" -ResourceGroupName "testRG" -VerifierWorkspaceName "testVNV" -SourceResourceId "/subscriptions/00000000-0000-0000-0000-00000000000/resourceGroups/testRG/providers/Microsoft.Compute/virtualMachines/testVM" -DestinationResourceId "/subscriptions/00000000-0000-0000-0000-00000000000/resourceGroups/testRG/providers/Microsoft.Compute/virtualMachines/ipam-test-vm-integration-test" -IpTraffic $ipTraffic; +``` + +```output +Name : analysisIntentTest24 +VerifierWorkspaceName : testVNV +ResourceGroupName : testRG +NetworkManagerName : testNM +Properties : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSReachabilityAnalysisIntentProperties +Type : Microsoft.Network/networkManagers/verifierWorkspaces/reachabilityAnalysisIntents +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "test@email.com", + "CreatedByType": "User", + "CreatedAt": "2024-10-15T18:45:22.9301207Z", + "LastModifiedBy": "test@email.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2024-10-15T18:45:22.9301207Z" + } +Id : /subscriptions/00000000-0000-0000-0000-00000000000/resourceGroups/testRG/providers/Microsoft.Network/networkManagers/testNM/verifierWorkspaces/testVNV/reachabilityA + nalysisIntents/analysisIntentTest24 +``` + +Created a new Network Manager Verifier Workspace Reachability Analysis Intent + ++ Example 2 +```powershell +New-AzNetworkManagerVerifierWorkspaceReachabilityAnalysisIntent -Name "analysisIntentTest23" -NetworkManagerName "testNM" -ResourceGroupName "testRG" -VerifierWorkspaceName "testVNV" -SourceResourceId "/subscriptions/00000000-0000-0000-0000-00000000000/resourceGroups/testRG/providers/Microsoft.Compute/virtualMachines/testVM" -DestinationResourceId "/subscriptions/00000000-0000-0000-0000-00000000000/resourceGroups/testRG/providers/Microsoft.Compute/virtualMachines/ipam-test-vm-integration-test" -IpTraffic (New-AzNetworkManagerIPTraffic -SourceIp @("192.168.1.10") -DestinationIp @("172.16.0.5") -SourcePort @("100") -DestinationPort @("99") -Protocol @("TCP")) +``` + +```output +Name : analysisIntentTest23 +VerifierWorkspaceName : testVNV +ResourceGroupName : testRG +NetworkManagerName : testNM +Properties : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSReachabilityAnalysisIntentProperties +Type : Microsoft.Network/networkManagers/verifierWorkspaces/reachabilityAnalysisIntents +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "test@email.com", + "CreatedByType": "User", + "CreatedAt": "2024-10-15T18:47:37.9813771Z", + "LastModifiedBy": "test@email.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2024-10-15T18:47:37.9813771Z" + } +Id : /subscriptions/00000000-0000-0000-0000-00000000000/resourceGroups/testRG/providers/Microsoft.Network/networkManagers/testNM/verifierWorkspaces/testVNV/reachabilityA + nalysisIntents/analysisIntentTest23 +``` + +Created a new Network Manager Verifier Workspace Reachability Analysis Intent + + +#### Get-AzNetworkManagerVerifierWorkspaceReachabilityAnalysisIntent + +#### SYNOPSIS +To get network manager verifier workspace reachability analysis intent. + +#### SYNTAX + ++ ByList (Default) +```powershell +Get-AzNetworkManagerVerifierWorkspaceReachabilityAnalysisIntent -NetworkManagerName + -ResourceGroupName -VerifierWorkspaceName [-DefaultProfile ] + [] +``` + ++ ByName +```powershell +Get-AzNetworkManagerVerifierWorkspaceReachabilityAnalysisIntent [-Name ] -NetworkManagerName + -ResourceGroupName -VerifierWorkspaceName [-DefaultProfile ] + [] +``` + ++ ByResourceId +```powershell +Get-AzNetworkManagerVerifierWorkspaceReachabilityAnalysisIntent -ResourceId + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzNetworkManagerVerifierWorkspaceReachabilityAnalysisIntent -NetworkManagerName "testNM" -ResourceGroupName "testRG" -VerifierWorkspaceName "testVerifierWorkspace9" +``` + +```output +Name : testReachabilityAnalysisIntent5 +VerifierWorkspaceName : +ResourceGroupName : testRG +NetworkManagerName : testNM +Properties : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSReachabilityAnalysisIntentProperties +Type : Microsoft.Network/networkManagers/verifierWorkspaces/reachabilityAnalysisIntents +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "test@email.com", + "CreatedByType": "User", + "CreatedAt": "2024-02-16T00:03:44.5882378Z", + "LastModifiedBy": "test@email.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2024-02-16T00:03:44.5882378Z" + } +Id : /subscriptions//00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Micro + soft.Network/networkManagers/testNM/verifierWorkspaces/testVerifierWorkspace9/reachabilit + yAnalysisIntents/testReachabilityAnalysisIntent5 + +Name : testReachabilityAnalysisIntenant6 +VerifierWorkspaceName : +ResourceGroupName : testRG +NetworkManagerName : testNM +Properties : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSReachabilityAnalysisIntentProperties +Type : Microsoft.Network/networkManagers/verifierWorkspaces/reachabilityAnalysisIntents +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "test@email.com", + "CreatedByType": "User", + "CreatedAt": "2024-02-16T00:19:07.6430128Z", + "LastModifiedBy": "test@email.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2024-02-16T00:19:07.6430128Z" + } +Id : /subscriptions//00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Micro + soft.Network/networkManagers/testNM/verifierWorkspaces/testVerifierWorkspace9/reachabilit + yAnalysisIntents/testReachabilityAnalysisIntenant6 + +Name : testReachabilityAnalysisIntenant7 +VerifierWorkspaceName : +ResourceGroupName : testRG +NetworkManagerName : testNM +Properties : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSReachabilityAnalysisIntentProperties +Type : Microsoft.Network/networkManagers/verifierWorkspaces/reachabilityAnalysisIntents +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "test@email.com", + "CreatedByType": "User", + "CreatedAt": "2024-02-16T00:24:30.5939209Z", + "LastModifiedBy": "test@email.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2024-02-16T00:24:30.5939209Z" + } +Id : /subscriptions//00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Micro + soft.Network/networkManagers/testNM/verifierWorkspaces/testVerifierWorkspace9/reachabilit + yAnalysisIntents/testReachabilityAnalysisIntenant7 +``` + +Gets all Verifier Workspace Reachability Analysis Intents in workspace 'testVerifierWorkspace9' + ++ Example 2 + +```powershell +Get-AzNetworkManagerVerifierWorkspaceReachabilityAnalysisIntent -NetworkManagerName "testNM" -ResourceGroupName "testRG" -VerifierWorkspaceName "testVerifierWorkspace9" -Name "testReachabilityAnalysisIntenant7" +``` + +```output +Name : testReachabilityAnalysisIntenant7 +VerifierWorkspaceName : testVerifierWorkspace9 +ResourceGroupName : testRG +NetworkManagerName : testNM +Properties : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSReachabilityAnalysisIntentProperties +Type : Microsoft.Network/networkManagers/verifierWorkspaces/reachabilityAnalysisIntents +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "test@email.com", + "CreatedByType": "User", + "CreatedAt": "2024-02-16T00:24:30.5939209Z", + "LastModifiedBy": "test@email.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2024-02-16T00:24:30.5939209Z" + } +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Micro + soft.Network/networkManagers/testNM/verifierWorkspaces/testVerifierWorkspace9/reachabilit + yAnalysisIntents/testReachabilityAnalysisIntenant7 +``` + +Gets the Verifier Workspace Reachability Analysis Intent for 'testReachabilityAnalysisIntenant7' + + +#### Remove-AzNetworkManagerVerifierWorkspaceReachabilityAnalysisIntent + +#### SYNOPSIS +To remove network manager verifier workspace reachability analysis intent. + +#### SYNTAX + ++ ByName (Default) +```powershell +Remove-AzNetworkManagerVerifierWorkspaceReachabilityAnalysisIntent -Name -NetworkManagerName + -ResourceGroupName -VerifierWorkspaceName [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByInputObject +```powershell +Remove-AzNetworkManagerVerifierWorkspaceReachabilityAnalysisIntent -InputObject + [-Force] [-PassThru] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByResourceId +```powershell +Remove-AzNetworkManagerVerifierWorkspaceReachabilityAnalysisIntent -ResourceId [-Force] [-PassThru] + [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzNetworkManagerVerifierWorkspaceReachabilityAnalysisIntent -Name "ameIntent2" -NetworkManagerName "TestNM" -ResourceGroupName "TestRG" -VerifierWorkspaceName "AmeWorkspace" +``` + +```output +Confirm +Are you sure you want to remove resource 'ameIntent2' +[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): Y +``` + +Removed the Verifier Workspace Reachability Analysis Intent named 'ameIntent2'. + + +#### New-AzNetworkManagerVerifierWorkspaceReachabilityAnalysisRun + +#### SYNOPSIS +To create network manager verifier workspace reachability analysis run + +#### SYNTAX + +```powershell +New-AzNetworkManagerVerifierWorkspaceReachabilityAnalysisRun [-Name ] -NetworkManagerName + -ResourceGroupName -VerifierWorkspaceName [-Description ] -IntentId + [-Force] [-AsJob] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzNetworkManagerVerifierWorkspaceReachabilityAnalysisRun -ResourceGroupName "testRG" -VerifierWorkspaceName "paigeVNV" -Name "TestReachabilityAnalysisRun3" -NetworkManagerName "testNM" -IntentId "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Network/networkManagers/testNM/verifierWorkspaces/paigeVNV/reachabilityAnalysisIntents/test" +``` + +```output +Name : TestReachabilityAnalysisRun3 +VerifierWorkspaceName : paigeVNV +ResourceGroupName : testRG +NetworkManagerName : testNM +Properties : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSReachabilityAnalysisRunProperties +Type : Microsoft.Network/networkManagers/verifierWorkspaces/reachabilityAnalysisRuns +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "test@email.com", + "CreatedByType": "User", + "CreatedAt": "2024-10-12T17:55:25.4518154Z", + "LastModifiedBy": "test@email.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2024-10-12T17:55:25.4518154Z" + } +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Network/networkManagers/testNM/verifierW + orkspaces/paigeVNV/reachabilityAnalysisRuns/TestReachabilityAnalysisRun3 +``` + +Created a new network manager verifier workspace reachability analysis run named TestReachabilityAnalysisRun3 + + +#### Get-AzNetworkManagerVerifierWorkspaceReachabilityAnalysisRun + +#### SYNOPSIS +To get network manager verifier workspace reachability analysis run. + +#### SYNTAX + ++ ByList (Default) +```powershell +Get-AzNetworkManagerVerifierWorkspaceReachabilityAnalysisRun -NetworkManagerName + -ResourceGroupName -VerifierWorkspaceName [-DefaultProfile ] + [] +``` + ++ ByName +```powershell +Get-AzNetworkManagerVerifierWorkspaceReachabilityAnalysisRun [-Name ] -NetworkManagerName + -ResourceGroupName -VerifierWorkspaceName [-DefaultProfile ] + [] +``` + ++ ByResourceId +```powershell +Get-AzNetworkManagerVerifierWorkspaceReachabilityAnalysisRun -ResourceId + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzNetworkManagerVerifierWorkspaceReachabilityAnalysisRun -NetworkManagerName "testNM" -ResourceGroupName "testRG" -VerifierWorkspaceName "testVNV" +``` + +```output +Name : testAsyncOpBehvaiorRun +VerifierWorkspaceName : +ResourceGroupName : testRG +NetworkManagerName : testNM +Properties : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSReachabilityAnalysisRunProperties +Type : Microsoft.Network/networkManagers/verifierWorkspaces/reachabilityAnalysisRuns +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "test@email.com", + "CreatedByType": "User", + "CreatedAt": "2024-09-05T19:39:38.2563968Z", + "LastModifiedBy": "test@email.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2024-09-05T19:40:01.1132044Z" + } +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Network/networkManagers/testNM/verifierW + orkspaces/testVNV/reachabilityAnalysisRuns/testAsyncOpBehvaiorRun + +Name : testrun +VerifierWorkspaceName : +ResourceGroupName : testRG +NetworkManagerName : testNM +Properties : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSReachabilityAnalysisRunProperties +Type : Microsoft.Network/networkManagers/verifierWorkspaces/reachabilityAnalysisRuns +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "test@email.com", + "CreatedByType": "User", + "CreatedAt": "2024-09-19T16:01:54.313026Z", + "LastModifiedBy": "test@email.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2024-09-19T16:02:07.4222816Z" + } +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Network/networkManagers/testNM/verifierW + orkspaces/testVNV/reachabilityAnalysisRuns/testrun + +Name : testrun1 +VerifierWorkspaceName : +ResourceGroupName : testRG +NetworkManagerName : testNM +Properties : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSReachabilityAnalysisRunProperties +Type : Microsoft.Network/networkManagers/verifierWorkspaces/reachabilityAnalysisRuns +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "test@email.com", + "CreatedByType": "User", + "CreatedAt": "2024-09-19T16:04:57.7083709Z", + "LastModifiedBy": "test@email.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2024-09-19T16:05:08.4340122Z" + } +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Network/networkManagers/testNM/verifierW + orkspaces/testVNV/reachabilityAnalysisRuns/testrun1 + +Name : testrun2 +VerifierWorkspaceName : +ResourceGroupName : testRG +NetworkManagerName : testNM +Properties : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSReachabilityAnalysisRunProperties +Type : Microsoft.Network/networkManagers/verifierWorkspaces/reachabilityAnalysisRuns +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "test@email.com", + "CreatedByType": "User", + "CreatedAt": "2024-09-19T16:07:08.2595595Z", + "LastModifiedBy": "test@email.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2024-09-19T16:07:18.9324364Z" + } +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Network/networkManagers/testNM/verifierW + orkspaces/testVNV/reachabilityAnalysisRuns/testrun2 + +Name : testrun3 +VerifierWorkspaceName : +ResourceGroupName : testRG +NetworkManagerName : testNM +Properties : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSReachabilityAnalysisRunProperties +Type : Microsoft.Network/networkManagers/verifierWorkspaces/reachabilityAnalysisRuns +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "test@email.com", + "CreatedByType": "User", + "CreatedAt": "2024-09-19T16:08:38.3602762Z", + "LastModifiedBy": "test@email.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2024-09-19T16:08:50.960041Z" + } +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Network/networkManagers/testNM/verifierW + orkspaces/testVNV/reachabilityAnalysisRuns/testrun3 + +Name : testrunfan1 +VerifierWorkspaceName : +ResourceGroupName : testRG +NetworkManagerName : testNM +Properties : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSReachabilityAnalysisRunProperties +Type : Microsoft.Network/networkManagers/verifierWorkspaces/reachabilityAnalysisRuns +SystemData : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSSystemData +SystemDataText : { + "CreatedBy": "test@email.com", + "CreatedByType": "User", + "CreatedAt": "2024-09-19T21:03:46.2977531Z", + "LastModifiedBy": "test@email.com", + "LastModifiedByType": "User", + "LastModifiedAt": "2024-09-19T21:03:59.9659393Z" + } +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Network/networkManagers/testNM/verifierW + orkspaces/testVNV/reachabilityAnalysisRuns/testrunfan1 +``` + +Gets list of network manager verifier workspace reachability analysis runs for 'testVNV' verifier workspace. + ++ Example 2 +```powershell +$run = Get-AzNetworkManagerVerifierWorkspaceReachabilityAnalysisRun -NetworkManagerName "NetworkManagerTest" -ResourceGroupName "ResourceGroupTest" -VerifierWorkspaceName "VNVTest" -Name "demorun" +$run.Properties +``` + +```output +Description : +IntentId : /subscriptions/f0dc2b34-dfad-40e4-83e0-2309fed8d00b/resourceGroups/ResourceGroupTest/providers/Microsoft.Netw + ork/networkManagers/NetworkManagerTest/verifierWorkspaces/VNVTest/reachabilityAnalysisIntents/demoIntent1 +IntentContent : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSIntentContent +AnalysisResult : {"resultOutcome":"NoPacketsReached","unreachedTrace":"[{\"name\":\"default\",\"resourceId\":\"/subscri + ptions/00000000-0000-0000-0000-000000000000/resourceGroups/testResources/providers/Microso + ft.Network/virtualNetworks/vnetVerifierTesting-vnet/subnets/default\",\"resourceType\":\"Microsoft.Net + work/virtualNetworks/subnets\",\"packet\":{\"destinationAddress\":\"::\",\"destinationPort\":\"0\",\"s + ourceAddress\":\"::\",\"sourcePort\":\"0\",\"protocol\":\"TCP\"},\"explanation\":{\"description\":\"Pa + cked dropped at subnet as subnet does not have a ip prefix for the analysis IP + version.\",\"explanationCode\":\"NO_SUBNET_PREFIX\"}}]"} +ErrorMessage : +``` + +```powershell +$run.Properties.IntentContent.IpTraffic | Format-List * +``` + +```output +SourceResourceId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testResources/providers/Microsoft.Network/virtualNetworks/vnetVerifi + erTesting-vnet/subnets/default +DestinationResourceId : internet +IpTraffic : Microsoft.Azure.Commands.Network.Models.NetworkManager.PSIPTraffic +IntentContentText : { + "SourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testResources/providers/Microsoft.Network/vir + tualNetworks/vnetVerifierTesting-vnet/subnets/default", + "DestinationResourceId": "internet", + "IpTraffic": { + "SourceIps": [ + "::" + ], + "DestinationIps": [ + "::" + ], + "SourcePorts": [ + "*" + ], + "DestinationPorts": [ + "*" + ], + "Protocols": [ + "TCP" + ] + } + } +``` + +```powershell +$run.Properties.IntentContent.IpTraffic | Format-List * +``` + +```output +SourceIps : {::} +DestinationIps : {::} +SourcePorts : {*} +DestinationPorts : {*} +Protocols : {TCP} +IpTrafficText : { + "SourceIps": [ + "::" + ], + "DestinationIps": [ + "::" + ], + "SourcePorts": [ + "*" + ], + "DestinationPorts": [ + "*" + ], + "Protocols": [ + "TCP" + ] + } +``` + +Gets network manager verifier workspace reachability analysis run for 'testrun'. + + +#### Remove-AzNetworkManagerVerifierWorkspaceReachabilityAnalysisRun + +#### SYNOPSIS +To remove network manager verifier workspace reachability analysis run. + +#### SYNTAX + ++ ByName (Default) +```powershell +Remove-AzNetworkManagerVerifierWorkspaceReachabilityAnalysisRun -Name -NetworkManagerName + -ResourceGroupName -VerifierWorkspaceName [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByInputObject +```powershell +Remove-AzNetworkManagerVerifierWorkspaceReachabilityAnalysisRun -InputObject + [-Force] [-PassThru] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByResourceId +```powershell +Remove-AzNetworkManagerVerifierWorkspaceReachabilityAnalysisRun -ResourceId [-Force] [-PassThru] + [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzNetworkManagerVerifierWorkspaceReachabilityAnalysisRun -Name TestReachabilityAnalysisRun3 -NetworkManagerName "testNM" -ResourceGroupName "testRG" -VerifierWorkspaceName "testVNV" +``` + +```output +Confirm +Are you sure you want to remove resource 'TestReachabilityAnalysisRun3' +[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): Y +``` + +Removed the network manager verifier workspace reachability analysis run 'TestReachabilityAnalysisRun3'. + + +#### New-AzNetworkProfile + +#### SYNOPSIS +Creates a new network profile. + +#### SYNTAX + +```powershell +New-AzNetworkProfile -ResourceGroupName -Name [-Location ] [-Tag ] + [-ContainerNicConfig ] [-Force] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$networkProfile = New-AzNetworkProfile -Name np1 -ResourceGroupName rg1 -Location westus +``` + +This creates a new network profile top level resource + ++ Example 2 + +Creates a new network profile. (autogenerated) + + + + +```powershell +New-AzNetworkProfile -ContainerNicConfig -Location 'West US' -Name np1 -ResourceGroupName rg1 +``` + + +#### Get-AzNetworkProfile + +#### SYNOPSIS +Gets an existing network profile top level resource + +#### SYNTAX + ++ GetByResourceNameNoExpandParameterSet (Default) +```powershell +Get-AzNetworkProfile [-ResourceGroupName ] [-Name ] [-DefaultProfile ] + [] +``` + ++ GetByResourceNameExpandParameterSet +```powershell +Get-AzNetworkProfile -ResourceGroupName -Name -ExpandResource + [-DefaultProfile ] [] +``` + ++ GetByResourceIdExpandParameterSet +```powershell +Get-AzNetworkProfile -ResourceId -ExpandResource [-DefaultProfile ] + [] +``` + ++ GetByResourceIdNoExpandParameterSet +```powershell +Get-AzNetworkProfile -ResourceId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$networkProfile = Get-AzNetworkProfile -Name np1 -ResourceGroupName rg1 +``` + +```output +ProvisioningState : Succeeded +ContainerNetworkInterfaces : {} +ContainerNetworkInterfaceConfigurations : {} +ContainerNetworkInterfacesText : [] +ContainerNetworkInterfaceConfigurationsText : [] +ResourceGroupName : rg1 +Location : westus +ResourceGuid : 00000000-0000-0000-0000-000000000000 +Type : Microsoft.Network/networkProfiles +Tag : +TagsTable : +Name : np1 +Etag : W/"00000000-0000-0000-0000-000000000000" +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1 + /providers/Microsoft.Network/networkProfiles/np1 +``` + +This retrieves the network profile np1 in resource group rg1 + ++ Example 2 +```powershell +$networkProfile = Get-AzNetworkProfile -Name np* +``` + +```output +ProvisioningState : Succeeded +ContainerNetworkInterfaces : {} +ContainerNetworkInterfaceConfigurations : {} +ContainerNetworkInterfacesText : [] +ContainerNetworkInterfaceConfigurationsText : [] +ResourceGroupName : rg1 +Location : westus +ResourceGuid : 00000000-0000-0000-0000-000000000000 +Type : Microsoft.Network/networkProfiles +Tag : +TagsTable : +Name : np1 +Etag : W/"00000000-0000-0000-0000-000000000000" +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1 + /providers/Microsoft.Network/networkProfiles/np1 + +ProvisioningState : Succeeded +ContainerNetworkInterfaces : {} +ContainerNetworkInterfaceConfigurations : {} +ContainerNetworkInterfacesText : [] +ContainerNetworkInterfaceConfigurationsText : [] +ResourceGroupName : rg1 +Location : westus +ResourceGuid : 00000000-0000-0000-0000-000000000000 +Type : Microsoft.Network/networkProfiles +Tag : +TagsTable : +Name : np2 +Etag : W/"00000000-0000-0000-0000-000000000000" +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1 + /providers/Microsoft.Network/networkProfiles/np2 +``` + +This retrieves the network profiles that start with "np" + + +#### Remove-AzNetworkProfile + +#### SYNOPSIS +Removes a network profile. + +#### SYNTAX + ++ RemoveByNameParameterSet (Default) +```powershell +Remove-AzNetworkProfile -ResourceGroupName -Name [-Force] [-AsJob] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ RemoveByResourceIdParameterSet +```powershell +Remove-AzNetworkProfile -ResourceId [-Force] [-AsJob] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ RemoveByInputObjectParameterSet +```powershell +Remove-AzNetworkProfile -InputObject [-Force] [-AsJob] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzNetworkProfile -Name np1 -ResourceGroupName rg1 +``` + +This removes the network profile with name np1 from the resource group rg1. + + +#### Set-AzNetworkProfile + +#### SYNOPSIS +Updates a network profile. + +#### SYNTAX + +```powershell +Set-AzNetworkProfile -NetworkProfile [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$networkProfile = Get-AzNetworkProfile -Name np1 -ResourceGroupName rg1 + +$networkProfile.Tags = "TestTag" + +$networkProfile.ContainerNetworkInterfaceConfigurations = New-AzContainerNicConfig -Name cnicconfig1 + +$networkProfile | Set-AzNetworkProfile +``` + +The first command gets an existing network profile. The second command updates a tag and the third adds a network interface configuration on the network profile. The fourth command updates the network profile. + + +#### New-AzNetworkSecurityGroup + +#### SYNOPSIS +Creates a network security group. + +#### SYNTAX + +```powershell +New-AzNetworkSecurityGroup -Name -ResourceGroupName -Location [-FlushConnection] + [-SecurityRules ] [-Tag ] [-Force] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Create a new network security group +```powershell +New-AzNetworkSecurityGroup -Name "nsg1" -ResourceGroupName "rg1" -Location "westus" +``` + +This command creates a new Azure network security group named "nsg1" in resource group "rg1" in location "westus". + ++ Example 2: Create a detailed network security group +```powershell +$rule1 = New-AzNetworkSecurityRuleConfig -Name rdp-rule -Description "Allow RDP" ` + -Access Allow -Protocol Tcp -Direction Inbound -Priority 100 -SourceAddressPrefix ` + Internet -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 3389 + +$rule2 = New-AzNetworkSecurityRuleConfig -Name web-rule -Description "Allow HTTP" ` + -Access Allow -Protocol Tcp -Direction Inbound -Priority 101 -SourceAddressPrefix ` + Internet -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 80 + +$nsg = New-AzNetworkSecurityGroup -ResourceGroupName TestRG -Location westus -Name ` + "NSG-FrontEnd" -SecurityRules $rule1,$rule2 +``` + +Step:1 Create a security rule allowing access from the Internet to port 3389.
+Step:2 Create a security rule allowing access from the Internet to port 80.
+Step:3 Add the rules created above to a new NSG named NSG-FrontEnd.
+ ++ Example 3: Create a new network security group with flush connection +```powershell +New-AzNetworkSecurityGroup -Name "nsg1" -ResourceGroupName "rg1" -Location "westus" -FlushConnection +``` + +This command creates a new Azure network security group named "nsg1" in resource group "rg1" in location "westus" and enables flushing of connection. + + +#### Get-AzNetworkSecurityGroup + +#### SYNOPSIS +Gets a network security group. + +#### SYNTAX + ++ NoExpand +```powershell +Get-AzNetworkSecurityGroup [-Name ] [-ResourceGroupName ] + [-DefaultProfile ] [] +``` + ++ Expand +```powershell +Get-AzNetworkSecurityGroup -Name -ResourceGroupName -ExpandResource + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Retrieve an existing network security group +```powershell +Get-AzNetworkSecurityGroup -Name nsg1 -ResourceGroupName "rg1" +``` + +```output +Name : nsg1 +ResourceGroupName : rg1 +Location : eastus +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/provider + s/Microsoft.Network/networkSecurityGroups/nsg1 +Etag : W/"00000000-0000-0000-0000-000000000000" +ResourceGuid : 00000000-0000-0000-0000-000000000000 +ProvisioningState : Succeeded +Tags : +FlushConnection : False +SecurityRules : [] +DefaultSecurityRules : [ + { + "Name": "AllowVnetInBound", + "Etag": "W/\"00000000-0000-0000-0000-000000000000\"", + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/provide + rs/Microsoft.Network/networkSecurityGroups/nsg1/defaultSecurityRules/AllowVnetInBound", + "Description": "Allow inbound traffic from all VMs in VNET", + "Protocol": "*", + "SourcePortRange": [ + "*" + ], + "DestinationPortRange": [ + "*" + ], + "SourceAddressPrefix": [ + "VirtualNetwork" + ], + "DestinationAddressPrefix": [ + "VirtualNetwork" + ], + "Access": "Allow", + "Priority": 65000, + "Direction": "Inbound", + "ProvisioningState": "Succeeded", + "SourceApplicationSecurityGroups": [], + "DestinationApplicationSecurityGroups": [] + }, + { + "Name": "AllowAzureLoadBalancerInBound", + "Etag": "W/\"00000000-0000-0000-0000-000000000000\"", + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/provide + rs/Microsoft.Network/networkSecurityGroups/nsg1/defaultSecurityRules/AllowAzureLoadBalancerInBou + nd", + "Description": "Allow inbound traffic from azure load balancer", + "Protocol": "*", + "SourcePortRange": [ + "*" + ], + "DestinationPortRange": [ + "*" + ], + "SourceAddressPrefix": [ + "AzureLoadBalancer" + ], + "DestinationAddressPrefix": [ + "*" + ], + "Access": "Allow", + "Priority": 65001, + "Direction": "Inbound", + "ProvisioningState": "Succeeded", + "SourceApplicationSecurityGroups": [], + "DestinationApplicationSecurityGroups": [] + }, + { + "Name": "DenyAllInBound", + "Etag": "W/\"00000000-0000-0000-0000-000000000000\"", + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/provide + rs/Microsoft.Network/networkSecurityGroups/nsg1/defaultSecurityRules/DenyAllInBound", + "Description": "Deny all inbound traffic", + "Protocol": "*", + "SourcePortRange": [ + "*" + ], + "DestinationPortRange": [ + "*" + ], + "SourceAddressPrefix": [ + "*" + ], + "DestinationAddressPrefix": [ + "*" + ], + "Access": "Deny", + "Priority": 65500, + "Direction": "Inbound", + "ProvisioningState": "Succeeded", + "SourceApplicationSecurityGroups": [], + "DestinationApplicationSecurityGroups": [] + }, + { + "Name": "AllowVnetOutBound", + "Etag": "W/\"00000000-0000-0000-0000-000000000000\"", + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/provide + rs/Microsoft.Network/networkSecurityGroups/nsg1/defaultSecurityRules/AllowVnetOutBound", + "Description": "Allow outbound traffic from all VMs to all VMs in VNET", + "Protocol": "*", + "SourcePortRange": [ + "*" + ], + "DestinationPortRange": [ + "*" + ], + "SourceAddressPrefix": [ + "VirtualNetwork" + ], + "DestinationAddressPrefix": [ + "VirtualNetwork" + ], + "Access": "Allow", + "Priority": 65000, + "Direction": "Outbound", + "ProvisioningState": "Succeeded", + "SourceApplicationSecurityGroups": [], + "DestinationApplicationSecurityGroups": [] + }, + { + "Name": "AllowInternetOutBound", + "Etag": "W/\"00000000-0000-0000-0000-000000000000\"", + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/provide + rs/Microsoft.Network/networkSecurityGroups/nsg1/defaultSecurityRules/AllowInternetOutBound", + "Description": "Allow outbound traffic from all VMs to Internet", + "Protocol": "*", + "SourcePortRange": [ + "*" + ], + "DestinationPortRange": [ + "*" + ], + "SourceAddressPrefix": [ + "*" + ], + "DestinationAddressPrefix": [ + "Internet" + ], + "Access": "Allow", + "Priority": 65001, + "Direction": "Outbound", + "ProvisioningState": "Succeeded", + "SourceApplicationSecurityGroups": [], + "DestinationApplicationSecurityGroups": [] + }, + { + "Name": "DenyAllOutBound", + "Etag": "W/\"00000000-0000-0000-0000-000000000000\"", + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/provide + rs/Microsoft.Network/networkSecurityGroups/nsg1/defaultSecurityRules/DenyAllOutBound", + "Description": "Deny all outbound traffic", + "Protocol": "*", + "SourcePortRange": [ + "*" + ], + "DestinationPortRange": [ + "*" + ], + "SourceAddressPrefix": [ + "*" + ], + "DestinationAddressPrefix": [ + "*" + ], + "Access": "Deny", + "Priority": 65500, + "Direction": "Outbound", + "ProvisioningState": "Succeeded", + "SourceApplicationSecurityGroups": [], + "DestinationApplicationSecurityGroups": [] + } + ] +NetworkInterfaces : [] +Subnets : [] +``` + +This command returns contents of Azure network security group "nsg1" in resource group "rg1" + ++ Example 2: List existing network security groups using filtering +```powershell +Get-AzNetworkSecurityGroup -Name nsg* +``` + +```output +Name : nsg1 +ResourceGroupName : rg1 +Location : eastus +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/provider + s/Microsoft.Network/networkSecurityGroups/nsg1 +Etag : W/"00000000-0000-0000-0000-000000000000" +ResourceGuid : 00000000-0000-0000-0000-000000000000 +ProvisioningState : Succeeded +Tags : +FlushConnection : False +SecurityRules : [] +DefaultSecurityRules : [ + { + "Name": "AllowVnetInBound", + "Etag": "W/\"00000000-0000-0000-0000-000000000000\"", + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/provide + rs/Microsoft.Network/networkSecurityGroups/nsg1/defaultSecurityRules/AllowVnetInBound", + "Description": "Allow inbound traffic from all VMs in VNET", + "Protocol": "*", + "SourcePortRange": [ + "*" + ], + "DestinationPortRange": [ + "*" + ], + "SourceAddressPrefix": [ + "VirtualNetwork" + ], + "DestinationAddressPrefix": [ + "VirtualNetwork" + ], + "Access": "Allow", + "Priority": 65000, + "Direction": "Inbound", + "ProvisioningState": "Succeeded", + "SourceApplicationSecurityGroups": [], + "DestinationApplicationSecurityGroups": [] + }, + { + "Name": "AllowAzureLoadBalancerInBound", + "Etag": "W/\"00000000-0000-0000-0000-000000000000\"", + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/provide + rs/Microsoft.Network/networkSecurityGroups/nsg1/defaultSecurityRules/AllowAzureLoadBalancerInBou + nd", + "Description": "Allow inbound traffic from azure load balancer", + "Protocol": "*", + "SourcePortRange": [ + "*" + ], + "DestinationPortRange": [ + "*" + ], + "SourceAddressPrefix": [ + "AzureLoadBalancer" + ], + "DestinationAddressPrefix": [ + "*" + ], + "Access": "Allow", + "Priority": 65001, + "Direction": "Inbound", + "ProvisioningState": "Succeeded", + "SourceApplicationSecurityGroups": [], + "DestinationApplicationSecurityGroups": [] + }, + { + "Name": "DenyAllInBound", + "Etag": "W/\"00000000-0000-0000-0000-000000000000\"", + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/provide + rs/Microsoft.Network/networkSecurityGroups/nsg1/defaultSecurityRules/DenyAllInBound", + "Description": "Deny all inbound traffic", + "Protocol": "*", + "SourcePortRange": [ + "*" + ], + "DestinationPortRange": [ + "*" + ], + "SourceAddressPrefix": [ + "*" + ], + "DestinationAddressPrefix": [ + "*" + ], + "Access": "Deny", + "Priority": 65500, + "Direction": "Inbound", + "ProvisioningState": "Succeeded", + "SourceApplicationSecurityGroups": [], + "DestinationApplicationSecurityGroups": [] + }, + { + "Name": "AllowVnetOutBound", + "Etag": "W/\"00000000-0000-0000-0000-000000000000\"", + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/provide + rs/Microsoft.Network/networkSecurityGroups/nsg1/defaultSecurityRules/AllowVnetOutBound", + "Description": "Allow outbound traffic from all VMs to all VMs in VNET", + "Protocol": "*", + "SourcePortRange": [ + "*" + ], + "DestinationPortRange": [ + "*" + ], + "SourceAddressPrefix": [ + "VirtualNetwork" + ], + "DestinationAddressPrefix": [ + "VirtualNetwork" + ], + "Access": "Allow", + "Priority": 65000, + "Direction": "Outbound", + "ProvisioningState": "Succeeded", + "SourceApplicationSecurityGroups": [], + "DestinationApplicationSecurityGroups": [] + }, + { + "Name": "AllowInternetOutBound", + "Etag": "W/\"00000000-0000-0000-0000-000000000000\"", + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/provide + rs/Microsoft.Network/networkSecurityGroups/nsg1/defaultSecurityRules/AllowInternetOutBound", + "Description": "Allow outbound traffic from all VMs to Internet", + "Protocol": "*", + "SourcePortRange": [ + "*" + ], + "DestinationPortRange": [ + "*" + ], + "SourceAddressPrefix": [ + "*" + ], + "DestinationAddressPrefix": [ + "Internet" + ], + "Access": "Allow", + "Priority": 65001, + "Direction": "Outbound", + "ProvisioningState": "Succeeded", + "SourceApplicationSecurityGroups": [], + "DestinationApplicationSecurityGroups": [] + }, + { + "Name": "DenyAllOutBound", + "Etag": "W/\"00000000-0000-0000-0000-000000000000\"", + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/provide + rs/Microsoft.Network/networkSecurityGroups/nsg1/defaultSecurityRules/DenyAllOutBound", + "Description": "Deny all outbound traffic", + "Protocol": "*", + "SourcePortRange": [ + "*" + ], + "DestinationPortRange": [ + "*" + ], + "SourceAddressPrefix": [ + "*" + ], + "DestinationAddressPrefix": [ + "*" + ], + "Access": "Deny", + "Priority": 65500, + "Direction": "Outbound", + "ProvisioningState": "Succeeded", + "SourceApplicationSecurityGroups": [], + "DestinationApplicationSecurityGroups": [] + } + ] +NetworkInterfaces : [] +Subnets : [] +``` + +This command returns contents of Azure network security groups that start with "nsg" + + +#### Remove-AzNetworkSecurityGroup + +#### SYNOPSIS +Removes a network security group. + +#### SYNTAX + +```powershell +Remove-AzNetworkSecurityGroup -Name -ResourceGroupName [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Remove a network security group +```powershell +Remove-AzNetworkSecurityGroup -Name "NSG-FrontEnd" -ResourceGroupName "TestRG" +``` + +This command removes the security group named NSG-FrontEnd in the resource group named TestRG. + + +#### Set-AzNetworkSecurityGroup + +#### SYNOPSIS +Updates a network security group. + +#### SYNTAX + +```powershell +Set-AzNetworkSecurityGroup -NetworkSecurityGroup [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Update an existing network security group +```powershell +Get-AzNetworkSecurityGroup -Name "Nsg1" -ResourceGroupName "Rg1" | Add-AzNetworkSecurityRuleConfig -Name "Rdp-Rule" -Description "Allow RDP" -Access "Allow" -Protocol "Tcp" -Direction "Inbound" -Priority 100 -SourceAddressPrefix "Internet" -SourcePortRange "*" -DestinationAddressPrefix "*" -DestinationPortRange "3389" | Set-AzNetworkSecurityGroup +``` + +This command gets the Azure network security group named Nsg1, and adds a network security rule named Rdp-Rule to allow Internet traffic on port 3389 to the retrieved network security group object using Add-AzNetworkSecurityRuleConfig. +The command persists the modified Azure network security group using **Set-AzNetworkSecurityGroup**. + + +#### New-AzNetworkSecurityPerimeter + +#### SYNOPSIS +create a Network Security Perimeter. + +#### SYNTAX + ++ CreateExpanded (Default) +```powershell +New-AzNetworkSecurityPerimeter -Name -ResourceGroupName [-SubscriptionId ] + -Location [-Tag ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ CreateViaJsonString +```powershell +New-AzNetworkSecurityPerimeter -Name -ResourceGroupName [-SubscriptionId ] + -JsonString [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ CreateViaJsonFilePath +```powershell +New-AzNetworkSecurityPerimeter -Name -ResourceGroupName [-SubscriptionId ] + -JsonFilePath [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ Create +```powershell +New-AzNetworkSecurityPerimeter -Name -ResourceGroupName [-SubscriptionId ] + -Parameter [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ CreateViaIdentityExpanded +```powershell +New-AzNetworkSecurityPerimeter -InputObject -Location + [-Tag ] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Create NetworkSecurityPerimeter +```powershell +New-AzNetworkSecurityPerimeter -Name nsp-test-1 -ResourceGroupName rg-test-1 -Location eastus2euap +``` + +```output +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-test-1/providers + /Microsoft.Network/networkSecurityPerimeters/nsp-test-1 +Location : eastus2euap +Name : nsp-test-1 +PerimeterGuid : 00000000-0000-0000-0000-000000000000 +ProvisioningState : Succeeded +ResourceGroupName : rg-test-1 +SystemDataCreatedAt : +SystemDataCreatedBy : +SystemDataCreatedByType : +SystemDataLastModifiedAt : +SystemDataLastModifiedBy : +SystemDataLastModifiedByType : +Tag : { } +Type : Microsoft.Network/networkSecurityPerimeters +``` + +Create NetworkSecurityPerimeter + + +#### Get-AzNetworkSecurityPerimeter + +#### SYNOPSIS +Gets the specified network security perimeter by the name. + +#### SYNTAX + ++ List (Default) +```powershell +Get-AzNetworkSecurityPerimeter [-SubscriptionId ] [-SkipToken ] [-Top ] + [-DefaultProfile ] [] +``` + ++ Get +```powershell +Get-AzNetworkSecurityPerimeter -Name -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [] +``` + ++ List1 +```powershell +Get-AzNetworkSecurityPerimeter -ResourceGroupName [-SubscriptionId ] [-SkipToken ] + [-Top ] [-DefaultProfile ] [] +``` + ++ GetViaIdentity +```powershell +Get-AzNetworkSecurityPerimeter -InputObject [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: List NetworkSecurityPerimeters in ResourceGroup +```powershell +Get-AzNetworkSecurityPerimeter -ResourceGroupName rg-test-1 +``` + +```output +Location Name ResourceGroupName +-------- ---- ----------------- +eastus2euap nsp-test-1 rg-test-1 +eastus2euap nsp-test-2 rg-test-1 +eastus2euap nsp-test-3 rg-test-1 +``` + +List NetworkSecurityPerimeters in ResourceGroup + ++ Example 2: List NetworkSecurityPerimeters in Subscription +```powershell +Get-AzNetworkSecurityPerimeter +``` + +```output +Location Name ResourceGroupName +-------- ---- ----------------- +eastus2euap nsp-test-1 rg-test-1 +eastus2euap nsp-test-2 rg-test-1 +eastus2euap nsp-test-3 rg-test-1 +eastus2euap nsp-test-4 rg-test-2 +eastus2euap nsp-test-5 rg-test-2 +``` + +List NetworkSecurityPerimeters in Subscription + ++ Example 3: Get NetworkSecurityPerimeter by Name +```powershell +Get-AzNetworkSecurityPerimeter -Name nsp-test-1 -ResourceGroupName rg-test-1 +``` + +```output +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-test-1/providers + /Microsoft.Network/networkSecurityPerimeters/nsp-test-1 +Location : eastus2euap +Name : nsp-test-1 +PerimeterGuid : 00000000-0000-0000-0000-000000000000 +ProvisioningState : Succeeded +ResourceGroupName : rg-test-1 +SystemDataCreatedAt : +SystemDataCreatedBy : +SystemDataCreatedByType : +SystemDataLastModifiedAt : +SystemDataLastModifiedBy : +SystemDataLastModifiedByType : +Tag : { + " Owner": "user-test-1" + } +Type : Microsoft.Network/networkSecurityPerimeters +``` + +Get NetworkSecurityPerimeter by Name + ++ Example 4: Get NetworkSecurityPerimeter by Identity (using pipe) +```powershell +$GETObj = Get-AzNetworkSecurityPerimeter -Name nsp-test-1 -ResourceGroupName rg-test-1 +Get-AzNetworkSecurityPerimeter -InputObject $GETObj +``` + +```output +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-test-1/providers + /Microsoft.Network/networkSecurityPerimeters/nsp-test-1 +Location : eastus2euap +Name : nsp-test-1 +PerimeterGuid : 00000000-0000-0000-0000-000000000000 +ProvisioningState : Succeeded +ResourceGroupName : rg-test-1 +SystemDataCreatedAt : +SystemDataCreatedBy : +SystemDataCreatedByType : +SystemDataLastModifiedAt : +SystemDataLastModifiedBy : +SystemDataLastModifiedByType : +Tag : { + " Owner": "user-test-1" + } +Type : Microsoft.Network/networkSecurityPerimeters +``` + +Get NetworkSecurityPerimeter by Identity (using pipe) + + +#### Remove-AzNetworkSecurityPerimeter + +#### SYNOPSIS +Deletes a network security perimeter. + +#### SYNTAX + ++ Delete (Default) +```powershell +Remove-AzNetworkSecurityPerimeter -Name -ResourceGroupName [-SubscriptionId ] + [-ForceDeletion] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] + [-WhatIf] [-Confirm] [] +``` + ++ DeleteViaIdentity +```powershell +Remove-AzNetworkSecurityPerimeter -InputObject [-ForceDeletion] + [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-WhatIf] + [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Delete NetworkSecurityPerimeter by Name +```powershell +Remove-AzNetworkSecurityPerimeter -Name nsp-test-1 -ResourceGroupName rg-test-1 +``` + +Delete NetworkSecurityPerimeter by Name + ++ Example 2: Delete NetworkSecurityPerimeter by Identity (using pipe) +```powershell +$nspObj = Get-AzNetworkSecurityPerimeter -Name nsp-test-1 -ResourceGroupName rg-test-1 +Remove-AzNetworkSecurityPerimeter -InputObject $nspObj +``` + +Delete NetworkSecurityPerimeter by Identity (using pipe) + + +#### Update-AzNetworkSecurityPerimeter + +#### SYNOPSIS +Patch Tags for a Network Security Perimeter. + +#### SYNTAX + ++ PatchExpanded (Default) +```powershell +Update-AzNetworkSecurityPerimeter -Name -ResourceGroupName [-SubscriptionId ] + [-Tag ] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ PatchViaJsonString +```powershell +Update-AzNetworkSecurityPerimeter -Name -ResourceGroupName [-SubscriptionId ] + -JsonString [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ PatchViaJsonFilePath +```powershell +Update-AzNetworkSecurityPerimeter -Name -ResourceGroupName [-SubscriptionId ] + -JsonFilePath [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ Patch +```powershell +Update-AzNetworkSecurityPerimeter -Name -ResourceGroupName [-SubscriptionId ] + -Parameter [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + ++ PatchViaIdentityExpanded +```powershell +Update-AzNetworkSecurityPerimeter -InputObject [-Tag ] + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + ++ PatchViaIdentity +```powershell +Update-AzNetworkSecurityPerimeter -InputObject + -Parameter [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Update NetworkSecurityPerimeter +```powershell +Update-AzNetworkSecurityPerimeter -Name nsp-test-1 -ResourceGroupName rg-test-1 -Tag @{'Owner'='user-test-1'} +``` + +```output +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-test-1/providers + /Microsoft.Network/networkSecurityPerimeters/nsp-test-1 +Location : eastus2euap +Name : nsp-test-1 +PerimeterGuid : 00000000-0000-0000-0000-000000000000 +ProvisioningState : Succeeded +ResourceGroupName : rg-test-1 +SystemDataCreatedAt : +SystemDataCreatedBy : +SystemDataCreatedByType : +SystemDataLastModifiedAt : +SystemDataLastModifiedBy : +SystemDataLastModifiedByType : +Tag : { + " Owner": "user-test-1" + } +Type : Microsoft.Network/networkSecurityPerimeters +``` + +Update NetworkSecurityPerimeter + ++ Example 2: Update NetworkSecurityPerimeter by Identity (using pipe) +```powershell +$GETObj = Get-AzNetworkSecurityPerimeter -Name nsp-test-1 -ResourceGroupName rg-test-1 + Update-AzNetworkSecurityPerimeter -InputObject $GETObj -Tag @{'Owner'='user-test-2'} +``` + +```output +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-test-1/providers + /Microsoft.Network/networkSecurityPerimeters/nsp-test-1 +Location : eastus2euap +Name : nsp-test-1 +PerimeterGuid : 00000000-0000-0000-0000-000000000000 +ProvisioningState : Succeeded +ResourceGroupName : rg-test-1 +SystemDataCreatedAt : +SystemDataCreatedBy : +SystemDataCreatedByType : +SystemDataLastModifiedAt : +SystemDataLastModifiedBy : +SystemDataLastModifiedByType : +Tag : { + " Owner": "user-test-2" + } +Type : Microsoft.Network/networkSecurityPerimeters +``` + +Update NetworkSecurityPerimeter by Identity (using pipe) + + +#### New-AzNetworkSecurityPerimeterAccessRule + +#### SYNOPSIS +create a network access rule. + +#### SYNTAX + ++ CreateExpanded (Default) +```powershell +New-AzNetworkSecurityPerimeterAccessRule -Name -ProfileName -ResourceGroupName + -SecurityPerimeterName [-SubscriptionId ] [-AddressPrefix ] [-Direction ] + [-EmailAddress ] [-FullyQualifiedDomainName ] [-PhoneNumber ] + [-ServiceTag ] [-Subscription ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ CreateViaJsonString +```powershell +New-AzNetworkSecurityPerimeterAccessRule -Name -ProfileName -ResourceGroupName + -SecurityPerimeterName [-SubscriptionId ] -JsonString [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ CreateViaJsonFilePath +```powershell +New-AzNetworkSecurityPerimeterAccessRule -Name -ProfileName -ResourceGroupName + -SecurityPerimeterName [-SubscriptionId ] -JsonFilePath [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ CreateViaIdentityProfileExpanded +```powershell +New-AzNetworkSecurityPerimeterAccessRule -Name -ProfileInputObject + [-AddressPrefix ] [-Direction ] [-EmailAddress ] + [-FullyQualifiedDomainName ] [-PhoneNumber ] [-ServiceTag ] + [-Subscription ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ CreateViaIdentityProfile +```powershell +New-AzNetworkSecurityPerimeterAccessRule -Name -ProfileInputObject + -Parameter [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + ++ CreateViaIdentityNetworkSecurityPerimeterExpanded +```powershell +New-AzNetworkSecurityPerimeterAccessRule -Name -ProfileName + -NetworkSecurityPerimeterInputObject [-AddressPrefix ] + [-Direction ] [-EmailAddress ] [-FullyQualifiedDomainName ] + [-PhoneNumber ] [-ServiceTag ] [-Subscription ] + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + ++ CreateViaIdentityNetworkSecurityPerimeter +```powershell +New-AzNetworkSecurityPerimeterAccessRule -Name -ProfileName + -NetworkSecurityPerimeterInputObject -Parameter + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + ++ Create +```powershell +New-AzNetworkSecurityPerimeterAccessRule -Name -ProfileName -ResourceGroupName + -SecurityPerimeterName [-SubscriptionId ] -Parameter + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + ++ CreateViaIdentityExpanded +```powershell +New-AzNetworkSecurityPerimeterAccessRule -InputObject + [-AddressPrefix ] [-Direction ] [-EmailAddress ] + [-FullyQualifiedDomainName ] [-PhoneNumber ] [-ServiceTag ] + [-Subscription ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Create NetworkSecurityPerimeter AccessRule - Inbound +```powershell +New-AzNetworkSecurityPerimeterAccessRule -Name access-rule-test-1 -ProfileName profile-test-1 -ResourceGroupName rg-test-1 -SecurityPerimeterName nsp-test-1 -AddressPrefix '10.10.0.0/16' -Direction 'Inbound' +``` + +```output +AddressPrefix : {10.10.0.0/16} +Direction : Inbound +EmailAddress : {} +FullyQualifiedDomainName : {} +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-test-1/providers + /Microsoft.Network/networkSecurityPerimeters/nsp-test-1/profiles/profile-test-1/accessRules/access-rule-test-1 +Name : access-rule-test-1 +NetworkSecurityPerimeter : {} +PhoneNumber : {} +ProvisioningState : Succeeded +ResourceGroupName : rg-test-1 +ServiceTag : +Subscription : {} +SystemDataCreatedAt : +SystemDataCreatedBy : +SystemDataCreatedByType : +SystemDataLastModifiedAt : +SystemDataLastModifiedBy : +SystemDataLastModifiedByType : +Type : Microsoft.Network/networkSecurityPerimeters/profiles/accessRules +``` + +Create NetworkSecurityPerimeter AccessRule - Inbound + ++ Example 2: Create NetworkSecurityPerimeter AccessRule - Outbound +```powershell +New-AzNetworkSecurityPerimeterAccessRule -Name access-rule-test-2 -ProfileName profile-test-1 -ResourceGroupName rg-test-1 -SecurityPerimeterName nsp-test-1 -EmailAddress @("test123@microsoft.com", "test321@microsoft.com") -Direction 'Outbound' +``` + +```output +AddressPrefix : {} +Direction : Outbound +EmailAddress : {test123@microsoft.com, test321@microsoft.com} +FullyQualifiedDomainName : {} +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-test-1/providers + /Microsoft.Network/networkSecurityPerimeters/nsp-test-1/profiles/profile-test-1/accessRules/access-rule-test-2 +Name : access-rule-test-2 +NetworkSecurityPerimeter : {} +PhoneNumber : {} +ProvisioningState : Succeeded +ResourceGroupName : rg-test-1 +ServiceTag : +Subscription : {} +SystemDataCreatedAt : +SystemDataCreatedBy : +SystemDataCreatedByType : +SystemDataLastModifiedAt : +SystemDataLastModifiedBy : +SystemDataLastModifiedByType : +Type : Microsoft.Network/networkSecurityPerimeters/profiles/accessRules +``` + +Create NetworkSecurityPerimeter AccessRule - Outbound + + +#### Get-AzNetworkSecurityPerimeterAccessRule + +#### SYNOPSIS +Gets the specified NSP access rule by name. + +#### SYNTAX + ++ List (Default) +```powershell +Get-AzNetworkSecurityPerimeterAccessRule -ProfileName -ResourceGroupName + -SecurityPerimeterName [-SubscriptionId ] [-SkipToken ] [-Top ] + [-DefaultProfile ] [] +``` + ++ GetViaIdentityProfile +```powershell +Get-AzNetworkSecurityPerimeterAccessRule -Name -ProfileInputObject + [-DefaultProfile ] [] +``` + ++ GetViaIdentityNetworkSecurityPerimeter +```powershell +Get-AzNetworkSecurityPerimeterAccessRule -Name -ProfileName + -NetworkSecurityPerimeterInputObject [-DefaultProfile ] + [] +``` + ++ Get +```powershell +Get-AzNetworkSecurityPerimeterAccessRule -Name -ProfileName -ResourceGroupName + -SecurityPerimeterName [-SubscriptionId ] [-DefaultProfile ] + [] +``` + ++ GetViaIdentity +```powershell +Get-AzNetworkSecurityPerimeterAccessRule -InputObject + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: List NetworkSecurityPerimeter AccessRules +```powershell +Get-AzNetworkSecurityPerimeterAccessRule -ProfileName profile-test-1 -ResourceGroupName rg-test-1 -SecurityPerimeterName nsp-test-1 +``` + +```output +Name ResourceGroupName +---- ----------------- +access-rule-test-1 rg-test-1 +access-rule-test-2 rg-test-1 +``` + +List NetworkSecurityPerimeter AccessRules + ++ Example 2: Get NetworkSecurityPerimeter AccessRule by Name +```powershell +Get-AzNetworkSecurityPerimeterAccessRule -Name access-rule-test-1 -ProfileName profile-test-1 -ResourceGroupName rg-test-1 -SecurityPerimeterName nsp-test-1 +``` + +```output +AddressPrefix : {198.168.0.0/32} +Direction : Inbound +EmailAddress : {} +FullyQualifiedDomainName : {} +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-test-1/providers + /Microsoft.Network/networkSecurityPerimeters/nsp-test-1/profiles/profile-test-1 + /accessRules/access-rule-test-1 +Name : access-rule-test-1 +NetworkSecurityPerimeter : {} +PhoneNumber : {} +ProvisioningState : Succeeded +ResourceGroupName : rg-test-1 +ServiceTag : +Subscription : {} +SystemDataCreatedAt : +SystemDataCreatedBy : +SystemDataCreatedByType : +SystemDataLastModifiedAt : +SystemDataLastModifiedBy : +SystemDataLastModifiedByType : +Type : Microsoft.Network/networkSecurityPerimeters/profiles/accessRules +``` + +Get NetworkSecurityPerimeter AccessRule by Name + ++ Example 3: Get NetworkSecurityPerimeter AccessRule by Identity (using pipe) +```powershell +$GETObj = Get-AzNetworkSecurityPerimeterAccessRule -Name access-rule-test-1 -ProfileName profile-test-1 -ResourceGroupName rg-test-1 -SecurityPerimeterName nsp-test-1 +Get-AzNetworkSecurityPerimeterAccessRule -InputObject $GETObj +``` + +```output +AddressPrefix : {198.168.0.0/32} +Direction : Inbound +EmailAddress : {} +FullyQualifiedDomainName : {} +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-test-1/providers + /Microsoft.Network/networkSecurityPerimeters/nsp-test-1/profiles/profile-test-1 + /accessRules/access-rule-test-1 +Name : access-rule-test-1 +NetworkSecurityPerimeter : {} +PhoneNumber : {} +ProvisioningState : Succeeded +ResourceGroupName : rg-test-1 +ServiceTag : +Subscription : {} +SystemDataCreatedAt : +SystemDataCreatedBy : +SystemDataCreatedByType : +SystemDataLastModifiedAt : +SystemDataLastModifiedBy : +SystemDataLastModifiedByType : +Type : Microsoft.Network/networkSecurityPerimeters/profiles/accessRules +``` + +Get NetworkSecurityPerimeter AccessRule by Identity (using pipe) + + +#### Remove-AzNetworkSecurityPerimeterAccessRule + +#### SYNOPSIS +Deletes an NSP access rule. + +#### SYNTAX + ++ Delete (Default) +```powershell +Remove-AzNetworkSecurityPerimeterAccessRule -Name -ProfileName -ResourceGroupName + -SecurityPerimeterName [-SubscriptionId ] [-DefaultProfile ] [-PassThru] + [-WhatIf] [-Confirm] [] +``` + ++ DeleteViaIdentityProfile +```powershell +Remove-AzNetworkSecurityPerimeterAccessRule -Name + -ProfileInputObject [-DefaultProfile ] [-PassThru] + [-WhatIf] [-Confirm] [] +``` + ++ DeleteViaIdentityNetworkSecurityPerimeter +```powershell +Remove-AzNetworkSecurityPerimeterAccessRule -Name -ProfileName + -NetworkSecurityPerimeterInputObject [-DefaultProfile ] + [-PassThru] [-WhatIf] [-Confirm] [] +``` + ++ DeleteViaIdentity +```powershell +Remove-AzNetworkSecurityPerimeterAccessRule -InputObject + [-DefaultProfile ] [-PassThru] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Delete NetworkSecurityPerimeter AccessRule by Name +```powershell +Remove-AzNetworkSecurityPerimeterAccessRule -Name access-rule-test-1 -ProfileName profile-test-1 -ResourceGroupName rg-test-1 -SecurityPerimeterName nsp-test-1 +``` + +Delete NetworkSecurityPerimeter AccessRule by Name + ++ Example 2: Delete NetworkSecurityPerimeter AccessRule by Identity (using pipe) +```powershell +$accessRuleObj = Get-AzNetworkSecurityPerimeterAccessRule -Name access-rule-test-1 -ProfileName profile-test-1 -ResourceGroupName rg-test-1 -SecurityPerimeterName nsp-test-1 +Remove-AzNetworkSecurityPerimeterAccessRule -InputObject $accessRuleObj +``` + +Deletes NetworkSecurityPerimeter AccessRule by Identity (using pipe) + + +#### Update-AzNetworkSecurityPerimeterAccessRule + +#### SYNOPSIS +Updates an access rule. + +#### SYNTAX + ++ UpdateExpanded (Default) +```powershell +Update-AzNetworkSecurityPerimeterAccessRule -ResourceGroupName -Name + -SecurityPerimeterName -ProfileName [-SubscriptionId ] [-AddressPrefix ] + [-FullyQualifiedDomainName ] [-EmailAddress ] [-PhoneNumber ] + [-ServiceTag ] [-Direction ] [-Subscription ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-WhatIf] [-Confirm] + [] +``` + ++ UpdateViaIdentityExpanded +```powershell +Update-AzNetworkSecurityPerimeterAccessRule -InputObject + [-AddressPrefix ] [-FullyQualifiedDomainName ] [-EmailAddress ] + [-PhoneNumber ] [-ServiceTag ] [-Direction ] [-Subscription ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Update NetworkSecurityPerimeter AccessRule +```powershell +Update-AzNetworkSecurityPerimeterAccessRule -Name access-rule-1 -ResourceGroupName rg-test-1 -SecurityPerimeterName nsp-test-1 -ProfileName profile-test-1 -AddressPrefix @('10.10.0.0/24') +``` + +```output +AddressPrefix : {10.10.0.0/24} +Direction : Inbound +EmailAddress : {} +FullyQualifiedDomainName : {} +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-test-1/providers + /Microsoft.Network/networkSecurityPerimeters/nsp-test-1/profiles/profile-test-1/accessRules/access-rule-test-1 +Name : access-rule-test-1 +NetworkSecurityPerimeter : {} +PhoneNumber : {} +ProvisioningState : Succeeded +ResourceGroupName : rg-test-1 +ServiceTag : +Subscription : {} +SystemDataCreatedAt : +SystemDataCreatedBy : +SystemDataCreatedByType : +SystemDataLastModifiedAt : +SystemDataLastModifiedBy : +SystemDataLastModifiedByType : +Type : Microsoft.Network/networkSecurityPerimeters/profiles/accessRules +``` + +Update NetworkSecurityPerimeter AccessRule + ++ Example 2: Update NetworkSecurityPerimeter AccessRule by Identity (using pipe) +```powershell +$GETObj = Get-AzNetworkSecurityPerimeterAccessRule -Name access-rule-1 -ResourceGroupName rg-test-1 -SecurityPerimeterName nsp-test-1 -ProfileName profile-test-1 +Update-AzNetworkSecurityPerimeterAccessRule -InputObject $GETObj -AddressPrefix @('10.0.0.0/16') +``` + +```output +AddressPrefix : {10.10.0.0/16} +Direction : Inbound +EmailAddress : {} +FullyQualifiedDomainName : {} +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-test-1/providers + /Microsoft.Network/networkSecurityPerimeters/nsp-test-1/profiles/profile-test-1/accessRules/access-rule-test-1 +Name : access-rule-test-1 +NetworkSecurityPerimeter : {} +PhoneNumber : {} +ProvisioningState : Succeeded +ResourceGroupName : rg-test-1 +ServiceTag : +Subscription : {} +SystemDataCreatedAt : +SystemDataCreatedBy : +SystemDataCreatedByType : +SystemDataLastModifiedAt : +SystemDataLastModifiedBy : +SystemDataLastModifiedByType : +Type : Microsoft.Network/networkSecurityPerimeters/profiles/accessRules +``` + +Updates a NetworkSecurityPerimeterAccessRule by identity (using pipe) + + +#### Get-AzNetworkSecurityPerimeterAssociableResourceType + +#### SYNOPSIS +Gets the list of resources that are onboarded with NSP. +These resources can be associated with a network security perimeter + +#### SYNTAX + +```powershell +Get-AzNetworkSecurityPerimeterAssociableResourceType -Location [-SubscriptionId ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: List NetworkSecurityPerimeter AssociableResourceTypes +```powershell +Get-AzNetworkSecurityPerimeterAssociableResourceType -Location eastus2euap +``` + +```output +Name +---- +Microsoft.Sql.servers +Microsoft.Storage.storageAccounts +Microsoft.EventHub.namespaces +Microsoft.CognitiveServices.accounts +Microsoft.Search.searchServices +Microsoft.Purview.accounts +Microsoft.ContainerService.managedClusters +Microsoft.KeyVault.vaults +Microsoft.OperationalInsights.workspaces +Microsoft.Insights.dataCollectionEndpoints +Microsoft.ServiceBus.namespaces +``` + +List NetworkSecurityPerimeter AssociableResourceTypes + + +#### New-AzNetworkSecurityPerimeterAssociation + +#### SYNOPSIS +create a NSP resource association. + +#### SYNTAX + ++ CreateExpanded (Default) +```powershell +New-AzNetworkSecurityPerimeterAssociation -Name -ResourceGroupName + -SecurityPerimeterName [-SubscriptionId ] [-AccessMode ] + [-PrivateLinkResourceId ] [-ProfileId ] [-DefaultProfile ] [-AsJob] [-NoWait] + [-WhatIf] [-Confirm] [] +``` + ++ CreateViaJsonString +```powershell +New-AzNetworkSecurityPerimeterAssociation -Name -ResourceGroupName + -SecurityPerimeterName [-SubscriptionId ] -JsonString [-DefaultProfile ] + [-AsJob] [-NoWait] [-WhatIf] [-Confirm] [] +``` + ++ CreateViaJsonFilePath +```powershell +New-AzNetworkSecurityPerimeterAssociation -Name -ResourceGroupName + -SecurityPerimeterName [-SubscriptionId ] -JsonFilePath [-DefaultProfile ] + [-AsJob] [-NoWait] [-WhatIf] [-Confirm] [] +``` + ++ CreateViaIdentityNetworkSecurityPerimeterExpanded +```powershell +New-AzNetworkSecurityPerimeterAssociation -Name + -NetworkSecurityPerimeterInputObject [-AccessMode ] + [-PrivateLinkResourceId ] [-ProfileId ] [-DefaultProfile ] [-AsJob] [-NoWait] + [-WhatIf] [-Confirm] [] +``` + ++ CreateViaIdentityNetworkSecurityPerimeter +```powershell +New-AzNetworkSecurityPerimeterAssociation -Name + -NetworkSecurityPerimeterInputObject -Parameter + [-DefaultProfile ] [-AsJob] [-NoWait] [-WhatIf] [-Confirm] + [] +``` + ++ Create +```powershell +New-AzNetworkSecurityPerimeterAssociation -Name -ResourceGroupName + -SecurityPerimeterName [-SubscriptionId ] -Parameter + [-DefaultProfile ] [-AsJob] [-NoWait] [-WhatIf] [-Confirm] + [] +``` + ++ CreateViaIdentityExpanded +```powershell +New-AzNetworkSecurityPerimeterAssociation -InputObject + [-AccessMode ] [-PrivateLinkResourceId ] [-ProfileId ] [-DefaultProfile ] + [-AsJob] [-NoWait] [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Create NetworkSecurityPerimeter Association +```powershell +$profileId = '/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-test-1/providers/Microsoft.Network/networkSecurityPerimeters/nsp-test-1/profiles/profile-test-1' +$privateLinkResourceId = '/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-test-2/providers/Microsoft.Sql/servers/sql-server-test-1' +New-AzNetworkSecurityPerimeterAssociation -Name association-test-1 -SecurityPerimeterName nsp-test-1 -ResourceGroupName rg-test-1 -AccessMode Learning -ProfileId $profileId -PrivateLinkResourceId $privateLinkResourceId +``` + +```output +AccessMode : Learning +HasProvisioningIssue : no +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-test-1/providers + /Microsoft.Network/networkSecurityPerimeters/nsp-test-1/resourceAssociations/association-test-1 +Name : association-test-1 +PrivateLinkResourceId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-test-2/providers + /Microsoft.Sql/servers/sql-server-test-1 +ProfileId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-test-1/providers + /Microsoft.Network/networkSecurityPerimeters/nsp-test-1/profiles/profile-test-1 +ProvisioningState : Succeeded +ResourceGroupName : rg-test-1 +SystemDataCreatedAt : +SystemDataCreatedBy : +SystemDataCreatedByType : +SystemDataLastModifiedAt : +SystemDataLastModifiedBy : +SystemDataLastModifiedByType : +Type : Microsoft.Network/networkSecurityPerimeters/resourceAssociations +``` + +Create NetworkSecurityPerimeter Association + + +#### Get-AzNetworkSecurityPerimeterAssociation + +#### SYNOPSIS +Gets the specified NSP association by name. + +#### SYNTAX + ++ List (Default) +```powershell +Get-AzNetworkSecurityPerimeterAssociation -ResourceGroupName -SecurityPerimeterName + [-SubscriptionId ] [-SkipToken ] [-Top ] [-DefaultProfile ] + [] +``` + ++ GetViaIdentityNetworkSecurityPerimeter +```powershell +Get-AzNetworkSecurityPerimeterAssociation -Name + -NetworkSecurityPerimeterInputObject [-DefaultProfile ] + [] +``` + ++ Get +```powershell +Get-AzNetworkSecurityPerimeterAssociation -Name -ResourceGroupName + -SecurityPerimeterName [-SubscriptionId ] [-DefaultProfile ] + [] +``` + ++ GetViaIdentity +```powershell +Get-AzNetworkSecurityPerimeterAssociation -InputObject + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: List NetworkSecurityPerimeter Associations +```powershell +Get-AzNetworkSecurityPerimeterAssociation -ResourceGroupName rg-test-1 -SecurityPerimeterName nsp-test-1 +``` + +```output +Name ResourceGroupName +---- ----------------- +association-test-1 rg-test-1 +association-test-2 rg-test-1 +``` + +List NetworkSecurityPerimeter Associations + ++ Example 2: Get NetworkSecurityPerimeter Association by Name +```powershell +Get-AzNetworkSecurityPerimeterAssociation -Name association-test-1 -ResourceGroupName rg-test-1 -SecurityPerimeterName nsp-test-1 +``` + +```output +AccessMode : Enforced +HasProvisioningIssue : no +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-test-1/providers + /Microsoft.Network/networkSecurityPerimeters/nsp-test-1/resourceAssociations/association-test-1 +Name : association-test-1 +PrivateLinkResourceId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-test-2/providers/Microsoft.Sql + /servers/sql-server-test-1 +ProfileId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-test-1/providers/Microsoft.Netwo + rk/networkSecurityPerimeters/nsp-test-1/profiles/profile-test-1 +ProvisioningState : Succeeded +ResourceGroupName : rg-test-1 +SystemDataCreatedAt : +SystemDataCreatedBy : +SystemDataCreatedByType : +SystemDataLastModifiedAt : +SystemDataLastModifiedBy : +SystemDataLastModifiedByType : +Type : Microsoft.Network/networkSecurityPerimeters/resourceAssociations +``` + +Get NetworkSecurityPerimeter Association by Name + ++ Example 3: Get NetworkSecurityPerimeter Association by Identity (using pipe) +```powershell +$GETObj = Get-AzNetworkSecurityPerimeterAssociation -Name association-test-1 -ResourceGroupName rg-test-1 -SecurityPerimeterName nsp-test-1 +Get-AzNetworkSecurityPerimeterAssociation -InputObject $GETObj +``` + +```output +AccessMode : Enforced +HasProvisioningIssue : no +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-test-1/providers + /Microsoft.Network/networkSecurityPerimeters/nsp-test-1/resourceAssociations/association-test-1 +Name : association-test-1 +PrivateLinkResourceId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-test-2/providers + /Microsoft.Sql/servers/sql-server-test-1 +ProfileId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-test-1/providers + /Microsoft.Network/networkSecurityPerimeters/nsp-test-1/profiles/profile-test-1 +ProvisioningState : Succeeded +ResourceGroupName : rg-test-1 +SystemDataCreatedAt : +SystemDataCreatedBy : +SystemDataCreatedByType : +SystemDataLastModifiedAt : +SystemDataLastModifiedBy : +SystemDataLastModifiedByType : +Type : Microsoft.Network/networkSecurityPerimeters/resourceAssociations +``` + +Get NetworkSecurityPerimeter Association by Identity (using pipe) + + +#### Remove-AzNetworkSecurityPerimeterAssociation + +#### SYNOPSIS +Deletes an NSP association resource. + +#### SYNTAX + ++ Delete (Default) +```powershell +Remove-AzNetworkSecurityPerimeterAssociation -Name -ResourceGroupName + -SecurityPerimeterName [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] + [-PassThru] [-WhatIf] [-Confirm] [] +``` + ++ DeleteViaIdentityNetworkSecurityPerimeter +```powershell +Remove-AzNetworkSecurityPerimeterAssociation -Name + -NetworkSecurityPerimeterInputObject [-DefaultProfile ] [-AsJob] + [-NoWait] [-PassThru] [-WhatIf] [-Confirm] [] +``` + ++ DeleteViaIdentity +```powershell +Remove-AzNetworkSecurityPerimeterAssociation -InputObject + [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-WhatIf] + [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Delete NetworkSecurityPerimeter Association by Name +```powershell +Remove-AzNetworkSecurityPerimeterAssociation -Name association-test-1 -ResourceGroupName rg-test-1 -SecurityPerimeterName nsp-test-1 +``` + +Delete NetworkSecurityPerimeter Association by Name + ++ Example 2: Delete NetworkSecurityPerimeter Association by Identity (using pipe) +```powershell +$associationObj = Get-AzNetworkSecurityPerimeterAssociation -Name association-test-1 -ResourceGroupName rg-test-1 -SecurityPerimeterName nsp-test-1 +Remove-AzNetworkSecurityPerimeterAssociation -InputObject $associationObj +``` + +Delete NetworkSecurityPerimeter Association by Identity (using pipe) + + +#### Update-AzNetworkSecurityPerimeterAssociation + +#### SYNOPSIS +Updates an association + +#### SYNTAX + ++ UpdateExpanded (Default) +```powershell +Update-AzNetworkSecurityPerimeterAssociation -ResourceGroupName -Name + -SecurityPerimeterName [-SubscriptionId ] [-AccessMode ] + [-PrivateLinkResourceId ] [-ProfileId ] [-DefaultProfile ] [-AsJob] [-NoWait] + [-WhatIf] [-Confirm] [] +``` + ++ UpdateViaIdentityExpanded +```powershell +Update-AzNetworkSecurityPerimeterAssociation -InputObject + [-AccessMode ] [-PrivateLinkResourceId ] [-ProfileId ] [-DefaultProfile ] + [-AsJob] [-NoWait] [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Update NetworkSecurityPerimeter Association +```powershell +Update-AzNetworkSecurityPerimeterAssociation -Name association-test-1 -SecurityPerimeterName nsp-test-1 -ResourceGroupName rg-test-1 -AccessMode Enforced +``` + +```output +AccessMode : Enforced +HasProvisioningIssue : no +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-test-1/providers + /Microsoft.Network/networkSecurityPerimeters/nsp-test-1/resourceAssociations/association-test-1 +Name : association-test-1 +PrivateLinkResourceId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-test-2/providers + /Microsoft.Sql/servers/sql-server-test-1 +ProfileId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-test-1/providers + /Microsoft.Network/networkSecurityPerimeters/nsp-test-1/profiles/profile-test-1 +ProvisioningState : Succeeded +ResourceGroupName : rg-test-1 +SystemDataCreatedAt : +SystemDataCreatedBy : +SystemDataCreatedByType : +SystemDataLastModifiedAt : +SystemDataLastModifiedBy : +SystemDataLastModifiedByType : +Type : Microsoft.Network/networkSecurityPerimeters/resourceAssociations +``` + +Updates a NetworkSecurityPerimeterAccessAssociation + ++ Example 2: Update NetworkSecurityPerimeter Association by Identity (using pipe) +```powershell +$GETObj = Get-AzNetworkSecurityPerimeterAssociation -Name association-test-1 -SecurityPerimeterName nsp-test-1 -ResourceGroupName rg-test-1 +Update-AzNetworkSecurityPerimeterAssociation -InputObject $GETObj -AccessMode Learning +``` + +```output +AccessMode : Learning +HasProvisioningIssue : no +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-test-1/providers + /Microsoft.Network/networkSecurityPerimeters/nsp-test-1/resourceAssociations/association-test-1 +Name : association-test-1 +PrivateLinkResourceId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-test-2/providers + /Microsoft.Sql/servers/sql-server-test-1 +ProfileId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-test-1/providers + /Microsoft.Network/networkSecurityPerimeters/nsp-test-1/profiles/profile-test-1 +ProvisioningState : Succeeded +ResourceGroupName : rg-test-1 +SystemDataCreatedAt : +SystemDataCreatedBy : +SystemDataCreatedByType : +SystemDataLastModifiedAt : +SystemDataLastModifiedBy : +SystemDataLastModifiedByType : +Type : Microsoft.Network/networkSecurityPerimeters/resourceAssociations +``` + +Update NetworkSecurityPerimeter Association by Identity (using pipe) + + +#### New-AzNetworkSecurityPerimeterLink + +#### SYNOPSIS +create NSP link resource. + +#### SYNTAX + ++ CreateExpanded (Default) +```powershell +New-AzNetworkSecurityPerimeterLink -Name -ResourceGroupName -SecurityPerimeterName + [-SubscriptionId ] [-AutoApprovedRemotePerimeterResourceId ] [-Description ] + [-LocalInboundProfile ] [-RemoteInboundProfile ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ CreateViaJsonString +```powershell +New-AzNetworkSecurityPerimeterLink -Name -ResourceGroupName -SecurityPerimeterName + [-SubscriptionId ] -JsonString [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ CreateViaJsonFilePath +```powershell +New-AzNetworkSecurityPerimeterLink -Name -ResourceGroupName -SecurityPerimeterName + [-SubscriptionId ] -JsonFilePath [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ CreateViaIdentityNetworkSecurityPerimeterExpanded +```powershell +New-AzNetworkSecurityPerimeterLink -Name + -NetworkSecurityPerimeterInputObject + [-AutoApprovedRemotePerimeterResourceId ] [-Description ] [-LocalInboundProfile ] + [-RemoteInboundProfile ] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + ++ CreateViaIdentityNetworkSecurityPerimeter +```powershell +New-AzNetworkSecurityPerimeterLink -Name + -NetworkSecurityPerimeterInputObject -Parameter + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + ++ Create +```powershell +New-AzNetworkSecurityPerimeterLink -Name -ResourceGroupName -SecurityPerimeterName + [-SubscriptionId ] -Parameter [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ CreateViaIdentityExpanded +```powershell +New-AzNetworkSecurityPerimeterLink -InputObject + [-AutoApprovedRemotePerimeterResourceId ] [-Description ] [-LocalInboundProfile ] + [-RemoteInboundProfile ] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Create NetworkSecurityPerimeter Link +```powershell +$remotePerimeterId = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-test-1/providers/Microsoft.Network/networkSecurityPerimeters/test-nsp-2" +New-AzNetworkSecurityPerimeterLink -Name link-test-1 -ResourceGroupName rg-test-1 -SecurityPerimeterName test-nsp-1 -AutoApprovedRemotePerimeterResourceId $remotePerimeterId -LocalInboundProfile @('*') -RemoteInboundProfile @('*') +``` + +```output +AutoApprovedRemotePerimeterResourceId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-test-1/providers + /Microsoft.Network/networkSecurityPerimeters/test-nsp-2 +Description : Auto Approved. +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-test-1/providers + /Microsoft.Network/networkSecurityPerimeters/test-nsp-1/links/link-test-1 +LocalInboundProfile : {profile-test-1} +LocalOutboundProfile : {*} +Name : link-test-1 +ProvisioningState : Succeeded +RemoteInboundProfile : {*} +RemoteOutboundProfile : {*} +RemotePerimeterGuid : 0000000-b1c5-4473-86d7-7755db0c6970 +RemotePerimeterLocation : eastuseuap +ResourceGroupName : rg-test-1 +Status : Approved +SystemDataCreatedAt : +SystemDataCreatedBy : +SystemDataCreatedByType : +SystemDataLastModifiedAt : +SystemDataLastModifiedBy : +SystemDataLastModifiedByType : +Type : Microsoft.Network/networkSecurityPerimeters/links +``` + +Create NetworkSecurityPerimeter Link + + +#### Get-AzNetworkSecurityPerimeterLink + +#### SYNOPSIS +Gets the specified NSP link resource. + +#### SYNTAX + ++ List (Default) +```powershell +Get-AzNetworkSecurityPerimeterLink -ResourceGroupName -SecurityPerimeterName + [-SubscriptionId ] [-SkipToken ] [-Top ] [-DefaultProfile ] + [] +``` + ++ GetViaIdentityNetworkSecurityPerimeter +```powershell +Get-AzNetworkSecurityPerimeterLink -Name + -NetworkSecurityPerimeterInputObject [-DefaultProfile ] + [] +``` + ++ Get +```powershell +Get-AzNetworkSecurityPerimeterLink -Name -ResourceGroupName -SecurityPerimeterName + [-SubscriptionId ] [-DefaultProfile ] + [] +``` + ++ GetViaIdentity +```powershell +Get-AzNetworkSecurityPerimeterLink -InputObject + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: List NetworkSecurityPerimeter Links +```powershell +Get-AzNetworkSecurityPerimeterLink -ResourceGroupName rg-test-1 -SecurityPerimeterName nsp-test-1 +``` + +```output +Name ResourceGroupName +---- ----------------- +link-test-1 rg-test-1 +link-test-2 rg-test-1 +``` + +List NetworkSecurityPerimeter Links + ++ Example 2: Get NetworkSecurityPerimeter Link by Name +```powershell +Get-AzNetworkSecurityPerimeterLink -ResourceGroupName rg-test-1 -SecurityPerimeterName nsp-test-1 -Name link-test-1 +``` + +```output +AutoApprovedRemotePerimeterResourceId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-test-1/providers + /Microsoft.Network/networkSecurityPerimeters/test-nsp-2 +Description : Auto Approved. +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-test-1/providers + /Microsoft.Network/networkSecurityPerimeters/test-nsp-1/links/link-test-1 +LocalInboundProfile : {profile-test-1} +LocalOutboundProfile : {*} +Name : link-test-1 +ProvisioningState : Succeeded +RemoteInboundProfile : {*} +RemoteOutboundProfile : {*} +RemotePerimeterGuid : 00000000-0000-0000-0000-000000000000 +RemotePerimeterLocation : eastuseuap +ResourceGroupName : rg-test-1 +Status : Approved +SystemDataCreatedAt : +SystemDataCreatedBy : +SystemDataCreatedByType : +SystemDataLastModifiedAt : +SystemDataLastModifiedBy : +SystemDataLastModifiedByType : +Type : Microsoft.Network/networkSecurityPerimeters/links +``` + +Get NetworkSecurityPerimeter Link by Name + + +#### Remove-AzNetworkSecurityPerimeterLink + +#### SYNOPSIS +Deletes an NSP Link resource. + +#### SYNTAX + ++ Delete (Default) +```powershell +Remove-AzNetworkSecurityPerimeterLink -Name -ResourceGroupName + -SecurityPerimeterName [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] + [-PassThru] [-WhatIf] [-Confirm] [] +``` + ++ DeleteViaIdentityNetworkSecurityPerimeter +```powershell +Remove-AzNetworkSecurityPerimeterLink -Name + -NetworkSecurityPerimeterInputObject [-DefaultProfile ] [-AsJob] + [-NoWait] [-PassThru] [-WhatIf] [-Confirm] [] +``` + ++ DeleteViaIdentity +```powershell +Remove-AzNetworkSecurityPerimeterLink -InputObject + [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-WhatIf] + [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Remove NetworkSecurityPerimeter Link +```powershell +Remove-AzNetworkSecurityPerimeterLink -Name link-test-1 -ResourceGroupName rg-test-1 -SecurityPerimeterName nsp-test-1 +``` + +Remove NetworkSecurityPerimeter Link + ++ Example 2: Remove NetworkSecurityPerimeter Link via Identity +```powershell +$linkObj = Get-AzNetworkSecurityPerimeterLink -Name link-test-1 -ResourceGroupName rg-test-1 -SecurityPerimeterName nsp-test-1 +Remove-AzNetworkSecurityPerimeterLink -InputObject $linkObj +``` + +Remove NetworkSecurityPerimeter Link via Identity + + +#### Update-AzNetworkSecurityPerimeterLink + +#### SYNOPSIS +Updates a NSP Link + +#### SYNTAX + ++ UpdateExpanded (Default) +```powershell +Update-AzNetworkSecurityPerimeterLink -ResourceGroupName -Name + -SecurityPerimeterName [-SubscriptionId ] [-AutoApprovedRemotePerimeterResourceId ] + [-LocalInboundProfile ] [-RemoteInboundProfile ] [-DefaultProfile ] [-AsJob] + [-NoWait] [-WhatIf] [-Confirm] [] +``` + ++ UpdateViaIdentityExpanded +```powershell +Update-AzNetworkSecurityPerimeterLink -InputObject + [-AutoApprovedRemotePerimeterResourceId ] [-LocalInboundProfile ] + [-RemoteInboundProfile ] [-DefaultProfile ] [-AsJob] [-NoWait] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Update NetworkSecurityPerimeter Link +```powershell +Update-AzNetworkSecurityPerimeterLink -Name link-test-1 -ResourceGroupName rg-test-1 -SecurityPerimeterName nsp-test-1 -LocalInboundProfile @('*') -RemoteInboundProfile @('*') +``` + +```output +AutoApprovedRemotePerimeterResourceId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-test-1/providers + /Microsoft.Network/networkSecurityPerimeters/test-nsp-2 +Description : Auto Approved. +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-test-1/providers + /Microsoft.Network/networkSecurityPerimeters/test-nsp-1/links/link-test-1 +LocalInboundProfile : {*} +LocalOutboundProfile : {*} +Name : link-test-1 +ProvisioningState : Succeeded +RemoteInboundProfile : {*} +RemoteOutboundProfile : {*} +RemotePerimeterGuid : 0000000-b1c5-4473-86d7-7755db0c6970 +RemotePerimeterLocation : eastuseuap +ResourceGroupName : rg-test-1 +Status : Approved +SystemDataCreatedAt : +SystemDataCreatedBy : +SystemDataCreatedByType : +SystemDataLastModifiedAt : +SystemDataLastModifiedBy : +SystemDataLastModifiedByType : +Type : Microsoft.Network/networkSecurityPerimeters/links +``` + +Update NetworkSecurityPerimeter Link + ++ Example 2: Update NetworkSecurityPerimeter Link via Identity +```powershell +$linkObj = Get-AzNetworkSecurityPerimeterLink -Name link-test-1 -ResourceGroupName rg-test-1 -SecurityPerimeterName nsp-test-1 +Update-AzNetworkSecurityPerimeterLink -InputObject $linkObj -LocalInboundProfile @('profile-test-2') +``` + +```output +AutoApprovedRemotePerimeterResourceId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-test-1/providers + /Microsoft.Network/networkSecurityPerimeters/test-nsp-2 +Description : Auto Approved. +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-test-1/providers + /Microsoft.Network/networkSecurityPerimeters/test-nsp-1/links/link-test-1 +LocalInboundProfile : {profile-test-2} +LocalOutboundProfile : {*} +Name : link-test-1 +ProvisioningState : Succeeded +RemoteInboundProfile : {*} +RemoteOutboundProfile : {*} +RemotePerimeterGuid : 0000000-b1c5-4473-86d7-7755db0c6970 +RemotePerimeterLocation : eastuseuap +ResourceGroupName : rg-test-1 +Status : Approved +SystemDataCreatedAt : +SystemDataCreatedBy : +SystemDataCreatedByType : +SystemDataLastModifiedAt : +SystemDataLastModifiedBy : +SystemDataLastModifiedByType : +Type : Microsoft.Network/networkSecurityPerimeters/links +``` + +Update NetworkSecurityPerimeter Link via Identity + + +#### Get-AzNetworkSecurityPerimeterLinkReference + +#### SYNOPSIS +Gets the specified NSP linkReference resource. + +#### SYNTAX + ++ List (Default) +```powershell +Get-AzNetworkSecurityPerimeterLinkReference -ResourceGroupName -SecurityPerimeterName + [-SubscriptionId ] [-SkipToken ] [-Top ] [-DefaultProfile ] + [] +``` + ++ GetViaIdentityNetworkSecurityPerimeter +```powershell +Get-AzNetworkSecurityPerimeterLinkReference -Name + -NetworkSecurityPerimeterInputObject [-DefaultProfile ] + [] +``` + ++ Get +```powershell +Get-AzNetworkSecurityPerimeterLinkReference -Name -ResourceGroupName + -SecurityPerimeterName [-SubscriptionId ] [-DefaultProfile ] + [] +``` + ++ GetViaIdentity +```powershell +Get-AzNetworkSecurityPerimeterLinkReference -InputObject + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: List NetworkSecurityPerimeter LinkReferences +```powershell +Get-AzNetworkSecurityPerimeterLinkReference -ResourceGroupName rg-test-1 -SecurityPerimeterName nsp-test-1 +``` + +```output +Name ResourceGroupName +---- ----------------- +Ref-from-link-test-1-00000000-78f8-4f1b-8f30-ffe0eaa74495 rg-test-1 +Ref-from-link-test-2-00000000-78f8-4f1b-8f30-ffe0eaa74496 rg-test-1 +``` + +Lists network security link references + ++ Example 2: Get NetworkSecurityPerimeter LinkReference by Name +```powershell +Get-AzNetworkSecurityPerimeterLinkReference -ResourceGroupName rg-test-1 -SecurityPerimeterName nsp-test-1 -Name Ref-from-link-test-1-000000-29bb-4bc4-9297-676b337e6c74 +``` + +```output +Description : Auto Approved. +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-test-1/providers + /Microsoft.Network/networkSecurityPerimeters/nsp-test-1/linkReferences + /Ref-from-link-test-1-000000-29bb-4bc4-9297-676b337e6c74 +LocalInboundProfile : {*} +LocalOutboundProfile : {*} +Name : Ref-from-link-test-1-000000-29bb-4bc4-9297-676b337e6c74 +ProvisioningState : Succeeded +RemoteInboundProfile : {profile-test-1} +RemoteOutboundProfile : {*} +RemotePerimeterGuid : 000000-29bb-4bc4-9297-676b337e6c74 +RemotePerimeterLocation : eastus2euap +RemotePerimeterResourceId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-test-1/providers + /Microsoft.Network/networkSecurityPerimeters/nsp-test-2 +ResourceGroupName : rg-test-1 +Status : Approved +SystemDataCreatedAt : +SystemDataCreatedBy : +SystemDataCreatedByType : +SystemDataLastModifiedAt : +SystemDataLastModifiedBy : +SystemDataLastModifiedByType : +Type : Microsoft.Network/networkSecurityPerimeters/linkReferences +``` + +Get NetworkSecurityPerimeter LinkReference by Name + + +#### Remove-AzNetworkSecurityPerimeterLinkReference + +#### SYNOPSIS +Deletes an NSP LinkReference resource. + +#### SYNTAX + ++ Delete (Default) +```powershell +Remove-AzNetworkSecurityPerimeterLinkReference -Name -ResourceGroupName + -SecurityPerimeterName [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] + [-PassThru] [-WhatIf] [-Confirm] [] +``` + ++ DeleteViaIdentityNetworkSecurityPerimeter +```powershell +Remove-AzNetworkSecurityPerimeterLinkReference -Name + -NetworkSecurityPerimeterInputObject [-DefaultProfile ] [-AsJob] + [-NoWait] [-PassThru] [-WhatIf] [-Confirm] [] +``` + ++ DeleteViaIdentity +```powershell +Remove-AzNetworkSecurityPerimeterLinkReference -InputObject + [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-WhatIf] + [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Remove NetworkSecurityPerimeter LinkReference +```powershell +Remove-AzNetworkSecurityPerimeterLinkReference -Name Ref-from-link-test-1-00000000-78f8-4f1b-8f30-ffe0eaa74495 -ResourceGroupName rg-test-1 -SecurityPerimeterName nsp-test-1 +``` + +Remove NetworkSecurityPerimeter LinkReference + ++ Example 2: Remove NetworkSecurityPerimeter LinkReference via Identity +```powershell +$linkRefObj = Get-AzNetworkSecurityPerimeterLinkReference -Name Ref-from-link-test-1-00000000-78f8-4f1b-8f30-ffe0eaa74495 -ResourceGroupName rg-test-1 -SecurityPerimeterName nsp-test-1 +Remove-AzNetworkSecurityPerimeterLinkReference -InputObject $linkRefObj +``` + +Remove NetworkSecurityPerimeter LinkReference via Identity + + +#### New-AzNetworkSecurityPerimeterLoggingConfiguration + +#### SYNOPSIS +create NSP logging configuration. + +#### SYNTAX + ++ CreateExpanded (Default) +```powershell +New-AzNetworkSecurityPerimeterLoggingConfiguration [-Name ] -ResourceGroupName + -SecurityPerimeterName [-SubscriptionId ] [-EnabledLogCategory ] + [-Version ] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ CreateViaJsonString +```powershell +New-AzNetworkSecurityPerimeterLoggingConfiguration [-Name ] -ResourceGroupName + -SecurityPerimeterName [-SubscriptionId ] -JsonString [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ CreateViaJsonFilePath +```powershell +New-AzNetworkSecurityPerimeterLoggingConfiguration [-Name ] -ResourceGroupName + -SecurityPerimeterName [-SubscriptionId ] -JsonFilePath [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ CreateViaIdentityNetworkSecurityPerimeterExpanded +```powershell +New-AzNetworkSecurityPerimeterLoggingConfiguration [-Name ] + -NetworkSecurityPerimeterInputObject [-EnabledLogCategory ] + [-Version ] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ CreateViaIdentityNetworkSecurityPerimeter +```powershell +New-AzNetworkSecurityPerimeterLoggingConfiguration [-Name ] + -NetworkSecurityPerimeterInputObject -Parameter + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + ++ Create +```powershell +New-AzNetworkSecurityPerimeterLoggingConfiguration [-Name ] -ResourceGroupName + -SecurityPerimeterName [-SubscriptionId ] -Parameter + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + ++ CreateViaIdentityExpanded +```powershell +New-AzNetworkSecurityPerimeterLoggingConfiguration -InputObject + [-EnabledLogCategory ] [-Version ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Create NetworkSecurityPerimeter LoggingConfiguration +```powershell +New-AzNetworkSecurityPerimeterLoggingConfiguration -ResourceGroupName rg-test-1 -SecurityPerimeterName nsp-test-1 -EnabledLogCategory @('NspPublicOutboundPerimeterRulesAllowed') +``` + +```output +EnabledLogCategory : {NspPublicOutboundPerimeterRulesAllowed} +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-test-1/providers + /Microsoft.Network/networkSecurityPerimeters/nsp-test-1/loggingConfigurations/instance +Name : instance +ResourceGroupName : rg-test-1 +SystemDataCreatedAt : +SystemDataCreatedBy : +SystemDataCreatedByType : +SystemDataLastModifiedAt : +SystemDataLastModifiedBy : +SystemDataLastModifiedByType : +Type : Microsoft.Network/networkSecurityPerimeters/loggingConfigurations +Version : 1 +``` + +Create NetworkSecurityPerimeter LoggingConfiguration + + +#### Get-AzNetworkSecurityPerimeterLoggingConfiguration + +#### SYNOPSIS +Gets the NSP logging configuration. + +#### SYNTAX + ++ Get (Default) +```powershell +Get-AzNetworkSecurityPerimeterLoggingConfiguration [-Name ] -ResourceGroupName + -SecurityPerimeterName [-SubscriptionId ] [-DefaultProfile ] + [] +``` + ++ GetViaIdentityNetworkSecurityPerimeter +```powershell +Get-AzNetworkSecurityPerimeterLoggingConfiguration [-Name ] + -NetworkSecurityPerimeterInputObject [-DefaultProfile ] + [] +``` + ++ List +```powershell +Get-AzNetworkSecurityPerimeterLoggingConfiguration -ResourceGroupName -SecurityPerimeterName + [-SubscriptionId ] [-DefaultProfile ] + [] +``` + ++ GetViaIdentity +```powershell +Get-AzNetworkSecurityPerimeterLoggingConfiguration -InputObject + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Get NetworkSsecurityPerimeter LoggingConfiguration +```powershell +Get-AzNetworkSecurityPerimeterLoggingConfiguration -ResourceGroupName rg-test-1 -SecurityPerimeterName nsp-test-1 +``` + +```output +EnabledLogCategory : {NspPublicInboundPerimeterRulesAllowed} +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-test-1/providers + /Microsoft.Network/networkSecurityPerimeters/nsp-test-1/loggingConfigurations/instance +Name : instance +ResourceGroupName : rg-test-1 +SystemDataCreatedAt : +SystemDataCreatedBy : +SystemDataCreatedByType : +SystemDataLastModifiedAt : +SystemDataLastModifiedBy : +SystemDataLastModifiedByType : +Type : Microsoft.Network/networkSecurityPerimeters/loggingConfigurations +Version : 4 +``` + +Get NetworkSsecurityPerimeter LoggingConfiguration + + +#### Remove-AzNetworkSecurityPerimeterLoggingConfiguration + +#### SYNOPSIS +Deletes an NSP Logging configuration. + +#### SYNTAX + ++ Delete (Default) +```powershell +Remove-AzNetworkSecurityPerimeterLoggingConfiguration [-Name ] -ResourceGroupName + -SecurityPerimeterName [-SubscriptionId ] [-DefaultProfile ] [-PassThru] + [-WhatIf] [-Confirm] [] +``` + ++ DeleteViaIdentityNetworkSecurityPerimeter +```powershell +Remove-AzNetworkSecurityPerimeterLoggingConfiguration [-Name ] + -NetworkSecurityPerimeterInputObject [-DefaultProfile ] + [-PassThru] [-WhatIf] [-Confirm] [] +``` + ++ DeleteViaIdentity +```powershell +Remove-AzNetworkSecurityPerimeterLoggingConfiguration -InputObject + [-DefaultProfile ] [-PassThru] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Remove NetworkSecurityPerimeter LoggingConfiguration +```powershell +Remove-AzNetworkSecurityPerimeterLoggingConfiguration -ResourceGroupName rg-test-1 -SecurityPerimeterName nsp-test-1 +``` + +Remove NetworkSecurityPerimeter LoggingConfiguration + ++ Example 2: Remove NetworkSecurityPerimeter LoggingConfiguration via Identity +```powershell +$configObj = Get-AzNetworkSecurityPerimeterLoggingConfiguration -ResourceGroupName rg-test-1 -SecurityPerimeterName nsp-test-1 +Remove-AzNetworkSecurityPerimeterLoggingConfiguration -InputObject $configObj +``` + +Remove NetworkSecurityPerimeter LoggingConfiguration via Identity + + +#### Update-AzNetworkSecurityPerimeterLoggingConfiguration + +#### SYNOPSIS +Updates a NSP Logging Configuration + +#### SYNTAX + ++ UpdateExpanded (Default) +```powershell +Update-AzNetworkSecurityPerimeterLoggingConfiguration -ResourceGroupName + -SecurityPerimeterName [-SubscriptionId ] [-Name ] [-EnabledLogCategory ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-WhatIf] [-Confirm] + [] +``` + ++ UpdateViaIdentityExpanded +```powershell +Update-AzNetworkSecurityPerimeterLoggingConfiguration -InputObject + [-EnabledLogCategory ] [-DefaultProfile ] [-AsJob] [-NoWait] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Update NetworkSecurityPerimeter LoggingConfiguration +```powershell +Update-AzNetworkSecurityPerimeterLoggingConfiguration -ResourceGroupName rg-test-1 -SecurityPerimeterName nsp-test-1 -EnabledLogCategory @('NspPublicOutboundPerimeterRulesAllowed') +``` + +```output +EnabledLogCategory : {NspPublicOutboundPerimeterRulesAllowed} +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-test-1/providers + /Microsoft.Network/networkSecurityPerimeters/nsp-test-1/loggingConfigurations/instance +Name : instance +ResourceGroupName : rg-test-1 +SystemDataCreatedAt : +SystemDataCreatedBy : +SystemDataCreatedByType : +SystemDataLastModifiedAt : +SystemDataLastModifiedBy : +SystemDataLastModifiedByType : +Type : Microsoft.Network/networkSecurityPerimeters/loggingConfigurations +Version : 2 +``` + +Update NetworkSecurityPerimeter LoggingConfiguration + + +#### New-AzNetworkSecurityPerimeterProfile + +#### SYNOPSIS +create a network profile. + +#### SYNTAX + ++ CreateExpanded (Default) +```powershell +New-AzNetworkSecurityPerimeterProfile -Name -ResourceGroupName + -SecurityPerimeterName [-SubscriptionId ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ CreateViaJsonString +```powershell +New-AzNetworkSecurityPerimeterProfile -Name -ResourceGroupName + -SecurityPerimeterName [-SubscriptionId ] -JsonString [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ CreateViaJsonFilePath +```powershell +New-AzNetworkSecurityPerimeterProfile -Name -ResourceGroupName + -SecurityPerimeterName [-SubscriptionId ] -JsonFilePath [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ CreateViaIdentityNetworkSecurityPerimeterExpanded +```powershell +New-AzNetworkSecurityPerimeterProfile -Name + -NetworkSecurityPerimeterInputObject [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ CreateViaIdentityNetworkSecurityPerimeter +```powershell +New-AzNetworkSecurityPerimeterProfile -Name + -NetworkSecurityPerimeterInputObject -Parameter + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + ++ Create +```powershell +New-AzNetworkSecurityPerimeterProfile -Name -ResourceGroupName + -SecurityPerimeterName [-SubscriptionId ] -Parameter + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + ++ CreateViaIdentityExpanded +```powershell +New-AzNetworkSecurityPerimeterProfile -InputObject + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Create NetworkSecurityPerimeter Profile +```powershell +New-AzNetworkSecurityPerimeterProfile -Name profile-test-1 -ResourceGroupName rg-test-1 -SecurityPerimeterName nsp-test-1 +``` + +```output +AccessRulesVersion : 0 +DiagnosticSettingsVersion : 0 +Id : /subscriptions/00000000-0000-0000-0000-000000000000/rg-test-1/providers + /Microsoft.Network/networkSecurityPerimeters/nsp-test-1/profiles/profile-test-1 +Name : profile-test-1 +ResourceGroupName : rg-test-1 +SystemDataCreatedAt : +SystemDataCreatedBy : +SystemDataCreatedByType : +SystemDataLastModifiedAt : +SystemDataLastModifiedBy : +SystemDataLastModifiedByType : +Type : Microsoft.Network/networkSecurityPerimeters/profiles +``` + +Creates NetworkSecurityPerimeter Profile + + +#### Get-AzNetworkSecurityPerimeterProfile + +#### SYNOPSIS +Gets the specified NSP profile. + +#### SYNTAX + ++ List (Default) +```powershell +Get-AzNetworkSecurityPerimeterProfile -ResourceGroupName -SecurityPerimeterName + [-SubscriptionId ] [-SkipToken ] [-Top ] [-DefaultProfile ] + [] +``` + ++ GetViaIdentityNetworkSecurityPerimeter +```powershell +Get-AzNetworkSecurityPerimeterProfile -Name + -NetworkSecurityPerimeterInputObject [-DefaultProfile ] + [] +``` + ++ Get +```powershell +Get-AzNetworkSecurityPerimeterProfile -Name -ResourceGroupName + -SecurityPerimeterName [-SubscriptionId ] [-DefaultProfile ] + [] +``` + ++ GetViaIdentity +```powershell +Get-AzNetworkSecurityPerimeterProfile -InputObject + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: List NetworkSecurityPerimeter Profiles +```powershell +Get-AzNetworkSecurityPerimeterProfile -ResourceGroupName rg-test-1 -SecurityPerimeterName nsp-test-1 +``` + +```output +Name ResourceGroupName +---- ----------------- +profile-test-1 rg-test-1 +profile-test-2 rg-test-1 +``` + +List NetworkSecurityPerimeter Profiles + ++ Example 2: Get NetworkSecurityPerimeter Profile by Name +```powershell +Get-AzNetworkSecurityPerimeterProfile -Name profile-test-1 -ResourceGroupName rg-test-1 -SecurityPerimeterName nsp-test-1 +``` + +```output +AccessRulesVersion : 5 +DiagnosticSettingsVersion : 0 +Id : /subscriptions/0000000-4afa-47ee-8ea4-1c8449c8c8d9/resourceGroups/rg-test-1/providers + /Microsoft.Network/networkSecurityPerimeters/nsp-test-1/profiles/profile-test-1 +Name : profile-test-1 +ResourceGroupName : rg-test-1 +SystemDataCreatedAt : +SystemDataCreatedBy : +SystemDataCreatedByType : +SystemDataLastModifiedAt : +SystemDataLastModifiedBy : +SystemDataLastModifiedByType : +Type : Microsoft.Network/networkSecurityPerimeters/profiles +``` + +Get NetworkSecurityPerimeter Profile by Name + ++ Example 3: Get NetworkSecurityPerimeter Profile by Identity (using pipe) +```powershell +$GETObj = Get-AzNetworkSecurityPerimeterProfile -Name profile-test-1 -ResourceGroupName rg-test-1 -SecurityPerimeterName nsp-test-1 +Get-AzNetworkSecurityPerimeterProfile -InputObject $GETObj +``` + +```output +AccessRulesVersion : 5 +DiagnosticSettingsVersion : 0 +Id : /subscriptions/0000000-4afa-47ee-8ea4-1c8449c8c8d9/resourceGroups/rg-test-1/providers + /Microsoft.Network/networkSecurityPerimeters/nsp-test-1/profiles/profile-test-1 +Name : profile-test-1 +ResourceGroupName : rg-test-1 +SystemDataCreatedAt : +SystemDataCreatedBy : +SystemDataCreatedByType : +SystemDataLastModifiedAt : +SystemDataLastModifiedBy : +SystemDataLastModifiedByType : +Type : Microsoft.Network/networkSecurityPerimeters/profiles +``` + +Get NetworkSecurityPerimeter Profile by Identity (using pipe) + + +#### Remove-AzNetworkSecurityPerimeterProfile + +#### SYNOPSIS +Deletes an NSP profile. + +#### SYNTAX + ++ Delete (Default) +```powershell +Remove-AzNetworkSecurityPerimeterProfile -Name -ResourceGroupName + -SecurityPerimeterName [-SubscriptionId ] [-DefaultProfile ] [-PassThru] + [-WhatIf] [-Confirm] [] +``` + ++ DeleteViaIdentityNetworkSecurityPerimeter +```powershell +Remove-AzNetworkSecurityPerimeterProfile -Name + -NetworkSecurityPerimeterInputObject [-DefaultProfile ] + [-PassThru] [-WhatIf] [-Confirm] [] +``` + ++ DeleteViaIdentity +```powershell +Remove-AzNetworkSecurityPerimeterProfile -InputObject + [-DefaultProfile ] [-PassThru] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Delete NetworkSecurityPerimeter Profile by Name +```powershell +Remove-AzNetworkSecurityPerimeterProfile -Name profile-test-1 -ResourceGroupName rg-test-1 -SecurityPerimeterName nsp-test-1 +``` + +Delete NetworkSecurityPerimeter Profile by Name + ++ Example 2: Delete NetworkSecurityPerimeter Profile by Identity (using pipe) +```powershell +$profileObj = Get-AzNetworkSecurityPerimeterProfile -Name profile-test-1 -ResourceGroupName rg-test-1 -SecurityPerimeterName nsp-test-1 +Remove-AzNetworkSecurityPerimeterProfile -InputObject $profileObj +``` + +Delete NetworkSecurityPerimeter Profile by Identity (using pipe) + + +#### Get-AzNetworkSecurityPerimeterServiceTag + +#### SYNOPSIS +Gets the list of service tags supported by NSP. +These service tags can be used to list access rules in NSP. + +#### SYNTAX + +```powershell +Get-AzNetworkSecurityPerimeterServiceTag -Location [-SubscriptionId ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: List NetworkSecurityPerimeter ServiceTags +```powershell +Get-AzNetworkSecurityPerimeterServiceTag -Location eastus2euap +``` + +```output +ServiceTags +---- +ActionGroup +ApiManagement +ApiManagement.AustraliaCentral +ApiManagement.AustraliaCentral2 +``` + +List NetworkSecurityPerimeter ServiceTags + + +#### New-AzNetworkSecurityRuleConfig + +#### SYNOPSIS +Creates a network security rule configuration. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +New-AzNetworkSecurityRuleConfig -Name [-Description ] [-Protocol ] + [-SourcePortRange ] [-DestinationPortRange ] [-SourceAddressPrefix ] + [-DestinationAddressPrefix ] [-SourceApplicationSecurityGroup ] + [-DestinationApplicationSecurityGroup ] [-Access ] [-Priority ] + [-Direction ] [-DefaultProfile ] + [] +``` + ++ SetByResourceId +```powershell +New-AzNetworkSecurityRuleConfig -Name [-Description ] [-Protocol ] + [-SourcePortRange ] [-DestinationPortRange ] [-SourceAddressPrefix ] + [-DestinationAddressPrefix ] [-SourceApplicationSecurityGroupId ] + [-DestinationApplicationSecurityGroupId ] [-Access ] [-Priority ] + [-Direction ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Create a network security rule to allow RDP +```powershell +$rule1 = New-AzNetworkSecurityRuleConfig -Name rdp-rule -Description "Allow RDP" ` + -Access Allow -Protocol Tcp -Direction Inbound -Priority 100 -SourceAddressPrefix ` + Internet -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 3389 +``` + +This command creates a security rule allowing access from the Internet to port 3389 + ++ Example 2: Create a network security rule that allows HTTP +```powershell +$rule2 = New-AzNetworkSecurityRuleConfig -Name web-rule -Description "Allow HTTP" ` + -Access Allow -Protocol Tcp -Direction Inbound -Priority 101 -SourceAddressPrefix ` + Internet -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 80 +``` + +This command creates a security rule allowing access from the Internet to port 80 + + +#### Add-AzNetworkSecurityRuleConfig + +#### SYNOPSIS +Adds a network security rule configuration to a network security group. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +Add-AzNetworkSecurityRuleConfig -Name -NetworkSecurityGroup + [-Description ] [-Protocol ] [-SourcePortRange ] [-DestinationPortRange ] + [-SourceAddressPrefix ] [-DestinationAddressPrefix ] + [-SourceApplicationSecurityGroup ] + [-DestinationApplicationSecurityGroup ] [-Access ] [-Priority ] + [-Direction ] [-DefaultProfile ] + [] +``` + ++ SetByResourceId +```powershell +Add-AzNetworkSecurityRuleConfig -Name -NetworkSecurityGroup + [-Description ] [-Protocol ] [-SourcePortRange ] [-DestinationPortRange ] + [-SourceAddressPrefix ] [-DestinationAddressPrefix ] + [-SourceApplicationSecurityGroupId ] [-DestinationApplicationSecurityGroupId ] + [-Access ] [-Priority ] [-Direction ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Adding a network security group +```powershell +Get-AzNetworkSecurityGroup -Name nsg1 -ResourceGroupName rg1 | +Add-AzNetworkSecurityRuleConfig -Name rdp-rule -Description "Allow RDP" -Access ` + Allow -Protocol Tcp -Direction Inbound -Priority 100 -SourceAddressPrefix Internet ` + -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 3389 | + Set-AzNetworkSecurityGroup +``` + +The first command retrieves an Azure network security group named "nsg1" from resource group "rg1". The second command adds a network security rule named "rdp-rule" that allows traffic from internet on port 3389 to the retrieved network security group object. Persists the modified Azure network security group. + ++ Example 2: Adding a new security rule with application security groups +```powershell +$srcAsg = New-AzApplicationSecurityGroup -ResourceGroupName MyResourceGroup -Name srcAsg -Location "West US" +$destAsg = New-AzApplicationSecurityGroup -ResourceGroupName MyResourceGroup -Name destAsg -Location "West US" + +Get-AzNetworkSecurityGroup -Name nsg1 -ResourceGroupName rg1 | +Add-AzNetworkSecurityRuleConfig -Name rdp-rule -Description "Allow RDP" -Access ` + Allow -Protocol Tcp -Direction Inbound -Priority 100 -SourceApplicationSecurityGroup ` + $srcAsg -SourcePortRange * -DestinationApplicationSecurityGroup $destAsg -DestinationPortRange 3389 | +Set-AzNetworkSecurityGroup +``` + +First, we create two new application security groups. Then, we retrieve an Azure network security group named "nsg1" from resource group "rg1". and add a network security rule named "rdp-rule" to it. The rule allows traffic from all the IP configurations in the application security group "srcAsg" to all the IP configurations in "destAsg" on port 3389. After adding the rule, we persist the modified Azure network security group. + + +#### Get-AzNetworkSecurityRuleConfig + +#### SYNOPSIS +Get a network security rule configuration for a network security group. + +#### SYNTAX + +```powershell +Get-AzNetworkSecurityRuleConfig [-Name ] -NetworkSecurityGroup [-DefaultRules] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Retrieving a network security rule config +```powershell +Get-AzNetworkSecurityGroup -Name nsg1 -ResourceGroupName rg1 ` + | Get-AzNetworkSecurityRuleConfig -Name AllowInternetOutBound -DefaultRules +``` + +This command retrieves the default rule named "AllowInternetOutBound" from Azure network security group named "nsg1" in resource group "rg1" + ++ Example 2: Retrieving a network security rule config using only the name +```powershell +Get-AzNetworkSecurityGroup -Name nsg1 -ResourceGroupName rg1 ` + | Get-AzNetworkSecurityRuleConfig -Name "rdp-rule" +``` + +This command retrieves user defined rule named "rdp-rule" from Azure network security group named "nsg1" in resource group "rg1" + + +#### Remove-AzNetworkSecurityRuleConfig + +#### SYNOPSIS +Removes a network security rule from a network security group. + +#### SYNTAX + +```powershell +Remove-AzNetworkSecurityRuleConfig [-Name ] -NetworkSecurityGroup + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Remove a network security rule configuration +```powershell +$rule1 = New-AzNetworkSecurityRuleConfig -Name "rdp-rule" -Description "Allow RDP" -Access "Allow" -Protocol "Tcp" -Direction "Inbound" -Priority 100 -SourceAddressPrefix "Internet" -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 3389 +$nsg = New-AzNetworkSecurityGroup -ResourceGroupName "TestRG" -Location "westus" -Name "NSG-FrontEnd" -SecurityRules $rule1 +Remove-AzNetworkSecurityRuleConfig -Name "rdp-rule" -NetworkSecurityGroup $nsg +$nsg | Set-AzNetworkSecurityGroup +``` + +The first command creates a network security rule configuration named rdp-rule, and then stores it in the $rule1 variable. +The second command creates a network security group using the rule in $rule1, and then stores the network security group in the $nsg variable. +The third command removes the network security rule configuration named rdp-rule from the network security group in $nsg. +The forth command saves the change. + + +#### Set-AzNetworkSecurityRuleConfig + +#### SYNOPSIS +Updates a network security rule configuration for a network security group. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +Set-AzNetworkSecurityRuleConfig -Name -NetworkSecurityGroup + [-Description ] [-Protocol ] [-SourcePortRange ] [-DestinationPortRange ] + [-SourceAddressPrefix ] [-DestinationAddressPrefix ] + [-SourceApplicationSecurityGroup ] + [-DestinationApplicationSecurityGroup ] [-Access ] [-Priority ] + [-Direction ] [-DefaultProfile ] + [] +``` + ++ SetByResourceId +```powershell +Set-AzNetworkSecurityRuleConfig -Name -NetworkSecurityGroup + [-Description ] [-Protocol ] [-SourcePortRange ] [-DestinationPortRange ] + [-SourceAddressPrefix ] [-DestinationAddressPrefix ] + [-SourceApplicationSecurityGroupId ] [-DestinationApplicationSecurityGroupId ] + [-Access ] [-Priority ] [-Direction ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Change the access configuration in a network security rule +```powershell +$nsg = Get-AzNetworkSecurityGroup -Name "NSG-FrontEnd" -ResourceGroupName "TestRG" +$nsg | Get-AzNetworkSecurityRuleConfig -Name "rdp-rule" +Set-AzNetworkSecurityRuleConfig -Name "rdp-rule" -NetworkSecurityGroup $nsg -Access "Deny" +``` + +The first command gets the network security group named NSG-FrontEnd, and then stores it in the variable $nsg. +The second command uses the pipeline operator to pass the security group in $nsg to Get-AzNetworkSecurityRuleConfig, which gets the security rule configuration named rdp-rule. +The third command changes the access configuration of rdp-rule to Deny. However, this overwrites the rule and only sets the parameters that are passed to the Set-AzNetworkSecurityRuleConfig function. NOTE: There is no way to change a single attribute + ++ Example 2 + +Updates a network security rule configuration for a network security group. (autogenerated) + + + + +```powershell +Set-AzNetworkSecurityRuleConfig -Access Allow -DestinationAddressPrefix * -DestinationPortRange 3389 -Direction Inbound -Name 'rdp-rule' -NetworkSecurityGroup -Priority 1 -Protocol Tcp -SourceAddressPrefix 'Internet' -SourcePortRange * +``` + ++ Example 3 + +Updates a network security rule configuration for a network security group. (autogenerated) + + + + +```powershell +Set-AzNetworkSecurityRuleConfig -Access Allow -Description 'Allow RDP' -DestinationAddressPrefix * -DestinationPortRange 3389 -Direction Inbound -Name 'rdp-rule' -NetworkSecurityGroup -Priority 1 -Protocol Tcp -SourceAddressPrefix 'Internet' -SourcePortRange * +``` + ++ Example 4 + +Updates a network security rule configuration for a network security group (Source IP address) + +```powershell +$nsg = Get-AzNetworkSecurityGroup -ResourceGroupName "MyResource" -Name "MyNsg" +($nsg.SecurityRules | Where-Object {$_.Name -eq "RuleName"}).SourceAddressPrefix = ([System.String[]] @("xxx.xxx.xxx.xxx")) +$nsg | Set-AzNetworkSecurityGroup | Get-AzNetworkSecurityRuleConfig -Name "RuleName" +``` + + +#### Get-AzNetworkServiceTag + +#### SYNOPSIS +Gets the list of service tag information resources. + +#### SYNTAX + +```powershell +Get-AzNetworkServiceTag -Location [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 + + + +```powershell +$serviceTags = Get-AzNetworkServiceTag -Location eastus2 +$serviceTags + +Name : Public +Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx/providers/Microsoft.Network/serviceTags/Public +Type : Microsoft.Network/serviceTags +ChangeNumber : 63 +Cloud : Public +Values : {ApiManagement, ApiManagement.AustraliaCentral, ApiManagement.AustraliaCentral2, ApiManagement.AustraliaEast...} + +$serviceTags.Values + +Name : ApiManagement +System Service : AzureApiManagement +Address Prefixes : {13.64.39.16/32, 13.66.138.92/31, 13.66.140.176/28, 13.67.8.108/31...} +Change Number : 7 + +Name : ApiManagement.AustraliaCentral +System Service : AzureApiManagement +Region : australiacentral +Address Prefixes : {20.36.106.68/31, 20.36.107.176/28} +Change Number : 2 + +Name : ApiManagement.AustraliaCentral2 +System Service : AzureApiManagement +Region : australiacentral2 +Address Prefixes : {20.36.114.20/31, 20.36.115.128/28} +Change Number : 2 + +Name : ApiManagement.AustraliaEast +System Service : AzureApiManagement +Region : australiaeast +Address Prefixes : {13.70.72.28/31, 13.70.72.240/28, 13.75.217.184/32, 13.75.221.78/32...} +Change Number : 3 + +Name : ApiManagement.AustraliaSoutheast +System Service : AzureApiManagement +Region : australiasoutheast +Address Prefixes : {13.77.50.68/31, 13.77.52.224/28} +Change Number : 2 + +... +``` + +The command gets the list of service tag information resources and stores it in variable `serviceTags`. + ++ Example 2: Get all address prefixes for AzureSQL + + + +```powershell +$serviceTags = Get-AzNetworkServiceTag -Location eastus2 +$sql = $serviceTags.Values | Where-Object { $_.Name -eq "Sql" } +$sql + +Name : Sql +System Service : AzureSQL +Address Prefixes : {13.65.31.249/32, 13.65.39.207/32, 13.65.85.183/32, 13.65.200.105/32...} +Change Number : 18 + +$sql.Properties.AddressPrefixes.Count +644 +$sql.Properties.AddressPrefixes +13.65.31.249/32 +13.65.39.207/32 +13.65.85.183/32 +13.65.200.105/32 +13.65.209.243/32 +... +``` + +The first command gets the list of service tag information resources and stores it in variable `serviceTags`. +The second command filters the list to select information resource for Sql. + ++ Example 3: Get Storage's service tag information resource for West US 2 + + + +```powershell +$serviceTags = Get-AzNetworkServiceTag -Location eastus2 +$serviceTags.Values | Where-Object { $_.Name -eq "Storage.WestUS2" } + +Name : Storage.WestUS2 +System Service : AzureStorage +Region : westus2 +Address Prefixes : {13.66.176.16/28, 13.66.176.48/28, 13.66.232.64/28, 13.66.232.208/28...} +Change Number : 5 + +$serviceTags.Values | Where-Object { $_.Name -like "Storage*" -and $_.Properties.Region -eq "westus2" } + +Name : Storage.WestUS2 +System Service : AzureStorage +Region : westus2 +Address Prefixes : {13.66.176.16/28, 13.66.176.48/28, 13.66.232.64/28, 13.66.232.208/28...} +Change Number : 5 + +$serviceTags.Values | Where-Object { $_.Properties.SystemService -eq "AzureStorage" -and $_.Properties.Region -eq "westus2" } + +Name : Storage.WestUS2 +System Service : AzureStorage +Region : westus2 +Address Prefixes : {13.66.176.16/28, 13.66.176.48/28, 13.66.232.64/28, 13.66.232.208/28...} +Change Number : 5 +``` + +The first command gets the list of service tag information resources and stores it in variable `serviceTags`. +The following commands show various way to filter the list to select service tag information for Storage in West US 2. + ++ Example 4: Get all global service tag information resources +```powershell +$serviceTags = Get-AzNetworkServiceTag -Location eastus2 +$serviceTags.Values | Where-Object { -not $_.Properties.Region } +``` + +```output +Name : ApiManagement +System Service : AzureApiManagement +Address Prefixes : {13.64.39.16/32, 13.66.138.92/31, 13.66.140.176/28, 13.67.8.108/31...} +Change Number : 7 + +Name : AppService +System Service : AzureAppService +Address Prefixes : {13.64.73.110/32, 13.65.30.245/32, 13.65.37.122/32, 13.65.39.165/32...} +Change Number : 13 + +Name : AppServiceManagement +System Service : AzureAppServiceManagement +Address Prefixes : {13.64.115.203/32, 13.66.140.0/26, 13.67.8.128/26, 13.69.64.128/26...} +Change Number : 7 + +Name : AzureActiveDirectory +System Service : AzureAD +Address Prefixes : {13.64.151.161/32, 13.66.141.64/27, 13.67.9.224/27, 13.67.50.224/29...} +Change Number : 3 + +Name : AzureActiveDirectoryDomainServices +System Service : AzureIdentity +Address Prefixes : {13.64.151.161/32, 13.66.141.64/27, 13.67.9.224/27, 13.69.66.160/27...} +Change Number : 2 + +... +``` + +The first command gets the list of service tag information resources and stores it in variable `serviceTags`. +The second command filters the list to select only those without set region. + + +#### Get-AzNetworkUsage + +#### SYNOPSIS +Lists network usages for a subscription + +#### SYNTAX + +```powershell +Get-AzNetworkUsage -Location [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzNetworkUsage -Location westcentralus +``` + +```output +ResourceType : Virtual Networks +CurrentValue : 6 +Limit : 50 + +ResourceType : Static Public IP Addresses +CurrentValue : 1 +Limit : 20 + +ResourceType : Network Security Groups +CurrentValue : 2 +Limit : 100 + +ResourceType : Public IP Addresses +CurrentValue : 6 +Limit : 60 + +ResourceType : Network Interfaces +CurrentValue : 1 +Limit : 300 + +ResourceType : Load Balancers +CurrentValue : 1 +Limit : 100 + +ResourceType : Application Gateways +CurrentValue : 1 +Limit : 50 + +ResourceType : Route Tables +CurrentValue : 0 +Limit : 100 + +ResourceType : Route Filters +CurrentValue : 0 +Limit : 1000 + +ResourceType : Network Watchers +CurrentValue : 1 +Limit : 1 + +ResourceType : Packet Captures +CurrentValue : 0 +Limit : 10 +``` + +Gets resources usage data in westcentralus region + + +#### New-AzNetworkVirtualAppliance + +#### SYNOPSIS +Create a Network Virtual Appliance resource. + +#### SYNTAX + ++ ResourceNameParameterSet (Default) +```powershell +New-AzNetworkVirtualAppliance -Name -ResourceGroupName -Location + [-VirtualHubId ] -Sku -VirtualApplianceAsn + [-Identity ] [-BootStrapConfigurationBlob ] + [-CloudInitConfigurationBlob ] [-CloudInitConfiguration ] [-Tag ] [-Force] + [-AsJob] [-AdditionalNic ] + [-InternetIngressIp ] + [-NetworkProfile ] + [-NvaInterfaceConfiguration ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ResourceIdParameterSet +```powershell +New-AzNetworkVirtualAppliance -ResourceId -Location [-VirtualHubId ] + -Sku -VirtualApplianceAsn [-Identity ] + [-BootStrapConfigurationBlob ] [-CloudInitConfigurationBlob ] + [-CloudInitConfiguration ] [-Tag ] [-Force] [-AsJob] + [-AdditionalNic ] + [-InternetIngressIp ] + [-NetworkProfile ] + [-NvaInterfaceConfiguration ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$sku=New-AzVirtualApplianceSkuProperty -VendorName "barracudasdwanrelease" -BundledScaleUnit 1 -MarketPlaceVersion 'latest' + +$hub=Get-AzVirtualHub -ResourceGroupName testrg -Name hub + +$nva=New-AzNetworkVirtualAppliance -ResourceGroupName testrg -Name nva -Location eastus2 -VirtualApplianceAsn 1270 -VirtualHubId $hub.Id -Sku $sku -CloudInitConfiguration "echo Hello World!" +``` + +Creates a new Network Virtual Appliance resource in resource group: testrg. + ++ Example 2 +```powershell +$sku=New-AzVirtualApplianceSkuProperty -VendorName "ciscosdwantest" -BundledScaleUnit 4 -MarketPlaceVersion '17.6.03' + +$hub=Get-AzVirtualHub -ResourceGroupName testrg -Name hub + +$additionalNic=New-AzVirtualApplianceAdditionalNicProperty -NicName "sdwan" -HasPublicIp $true + +$nva=New-AzNetworkVirtualAppliance -ResourceGroupName testrg -Name nva -Location eastus2 -VirtualApplianceAsn 65222 -VirtualHubId $hub.Id -Sku $sku -CloudInitConfiguration "echo Hello World!" -AdditionalNic $additionalNic +``` + +Creates a new Network Virtual Appliance resource in resource group: testrg with additional nic "sdwan" and a public IP attached to "sdwan" nic. + ++ Example 3 +```powershell +$sku=New-AzVirtualApplianceSkuProperty -VendorName "ciscosdwantest" -BundledScaleUnit 4 -MarketPlaceVersion '17.6.03' +$hub=Get-AzVirtualHub -ResourceGroupName testrg -Name hub +$id1 = "/subscriptions/{subscriptionid}/resourceGroups/testrg/providers/Microsoft.Network/publicIPAddresses/{publicip1name}" +$pip2 = Get-AzPublicIpAddress -Name publicip2name +$id2 = $pip2.Id +$IngressIps=New-AzVirtualApplianceInternetIngressIpsProperty -InternetIngressPublicIpId $id1, $id2 +$nva=New-AzNetworkVirtualAppliance -ResourceGroupName testrg -Name nva -Location eastus2 -VirtualApplianceAsn 65222 -VirtualHubId $hub.Id -Sku $sku -CloudInitConfiguration "echo Hello World!" -InternetIngressIp $IngressIps +``` + +Creates a new Network Virtual Appliance resource in resource group: testrg with 2 Internet Ingress Public IPs attached to it. + ++ Example 4 +```powershell +$sku = New-AzVirtualApplianceSkuProperty -VendorName "ciscosdwantest" -BundledScaleUnit 4 -MarketPlaceVersion '17.6.03' +$hub = Get-AzVirtualHub -ResourceGroupName testrg -Name hub + +$ipConfig1 = New-AzVirtualApplianceIpConfiguration -Name "publicnicipconfig" -Primary $true +$ipConfig2 = New-AzVirtualApplianceIpConfiguration -Name "publicnicipconfig-2" -Primary $false +$nicConfig1 = New-AzVirtualApplianceNetworkInterfaceConfiguration -NicType "PublicNic" -IpConfiguration $ipConfig1, $ipConfig2 + +$ipConfig3 = New-AzVirtualApplianceIpConfiguration -Name "privatenicipconfig" -Primary $true +$ipConfig4 = New-AzVirtualApplianceIpConfiguration -Name "privatenicipconfig-2" -Primary $false +$nicConfig2 = New-AzVirtualApplianceNetworkInterfaceConfiguration -NicType "PrivateNic" -IpConfiguration $ipConfig3, $ipConfig4 +$networkProfile = New-AzVirtualApplianceNetworkProfile -NetworkInterfaceConfiguration $nicConfig1, $nicConfig2 + +$nva = New-AzNetworkVirtualAppliance -ResourceGroupName testrg -Name nva -Location eastus2 -VirtualApplianceAsn 65222 -VirtualHubId $hub.Id -Sku $sku -CloudInitConfiguration "echo Hello World!" -NetworkProfile $networkProfile +``` + +Creates a new Network Virtual Appliance resource in resource group: testrg with network profile containing 2 IP configurations on both network interfaces. + ++ Example 5 +```powershell +$sku = New-AzVirtualApplianceSkuProperty -VendorName "ciscosdwantest" -BundledScaleUnit 4 -MarketPlaceVersion '17.6.03' + +$config1 = New-AzNvaInterfaceConfiguration -NicType "PrivateNic" -Name "privateInterface" -SubnetId "/subscriptions/{subscriptionid}/resourceGroups/{rgname}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName}" +$config2 = New-AzNvaInterfaceConfiguration -NicType "PublicNic" -Name "publicInterface" -SubnetId "/subscriptions/{subscriptionid}/resourceGroups/{rgname}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{anotherSubnetName}" + +$nva = New-AzNetworkVirtualAppliance -ResourceGroupName testrg -Name nva -Location eastus2 -VirtualApplianceAsn 65222 -NvaInterfaceConfiguration $config1,$config2 -Sku $sku -CloudInitConfiguration "echo Hello World!" +``` + +Creates a new Network Virtual Appliance resource deployed in VNet with PrivateNic & PublicNic type. + + +#### Get-AzNetworkVirtualAppliance + +#### SYNOPSIS +Get or List Network Virtual Appliances. + +#### SYNTAX + ++ ResourceNameParameterSet (Default) +```powershell +Get-AzNetworkVirtualAppliance [-Name ] [-ResourceGroupName ] + [-DefaultProfile ] [] +``` + ++ ResourceIdParameterSet +```powershell +Get-AzNetworkVirtualAppliance -ResourceId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzNetworkVirtualAppliance -ResourceGroupName testrg -Name nva +``` + +```output +BootStrapConfigurationBlobs : {} +VirtualHub : { + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/pr + oviders/Microsoft.Network/virtualHubs/hubtest" + } +CloudInitConfigurationBlobs : {} +CloudInitConfiguration : echo hi +VirtualApplianceAsn : 1270 +VirtualApplianceNics : {privatenicipconfig, publicnicipconfig, privatenicipconfig, publicnicipconfig} +VirtualApplianceSites : {} +ProvisioningState : Succeeded +Identity : +NvaSku : Microsoft.Azure.Commands.Network.Models.PSVirtualApplianceSkuProperties +ResourceGroupName : testrg +Location : eastus2 +Delegation : {} +PartnerManagedResource : {} +ResourceGuid : +Type : Microsoft.Network/NetworkVirtualAppliances +Tag : +TagsTable : +Name : nva +Etag : 00000000-0000-0000-0000-000000000000 +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Network/networkVirtualAppliances/nva +``` + +Get a Network Virtual Appliance resource. + + +#### Remove-AzNetworkVirtualAppliance + +#### SYNOPSIS +Remove a Network Virtual Appliance resource. + +#### SYNTAX + ++ ResourceNameParameterSet (Default) +```powershell +Remove-AzNetworkVirtualAppliance -Name -ResourceGroupName [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ResourceIdParameterSet +```powershell +Remove-AzNetworkVirtualAppliance -ResourceId [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ResourceObjectParameterSet +```powershell +Remove-AzNetworkVirtualAppliance -NetworkVirtualAppliance [-Force] [-PassThru] + [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzNetworkVirtualAppliance -ResourceGroupName testrg -Name nva +``` + +Delete a Network Virtual Appliance resource. + + +#### Restart-AzNetworkVirtualAppliance + +#### SYNOPSIS +Restarts a virtual machine instance in the Network Virtual Appliance or all the instances in a Network Virtual Appliance. + +#### SYNTAX + ++ ResourceNameParameterSet (Default) +```powershell +Restart-AzNetworkVirtualAppliance -ResourceGroupName -Name [-InstanceId ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ResourceIdParameterSet +```powershell +Restart-AzNetworkVirtualAppliance [-InstanceId ] -ResourceId [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Restart-AzNetworkVirtualAppliance -Name testNvaName -ResourceGroupName testRgName -InstanceId "1","0" +``` + +This command restarts the instances with ID "1" and ID "0" of the network virtual appliance named "testNvaName" that belongs to the resource group named "testRgName". + ++ Example 2 +```powershell +Restart-AzNetworkVirtualAppliance -Name testNvaName -ResourceGroupName testRgName +``` + +This command restarts all the instances of the network virtual appliance named "testNvaName" that belongs to the resource group named "testRgName". + + +#### Update-AzNetworkVirtualAppliance + +#### SYNOPSIS +Update or Change a Network Virtual Appliance resource. + +#### SYNTAX + +```powershell +Update-AzNetworkVirtualAppliance -Name -ResourceGroupName + [-Sku ] [-VirtualApplianceAsn ] [-Tag ] [-Force] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Update-AzNetworkVirtualAppliance -ResourceGroupName testrg -Name nva -VirtualApplianceAsn 1234 +``` + +Modify the Virtual Appliance ASN number. + ++ Example 2 + +Update or Change a Network Virtual Appliance resource. (autogenerated) + + + + +```powershell +Update-AzNetworkVirtualAppliance -Name nva -ResourceGroupName testrg -Sku +``` + + +#### Get-AzNetworkVirtualApplianceBootDiagnostics + +#### SYNOPSIS +Retrieves boot diagnostic logs for a given NetworkVirtualAppliance VM instance + +#### SYNTAX + ++ ResourceNameParameterSet (Default) +```powershell +Get-AzNetworkVirtualApplianceBootDiagnostics -ResourceGroupName -Name [-InstanceId ] + [-SerialConsoleStorageSasUrl ] [-ConsoleScreenshotStorageSasUrl ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ResourceIdParameterSet +```powershell +Get-AzNetworkVirtualApplianceBootDiagnostics [-InstanceId ] [-SerialConsoleStorageSasUrl ] + [-ConsoleScreenshotStorageSasUrl ] -ResourceId [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzNetworkVirtualApplianceBootDiagnostics -ResourceGroupName $rgname -Name $nvaname -InstanceId 0 -SerialConsoleStorageSasUrl -ConsoleScreenshotStorageSasUrl +``` + +This command retrieves boot diagnostic logs including the "serial console logs" and "console screen shot" for the given NetworkVirtualAppliance's instance 0 and copies it into the the storage blobs represented by the provided sas urls. + + +#### Get-AzNetworkVirtualApplianceConnection + +#### SYNOPSIS +Get or List Network Virtual Appliances connections connected to a Network Virtual Appliance. + +#### SYNTAX + ++ ResourceNameParameterSet (Default) +```powershell +Get-AzNetworkVirtualApplianceConnection -ResourceGroupName -VirtualApplianceName + [-Name ] [-DefaultProfile ] + [] +``` + ++ ResourceObjectParameterSet +```powershell +Get-AzNetworkVirtualApplianceConnection -VirtualAppliance [-Name ] + [-DefaultProfile ] [] +``` + ++ ResourceIdParameterSet +```powershell +Get-AzNetworkVirtualApplianceConnection -VirtualApplianceResourceId [-Name ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +Get-AzNetworkVirtualApplianceConnection -ResourceGroupName testrg -VirtualApplianceName nva +``` + +```output +Name : defaultConnection +ProvisioningState : Succeeded +PropagateStaticRoutes : False +EnableInternetSecurity : False +BgpPeerAddress : [] +Asn : 65222 +TunnelIdentifier : 0 +RoutingConfiguration : { + "AssociatedRouteTable": { + "Id":"/subscriptions/{subid}/resourceGroups/{resource-group-name}/providers/Microsoft.Network/virtualHubs/{hub-name}//hubRouteTables/defaultRouteTable" + }, + "PropagatedRouteTables": { + "Labels": [], + "Ids": [ + { + "Id": "/subscriptions/{subid}/resourceGroups/{resource-group-name}/providers/Microsoft.Network/virtualHubs/{hub-name}//hubRouteTables/defaultRouteTable" + } + ] + }, + "InboundRouteMap": {}, + "OutboundRouteMap": {} + } +``` + +The above will gets the connection from "testRG" resource group using Resource group and Parent NVA name + ++ Example 2 + +```powershell +$nva = Get-AzNetworkVirtualAppliance -ResourceGroupName testrg -Name nva +Get-AzNetworkVirtualApplianceConnection -VirtualAppliance $nva +``` + +```output +Name : defaultConnection +ProvisioningState : Succeeded +PropagateStaticRoutes : False +EnableInternetSecurity : False +BgpPeerAddress : [] +Asn : 65222 +TunnelIdentifier : 0 +RoutingConfiguration : { + "AssociatedRouteTable": { + "Id":"/subscriptions/{subid}/resourceGroups/{resource-group-name}/providers/Microsoft.Network/virtualHubs/{hub-name}//hubRouteTables/defaultRouteTable" + }, + "PropagatedRouteTables": { + "Labels": [], + "Ids": [ + { + "Id": "/subscriptions/{subid}/resourceGroups/{resource-group-name}/providers/Microsoft.Network/virtualHubs/{hub-name}//hubRouteTables/defaultRouteTable" + } + ] + }, + "InboundRouteMap": {}, + "OutboundRouteMap": {} + } +``` + +This cmdlet gets the NVA connection using Network Virtual Appliance object. + + +#### Update-AzNetworkVirtualApplianceConnection + +#### SYNOPSIS +Update or Change a Network Virtual Appliance Connection resource. + +#### SYNTAX + ++ ResourceNameParameterSet (Default) +```powershell +Update-AzNetworkVirtualApplianceConnection -ResourceGroupName -VirtualApplianceName + -Name [-RoutingConfiguration ] [-Force] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ResourceObjectParameterSet +```powershell +Update-AzNetworkVirtualApplianceConnection -VirtualAppliance -Name + [-RoutingConfiguration ] [-Force] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ResourceIdParameterSet +```powershell +Update-AzNetworkVirtualApplianceConnection -VirtualApplianceResourceId -Name + [-RoutingConfiguration ] [-Force] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$rt1 = Get-AzVHubRouteTable -ResourceGroupName testrg -VirtualHubName vhub1 -Name "noneRouteTable" +$routingconfig = New-AzRoutingConfiguration -AssociatedRouteTable $rt1.Id -Label @("none") -Id @($rt1.Id) +Update-AzNetworkVirtualApplianceConnection -ResourceGroupName testrg -VirtualApplianceName nva -Name defaultConnection -RoutingConfiguration $routingconfig +``` + +```output +Name : defaultConnection +ProvisioningState : Succeeded +EnableInternetSecurity : False +BgpPeerAddress : {10.2.112.5, 10.2.112.6} +Asn : 64512 +TunnelIdentifier : 0 +RoutingConfiguration : { + "AssociatedRouteTable": { + "Id": "/subscriptions/{subscriptionId}/resourceGroups/testrg/providers/Microsoft.Network/virtualHubs + /vhub1/hubRouteTables/noneRouteTable" + }, + "PropagatedRouteTables": { + "Labels": [ + "none" + ], + "Ids": [ + { + "Id": "/subscriptions/{subscriptionId}/resourceGroups/testrg/providers/Microsoft.Network/virtualHubs + /vhub1/hubRouteTables/noneRouteTable" + } + ] + }, + "InboundRouteMap": {}, + "OutboundRouteMap": {} + } +``` + + +#### Get-AzNetworkVirtualApplianceSku + +#### SYNOPSIS +Get or List available Network Virtual Appliance Skus in the inventory. + +#### SYNTAX + +```powershell +Get-AzNetworkVirtualApplianceSku [-SkuName ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzNetworkVirtualApplianceSku -SkuName barracudasdwanrelease +``` + +```output +Vendor : barracudasdwanrelease +AvailableVersions : {8.1.0038301, latest} +AvailableScaleUnits : {Microsoft.Azure.Commands.Network.Models.PSNetworkVirtualApplianceSkuInstances, Microsoft.Azure.Commands.Network.Models.PSNetworkVirtualApplianceSkuInstances} +Name : barracudasdwanrelease +Etag : 00000000-0000-0000-0000-000000000000 +Id : +``` + +Get a sku by name. + ++ Example 2 +```powershell +Get-AzNetworkVirtualApplianceSku +``` + +```output +Vendor : barracuda sdwan nightly +AvailableVersions : {latest} +AvailableScaleUnits : {Microsoft.Azure.Commands.Network.Models.PSNetworkVirtualApplianceSkuInstances} +Name : barracuda sdwan nightly +Etag : 00000000-0000-0000-0000-000000000000 +Id : + +Vendor : barracuda sdwan +AvailableVersions : {latest} +AvailableScaleUnits : {Microsoft.Azure.Commands.Network.Models.PSNetworkVirtualApplianceSkuInstances} +Name : barracuda sdwan +Etag : 00000000-0000-0000-0000-000000000000 +Id : + +Vendor : barracudasdwanrelease +AvailableVersions : {8.1.0038301, latest} +AvailableScaleUnits : {Microsoft.Azure.Commands.Network.Models.PSNetworkVirtualApplianceSkuInstances, Microsoft.Azure.Commands.Network.Models.PSNetworkVirtualApplianceSkuInstances} +Name : barracudasdwanrelease +Etag : 00000000-0000-0000-0000-000000000000 +Id : +``` + +List all available Skus of Network Virtual Appliance. + + +#### New-AzNetworkWatcher + +#### SYNOPSIS +Creates a new Network Watcher resource. + +#### SYNTAX + +```powershell +New-AzNetworkWatcher -Name -ResourceGroupName -Location [-Tag ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Create a Network Watcher +```powershell +New-AzResourceGroup -Name NetworkWatcherRG -Location westcentralus +New-AzNetworkWatcher -Name NetworkWatcher_westcentralus -ResourceGroupName NetworkWatcherRG +``` + +```output +Name : NetworkWatcher_westcentralus +Id : /subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/NetworkWatcherRG/providers/Microsoft.Network/networkWatchers/NetworkWatcher_westcentralus +Etag : W/"7cf1f2fe-8445-4aa7-9bf5-c15347282c39" +Location : westcentralus +Tags : +ProvisioningState : Succeeded +``` + +This example creates a new Network Watcher inside a newly created Resource Group. Note that only +one Network Watcher can be created per region per subscription. + + +#### Get-AzNetworkWatcher + +#### SYNOPSIS +Gets the properties of a Network Watcher + +#### SYNTAX + ++ List +```powershell +Get-AzNetworkWatcher [-Name ] [-ResourceGroupName ] [-DefaultProfile ] + [] +``` + ++ SetByLocation +```powershell +Get-AzNetworkWatcher -Location [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Get a Network Watcher +```powershell +Get-AzNetworkWatcher -Name NetworkWatcher_westcentralus -ResourceGroupName NetworkWatcherRG +``` + +```output +Name : NetworkWatcher_westcentralus +Id : /subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/NetworkWatcherRG/providers/Microsoft.Network/networkWatchers/NetworkWatcher_westcentralus +Etag : W/"ac624778-0214-49b9-a04c-794863485fa6" +Location : westcentralus +Tags : +ProvisioningState : Succeeded +``` + +Gets the Network Watcher named NetworkWatcher_westcentralus in the resource group NetworkWatcherRG. + ++ Example 2: List Network Watchers using filtering +```powershell +Get-AzNetworkWatcher -Name NetworkWatcher* +``` + +```output +Name : NetworkWatcher_westcentralus1 +Id : /subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/NetworkWatcherRG/providers/Microsoft.Network/networkWatchers/NetworkWatcher_westcentralus1 +Etag : W/"ac624778-0214-49b9-a04c-794863485fa6" +Location : westcentralus +Tags : +ProvisioningState : Succeeded + +Name : NetworkWatcher_westcentralus2 +Id : /subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/NetworkWatcherRG/providers/Microsoft.Network/networkWatchers/NetworkWatcher_westcentralus2 +Etag : W/"ac624778-0214-49b9-a04c-794863485fa6" +Location : westcentralus +Tags : +ProvisioningState : Succeeded +``` + +Gets the Network Watchers that start with "NetworkWatcher" + + +#### Remove-AzNetworkWatcher + +#### SYNOPSIS +Removes a Network Watcher. + +#### SYNTAX + ++ SetByResource +```powershell +Remove-AzNetworkWatcher -NetworkWatcher [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByName +```powershell +Remove-AzNetworkWatcher -Name -ResourceGroupName [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByLocation +```powershell +Remove-AzNetworkWatcher -Location [-PassThru] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Create and delete a Network Watcher +```powershell +New-AzResourceGroup -Name NetworkWatcherRG -Location westcentralus +New-AzNetworkWatcher -Name NetworkWatcher_westcentralus -ResourceGroupName NetworkWatcherRG -Location westcentralus +Remove-AzNetworkWatcher -Name NetworkWatcher_westcentralus -ResourceGroupName NetworkWatcherRG +``` + +This example creates a Network Watcher in a resource group and then immediately deletes it. Note that only one Network Watcher can be created per region per subscription. +To suppress the prompt when deleting the virtual network, use the -Force flag. + + +#### Convert-AzNetworkWatcherClassicConnectionMonitor + +#### SYNOPSIS +Convert a classic connection monitor into connection monitor v2 with specified name. + +#### SYNTAX + +```powershell +Convert-AzNetworkWatcherClassicConnectionMonitor -NetworkWatcherName -ResourceGroupName + -Name [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$nw = Get-AzResource | Where-Object {$_.ResourceType -eq "Microsoft.Network/networkWatchers" -and $_.Location -eq "centraluseuap" } +Convert-AzNetworkWatcherClassicConnectionMonitor -NetworkWatcherName $nw.Name -ResourceGroupName $nw.ResourceGroupName -Name "classicCm1" +``` + +```output +Migration is successful. +``` + +Passing the classic connection monitor name and corresponding network watcher name and its resource group name. + ++ Example 2 +```powershell +$nw = Get-AzResource | Where-Object {$_.ResourceType -eq "Microsoft.Network/networkWatchers" -and $_.Location -eq "centraluseuap" } +Convert-AzNetworkWatcherClassicConnectionMonitor -NetworkWatcherName $nw.Name -ResourceGroupName $nw.ResourceGroupName -Name "testCmv2" +``` + +```output +This Connection Monitor is already V2 +``` + +Passing the V2 connection monitor name and corresponding network watcher name and its resource group name. + + +#### Set-AzNetworkWatcherConfigFlowLog + +#### SYNOPSIS +Configures flow logging for a target resource. + +#### SYNTAX + ++ SetFlowlogByResourceWithoutTA (Default) +```powershell +Set-AzNetworkWatcherConfigFlowLog -NetworkWatcher -TargetResourceId + -EnableFlowLog -StorageAccountId [-EnableRetention ] [-RetentionInDays ] + [-FormatType ] [-FormatVersion ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ SetFlowlogByResourceWithTAByResource +```powershell +Set-AzNetworkWatcherConfigFlowLog -NetworkWatcher -TargetResourceId + -EnableFlowLog -StorageAccountId [-EnableRetention ] [-RetentionInDays ] + [-FormatType ] [-FormatVersion ] [-AsJob] [-EnableTrafficAnalytics] + -Workspace [-TrafficAnalyticsInterval ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetFlowlogByResourceWithTAByDetails +```powershell +Set-AzNetworkWatcherConfigFlowLog -NetworkWatcher -TargetResourceId + -EnableFlowLog -StorageAccountId [-EnableRetention ] [-RetentionInDays ] + [-FormatType ] [-FormatVersion ] [-AsJob] [-EnableTrafficAnalytics] + -WorkspaceResourceId -WorkspaceGUID -WorkspaceLocation + [-TrafficAnalyticsInterval ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ SetFlowlogByNameWithTAByResource +```powershell +Set-AzNetworkWatcherConfigFlowLog -NetworkWatcherName -ResourceGroupName + -TargetResourceId -EnableFlowLog -StorageAccountId [-EnableRetention ] + [-RetentionInDays ] [-FormatType ] [-FormatVersion ] [-AsJob] [-EnableTrafficAnalytics] + -Workspace [-TrafficAnalyticsInterval ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetFlowlogByNameWithTAByDetails +```powershell +Set-AzNetworkWatcherConfigFlowLog -NetworkWatcherName -ResourceGroupName + -TargetResourceId -EnableFlowLog -StorageAccountId [-EnableRetention ] + [-RetentionInDays ] [-FormatType ] [-FormatVersion ] [-AsJob] [-EnableTrafficAnalytics] + -WorkspaceResourceId -WorkspaceGUID -WorkspaceLocation + [-TrafficAnalyticsInterval ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ SetFlowlogByNameWithoutTA +```powershell +Set-AzNetworkWatcherConfigFlowLog -NetworkWatcherName -ResourceGroupName + -TargetResourceId -EnableFlowLog -StorageAccountId [-EnableRetention ] + [-RetentionInDays ] [-FormatType ] [-FormatVersion ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetFlowlogByLocationWithTAByResource +```powershell +Set-AzNetworkWatcherConfigFlowLog -Location -TargetResourceId -EnableFlowLog + -StorageAccountId [-EnableRetention ] [-RetentionInDays ] [-FormatType ] + [-FormatVersion ] [-AsJob] [-EnableTrafficAnalytics] -Workspace + [-TrafficAnalyticsInterval ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ SetFlowlogByLocationWithTAByDetails +```powershell +Set-AzNetworkWatcherConfigFlowLog -Location -TargetResourceId -EnableFlowLog + -StorageAccountId [-EnableRetention ] [-RetentionInDays ] [-FormatType ] + [-FormatVersion ] [-AsJob] [-EnableTrafficAnalytics] -WorkspaceResourceId + -WorkspaceGUID -WorkspaceLocation [-TrafficAnalyticsInterval ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetFlowlogByLocationWithoutTA +```powershell +Set-AzNetworkWatcherConfigFlowLog -Location -TargetResourceId -EnableFlowLog + -StorageAccountId [-EnableRetention ] [-RetentionInDays ] [-FormatType ] + [-FormatVersion ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Configure Flow Logging for a Specified NSG +```powershell +$NW = Get-AzNetworkWatcher -ResourceGroupName NetworkWatcherRg -Name NetworkWatcher_westcentralus +$nsg = Get-AzNetworkSecurityGroup -ResourceGroupName NSGRG -Name appNSG +$storageId = "/subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/NSGRG/providers/Microsoft.Storage/storageAccounts/contosostorageacct123" + + +Set-AzNetworkWatcherConfigFlowLog -NetworkWatcher $NW -TargetResourceId $nsg.Id -EnableFlowLog $true -StorageAccountId $storageID +``` + +```output +TargetResourceId : /subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/NSGRG/providers/Microsoft.Network/networkSecurityGroups/appNSG +StorageId : /subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/NSGRG/providers/Microsoft.Storage/storageAccounts/contosostorageacct123 +Enabled : True +RetentionPolicy : { + "Days": 0, + "Enabled": false + } +Format : { + "Type ": "Json", + "Version": 1 + } +``` + +In this example we configure flow logging status for a Network Security Group. In the response, we see the specified NSG has flow logging enabled, default format, and no retention policy set. + ++ Example 2: Configure Flow Logging for a Specified NSG and set the version of flow logging to 2. +```powershell +$NW = Get-AzNetworkWatcher -ResourceGroupName NetworkWatcherRg -Name NetworkWatcher_westcentralus +$nsg = Get-AzNetworkSecurityGroup -ResourceGroupName NSGRG -Name appNSG +$storageId = "/subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/NSGRG/providers/Microsoft.Storage/storageAccounts/contosostorageacct123" + + +Set-AzNetworkWatcherConfigFlowLog -NetworkWatcher $NW -TargetResourceId $nsg.Id -EnableFlowLog $true -StorageAccountId $storageID -FormatVersion 2 +``` + +```output +TargetResourceId : /subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/NSGRG/providers/Microsoft.Network/networkSecurityGroups/appNSG +StorageId : /subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/NSGRG/providers/Microsoft.Storage/storageAccounts/contosostorageacct123 +Enabled : True +RetentionPolicy : { + "Days": 0, + "Enabled": false + } +Format : { + "Type ": "Json", + "Version": 2 + } +``` + +In this example, we configure flow logging on a Network Security Group (NSG) with version 2 logs specified. In the response, we see the specified NSG has flow logging enabled, the format is set, and there is no retention policy configured. If the region does not support version you specified, Network Watcher will write the default supported version in the region. + ++ Example 3: Configure Flow Logging and Traffic Analytics for a Specified NSG +```powershell +$NW = Get-AzNetworkWatcher -ResourceGroupName NetworkWatcherRg -Name NetworkWatcher_westcentralus +$nsg = Get-AzNetworkSecurityGroup -ResourceGroupName NSGRG -Name appNSG +$storageId = "/subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/NSGRG/providers/Microsoft.Storage/storageAccounts/contosostorageacct123" +$workspace = Get-AzOperationalInsightsWorkspace -Name WorkspaceName -ResourceGroupName WorkspaceRg + + +Set-AzNetworkWatcherConfigFlowLog -NetworkWatcher $NW -TargetResourceId $nsg.Id -EnableFlowLog $true -StorageAccountId $storageID -EnableTrafficAnalytics -Workspace $workspace -TrafficAnalyticsInterval 60 +``` + +```output +TargetResourceId : /subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/NSGRG/providers/Microsoft.Network/networkSecurityGroups/appNSG +StorageId : /subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/NSGRG/providers/Microsoft.Storage/storageAccounts/contosostorageacct123 +Enabled : True +RetentionPolicy : { + "Days": 0, + "Enabled": false + } +Format : { + "Type ": "Json", + "Version": 1 + } +FlowAnalyticsConfiguration : { + "networkWatcherFlowAnalyticsConfiguration": { + "enabled": true, + "workspaceId": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb", + "workspaceRegion": "WorkspaceLocation", + "workspaceResourceId": "/subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourcegroups/WorkspaceRg/providers/microsoft.operationalinsights/workspaces/WorkspaceName", + "TrafficAnalyticsInterval": 60 + } + } +``` + +In this example we configure flow logging status and Traffic Analytics for a Network Security Group. In the response, we see the specified NSG has flow logging and Traffic Analytics enabled, default format, and no retention policy set. + ++ Example 4: Disable Traffic Analytics for a Specified NSG with Flow Logging and Traffic Analytics configured +```powershell +$NW = Get-AzNetworkWatcher -ResourceGroupName NetworkWatcherRg -Name NetworkWatcher_westcentralus +$nsg = Get-AzNetworkSecurityGroup -ResourceGroupName NSGRG -Name appNSG +$storageId = "/subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/NSGRG/providers/Microsoft.Storage/storageAccounts/contosostorageacct123" +$workspace = Get-AzOperationalInsightsWorkspace -Name WorkspaceName -ResourceGroupName WorkspaceRg +Set-AzNetworkWatcherConfigFlowLog -NetworkWatcher $NW -TargetResourceId $nsg.Id -EnableFlowLog $true -StorageAccountId $storageID -EnableTrafficAnalytics -Workspace $workspace -TrafficAnalyticsInterval 60 + + +Set-AzNetworkWatcherConfigFlowLog -NetworkWatcher $NW -TargetResourceId $nsg.Id -EnableFlowLog $true -StorageAccountId $storageID -EnableTrafficAnalytics:$false -Workspace $workspace +``` + +```output +TargetResourceId : /subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/NSGRG/providers/Microsoft.Network/networkSecurityGroups/appNSG +StorageId : /subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/NSGRG/providers/Microsoft.Storage/storageAccounts/contosostorageacct123 +Enabled : True +RetentionPolicy : { + "Days": 0, + "Enabled": false + } +Format : { + "Type ": "Json", + "Version": 1 + } +FlowAnalyticsConfiguration : { + "networkWatcherFlowAnalyticsConfiguration": { + "enabled": false, + "workspaceId": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb", + "workspaceRegion": "WorkspaceLocation", + "workspaceResourceId": "/subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourcegroups/WorkspaceRg/providers/microsoft.operationalinsights/workspaces/WorkspaceName", + "TrafficAnalyticsInterval": 60 + } + } +``` + +In this example we disable Traffic Analytics for a Network Security Group which has flow logging and Traffic Analytics configured earlier. In the response, we see the specified NSG has flow logging enabled but Traffic Analytics disabled. + + +#### New-AzNetworkWatcherConnectionMonitor + +#### SYNOPSIS +Creates a connection monitor resource. + +#### SYNTAX + ++ SetByName (Default) +```powershell +New-AzNetworkWatcherConnectionMonitor -NetworkWatcherName -ResourceGroupName -Name + -SourceResourceId [-MonitoringIntervalInSeconds ] [-SourcePort ] + [-DestinationResourceId ] -DestinationPort [-DestinationAddress ] [-ConfigureOnly] + [-Tag ] [-Force] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ SetByResource +```powershell +New-AzNetworkWatcherConnectionMonitor -NetworkWatcher -Name + -SourceResourceId [-MonitoringIntervalInSeconds ] [-SourcePort ] + [-DestinationResourceId ] -DestinationPort [-DestinationAddress ] [-ConfigureOnly] + [-Tag ] [-Force] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ SetByResourceV2 +```powershell +New-AzNetworkWatcherConnectionMonitor -NetworkWatcher -Name + -TestGroup + [-Output ] [-Note ] [-Tag ] [-Force] + [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByNameV2 +```powershell +New-AzNetworkWatcherConnectionMonitor -NetworkWatcherName -ResourceGroupName -Name + -TestGroup + [-Output ] [-Note ] [-Tag ] [-Force] + [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByLocation +```powershell +New-AzNetworkWatcherConnectionMonitor -Location -Name -SourceResourceId + [-MonitoringIntervalInSeconds ] [-SourcePort ] [-DestinationResourceId ] + -DestinationPort [-DestinationAddress ] [-ConfigureOnly] [-Tag ] [-Force] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByLocationV2 +```powershell +New-AzNetworkWatcherConnectionMonitor -Location -Name + -TestGroup + [-Output ] [-Note ] [-Tag ] [-Force] + [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByConnectionMonitorV2Object +```powershell +New-AzNetworkWatcherConnectionMonitor -ConnectionMonitor [-Force] + [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzNetworkWatcherConnectionMonitor -NetworkWatcher $nw -Name cm -SourceResourceId /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/RgCentralUSEUAP/providers/Microsoft.Compute/virtualMachines/vm -DestinationAddress bing.com -DestinationPort 80 +``` + +```output +Name : cm +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGro + ups/NetworkWatcherRG/providers/Microsoft.Network/networkWatcher + s/NetworkWatcher_centraluseuap/connectionMonitors/t1 +Etag : W/"e86b28cf-b907-4475-a8b7-34d310367694" +ProvisioningState : Succeeded +Source : { + "ResourceId": "/subscriptions/00000000-0000-0000-0000-0000000 + 00000/resourceGroups/RgCentralUSEUAP/providers/Microsoft + .Compute/virtualMachines/vm", + "Port": 0 + } +Destination : { + "Address": "bing.com", + "Port": 80 + } +MonitoringIntervalInSeconds : 60 +AutoStart : True +StartTime : 1/12/2018 7:13:11 PM +MonitoringStatus : Running +Location : centraluseuap +Type : Microsoft.Network/networkWatchers/connectionMonitors +Tags : {} +``` + + +#### Get-AzNetworkWatcherConnectionMonitor + +#### SYNOPSIS +Returns connection monitor with specified name or the list of connection monitors + +#### SYNTAX + ++ SetByName (Default) +```powershell +Get-AzNetworkWatcherConnectionMonitor -NetworkWatcherName -ResourceGroupName [-Name ] + [-DefaultProfile ] [] +``` + ++ SetByResource +```powershell +Get-AzNetworkWatcherConnectionMonitor -NetworkWatcher [-Name ] + [-DefaultProfile ] [] +``` + ++ SetByLocation +```powershell +Get-AzNetworkWatcherConnectionMonitor -Location [-Name ] + [-DefaultProfile ] [] +``` + ++ SetByResourceId +```powershell +Get-AzNetworkWatcherConnectionMonitor -ResourceId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzNetworkWatcherConnectionMonitor -Location centraluseuap -Name cm +``` + +Name : cm +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGro + ups/NetworkWatcherRG/providers/Microsoft.Network/networkWatcher + s/NetworkWatcher_centraluseuap/connectionMonitors/cm +Etag : W/"40961b58-e379-4204-a47b-0c477739b095" +ProvisioningState : Succeeded +Source : { + "ResourceId": "/subscriptions/96e68903-0a56-4819-9987-8d08ad6 + a1f99/resourceGroups/VarunRgCentralUSEUAP/providers/Microsoft.C + ompute/virtualMachines/irinavm", + "Port": 0 + } +Destination : { + "Address": "google.com", + "Port": 80 + } +MonitoringIntervalInSeconds : 60 +AutoStart : True +StartTime : 1/12/2018 7:19:28 PM +MonitoringStatus : Stopped +Location : centraluseuap +Type : Microsoft.Network/networkWatchers/connectionMonitors +Tags : { + "key1": "value1" + } + + +#### Remove-AzNetworkWatcherConnectionMonitor + +#### SYNOPSIS +Remove connection monitor. + +#### SYNTAX + ++ SetByName (Default) +```powershell +Remove-AzNetworkWatcherConnectionMonitor -NetworkWatcherName -ResourceGroupName + -Name [-PassThru] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ SetByResource +```powershell +Remove-AzNetworkWatcherConnectionMonitor -NetworkWatcher -Name [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByLocation +```powershell +Remove-AzNetworkWatcherConnectionMonitor -Location -Name [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByResourceId +```powershell +Remove-AzNetworkWatcherConnectionMonitor -ResourceId [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByInputObject +```powershell +Remove-AzNetworkWatcherConnectionMonitor -InputObject [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Remove the specified connection monitor +```powershell +Remove-AzNetworkWatcherConnectionMonitor -Location centraluseuap -Name cm +``` + +In this example we delete the connection monitor specified by location and name. + ++ Example 2 + +Remove connection monitor. (autogenerated) + + + + +```powershell +Remove-AzNetworkWatcherConnectionMonitor -Name cm -NetworkWatcherName nw1 -ResourceGroupName myresourcegroup +``` + + +#### Set-AzNetworkWatcherConnectionMonitor + +#### SYNOPSIS +Updates connection monitor resource. + +#### SYNTAX + ++ SetByName (Default) +```powershell +Set-AzNetworkWatcherConnectionMonitor -NetworkWatcherName -ResourceGroupName -Name + -SourceResourceId [-MonitoringIntervalInSeconds ] [-SourcePort ] + [-DestinationResourceId ] -DestinationPort [-DestinationAddress ] [-ConfigureOnly] + [-Tag ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ SetByResource +```powershell +Set-AzNetworkWatcherConnectionMonitor -NetworkWatcher -Name + -SourceResourceId [-MonitoringIntervalInSeconds ] [-SourcePort ] + [-DestinationResourceId ] -DestinationPort [-DestinationAddress ] [-ConfigureOnly] + [-Tag ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ SetByResourceV2 +```powershell +Set-AzNetworkWatcherConnectionMonitor -NetworkWatcher -Name + -TestGroup + [-Output ] [-Note ] [-Tag ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByNameV2 +```powershell +Set-AzNetworkWatcherConnectionMonitor -NetworkWatcherName -ResourceGroupName -Name + -TestGroup + [-Output ] [-Note ] [-Tag ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByLocation +```powershell +Set-AzNetworkWatcherConnectionMonitor -Location -Name -SourceResourceId + [-MonitoringIntervalInSeconds ] [-SourcePort ] [-DestinationResourceId ] + -DestinationPort [-DestinationAddress ] [-ConfigureOnly] [-Tag ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByLocationV2 +```powershell +Set-AzNetworkWatcherConnectionMonitor -Location -Name + -TestGroup + [-Output ] [-Note ] [-Tag ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByResourceId +```powershell +Set-AzNetworkWatcherConnectionMonitor -ResourceId -SourceResourceId + [-MonitoringIntervalInSeconds ] [-SourcePort ] [-DestinationResourceId ] + -DestinationPort [-DestinationAddress ] [-ConfigureOnly] [-Tag ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByResourceIdV2 +```powershell +Set-AzNetworkWatcherConnectionMonitor -ResourceId + -TestGroup + [-Output ] [-Note ] [-Tag ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByInputObject +```powershell +Set-AzNetworkWatcherConnectionMonitor -InputObject [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Update a connection monitor +```powershell +Set-AzNetworkWatcherConnectionMonitor -Location centraluseuap -Name cm -SourceResourceId /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/RgCentralUSEUAP/providers/Microsoft.Compute/virtualMachines/vm ` +-DestinationAddress google.com -DestinationPort 80 -Tag @{"key1" = "value1"} +``` + +```output +Name : cm +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGro + ups/NetworkWatcherRG/providers/Microsoft.Network/networkWatcher + s/NetworkWatcher_centraluseuap/connectionMonitors/cm +Etag : W/"5b2b20e8-0ce0-417e-9607-76208149bb67" +ProvisioningState : Succeeded +Source : { + "ResourceId": "/subscriptions/00000000-0000-0000-0000-0000000 + 00000/RgCentralUSEUAP/providers/Microsoft.Compute/virtualMach + ines/vm", + "Port": 0 + } +Destination : { + "Address": "google.com", + "Port": 80 + } +MonitoringIntervalInSeconds : 60 +AutoStart : True +StartTime : 1/12/2018 7:19:28 PM +MonitoringStatus : Running +Location : centraluseuap +Type : Microsoft.Network/networkWatchers/connectionMonitors +Tags : { + "key1": "value1" + } +``` + +In this example we update existing connection monitor by changing destinationAddress and adding tags. + + +#### Stop-AzNetworkWatcherConnectionMonitor + +#### SYNOPSIS +Stop a connection monitor + +#### SYNTAX + ++ SetByName (Default) +```powershell +Stop-AzNetworkWatcherConnectionMonitor -NetworkWatcherName -ResourceGroupName -Name + [-PassThru] [-AsJob] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + ++ SetByResource +```powershell +Stop-AzNetworkWatcherConnectionMonitor -NetworkWatcher -Name [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByLocation +```powershell +Stop-AzNetworkWatcherConnectionMonitor -Location -Name [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByResourceId +```powershell +Stop-AzNetworkWatcherConnectionMonitor -ResourceId [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByInputObject +```powershell +Stop-AzNetworkWatcherConnectionMonitor -InputObject [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Stop a connection monitor +```powershell +Stop-AzNetworkWatcherConnectionMonitor -NetworkWatcher $nw -Name cm +``` + +In this example we stop connection monitor specified by name and network watcher + ++ Example 2 + +Stop a connection monitor. (autogenerated) + + + + +```powershell +Stop-AzNetworkWatcherConnectionMonitor -Name cm -NetworkWatcherName nw1 -ResourceGroupName myresourcegroup +``` + + +#### New-AzNetworkWatcherConnectionMonitorEndpointObject + +#### SYNOPSIS +Creates connection monitor endpoint. + +#### SYNTAX + ++ AzureVM +```powershell +New-AzNetworkWatcherConnectionMonitorEndpointObject -Name [-AzureVM] -ResourceId + [-Address ] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + ++ AzureVNet +```powershell +New-AzNetworkWatcherConnectionMonitorEndpointObject -Name [-AzureVNet] -ResourceId + [-IncludeItem ] + [-ExcludeItem ] [-CoverageLevel ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ AzureSubnet +```powershell +New-AzNetworkWatcherConnectionMonitorEndpointObject -Name [-AzureSubnet] -ResourceId + [-ExcludeItem ] [-CoverageLevel ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ExternalAddress +```powershell +New-AzNetworkWatcherConnectionMonitorEndpointObject -Name [-ExternalAddress] -Address + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ MMAWorkspaceMachine +```powershell +New-AzNetworkWatcherConnectionMonitorEndpointObject -Name [-MMAWorkspaceMachine] -ResourceId + -Address [-IncludeItem ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ MMAWorkspaceNetwork +```powershell +New-AzNetworkWatcherConnectionMonitorEndpointObject -Name [-MMAWorkspaceNetwork] -ResourceId + -IncludeItem + [-ExcludeItem ] [-CoverageLevel ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ AzureVMSS +```powershell +New-AzNetworkWatcherConnectionMonitorEndpointObject -Name [-AzureVMSS] -ResourceId + [-IncludeItem ] + [-ExcludeItem ] [-CoverageLevel ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ AzureArcVM +```powershell +New-AzNetworkWatcherConnectionMonitorEndpointObject -Name [-AzureArcVM] -ResourceId + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$MySrcResourceId1 = "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myresourceGroup/providers/Microsoft.OperationalInsights/workspaces/myworkspace" +$SrcEndpointScopeItem1 = New-AzNetworkWatcherConnectionMonitorEndpointScopeItemObject -Address "WIN-P0HGNDO2S1B" +$SourceEndpointObject1 = New-AzNetworkWatcherConnectionMonitorEndpointObject -Name "workspaceEndpoint" -MMAWorkspaceMachine -ResourceId $MySrcResourceId1 -IncludeItem $SrcEndpointScopeItem1 +``` + +```output +Name : workspaceEndpoint +Type : MMAWorkspaceMachine +ResourceId : /subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myresourceGroup/providers/Microsoft.OperationalInsights/workspaces/myworkspace +Address : +Scope : { + "Include": [ + { + "Address": "WIN-P0HGNDO2S1B" + } + ] + } +``` + + +#### New-AzNetworkWatcherConnectionMonitorEndpointScopeItemObject + +#### SYNOPSIS +Creates a connection monitor endpoint scope item. + +#### SYNTAX + +```powershell +New-AzNetworkWatcherConnectionMonitorEndpointScopeItemObject [-DefaultProfile ] + -Address [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzNetworkWatcherConnectionMonitorEndpointScopeItemObject -Address "10.0.1.0/24" +``` + + +#### New-AzNetworkWatcherConnectionMonitorObject + +#### SYNOPSIS +Create a connection monitor V2 object. + +#### SYNTAX + ++ SetByResource +```powershell +New-AzNetworkWatcherConnectionMonitorObject -NetworkWatcher -Name + [-TestGroup ] + [-Output ] [-Note ] [-Tag ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByName +```powershell +New-AzNetworkWatcherConnectionMonitorObject -NetworkWatcherName -ResourceGroupName + -Name [-TestGroup ] + [-Output ] [-Note ] [-Tag ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByLocation +```powershell +New-AzNetworkWatcherConnectionMonitorObject -Location -Name + [-TestGroup ] + [-Output ] [-Note ] [-Tag ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$cmtest = New-AzNetworkWatcherConnectionMonitorObject -Location westcentralus -Name cmV2test -TestGroup $testGroup1, $testGroup2 -Tag @{"name" = "value"} +$cmtest +``` + +```output +NetworkWatcherName : NetworkWatcher_westcentralus +ResourceGroupName : NetworkWatcherRG +Name : cmV2test +TestGroups : [ + { + "Name": "testGroup1", + "Disable": false, + "TestConfigurations": [ + { + "Name": "tcpTC", + "TestFrequencySec": 60, + "ProtocolConfiguration": { + "Port": 80, + "DisableTraceRoute": false + }, + "SuccessThreshold": { + "ChecksFailedPercent": 20, + "RoundTripTimeMs": 5 + } + }, + { + "Name": "icmpTC", + "TestFrequencySec": 30, + "PreferredIPVersion": "IPv4", + "ProtocolConfiguration": { + "DisableTraceRoute": true + } + } + ], + "Sources": [ + { + "Name": "MultiTierApp0(IrinaRGWestcentralus)", + "ResourceId": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/RGW + estcentralus/providers/Microsoft.Compute/virtualMachines/MultiTierApp0" + }, + { + "Name": "NPM-CommonEUS(er-lab)", + "ResourceId": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/er-lab/p + roviders/Microsoft.OperationalInsights/workspaces/NPM-CommonEUS", + "Filter": { + "Type": "Include", + "Items": [ + { + "Type": "AgentAddress", + "Address": "SEA-Cust50-VM01" + }, + { + "Type": "AgentAddress", + "Address": "WIN-P0HGNDO2S1B" + } + ] + } + } + ], + "Destinations": [ + { + "Name": "bingEndpoint", + "Address": "bing.com" + }, + { + "Name": "googleEndpoint", + "Address": "google.com" + } + ] + }, + { + "Name": "testGroup2", + "Disable": false, + "TestConfigurations": [ + { + "Name": "httpTC", + "TestFrequencySec": 120, + "ProtocolConfiguration": { + "Port": 443, + "Method": "GET", + "RequestHeaders": [ + { + "Name": "Allow", + "Value": "GET" + } + ], + "ValidStatusCodeRanges": [ + "2xx", + "300-308" + ], + "PreferHTTPS": true + }, + "SuccessThreshold": { + "ChecksFailedPercent": 20, + "RoundTripTimeMs": 30 + } + } + ], + "Sources": [ + { + "Name": "MultiTierApp0(IrinaRGWestcentralus)", + "ResourceId": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/IrinaRGW + estcentralus/providers/Microsoft.Compute/virtualMachines/MultiTierApp0" + } + ], + "Destinations": [ + { + "Name": "googleEndpoint", + "Address": "google.com" + } + ] + } + ] +Outputs : null +Notes : +Tags : { + "name": "value" + } +``` + + +#### New-AzNetworkWatcherConnectionMonitorOutputObject + +#### SYNOPSIS +Create connection monitor output destination object. + +#### SYNTAX + +```powershell +New-AzNetworkWatcherConnectionMonitorOutputObject [-OutputType ] -WorkspaceResourceId + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzNetworkWatcherConnectionMonitorOutputObject -OutputType "workspace" -WorkspaceResourceId MyWSResourceId +``` + +```output +Type : "workspace" +WorkspaceSettings : { + "WorkspaceResourceId": "MyWSResourceId" + } +``` + + +#### New-AzNetworkWatcherConnectionMonitorProtocolConfigurationObject + +#### SYNOPSIS +Create protocol configuration used to perform test evaluation over TCP, HTTP or ICMP. + +#### SYNTAX + ++ TCP +```powershell +New-AzNetworkWatcherConnectionMonitorProtocolConfigurationObject [-TcpProtocol] -Port + [-DisableTraceRoute] [-DestinationPortBehavior ] [-DefaultProfile ] + [] +``` + ++ HTTP +```powershell +New-AzNetworkWatcherConnectionMonitorProtocolConfigurationObject [-HttpProtocol] [-Port ] + [-Method ] [-Path ] [-RequestHeader ] [-ValidStatusCodeRange ] + [-PreferHTTPS] [-DefaultProfile ] + [] +``` + ++ ICMP +```powershell +New-AzNetworkWatcherConnectionMonitorProtocolConfigurationObject [-IcmpProtocol] [-DisableTraceRoute] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$TcpProtocolConfiguration = New-AzNetworkWatcherConnectionMonitorProtocolConfigurationObject -TcpProtocol -Port 80 -DisableTraceRoute +``` + +```output +Port : 80 +DisableTraceRoute : False +``` + ++ Example 2 + +Create protocol configuration used to perform test evaluation over TCP, HTTP or ICMP. (autogenerated) + + + + +```powershell +New-AzNetworkWatcherConnectionMonitorProtocolConfigurationObject -IcmpProtocol +``` + + +#### New-AzNetworkWatcherConnectionMonitorTestConfigurationObject + +#### SYNOPSIS +Create a connection monitor test configuration. + +#### SYNTAX + +```powershell +New-AzNetworkWatcherConnectionMonitorTestConfigurationObject -Name -TestFrequencySec + -ProtocolConfiguration + [-SuccessThresholdChecksFailedPercent ] [-SuccessThresholdRoundTripTimeMs ] + [-PreferredIPVersion ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$httpProtocolConfiguration = New-AzNetworkWatcherConnectionMonitorProtocolConfigurationObject -HttpProtocol -Port 443 -Method GET -RequestHeader @{"Allow" = "GET"} -ValidStatusCodeRange 2xx, 300-308 -PreferHTTPS +$httpTestConfiguration = New-AzNetworkWatcherConnectionMonitorTestConfigurationObject -Name httpTC -TestFrequencySec 120 -ProtocolConfiguration $httpProtocolConfiguration -SuccessThresholdChecksFailedPercent 20 -SuccessThresholdRoundTripTimeMs 30 +``` + +```output +Name : httpTC +TestFrequencySec : 120 +PreferredIPVersion : +ProtocolConfiguration : { + "Port": 443, + "Method": "GET", + "RequestHeaders": [ + { + "Name": "Allow", + "Value": "GET" + } + ], + "ValidStatusCodeRanges": [ + "2xx", + "300-308" + ], + "PreferHTTPS": true + } +SuccessThreshold : { + "ChecksFailedPercent": 20, + "RoundTripTimeMs": 30 + } +``` + + +#### New-AzNetworkWatcherConnectionMonitorTestGroupObject + +#### SYNOPSIS +Create a connection monitor test group. + +#### SYNTAX + +```powershell +New-AzNetworkWatcherConnectionMonitorTestGroupObject -Name + -TestConfiguration + -Source + -Destination + [-Disable] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Create a test group with 2 testConfigurations, w source and 2 destination endpoints + +```powershell +$testGroup1 = New-AzNetworkWatcherConnectionMonitorTestGroupObject -Name testGroup1 -TestConfiguration $tcpTestConfiguration, $icmpTestConfiguration -Source $vmEndpoint, $workspaceEndpoint -Destination $bingEndpoint, $googleEndpoint +``` + + +#### Test-AzNetworkWatcherConnectivity + +#### SYNOPSIS +Returns connectivity information for a specified source VM and a destination. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +Test-AzNetworkWatcherConnectivity -NetworkWatcher -SourceId [-SourcePort ] + [-DestinationId ] [-DestinationAddress ] [-DestinationPort ] + [-ProtocolConfiguration ] [-AsJob] + [-DefaultProfile ] [] +``` + ++ SetByName +```powershell +Test-AzNetworkWatcherConnectivity -NetworkWatcherName -ResourceGroupName -SourceId + [-SourcePort ] [-DestinationId ] [-DestinationAddress ] [-DestinationPort ] + [-ProtocolConfiguration ] [-AsJob] + [-DefaultProfile ] [] +``` + ++ SetByLocation +```powershell +Test-AzNetworkWatcherConnectivity -Location -SourceId [-SourcePort ] + [-DestinationId ] [-DestinationAddress ] [-DestinationPort ] + [-ProtocolConfiguration ] [-AsJob] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Test Network Watcher Connectivity from a VM to a website +```powershell +Test-AzNetworkWatcherConnectivity -NetworkWatcherName NetworkWatcher -ResourceGroupName NetworkWatcherRG -SourceId "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ContosoRG/providers/Microsoft.Compute/virtualMachines/MultiTierApp0" -DestinationAddress "bing.com" -DestinationPort 80 +``` + +```output +ConnectionStatus : Reachable +AvgLatencyInMs : 4 +MinLatencyInMs : 2 +MaxLatencyInMs : 15 +ProbesSent : 15 +ProbesFailed : 0 +Hops : [ + { + "Type": "Source", + "Id": "f8cff464-e13f-457f-a09e-4dcd53d38a85", + "Address": "10.1.1.4", + "ResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ContosoRG/provi iders/Microsoft.Network/networkInterfaces/appNic0/ipConfigurations/ipconfig1", + "NextHopIds": [ + "1034b1bf-0b1b-4f0a-93b2-900477f45485" + ], + "Issues": [] + }, + { + "Type": "Internet", + "Id": "1034b1bf-0b1b-4f0a-93b2-900477f45485", + "Address": "13.107.21.200", + "ResourceId": "Internet", + "NextHopIds": [], + "Issues": [] + } + ] +``` + +In this example we test connectivity from a VM in Azure to www.bing.com. + ++ Example 2 + +Returns connectivity information for a specified source VM and a destination. (autogenerated) + + + + +```powershell +Test-AzNetworkWatcherConnectivity -DestinationAddress 'bing.com' -DestinationPort 80 -NetworkWatcher -SourceId '/subscriptions/00000000-0000-0000-0000-00000000000000000/resourceGroups/ContosoRG/providers/Microsoft.Compute/virtualMachines/MultiTierApp0' +``` + + +#### New-AzNetworkWatcherFlowLog + +#### SYNOPSIS +Create or update a flow log resource for the specified network security group. + +#### SYNTAX + ++ SetByName (Default) +```powershell +New-AzNetworkWatcherFlowLog -NetworkWatcherName -ResourceGroupName -Name + -TargetResourceId -StorageId [-EnabledFilteringCriteria ] [-RecordType ] + -Enabled [-EnableRetention ] [-RetentionPolicyDays ] [-FormatType ] + [-FormatVersion ] [-Tag ] [-UserAssignedIdentityId ] [-Force] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByResource +```powershell +New-AzNetworkWatcherFlowLog -NetworkWatcher -Name -TargetResourceId + -StorageId [-EnabledFilteringCriteria ] [-RecordType ] -Enabled + [-EnableRetention ] [-RetentionPolicyDays ] [-FormatType ] [-FormatVersion ] + [-Tag ] [-UserAssignedIdentityId ] [-Force] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ SetByResourceWithTA +```powershell +New-AzNetworkWatcherFlowLog -NetworkWatcher -Name -TargetResourceId + -StorageId [-EnabledFilteringCriteria ] [-RecordType ] -Enabled + [-EnableRetention ] [-RetentionPolicyDays ] [-FormatType ] [-FormatVersion ] + [-EnableTrafficAnalytics] [-TrafficAnalyticsWorkspaceId ] [-TrafficAnalyticsInterval ] + [-Tag ] [-UserAssignedIdentityId ] [-Force] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ SetByNameWithTA +```powershell +New-AzNetworkWatcherFlowLog -NetworkWatcherName -ResourceGroupName -Name + -TargetResourceId -StorageId [-EnabledFilteringCriteria ] [-RecordType ] + -Enabled [-EnableRetention ] [-RetentionPolicyDays ] [-FormatType ] + [-FormatVersion ] [-EnableTrafficAnalytics] [-TrafficAnalyticsWorkspaceId ] + [-TrafficAnalyticsInterval ] [-Tag ] [-UserAssignedIdentityId ] [-Force] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByLocation +```powershell +New-AzNetworkWatcherFlowLog -Location -Name -TargetResourceId -StorageId + [-EnabledFilteringCriteria ] [-RecordType ] -Enabled [-EnableRetention ] + [-RetentionPolicyDays ] [-FormatType ] [-FormatVersion ] [-Tag ] + [-UserAssignedIdentityId ] [-Force] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ SetByLocationWithTA +```powershell +New-AzNetworkWatcherFlowLog -Location -Name -TargetResourceId -StorageId + [-EnabledFilteringCriteria ] [-RecordType ] -Enabled [-EnableRetention ] + [-RetentionPolicyDays ] [-FormatType ] [-FormatVersion ] [-EnableTrafficAnalytics] + [-TrafficAnalyticsWorkspaceId ] [-TrafficAnalyticsInterval ] [-Tag ] + [-UserAssignedIdentityId ] [-Force] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzNetworkWatcherFlowLog -Location eastus -Name pstest -TargetResourceId /subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/MyFlowLog/providers/Microsoft.Network/networkSecurityGroups/MyNSG -StorageId /subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/FlowLogsV2Demo/providers/Microsoft.Storage/storageAccounts/MyStorage -Enabled $true -EnableRetention $true -RetentionPolicyDays 5 -FormatVersion 2 -EnableTrafficAnalytics -TrafficAnalyticsWorkspaceId /subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourcegroups/flowlogsv2demo/providers/Microsoft.OperationalInsights/workspaces/MyWorkspace -UserAssignedIdentityId /subscriptions/af15e575-f948-49ac-bce0-252d028e9379/resourceGroups/mejaRGEastUS2EUAP/providers/Microsoft.ManagedIdentity/userAssignedIdentities/mejaid2 +``` + +```output +Name : pstest +Id : /subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/NetworkWatcherRG/provid + ers/Microsoft.Network/networkWatchers/NetworkWatcher_eastus/FlowLogs/pstest +Etag : W/"f6047360-d797-4ca6-a9ec-28b5aec5c768" +ProvisioningState : Succeeded +Location : eastus +TargetResourceId : /subscriptions/56abfbd6-ec72-4ce9-831f-bc2b6f2c5505/resourceGroups/MyFlowLog/provide + rs/Microsoft.Network/networkSecurityGroups/MyNSG +StorageId : /subscriptions/56abfbd6-ec72-4ce9-831f-bc2b6f2c5505/resourceGroups/FlowLogsV2Demo/provider + s/Microsoft.Storage/storageAccounts/MySTorage +Enabled : True +RetentionPolicy : { + "Days": 5, + "Enabled": true + } +Format : { + "Type": "JSON", + "Version": 2 + } +FlowAnalyticsConfiguration : { + "networkWatcherFlowAnalyticsConfiguration": { + "enabled": true, + "workspaceId": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb", + "workspaceRegion": "eastus", + "workspaceResourceId": "/subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourcegr + oups/flowlogsv2demo/providers/Microsoft.OperationalInsights/workspaces/MyWorkspace", + "trafficAnalyticsInterval": 60 + } + } +IdentityText : { + "Type": "UserAssigned", + "UserAssignedIdentities": { + "/subscriptions/af15e575-f948-49ac-bce0-252d028e9379/resourcegroups/mejaRGEastUS2EUAP/providers/Microsoft.ManagedIdentity/userAssignedIdentities/mejaid2": { + "PrincipalId": "57728676-94fe-4254-a01d-632b4a375c1d", + "ClientId": "95751030-0b3f-4b94-990a-ffdac5c85714" + } + } + } +``` + ++ Example 2 +```powershell +New-AzNetworkWatcherFlowLog -Location eastus -Name pstest -TargetResourceId /subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/MyFlowLog/providers/Microsoft.Network/networkSecurityGroups/MyNSG -StorageId /subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/FlowLogsV2Demo/providers/Microsoft.Storage/storageAccounts/MyStorage -Enabled $false -EnableTrafficAnalytics:$false +``` + +```output +Name : pstest +Id : /subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/NetworkWatcherRG/provid + ers/Microsoft.Network/networkWatchers/NetworkWatcher_eastus/FlowLogs/pstest +Etag : W/"f6047360-d797-4ca6-a9ec-28b5aec5c768" +ProvisioningState : Succeeded +Location : eastus +TargetResourceId : /subscriptions/56abfbd6-ec72-4ce9-831f-bc2b6f2c5505/resourceGroups/MyFlowLog/provide + rs/Microsoft.Network/networkSecurityGroups/MyNSG +StorageId : /subscriptions/56abfbd6-ec72-4ce9-831f-bc2b6f2c5505/resourceGroups/FlowLogsV2Demo/provider + s/Microsoft.Storage/storageAccounts/MySTorage +Enabled : False +RetentionPolicy : { + "Days": 0, + "Enabled": false + } +Format : { + "Type": "JSON", + "Version": 1 + } +FlowAnalyticsConfiguration : { + "networkWatcherFlowAnalyticsConfiguration": { + "enabled": false, + "trafficAnalyticsInterval": 60 + } + } +``` + +If you want to disable flowLog resource for which TrafficAnalytics is configured, it is necessary to disable TrafficAnalytics as well. It can be done like in the example 2. + + +#### Get-AzNetworkWatcherFlowLog + +#### SYNOPSIS +Gets a flow log resource or a list of flow log resources in the specified subscription and region. + +#### SYNTAX + ++ SetByName (Default) +```powershell +Get-AzNetworkWatcherFlowLog -NetworkWatcherName -ResourceGroupName [-Name ] + [-DefaultProfile ] [] +``` + ++ SetByResource +```powershell +Get-AzNetworkWatcherFlowLog -NetworkWatcher [-Name ] + [-DefaultProfile ] [] +``` + ++ SetByLocation +```powershell +Get-AzNetworkWatcherFlowLog -Location [-Name ] [-DefaultProfile ] + [] +``` + ++ SetByResourceId +```powershell +Get-AzNetworkWatcherFlowLog -ResourceId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzNetworkWatcherFlowLog -Location eastus -Name pstest +``` + +Name : pstest +Id : /subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/NetworkWatcherRG/provid + ers/Microsoft.Network/networkWatchers/NetworkWatcher_eastus/FlowLogs/pstest +Etag : W/"f6047360-d797-4ca6-a9ec-28b5aec5c768" +ProvisioningState : Succeeded +Location : eastus +TargetResourceId : /subscriptions/56abfbd6-ec72-4ce9-831f-bc2b6f2c5505/resourceGroups/MyFlowLog/provide + rs/Microsoft.Network/networkSecurityGroups/MyNSG +StorageId : /subscriptions/56abfbd6-ec72-4ce9-831f-bc2b6f2c5505/resourceGroups/FlowLogsV2Demo/provider + s/Microsoft.Storage/storageAccounts/MySTorage +Enabled : True +RetentionPolicy : { + "Days": 5, + "Enabled": true + } +Format : { + "Type": "JSON", + "Version": 2 + } +FlowAnalyticsConfiguration : { + "networkWatcherFlowAnalyticsConfiguration": { + "enabled": true, + "workspaceId": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb", + "workspaceRegion": "eastus", + "workspaceResourceId": "/subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourcegr + oups/flowlogsv2demo/providers/Microsoft.OperationalInsights/workspaces/MyWorkspace", + "trafficAnalyticsInterval": 60 + } + ++ Example 2 + +Gets a flow log resource or a list of flow log resources in the specified subscription and region. (autogenerated) + + + + +```powershell +Get-AzNetworkWatcherFlowLog -NetworkWatcherName nw1 -ResourceGroupName myresourcegroup +``` + + +#### Remove-AzNetworkWatcherFlowLog + +#### SYNOPSIS +Deletes the specified flow log resource. + +#### SYNTAX + ++ SetByName (Default) +```powershell +Remove-AzNetworkWatcherFlowLog -NetworkWatcherName -ResourceGroupName -Name + [-PassThru] [-AsJob] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + ++ SetByResource +```powershell +Remove-AzNetworkWatcherFlowLog -NetworkWatcher -Name [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByLocation +```powershell +Remove-AzNetworkWatcherFlowLog -Location -Name [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByResourceId +```powershell +Remove-AzNetworkWatcherFlowLog -ResourceId [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByInputObject +```powershell +Remove-AzNetworkWatcherFlowLog -InputObject [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzNetworkWatcherFlowLog -Location eastus -Name pstest +``` + + +#### Set-AzNetworkWatcherFlowLog + +#### SYNOPSIS +Updates flow log resource. + +#### SYNTAX + ++ SetByName (Default) +```powershell +Set-AzNetworkWatcherFlowLog -NetworkWatcherName -ResourceGroupName -Name + -TargetResourceId -StorageId [-EnabledFilteringCriteria ] [-RecordType ] + -Enabled [-EnableRetention ] [-RetentionPolicyDays ] [-FormatType ] + [-UserAssignedIdentityId ] [-FormatVersion ] [-Tag ] [-Force] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByResource +```powershell +Set-AzNetworkWatcherFlowLog -NetworkWatcher -Name -TargetResourceId + -StorageId [-EnabledFilteringCriteria ] [-RecordType ] -Enabled + [-EnableRetention ] [-RetentionPolicyDays ] [-FormatType ] + [-UserAssignedIdentityId ] [-FormatVersion ] [-Tag ] [-Force] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByResourceWithTA +```powershell +Set-AzNetworkWatcherFlowLog -NetworkWatcher -Name -TargetResourceId + -StorageId [-EnabledFilteringCriteria ] [-RecordType ] -Enabled + [-EnableRetention ] [-RetentionPolicyDays ] [-FormatType ] + [-UserAssignedIdentityId ] [-FormatVersion ] [-EnableTrafficAnalytics] + [-TrafficAnalyticsWorkspaceId ] [-TrafficAnalyticsInterval ] [-Tag ] [-Force] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByNameWithTA +```powershell +Set-AzNetworkWatcherFlowLog -NetworkWatcherName -ResourceGroupName -Name + -TargetResourceId -StorageId [-EnabledFilteringCriteria ] [-RecordType ] + -Enabled [-EnableRetention ] [-RetentionPolicyDays ] [-FormatType ] + [-UserAssignedIdentityId ] [-FormatVersion ] [-EnableTrafficAnalytics] + [-TrafficAnalyticsWorkspaceId ] [-TrafficAnalyticsInterval ] [-Tag ] [-Force] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByLocation +```powershell +Set-AzNetworkWatcherFlowLog -Location -Name -TargetResourceId -StorageId + [-EnabledFilteringCriteria ] [-RecordType ] -Enabled [-EnableRetention ] + [-RetentionPolicyDays ] [-FormatType ] [-UserAssignedIdentityId ] + [-FormatVersion ] [-Tag ] [-Force] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ SetByLocationWithTA +```powershell +Set-AzNetworkWatcherFlowLog -Location -Name -TargetResourceId -StorageId + [-EnabledFilteringCriteria ] [-RecordType ] -Enabled [-EnableRetention ] + [-RetentionPolicyDays ] [-FormatType ] [-UserAssignedIdentityId ] + [-FormatVersion ] [-EnableTrafficAnalytics] [-TrafficAnalyticsWorkspaceId ] + [-TrafficAnalyticsInterval ] [-Tag ] [-Force] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ SetByResourceId +```powershell +Set-AzNetworkWatcherFlowLog -ResourceId -TargetResourceId -StorageId + [-EnabledFilteringCriteria ] [-RecordType ] -Enabled [-EnableRetention ] + [-RetentionPolicyDays ] [-FormatType ] [-UserAssignedIdentityId ] + [-FormatVersion ] [-Tag ] [-Force] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ SetByResourceIdWithTA +```powershell +Set-AzNetworkWatcherFlowLog -ResourceId -TargetResourceId -StorageId + [-EnabledFilteringCriteria ] [-RecordType ] -Enabled [-EnableRetention ] + [-RetentionPolicyDays ] [-FormatType ] [-UserAssignedIdentityId ] + [-FormatVersion ] [-EnableTrafficAnalytics] [-TrafficAnalyticsWorkspaceId ] + [-TrafficAnalyticsInterval ] [-Tag ] [-Force] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ SetByInputObject +```powershell +Set-AzNetworkWatcherFlowLog -InputObject [-UserAssignedIdentityId ] [-Force] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$flowLog = Get-AzNetworkWatcherFlowLog -Location eastus -Name pstest +$flowLog.Enabled = $true +$flowLog.Format.Version = 2 +$flowLog | Set-AzNetworkWatcherFlowLog -Force +``` + +```output +Name : pstest +Id : /subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/NetworkWatcherRG/provid + ers/Microsoft.Network/networkWatchers/NetworkWatcher_eastus/FlowLogs/pstest +Etag : W/"e939e1e6-1509-4d7a-9e89-1ea532f6f222" +ProvisioningState : Succeeded +Location : eastus +TargetResourceId : /subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/MyFlowLog/provide + rs/Microsoft.Network/networkSecurityGroups/MyNSG +StorageId : /subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/FlowLogsV2Demo/provider + s/Microsoft.Storage/storageAccounts/MyStorage +Enabled : True +RetentionPolicy : { + "Days": 0, + "Enabled": false + } +Format : { + "Type": "JSON", + "Version": 2 + } +FlowAnalyticsConfiguration : {} +``` + ++ Example 2 + +Updates flow log resource. (autogenerated) + + + + +```powershell +Set-AzNetworkWatcherFlowLog -Enabled $true -Name 'cert01' -NetworkWatcherName nw1 -ResourceGroupName myresourcegroup -StorageId /subscriptions/00000000-0000-0000-0000-00000000000000000/resourceGroups/FlowLogsV2Demo/providers/Microsoft.Storage/storageAccounts/MyStorage -TargetResourceId +``` + + +#### Get-AzNetworkWatcherFlowLogStatus + +#### SYNOPSIS +Gets the status of flow logging on a resource. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +Get-AzNetworkWatcherFlowLogStatus -NetworkWatcher -TargetResourceId [-AsJob] + [-DefaultProfile ] [] +``` + ++ SetByName +```powershell +Get-AzNetworkWatcherFlowLogStatus -NetworkWatcherName -ResourceGroupName + -TargetResourceId [-AsJob] [-DefaultProfile ] + [] +``` + ++ SetByLocation +```powershell +Get-AzNetworkWatcherFlowLogStatus -Location -TargetResourceId [-AsJob] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Get the Flow Logging Status for a Specified NSG +```powershell +$NW = Get-AzNetworkWatcher -ResourceGroupName NetworkWatcherRg -Name NetworkWatcher_westcentralus +$nsg = Get-AzNetworkSecurityGroup -ResourceGroupName NSGRG -Name appNSG + +Get-AzNetworkWatcherFlowLogStatus -NetworkWatcher $NW -TargetResourceId $nsg.Id +``` + +```output +TargetResourceId : /subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/NSGRG/providers/Microsoft.Network/networkSecurityGroups/appNSG +Properties : { + "Enabled": true, + "RetentionPolicy": { + "Days": 0, + "Enabled": false + }, + "StorageId": "/subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/NSGRG/providers/Microsoft.Storage/storageAccounts/contosostorageacct123" + "Format" : { + "Type ": "Json", + "Version": 1 + } + } +``` + +In this example we get the flow logging status for a Network Security Group. The specified NSG has flow logging enabled, default format, and no retention policy set. + ++ Example 2: Get the Flow Logging and Traffic Analytics Status for a Specified NSG +```powershell +$NW = Get-AzNetworkWatcher -ResourceGroupName NetworkWatcherRg -Name NetworkWatcher_westcentralus +$nsg = Get-AzNetworkSecurityGroup -ResourceGroupName NSGRG -Name appNSG + +Get-AzNetworkWatcherFlowLogStatus -NetworkWatcher $NW -TargetResourceId $nsg.Id +``` + +```output +TargetResourceId : /subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/NSGRG/providers/Microsoft.Network/networkSecurityGroups/appNSG +StorageId : /subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/NSGRG/providers/Microsoft.Storage/storageAccounts/contosostorageacct123 +Enabled : True +RetentionPolicy : { + "Days": 0, + "Enabled": false + } +Format : { + "Type ": "Json", + "Version": 1 + } +FlowAnalyticsConfiguration : { + "networkWatcherFlowAnalyticsConfiguration": { + "enabled": true, + "workspaceId": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb", + "workspaceRegion": "WorkspaceLocation", + "workspaceResourceId": "/subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourcegroups/WorkspaceRg/providers/microsoft.operationalinsights/workspaces/WorkspaceName", + "TrafficAnalyticsInterval": 60 + } + } +``` + +In this example we get the flow logging and Traffic Analytics status for a Network Security Group. The specified NSG has flow logging and Traffic Analytics enabled, default format and no retention policy set. + + +#### Test-AzNetworkWatcherIPFlow + +#### SYNOPSIS +Returns whether the packet is allowed or denied to or from a particular destination. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +Test-AzNetworkWatcherIPFlow -NetworkWatcher -TargetVirtualMachineId + -Direction -Protocol -RemoteIPAddress -LocalIPAddress -LocalPort + [-RemotePort ] [-TargetNetworkInterfaceId ] [-AsJob] + [-DefaultProfile ] [] +``` + ++ SetByName +```powershell +Test-AzNetworkWatcherIPFlow -NetworkWatcherName -ResourceGroupName + -TargetVirtualMachineId -Direction -Protocol -RemoteIPAddress + -LocalIPAddress -LocalPort [-RemotePort ] [-TargetNetworkInterfaceId ] + [-AsJob] [-DefaultProfile ] [] +``` + ++ SetByLocation +```powershell +Test-AzNetworkWatcherIPFlow -Location -TargetVirtualMachineId -Direction + -Protocol -RemoteIPAddress -LocalIPAddress -LocalPort + [-RemotePort ] [-TargetNetworkInterfaceId ] [-AsJob] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Run Test-AzNetworkWatcherIPFlow +```powershell +$nw = Get-AzResource | Where-Object {$_.ResourceType -eq "Microsoft.Network/networkWatchers" -and $_.Location -eq "WestCentralUS" } +$networkWatcher = Get-AzNetworkWatcher -Name $nw.Name -ResourceGroupName $nw.ResourceGroupName +$VM = Get-AzVM -ResourceGroupName testResourceGroup -Name VM0 +$Nics = Get-AzNetworkInterface | Where-Object { $vm.NetworkProfile.NetworkInterfaces.Id -contains $_.Id } + +Test-AzNetworkWatcherIPFlow -NetworkWatcher $networkWatcher -TargetVirtualMachineId $VM.Id -Direction Outbound -Protocol TCP -LocalIPAddress $nics[0].IpConfigurations[0].PrivateIpAddress -LocalPort 6895 -RemoteIPAddress 204.79.197.200 -RemotePort 80 +``` + +Gets the Network Watcher in West Central US for this subscription, then gets the VM and it's associated Network Interfaces. +Then for the first Network Interface, runs Test-AzNetworkWatcherIPFlow using the first IP from the first Network Interface for an outbound connection to an IP on the internet. + + +#### Invoke-AzNetworkWatcherNetworkConfigurationDiagnostic + +#### SYNOPSIS +Invoke network configuration diagnostic session for specified network profiles on target resource. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +Invoke-AzNetworkWatcherNetworkConfigurationDiagnostic -NetworkWatcher + -TargetResourceId [-VerbosityLevel ] + -Profile + [-AsJob] [-DefaultProfile ] [] +``` + ++ SetByName +```powershell +Invoke-AzNetworkWatcherNetworkConfigurationDiagnostic -NetworkWatcherName -ResourceGroupName + -TargetResourceId [-VerbosityLevel ] + -Profile + [-AsJob] [-DefaultProfile ] [] +``` + ++ SetByLocation +```powershell +Invoke-AzNetworkWatcherNetworkConfigurationDiagnostic -Location -TargetResourceId + [-VerbosityLevel ] + -Profile + [-AsJob] [-DefaultProfile ] [] +``` + ++ SetByResourceId +```powershell +Invoke-AzNetworkWatcherNetworkConfigurationDiagnostic -ResourceId -TargetResourceId + [-VerbosityLevel ] + -Profile + [-AsJob] [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Invoke network configuration diagnostic session for VM and specified network profile +```powershell +$profile = New-AzNetworkWatcherNetworkConfigurationDiagnosticProfile -Direction Inbound -Protocol Tcp -Source 10.1.1.4 -Destination * -DestinationPort 50 +Invoke-AzNetworkWatcherNetworkConfigurationDiagnostic -Location eastus -TargetResourceId /subscriptions/61cc8a98-a8be-4bfe-a04e-0b461f93fe35/resourceGroups/NwRgEastUS/providers/Microsoft.Compute/virtualMachines/vm1 -Profile $profile +``` + +```output +Results : [ + { + "Profile": { + "Direction": "Inbound", + "Protocol": "Tcp", + "Source": "10.1.1.4", + "Destination": "*", + "DestinationPort": "50" + }, + "NetworkSecurityGroupResult": { + "SecurityRuleAccessResult": "Allow", + "EvaluatedNetworkSecurityGroups": [ + { + "NetworkSecurityGroupId": "/subscriptions/61cc8a98-a8be-4bfe-a04e-0b461f93fe35/resourceGroups/clean + upservice/providers/Microsoft.Network/networkSecurityGroups/rg-cleanupservice-nsg1", + "MatchedRule": { + "RuleName": "UserRule_Cleanuptool-Allow-4001", + "Action": "Allow" + }, + "RulesEvaluationResult": [ + { + "Name": "UserRule_Cleanuptool-Allow-100", + "ProtocolMatched": true, + "SourceMatched": false, + "SourcePortMatched": true, + "DestinationMatched": true, + "DestinationPortMatched": false + }, +``` + + +#### New-AzNetworkWatcherNetworkConfigurationDiagnosticProfile + +#### SYNOPSIS +Creates a new network configuration diagnostic profile object. +This object is used to restrict the network configuration during a diagnostic session using the specified criteria. + +#### SYNTAX + +```powershell +New-AzNetworkWatcherNetworkConfigurationDiagnosticProfile -Direction -Protocol + -Source -Destination -DestinationPort [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Invoke network configuration diagnostic session for VM and specified network profile +```powershell +$profile = New-AzNetworkWatcherNetworkConfigurationDiagnosticProfile -Direction Inbound -Protocol Tcp -Source 10.1.1.4 -Destination * -DestinationPort 50 +Invoke-AzNetworkWatcherNetworkConfigurationDiagnostic -Location eastus -TargetResourceId /subscriptions/61cc8a98-a8be-4bfe-a04e-0b461f93fe35/resourceGroups/NwRgEastUS/providers/Microsoft.Compute/virtualMachines/vm1 -Profile $profile +``` + +```output +Results : [ + { + "Profile": { + "Direction": "Inbound", + "Protocol": "Tcp", + "Source": "10.1.1.4", + "Destination": "*", + "DestinationPort": "50" + }, + "NetworkSecurityGroupResult": { + "SecurityRuleAccessResult": "Allow", + "EvaluatedNetworkSecurityGroups": [ + { + "NetworkSecurityGroupId": "/subscriptions/61cc8a98-a8be-4bfe-a04e-0b461f93fe35/resourceGroups/clean + upservice/providers/Microsoft.Network/networkSecurityGroups/rg-cleanupservice-nsg1", + "MatchedRule": { + "RuleName": "UserRule_Cleanuptool-Allow-4001", + "Action": "Allow" + }, + "RulesEvaluationResult": [ + { + "Name": "UserRule_Cleanuptool-Allow-100", + "ProtocolMatched": true, + "SourceMatched": false, + "SourcePortMatched": true, + "DestinationMatched": true, + "DestinationPortMatched": false + }, +``` + + +#### Get-AzNetworkWatcherNextHop + +#### SYNOPSIS +Gets the next hop from a VM. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +Get-AzNetworkWatcherNextHop -NetworkWatcher -TargetVirtualMachineId + -DestinationIPAddress -SourceIPAddress [-TargetNetworkInterfaceId ] [-AsJob] + [-DefaultProfile ] [] +``` + ++ SetByName +```powershell +Get-AzNetworkWatcherNextHop -NetworkWatcherName -ResourceGroupName + -TargetVirtualMachineId -DestinationIPAddress -SourceIPAddress + [-TargetNetworkInterfaceId ] [-AsJob] [-DefaultProfile ] + [] +``` + ++ SetByLocation +```powershell +Get-AzNetworkWatcherNextHop -Location -TargetVirtualMachineId -DestinationIPAddress + -SourceIPAddress [-TargetNetworkInterfaceId ] [-AsJob] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Get the Next Hop when communicating with an Internet IP +```powershell +$nw = Get-AzResource | Where-Object {$_.ResourceType -eq "Microsoft.Network/networkWatchers" -and $_.Location -eq "WestCentralUS" } +$networkWatcher = Get-AzNetworkWatcher -Name $nw.Name -ResourceGroupName $nw.ResourceGroupName +$VM = Get-AzVM -ResourceGroupName ContosoResourceGroup -Name VM0 +$Nics = Get-AzNetworkInterface | Where-Object {$_.Id -eq $vm.NetworkProfile.NetworkInterfaces.Id.ForEach({$_})} +Get-AzNetworkWatcherNextHop -NetworkWatcher $networkWatcher -TargetVirtualMachineId $VM.Id -SourceIPAddress $nics[0].IpConfigurations[0].PrivateIpAddress -DestinationIPAddress 204.79.197.200 +``` + +```output +NextHopIpAddress NextHopType RouteTableId +---------------- ----------- ------------ + Internet System Route +``` + +Gets the Next Hop for outbound communication from the primary Network Interface on the specified Virtual Machine to 204.79.197.200 (www.bing.com) + + +#### New-AzNetworkWatcherPacketCapture + +#### SYNOPSIS +Creates a new packet capture resource and starts a packet capture session on a VM. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +New-AzNetworkWatcherPacketCapture -NetworkWatcher -PacketCaptureName + -TargetVirtualMachineId [-StorageAccountId ] [-StoragePath ] + [-LocalFilePath ] [-BytesToCapturePerPacket ] [-TotalBytesPerSession ] + [-TimeLimitInSeconds ] [-Filter ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByName +```powershell +New-AzNetworkWatcherPacketCapture -NetworkWatcherName -ResourceGroupName + -PacketCaptureName -TargetVirtualMachineId [-StorageAccountId ] + [-StoragePath ] [-LocalFilePath ] [-BytesToCapturePerPacket ] + [-TotalBytesPerSession ] [-TimeLimitInSeconds ] [-Filter ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByLocation +```powershell +New-AzNetworkWatcherPacketCapture -Location -PacketCaptureName + -TargetVirtualMachineId [-StorageAccountId ] [-StoragePath ] + [-LocalFilePath ] [-BytesToCapturePerPacket ] [-TotalBytesPerSession ] + [-TimeLimitInSeconds ] [-Filter ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Create a Packet Capture with multiple filters +```powershell +$nw = Get-AzResource | Where-Object {$_.ResourceType -eq "Microsoft.Network/networkWatchers" -and $_.Location -eq "WestCentralUS" } +$networkWatcher = Get-AzNetworkWatcher -Name $nw.Name -ResourceGroupName $nw.ResourceGroupName + +$storageAccount = Get-AzStorageAccount -ResourceGroupName contosoResourceGroup -Name contosostorage123 + +$filter1 = New-AzPacketCaptureFilterConfig -Protocol TCP -RemoteIPAddress "1.1.1.1-255.255.255" -LocalIPAddress "10.0.0.3" -LocalPort "1-65535" -RemotePort "20;80;443" +$filter2 = New-AzPacketCaptureFilterConfig -Protocol UDP +New-AzNetworkWatcherPacketCapture -NetworkWatcher $networkWatcher -TargetVirtualMachineId $vm.Id -PacketCaptureName "PacketCaptureTest" -StorageAccountId $storageAccount.id -TimeLimitInSeconds 60 -Filter $filter1, $filter2 +``` + +In this example we create a packet capture named "PacketCaptureTest" with multiple filters and a time limit. Once the session is complete, it will be saved to the specified storage account. +Note: The Azure Network Watcher extension must be installed on the target virtual machine to create packet captures. + + +#### Get-AzNetworkWatcherPacketCapture + +#### SYNOPSIS +Gets information and properties and status of a packet capture resource. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +Get-AzNetworkWatcherPacketCapture -NetworkWatcher [-PacketCaptureName ] [-AsJob] + [-DefaultProfile ] [] +``` + ++ SetByName +```powershell +Get-AzNetworkWatcherPacketCapture -NetworkWatcherName -ResourceGroupName + [-PacketCaptureName ] [-AsJob] [-DefaultProfile ] + [] +``` + ++ SetByLocation +```powershell +Get-AzNetworkWatcherPacketCapture -Location [-PacketCaptureName ] [-AsJob] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Create a Packet Capture with multiple filters and retrieve its status +```powershell +$nw = Get-AzResource | Where-Object {$_.ResourceType -eq "Microsoft.Network/networkWatchers" -and $_.Location -eq "WestCentralUS" } +$networkWatcher = Get-AzNetworkWatcher -Name $nw.Name -ResourceGroupName $nw.ResourceGroupName + +$storageAccount = Get-AzStorageAccount -ResourceGroupName contosoResourceGroup -Name contosostorage123 + +$filter1 = New-AzPacketCaptureFilterConfig -Protocol TCP -RemoteIPAddress "1.1.1.1-255.255.255" -LocalIPAddress "10.0.0.3" -LocalPort "1-65535" -RemotePort "20;80;443" +$filter2 = New-AzPacketCaptureFilterConfig -Protocol UDP +New-AzNetworkWatcherPacketCapture -NetworkWatcher $networkWatcher -TargetVirtualMachineId $vm.Id -PacketCaptureName "PacketCaptureTest" -StorageAccountId $storageAccount.id -TimeLimitInSeconds 60 -Filter $filter1, $filter2 + +Get-AzNetworkWatcherPacketCapture -NetworkWatcher $networkWatcher -PacketCaptureName "PacketCaptureTest" +``` + +In this example we create a packet capture named "PacketCaptureTest" with multiple filters and a time limit. Once the session is complete, it will be saved to the specified storage account. +We then call Get-AzNetworkWatcherPacketCapture to retrieve the status of the capture session. +Note: The Azure Network Watcher extension must be installed on the target virtual machine to create packet captures. + +>[!NOTE] +>If you create a reference to the packet capture directly from the New-AzNetworkWatcherPacketCapture command, it won't have all the properties. You can get all of the properties of the packet capture by making a call to the Get-AzNetworkWatcherPacketCapture command. + ++ Example 2: Create a Packet Capture with multiple filters and retrieve its status +```powershell +Get-AzNetworkWatcherPacketCapture -ResourceGroupName rg1 -NetworkWatcherName nw1 -PacketCaptureName PacketCapture* +``` + +This cmdlet returns all PacketCaptures that start with "PacketCapture" in the nw1 Network Watcher. + + +#### Remove-AzNetworkWatcherPacketCapture + +#### SYNOPSIS +Removes a packet capture resource. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +Remove-AzNetworkWatcherPacketCapture -NetworkWatcher -PacketCaptureName [-PassThru] + [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByName +```powershell +Remove-AzNetworkWatcherPacketCapture -NetworkWatcherName -ResourceGroupName + -PacketCaptureName [-PassThru] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ SetByLocation +```powershell +Remove-AzNetworkWatcherPacketCapture -Location -PacketCaptureName [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Remove a packet capture session +```powershell +Remove-AzNetworkWatcherPacketCapture -NetworkWatcher $networkWatcher -PacketCaptureName "PacketCaptureTest" +``` + +In this example we remove an existing packet capture session named "PacketCaptureTest". + + +#### Stop-AzNetworkWatcherPacketCapture + +#### SYNOPSIS +Stops a running packet capture session + +#### SYNTAX + ++ SetByResource (Default) +```powershell +Stop-AzNetworkWatcherPacketCapture -NetworkWatcher -PacketCaptureName [-PassThru] + [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByName +```powershell +Stop-AzNetworkWatcherPacketCapture -NetworkWatcherName -ResourceGroupName + -PacketCaptureName [-PassThru] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ SetByLocation +```powershell +Stop-AzNetworkWatcherPacketCapture -Location -PacketCaptureName [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Stop a packet capture session +```powershell +Stop-AzNetworkWatcherPacketCapture -NetworkWatcher $networkWatcher -PacketCaptureName "PacketCaptureTest" +``` + +In this example we stop a running packet capture session named "PacketCaptureTest". After the session is stopped, the packet capture file is uploaded to storage and/or saved locally on the VM depending on its configuration. + + +#### New-AzNetworkWatcherPacketCaptureV2 + +#### SYNOPSIS +V2 Version of Packet Capture Cmdlet which creates a new packet capture resource and starts a packet capture session on a VM, VMSS or few instances of VMSS. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +New-AzNetworkWatcherPacketCaptureV2 -NetworkWatcher -Name -TargetId + [-StorageAccountId ] [-StoragePath ] [-LocalFilePath ] + [-BytesToCapturePerPacket ] [-TotalBytesPerSession ] [-TimeLimitInSecond ] + [-Scope ] [-TargetType ] [-Filter ] + [-ContinuousCapture ] [-LocalPath ] [-CaptureSetting ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByName +```powershell +New-AzNetworkWatcherPacketCaptureV2 -NetworkWatcherName -ResourceGroupName -Name + -TargetId [-StorageAccountId ] [-StoragePath ] [-LocalFilePath ] + [-BytesToCapturePerPacket ] [-TotalBytesPerSession ] [-TimeLimitInSecond ] + [-Scope ] [-TargetType ] [-Filter ] + [-ContinuousCapture ] [-LocalPath ] [-CaptureSetting ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByLocation +```powershell +New-AzNetworkWatcherPacketCaptureV2 -Location -Name -TargetId + [-StorageAccountId ] [-StoragePath ] [-LocalFilePath ] + [-BytesToCapturePerPacket ] [-TotalBytesPerSession ] [-TimeLimitInSecond ] + [-Scope ] [-TargetType ] [-Filter ] + [-ContinuousCapture ] [-LocalPath ] [-CaptureSetting ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Create a Packet Capture on a VM +```powershell +$nw = Get-AzResource | Where {$_.ResourceType -eq "Microsoft.Network/networkWatchers" -and $_.Location -eq "WestCentralUS" } +$networkWatcher = Get-AzNetworkWatcher -Name $nw.Name -ResourceGroupName $nw.ResourceGroupName + +$storageAccount = Get-AzStorageAccount -ResourceGroupName contosoResourceGroup -Name contosostorage123 + +$filter1 = New-AzPacketCaptureFilterConfig -Protocol TCP -RemoteIPAddress "1.1.1.1-255.255.255" -LocalIPAddress "10.0.0.3" -LocalPort "1-65535" -RemotePort "20;80;443" +$filter2 = New-AzPacketCaptureFilterConfig -Protocol UDP +New-AzNetworkWatcherPacketCaptureV2 -NetworkWatcher $networkWatcher -TargetId $vm.Id -TargetType "azurevm" -Name "PacketCaptureTest" -StorageAccountId $storageAccount.id -TimeLimitInSecond 60 -Filter $filter1, $filter2 +``` + +```output +Name : PacketCaptureTest +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/NetworkWatcherRG/providers/Microsoft.Network/networkWatchers/NetworkWatcher_eastus/packetCaptures/PacketCaptureTest +Etag : W/"0b3c52cb-aa63-4647-93d3-3221c13ccdd2" +ProvisioningState : Succeeded +Target : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contosoResourceGroup/providers/Microsoft.Compute/virtualMachines/SampleVM +TargetType : AzureVM +BytesToCapturePerPacket : 0 +TotalBytesPerSession : 1073741824 +TimeLimitInSeconds : 18000 +StorageLocation : { + "StorageId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contosoResourceGroup/providers/Microsoft.Storage/storageAccounts/contosostorage123", + "StoragePath": "https://contosostorage123.blob.core.windows.net/network-watcher-logs/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/contosoResourceGroup/providers/microsoft.compute/virtualmachines/SampleVM/2022/07/21/packetcapture_09_20_07_166.cap" + } +Filters : [ + { + "Protocol": "TCP", + "RemoteIPAddress": "1.1.1.1-255.255.255", + "LocalIPAddress": "10.0.0.3", + "LocalPort": "1-65535", + "RemotePort": "20;80;443" + }, + { + "Protocol": "UDP", + "RemoteIPAddress": "", + "LocalIPAddress": "", + "LocalPort": "", + "RemotePort": "" + } + ] +Scope : { + "Include": [], + "Exclude": [] + } +``` + +In this example we create a packet capture named "PacketCaptureTest" with multiple filters and a time limit. Once the session is complete, it will be saved to the specified storage account. +Note: The Azure Network Watcher extension must be installed on the target virtual machine to create packet captures. + ++ Example 2: Create a Packet Capture on a VMSS +```powershell +$nw = Get-AzResource | Where {$_.ResourceType -eq "Microsoft.Network/networkWatchers" -and $_.Location -eq "WestCentralUS" } +$networkWatcher = Get-AzNetworkWatcher -Name $nw.Name -ResourceGroupName $nw.ResourceGroupName + +$storageAccount = Get-AzStorageAccount -ResourceGroupName contosoResourceGroup -Name contosostorage123 + +$filter1 = New-AzPacketCaptureFilterConfig -Protocol TCP -RemoteIPAddress "1.1.1.1-255.255.255" -LocalIPAddress "10.0.0.3" -LocalPort "1-65535" -RemotePort "20;80;443" +$filter2 = New-AzPacketCaptureFilterConfig -Protocol UDP +New-AzNetworkWatcherPacketCaptureV2 -NetworkWatcher $networkWatcher -TargetId $vmss.Id -TargetType "azurevmss" -Name "PacketCaptureTest" -StorageAccountId $storageAccount.id -TimeLimitInSecond 60 -Filter $filter1, $filter2 +``` + +```output +Name : PacketCaptureTest +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/NetworkWatcherRG/providers/Microsoft.Network/networkWatchers/NetworkWatcher_eastus/packetCaptures/PacketCaptureTest +Etag : W/"0b3c52cb-aa63-4647-93d3-3221c13ccdd2" +ProvisioningState : Succeeded +Target : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contosoResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/SampleVMSS +TargetType : AzureVMSS +BytesToCapturePerPacket : 0 +TotalBytesPerSession : 1073741824 +TimeLimitInSeconds : 60 +StorageLocation : { + "StorageId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contosoResourceGroup/providers/Microsoft.Storage/storageAccounts/contosostorage123", + "StoragePath": "https://contosostorage123.blob.core.windows.net/network-watcher-logs/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/contosoResourceGroup/providers/microsoft.compute/virtualmachinescalesets/SampleVMSS/2022/07/21/packetcapture_09_20_07_166.cap" + } +Filters : [ + { + "Protocol": "TCP", + "RemoteIPAddress": "1.1.1.1-255.255.255", + "LocalIPAddress": "10.0.0.3", + "LocalPort": "1-65535", + "RemotePort": "20;80;443" + }, + { + "Protocol": "UDP", + "RemoteIPAddress": "", + "LocalIPAddress": "", + "LocalPort": "", + "RemotePort": "" + } + ] +Scope : { + "Include": [], + "Exclude": [] + } +``` + +In this example we create a packet capture named "PacketCaptureTest" with multiple filters and a time limit. Once the session is complete, it will be saved to the specified storage account. +Note: The Azure Network Watcher extension must be installed on the target virtual machine scale set and all the respective instances adhering to the latest vmss model, to create packet captures. + ++ Example 3: Create a Packet Capture on few Instances of VMSS +```powershell +$nw = Get-AzResource | Where {$_.ResourceType -eq "Microsoft.Network/networkWatchers" -and $_.Location -eq "WestCentralUS" } +$networkWatcher = Get-AzNetworkWatcher -Name $nw.Name -ResourceGroupName $nw.ResourceGroupName + +$storageAccount = Get-AzStorageAccount -ResourceGroupName contosoResourceGroup -Name contosostorage123 + +$filter1 = New-AzPacketCaptureFilterConfig -Protocol TCP -RemoteIPAddress "1.1.1.1-255.255.255" -LocalIPAddress "10.0.0.3" -LocalPort "1-65535" -RemotePort "20;80;443" +$filter2 = New-AzPacketCaptureFilterConfig -Protocol UDP + +$instance1 = $vmssInstance1.Name +$instance2 = $vmssInstance2.Name +$scope = New-AzPacketCaptureScopeConfig -Include $instance1, $instance2 + +New-AzNetworkWatcherPacketCaptureV2 -NetworkWatcher $networkWatcher -TargetId $vmss.Id -TargetType "azurevmss" -Scope $scope -Name "PacketCaptureTest" -StorageAccountId $storageAccount.id -TimeLimitInSecond 60 -Filter $filter1, $filter2 +``` + +```output +Name : PacketCaptureTest +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/NetworkWatcherRG/providers/Microsoft.Network/networkWatchers/NetworkWatcher_eastus/packetCaptures/PacketCaptureTest +Etag : W/"0b3c52cb-aa63-4647-93d3-3221c13ccdd2" +ProvisioningState : Succeeded +Target : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contosoResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/SampleVMSS +TargetType : AzureVMSS +BytesToCapturePerPacket : 0 +TotalBytesPerSession : 1073741824 +TimeLimitInSeconds : 18000 +StorageLocation : { + "StorageId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contosoResourceGroup/providers/Microsoft.Storage/storageAccounts/contosostorage123", + "StoragePath": "https://contosostorage123.blob.core.windows.net/network-watcher-logs/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/contosoResourceGroup/providers/microsoft.compute/virtualmachinescalesets/SampleVMSS/2022/07/21/packetcapture_09_20_07_166.cap" + } +Filters : [ + { + "Protocol": "TCP", + "RemoteIPAddress": "1.1.1.1-255.255.255", + "LocalIPAddress": "10.0.0.3", + "LocalPort": "1-65535", + "RemotePort": "20;80;443" + }, + { + "Protocol": "UDP", + "RemoteIPAddress": "", + "LocalIPAddress": "", + "LocalPort": "", + "RemotePort": "" + } + ] +Scope : { + "Include": [ + "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contosoResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/SampleVMSS/virtualMachines/0", + "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contosoResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/SampleVMSS/virtualMachines/1" + ], + "Exclude": [] + } +``` + +In this example we create a packet capture named "PacketCaptureTest" with multiple filters and a time limit. Once the session is complete, it will be saved to the specified storage account. +Note: The Azure Network Watcher extension must be installed on the target virtual machine scale set and on the respective instances in include scope adhering to the latest vmss model, to create packet captures. + ++ Example 4: Create a Packet Capture on a VMSS with continuous capture and its settings +```powershell +$nw = Get-AzResource | Where {$_.ResourceType -eq "Microsoft.Network/networkWatchers" -and $_.Location -eq "WestCentralUS" } +$networkWatcher = Get-AzNetworkWatcher -Name $nw.Name -ResourceGroupName $nw.ResourceGroupName + +$capSettings = New-AzPacketCaptureSettingsConfig -FileCount 2 -FileSizeInBytes 102400 -SessionTimeLimitInSeconds 60 + +New-AzNetworkWatcherPacketCaptureV2 -NetworkWatcher $networkWatcher -Name "PacketCaptureTest" -TargetId "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contosoResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/SampleVMSS" -BytesToCapturePerPacket 1 -ContinuousCapture $false -CaptureSetting $capSettings -LocalPath "/var/captures/test1.cap" +``` + +```output +Name : PacketCaptureTest +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/NetworkWatcherRG/providers/Microsoft.Network/networkWatchers/NetworkWatcher_eastus/packetCaptures/PacketCaptureTest +Etag : W/"00000000-0000-0000-0000-000000000000" +ProvisioningState : Succeeded +Target : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contosoResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/SampleVMSS +TargetType : AzureVMSS +BytesToCapturePerPacket : 1 +StorageLocation : { + "StoragePath": "", + "LocalPath": "/var/captures/test1.cap" + } +ContinuousCapture : true +CaptureSettings : { + "fileCount":"2", + "fileSizeInBytes":"102400", + "sessionTimeLimitInSeconds":"60" + } +Filters : [] +Scope : {} +``` + +In this example we create a packet capture named "PacketCaptureTest" with continuous capture as true along with capture settings. Once the session is complete, it will be saved to the specified storage account. +Note: The Azure Network Watcher extension must be installed on the target virtual machine scale set and all the respective instances adhering to the latest vmss model, to create packet captures. + + +#### New-AzNetworkWatcherProtocolConfiguration + +#### SYNOPSIS +Creates a new protocol configuration object. + +#### SYNTAX + +```powershell +New-AzNetworkWatcherProtocolConfiguration -Protocol [-Method ] [-Header ] + [-ValidStatusCode ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Test Network Watcher Connectivity from a VM to a website with protocol configuration +```powershell +$config = New-AzNetworkWatcherProtocolConfiguration -Protocol Http -Method Get -Header @{"accept"="application/json"} -ValidStatusCode @(200,202,204) + +Test-AzNetworkWatcherConnectivity -NetworkWatcherName NetworkWatcher -ResourceGroupName NetworkWatcherRG -SourceId "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ContosoRG/providers/Microsoft.Compute/virtualMachines/MultiTierApp0" -DestinationAddress "bing.com" -DestinationPort 80 -ProtocolConfiguration $config +``` + +```output +ConnectionStatus : Reachable +AvgLatencyInMs : 4 +MinLatencyInMs : 2 +MaxLatencyInMs : 15 +ProbesSent : 15 +ProbesFailed : 0 +Hops : [ + { + "Type": "Source", + "Id": "f8cff464-e13f-457f-a09e-4dcd53d38a85", + "Address": "10.1.1.4", + "ResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ContosoRG/provi iders/Microsoft.Network/networkInterfaces/appNic0/ipConfigurations/ipconfig1", + "NextHopIds": [ + "1034b1bf-0b1b-4f0a-93b2-900477f45485" + ], + "Issues": [] + }, + { + "Type": "Internet", + "Id": "1034b1bf-0b1b-4f0a-93b2-900477f45485", + "Address": "13.107.21.200", + "ResourceId": "Internet", + "NextHopIds": [], + "Issues": [] + } + ] +``` + +In this example we test connectivity from a VM in Azure to www.bing.com. + + +#### Get-AzNetworkWatcherReachabilityProvidersList + +#### SYNOPSIS +Lists all available internet service providers for a specified Azure region. + +#### SYNTAX + ++ SetByName (Default) +```powershell +Get-AzNetworkWatcherReachabilityProvidersList -NetworkWatcherName -ResourceGroupName + [-Location ] [-Country ] [-State ] [-City ] [-AsJob] + [-DefaultProfile ] [] +``` + ++ SetByResource +```powershell +Get-AzNetworkWatcherReachabilityProvidersList -NetworkWatcher [-Location ] + [-Country ] [-State ] [-City ] [-AsJob] [-DefaultProfile ] + [] +``` + ++ SetByLocation +```powershell +Get-AzNetworkWatcherReachabilityProvidersList -NetworkWatcherLocation [-Location ] + [-Country ] [-State ] [-City ] [-AsJob] [-DefaultProfile ] + [] +``` + ++ SetByResourceId +```powershell +Get-AzNetworkWatcherReachabilityProvidersList -ResourceId [-Location ] [-Country ] + [-State ] [-City ] [-AsJob] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$nw = Get-AzNetworkWatcher -Name NetworkWatcher -ResourceGroupName NetworkWatcherRG +Get-AzNetworkWatcherReachabilityProvidersList -NetworkWatcher $nw -Location "West US" -Country "United States" -State "washington" -City "seattle" +``` + +```output +"countries" : [ + { + "countryName" : "United States", + "states" : [ + { + "stateName" : "washington", + "cities" : [ + { + "cityName" : "seattle", + "providers" : [ + "Comcast Cable Communications, Inc. - ASN 7922", + "Comcast Cable Communications, LLC - ASN 7922", + "Level 3 Communications, Inc. (GBLX) - ASN 3549", + "Qwest Communications Company, LLC - ASN 209" + ] + } + ] + } + ] + } +] +``` + +Lists all available providers in Seattle, WA for Azure Data Center in West US. + ++ Example 2 + +Lists all available internet service providers for a specified Azure region. (autogenerated) + + + + +```powershell +Get-AzNetworkWatcherReachabilityProvidersList -NetworkWatcherName nw1 -ResourceGroupName myresourcegroup +``` + + +#### Get-AzNetworkWatcherReachabilityReport + +#### SYNOPSIS +Gets the relative latency score for internet service providers from a specified location to Azure regions. + +#### SYNTAX + ++ SetByName (Default) +```powershell +Get-AzNetworkWatcherReachabilityReport -NetworkWatcherName -ResourceGroupName + [-Provider ] [-Location ] -StartTime -EndTime [-Country ] + [-State ] [-City ] [-AsJob] [-DefaultProfile ] + [] +``` + ++ SetByResource +```powershell +Get-AzNetworkWatcherReachabilityReport -NetworkWatcher [-Provider ] + [-Location ] -StartTime -EndTime [-Country ] [-State ] + [-City ] [-AsJob] [-DefaultProfile ] + [] +``` + ++ SetByResourceId +```powershell +Get-AzNetworkWatcherReachabilityReport -ResourceId [-Provider ] [-Location ] + -StartTime -EndTime [-Country ] [-State ] [-City ] [-AsJob] + [-DefaultProfile ] [] +``` + ++ SetByLocation +```powershell +Get-AzNetworkWatcherReachabilityReport -NetworkWatcherLocation [-Provider ] + [-Location ] -StartTime -EndTime [-Country ] [-State ] + [-City ] [-AsJob] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$nw = Get-AzNetworkWatcher -Name NetworkWatcher -ResourceGroupName NetworkWatcherRG +Get-AzNetworkWatcherReachabilityReport -NetworkWatcher $nw -Location "West US" -Country "United States" -StartTime "2017-10-10" -EndTime "2017-10-12" +``` + +```output +"aggregationLevel" : "Country", +"providerLocation" : { + "country" : "United States" +}, +"reachabilityReport" : [ + { + "provider" : "Frontier Communications of America, Inc. - ASN 5650", + "azureLocation": "West US", + "latencies": [ + { + "timeStamp": "2017-10-10T00:00:00Z", + "score": 94 + }, + { + "timeStamp": "2017-10-11T00:00:00Z", + "score": 94 + }, + { + "timeStamp": "2017-10-12T00:00:00Z", + "score": 94 + } + ] + } +] +``` + +Gets relative latencies to Azure Data Center in West US from 2017-10-10 to 2017-10-12 inside United State. + ++ Example 2 + +Gets the relative latency score for internet service providers from a specified location to Azure regions. (autogenerated) + + + + +```powershell +Get-AzNetworkWatcherReachabilityReport -Country 'United States' -EndTime '2017-10-12' -Location 'West US' -NetworkWatcherName nw1 -ResourceGroupName myresourcegroup -StartTime '2017-10-10' -State 'washington' +``` + + +#### Start-AzNetworkWatcherResourceTroubleshooting + +#### SYNOPSIS +Starts troubleshooting on a Networking resource in Azure. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +Start-AzNetworkWatcherResourceTroubleshooting -NetworkWatcher -TargetResourceId + -StorageId -StoragePath [-DefaultProfile ] + [] +``` + ++ SetByName +```powershell +Start-AzNetworkWatcherResourceTroubleshooting -NetworkWatcherName -ResourceGroupName + -TargetResourceId -StorageId -StoragePath + [-DefaultProfile ] [] +``` + ++ SetByLocation +```powershell +Start-AzNetworkWatcherResourceTroubleshooting -Location -TargetResourceId -StorageId + -StoragePath [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Start Troubleshooting on a Virtual Network Gateway +```powershell +$nw = Get-AzResource | Where-Object {$_.ResourceType -eq "Microsoft.Network/networkWatchers" -and $_.Location -eq "WestCentralUS" } +$networkWatcher = Get-AzNetworkWatcher -Name $nw.Name -ResourceGroupName $nw.ResourceGroupName + +$target = '/subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{vnetGatewayName}' +$storageId = '/subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{storageAccountName}' +$storagePath = 'https://{storageAccountName}.blob.core.windows.net/troubleshoot' + +Start-AzNetworkWatcherResourceTroubleshooting -NetworkWatcher $networkWatcher -TargetResourceId $target -StorageId $storageId -StoragePath $storagePath +``` + +The above sample starts troubleshooting on a virtual network gateway. The operation may take a few minutes to complete. + + +#### Get-AzNetworkWatcherSecurityGroupView + +#### SYNOPSIS +View the configured and effective network security group rules applied on a VM. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +Get-AzNetworkWatcherSecurityGroupView -NetworkWatcher -TargetVirtualMachineId + [-AsJob] [-DefaultProfile ] [] +``` + ++ SetByName +```powershell +Get-AzNetworkWatcherSecurityGroupView -NetworkWatcherName -ResourceGroupName + -TargetVirtualMachineId [-AsJob] [-DefaultProfile ] + [] +``` + ++ SetByLocation +```powershell +Get-AzNetworkWatcherSecurityGroupView -Location -TargetVirtualMachineId [-AsJob] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Make a Security Group View call on a VM +```powershell +$nw = Get-AzResource | Where-Object {$_.ResourceType -eq "Microsoft.Network/networkWatchers" -and $_.Location -eq "WestCentralUS" } +$networkWatcher = Get-AzNetworkWatcher -Name $nw.Name -ResourceGroupName $nw.ResourceGroupName +$VM = Get-AzVM -ResourceGroupName ContosoResourceGroup -Name VM0 +Get-AzNetworkWatcherSecurityGroupView -NetworkWatcher $networkWatcher -TargetVirtualMachineId $VM.Id +``` + +In the above example, we first get the regional Network Watcher, then a VM in the region. +Then we make a Security Group View call on the specified VM. + + +#### Get-AzNetworkWatcherTopology + +#### SYNOPSIS +Gets a network level view of resources and their relationships in a resource group. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +Get-AzNetworkWatcherTopology -NetworkWatcher -TargetResourceGroupName + [-DefaultProfile ] [] +``` + ++ SetByName +```powershell +Get-AzNetworkWatcherTopology -NetworkWatcherName -ResourceGroupName + -TargetResourceGroupName [-DefaultProfile ] + [] +``` + ++ SetByLocation +```powershell +Get-AzNetworkWatcherTopology -Location -TargetResourceGroupName + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Get an Azure Topology +```powershell +$networkWatcher = Get-AzNetworkWatcher -Name NetworkWatcher_westcentralus -ResourceGroupName NetworkWatcherRG +Get-AzNetworkWatcherTopology -NetworkWatcher $networkWatcher -TargetResourceGroupName testresourcegroup +``` + +```output +Id : e33d80cf-4f76-4b8f-b51c-5bb8eba80103 +CreatedDateTime : 0/00/0000 9:21:51 PM +LastModified : 0/00/0000 4:53:29 AM +TopologyResources : [ + { + "Name": "testresourcegroup-vnet", + "Id": "/subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/testresourcegroup/providers/Microsoft.Network/virtualNetworks/testresourcegroup-vnet", + "Location": "westcentralus", + "TopologyAssociations": [ + { + "Name": "default", + "ResourceId": "/subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/testresourcegroup/providers/Microsoft.Network/virtualNetworks/testresourcegroup-vnet/subnets/default", + "AssociationType": "Contains" + } + ] + }, + { + "Name": "default", + "Id": "/subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/testresourcegroup/providers/Microsoft.Network/virtualNetworks/testresourcegroup-vnet/subnets/default", + "Location": "westcentralus", + "TopologyAssociations": [] + }, + { + "Name": "VM0", + "Id": "/subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/testresourcegroup/providers/Microsoft.Compute/virtualMachines/VM0", + "TopologyAssociations": [ + { + "Name": "vm0131", + "ResourceId": "/subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/testresourcegroup/providers/Microsoft.Network/networkInterfaces/vm0131", + "AssociationType": "Contains" + } + ] + }, + { + "Name": "vm0131", + "Id": "/subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/testresourcegroup/providers/Microsoft.Network/networkInterfaces/vm0131", + "Location": "westcentralus", + "TopologyAssociations": [ + { + "Name": "VM0", + "ResourceId": "/subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/testresourcegroup/providers/Microsoft.Compute/virtualMachines/VM0", + "AssociationType": "Associated" + }, + { + "Name": "VM0-nsg", + "ResourceId": "/subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/testresourcegroup/providers/Microsoft.Network/networkSecurityGroups/VM0-nsg", + "AssociationType": "Associated" + }, + { + "Name": "default", + "ResourceId": "/subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/testresourcegroup/providers/Microsoft.Network/virtualNetworks/testresourcegroup-vnet/subnets/default", + "AssociationType": "Associated" + }, + { + "Name": "VM0-ip", + "ResourceId": "/subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/testresourcegroup/providers/Microsoft.Network/publicIPAddresses/VM0-ip", + "AssociationType": "Associated" + } + ] + }, + { + "Name": "VM0-nsg", + "Id": "/subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/testresourcegroup/providers/Microsoft.Network/networkSecurityGroups/VM0-nsg", + "Location": "westcentralus", + "TopologyAssociations": [ + { + "Name": "default-allow-rdp", + "ResourceId": "/subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/testresourcegroup/providers/Microsoft.Network/networkSecurityGroups/VM0-nsg/securityRules/default-allow-rdp", + "AssociationType": "Contains" + } + ] + }, + { + "Name": "default-allow-rdp", + "Id": "/subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/testresourcegroup/providers/Microsoft.Network/networkSecurityGroups/VM0-nsg/securityRules/default-allow-rdp", + "Location": "westcentralus", + "TopologyAssociations": [] + }, + { + "Name": "VM0-ip", + "Id": "/subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/testresourcegroup/providers/Microsoft.Network/publicIPAddresses/VM0-ip", + "Location": "westcentralus", + "TopologyAssociations": [ + { + "Name": "vm0131", + "ResourceId": "/subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/testresourcegroup/providers/Microsoft.Network/networkInterfaces/vm0131", + "AssociationType": "Associated" + } + ] + } + ] +``` + +In this example we run the Get-AzNetworkWatcherTopology cmdlet on a resource group that contains a VM, Nic, NSG, and public IP. + + +#### Get-AzNetworkWatcherTroubleshootingResult + +#### SYNOPSIS +Gets the troubleshooting result from the previously run or currently running troubleshooting operation. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +Get-AzNetworkWatcherTroubleshootingResult -NetworkWatcher -TargetResourceId + [-DefaultProfile ] [] +``` + ++ SetByName +```powershell +Get-AzNetworkWatcherTroubleshootingResult -NetworkWatcherName -ResourceGroupName + -TargetResourceId [-DefaultProfile ] + [] +``` + ++ SetByLocation +```powershell +Get-AzNetworkWatcherTroubleshootingResult -Location -TargetResourceId + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Start Troubleshooting on a Virtual Network Gateway and Retrieve Result +```powershell +$nw = Get-AzResource | Where-Object {$_.ResourceType -eq "Microsoft.Network/networkWatchers" -and $_.Location -eq "WestCentralUS" } +$networkWatcher = Get-AzNetworkWatcher -Name $nw.Name -ResourceGroupName $nw.ResourceGroupName + +$target = '/subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{vnetGatewayName}' +$storageId = '/subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{storageAccountName}' +$storagePath = 'https://{storageAccountName}.blob.core.windows.net/troubleshoot' + +Start-AzNetworkWatcherResourceTroubleshooting -NetworkWatcher $networkWatcher -TargetResourceId $target -StorageId $storageId -StoragePath $storagePath + +Get-AzNetworkWatcherTroubleshootingResult -NetworkWatcher $NW -TargetResourceId $target +``` + +The above sample starts troubleshooting on a virtual network gateway. The operation may take a few minutes to complete. +After troubleshooting has started, a Get-AzNetworkWatcherTroubleshootingResult call is made to the resource to retrieve the result of this call. + + +#### New-AzNvaInterfaceConfiguration + +#### SYNOPSIS +Create a NVA Interface configuration + +#### SYNTAX + +```powershell +New-AzNvaInterfaceConfiguration -NicType -Name -SubnetId + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$config1 = New-AzNvaInterfaceConfiguration -NicType "PrivateNic" -Name "privateInterface" -SubnetId "/subscriptions/{subscriptionid}/resourceGroups/{rgname}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName}" +``` + +Create an interface configuration for virtual appliance to be used with New-AzNetworkVirtualAppliance command. + + +#### New-AzO365PolicyProperty + +#### SYNOPSIS +Create an office 365 traffic breakout policy object. + +#### SYNTAX + +```powershell +New-AzO365PolicyProperty [-Allow] [-Optimize] [-Default] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$policy = New-AzO365PolicyProperty -Allow -Optimize +``` + +Create an office 365 traffic breakout policy with breakout allowed for allow and optimize category of traffic. + + +#### New-AzOffice365PolicyProperty + +#### SYNOPSIS +Define a new Office 365 traffic breakout policy to be used with a Virtual Appliance site. + +#### SYNTAX + +```powershell +New-AzOffice365PolicyProperty [-Allow] [-Optimize] [-Default] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$o365Policy = New-AzOffice365PolicyProperty -Allow -Optimize +``` + +Create Office 365 traffic breakout policy object to be used with Virtual Appliance site commands. + + +#### New-AzP2sVpnGateway + +#### SYNOPSIS +Create a new P2SVpnGateway under VirtualHub for point to site connectivity. + +#### SYNTAX + ++ ByVirtualHubNameByVpnServerConfigurationObject (Default) +```powershell +New-AzP2sVpnGateway -ResourceGroupName -Name -VpnGatewayScaleUnit + -VirtualHubName [-VpnServerConfiguration ] + [-VpnClientAddressPool ] [-CustomDnsServer ] + [-RoutingConfiguration ] [-EnableInternetSecurityFlag] [-DisableInternetSecurityFlag] + [-EnableRoutingPreferenceInternetFlag] [-P2SConnectionConfiguration ] + [-Tag ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVirtualHubNameByVpnServerConfigurationResourceId +```powershell +New-AzP2sVpnGateway -ResourceGroupName -Name -VpnGatewayScaleUnit + -VirtualHubName -VpnServerConfigurationId [-VpnClientAddressPool ] + [-CustomDnsServer ] [-RoutingConfiguration ] [-EnableInternetSecurityFlag] + [-DisableInternetSecurityFlag] [-EnableRoutingPreferenceInternetFlag] + [-P2SConnectionConfiguration ] [-Tag ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVirtualHubObjectByVpnServerConfigurationObject +```powershell +New-AzP2sVpnGateway -ResourceGroupName -Name -VpnGatewayScaleUnit + -VirtualHub [-VpnServerConfiguration ] + [-VpnClientAddressPool ] [-CustomDnsServer ] + [-RoutingConfiguration ] [-EnableInternetSecurityFlag] [-DisableInternetSecurityFlag] + [-EnableRoutingPreferenceInternetFlag] [-P2SConnectionConfiguration ] + [-Tag ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVirtualHubObjectByVpnServerConfigurationResourceId +```powershell +New-AzP2sVpnGateway -ResourceGroupName -Name -VpnGatewayScaleUnit + -VirtualHub -VpnServerConfigurationId [-VpnClientAddressPool ] + [-CustomDnsServer ] [-RoutingConfiguration ] [-EnableInternetSecurityFlag] + [-DisableInternetSecurityFlag] [-EnableRoutingPreferenceInternetFlag] + [-P2SConnectionConfiguration ] [-Tag ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVirtualHubResourceIdByVpnServerConfigurationObject +```powershell +New-AzP2sVpnGateway -ResourceGroupName -Name -VpnGatewayScaleUnit + -VirtualHubId [-VpnServerConfiguration ] [-VpnClientAddressPool ] + [-CustomDnsServer ] [-RoutingConfiguration ] [-EnableInternetSecurityFlag] + [-DisableInternetSecurityFlag] [-EnableRoutingPreferenceInternetFlag] + [-P2SConnectionConfiguration ] [-Tag ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVirtualHubResourceIdByVpnServerConfigurationResourceId +```powershell +New-AzP2sVpnGateway -ResourceGroupName -Name -VpnGatewayScaleUnit + -VirtualHubId -VpnServerConfigurationId [-VpnClientAddressPool ] + [-CustomDnsServer ] [-RoutingConfiguration ] [-EnableInternetSecurityFlag] + [-DisableInternetSecurityFlag] [-EnableRoutingPreferenceInternetFlag] + [-P2SConnectionConfiguration ] [-Tag ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$virtualHub = Get-AzVirtualHub -ResourceGroupName P2SCortexGATesting -Name WestUsVirtualHub +$vpnServerConfig1 = Get-AzVpnServerConfiguration -ResourceGroupName P2SCortexGATesting -Name WestUsConfig +$vpnClientAddressSpaces = New-Object string[] 1 +$vpnClientAddressSpaces[0] = "192.168.2.0/24" +$createdP2SVpnGateway = New-AzP2sVpnGateway -ResourceGroupName P2SCortexGATesting -Name 683482ade8564515aed4b8448c9757ea-westus-gw -VirtualHub $virtualHub -VpnGatewayScaleUnit 1 -VpnClientAddressPool $vpnClientAddressSpaces -VpnServerConfiguration $vpnServerConfig1 -EnableInternetSecurityFlag -EnableRoutingPreferenceInternetFlag +``` + +```output +ResourceGroupName : P2SCortexGATesting +Name : 683482ade8564515aed4b8448c9757ea-westus-gw +Id : /subscriptions/b1f1deed-af60-4bab-9223-65d340462e24/resourceGroups/P2SCortexGATesting/providers/Microsoft.Network/p2sVpnGateways/683482ade8564515a + ed4b8448c9757ea-westus-gw +Location : westus +VpnGatewayScaleUnit : 1 +VirtualHub : /subscriptions/b1f1deed-af60-4bab-9223-65d340462e24/resourceGroups/P2SCortexGATesting/providers/Microsoft.Network/virtualHubs/WestUsVirtualHub +VpnServerConfiguration : /subscriptions/b1f1deed-af60-4bab-9223-65d340462e24/resourceGroups/P2SCortexGATesting/providers/Microsoft.Network/vpnServerConfigurations/WestUsConfig +VpnServerConfigurationLocation : +VpnClientConnectionHealth : null +Type : Microsoft.Network/p2sVpnGateways +ProvisioningState : Succeeded +P2SConnectionConfigurations : [ + { + "ProvisioningState": "Succeeded", + "VpnClientAddressPool": { + "AddressPrefixes": [ + "192.168.2.0/24" + ] + }, + "EnableInternetSecurity": True, + "RoutingConfiguration": { + "AssociatedRouteTable": { + "Id": "/subscriptions/b1f1deed-af60-4bab-9223-65d340462e24/resourceGroups/P2SCortexGATesting/providers/Microsoft.Network/virtualHubs/WestUsVirtualHub/hubRouteTables/defaultRouteTable" + } + "PropagatedRouteTables": { + "Labels": [], + "Ids": [ + { + "Id": "/subscriptions/b1f1deed-af60-4bab-9223-65d340462e24/resourceGroups/P2SCortexGATesting/providers/Microsoft.Network/virtualHubs/WestUsVirtualHub/hubRouteTables/defaultRouteTable" + } + ] + }, + "VnetRoutes": { + "StaticRoutes": [] + } + }, + "Name": "P2SConnectionConfigDefault", + "Etag": "W/\"4b96e6a2-b4d8-46b3-9210-76d40f359bef\"", + "Id": "/subscriptions/b1f1deed-af60-4bab-9223-65d340462e24/resourceGroups/P2SCortexGATesting/providers/Microsoft.Network/p2sVpnGateways/683482 + ade8564515aed4b8448c9757ea-westus-gw/p2sConnectionConfigurations/P2SConnectionConfigDefault" + } + ] +``` + +The New-AzP2sVpnGateway cmdlet enables you to create a new P2SVpnGateway under VirtualHub for Point to site connectivity. + + +#### Get-AzP2sVpnGateway + +#### SYNOPSIS +Gets an existing P2SVpnGateway under VirtualHub. + +#### SYNTAX + ++ ListBySubscriptionId (Default) +```powershell +Get-AzP2sVpnGateway [-DefaultProfile ] + [] +``` + ++ ListByResourceGroupName +```powershell +Get-AzP2sVpnGateway [-ResourceGroupName ] [-Name ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzP2sVpnGateway -ResourceGroupName P2SCortexGATesting -Name 683482ade8564515aed4b8448c9757ea-westus-gw +``` + +```output +ResourceGroupName : P2SCortexGATesting +Name : 683482ade8564515aed4b8448c9757ea-westus-gw +Id : /subscriptions/b1f1deed-af60-4bab-9223-65d340462e24/resourceGroups/P2SCortexGATesting/providers/Microsoft.Network/p2sVpnGateways/683482ade8564515a + ed4b8448c9757ea-westus-gw +Location : westus +VpnGatewayScaleUnit : 1 +VirtualHub : /subscriptions/b1f1deed-af60-4bab-9223-65d340462e24/resourceGroups/P2SCortexGATesting/providers/Microsoft.Network/virtualHubs/WestUsVirtualHub +VpnServerConfiguration : /subscriptions/b1f1deed-af60-4bab-9223-65d340462e24/resourceGroups/P2SCortexGATesting/providers/Microsoft.Network/vpnServerConfigurations/WestUsConfig +VpnServerConfigurationLocation : +VpnClientConnectionHealth : null +Type : Microsoft.Network/p2sVpnGateways +ProvisioningState : Succeeded +P2SConnectionConfigurations : [ + { + "ProvisioningState": "Succeeded", + "VpnClientAddressPool": { + "AddressPrefixes": [ + "192.168.2.0/24" + ] + }, + "RoutingConfiguration": { + "AssociatedRouteTable": { + "Id": "/subscriptions/b1f1deed-af60-4bab-9223-65d340462e24/resourceGroups/P2SCortexGATesting/providers/Microsoft.Network/virtualHubs/WestUsVirtualHub/hubRouteTables/defaultRouteTable" + } + "PropagatedRouteTables": { + "Labels": [], + "Ids": [ + { + "Id": "/subscriptions/b1f1deed-af60-4bab-9223-65d340462e24/resourceGroups/P2SCortexGATesting/providers/Microsoft.Network/virtualHubs/WestUsVirtualHub/hubRouteTables/defaultRouteTable" + } + ] + }, + "VnetRoutes": { + "StaticRoutes": [] + } + }, + "Name": "P2SConnectionConfigDefault", + "Etag": "W/\"4b96e6a2-b4d8-46b3-9210-76d40f359bef\"", + "Id": "/subscriptions/b1f1deed-af60-4bab-9223-65d340462e24/resourceGroups/P2SCortexGATesting/providers/Microsoft.Network/p2sVpnGateways/683482 + ade8564515aed4b8448c9757ea-westus-gw/p2sConnectionConfigurations/P2SConnectionConfigDefault" + } + ] +``` + +The **Get-AzP2sVpnGateway** cmdlet enables you to get an existing P2SVpnGateway under VirtualHub that is used for Point to site connectivity. + + +#### Remove-AzP2sVpnGateway + +#### SYNOPSIS +Removes an existing P2SVpnGateway. + +#### SYNTAX + ++ ByP2SVpnGatewayName (Default) +```powershell +Remove-AzP2sVpnGateway -ResourceGroupName -Name [-PassThru] [-Force] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByP2SVpnGatewayObject +```powershell +Remove-AzP2sVpnGateway -InputObject [-PassThru] [-Force] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByP2SVpnGatewayResourceId +```powershell +Remove-AzP2sVpnGateway -ResourceId [-PassThru] [-Force] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzP2sVpnGateway -Name 683482ade8564515aed4b8448c9757ea-westus-gw -ResourceGroupName P2SCortexGATesting -Force -PassThru +``` + +The **Remove-AzP2sVpnGateway** cmdlet enables you to remove an existing P2SVpnGateway under VirtualHub. + + +#### Reset-AzP2sVpnGateway + +#### SYNOPSIS +Resets the scalable P2S VPN gateway. + +#### SYNTAX + ++ ByP2SVpnGatewayName (Default) +```powershell +Reset-AzP2sVpnGateway -ResourceGroupName -Name [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByP2SVpnGatewayObject +```powershell +Reset-AzP2sVpnGateway -InputObject [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByP2SVpnGatewayResourceId +```powershell +Reset-AzP2sVpnGateway -ResourceId [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: +```powershell +$Gateway = Get-AzP2sVpnGateway -Name "ContosoVirtualGateway" -ResourceGroupName "RGName" +Reset-AzP2sVpnGateway -P2SVpnGateway $Gateway +``` + + +#### Update-AzP2sVpnGateway + +#### SYNOPSIS +Update an existing P2SVpnGateway under VirtualHub for point to site connectivity. + +#### SYNTAX + ++ ByP2SVpnGatewayNameNoVpnServerConfigurationUpdate (Default) +```powershell +Update-AzP2sVpnGateway -ResourceGroupName -Name [-VpnClientAddressPool ] + [-P2SConnectionConfiguration ] [-VpnGatewayScaleUnit ] + [-CustomDnsServer ] [-RoutingConfiguration ] [-EnableInternetSecurityFlag] + [-DisableInternetSecurityFlag] [-Tag ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByP2SVpnGatewayNameByVpnServerConfigurationObject +```powershell +Update-AzP2sVpnGateway -ResourceGroupName -Name [-VpnClientAddressPool ] + [-P2SConnectionConfiguration ] + [-VpnServerConfiguration ] [-VpnGatewayScaleUnit ] + [-CustomDnsServer ] [-RoutingConfiguration ] [-EnableInternetSecurityFlag] + [-DisableInternetSecurityFlag] [-Tag ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByP2SVpnGatewayNameByVpnServerConfigurationResourceId +```powershell +Update-AzP2sVpnGateway -ResourceGroupName -Name [-VpnClientAddressPool ] + [-P2SConnectionConfiguration ] -VpnServerConfigurationId + [-VpnGatewayScaleUnit ] [-CustomDnsServer ] [-RoutingConfiguration ] + [-EnableInternetSecurityFlag] [-DisableInternetSecurityFlag] [-Tag ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByP2SVpnGatewayObjectNoVpnServerConfigurationUpdate +```powershell +Update-AzP2sVpnGateway -InputObject [-VpnClientAddressPool ] + [-P2SConnectionConfiguration ] [-VpnGatewayScaleUnit ] + [-CustomDnsServer ] [-RoutingConfiguration ] [-EnableInternetSecurityFlag] + [-DisableInternetSecurityFlag] [-Tag ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByP2SVpnGatewayObjectByVpnServerConfigurationObject +```powershell +Update-AzP2sVpnGateway -InputObject [-VpnClientAddressPool ] + [-P2SConnectionConfiguration ] + [-VpnServerConfiguration ] [-VpnGatewayScaleUnit ] + [-CustomDnsServer ] [-RoutingConfiguration ] [-EnableInternetSecurityFlag] + [-DisableInternetSecurityFlag] [-Tag ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByP2SVpnGatewayObjectByVpnServerConfigurationResourceId +```powershell +Update-AzP2sVpnGateway -InputObject [-VpnClientAddressPool ] + [-P2SConnectionConfiguration ] -VpnServerConfigurationId + [-VpnGatewayScaleUnit ] [-CustomDnsServer ] [-RoutingConfiguration ] + [-EnableInternetSecurityFlag] [-DisableInternetSecurityFlag] [-Tag ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByP2SVpnGatewayResourceIdNoVpnServerConfigurationUpdate +```powershell +Update-AzP2sVpnGateway -ResourceId [-VpnClientAddressPool ] + [-P2SConnectionConfiguration ] [-VpnGatewayScaleUnit ] + [-CustomDnsServer ] [-RoutingConfiguration ] [-EnableInternetSecurityFlag] + [-DisableInternetSecurityFlag] [-Tag ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByP2SVpnGatewayResourceIdByVpnServerConfigurationObject +```powershell +Update-AzP2sVpnGateway -ResourceId [-VpnClientAddressPool ] + [-P2SConnectionConfiguration ] + [-VpnServerConfiguration ] [-VpnGatewayScaleUnit ] + [-CustomDnsServer ] [-RoutingConfiguration ] [-EnableInternetSecurityFlag] + [-DisableInternetSecurityFlag] [-Tag ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByP2SVpnGatewayResourceIdByVpnServerConfigurationResourceId +```powershell +Update-AzP2sVpnGateway -ResourceId [-VpnClientAddressPool ] + [-P2SConnectionConfiguration ] -VpnServerConfigurationId + [-VpnGatewayScaleUnit ] [-CustomDnsServer ] [-RoutingConfiguration ] + [-EnableInternetSecurityFlag] [-DisableInternetSecurityFlag] [-Tag ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$vpnClientAddressSpaces = New-Object string[] 1 +$vpnClientAddressSpaces[0] = "101.10.0.0/16" +Update-AzP2sVpnGateway -ResourceGroupName P2SCortexGATesting -Name 683482ade8564515aed4b8448c9757ea-westus-gw -VpnClientAddressPool $vpnClientAddressSpaces -EnableInternetSecurityFlag +``` + +```output +ResourceGroupName : P2SCortexGATesting +Name : 683482ade8564515aed4b8448c9757ea-westus-gw +Id : /subscriptions/b1f1deed-af60-4bab-9223-65d340462e24/resourceGroups/P2SCortexGATesting/providers/Microsoft.Network/p2sVpnGateways/683482ade8564515a + ed4b8448c9757ea-westus-gw +Location : westus +VpnGatewayScaleUnit : 1 +VirtualHub : /subscriptions/b1f1deed-af60-4bab-9223-65d340462e24/resourceGroups/P2SCortexGATesting/providers/Microsoft.Network/virtualHubs/NilamdWestUsVirtualH + ub +VpnServerConfiguration : /subscriptions/b1f1deed-af60-4bab-9223-65d340462e24/resourceGroups/P2SCortexGATesting/providers/Microsoft.Network/vpnServerConfigurations/NilamdWe + stUsConfig +VpnServerConfigurationLocation : +VpnClientConnectionHealth : null +Type : Microsoft.Network/p2sVpnGateways +ProvisioningState : Succeeded +P2SConnectionConfigurations : [ + { + "ProvisioningState": "Succeeded", + "VpnClientAddressPool": { + "AddressPrefixes": [ + "101.10.0.0/16" + ] + }, + "EnableInternetSecurity": True, + "RoutingConfiguration": { + "AssociatedRouteTable": { + "Id": "/subscriptions/b1f1deed-af60-4bab-9223-65d340462e24/resourceGroups/P2SCortexGATesting/providers/Microsoft.Network/virtualHubs/WestUsVirtualHub/hubRouteTables/defaultRouteTable" + } + "PropagatedRouteTables": { + "Labels": [], + "Ids": [ + { + "Id": "/subscriptions/b1f1deed-af60-4bab-9223-65d340462e24/resourceGroups/P2SCortexGATesting/providers/Microsoft.Network/virtualHubs/WestUsVirtualHub/hubRouteTables/defaultRouteTable" + } + ] + }, + "VnetRoutes": { + "StaticRoutes": [] + } + }, + "Name": "P2SConnectionConfigDefault", + "Etag": "W/\"d7debc2f-ccbb-4f00-bddc-42c99b52fda3\"", + "Id": "/subscriptions/b1f1deed-af60-4bab-9223-65d340462e24/resourceGroups/P2SCortexGATesting/providers/Microsoft.Network/p2sVpnGateways/683482 + ade8564515aed4b8448c9757ea-westus-gw/p2sConnectionConfigurations/P2SConnectionConfigDefault" + } + ] +``` + +The **Update-AzP2sVpnGateway** cmdlet enables you to update an existing P2SVpnGateway under VirtualHub with new VpnClientAddressPool. When Point to site client connects with this P2SVpnGateway, one of the ip address from this VpnClientAddressPool gets allocated to that client. + ++ Example 2 + +Update an existing P2SVpnGateway under VirtualHub for point to site connectivity. (autogenerated) + + + + +```powershell +Update-AzP2sVpnGateway -AsJob -Name 00000000-0000-0000-0000-00000000000000000-westus-gw -ResourceGroupName P2SCortexGATesting -VpnClientAddressPool -VpnGatewayScaleUnit 1 -VpnServerConfiguration +``` + + +#### Get-AzP2sVpnGatewayConnectionHealth + +#### SYNOPSIS +Gets the current aggregated point to site connections health information from P2SVpnGateway. + +#### SYNTAX + ++ ByP2SVpnGatewayName (Default) +```powershell +Get-AzP2sVpnGatewayConnectionHealth [-Name ] -ResourceGroupName + [-DefaultProfile ] [] +``` + ++ ByP2SVpnGatewayObject +```powershell +Get-AzP2sVpnGatewayConnectionHealth -InputObject [-DefaultProfile ] + [] +``` + ++ ByP2SVpnGatewayResourceId +```powershell +Get-AzP2sVpnGatewayConnectionHealth -ResourceId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzP2sVpnGatewayConnectionHealth -ResourceGroupName P2SCortexGATesting -Name 683482ade8564515aed4b8448c9757ea-westus-gw +``` + +```output +ResourceGroupName : P2SCortexGATesting +Name : 683482ade8564515aed4b8448c9757ea-westus-gw +Id : /subscriptions/b1f1deed-af60-4bab-9223-65d340462e24/resourceGroups/P2SCortexGATesting/providers/Microsoft.Network/p2sVpnGateways/683482ade8564515a + ed4b8448c9757ea-westus-gw +Location : westus +VpnGatewayScaleUnit : 1 +VirtualHub : /subscriptions/b1f1deed-af60-4bab-9223-65d340462e24/resourceGroups/P2SCortexGATesting/providers/Microsoft.Network/virtualHubs/WestUsVirtualHub +VpnServerConfiguration : /subscriptions/b1f1deed-af60-4bab-9223-65d340462e24/resourceGroups/P2SCortexGATesting/providers/Microsoft.Network/vpnServerConfigurations/WestUsConfig +VpnServerConfigurationLocation : +VpnClientConnectionHealth : { + "VpnClientConnectionsCount": 2, + "AllocatedIpAddresses": { "192.168.2.1", "192.168.2.2" }, + "TotalIngressBytesTransferred": 100, + "TotalEgressBytesTransferred": 200 + } +Type : Microsoft.Network/p2sVpnGateways +ProvisioningState : Succeeded +P2SConnectionConfigurations : [ + { + "ProvisioningState": "Succeeded", + "VpnClientAddressPool": { + "AddressPrefixes": [ + "192.168.2.0/24" + ] + }, + "Name": "P2SConnectionConfigDefault", + "Etag": "W/\"4b96e6a2-b4d8-46b3-9210-76d40f359bef\"", + "Id": "/subscriptions/b1f1deed-af60-4bab-9223-65d340462e24/resourceGroups/P2SCortexGATesting/providers/Microsoft.Network/p2sVpnGateways/683482 + ade8564515aed4b8448c9757ea-westus-gw/p2sConnectionConfigurations/P2SConnectionConfigDefault" + } + ] +``` + +The **Get-AzP2sVpnGatewayConnectionHealth** cmdlet enables you to get the current aggregated health of point to site connections from P2SVpnGateway. Above command let output health shows that number of point to site clients connected to P2SVpnGateway are 2. Total ingress and egress bytes transferred through P2SVpnGateway are 100 and 200 respectively. Allocated ip addresses for connected point to site clients are "192.168.2.1", "192.168.2.2". + + +#### Get-AzP2sVpnGatewayDetailedConnectionHealth + +#### SYNOPSIS +Gets the detailed information of current point to site connections from P2SVpnGateway. + +#### SYNTAX + ++ ByP2SVpnGatewayName (Default) +```powershell +Get-AzP2sVpnGatewayDetailedConnectionHealth [-Name ] -ResourceGroupName + -OutputBlobSasUrl [-VpnUserNamesFilter ] [-DefaultProfile ] + [] +``` + ++ ByP2SVpnGatewayObject +```powershell +Get-AzP2sVpnGatewayDetailedConnectionHealth -InputObject -OutputBlobSasUrl + [-VpnUserNamesFilter ] [-DefaultProfile ] + [] +``` + ++ ByP2SVpnGatewayResourceId +```powershell +Get-AzP2sVpnGatewayDetailedConnectionHealth -ResourceId -OutputBlobSasUrl + [-VpnUserNamesFilter ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 + + + +```powershell +$blobSasUrl = New-AzStorageBlobSASToken -Container contp2stesting -Blob emptyfile.txt -Context $context -Permission "rwd" -StartTime $now.AddHours(-1) -ExpiryTime $now.AddDays(1) -FullUri +$blobSasUrl +SignedSasUrl +Get-AzP2sVpnGatewayDetailedConnectionHealth -Name 683482ade8564515aed4b8448c9757ea-westus-gw -ResourceGroupName P2SCortexGATesting -OutputBlobSasUrl $blobSasUrl +SasUrl : SignedSasUrl +``` + +The **Get-AzP2sVpnGatewayDetailedConnectionHealth** cmdlet enables you to get the detailed information of current point to site connections from P2SVpnGateway. Customer can download health details from passed SAS url download. This will show information of each point to site connection with usernames, bytes in, bytes out, allocated ip address etc. + + +#### Disconnect-AzP2SVpnGatewayVpnConnection + +#### SYNOPSIS +Disconnect given connected vpn client connections with a given p2s vpn gateway + +#### SYNTAX + ++ ByP2SVpnGatewayName (Default) +```powershell +Disconnect-AzP2SVpnGatewayVpnConnection -ResourceGroupName -Name -VpnConnectionId + [-AsJob] [-PassThru] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + ++ ByP2SVpnGatewayResourceId +```powershell +Disconnect-AzP2SVpnGatewayVpnConnection -ResourceId -VpnConnectionId [-AsJob] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByP2SVpnGatewayObject +```powershell +Disconnect-AzP2SVpnGatewayVpnConnection -InputObject -VpnConnectionId [-AsJob] + [-PassThru] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Disconnect-AzP2SVpnGatewayVpnConnection -ResourceName 683482ade8564515aed4b8448c9757ea-westus-gw -ResourceGroupName P2SCortexGATesting -VpnConnectionId @("IKEv2_7e1cfe59-5c7c-4315-a876-b11fbfdfeed4") +``` + +```output +ResourceGroupName : P2SCortexGATesting +Name : 683482ade8564515aed4b8448c9757ea-westus-gw +Id : /subscriptions/b1f1deed-af60-4bab-9223-65d340462e24/resourceGroups/P2SCortexGATesting/providers/Microsoft.Network/p2sVpnGateways/683482ade8564515a + ed4b8448c9757ea-westus-gw +Location : westus +VpnGatewayScaleUnit : 1 +VirtualHub : /subscriptions/b1f1deed-af60-4bab-9223-65d340462e24/resourceGroups/P2SCortexGATesting/providers/Microsoft.Network/virtualHubs/WestUsVirtualHub +VpnServerConfiguration : /subscriptions/b1f1deed-af60-4bab-9223-65d340462e24/resourceGroups/P2SCortexGATesting/providers/Microsoft.Network/vpnServerConfigurations/WestUsConfig +VpnServerConfigurationLocation : +VpnClientConnectionHealth : null +Type : Microsoft.Network/p2sVpnGateways +ProvisioningState : Succeeded +P2SConnectionConfigurations : [ + { + "ProvisioningState": "Succeeded", + "VpnClientAddressPool": { + "AddressPrefixes": [ + "192.168.2.0/24" + ] + }, + "Name": "P2SConnectionConfigDefault", + "Etag": "W/\"4b96e6a2-b4d8-46b3-9210-76d40f359bef\"", + "Id": "/subscriptions/b1f1deed-af60-4bab-9223-65d340462e24/resourceGroups/P2SCortexGATesting/providers/Microsoft.Network/p2sVpnGateways/683482 + ade8564515aed4b8448c9757ea-westus-gw/p2sConnectionConfigurations/P2SConnectionConfigDefault" + } + ] +``` + + +#### Get-AzP2sVpnGatewayVpnProfile + +#### SYNOPSIS +Generates and returns a SAS url for customer to download Vpn profile for point to site client setup to have point to site connectivity to P2SVpnGateway. + +#### SYNTAX + ++ ByP2SVpnGatewayName (Default) +```powershell +Get-AzP2sVpnGatewayVpnProfile [-Name ] -ResourceGroupName [-AuthenticationMethod ] + [-DefaultProfile ] [] +``` + ++ ByP2SVpnGatewayObject +```powershell +Get-AzP2sVpnGatewayVpnProfile -InputObject [-AuthenticationMethod ] + [-DefaultProfile ] [] +``` + ++ ByP2SVpnGatewayResourceId +```powershell +Get-AzP2sVpnGatewayVpnProfile -ResourceId [-AuthenticationMethod ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzP2sVpnGatewayVpnProfile -Name 683482ade8564515aed4b8448c9757ea-westus-gw -ResourceGroupName P2SCortexGATesting -AuthenticationMethod EAPTLS +``` + +```output +ProfileUrl : https://nfvprodsuppby.blob.core.windows.net/vpnprofileimmutable/8cf00031-37ec-4949-b74a-48f9021bf4c0/vpnprofile/2f132439-1051-44c6-9128-b704c1c48cf7/vpnclientconfiguration.zip?sv=2017-04-17&sr=b&sig=HmBSprVrs + 6hDY3x1HX958nimOjavnEjL2rlSuKIIW8Q%3D&st=2019-10-25T19%3A20%3A04Z&se=2019-10-25T20%3A20%3A04Z&sp=r&fileExtension=.zip +``` + +The **Get-AzP2sVpnGatewayVpnProfile** cmdlet enables you to generate and get a SAS url for customer to download Vpn profile for point to site client setup to have point to site connectivity to P2SVpnGateway. ProfileUrl shows the SAS url from where customer can download Vpn profile for point to site client setup. + + +#### New-AzPacketCaptureFilterConfig + +#### SYNOPSIS +Creates a new packet capture filter object. + +#### SYNTAX + +```powershell +New-AzPacketCaptureFilterConfig [-Protocol ] [-RemoteIPAddress ] [-LocalIPAddress ] + [-LocalPort ] [-RemotePort ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Create a Packet Capture with multiple filters +```powershell +$nw = Get-AzResource | Where-Object {$_.ResourceType -eq "Microsoft.Network/networkWatchers" -and $_.Location -eq "WestCentralUS" } +$networkWatcher = Get-AzNetworkWatcher -Name $nw.Name -ResourceGroupName $nw.ResourceGroupName + +$storageAccount = Get-AzStorageAccount -ResourceGroupName contosoResourceGroup -Name contosostorage123 + +$filter1 = New-AzPacketCaptureFilterConfig -Protocol TCP -RemoteIPAddress "1.1.1.1-255.255.255" -LocalIPAddress "10.0.0.3" -LocalPort "1-65535" -RemotePort "20;80;443" +$filter2 = New-AzPacketCaptureFilterConfig -Protocol UDP +New-AzNetworkWatcherPacketCapture -NetworkWatcher $networkWatcher -TargetVirtualMachineId $vm.Id -PacketCaptureName "PacketCaptureTest" -StorageAccountId $storageAccount.id -TimeLimitInSeconds 60 -Filter $filter1, $filter2 +``` + +In this example we create a packet capture named "PacketCaptureTest" with multiple filters and a time limit. Once the session is complete, it will be saved to the specified storage account. +Note: The Azure Network Watcher extension must be installed on the target virtual machine to create packet captures. + + +#### New-AzPacketCaptureScopeConfig + +#### SYNOPSIS +Creates a new packet capture scope object. + +#### SYNTAX + +```powershell +New-AzPacketCaptureScopeConfig [-Include ] [-Exclude ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Create a Packet Capture with multiple VMSS Instances in Include Scope +```powershell +$nw = Get-AzResource | Where {$_.ResourceType -eq "Microsoft.Network/networkWatchers" -and $_.Location -eq "WestCentralUS" } +$networkWatcher = Get-AzNetworkWatcher -Name $nw.Name -ResourceGroupName $nw.ResourceGroupName + +$storageAccount = Get-AzStorageAccount -ResourceGroupName contosoResourceGroup -Name contosostorage123 + +$instance1 = $vmssInstance1.Name +$instance2 = $vmssInstance2.Name +$scope = New-AzPacketCaptureScopeConfig -Include $instance1, $instance2 + +New-AzNetworkWatcherPacketCaptureV2 -NetworkWatcher $networkWatcher -TargetId $vmss.Id -TargetType "azurevmss" -Scope $scope -PacketCaptureName "PacketCaptureTest" -StorageAccountId $storageAccount.id -TimeLimitInSecond 60 +``` + +In this example we create a packet capture named "PacketCaptureTest" with multiple VMSS Instances in Include Scope and a time limit. Once the session is complete, it will be saved to the specified storage account. +Note: The Azure Network Watcher extension must be installed on the target virtual machine to create packet captures. + ++ Example 2: Create a Packet Capture with multiple VMSS Instances in Exclude Scope +```powershell +$nw = Get-AzResource | Where {$_.ResourceType -eq "Microsoft.Network/networkWatchers" -and $_.Location -eq "WestCentralUS" } +$networkWatcher = Get-AzNetworkWatcher -Name $nw.Name -ResourceGroupName $nw.ResourceGroupName + +$storageAccount = Get-AzStorageAccount -ResourceGroupName contosoResourceGroup -Name contosostorage123 + +$instance1 = $vmssInstance1.Name +$instance2 = $vmssInstance2.Name +$scope = New-AzPacketCaptureScopeConfig -Exclude $instance1, $instance2 + +New-AzNetworkWatcherPacketCaptureV2 -NetworkWatcher $networkWatcher -TargetId $vmss.Id -TargetType "azurevmss" -Scope $scope -PacketCaptureName "PacketCaptureTest" -StorageAccountId $storageAccount.id -TimeLimitInSecond 60 +``` + +In this example we create a packet capture named "PacketCaptureTest" with multiple VMSS Instances in Exclude Scope - meaning that apart from these provided Instance, Packet Capture would be working on all other instances and a time limit. Once the session is complete, it will be saved to the specified storage account. +Note: The Azure Network Watcher extension must be installed on the target virtual machine to create packet captures. + + +#### New-AzPacketCaptureSettingsConfig + +#### SYNOPSIS +Creates a new capture setting object. + +#### SYNTAX + +```powershell +New-AzPacketCaptureSettingsConfig [-FileCount ] [-FileSizeInBytes ] + [-SessionTimeLimitInSeconds ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzPacketCaptureSettingsConfig -FileCount 2 -FileSizeInBytes 102400 -SessionTimeLimitInSeconds 60 +``` + +In the above example, passing file count with file size and session time (in seconds). It will create an object. + ++ Example 2 +```powershell +New-AzPacketCaptureSettingsConfig +``` + +In the above example, without passing any parameters. It will create an object with default values, + + +#### New-AzPrivateDnsZoneConfig + +#### SYNOPSIS +Creates DNS zone configuration of the private dns zone group. + +#### SYNTAX + +```powershell +New-AzPrivateDnsZoneConfig -Name [-PrivateDnsZoneId ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Creates DNS zone configuration +```powershell +$dnsZone = New-AzPrivateDnsZone -ResourceGroupName "rg" -Name "test.vault.azure.com" +$config = New-AzPrivateDnsZoneConfig -Name "test-vault-azure-com" -PrivateDnsZoneId $dnsZone.ResourceId +``` + +The above example creates DNS zone and then creates DNS zone configuration. `New-AzPrivateDnsZone` cmdlet is provided by module Az.PrivateDns. + + +#### New-AzPrivateDnsZoneGroup + +#### SYNOPSIS +Creates a private DNS zone group in the specified private endpoint. + +#### SYNTAX + +```powershell +New-AzPrivateDnsZoneGroup -ResourceGroupName -PrivateEndpointName -Name + -PrivateDnsZoneConfig + [-Force] [-AsJob] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$dnsZone = New-AzPrivateDnsZone -ResourceGroupName "rg" -Name "test.vault.azure.com" +$config = New-AzPrivateDnsZoneConfig -Name "test-vault-azure-com" -PrivateDnsZoneId $dnsZone.ResourceId +New-AzPrivateDnsZoneGroup -ResourceGroupName "rg" -PrivateEndpointName "test-pr-endpoint" -name "dnsgroup1" -PrivateDnsZoneConfig $config -Force +``` + +```output +Name : dnsgroup1 +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.Network/privateEndpoints/test-pr-endpoint/privateDnsZoneGroups/dnsgroup1 +ProvisioningState : Succeeded +PrivateDnsZoneConfigs : [ + { + "Name": "test-vault-azure-com", + "PrivateDnsZoneId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.Network/privateDnsZones/test.vault.azure.com", + "RecordSets": [] + } + ] +``` + +Once private endpoint `test-pr-endpoint` is created, above example creates DNS zone group under that private endpoint. + + +#### Get-AzPrivateDnsZoneGroup + +#### SYNOPSIS +Gets private DNS zone group + +#### SYNTAX + ++ List (Default) +```powershell +Get-AzPrivateDnsZoneGroup -ResourceGroupName -PrivateEndpointName + [-DefaultProfile ] [] +``` + ++ GetByName +```powershell +Get-AzPrivateDnsZoneGroup -ResourceGroupName -PrivateEndpointName -Name + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Retrieve private DNS zone group +```powershell +Get-AzPrivateDnsZoneGroup -ResourceGroupName "rg" -PrivateEndpointName "test-pr-endpoint" -name "dnsgroup1" +``` + +```output +Name : dnsgroup1 +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.Network/privateEndpoints/test-pr-endpoint/privateDnsZoneGroups/dnsgroup1 +ProvisioningState : Succeeded +PrivateDnsZoneConfigs : [ + { + "Name": "test-vault-azure-com", + "PrivateDnsZoneId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.Network/privateDnsZones/test.vault.azure.com", + "RecordSets": [] + } + ] +``` + +Above example gets a private DNS zone group named dnsgroup1 in the resource group rg. + + +#### Remove-AzPrivateDnsZoneGroup + +#### SYNOPSIS +Removes a DNS zone group. + +#### SYNTAX + +```powershell +Remove-AzPrivateDnsZoneGroup -ResourceGroupName -PrivateEndpointName -Name [-Force] + [-AsJob] [-PassThru] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzPrivateDnsZoneGroup -ResourceGroupName "rg" -PrivateEndpointName "test-pr-endpoint" -name dnsgroup1 +``` + +Above example removes a DNS zone group named dnsgroup1 from endpoint test-pr-endpoint. + + +#### Set-AzPrivateDnsZoneGroup + +#### SYNOPSIS +Updates DNS zone group + +#### SYNTAX + +```powershell +Set-AzPrivateDnsZoneGroup -ResourceGroupName -PrivateEndpointName -Name + -PrivateDnsZoneConfig + [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 + + + +```powershell +Get-AzPrivateDnsZoneGroup -ResourceGroupName rg -PrivateEndpointName my-pr-endpoint -name dnsgroup1 + +Name : dnsgroup1 +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.Network/privateEndpoints/my-pr-endpoint/privateDnsZoneGroups/dnsgroup1 +ProvisioningState : Succeeded +PrivateDnsZoneConfigs : [ + { + "Name": "test-vault-azure-com", + "PrivateDnsZoneId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.Network/privateDnsZones/test.vault.azure.com", + "RecordSets": [] + } + ] + +$zone1 = Get-AzPrivateDnsZone -ResourceGroupName rg -Name "test1.vault.azure.com" +$config = New-AzPrivateDnsZoneConfig -Name test1-vault-azure-com -PrivateDnsZoneId $zone1.ResourceId +Set-AzPrivateDnsZoneGroup -ResourceGroupName rg -PrivateEndpointName my-pr-endpoint -name dnsgroup1 -PrivateDnsZoneConfig $config + +Name : dnsgroup1 +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.Network/privateEndpoints/my-pr-endpoint/privateDnsZoneGroups/dnsgroup1 +ProvisioningState : Succeeded +PrivateDnsZoneConfigs : [ + { + "Name": "test1-vault-azure-com", + "PrivateDnsZoneId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.Network/privateDnsZones/test1.vault.azure.com", + "RecordSets": [] + } + ] +``` + +Above example updates DNS zone group named dnsgroup1 with a new dnsconfig which links to another DNS zone. + + +#### New-AzPrivateEndpoint + +#### SYNOPSIS +Creates a private endpoint. + +#### SYNTAX + +```powershell +New-AzPrivateEndpoint -Name -ResourceGroupName -Location -Subnet + -PrivateLinkServiceConnection [-ByManualRequest] [-EdgeZone ] + [-Tag ] [-Force] [-AsJob] [-ApplicationSecurityGroup ] + [-IpConfiguration ] [-CustomNetworkInterfaceName ] + [-IpVersionType ] [-DefaultProfile ] [-ProgressAction ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Create a private endpoint + +The following example creates a private endpoint with a specific private link service ID in the +specified subnet in a virtual network. + +```powershell +$virtualNetwork = Get-AzVirtualNetwork -ResourceName 'myVirtualNetwork' -ResourceGroupName 'myResourceGroup' +$subnet = $virtualNetwork | Select-Object -ExpandProperty subnets | Where-Object Name -eq 'mySubnet' +$plsConnection= New-AzPrivateLinkServiceConnection -Name 'MyPLSConnections' -PrivateLinkServiceId '/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/privateLinkServices/privateLinkService' -RequestMessage 'Please Approve my request' +New-AzPrivateEndpoint -Name 'MyPrivateEndpoint' -ResourceGroupName 'myResourceGroup' -Location 'centralus' -PrivateLinkServiceConnection $plsConnection -Subnet $subnet +``` + + +#### Get-AzPrivateEndpoint + +#### SYNOPSIS +Get a private endpoint + +#### SYNTAX + ++ NoExpand (Default) +```powershell +Get-AzPrivateEndpoint [-Name ] [-ResourceGroupName ] [-DefaultProfile ] + [] +``` + ++ Expand +```powershell +Get-AzPrivateEndpoint -Name -ResourceGroupName -ExpandResource + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Retrieve a private endpoint +```powershell +Get-AzPrivateEndpoint -Name MyPrivateEndpoint1 -ResourceGroupName TestResourceGroup +``` + +```output +Name : MyPrivateEndpoint1 +ResourceGroupName : TestResourceGroup +Location : eastus2euap +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestResourceGroup/provi + ders/Microsoft.Network/privateEndpoints/MyPrivateEndpoint1 +Etag : W/"00000000-0000-0000-0000-000000000000" +ProvisioningState : Succeeded +Subnet : { + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestResourceGroup/providers/Microsoft.Network/virtualNetworks/MyVirtualNetwork1/subnets/backendSubnet", + } +NetworkInterfaces : [ + { + + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestResourceGroup/providers/Microsoft.Network/networkInterfaces/MyNic1", + } + ] +PrivateLinkServiceConnections : [] +ManualPrivateLinkServiceConnections : [ + { + "Name": "MyPrivateLinkServiceConnection", + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestResourceGroup/providers/Microsoft.Network/privateEndpoints/MyPrivateEndpoint1/manualPrivateLinkServi + ceConnections/MyPrivateLinkServiceConnection", + "PrivateLinkServiceId": "/subscriptions/00000000-0000-0000-0000-000000000000/ + resourceGroups/TestResourceGroup/providers/Microsoft.Network/priv + ateLinkServices/MyPrivateLinkService", + "PrivateLinkServiceConnectionState": { + "Status": "Pending", + "Description": "Awaiting approval" + } + } + ] +``` + +This command gets the private endpoint named MyPrivateEndpoint1 in the resource group TestResourceGroup + ++ Example 2: List all private endpoints in ResourceGroup +```powershell +Get-AzPrivateEndpoint -ResourceGroupName TestResourceGroup +``` + +```output +Name : MyPrivateEndpoint1 +ResourceGroupName : TestResourceGroup +Location : eastus2euap +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestResourceGroup/provi + ders/Microsoft.Network/privateEndpoints/MyPrivateEndpoint1 +Etag : W/"00000000-0000-0000-0000-000000000000" +ProvisioningState : Succeeded +Subnet : { + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestResourceGroup/providers/Microsoft.Network/virtualNetworks/MyVirtualNetwork1/subnets/backendSubnet", + } +NetworkInterfaces : [ + { + + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestResourceGroup/providers/Microsoft.Network/networkInterfaces/MyNic1", + } + ] +PrivateLinkServiceConnections : [] +ManualPrivateLinkServiceConnections : [ + { + "Name": "MyPrivateLinkServiceConnection", + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestResourceGroup/providers/Microsoft.Network/privateEndpoints/MyPrivateEndpoint1/manualPrivateLinkServi + ceConnections/MyPrivateLinkServiceConnection", + "PrivateLinkServiceId": "/subscriptions/00000000-0000-0000-0000-000000000000/ + resourceGroups/TestResourceGroup/providers/Microsoft.Network/priv + ateLinkServices/MyPrivateLinkService", + "PrivateLinkServiceConnectionState": { + "Status": "Pending", + "Description": "Awaiting approval" + } + } + ] +``` + +This command gets all of private end points in the resource group TestResourceGroup + + +#### Remove-AzPrivateEndpoint + +#### SYNOPSIS +Removes a private endpoint. + +#### SYNTAX + +```powershell +Remove-AzPrivateEndpoint -ResourceGroupName -Name [-Force] [-AsJob] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzPrivateEndpoint -Name MyPrivateEndpoint1 -ResourceGroupName TestResourceGroup +``` + +This example remove a private endpoint named MyPrivateEndpoint1. + + +#### Set-AzPrivateEndpoint + +#### SYNOPSIS +Updates a private endpoint. + +#### SYNTAX + +```powershell +Set-AzPrivateEndpoint -PrivateEndpoint [-AsJob] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Creates a private endpoint and replace one of its subnets to another +```powershell +$virtualNetwork = Get-AzVirtualNetwork -ResourceName MyVirtualNetwork -ResourceGroupName TestResourceGroup +$plsConnection= New-AzPrivateLinkServiceConnection -Name MyPLSConnections -PrivateLinkServiceId "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestResourceGroup/providers/Microsoft.Network/privateLinkServices/privateLinkService" -RequestMessage "Please Approve my request" +$privateEndpoint = New-AzPrivateEndpoint -Name MyPrivateEndpoint -ResourceGroupName TestResourceGroup -Location centralus -PrivateLinkServiceConnection $plsConnection -Subnet $virtualNetwork.Subnets[0] + +$privateEndpoint.Subnet = $virtualNetwork.Subnet[1] + +$privateEndpoint | Set-AzPrivateEndpoint +``` + +This example creates a private endpoint with one subnet, then it replace to another subnet from the in-memory representation of the virtual network. The Set-PrivateEndpoint cmdlet is then used to write the modified private endpoint state on the service side. + + +#### Approve-AzPrivateEndpointConnection + +#### SYNOPSIS +Approves a private endpoint connection. + +#### SYNTAX + ++ ByResourceId (Default) +```powershell +Approve-AzPrivateEndpointConnection [-Description ] -ResourceId + [-DefaultProfile ] [] +``` + ++ ByResource +```powershell +Approve-AzPrivateEndpointConnection -Name [-Description ] -ResourceGroupName + -ServiceName [-DefaultProfile ] + -PrivateLinkResourceType [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Approve-AzPrivateEndpointConnection -Name TestPrivateEndpointConnection -ResourceGroupName TestResourceGroup -ServiceName TestPrivateLinkService -PrivateLinkResourceType Microsoft.Network/privateLinkServices +``` + +This example approves a private endpoint connection. + + +#### Deny-AzPrivateEndpointConnection + +#### SYNOPSIS +denies a private endpoint connection. + +#### SYNTAX + ++ ByResourceId (Default) +```powershell +Deny-AzPrivateEndpointConnection [-Description ] -ResourceId + [-DefaultProfile ] [] +``` + ++ ByResource +```powershell +Deny-AzPrivateEndpointConnection -Name [-Description ] -ResourceGroupName + -ServiceName [-DefaultProfile ] + -PrivateLinkResourceType [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Deny-AzPrivateEndpointConnection -Name TestPrivateEndpointConnection -ResourceGroupName TestResourceGroup -ServiceName TestPrivateLinkService -PrivateLinkResourceType Microsoft.Network/privateLinkServices +``` + +This example denies a private endpoint connection. + + +#### Get-AzPrivateEndpointConnection + +#### SYNOPSIS +Gets a private endpoint connection resource. + +#### SYNTAX + ++ ByResourceId (Default) +```powershell +Get-AzPrivateEndpointConnection [-Description ] -ResourceId + [-DefaultProfile ] [] +``` + ++ ByPrivateLinkResourceId +```powershell +Get-AzPrivateEndpointConnection -PrivateLinkResourceId [-Description ] + [-DefaultProfile ] [] +``` + ++ ByResource +```powershell +Get-AzPrivateEndpointConnection [-Description ] [-Name ] -ResourceGroupName + -ServiceName [-DefaultProfile ] + -PrivateLinkResourceType [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzPrivateEndpointConnection -PrivateLinkResourceId '/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestResourceGroup/providers/Microsoft.Sql/servers/mySql' +``` + +This example return a list of all private endpoint connections belongs to sql server named Mysql. + ++ Example 2 +```powershell +Get-AzPrivateEndpointConnection -Name MyPrivateEndpointConnection1 -ResourceGroupName TestResourceGroup -ServiceName MyPrivateLinkService -PrivateLinkResourceType Microsoft.Network/privateLinkServices +``` + +This example get a private endpoint connection named MyPrivateEndpointConnection1 belongs to private link service named MyPrivateLinkService + + +#### Remove-AzPrivateEndpointConnection + +#### SYNOPSIS +Removes a private endpoint connection. + +#### SYNTAX + ++ ByResourceId (Default) +```powershell +Remove-AzPrivateEndpointConnection [-Description ] [-Force] [-AsJob] [-PassThru] -ResourceId + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByResource +```powershell +Remove-AzPrivateEndpointConnection -Name [-Description ] [-Force] [-AsJob] [-PassThru] + -ResourceGroupName -ServiceName [-DefaultProfile ] + [-WhatIf] [-Confirm] -PrivateLinkResourceType + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzPrivateEndpointConnection -Name MyPrivateEndpointConnection1 -ResourceGroupName TestResourceGroup -ServiceName MyPrivateLinkServiceName -PrivateLinkResourceType Microsoft.Network/privateLinkServices +``` + +This example remove a private endpoint connection named MyPrivateEndpointConnection1 + + +#### Set-AzPrivateEndpointConnection + +#### SYNOPSIS +Updates a private endpoint connection state on private link service. + +#### SYNTAX + ++ ByResourceId (Default) +```powershell +Set-AzPrivateEndpointConnection -PrivateLinkServiceConnectionState [-Description ] + -ResourceId [-DefaultProfile ] + [] +``` + ++ ByResource +```powershell +Set-AzPrivateEndpointConnection -Name -PrivateLinkServiceConnectionState + [-Description ] -ResourceGroupName -ServiceName + [-DefaultProfile ] + -PrivateLinkResourceType [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Set-AzPrivateEndpointConnection -Name TestPrivateEndpointConnection -ResourceGroupName TestResourceGroup -ServiceName TestPrivateLinkService -PrivateLinkResourceType Microsoft.Network/privateLinkServices -PrivateLinkServiceConnectionState "Approved" +``` + +This example updates a private endpoint connection state to Approved. + + +#### New-AzPrivateEndpointIpConfiguration + +#### SYNOPSIS +Creates an IpConfiguration object for private endpoint. + +#### SYNTAX + +```powershell +New-AzPrivateEndpointIpConfiguration -Name [-GroupId ] [-MemberName ] + -PrivateIpAddress [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzPrivateEndpointIpConfiguration -Name "IpConfigurationForPrivateEndpoint" -PrivateIPAddress "10.0.0.10" +``` + +This example creates an IpConfiguration object used for private endpoint. + + +#### Test-AzPrivateIPAddressAvailability + +#### SYNOPSIS +Test availability of a private IP address in a virtual network. + +#### SYNTAX + ++ TestByResource +```powershell +Test-AzPrivateIPAddressAvailability -VirtualNetwork -IPAddress + [-DefaultProfile ] [] +``` + ++ TestByResourceId +```powershell +Test-AzPrivateIPAddressAvailability -ResourceGroupName -VirtualNetworkName + -IPAddress [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Test whether an IP address is available using the pipeline +```powershell +Get-AzVirtualNetwork -Name $vnetName -ResourceGroupName $rgname | Test-AzPrivateIPAddressAvailability -IPAddress "10.0.1.10" +``` + +This command gets a virtual network and uses the pipeline operator to pass it to **Test-AzPrivateIPAddressAvailability**, which tests whether the specified private IP address is available. + + +#### Get-AzPrivateLinkResource + +#### SYNOPSIS +Gets a private link resource. + +#### SYNTAX + ++ ByPrivateLinkResourceId (Default) +```powershell +Get-AzPrivateLinkResource -PrivateLinkResourceId [-Name ] + [-DefaultProfile ] [] +``` + ++ ByResource +```powershell +Get-AzPrivateLinkResource -ResourceGroupName -ServiceName [-Name ] + [-DefaultProfile ] + [-PrivateLinkResourceType ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzPrivateLinkResource -PrivateLinkResourceId '/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestResourceGroup/providers/Microsoft.Sql/servers/mySql' +``` + +This example list all private link resources nbelong to sql server named mySql. + + +#### New-AzPrivateLinkService + +#### SYNOPSIS +Creates a private link service + +#### SYNTAX + +```powershell +New-AzPrivateLinkService -Name -ResourceGroupName -Location + -IpConfiguration + [-LoadBalancerFrontendIpConfiguration ] [-Visibility ] + [-AutoApproval ] [-EnableProxyProtocol] [-EdgeZone ] [-Tag ] [-Force] [-AsJob] + [-DestinationIPAddress ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 + +The following example creates a private link service with a load balancer. + +```powershell +$vnet = Get-AzVirtualNetwork -ResourceName 'myvnet' -ResourceGroupName 'myresourcegroup' +#### View the results of $vnet and change 'mysubnet' in the following line to the appropriate subnet name. +$subnet = $vnet | Select-Object -ExpandProperty subnets | Where-Object Name -eq 'mysubnet' +$IPConfig = New-AzPrivateLinkServiceIpConfig -Name 'IP-Config' -Subnet $subnet -PrivateIpAddress '10.0.0.5' +$publicip = Get-AzPublicIpAddress -ResourceGroupName 'myresourcegroup' +$frontend = New-AzLoadBalancerFrontendIpConfig -Name 'FrontendIpConfig01' -PublicIpAddress $publicip +$lb = New-AzLoadBalancer -Name 'MyLoadBalancer' -ResourceGroupName 'myresourcegroup' -Location 'West US' -FrontendIpConfiguration $frontend +New-AzPrivateLinkService -Name 'mypls' -ResourceGroupName myresourcegroup -Location "West US" -LoadBalancerFrontendIpConfiguration $frontend -IpConfiguration $IPConfig +``` + ++ Example 2 + +The following example creates a private link service with destinationIPAddress. + +```powershell +$vnet = Get-AzVirtualNetwork -ResourceName 'myvnet' -ResourceGroupName 'myresourcegroup' +#### View the results of $vnet and change 'mysubnet' in the following line to the appropriate subnet name. +$subnet = $vnet | Select-Object -ExpandProperty subnets | Where-Object Name -eq 'mysubnet' +$IPConfig1 = New-AzPrivateLinkServiceIpConfig -Name 'IP-Config1' -Subnet $subnet -PrivateIpAddress '10.0.0.5' -Primary +$IPConfig2 = New-AzPrivateLinkServiceIpConfig -Name 'IP-Config2' -Subnet $subnet -PrivateIpAddress '10.0.0.6' +$IPConfig3 = New-AzPrivateLinkServiceIpConfig -Name 'IP-Config3' -Subnet $subnet -PrivateIpAddress '10.0.0.7' +$IPConfigs = @($IPConfig1, $IPConfig2, $IPConfig3) +New-AzPrivateLinkService -Name 'mypls' -ResourceGroupName myresourcegroup -Location "West US" -IpConfiguration $IPConfigs -DestinationIPAddress '192.168.0.5' +``` + + +#### Get-AzPrivateLinkService + +#### SYNOPSIS +Gets private link service + +#### SYNTAX + ++ NoExpand (Default) +```powershell +Get-AzPrivateLinkService [-Name ] [-ResourceGroupName ] + [-DefaultProfile ] [] +``` + ++ Expand +```powershell +Get-AzPrivateLinkService -Name -ResourceGroupName -ExpandResource + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzPrivateLinkService -Name MyPLS -ResourceGroupName TestResourceGroup +``` + +```output +Name : MyPLS +ResourceGroupName : TestResourceGroup +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestResourceGroup/prov + iders/Microsoft.Network/privateLinkServices/MyPLS +Location : eastus2euap +Type : Microsoft.Network/privateLinkServices +Etag : W/"00000000-0000-0000-0000-000000000000" +Tag : {} +ProvisioningState : Succeeded +Visibility : +AutoApproval : +Alias : +LoadBalancerFrontendIpConfigurations : [] +IpConfigurations : [ + { + "PrivateIPAddress": "10.0.2.5", + "PrivateIPAllocationMethod": "Static", + "ProvisioningState": "Failed", + "PrivateIPAddressVersion": "IPv4", + "Name": "IP-Config", + "Subnet": { + "Delegations": [], + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ + TestResourceGroup/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/backendSubne + t", + "ServiceAssociationLinks": [] + } + } + ] +PrivateEndpointConnections : [] +NetworkInterfaces : [ + { + "TapConfigurations": [], + "HostedWorkloads": [], + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestResourceGroup/providers/Microsoft.Network/networkInterfaces/mytestinterface" + } + ] +``` + +This cmdlet gets a private link service in the resource group. + + +#### Remove-AzPrivateLinkService + +#### SYNOPSIS +Removes a private link service + +#### SYNTAX + +```powershell +Remove-AzPrivateLinkService -ResourceGroupName -Name [-Force] [-AsJob] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzPrivateLinkService -ResourceGroupName TestResourceGroup -Name TestPrivateLinkService +``` + +This example removes a private link service named TestPrivateLinkService. + + +#### Set-AzPrivateLinkService + +#### SYNOPSIS +Updates a private link service. + +#### SYNTAX + +```powershell +Set-AzPrivateLinkService -PrivateLinkService [-AsJob] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Creates a private link service and update its +```powershell +$vnet = Get-AzVirtualNetwork -ResourceName "myvnet" -ResourceGroupName "myresourcegroup" +$IPConfig = New-AzPrivateLinkServiceIpConfig -Name "IP-Config" -Subnet $vnet.subnets[1] -PrivateIpAddress "10.0.0.5" +$publicip = Get-AzPublicIpAddress -Name "myPublicIp1" -ResourceGroupName "myresourcegroup" +$frontend = New-AzLoadBalancerFrontendIpConfig -Name "FrontendIpConfig01" -PublicIpAddress $publicip +$lb = New-AzLoadBalancer -Name "MyLoadBalancer" -ResourceGroupName "myresourcegroup" -Location "West US" -FrontendIpConfiguration $frontend +$privateLinkService = New-AzPrivateLinkService -ServiceName "mypls" -ResourceGroupName myresourcegroup -Location "West US" -LoadBalancerFrontendIpConfiguration $frontend -IpConfiguration $IPConfig + +$newIPConfig = New-AzPrivateLinkServiceIpConfig -Name "New-IP-Config" -Subnet $vnet.subnets[0] +$privateLinkService.IpConfigurations[0] = $newIPConfig +$privateLinkService | Set-AzPrivateLinkService +``` + +This example creates a private link service called mypls. Then it replace its ipConfigurations from the in-memory ipConfiguration object. The Set-AzPrivateLinkService cmdlet is then used to write the modified private link service state on the service side. + + +#### New-AzPrivateLinkServiceConnection + +#### SYNOPSIS +Creates a private link service connection configuration. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +New-AzPrivateLinkServiceConnection -Name -PrivateLinkService + [-GroupId ] [-RequestMessage ] [-DefaultProfile ] + [] +``` + ++ SetByResourceId +```powershell +New-AzPrivateLinkServiceConnection -Name -PrivateLinkServiceId [-GroupId ] + [-RequestMessage ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzPrivateLinkServiceConnection -Name MyPLSConnection -PrivateLinkServiceId "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestResourceGroup/providers/Microsoft.Network/privateLinkServices/privateLinkService" -RequestMessage "Please Approve my request" +``` + +This example create a private link service connection object in memory for using in creating private endpoint. + ++ Example 2 + +Creates a private link service connection configuration. (autogenerated) + + + + +```powershell +New-AzPrivateLinkServiceConnection -GroupId -Name 'MyPLSConnections' -PrivateLinkServiceId '/subscriptions/00000000-0000-0000-0000-00000000000000000/resourceGroups/TestResourceGroup/providers/Microsoft.Network/privateLinkServices/privateLinkService' +``` + + +#### New-AzPrivateLinkServiceIpConfig + +#### SYNOPSIS +Create a private link service ip configuration. + +#### SYNTAX + +```powershell +New-AzPrivateLinkServiceIpConfig -Name [-PrivateIpAddressVersion ] + [-PrivateIpAddress ] [-PublicIpAddress ] [-Subnet ] [-Primary] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzPrivateLinkServiceIpConfig -Name $IpConfigurationName -PrivateIpAddress "10.0.0.5" -Primary +``` + +This example create a private link service ip configuration in memory. + ++ Example 2 + +Create a private link service ip configuration. (autogenerated) + + + + +```powershell +New-AzPrivateLinkServiceIpConfig -Name 'IP-Config' -PrivateIpAddress '10.0.0.5' -Subnet +``` + + +#### Test-AzPrivateLinkServiceVisibility + +#### SYNOPSIS +The **Test-AzPrivateLinkServiceVisibility** checks whether a private link service is visible for current use. + +#### SYNTAX + +```powershell +Test-AzPrivateLinkServiceVisibility -Location [-ResourceGroupName ] + -PrivateLinkServiceAlias [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Check if contoso.cloudapp.azure.com is available for use. +```powershell +Test-AzPrivateLinkServiceVisibility -Location westus -PrivateLinkServiceAlias "TestPLS.00000000-0000-0000-0000-000000000000.azure.privatelinkservice" +``` + + +#### New-AzPublicIpAddress + +#### SYNOPSIS +Creates a public IP address. + +#### SYNTAX + +```powershell +New-AzPublicIpAddress [-Name ] -ResourceGroupName -Location [-EdgeZone ] + [-Sku ] [-Tier ] -AllocationMethod [-IpAddressVersion ] + [-DomainNameLabel ] [-DomainNameLabelScope ] [-IpTag ] + [-PublicIpPrefix ] [-DdosProtectionMode ] [-DdosProtectionPlanId ] + [-ReverseFqdn ] [-IdleTimeoutInMinutes ] [-Zone ] [-IpAddress ] + [-Tag ] [-Force] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Create a new public IP address +```powershell +$publicIp = New-AzPublicIpAddress -Name $publicIpName -ResourceGroupName $rgName -AllocationMethod Static -DomainNameLabel $dnsPrefix -Location $location +``` + +This command creates a new public IP address resource.A DNS record is created for +$dnsPrefix.$location.cloudapp.azure.com pointing to the public IP address of this resource. A +public IP address is immediately allocated to this resource as the -AllocationMethod is specified +as 'Static'. If it is specified as 'Dynamic', a public IP address gets allocated only when you +start (or create) the associated resource (like a VM or load balancer). + ++ Example 2: Create a public IP address with a reverse FQDN +```powershell +$publicIp = New-AzPublicIpAddress -Name $publicIpName -ResourceGroupName $rgName -AllocationMethod Static -DomainNameLabel $dnsPrefix -Location $location -ReverseFqdn $customFqdn +``` + +This command creates a new public IP address resource. With the -ReverseFqdn parameter, Azure +creates a DNS PTR record (reverse-lookup) for the public IP address allocated to this resource, +pointing to the $customFqdn specified in the command. As a pre-requisite, the $customFqdn (say +webapp.contoso.com) should have a DNS CNAME record (forward-lookup) pointing to +$dnsPrefix.$location.cloudapp.azure.com. + ++ Example 3: Create a new public IP address with IpTag +```powershell +$ipTag = New-AzPublicIpTag -IpTagType "FirstPartyUsage" -Tag "/Sql" +$publicIp = New-AzPublicIpAddress -Name $publicIpName -ResourceGroupName $rgName -AllocationMethod Static -DomainNameLabel $dnsPrefix -Location $location -IpTag $ipTag +``` + +This command creates a new public IP address resource.A DNS record is created for +$dnsPrefix.$location.cloudapp.azure.com pointing to the public IP address of this resource. A +public IP address is immediately allocated to this resource as the -AllocationMethod is specified +as 'Static'. If it is specified as 'Dynamic', a public IP address gets allocated only when you +start (or create) the associated resource (like a VM or load balancer). An Iptag is used to +specific the Tags associated with resource. Iptag can be specified using New-AzPublicIpTag +and passed as input through -IpTags. + ++ Example 4: Create a new public IP address from a Prefix +```powershell +$publicIp = New-AzPublicIpAddress -Name $publicIpName -ResourceGroupName $rgName -AllocationMethod Static -DomainNameLabel $dnsPrefix -Location $location -PublicIpPrefix $publicIpPrefix -Sku Standard +``` + +This command creates a new public IP address resource. A DNS record is created for +$dnsPrefix.$location.cloudapp.azure.com pointing to the public IP address of this resource. A +public IP address is immediately allocated to this resource from the publicIpPrefix specified. +This option is only supported for the 'Standard' Sku and 'Static' AllocationMethod. + ++ Example 5: Create a specific public IP address from a BYOIP Prefix +```powershell +$publicIp = New-AzPublicIpAddress -Name $publicIpName -ResourceGroupName $rgName -AllocationMethod Static -Location $location -IpAddress 0.0.0.0 -PublicIpPrefix $publicIpPrefix -Sku Standard +``` + +This command creates a new public IP address resource with specific IP. NRP would check if the +given IP is inside the PublicIpPrefix and if the given PublicIpPrefix is BYOIP PublicIpPrefix. +the given public IP address is immediately allocated to this resource from the publicIpPrefix +specified. This option is only supported for the 'Standard' Sku and 'Static' AllocationMethod +and BYOIP PublicIpPrefix. + ++ Example 6: Create a new global public IP address +```powershell +$publicIp = New-AzPublicIpAddress -Name $publicIpName -ResourceGroupName $rgName -AllocationMethod Static -DomainNameLabel $domainNameLabel -Location $location -Sku Standard -Tier Global +``` + +This command creates a new global public IP address resource.A DNS record is created for +$dnsPrefix.$location.cloudapp.azure.com pointing to the public IP address of this resource. A +global public IP address is immediately allocated to this resource. +This option is only supported for the 'Standard' Sku and 'Static' AllocationMethod. + ++ Example 7: Create a public IP address with a DomainNameLabelScope +```powershell +$publicIp = New-AzPublicIpAddress -Name $publicIpName -ResourceGroupName $rgName -AllocationMethod Static -DomainNameLabel $dnsPrefix -DomainNameLabelScope $hasedReusePolicy -Location $location +``` + +This command creates a new public IP address resource. With the -DomainNameLabelScope parameter, Azure +creates a DNS record with a hashed value in FQDN for the public IP address allocated to this resource +with the policy suggested by $hasedReusePolicy. + + +#### Get-AzPublicIpAddress + +#### SYNOPSIS +Gets a public IP address. + +#### SYNTAX + ++ NoExpandStandAloneIp (Default) +```powershell +Get-AzPublicIpAddress [-Name ] [-ResourceGroupName ] [-DefaultProfile ] + [] +``` + ++ ExpandStandAloneIp +```powershell +Get-AzPublicIpAddress -Name -ResourceGroupName -ExpandResource + [-DefaultProfile ] [] +``` + ++ NoExpandScaleSetIp +```powershell +Get-AzPublicIpAddress [-Name ] -ResourceGroupName [-VirtualMachineScaleSetName ] + [-VirtualMachineIndex ] [-NetworkInterfaceName ] [-IpConfigurationName ] + [-DefaultProfile ] [] +``` + ++ ExpandScaleSetIp +```powershell +Get-AzPublicIpAddress -Name -ResourceGroupName -VirtualMachineScaleSetName + -VirtualMachineIndex -NetworkInterfaceName -IpConfigurationName + -ExpandResource [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Get a public IP resource +```powershell +Get-AzPublicIpAddress -Name myPublicIp1 -ResourceGroupName myRg +``` + +```output +Name : myPublicIp1 +ResourceGroupName : myRg +Location : westus2 +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRg/providers/Microsoft + .Network/publicIPAddresses/myPublicIp1 +Etag : W/"00000000-0000-0000-0000-000000000000" +ResourceGuid : 00000000-0000-0000-0000-000000000000 +ProvisioningState : Succeeded +Tags : +PublicIpAllocationMethod : Dynamic +IpAddress : Not Assigned +PublicIpAddressVersion : IPv4 +IdleTimeoutInMinutes : 4 +IpConfiguration : { + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRg/providers/ + Microsoft.Network/networkInterfaces/ps-azure-env407/ipConfigurations/ipconfig1" + } +DnsSettings : null +Zones : {} +Sku : { + "Name": "Basic", + "Tier": "Regional" + } +IpTags : [] +``` + +This command gets a public IP address resource with name myPublicIp in the resource group myRg. + ++ Example 2: Get public IP resources using filtering +```powershell +Get-AzPublicIpAddress -Name myPublicIp* +``` + +```output +Name : myPublicIp1 +ResourceGroupName : myRg +Location : westus2 +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRg/providers/Microsoft + .Network/publicIPAddresses/myPublicIp1 +Etag : W/"00000000-0000-0000-0000-000000000000" +ResourceGuid : 00000000-0000-0000-0000-000000000000 +ProvisioningState : Succeeded +Tags : +PublicIpAllocationMethod : Dynamic +IpAddress : Not Assigned +PublicIpAddressVersion : IPv4 +IdleTimeoutInMinutes : 4 +IpConfiguration : { + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRg/providers/ + Microsoft.Network/networkInterfaces/ps-azure-env407/ipConfigurations/ipconfig1" + } +DnsSettings : null +Zones : {} +Sku : { + "Name": "Basic", + "Tier": "Regional" + } +IpTags : [] +``` + +This command gets all public IP address resources whose name starts with myPublicIp. + + +#### Remove-AzPublicIpAddress + +#### SYNOPSIS +Removes a public IP address. + +#### SYNTAX + +```powershell +Remove-AzPublicIpAddress -Name -ResourceGroupName [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Remove a public IP address resource +```powershell +Remove-AzPublicIpAddress -Name $publicIpName -ResourceGroupName $rgName +``` + +This command removes the public IP address resource named $publicIpName in the resource group $rgName. + + +#### Set-AzPublicIpAddress + +#### SYNOPSIS +Updates a public IP address. + +#### SYNTAX + +```powershell +Set-AzPublicIpAddress -PublicIpAddress [-AsJob] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Change allocation method of a public IP address +```powershell +$publicIp = Get-AzPublicIpAddress -Name $publicIpName -ResourceGroupName $rgName + +$publicIp.PublicIpAllocationMethod = "Static" + +Set-AzPublicIpAddress -PublicIpAddress $publicIp + +Get-AzPublicIpAddress -Name $publicIpName -ResourceGroupName $rgName +``` + + First command gets the public IP address resource with name $publicIPName in the resource + group $rgName. + Second command sets the allocation method of the public IP address object to "Static". + Set-AzPublicIPAddress command updates the public IP address resource with the + updated object, and modifies the allocation method to 'Static'. A public IP address gets + allocated immediately. + ++ Example 2: Add DNS domain label of a public IP address +```powershell +$publicIp = Get-AzPublicIpAddress -Name $publicIpName -ResourceGroupName $rgName + +$publicIp.DnsSettings = @{"DomainNameLabel" = "newdnsprefix"} + +Set-AzPublicIpAddress -PublicIpAddress $publicIp + +$publicIp = Get-AzPublicIpAddress -Name $publicIpName -ResourceGroupName $rgName +``` + +First command gets the public IP address resource with name $publicIPName in the resource + group $rgName. + Second command sets the DomainNameLabel property to the required dns prefix. + Set-AzPublicIPAddress command updates the public IP address resource with the + updated object. DomainNameLabel & Fqdn are modified as expected. + + ++ Example 3: Change DNS domain label of a public IP address +```powershell +$publicIp = Get-AzPublicIpAddress -Name $publicIpName -ResourceGroupName $rgName + +$publicIp.DnsSettings.DomainNameLabel = "newdnsprefix" + +Set-AzPublicIpAddress -PublicIpAddress $publicIp + +$publicIp = Get-AzPublicIpAddress -Name $publicIpName -ResourceGroupName $rgName +``` + +First command gets the public IP address resource with name $publicIPName in the resource + group $rgName. + Second command sets the DomainNameLabel property to the required dns prefix. + Set-AzPublicIPAddress command updates the public IP address resource with the + updated object. DomainNameLabel & Fqdn are modified as expected. + + +#### New-AzPublicIpPrefix + +#### SYNOPSIS +Creates a Public IP Prefix + +#### SYNTAX + +```powershell +New-AzPublicIpPrefix -Name -ResourceGroupName -Location [-Sku ] + [-Tier ] -PrefixLength [-IpAddressVersion ] [-IpTag ] + [-Zone ] [-CustomIpPrefix ] [-EdgeZone ] [-Tag ] [-Force] + [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Create a new public Ip prefix +```powershell +$publicIpPrefix = New-AzPublicIpPrefix -Name $prefixName -ResourceGroupName $rgName -PrefixLength 30 +``` + +This command creates a new public IP prefix resource. + ++ Example 2: Create a new global public Ip prefix +```powershell +$publicIpPrefix = New-AzPublicIpPrefix -ResourceGroupName $rgname -name $rname -location $location -Tier Global -PrefixLength 30 +``` + +This command creates a new global public IP prefix resource. + ++ Example 3 + +Creates a Public IP Prefix. (autogenerated) + + + + +```powershell +New-AzPublicIpPrefix -CustomIpPrefix -Location 'West US' -Name 'MyPublicIPPrefix' -PrefixLength '31' -ResourceGroupName 'MyResourceGroup' +``` + + +#### Get-AzPublicIpPrefix + +#### SYNOPSIS +Gets a public IP prefix + +#### SYNTAX + ++ ListParameterSet (Default) +```powershell +Get-AzPublicIpPrefix [-Name ] [-ResourceGroupName ] [-DefaultProfile ] + [] +``` + ++ GetByResourceIdParameterSet +```powershell +Get-AzPublicIpPrefix -ResourceId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzPublicIpPrefix -ResourceGroupName myRg -Name myPublicIpPrefix1 +``` + +```output +Name : myPublicIpPrefix1 +ResourceGroupName : myRg +Location : westus +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRg/providers/Mic + rosoft.Network/publicIPPrefixes/myPublicIpPrefix1 +Etag : W/"00000000-0000-0000-0000-000000000000" +ResourceGuid : 00000000-0000-0000-0000-000000000000 +ProvisioningState : Succeeded +Tags : +PublicIpAddressVersion : IPv4 +PrefixLength : 28 +IPPrefix : xx.xx.xx.xx/xx +IdleTimeoutInMinutes : +Zones : {} +Sku : { + "Name": "Standard", + "Tier":"Regional" + } +IpTags : [] +PublicIpAddresses : [] +``` + +This command gets a public IP prefix resource with myPublicIpPrefix1 in resource group myRg + ++ Example 2 +```powershell +Get-AzPublicIpPrefix -Name myPublicIpPrefix* +``` + +```output +Name : myPublicIpPrefix1 +ResourceGroupName : myRg +Location : westus +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRg/providers/Mic + rosoft.Network/publicIPPrefixes/myPublicIpPrefix1 +Etag : W/"00000000-0000-0000-0000-000000000000" +ResourceGuid : 00000000-0000-0000-0000-000000000000 +ProvisioningState : Succeeded +Tags : +PublicIpAddressVersion : IPv4 +PrefixLength : 28 +IPPrefix : xx.xx.xx.xx/xx +IdleTimeoutInMinutes : +Zones : {} +Sku : { + "Name": "Standard", + "Tier": "Regional" + } +IpTags : [] +PublicIpAddresses : [] +``` + +This command gets all public IP prefix resources that start with myPublicIpPrefix. + + +#### Remove-AzPublicIpPrefix + +#### SYNOPSIS +Removes a public IP prefix + +#### SYNTAX + ++ RemoveByNameParameterSet (Default) +```powershell +Remove-AzPublicIpPrefix -Name -ResourceGroupName [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ DeleteByResourceIdParameterSet +```powershell +Remove-AzPublicIpPrefix -ResourceId [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ DeleteByInputObjectParameterSet +```powershell +Remove-AzPublicIpPrefix -InputObject [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzPublicIpPrefix -Name $prefixName -ResourceGroupName $rgName +``` + +Removes the public IP prefix with Name $prefixName from resource group $rgName + + +#### Set-AzPublicIpPrefix + +#### SYNOPSIS +Sets the Tags for an existing PublicIpPrefix + +#### SYNTAX + +```powershell +Set-AzPublicIpPrefix -PublicIpPrefix [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Set the tags for public ip prefix +```powershell +$publicIpPrefix = Get-AzPublicIpPrefix -Name $prefixName -ResourceGroupName $rgName + +$publicIpPrefix.Tags = "TestTag" + +Set-AzPublicIpPrefix -PublicIpPrefix $publicIpPrefix +``` + +The first command gets an existing public IP Prefix, the second command sets the Tags Property and the third command updates the existing object. + + +#### New-AzPublicIpTag + +#### SYNOPSIS +Creates an IP Tag. + +#### SYNTAX + +```powershell +New-AzPublicIpTag -IpTagType -Tag [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Create a new IP Tag +```powershell +$ipTag = New-AzPublicIpTag -IpTagType $ipTagType -Tag $tag +``` + +This command creates a new IP Tag with the Tagtype like "FirstPartyUsage" +and tag like "/Sql". This is used in publicIpAddress creation with these +specific tags for allocation. + + +#### New-AzRadiusServer + +#### SYNOPSIS +Creates an external radius server configuration + +#### SYNTAX + +```powershell +New-AzRadiusServer -RadiusServerAddress -RadiusServerSecret + [-RadiusServerScore ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$radiusServer1 = New-AzRadiusServer -RadiusServerAddress 10.1.0.1 -RadiusServerSecret $radiuspd -RadiusServerScore 30 +$radiusServer2 = New-AzRadiusServer -RadiusServerAddress 10.1.0.2 -RadiusServerSecret $radiuspd -RadiusServerScore 1 +New-AzVirtualNetworkGateway -ResourceGroupName $rgname -name $rname -location $location -IpConfigurations $vnetIpConfig -GatewayType Vpn -VpnType RouteBased -EnableBgp $false -GatewaySku VpnGw1 -VpnClientAddressPool 201.169.0.0/16 -VpnClientProtocol "IkeV2" -RadiusServerList $radiusServers +``` + +Creating multiple external radius server configurations to be used for configuring P2S on a new virtual network gateway. + + +#### New-AzRouteConfig + +#### SYNOPSIS +Creates a route for a route table. + +#### SYNTAX + +```powershell +New-AzRouteConfig [-Name ] [-AddressPrefix ] [-NextHopType ] + [-NextHopIpAddress ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Create a route +```powershell +$Route = New-AzRouteConfig -Name "Route07" -AddressPrefix 10.1.0.0/16 -NextHopType "VnetLocal" +$Route +``` + +```output +Name : Route07 +Id : +Etag : +ProvisioningState : +AddressPrefix : 10.1.0.0/16 +NextHopType : VnetLocal +NextHopIpAddress : +``` + +The first command creates a route named Route07, and then stores it in the $Route variable. +This route forwards packets to the local virtual network. +The second command displays the properties of the route. + ++ Example 2 + +Creates a route for a route table. (autogenerated) + + + + +```powershell +New-AzRouteConfig -AddressPrefix 10.1.0.0/16 -Name 'Route07' -NextHopIpAddress '12.0.0.5' -NextHopType 'VnetLocal' +``` + ++ Example 3: Create a route with a Service Tag +```powershell +New-AzRouteConfig -Name "Route07" -AddressPrefix "AppService" -NextHopType "VirtualAppliance" -NextHopIpAddress "10.0.2.4" +``` + +This command creates a route named Route07 which forwards traffic to IP prefixes contained in the AppService Service Tag to a virtual appliance. + + +#### Add-AzRouteConfig + +#### SYNOPSIS +Adds a route to a route table. + +#### SYNTAX + +```powershell +Add-AzRouteConfig -RouteTable [-Name ] [-AddressPrefix ] [-NextHopType ] + [-NextHopIpAddress ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Add a route to a route table +```powershell +$RouteTable = Get-AzRouteTable -ResourceGroupName "ResourceGroup11" -Name "RouteTable01" +Add-AzRouteConfig -Name "Route13" -AddressPrefix 10.3.0.0/16 -NextHopType "VnetLocal" -RouteTable $RouteTable +``` + +The first command gets a route table named RouteTable01 by using the Get-AzRouteTable cmdlet. +The command stores the table in the $RouteTable variable. +The second command adds a route named Route13 to the route table stored in $RouteTable. +This route forwards packets to the local virtual network. + ++ Example 2: Add a route to a route table by using the pipeline +```powershell +Get-AzRouteTable -ResourceGroupName "ResourceGroup11" -Name "RouteTable01" | Add-AzRouteConfig -Name "Route02" -AddressPrefix 10.2.0.0/16 -NextHopType VnetLocal | Set-AzRouteTable +``` + +```output +Name : routetable01 +ResourceGroupName : ResourceGroup11 +Location : eastus +Id : /subscriptions/xxxx-xxxx-xxxx-xxxx/resourceGroups/ResourceGroup11/providers/Microsoft.Networ + k/routeTables/routetable01 +Etag : W/"f13e1bc8-d41f-44d0-882d-b8b5a1134f59" +ProvisioningState : Succeeded +Tags : +Routes : [ + { + "Name": "route07", + "Etag": "W/\"f13e1bc8-d41f-44d0-882d-b8b5a1134f59\"", + "Id": "/subscriptions/xxxx-xxxx-xxxx-xxxx/resourceGroups/ResourceGroup11/providers/Micro + soft.Network/routeTables/routetable01/routes/route07", + "AddressPrefix": "10.1.0.0/16", + "NextHopType": "VnetLocal", + "NextHopIpAddress": null, + "ProvisioningState": "Succeeded" + }, + { + "Name": "route02", + "Etag": "W/\"f13e1bc8-d41f-44d0-882d-b8b5a1134f59\"", + "Id": "/subscriptions/xxxx-xxxx-xxxx-xxxx/resourceGroups/ResourceGroup11/providers/Micro + soft.Network/routeTables/routetable01/routes/route02", + "AddressPrefix": "10.2.0.0/16", + "NextHopType": "VnetLocal", + "NextHopIpAddress": null, + "ProvisioningState": "Succeeded" + }, + { + "Name": "route13", + "Etag": null, + "Id": null, + "AddressPrefix": "10.3.0.0/16", + "NextHopType": "VnetLocal", + "NextHopIpAddress": null, + "ProvisioningState": null + } + ] +Subnets : [] +``` + +This command gets the route table named RouteTable01 by using **Get-AzRouteTable**. +The command passes that table to the current cmdlet by using the pipeline operator. +The current cmdlet adds the route named Route02, and then passes the result to the **Set-AzRouteTable** cmdlet, which updates the table to reflect your changes. + ++ Example 3: Add a route with a Service Tag to a route table (Public Preview) +```powershell +$RouteTable = Get-AzRouteTable -ResourceGroupName "ResourceGroup11" -Name "RouteTable01" +Add-AzRouteConfig -Name "Route13" -AddressPrefix "AppService" -NextHopType "VirtualAppliance" -NextHopIpAddress "10.0.2.4" -RouteTable $RouteTable +``` + +The first command gets a route table named RouteTable01 by using the Get-AzRouteTable cmdlet. +The command stores the table in the $RouteTable variable. +The second command adds a route named Route13 to the route table stored in $RouteTable. +This route forwards traffic to IP prefixes contained in the AppService Service Tag to a virtual appliance. + + +#### Get-AzRouteConfig + +#### SYNOPSIS +Gets routes from a route table. + +#### SYNTAX + +```powershell +Get-AzRouteConfig -RouteTable [-Name ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Get a route table +```powershell +Get-AzRouteTable -ResourceGroupName "ResourceGroup11" -Name "RouteTable01" | Get-AzRouteConfig -Name "Route07" +``` + +```output +Name : route07 +Id : +Etag : +ProvisioningState : +AddressPrefix : 10.1.0.0/16 +NextHopType : VnetLocal +NextHopIpAddress : +``` + +This command gets the route table named RouteTable01 by using the **Get-AzRouteTable** cmdlet. +The command passes that table to the current cmdlet by using the pipeline operator. +The current cmdlet gets the route named Route07 in the route table named RouteTable01. + + +#### Remove-AzRouteConfig + +#### SYNOPSIS +Removes a route from a route table. + +#### SYNTAX + +```powershell +Remove-AzRouteConfig -RouteTable [-Name ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Remove a route +```powershell +Get-AzRouteTable -ResourceGroupName "ResourceGroup11" -Name "RouteTable01" | Remove-AzRouteConfig -Name "Route02" | Set-AzRouteTable +``` + +```output +Name : RouteTable01 +ResourceGroupName : ResourceGroup11 +Location : eastus +Id : /subscriptions/xxxx-xxxx-xxxx-xxxx/resourceGroups/ResourceGroup11/providers/Microsoft.Networ + k/routeTables/RouteTable01 +Etag : W/"47099b62-60ec-4bc1-b87b-fad56cb8bed1" +ProvisioningState : Succeeded +Tags : +Routes : [ + { + "Name": "Route07", + "Etag": "W/\"47099b62-60ec-4bc1-b87b-fad56cb8bed1\"", + "Id": "/subscriptions/xxxx-xxxx-xxxx-xxxx/resourceGroups/ResourceGroup11/providers/Micro + soft.Network/routeTables/RouteTable01/routes/Route07", + "AddressPrefix": "10.1.0.0/16", + "NextHopType": "VnetLocal", + "NextHopIpAddress": null, + "ProvisioningState": "Succeeded" + } + ] +Subnets : [] +``` + +This command gets the route table named RouteTable01 by using the **Get-AzRouteTable** cmdlet. +The command passes that table to the current cmdlet by using the pipeline operator. +The current cmdlet remove the route named Route02, and the passes the result to the **Set-AzRouteTable** cmdlet, which updates the table to reflect your changes. +The table no longer contains the route named Route02. + + +#### Set-AzRouteConfig + +#### SYNOPSIS +Updates a route configuration for a route table. + +#### SYNTAX + +```powershell +Set-AzRouteConfig -RouteTable [-Name ] [-AddressPrefix ] [-NextHopType ] + [-NextHopIpAddress ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Modify a route +```powershell +Get-AzRouteTable -ResourceGroupName "ResourceGroup11" -Name "RouteTable01" | Set-AzRouteConfig -Name "Route02" -AddressPrefix 10.4.0.0/16 -NextHopType VnetLocal | Set-AzRouteTable +``` + +```output +Name : Routetable01 +ResourceGroupName : ResourceGroup11 +Location : eastus +Id : /subscriptions/xxxx-xxxx-xxxx-xxxx/resourceGroups/ResourceGroup11/providers/Microsoft.Networ + k/routeTables/RouteTable01 +Etag : W/"58c2922e-9efe-4554-a457-956ef44bc718" +ProvisioningState : Succeeded +Tags : +Routes : [ + { + "Name": "Route07", + "Etag": "W/\"58c2922e-9efe-4554-a457-956ef44bc718\"", + "Id": "/subscriptions/xxxx-xxxx-xxxx-xxxx/resourceGroups/ResourceGroup11/providers/Micro + soft.Network/routeTables/Routetable01/routes/Route07", + "AddressPrefix": "10.1.0.0/16", + "NextHopType": "VnetLocal", + "NextHopIpAddress": null, + "ProvisioningState": "Succeeded" + }, + { + "Name": "route02", + "Etag": "W/\"58c2922e-9efe-4554-a457-956ef44bc718\"", + "Id": "/subscriptions/xxxx-xxxx-xxxx-xxxx/resourceGroups/ResourceGroup11/providers/Micro + soft.Network/routeTables/routetable01/routes/route02", + "AddressPrefix": "10.4.0.0/16", + "NextHopType": "VnetLocal", + "NextHopIpAddress": null, + "ProvisioningState": "Succeeded" + } + ] +Subnets : [] +``` + +This command gets the route table named RouteTable01 by using the Get-AzRouteTable cmdlet. +The command passes that table to the current cmdlet by using the pipeline operator. +The current cmdlet modifies the route named Route02, and then passes the result to the **Set-AzRouteTable** cmdlet, which updates the table to reflect your changes. + ++ Example 2: Modify a route using a Service Tag (Public Preview) +```powershell +Set-AzRouteConfig -Name "Route02" -AddressPrefix "AppService" -NextHopType "VirtualAppliance" -NextHopIpAddress "10.0.2.4" +``` + +This command modifies the route named Route02, supplying a Service Tag as the AddressPrefix parameter. + + +#### New-AzRouteFilter + +#### SYNOPSIS +Creates a route filter. + +#### SYNTAX + +```powershell +New-AzRouteFilter -Name -ResourceGroupName -Location [-Rule ] + [-Tag ] [-Force] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzRouteFilter -Name "MyRouteFilter" -ResourceGroupName "MyResourceGroup" -Location "West US" +``` + +The command creates a new route filter. + + +#### Get-AzRouteFilter + +#### SYNOPSIS +Gets a route filter. + +#### SYNTAX + ++ NoExpand +```powershell +Get-AzRouteFilter [-Name ] [-ResourceGroupName ] [-DefaultProfile ] + [] +``` + ++ Expand +```powershell +Get-AzRouteFilter -Name -ResourceGroupName -ExpandResource + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzRouteFilter -Name "RouteFilter01" -ResourceGroupName "ResourceGroup01" +``` + +```output +Name : RouteFilter01 +ResourceGroupName : ResourceGroup01 +Location : westus +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ResourceGroup01/providers/Microsof + t.Network/routeFilters/RouteFilter01 +Etag : W/"00000000-0000-0000-0000-000000000000" +ProvisioningState : Succeeded +Tags : +Rules : [] +Peerings : [] +``` + +This command gets the route filter named RouteFilter01 that belongs to the resource group named ResourceGroup01. + ++ Example 2 +```powershell +Get-AzRouteFilter -Name "RouteFilter*" +``` + +```output +Name : RouteFilter01 +ResourceGroupName : ResourceGroup01 +Location : westus +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ResourceGroup01/providers/Microsof + t.Network/routeFilters/RouteFilter01 +Etag : W/"00000000-0000-0000-0000-000000000000" +ProvisioningState : Succeeded +Tags : +Rules : [] +Peerings : [] + +Name : RouteFilter02 +ResourceGroupName : ResourceGroup01 +Location : westus +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ResourceGroup01/providers/Microsof + t.Network/routeFilters/RouteFilter02 +Etag : W/"00000000-0000-0000-0000-000000000000" +ProvisioningState : Succeeded +Tags : +Rules : [] +Peerings : [] +``` + +This command gets all route filters that start with "RouteFilter". + + +#### Remove-AzRouteFilter + +#### SYNOPSIS +Removes a route filter. + +#### SYNTAX + +```powershell +Remove-AzRouteFilter -Name -ResourceGroupName [-Force] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzRouteFilter -Name "RouteFilter01" -ResourceGroupName "ResourceGroup01" +``` + +The command removes the route filter named RouteFilter01 in the resource group named ResourceGroup01. + + +#### Set-AzRouteFilter + +#### SYNOPSIS +Updates a route filter. + +#### SYNTAX + +```powershell +Set-AzRouteFilter -RouteFilter [-Force] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Set-AzRouteFilter -RouteFilter $rf +``` + +This command updates the route filter with settings in the $rf variable. + + +#### New-AzRouteFilterRuleConfig + +#### SYNOPSIS +Creates a route filter rule for a route filter. + +#### SYNTAX + +```powershell +New-AzRouteFilterRuleConfig [-Force] -Name -Access -RouteFilterRuleType + -CommunityList [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$rule1 = New-AzRouteFilterRuleConfig -Name "Rule01" -Access "Allow" -RouteFilterRuleType "Community" -CommunityList "12076:5040" +``` + +The command creates a new route filter rule and stores it in variable $rule1. + + +#### Add-AzRouteFilterRuleConfig + +#### SYNOPSIS +Adds a route filter rule to a route filter. + +#### SYNTAX + +```powershell +Add-AzRouteFilterRuleConfig -RouteFilter [-Force] -Name -Access + -RouteFilterRuleType -CommunityList [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Add a route filter rule to a route filter +```powershell +$RouteFilter = Get-AzRouteFilter -ResourceGroupName "ResourceGroup11" -Name "routefilter01" +Add-AzRouteFilterRuleConfig -Name "rule13" -Access Allow -RouteFilterRuleType Community -RouteFilter $RouteFilter +``` + +The first command gets a route filter named routefilter01 by using the Get-AzRouteFilter cmdlet. +The command stores the filter in the $RouteFilter variable. + + +#### Get-AzRouteFilterRuleConfig + +#### SYNOPSIS +Gets a route filter rule in a route filter. + +#### SYNTAX + +```powershell +Get-AzRouteFilterRuleConfig [-Name ] -RouteFilter + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$rf = Get-AzRouteFilter -Name "MyRouteFilter" -ResourceGroupName "MyResourceGroup" +Get-AzRouteFilterRuleConfig -RouteFilter $rf -Name "Rule01" +Get-AzRouteFilterRuleConfig -RouteFilter $rf +``` + +The first command gets the route filter named MyRouteFilter, and then stores it in the variable $rf. +The second command gets the route filter rule named Rule01 associated with that route filter. +The third command gets a list of route filter rules associated with that route filter. + + +#### Remove-AzRouteFilterRuleConfig + +#### SYNOPSIS +Removes a route filter rule from a route filter. + +#### SYNTAX + +```powershell +Remove-AzRouteFilterRuleConfig -Name -RouteFilter [-Force] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$rf = Get-AzRouteFilter -Name "RouteFilter01" -ResourceGroupName "ResourceGroup01" +Remove-AzRouteFilterRuleConfig -RouteFilter $rf -Name "Rule01" +``` + +The first command gets a route filter named RouteFilter01 that belongs to the resource group named ResourceGroup01 and stores it in the $rf variable. +The second command removes the route filter rule named Rule01 from the route filter stored in $rf. + + +#### Set-AzRouteFilterRuleConfig + +#### SYNOPSIS +Modifies the route filter rule of a route filter. + +#### SYNTAX + +```powershell +Set-AzRouteFilterRuleConfig -RouteFilter [-Force] -Name -Access + -RouteFilterRuleType -CommunityList [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$rf = Get-AzRouteFilter -Name "RouteFilter01" -ResourceGroupName "ResourceGroup01" +$rf = Set-AzRouteFilterRuleConfig -RouteFilter $rf -Name "Rule01" -Access Deny -RouteFilterRuleType Community -CommunityList "12076:5010","12076:5040" +Set-AzRouteFilter -RouteFilter $rf +``` + +The first command gets the route filter named RouteFilter01 and stores it in the $rf variable. +The second command modifies the route filter rule named Rule01 and stores updated route filter in the $rf variable. +The third command saves updated route filter. + + +#### New-AzRouteMap + +#### SYNOPSIS +Create a route map to a VirtualHub. + +#### SYNTAX + ++ ByVirtualHubName (Default) +```powershell +New-AzRouteMap [-ResourceGroupName ] [-VirtualHubName ] [-Name ] + [-RouteMapRule ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVirtualHubObject +```powershell +New-AzRouteMap [-VirtualHubObject ] [-Name ] [-RouteMapRule ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVirtualHubResourceId +```powershell +New-AzRouteMap [-VirtualHubResourceId ] [-Name ] [-RouteMapRule ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 Create route map + +```powershell +New-AzVirtualWan -ResourceGroupName "testRg" -Name "testWan" -Location "westcentralus" -VirtualWANType "Standard" -AllowVnetToVnetTraffic -AllowBranchToBranchTraffic +$virtualWan = Get-AzVirtualWan -ResourceGroupName "testRg" -Name "testWan" + +New-AzVirtualHub -ResourceGroupName "testRg" -Name "testHub" -Location "westcentralus" -AddressPrefix "10.0.0.0/16" -VirtualWan $virtualWan +$virtualHub = Get-AzVirtualHub -ResourceGroupName "testRg" -Name "testHub" + +#### creating new route map rules and a new route map resource and new routing configuration +$routeMapMatchCriterion1 = New-AzRouteMapRuleCriterion -MatchCondition "Contains" -RoutePrefix @("10.0.0.0/16") +$routeMapActionParameter1 = New-AzRouteMapRuleActionParameter -AsPath @("12345") +$routeMapAction1 = New-AzRouteMapRuleAction -Type "Add" -Parameter @($routeMapActionParameter1) +$routeMapRule1 = New-AzRouteMapRule -Name "rule1" -MatchCriteria @($routeMapMatchCriterion1) -RouteMapRuleAction @($routeMapAction1) -NextStepIfMatched "Continue" + +$routeMapMatchCriterion2 = New-AzRouteMapRuleCriterion -MatchCondition "Equals" -AsPath @("12345") +$routeMapAction2 = New-AzRouteMapRuleAction -Type "Drop" +$routeMapRule2 = New-AzRouteMapRule -Name "rule2" -MatchCriteria @($routeMapMatchCriterion2) -RouteMapRuleAction @($routeMapAction2) -NextStepIfMatched "Terminate" + +New-AzRouteMap -ResourceGroupName "testRg" -VirtualHubName "testHub" -Name "testRouteMap" -RouteMapRule @($routeMapRule1, $routeMapRule2) +``` + +```output +Name : testRouteMap +Id : /subscriptions/62364504-2406-418e-971c-05822ff72fad/resourceGroups/routemap0419/providers/Microsoft.Network/virtualHubs/westcentralus_hub1/routeMaps/testRouteMap +ProvisioningState : Succeeded +RouteMapRules : [ + { + "Name": "rule1", + "MatchCriteria": [ + { + "MatchCondition": "Contains", + "RoutePrefix": [ + "10.0.0.0/16" + ], + "Community": [], + "AsPath": [] + } + ], + "Actions": [ + { + "Type": "Add", + "Parameters": [ + { + "RoutePrefix": [], + "Community": [], + "AsPath": [ + "12345" + ] + } + ] + } + ], + "NextStepIfMatched": "Continue" + }, + { + "Name": "rule2", + "MatchCriteria": [ + { + "MatchCondition": "Equals", + "RoutePrefix": [], + "Community": [], + "AsPath": [ + "12345" + ] + } + ], + "Actions": [ + { + "Type": "Drop", + "Parameters": [] + } + ], + "NextStepIfMatched": "Terminate" + } + ] +AssociatedInboundConnections : [] +AssociatedOutboundConnections : [] +``` + ++ Example 2 Apply route map to connections + +```powershell +$testRouteMap = Get-AzRouteMap -ResourceGroupName "testRg" -VirtualHubName "testHub" -Name "testRouteMap" + +$rt1 = Get-AzVHubRouteTable -ResourceGroupName "testRg" -VirtualHubName "testHub" -Name "defaultRouteTable" +$rt2 = Get-AzVHubRouteTable -ResourceGroupName "testRg" -VirtualHubName "testHub" -Name "noneRouteTable" +$testRoutingConfiguration =New-AzRoutingConfiguration -AssociatedRouteTable $rt1.Id -Label @("testLabel") -Id @($rt2.Id) -InboundRouteMap @($testRouteMap.Id) + +#### creating virtual network and a virtual hub vnet connection resource +$frontendSubnet = New-AzVirtualNetworkSubnetConfig -Name frontendSubnet -AddressPrefix "10.2.1.0/24" +$backendSubnet = New-AzVirtualNetworkSubnetConfig -Name backendSubnet -AddressPrefix "10.2.2.0/24" +$remoteVirtualNetwork = New-AzVirtualNetwork -Name "MyVirtualNetwork" -ResourceGroupName "testRG" -Location "westcentralus" -AddressPrefix "10.2.0.0/16" -Subnet $frontendSubnet,$backendSubnet +New-AzVirtualHubVnetConnection -ResourceGroupName "testRG" -VirtualHubName "testHub" -Name "testvnetconnection" -RemoteVirtualNetwork $remoteVirtualNetwork -RoutingConfiguration $testRoutingConfiguration +``` + +```output +Name : testvnetconnection +Id : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub/hubVirtualNetworkConnections/testvnetconnection +RemoteVirtualNetwork : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualNetworks/MyVirtualNetwork +EnableInternetSecurity : False +ProvisioningState : Succeeded +RoutingConfiguration : { + "AssociatedRouteTable": { + "Id": "/subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub/hubRouteTables/defaultRouteTable" + }, + "PropagatedRouteTables": { + "Labels": [], + "Ids": [ + { + "Id": "/subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub/hubRouteTables/defaultRouteTable" + } + ] + }, + "VnetRoutes": { + "StaticRoutes": [] + }, + "InboundRouteMap": { + "Id": "/subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub/routeMaps/testRouteMap" + } + } +``` + + +#### Get-AzRouteMap + +#### SYNOPSIS +Retrieves a route map of a VirtualHub. + +#### SYNTAX + ++ ByVirtualHubName (Default) +```powershell +Get-AzRouteMap [-ResourceGroupName ] [-VirtualHubName ] [-Name ] + [-DefaultProfile ] [] +``` + ++ ByVirtualHubObject +```powershell +Get-AzRouteMap [-VirtualHubObject ] [-Name ] [-DefaultProfile ] + [] +``` + ++ ByVirtualHubResourceId +```powershell +Get-AzRouteMap [-VirtualHubResourceId ] [-Name ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +New-AzVirtualWan -ResourceGroupName "testRg" -Name "testWan" -Location "westcentralus" -VirtualWANType "Standard" -AllowVnetToVnetTraffic -AllowBranchToBranchTraffic +$virtualWan = Get-AzVirtualWan -ResourceGroupName "testRg" -Name "testWan" + +New-AzVirtualHub -ResourceGroupName "testRg" -Name "testHub" -Location "westcentralus" -AddressPrefix "10.0.0.0/16" -VirtualWan $virtualWan +$virtualHub = Get-AzVirtualHub -ResourceGroupName "testRg" -Name "testHub" + +#### creating new route map rules and a new route map resource and new routing configuration +$routeMapMatchCriterion1 = New-AzRouteMapRuleCriterion -MatchCondition "Contains" -RoutePrefix @("10.0.0.0/16") +$routeMapActionParameter1 = New-AzRouteMapRuleActionParameter -AsPath @("12345") +$routeMapAction1 = New-AzRouteMapRuleAction -Type "Add" -Parameter @($routeMapActionParameter1) +$routeMapRule1 = New-AzRouteMapRule -Name "rule1" -MatchCriteria @($routeMapMatchCriterion1) -RouteMapRuleAction @($routeMapAction1) -NextStepIfMatched "Continue" + +$routeMapMatchCriterion2 = New-AzRouteMapRuleCriterion -MatchCondition "Equals" -AsPath @("12345") +$routeMapAction2 = New-AzRouteMapRuleAction -Type "Drop" +$routeMapRule2 = New-AzRouteMapRule -Name "rule2" -MatchCriteria @($routeMapMatchCriterion2) -RouteMapRuleAction @($routeMapAction2) -NextStepIfMatched "Terminate" + +New-AzRouteMap -ResourceGroupName "testRg" -VirtualHubName "testHub" -Name "testRouteMap" -RouteMapRule @($routeMapRule1, $routeMapRule2) +Get-AzRouteMap -ResourceGroupName "testRg" -VirtualHubName "testHub" -Name "testRouteMap" +``` + +```output +Name : testRouteMap +Id : /subscriptions/62364504-2406-418e-971c-05822ff72fad/resourceGroups/routemap0419/providers/Microsoft.Network/virtualHubs/westcentralus_hub1/routeMaps/testRouteMap +ProvisioningState : Succeeded +RouteMapRules : [ + { + "Name": "rule1", + "MatchCriteria": [ + { + "MatchCondition": "Contains", + "RoutePrefix": [ + "10.0.0.0/16" + ], + "Community": [], + "AsPath": [] + } + ], + "Actions": [ + { + "Type": "Add", + "Parameters": [ + { + "RoutePrefix": [], + "Community": [], + "AsPath": [ + "12345" + ] + } + ] + } + ], + "NextStepIfMatched": "Continue" + }, + { + "Name": "rule2", + "MatchCriteria": [ + { + "MatchCondition": "Equals", + "RoutePrefix": [], + "Community": [], + "AsPath": [ + "12345" + ] + } + ], + "Actions": [ + { + "Type": "Drop", + "Parameters": [] + } + ], + "NextStepIfMatched": "Terminate" + } + ] +AssociatedInboundConnections : [] +AssociatedOutboundConnections : [] +``` + + +#### Remove-AzRouteMap + +#### SYNOPSIS +Remove a route map from a VirtualHub. + +#### SYNTAX + ++ ByRouteMapName (Default) +```powershell +Remove-AzRouteMap [-ResourceGroupName ] [-VirtualHubName ] [-Name ] [-AsJob] [-Force] + [-PassThru] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + ++ ByVirtualHubObject +```powershell +Remove-AzRouteMap [-Name ] [-VirtualHubObject ] [-AsJob] [-Force] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByRouteMapObject +```powershell +Remove-AzRouteMap [-InputObject ] [-AsJob] [-Force] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByRouteMapResourceId +```powershell +Remove-AzRouteMap [-ResourceId ] [-AsJob] [-Force] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +New-AzVirtualWan -ResourceGroupName "testRg" -Name "testWan" -Location "westcentralus" -VirtualWANType "Standard" -AllowVnetToVnetTraffic -AllowBranchToBranchTraffic +$virtualWan = Get-AzVirtualWan -ResourceGroupName "testRg" -Name "testWan" + +New-AzVirtualHub -ResourceGroupName "testRg" -Name "testHub" -Location "westcentralus" -AddressPrefix "10.0.0.0/16" -VirtualWan $virtualWan +$virtualHub = Get-AzVirtualHub -ResourceGroupName "testRg" -Name "testHub" + +#### creating new route map rules and a new route map resource and new routing configuration +$routeMapMatchCriterion1 = New-AzRouteMapRuleCriterion -MatchCondition "Contains" -RoutePrefix @("10.0.0.0/16") +$routeMapActionParameter1 = New-AzRouteMapRuleActionParameter -AsPath @("12345") +$routeMapAction1 = New-AzRouteMapRuleAction -Type "Add" -Parameter @($routeMapActionParameter1) +$routeMapRule1 = New-AzRouteMapRule -Name "rule1" -MatchCriteria @($routeMapMatchCriterion1) -RouteMapRuleAction @($routeMapAction1) -NextStepIfMatched "Continue" + +$routeMapMatchCriterion2 = New-AzRouteMapRuleCriterion -MatchCondition "Equals" -AsPath @("12345") +$routeMapAction2 = New-AzRouteMapRuleAction -Type "Drop" +$routeMapRule2 = New-AzRouteMapRule -Name "rule2" -MatchCriteria @($routeMapMatchCriterion2) -RouteMapRuleAction @($routeMapAction2) -NextStepIfMatched "Terminate" + +New-AzRouteMap -ResourceGroupName "testRg" -VirtualHubName "testHub" -Name "testRouteMap" -RouteMapRule @($routeMapRule1, $routeMapRule2) +$routeMap1 = Get-AzRouteMap -ResourceGroupName "testRg" -VirtualHubName "testHub" -Name "testRouteMap" +Remove-AzRouteMap -InputObject $routeMap1 +``` + + +#### Update-AzRouteMap + +#### SYNOPSIS +Update a route map of a VirtualHub. + +#### SYNTAX + ++ ByRouteMapName (Default) +```powershell +Update-AzRouteMap [-ResourceGroupName ] [-VirtualHubName ] [-Name ] + [-RouteMapRule ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVirtualHubObject +```powershell +Update-AzRouteMap [-Name ] [-VirtualHubObject ] [-RouteMapRule ] + [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByRouteMapObject +```powershell +Update-AzRouteMap [-InputObject ] [-RouteMapRule ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByRouteMapResourceId +```powershell +Update-AzRouteMap [-ResourceId ] [-RouteMapRule ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +New-AzVirtualWan -ResourceGroupName "testRg" -Name "testWan" -Location "westcentralus" -VirtualWANType "Standard" -AllowVnetToVnetTraffic -AllowBranchToBranchTraffic +$virtualWan = Get-AzVirtualWan -ResourceGroupName "testRg" -Name "testWan" + +New-AzVirtualHub -ResourceGroupName "testRg" -Name "testHub" -Location "westcentralus" -AddressPrefix "10.0.0.0/16" -VirtualWan $virtualWan +$virtualHub = Get-AzVirtualHub -ResourceGroupName "testRg" -Name "testHub" + +#### creating new route map rules and a new route map resource and new routing configuration +$routeMapMatchCriterion1 = New-AzRouteMapRuleCriterion -MatchCondition "Contains" -RoutePrefix @("10.0.0.0/16") +$routeMapActionParameter1 = New-AzRouteMapRuleActionParameter -AsPath @("12345") +$routeMapAction1 = New-AzRouteMapRuleAction -Type "Add" -Parameter @($routeMapActionParameter1) +$routeMapRule1 = New-AzRouteMapRule -Name "rule1" -MatchCriteria @($routeMapMatchCriterion1) -RouteMapRuleAction @($routeMapAction1) -NextStepIfMatched "Continue" + +$routeMapMatchCriterion2 = New-AzRouteMapRuleCriterion -MatchCondition "Equals" -AsPath @("12345") +$routeMapAction2 = New-AzRouteMapRuleAction -Type "Drop" +$routeMapRule2 = New-AzRouteMapRule -Name "rule2" -MatchCriteria @($routeMapMatchCriterion2) -RouteMapRuleAction @($routeMapAction2) -NextStepIfMatched "Terminate" + +New-AzRouteMap -ResourceGroupName "testRg" -VirtualHubName "testHub" -Name "testRouteMap" -RouteMapRule @($routeMapRule1, $routeMapRule2) +Update-AzRouteMap -ResourceGroupName "testRg" -VirtualHubName "testHub" -Name "testRouteMap" -RouteMapRule @($routeMapRule2) +``` + +```output +Name : testRouteMap +Id : /subscriptions/62364504-2406-418e-971c-05822ff72fad/resourceGroups/routemap0419/providers/Microsoft.Network/virtualHubs/westcentralus_hub1/routeMaps/tes + tRouteMap +ProvisioningState : Succeeded +RouteMapRules : [ + { + "MatchCriteria": [ + { + "MatchCondition": "Equals", + "RoutePrefix": [], + "Community": [], + "AsPath": [ + "12345" + ] + } + ], + "Actions": [ + { + "Type": "Drop", + "Parameters": [] + } + ], + "NextStepIfMatched": "Terminate", + "Name": "rule2" + } + ] +AssociatedInboundConnections : [] +AssociatedOutboundConnections : [] +``` + + +#### New-AzRouteMapRule + +#### SYNOPSIS +Create a route map rule. + +#### SYNTAX + +```powershell +New-AzRouteMapRule [-MatchCriteria ] -RouteMapRuleAction + -NextStepIfMatched -Name [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +#### creating new route map rules and a new route map resource +$routeMapMatchCriterion1 = New-AzRouteMapRuleCriterion -MatchCondition "Contains" -RoutePrefix @("10.0.0.0/16") +$routeMapRuleActionParameter1 = New-AzRouteMapRuleActionParameter -AsPath @("12345") +$routeMapRuleAction1 = New-AzRouteMapRuleAction -Type "Add" -Parameter @($routeMapRuleActionParameter1) +New-AzRouteMapRule -Name "rule1" -MatchCriteria @($routeMapMatchCriterion1) -RouteMapRuleAction @($routeMapRuleAction1) -NextStepIfMatched "Continue" +``` + +```output +MatchCriteria : {} +Actions : {} +NextStepIfMatched : Continue +MatchCriteriaText : [ + { + "MatchCondition": "Contains", + "RoutePrefix": [ + "10.0.0.0/16" + ] + } + ] +ActionsText : [ + { + "Type": "Add", + "Parameters": [ + { + "AsPath": [ + "12345" + ] + } + ] + } + ] +Name : rule1 +Etag : +Id : +``` + + +#### New-AzRouteMapRuleAction + +#### SYNOPSIS +Create a route map rule action. + +#### SYNTAX + +```powershell +New-AzRouteMapRuleAction -Type [-Parameter ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +#### creating new route map rule action +$routeMapRuleActionParameter1 = New-AzRouteMapRuleActionParameter -AsPath @("12345") +New-AzRouteMapRuleAction -Type "Add" -Parameter @($routeMapRuleActionParameter1) +``` + +```output +Type : Add +Parameters : {} +ParametersText : [ + { + "AsPath": [ + "12345" + ] + } + ] +Name : +Etag : +Id : +``` + + +#### New-AzRouteMapRuleActionParameter + +#### SYNOPSIS +Create a route map rule action parameter for the rule action. + +#### SYNTAX + +```powershell +New-AzRouteMapRuleActionParameter [-RoutePrefix ] [-Community ] [-AsPath ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +#### creating new route map rule action +New-AzRouteMapRuleActionParameter -AsPath @("12345") +``` + +```output +RoutePrefix : +Community : +AsPath : {12345} +Name : +Etag : +Id : +``` + + +#### New-AzRouteMapRuleCriterion + +#### SYNOPSIS +Create a route map rule criterion. + +#### SYNTAX + +```powershell +New-AzRouteMapRuleCriterion -MatchCondition [-RoutePrefix ] [-Community ] + [-AsPath ] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +#### creating new route map rule action +New-AzRouteMapRuleCriterion -MatchCondition "Contains" -RoutePrefix @("10.0.0.0/16") +``` + +```output +MatchCondition : Contains +RoutePrefix : {10.0.0.0/16} +Community : +AsPath : +Name : +Etag : +Id : +``` + + +#### New-AzRouteServer + +#### SYNOPSIS +Creates an Azure RouteServer. + +#### SYNTAX + +```powershell +New-AzRouteServer -ResourceGroupName -RouteServerName -HostedSubnet + [-PublicIpAddress ] -Location [-Tag ] [-Force] [-AsJob] + [-HubRoutingPreference ] [-AllowBranchToBranchTraffic] + [-VirtualRouterAutoScaleConfiguration ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzResourceGroup -Name myResourceGroup -Location eastus + +$subnet = New-AzVirtualNetworkSubnetConfig -Name RouteServerSubnet -AddressPrefix 10.0.0.0/24 +$vnet = New-AzVirtualNetwork -Name myVNet -ResourceGroupName myResourceGroup -Location eastus -AddressPrefix 10.0.0.0/16 -Subnet $subnet +$subnetId = (Get-AzVirtualNetworkSubnetConfig -Name RouteServerSubnet -VirtualNetwork $vnet).Id +$publicIpAddress = New-AzPublicIpAddress -Name myRouteServerIP -ResourceGroupName myResourceGroup -AllocationMethod Static -Location eastus -Sku Standard -Tier Regional + +New-AzRouteServer -RouteServerName myRouteServer -ResourceGroupName myResourceGroup -Location eastus -HostedSubnet $subnetId -PublicIpAddress $publicIpAddress +``` + +The above will create a resource group "myResourceGroup", a Virtual Network with a RouteServerSubnet, a Public IP Address, and a Route Server in East US in that resource group in Azure. The Route Server will be created with the default settings. + ++ Example 2 +```powershell +New-AzResourceGroup -Name myResourceGroup -Location eastus + +$subnet = New-AzVirtualNetworkSubnetConfig -Name RouteServerSubnet -AddressPrefix 10.0.0.0/24 +$vnet = New-AzVirtualNetwork -Name myVNet -ResourceGroupName myResourceGroup -Location eastus -AddressPrefix 10.0.0.0/16 -Subnet $subnet +$subnetId = (Get-AzVirtualNetworkSubnetConfig -Name RouteServerSubnet -VirtualNetwork $vnet).Id +$publicIpAddress = New-AzPublicIpAddress -Name myRouteServerIP -ResourceGroupName myResourceGroup -AllocationMethod Static -Location eastus -Sku Standard -Tier Regional + +$autoscale = New-AzVirtualRouterAutoScaleConfiguration -MinCapacity 3 +New-AzRouteServer -RouteServerName myRouteServer -ResourceGroupName myResourceGroup -Location eastus -HostedSubnet $subnetId -PublicIpAddress $publicIpAddress -VirtualRouterAutoScaleConfiguration $autoscale +``` + +The above will create a resource group "myResourceGroup", a Virtual Network with a RouteServerSubnet, a Public IP Address, and a Route Server in East US in that resource group in Azure. + +This example is similar to Example 2, but the Route Server will be created with a minCapacity of 3 meaning that it will have 3 Routing Infrastructure Units. + + +#### Get-AzRouteServer + +#### SYNOPSIS +Get an Azure RouteServer + +#### SYNTAX + ++ RouteServerSubscriptionIdParameterSet (Default) +```powershell +Get-AzRouteServer [-DefaultProfile ] + [] +``` + ++ RouteServerNameParameterSet +```powershell +Get-AzRouteServer -ResourceGroupName [-RouteServerName ] + [-DefaultProfile ] [] +``` + ++ RouteServerResourceIdParameterSet +```powershell +Get-AzRouteServer -ResourceId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzRouteServer -ResourceGroupName routeServerRG -RouteServerName routeServer +``` + ++ Example 2 +```powershell +$routeServerId = '/subscriptions/8c992d64-fce9-426d-b278-85642dfeab03/resourceGroups/routeServerRG/providers/Microsoft.Network/virtualHubs/routeServer' +Get-AzRouteServer -ResourceId $routeServerId +``` + + +#### Remove-AzRouteServer + +#### SYNOPSIS +Deletes an Azure RouteServer. + +#### SYNTAX + ++ RouteServerNameParameterSet (Default) +```powershell +Remove-AzRouteServer -ResourceGroupName -RouteServerName [-Force] [-AsJob] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ RouteServerInputObjectParameterSet +```powershell +Remove-AzRouteServer -InputObject [-Force] [-AsJob] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ RouteServerResourceIdParameterSet +```powershell +Remove-AzRouteServer -ResourceId [-Force] [-AsJob] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzRouteServer -ResourceGroupName routeServerRG -RouteServerName routeServer +``` + ++ Example 2 +```powershell +$routeServerId = '/subscriptions/8c992d64-fce9-426d-b278-85642dfeab03/resourceGroups/routeServerRG/providers/Microsoft.Network/virtualHubs/routeServer' +Remove-AzRouteServer -ResourceId $routeServerId +``` + ++ Example 3 +```powershell +$routeServer = Get-AzRouteServer -ResourceGroupName routeServerRG -RouteServerName routeServer +Remove-AzRouteServer -InputObject $routeServer +``` + + +#### Update-AzRouteServer + +#### SYNOPSIS +Update an Azure RouteServer. + +#### SYNTAX + ++ RouteServerNameParameterSet (Default) +```powershell +Update-AzRouteServer -ResourceGroupName -RouteServerName + [-AllowBranchToBranchTraffic ] [-HubRoutingPreference ] + [-VirtualRouterAutoScaleConfiguration ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ RouteServerResourceIdParameterSet +```powershell +Update-AzRouteServer [-AllowBranchToBranchTraffic ] -ResourceId + [-HubRoutingPreference ] + [-VirtualRouterAutoScaleConfiguration ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Update-AzRouteServer -ResourceGroupName $rgname -RouteServerName $routeServerName -AllowBranchToBranchTraffic 1 +``` + +To enable branch to branch traffic for route server. + ++ Example 2 +```powershell +Update-AzRouteServer -ResourceGroupName $rgname -RouteServerName $routeServerName -AllowBranchToBranchTraffic 0 +``` + +To disable branch to branch traffic for route server. + ++ Example 3 +```powershell +Update-AzRouteServer -ResourceGroupName $rgname -RouteServerName $routeServerName -HubRoutingPreference "AsPath" +``` + +To change routing preference for route server. + ++ Example 4 +```powershell +$autoscale = New-AzVirtualRouterAutoScaleConfiguration -MinCapacity 3 +Update-AzRouteServer -ResourceGroupName $rgname -RouteServerName $routeServerName -VirtualRouterAutoScaleConfiguration $autoscale +``` + +To update the Routing Infrastructure Units to 3. + + +#### Add-AzRouteServerPeer + +#### SYNOPSIS +Add a peer to an Azure RouteServer + +#### SYNTAX + ++ RouteServerNPeerNameParameterSet (Default) +```powershell +Add-AzRouteServerPeer -ResourceGroupName -PeerName -PeerIp -PeerAsn + [-Force] [-AsJob] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + ++ RouteServerNameParameterSet +```powershell +Add-AzRouteServerPeer -ResourceGroupName -PeerName -PeerIp -PeerAsn + -RouteServerName [-Force] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Add-AzRouteServerPeer -ResourceGroupName $rgname -RouteServerName $routeServerName -PeerName $peerName -PeerIp "192.168.1.5" -PeerAsn "20000" +``` + + +#### Get-AzRouteServerPeer + +#### SYNOPSIS +Gets a RouteServer peer in an Azure RouteServer + +#### SYNTAX + ++ RouteServerNPeerNameParameterSet (Default) +```powershell +Get-AzRouteServerPeer -ResourceGroupName -PeerName -RouteServerName + [-DefaultProfile ] [] +``` + ++ RouteServerNPeerResourceIdParameterSet +```powershell +Get-AzRouteServerPeer -ResourceId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzRouteServerPeer -ResourceGroupName routeServerRG -RouteServerName routeServer -PeerName peer +``` + ++ Example 2 +```powershell +$routeServerPeerId = '/subscriptions/8c992d64-fce9-426d-b278-85642dfeab03/resourceGroups/routeServerRG/providers/Microsoft.Network/virtualHubs/routeServer/bgpConnections/peer' +Get-AzRouteServerPeer -ResourceId $routeServerPeerId +``` + + +#### Remove-AzRouteServerPeer + +#### SYNOPSIS +Removes a Peer from an Azure RouteServer + +#### SYNTAX + ++ RouteServerNPeerNameParameterSet (Default) +```powershell +Remove-AzRouteServerPeer -ResourceGroupName -PeerName -RouteServerName [-Force] + [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ RouteServerNPeerInputObjectParameterSet +```powershell +Remove-AzRouteServerPeer -InputObject [-Force] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ RouteServerNPeerResourceIdParameterSet +```powershell +Remove-AzRouteServerPeer -ResourceId [-Force] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzRouteServerPeer -PeerName peer -RouteServerName routeServer -ResourceGroupName routeServerRG +``` + ++ Example 2 +```powershell +$routeServerPeerId = '/subscriptions/8c992d64-fce9-426d-b278-85642dfeab03/resourceGroups/routeServerRG/providers/Microsoft.Network/virtualHubs/routeServer/bgpConnections/peer' +Remove-AzRouteServerPeer -ResourceId $RouteServerPeerId +``` + ++ Example 3 +```powershell +$routeServerPeer = Get-AzRouteServerPeer -ResourceGroupName routeServerRG -RouteServerName routeServer -PeerName peer +Remove-AzRouteServerPeer -InputObject $RouteServerPeer +``` + + +#### Update-AzRouteServerPeer + +#### SYNOPSIS +Update a Peer in an Azure RouteServer + +#### SYNTAX + ++ RouteServerNameParameterSet (Default) +```powershell +Update-AzRouteServerPeer -ResourceGroupName -RouteServerName [-Force] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ RouteServerNPeerNameParameterSet +```powershell +Update-AzRouteServerPeer -ResourceGroupName -PeerName -PeerIp -PeerAsn + -RouteServerName [-Force] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ RouteServerNPeerInputObjectParameterSet +```powershell +Update-AzRouteServerPeer -ResourceGroupName -RouteServerName -InputObject + [-Force] [-AsJob] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + ++ RouteServerNPeerResourceIdParameterSet +```powershell +Update-AzRouteServerPeer -ResourceGroupName -RouteServerName -ResourceId [-Force] + [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Update-AzRouteServerPeer -PeerName csr -PeerIp 10.0.1.5 -PeerAsn 63000 -RouteServerName routeServer -ResourceGroupName routeServerRG +``` + ++ Example 2 +```powershell +$routeServerPeerId = '/subscriptions/8c992d64-fce9-426d-b278-85642dfeab03/resourceGroups/routeServerRG/providers/Microsoft.Network/virtualHubs/routeServer/bgpConnections/csr' +Update-AzRouteServerPeer -ResourceId $routeServerPeerId -RouteServerName routeServer -ResourceGroupName routeServerRG +``` + ++ Example 3 +```powershell +$routeServerPeer = Get-AzRouteServerPeer -ResourceGroupName routeServer -RouteServerName routeServer -PeerName csr +Update-AzRouteServerPeer -ResourceGroupName routeServerRG -InputObject $routeServerPeer -RouteServerName routeServer +``` + + +#### Get-AzRouteServerPeerAdvertisedRoute + +#### SYNOPSIS +List routes being advertised by specific route server peer + +#### SYNTAX + ++ RouteServerNPeerNameParameterSet (Default) +```powershell +Get-AzRouteServerPeerAdvertisedRoute -ResourceGroupName -RouteServerName -PeerName + [-AsJob] [-DefaultProfile ] [] +``` + ++ RouteServerNPeerInputObjectParameterSet +```powershell +Get-AzRouteServerPeerAdvertisedRoute -InputObject [-AsJob] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzRouteServerPeerAdvertisedRoute -ResourceGroupName $resourceGroupName -RouteServerName $routeServerName -PeerName $peerName +``` + ++ Example 2 +```powershell +$routeServerPeer = Get-AzRouteServerPeer -ResourceGroupName $resourceGroupName -RouteServerName $routeServerName -PeerName $peerName +Get-AzRouteServerPeerAdvertisedRoute -InputObject $routeServerPeer +``` + + +#### Get-AzRouteServerPeerLearnedRoute + +#### SYNOPSIS +List routes learned by a specific route server peer + +#### SYNTAX + ++ RouteServerNPeerNameParameterSet (Default) +```powershell +Get-AzRouteServerPeerLearnedRoute -ResourceGroupName -RouteServerName -PeerName + [-AsJob] [-DefaultProfile ] [] +``` + ++ RouteServerNPeerInputObjectParameterSet +```powershell +Get-AzRouteServerPeerLearnedRoute -InputObject [-AsJob] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzRouteServerPeerLearnedRoute -ResourceGroupName $resourceGroupName -RouteServerName $routeServerName -PeerName $peerName +``` + ++ Example 2 +```powershell +$routerServerPeer = Get-AzRouteServerPeer -ResourceGroupName $resourceGroupName -RouteServerName $routeServerName -PeerName $peerName +Get-AzRouteServerPeerLearnedRoute -InputObject $routerServerPeer +``` + + +#### New-AzRouteTable + +#### SYNOPSIS +Creates a route table. + +#### SYNTAX + +```powershell +New-AzRouteTable -ResourceGroupName -Name [-DisableBgpRoutePropagation] -Location + [-Tag ] [-Route ] [-Force] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Create a route table that contains a route +```powershell +$Route = New-AzRouteConfig -Name "Route07" -AddressPrefix 10.1.0.0/16 -NextHopType "VnetLocal" +New-AzRouteTable -Name "RouteTable01" -ResourceGroupName "ResourceGroup11" -Location "EASTUS" -Route $Route +``` + +```output +Name : routetable01 +ResourceGroupName : ResourceGroup11 +Location : eastus +Id : /subscriptions/xxxx-xxxx-xxxx-xxxx/resourceGroups/ResourceGroup11/providers/Microsoft.Networ + k/routeTables/myroutetable +Etag : W/"db5f4e12-3f34-465b-92dd-0ab3bf6fc274" +ProvisioningState : Succeeded +Tags : +Routes : [ + { + "Name": "route07", + "Etag": "W/\"db5f4e12-3f34-465b-92dd-0ab3bf6fc274\"", + "Id": "/subscriptions/xxxx-xxxx-xxxx-xxxx/resourceGroups/ResourceGroup11/providers/Micro + soft.Network/routeTables/routetable01/routes/route07", + "AddressPrefix": "10.1.0.0/16", + "NextHopType": "VnetLocal", + "NextHopIpAddress": null, + "ProvisioningState": "Succeeded" + } + ] +Subnets : [] +``` + +The first command creates a route named Route07 by using the New-AzRouteConfig cmdlet, and +then stores it in the $Route variable. This route forwards packets to the local virtual network. +The second command creates a route table named RouteTable01, and adds the route stored in $Route to +the new table. The command specifies the resource group to which the table belongs and the location +for the table. + + +#### Get-AzRouteTable + +#### SYNOPSIS +Gets route tables. + +#### SYNTAX + ++ NoExpand (Default) +```powershell +Get-AzRouteTable [-ResourceGroupName ] [-Name ] [-DefaultProfile ] + [] +``` + ++ Expand +```powershell +Get-AzRouteTable -ResourceGroupName -Name -ExpandResource + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Get a route table +```powershell +Get-AzRouteTable -ResourceGroupName "ResourceGroup11" -Name "RouteTable01" +``` + +```output +Name : routetable01 +ResourceGroupName : ResourceGroup11 +Location : eastus +Id : /subscriptions/xxxx-xxxx-xxxx-xxxx/resourceGroups/ResourceGroup11/providers/Microsoft.Networ + k/routeTables/routetable01 +Etag : W/"db5f4e12-3f34-465b-92dd-0ab3bf6fc274" +ProvisioningState : Succeeded +Tags : +Routes : [ + { + "Name": "route07", + "Etag": "W/\"db5f4e12-3f34-465b-92dd-0ab3bf6fc274\"", + "Id": "/subscriptions/xxxx-xxxx-xxxx-xxxx/resourceGroups/ResourceGroup11/providers/Micro + soft.Network/routeTables/routetable01/routes/route07", + "AddressPrefix": "10.1.0.0/16", + "NextHopType": "VnetLocal", + "NextHopIpAddress": null, + "ProvisioningState": "Succeeded" + } + ] +Subnets : [] +``` + +This command gets the route table named RouteTable01 in the resource group named ResourceGroup11. + ++ Example 2: List route tables using filtering +```powershell +Get-AzRouteTable -Name RouteTable* +``` + +```output +Name : routetable01 +ResourceGroupName : ResourceGroup11 +Location : eastus +Id : /subscriptions/xxxx-xxxx-xxxx-xxxx/resourceGroups/ResourceGroup11/providers/Microsoft.Networ + k/routeTables/routetable01 +Etag : W/"db5f4e12-3f34-465b-92dd-0ab3bf6fc274" +ProvisioningState : Succeeded +Tags : +Routes : [ + { + "Name": "route07", + "Etag": "W/\"db5f4e12-3f34-465b-92dd-0ab3bf6fc274\"", + "Id": "/subscriptions/xxxx-xxxx-xxxx-xxxx/resourceGroups/ResourceGroup11/providers/Micro + soft.Network/routeTables/routetable01/routes/route07", + "AddressPrefix": "10.1.0.0/16", + "NextHopType": "VnetLocal", + "NextHopIpAddress": null, + "ProvisioningState": "Succeeded" + } + ] +Subnets : [] + +Name : routetable02 +ResourceGroupName : ResourceGroup11 +Location : eastus +Id : /subscriptions/xxxx-xxxx-xxxx-xxxx/resourceGroups/ResourceGroup11/providers/Microsoft.Networ + k/routeTables/routetable02 +Etag : W/"db5f4e12-3f34-465b-92dd-0ab3bf6fc274" +ProvisioningState : Succeeded +Tags : +Routes : [ + { + "Name": "route07", + "Etag": "W/\"db5f4e12-3f34-465b-92dd-0ab3bf6fc274\"", + "Id": "/subscriptions/xxxx-xxxx-xxxx-xxxx/resourceGroups/ResourceGroup11/providers/Micro + soft.Network/routeTables/routetable02/routes/route07", + "AddressPrefix": "10.1.0.0/16", + "NextHopType": "VnetLocal", + "NextHopIpAddress": null, + "ProvisioningState": "Succeeded" + } + ] +Subnets : [] +``` + +This command gets all route tables whose name starts with "RouteTable" + + +#### Remove-AzRouteTable + +#### SYNOPSIS +Removes a route table. + +#### SYNTAX + +```powershell +Remove-AzRouteTable -ResourceGroupName -Name [-Force] [-AsJob] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Remove a route table +```powershell +Remove-AzRouteTable -ResourceGroupName "ResourceGroup11" -Name "RouteTable01" +``` + +```output +Confirm +Are you sure you want to remove resource 'RouteTable01' +[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): y +``` + +This command removes the route table named RouteTable01 in the resource group named ResourceGroup11. +The cmdlet prompts you for confirmation before it removes the table. + + +#### Set-AzRouteTable + +#### SYNOPSIS +Updates a route table. + +#### SYNTAX + +```powershell +Set-AzRouteTable -RouteTable [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Update a route table by adding route configuration to it +```powershell +Get-AzRouteTable -ResourceGroupName "ResourceGroup11" -Name "RouteTable01" | Add-AzRouteConfig -Name "Route07" -AddressPrefix 10.2.0.0/16 -NextHopType "VnetLocal" | Set-AzRouteTable +``` + +```output +Name : RouteTable01 +ResourceGroupName : ResourceGroup11 +Location : eastus +Id : /subscriptions/xxxx-xxxx-xxxx-xxxx/resourceGroups/ResourceGroup11/providers/Microsoft.Networ + k/routeTables/RouteTable01 +Etag : W/"f13e1bc8-d41f-44d0-882d-b8b5a1134f59" +ProvisioningState : Succeeded +Tags : +Routes : [ + { + "Name": "Route07", + "Etag": "W/\"f13e1bc8-d41f-44d0-882d-b8b5a1134f59\"", + "Id": "/subscriptions/xxxx-xxxx-xxxx-xxxx/resourceGroups/ResourceGroup11/providers/Micro + soft.Network/RouteTables/RouteTable01/routes/Route07", + "AddressPrefix": "10.1.0.0/16", + "NextHopType": "VnetLocal", + "NextHopIpAddress": null, + "ProvisioningState": "Succeeded" + }, + { + "Name": "Route07", + "Etag": "W/\"f13e1bc8-d41f-44d0-882d-b8b5a1134f59\"", + "Id": "/subscriptions/xxxx-xxxx-xxxx-xxxx/resourceGroups/ResourceGroup11/providers/Micro + soft.Network/RouteTables/RouteTable01/routes/Route07", + "AddressPrefix": "10.2.0.0/16", + "NextHopType": "VnetLocal", + "NextHopIpAddress": null, + "ProvisioningState": "Succeeded" + }, + { + "Name": "Route13", + "Etag": null, + "Id": null, + "AddressPrefix": "10.3.0.0/16", + "NextHopType": "VnetLocal", + "NextHopIpAddress": null, + "ProvisioningState": null + } + ] +Subnets : [] +``` + +This command gets the route table named RouteTable01 by using Get-AzRouteTable cmdlet. +The command passes that table to the Add-AzRouteConfig cmdlet by using the pipeline operator. +**Add-AzRouteConfig** adds the route named Route07, and then passes the result to the current cmdlet, which updates the table to reflect your changes. + ++ Example 2: Modify route table + + +```powershell +$rt = Get-AzRouteTable -ResourceGroupName "rgName" -Name "rtName" +$rt.DisableBgpRoutePropagation + +False + +$rt.DisableBgpRoutePropagation = $true +Set-AzRouteTable -RouteTable $rt +$rt = Get-AzRouteTable -ResourceGroupName "rgName" -Name "rtName" +$rt.DisableBgpRoutePropagation + +True +``` + +The first command gets the route table named rtName and stores it in the $rt variable. +The second command displays the value of DisableBgpRoutePropagation. +The third command updates value of DisableBgpRoutePropagation. +The fourth command updates route table on the server. +The fifth command gets updated route table and stores it in the $rt variable. +The sixth command displays the value of DisableBgpRoutePropagation. + + +#### New-AzRoutingConfiguration + +#### SYNOPSIS +Creates a RoutingConfiguration object. + +#### SYNTAX + +```powershell +New-AzRoutingConfiguration -AssociatedRouteTable -Label -Id + [-StaticRoute ] [-VnetLocalRouteOverrideCriteria ] [-InboundRouteMap ] + [-OutboundRouteMap ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$rgName = "testRg" +$virtualHubName = "testHub" +$inboundRouteMap = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.Network/virtualHubs/testHub/routeMaps/testRouteMap" +$rt1 = Get-AzVHubRouteTable -ResourceGroupName $rgName -VirtualHubName $virtualHubName -Name "defaultRouteTable" +$rt2 = Get-AzVHubRouteTable -ResourceGroupName $rgName -VirtualHubName $virtualHubName -Name "noneRouteTable" +$route1 = New-AzStaticRoute -Name "route1" -AddressPrefix @("10.20.0.0/16", "10.30.0.0/16")-NextHopIpAddress "10.90.0.5" +New-AzRoutingConfiguration -AssociatedRouteTable $rt1.Id -Label @("testLabel") -Id @($rt2.Id) -StaticRoute @($route1) -InboundRouteMap $inboundRouteMap +``` + +```output +AssociatedRouteTable : "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.Network/virtualHubs/testHub/hubRouteTables/defaultRouteTable" +PropagatedRouteTables : { + "Labels": [ + "testLabel" + ], + "Ids": [ + { + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.Network/virtualHubs/testHub/hubRouteTables/noneRouteTable" + } + ], + "InboundRouteMap": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.Network/virtualHubs/testHub/routeMaps/testRouteMap" + } +VnetRoutes : { + "StaticRoutes": [ + { + "Name": "route1", + "AddressPrefixes": [ + "10.20.0.0/16", + "10.30.0.0/16" + ], + "NextHopIpAddress": "10.90.0.5" + } + ] + } +``` + +The above command will create a RoutingConfiguration object which can then be added to a connection resource. Static routes are only allowed with a HubVirtualNetworkConnection object. + + +#### New-AzRoutingIntent + +#### SYNOPSIS +Creates a routing intent resource associated with a VirtualHub. + +#### SYNTAX + ++ ByVirtualHubName (Default) +```powershell +New-AzRoutingIntent -ResourceGroupName -ParentResourceName -Name + -RoutingPolicy [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVirtualHubObject +```powershell +New-AzRoutingIntent -ParentObject -Name -RoutingPolicy [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVirtualHubResourceId +```powershell +New-AzRoutingIntent -ParentResourceId -Name -RoutingPolicy [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +New-AzVirtualWan -ResourceGroupName "testRg" -Name "testWan" -Location "westcentralus" -VirtualWANType "Standard" -AllowVnetToVnetTraffic -AllowBranchToBranchTraffic +$virtualWan = Get-AzVirtualWan -ResourceGroupName "testRg" -Name "testWan" + +New-AzVirtualHub -ResourceGroupName "testRg" -Name "testHub" -Location "westcentralus" -AddressPrefix "10.0.0.0/16" -VirtualWan $virtualWan +$virtualHub = Get-AzVirtualHub -ResourceGroupName "testRg" -Name "testHub" + +$fwIp = New-AzFirewallHubPublicIpAddress -Count 1 +$hubIpAddresses = New-AzFirewallHubIpAddress -PublicIP $fwIp + +New-AzFirewall -Name "testFirewall" -ResourceGroupName "testRg" -Location "westcentralus" -Sku AZFW_Hub -VirtualHubId $virtualHub.Id -HubIPAddress $hubIpAddresses +$firewall = Get-AzFirewall -Name "testFirewall" -ResourceGroupName "testRg" + +$policy1 = New-AzRoutingPolicy -Name "PrivateTraffic" -Destination @("PrivateTraffic") -NextHop $firewall.Id +$policy2 = New-AzRoutingPolicy -Name "PublicTraffic" -Destination @("Internet") -NextHop $firewall.Id + +New-AzRoutingIntent -ResourceGroupName "testRg" -VirtualHubName "testHub" -Name "testRoutingIntent" -RoutingPolicy @($policy1, $policy2) +``` + +```output +ProvisioningState : Succeeded +RoutingPolicies : {PrivateTraffic, PublicTraffic} +RoutingPoliciesText : [ + { + "Name": "PrivateTraffic", + "DestinationType": "TrafficType", + "Destinations": [ + "PrivateTraffic" + ], + "NextHopType": "ResourceId", + "NextHop": "/subscriptions/testSub/resourceGroups/testRg/providers/Microsoft.Network/azureFirewalls/testFirewall" + }, + { + "Name": "PublicTraffic", + "DestinationType": "TrafficType", + "Destinations": [ + "Internet" + ], + "NextHopType": "ResourceId", + "NextHop": "/subscriptions/testSub/resourceGroups/testRg/providers/Microsoft.Network/azureFirewalls/testFirewall" + } + ] +Name : testRoutingIntent +Etag : W/"etag" +Id : /subscriptions/testSub/resourceGroups/testRg/providers/Microsoft.Network/virtualHubs/testHub/routingIntent/testRoutingIntent +``` + +This command creates a routing intent of the virtual hub. + + +#### Get-AzRoutingIntent + +#### SYNOPSIS +Retrieves a routing intent resource associated with a VirtualHub. + +#### SYNTAX + ++ ByVirtualHubName (Default) +```powershell +Get-AzRoutingIntent -ResourceGroupName -HubName [-Name ] + [-DefaultProfile ] [] +``` + ++ ByVirtualHubObject +```powershell +Get-AzRoutingIntent -VirtualHub [-Name ] [-DefaultProfile ] + [] +``` + ++ ByVirtualHubResourceId +```powershell +Get-AzRoutingIntent -ParentResourceId [-Name ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +New-AzVirtualWan -ResourceGroupName "testRg" -Name "testWan" -Location "westcentralus" -VirtualWANType "Standard" -AllowVnetToVnetTraffic -AllowBranchToBranchTraffic +$virtualWan = Get-AzVirtualWan -ResourceGroupName "testRg" -Name "testWan" + +New-AzVirtualHub -ResourceGroupName "testRg" -Name "testHub" -Location "westcentralus" -AddressPrefix "10.0.0.0/16" -VirtualWan $virtualWan +$virtualHub = Get-AzVirtualHub -ResourceGroupName "testRg" -Name "testHub" + +$fwIp = New-AzFirewallHubPublicIpAddress -Count 1 +$hubIpAddresses = New-AzFirewallHubIpAddress -PublicIP $fwIp + +New-AzFirewall -Name "testFirewall" -ResourceGroupName "testRg" -Location "westcentralus" -Sku AZFW_Hub -VirtualHubId $virtualHub.Id -HubIPAddress $hubIpAddresses +$firewall = Get-AzFirewall -Name "testFirewall" -ResourceGroupName "testRg" + +$policy1 = New-AzRoutingPolicy -Name "PrivateTraffic" -Destination @("PrivateTraffic") -NextHop $firewall.Id +$policy2 = New-AzRoutingPolicy -Name "PublicTraffic" -Destination @("Internet") -NextHop $firewall.Id + +New-AzRoutingIntent -ResourceGroupName "testRg" -VirtualHubName "testHub" -Name "testRoutingIntent" -RoutingPolicy @($policy1, $policy2) +Get-AzRoutingIntent -ResourceGroupName "testRg" -VirtualHubName "testHub" -Name "testRoutingIntent" +``` + +```output +ProvisioningState : Succeeded +RoutingPolicies : {PrivateTraffic, PublicTraffic} +RoutingPoliciesText : [ + { + "Name": "PrivateTraffic", + "DestinationType": "TrafficType", + "Destinations": [ + "PrivateTraffic" + ], + "NextHopType": "ResourceId", + "NextHop": "/subscriptions/testSub/resourceGroups/testRg/providers/Microsoft.Network/azureFirewalls/testFirewall" + }, + { + "Name": "PublicTraffic", + "DestinationType": "TrafficType", + "Destinations": [ + "Internet" + ], + "NextHopType": "ResourceId", + "NextHop": "/subscriptions/testSub/resourceGroups/testRg/providers/Microsoft.Network/azureFirewalls/testFirewall" + } + ] +Name : testRoutingIntent +Etag : W/"etag" +Id : /subscriptions/testSub/resourceGroups/testRg/providers/Microsoft.Network/virtualHubs/testHub/routingIntent/testRoutingIntent +``` + +This command gets the routing intent of the virtual hub. + ++ Example 2 + +```powershell +$rgName = "testRg" +$virtualHubName = "testHub" +Get-AzRoutingIntent -Name $riName -VirtualHub $virtualHub +``` + +```output +ProvisioningState : Succeeded +RoutingPolicies : {PrivateTraffic, PublicTraffic} +RoutingPoliciesText : [ + { + "Name": "PrivateTraffic", + "DestinationType": "TrafficType", + "Destinations": [ + "PrivateTraffic" + ], + "NextHopType": "ResourceId", + "NextHop": "/subscriptions/testSub/resourceGroups/testRg/providers/Microsoft.Network/azureFirewalls/testFirewall" + }, + { + "Name": "PublicTraffic", + "DestinationType": "TrafficType", + "Destinations": [ + "Internet" + ], + "NextHopType": "ResourceId", + "NextHop": "/subscriptions/testSub/resourceGroups/testRg/providers/Microsoft.Network/azureFirewalls/testFirewall" + } + ] +Name : testRoutingIntent +Etag : W/"etag" +Id : /subscriptions/testSub/resourceGroups/testRg/providers/Microsoft.Network/virtualHubs/testHub/routingIntent/testRoutingIntent +``` + +This command get the routing intent in the specified VirtualHub. + + +#### Remove-AzRoutingIntent + +#### SYNOPSIS +Delete a routing intent resource associated with a VirtualHub. + +#### SYNTAX + ++ ByRoutingIntentName (Default) +```powershell +Remove-AzRoutingIntent -ResourceGroupName -ParentResourceName -Name [-AsJob] + [-Force] [-PassThru] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + ++ ByVirtualHubObject +```powershell +Remove-AzRoutingIntent -Name -ParentObject [-AsJob] [-Force] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByRoutingIntentObject +```powershell +Remove-AzRoutingIntent -InputObject [-AsJob] [-Force] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByRoutingIntentResourceId +```powershell +Remove-AzRoutingIntent -ResourceId [-AsJob] [-Force] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$testRoutingIntent = Get-AzRoutingIntent -ResourceGroupName "testRg" -VirtualHubName "testHub" -Name "testRoutingIntent" +Remove-AzRoutingIntent -ResourceGroupName "testRg" -VirtualHubName "testHub" -Name "testRoutingIntent" +``` + +This command deletes the routing intent of the virtual hub. + + +#### Set-AzRoutingIntent + +#### SYNOPSIS +Updates a routing intent resource associated with a VirtualHub. + +#### SYNTAX + ++ ByRoutingIntentName (Default) +```powershell +Set-AzRoutingIntent -ResourceGroupName -ParentResourceName -Name + [-RoutingPolicy ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVirtualHubObject +```powershell +Set-AzRoutingIntent -Name -ParentObject [-RoutingPolicy ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByRoutingIntentObject +```powershell +Set-AzRoutingIntent -InputObject [-RoutingPolicy ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByRoutingIntentResourceId +```powershell +Set-AzRoutingIntent -ResourceId [-RoutingPolicy ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzVirtualWan -ResourceGroupName "testRg" -Name "testWan" -Location "westcentralus" -VirtualWANType "Standard" -AllowVnetToVnetTraffic -AllowBranchToBranchTraffic +$virtualWan = Get-AzVirtualWan -ResourceGroupName "testRg" -Name "testWan" + +New-AzVirtualHub -ResourceGroupName "testRg" -Name "testHub" -Location "westcentralus" -AddressPrefix "10.0.0.0/16" -VirtualWan $virtualWan +$virtualHub = Get-AzVirtualHub -ResourceGroupName "testRg" -Name "testHub" + +$fwIp = New-AzFirewallHubPublicIpAddress -Count 1 +$hubIpAddresses = New-AzFirewallHubIpAddress -PublicIP $fwIp + +New-AzFirewall -Name "testFirewall" -ResourceGroupName "testRg" -Location "westcentralus" -Sku AZFW_Hub -VirtualHubId $virtualHub.Id -HubIPAddress $hubIpAddresses +$firewall = Get-AzFirewall -Name "testFirewall" -ResourceGroupName "testRg" + +$policy1 = New-AzRoutingPolicy -Name "PrivateTraffic" -Destination @("PrivateTraffic") -NextHop $firewall.Id +New-AzRoutingIntent -ResourceGroupName "testRg" -VirtualHubName "testHub" -Name "testRoutingIntent" -RoutingPolicy @($policy1) + +$policy2 = New-AzRoutingPolicy -Name "PublicTraffic" -Destination @("Internet") -NextHop $firewall.Id +Set-AzRoutingIntent -ResourceGroupName "testRg" -VirtualHubName "testHub" -Name "testRoutingIntent" -RoutingPolicy @($policy2) +``` + +```output +ProvisioningState : Succeeded +RoutingPolicies : {PublicTraffic} +RoutingPoliciesText : [ + { + "Name": "PublicTraffic", + "DestinationType": "TrafficType", + "Destinations": [ + "Internet" + ], + "NextHopType": "ResourceId", + "NextHop": "/subscriptions/testSub/resourceGroups/testRg/providers/Microsoft.Network/azureFirewalls/testFirewall" + } + ] +Name : testRoutingIntent +Etag : W/"etag" +Id : /subscriptions/testSub/resourceGroups/testRg/providers/Microsoft.Network/virtualHubs/testHub/routingIntent/testRoutingIntent +``` + +This command deletes the hub RoutingPolicy table of the virtual hub. + + +#### New-AzRoutingPolicy + +#### SYNOPSIS +Returns an in-memory routing policy object. + +#### SYNTAX + +```powershell +New-AzRoutingPolicy -Destination -NextHop -Name + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$rgName = "testRg" +$firewallName = "testFirewall" +$firewall = Get-AzFirewall -Name $firewallName -ResourceGroupName $rgName +New-AzRoutingPolicy -Name "PrivateTraffic" -Destination @("PrivateTraffic") -NextHop $firewall.Id +``` + +```output +Name : PrivateTraffic +DestinationType : TrafficType +Destinations : {PrivateTraffic} +NextHopType : ResourceId +NextHop : /subscriptions/testSub/resourceGroups/testRg/providers/Microsoft.Network/azureFirewalls/testFirewall +``` + + +#### Add-AzRoutingPolicy + +#### SYNOPSIS +Add a Routing Policy to the Routing Intent object. + +#### SYNTAX + +```powershell +Add-AzRoutingPolicy -RoutingIntent -Destination -NextHop -Name + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$rgName = "testRg" +$firewallName = "testFirewall" +$firewall = Get-AzFirewall -Name $firewallName -ResourceGroupName $rgName +$routingIntent = Get-AzRoutingIntent -Name "routingIntent1" -HubName "hub1" -ResourceGroupName $rgName +Add-AzRoutingPolicy -Name "PublicTraffic" -RoutingIntent $routingIntent -Destination @("Internet") -NextHop $firewall.Id +Set-AzRoutingIntent -InputObject $routingIntent +``` + +```output +ProvisioningState : Succeeded +RoutingPolicies : {PublicTraffic} +RoutingPoliciesText : [ + { + "Name": "PublicTraffic", + "DestinationType": "TrafficType", + "Destinations": [ + "Internet" + ], + "NextHopType": "ResourceId", + "NextHop": "/subscriptions/testSub/resourceGroups/testRg/providers/Microsoft.Network/azureFirewalls/testFirewall" + } + ] +Name : routingIntent1 +Etag : W/"etag" +Id : /subscriptions/testSub/resourceGroups/testRg/providers/Microsoft.Network/virtualHubs/hub1/routingIntent/routingIntent1 +``` + + +#### Get-AzRoutingPolicy + +#### SYNOPSIS +Retrieves a routing policy of a routing intent resource associated with a VirtualHub. + +#### SYNTAX + +```powershell +Get-AzRoutingPolicy -RoutingIntent -Name [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +New-AzVirtualWan -ResourceGroupName "testRg" -Name "testWan" -Location "westcentralus" -VirtualWANType "Standard" -AllowVnetToVnetTraffic -AllowBranchToBranchTraffic +$virtualWan = Get-AzVirtualWan -ResourceGroupName "testRg" -Name "testWan" + +New-AzVirtualHub -ResourceGroupName "testRg" -Name "testHub" -Location "westcentralus" -AddressPrefix "10.0.0.0/16" -VirtualWan $virtualWan +$virtualHub = Get-AzVirtualHub -ResourceGroupName "testRg" -Name "testHub" + +$fwIp = New-AzFirewallHubPublicIpAddress -Count 1 +$hubIpAddresses = New-AzFirewallHubIpAddress -PublicIP $fwIp + +New-AzFirewall -Name "testFirewall" -ResourceGroupName "testRg" -Location "westcentralus" -Sku AZFW_Hub -VirtualHubId $virtualHub.Id -HubIPAddress $hubIpAddresses +$firewall = Get-AzFirewall -Name "testFirewall" -ResourceGroupName "testRg" + +$policy1 = New-AzRoutingPolicy -Name "PrivateTraffic" -Destination @("PrivateTraffic") -NextHop $firewall.Id +New-AzRoutingIntent -ResourceGroupName "testRg" -VirtualHubName "testHub" -Name "testRoutingIntent" -RoutingPolicy @($policy1) + +$routingIntent = Get-AzRoutingIntent -ResourceGroupName "testRg" -VirtualHubName "testHub" -Name "testRoutingIntent" +Get-AzRoutingPolicy -RoutingIntent $routingIntent -Name "PrivateTraffic" +``` + +```output +Name : PrivateTraffic +DestinationType : TrafficType +Destinations : {PrivateTraffic} +NextHopType : ResourceId +NextHop : /subscriptions/testSub/resourceGroups/testRg/providers/Microsoft.Network/azureFirewalls/testFirewall +``` + + +#### Remove-AzRoutingPolicy + +#### SYNOPSIS +Removes the specified routing policy from a routing intent resource associated with a VirtualHub. + +#### SYNTAX + +```powershell +Remove-AzRoutingPolicy -RoutingIntent -Name + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +New-AzVirtualWan -ResourceGroupName "testRg" -Name "testWan" -Location "westcentralus" -VirtualWANType "Standard" -AllowVnetToVnetTraffic -AllowBranchToBranchTraffic +$virtualWan = Get-AzVirtualWan -ResourceGroupName "testRg" -Name "testWan" + +New-AzVirtualHub -ResourceGroupName "testRg" -Name "testHub" -Location "westcentralus" -AddressPrefix "10.0.0.0/16" -VirtualWan $virtualWan +$virtualHub = Get-AzVirtualHub -ResourceGroupName "testRg" -Name "testHub" + +$fwIp = New-AzFirewallHubPublicIpAddress -Count 1 +$hubIpAddresses = New-AzFirewallHubIpAddress -PublicIP $fwIp + +New-AzFirewall -Name "testFirewall" -ResourceGroupName "testRg" -Location "westcentralus" -Sku AZFW_Hub -VirtualHubId $virtualHub.Id -HubIPAddress $hubIpAddresses +$firewall = Get-AzFirewall -Name "testFirewall" -ResourceGroupName "testRg" + +$policy1 = New-AzRoutingPolicy -Name "PrivateTraffic" -Destination @("PrivateTraffic") -NextHop $firewall.Id +$policy2 = New-AzRoutingPolicy -Name "PublicTraffic" -Destination @("Internet") -NextHop $firewall.Id + +New-AzRoutingIntent -ResourceGroupName "testRg" -VirtualHubName "testHub" -Name "testRoutingIntent" -RoutingPolicy @($policy1, $policy2) +$routingIntent = Get-AzRoutingIntent -ResourceGroupName "testRg" -VirtualHubName "testHub" -Name "testRoutingIntent" + +Remove-AzRoutingPolicy -Name "PrivateTraffic" -RoutingIntent $routingIntent +Set-AzRoutingIntent -InputObject $routingIntent +``` + +```output +ProvisioningState : Succeeded +RoutingPolicies : {PublicTraffic} +RoutingPoliciesText : [ + { + "Name": "PublicTraffic", + "DestinationType": "TrafficType", + "Destinations": [ + "Internet" + ], + "NextHopType": "ResourceId", + "NextHop": "/subscriptions/testSub/resourceGroups/testRg/providers/Microsoft.Network/azureFirewalls/testFirewall" + } + ] +Name : routingIntent1 +Etag : W/"etag" +Id : /subscriptions/testSub/resourceGroups/testRg/providers/Microsoft.Network/virtualHubs/hub1/routingIntent/routingIntent1 +``` + + +#### Set-AzRoutingPolicy + +#### SYNOPSIS +Updates the destinations or nexthop for the specified Routing Policy of a Routing Intent object. + +#### SYNTAX + +```powershell +Set-AzRoutingPolicy -RoutingIntent -Destination -NextHop -Name + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$rgName = "testRg" +$firewallName = "testFirewall" +$firewall = Get-AzFirewall -Name $firewallName -ResourceGroupName $rgName +$routingIntent = Get-AzRoutingIntent -Name "routingIntent1" -HubName "hub1" -ResourceGroupName $rgName +Set-AzRoutingPolicy -Name "PrivateTraffic" -RoutingIntent $routingIntent -Destination @("PrivateTraffic") -NextHop $firewall.Id +``` + +```output +ProvisioningState : Succeeded +RoutingPolicies : {PrivateTraffic} +RoutingPoliciesText : [ + { + "Name": "PrivateTraffic", + "DestinationType": "TrafficType", + "Destinations": [ + "PrivateTraffic" + ], + "NextHopType": "ResourceId", + "NextHop": "/subscriptions/testSub/resourceGroups/testRg/providers/Microsoft.Network/azureFirewalls/testFirewall" + } + ] +Name : routingIntent1 +Etag : W/"etag" +Id : /subscriptions/testSub/resourceGroups/testRg/providers/Microsoft.Network/virtualHubs/hub1/routingIntent/routingIntent1 +``` + + +#### New-AzSaaSNetworkVirtualAppliance + +#### SYNOPSIS +Create a SaaS Network Virtual Appliance resource. + +#### SYNTAX + ++ ResourceNameParameterSet (Default) +```powershell +New-AzSaaSNetworkVirtualAppliance -Name -ResourceGroupName -Location + -VirtualHubId [-Tag ] [-Force] [-AsJob] -DelegatedServiceName + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ResourceIdParameterSet +```powershell +New-AzSaaSNetworkVirtualAppliance -ResourceId -Location -VirtualHubId + [-Tag ] [-Force] [-AsJob] -DelegatedServiceName [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$hub=Get-AzVirtualHub -ResourceGroupName "testrg" -Name "hub" +New-AzSaaSNetworkVirtualAppliance -Name "testNva" -ResourceGroupName "testrg" -Location "westus" -VirtualHubId $hub.Id -DelegatedServiceName "PaloAltoNetworks.Cloudngfw/firewalls" +``` + +Creates a new SaaS Network Virtual Appliance resource in resource group: testrg. + + +#### New-AzSecurityPartnerProvider + +#### SYNOPSIS +Creates an Azure SecurityPartnerProvider. + +#### SYNTAX + +```powershell +New-AzSecurityPartnerProvider -Name -ResourceGroupName -Location + -SecurityProviderName [-VirtualHub ] [-VirtualHubId ] + [-VirtualHubName ] [-Tag ] [-Force] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzSecurityPartnerProvider -Name securityPartnerProviderName -ResourceGroupName rgname -Location 'West US' -SecurityProviderName 'ZScaler' +``` + + +#### Get-AzSecurityPartnerProvider + +#### SYNOPSIS +Get an Azure SecurityPartnerProvider + +#### SYNTAX + ++ SecurityPartnerProviderNameParameterSet (Default) +```powershell +Get-AzSecurityPartnerProvider -Name -ResourceGroupName + [-DefaultProfile ] [] +``` + ++ SecurityPartnerProviderResourceIdParameterSet +```powershell +Get-AzSecurityPartnerProvider -ResourceId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzSecurityPartnerProvider -ResourceGroupName securityPartnerProviderRG -Name securityPartnerProvider +``` + ++ Example 2 +```powershell +$securityPartnerProviderId = '/subscriptions/8c992d64-fce9-426d-b278-85642dfeab03/resourceGroups/securityPartnerProviderRG/providers/Microsoft.Network/securityPartnerProvider/securityPartnerProvider' +Get-AzSecurityPartnerProvider -ResourceId $securityPartnerProviderId +``` + + +#### Remove-AzSecurityPartnerProvider + +#### SYNOPSIS +Deletes an Azure SecurityPartnerProvider. + +#### SYNTAX + ++ SecurityPartnerProviderNameParameterSet (Default) +```powershell +Remove-AzSecurityPartnerProvider -Name -ResourceGroupName [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SecurityPartnerProviderInputObjectParameterSet +```powershell +Remove-AzSecurityPartnerProvider -SecurityPartnerProvider [-Force] [-PassThru] + [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SecurityPartnerProviderResourceIdParameterSet +```powershell +Remove-AzSecurityPartnerProvider -ResourceId [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzSecurityPartnerProvider -ResourceGroupName securityPartnerProviderRG -Name securityPartnerProvider +``` + + +#### Set-AzSecurityPartnerProvider + +#### SYNOPSIS +Saves a modified Azure SecurityPartnerProvider. + +#### SYNTAX + +```powershell +Set-AzSecurityPartnerProvider -SecurityPartnerProvider [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$securityPartnerProvider = Get-AzSecurityPartnerProvider -ResourceGroupName securityPartnerProviderRG -Name securityPartnerProvider +Set-AzSecurityPartnerProvider -SecurityPartnerProvider $securityPartnerProvider +``` + + +#### New-AzServiceEndpointPolicy + +#### SYNOPSIS +Creates a service endpoint policy. + +#### SYNTAX + +```powershell +New-AzServiceEndpointPolicy -Name + [-ServiceEndpointPolicyDefinition ] -ResourceGroupName + -Location [-Force] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Creates a service endpoint policy +```powershell +$serviceEndpointPolicy = New-AzServiceEndpointPolicy -Name "Policy1" -ServiceEndpointPolicyDefinition $serviceEndpointDefinition -Location "location"; +``` + +This command creates a service endpoint policy named Policy1 with definitions defined by the object $serviceEndpointDefinition and stores it in the $serviceEndpointPolicy variable. + + +#### Get-AzServiceEndpointPolicy + +#### SYNOPSIS +Gets a service endpoint policy. + +#### SYNTAX + ++ ListParameterSet (Default) +```powershell +Get-AzServiceEndpointPolicy [-Name ] [-ResourceGroupName ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ GetByResourceIdParameterSet +```powershell +Get-AzServiceEndpointPolicy -ResourceId [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$policy = Get-AzServiceEndpointPolicy -Name "ServiceEndpointPolicy1" -ResourceGroupName "ResourceGroup01" +``` + +This command gets the service endpoint policy named ServiceEndpointPolicy1 that belongs to the resource group named ResourceGroup01 and stores it in the $policy variable. + ++ Example 2 +```powershell +$policyList = Get-AzServiceEndpointPolicy -ResourceGroupName "ResourceGroup01" +``` + +This command gets a list of all the service endpoint policies in the resource group named ResourceGroup01 and stores it in the $policyList variable. + ++ Example 3 +```powershell +$policyList = Get-AzServiceEndpointPolicy -ResourceGroupName "ServiceEndpointPolicy*" +``` + +This command gets a list of all the service endpoint policies that start with "ServiceEndpointPolicy". + + +#### Remove-AzServiceEndpointPolicy + +#### SYNOPSIS +Removes a service endpoint policy. + +#### SYNTAX + ++ RemoveByNameParameterSet (Default) +```powershell +Remove-AzServiceEndpointPolicy -Name -ResourceGroupName [-Force] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ DeleteByResourceIdParameterSet +```powershell +Remove-AzServiceEndpointPolicy -ResourceId [-Force] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ DeleteByInputObjectParameterSet +```powershell +Remove-AzServiceEndpointPolicy -InputObject [-Force] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Removes a service endpoint policy using name +```powershell +Remove-AzServiceEndpointPolicy -Name "Policy1" -ResourceGroupName "resourcegroup1" +``` + +This command removes a service endpoint policy with name Policy1 which belongs to resourcegroup with name "resourcegroup1" + ++ Example 2: Remove a service endpoint policy using input object +```powershell +Remove-AzServiceEndpointPolicy -InputObject $Policy1 +``` + +This command removes a service endpoint policy object Policy1 which belongs to resourcegroup with name "resourcegroup1" + + +#### Set-AzServiceEndpointPolicy + +#### SYNOPSIS +Updates a service endpoint policy. + +#### SYNTAX + +```powershell +Set-AzServiceEndpointPolicy -ServiceEndpointPolicy + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Sets a service endpoint policy +```powershell +$serviceEndpointPolicy = Get-AzServiceEndpointPolicy -Name "Policy1" -ResourceGroupName "resourcegroup1" +Set-AzServiceEndpointPolicy -ServiceEndpointPolicy $serviceEndpointPolicy +``` + +This command updates a service endpoint policy named Policy1 defined by the object $serviceEndpointPolicy belong to the resourcegroup "resourcegroup1". + + +#### New-AzServiceEndpointPolicyDefinition + +#### SYNOPSIS +Creates a service endpoint policy definition. + +#### SYNTAX + +```powershell +New-AzServiceEndpointPolicyDefinition -Name [-Description ] [-ServiceResource ] + [-Service ] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Creates a service endpoint policy +```powershell +$policydef= New-AzServiceEndpointPolicyDefinition -Name "ServiceEndpointPolicyDefinition1" -Service "Microsoft.Storage" -ServiceResource "subscriptions/sub1" -Description "New Definition" +``` + +This command creates the service endpoint policy definition with name ServiceEndpointPolicyDefinition1, service Microsoft.Storage, service resources subscriptions/sub1 and +description "New Definition" that belongs to the resource group named ResourceGroup01 and stores it in the $policydef variable. + ++ Example 2 + +Creates a service endpoint policy definition. (autogenerated) + + + + +```powershell +New-AzServiceEndpointPolicyDefinition -Description 'New Definition' -Name 'ServiceEndpointPolicyDefinition1' -Service 'Microsoft.Storage' -ServiceResource +``` + + +#### Add-AzServiceEndpointPolicyDefinition + +#### SYNOPSIS +Adds a service endpoint policy definition to a specified policy. + +#### SYNTAX + +```powershell +Add-AzServiceEndpointPolicyDefinition -Name -ServiceEndpointPolicy + [-Description ] [-ServiceResource ] [-Service ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Updates a service endpoint policy definition in a service endpoint policy +```powershell +New-AzServiceEndpointPolicyDefinition -Name "ServiceEndpointPolicyDefinition1" -Service "Microsoft.Storage" -ServiceResource "subscriptions/sub1" -Description "New Definition" +``` + +This command updated the service endpoint policy definition with name ServiceEndpointPolicyDefinition1, service Microsoft.Storage, service resources subscriptions/sub1 and +description "New Definition" that belongs to the resource group named ResourceGroup01 and stores it in the $policydef variable. + + +#### Get-AzServiceEndpointPolicyDefinition + +#### SYNOPSIS +Gets a service endpoint policy definition. + +#### SYNTAX + +```powershell +Get-AzServiceEndpointPolicyDefinition [-Name ] -ServiceEndpointPolicy + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$policydef= Get-AzServiceEndpointPolicyDefinition -Name "ServiceEndpointPolicyDefinition1" -ServiceEndpointPolicy $Policy +``` + +This command gets the service endpoint policy definition named ServiceEndpointPolicyDefinition1 in ServiceEndpointPolicy $Policy stores it in the $policydef variable. + + +#### Remove-AzServiceEndpointPolicyDefinition + +#### SYNOPSIS +Removes a service endpoint policy definition. + +#### SYNTAX + ++ RemoveByNameParameterSet (Default) +```powershell +Remove-AzServiceEndpointPolicyDefinition [-Name ] -ServiceEndpointPolicy + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ DeleteByResourceIdParameterSet +```powershell +Remove-AzServiceEndpointPolicyDefinition -ResourceId -ServiceEndpointPolicy + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ DeleteByInputObjectParameterSet +```powershell +Remove-AzServiceEndpointPolicyDefinition -InputObject + -ServiceEndpointPolicy [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Removes a service endpoint policy using name +```powershell +Remove-AzServiceEndpointPolicyDefinition -Name "PolicyDef1" +``` + +This command removes a service endpoint policy with name PolicyDef1 + + +#### Set-AzServiceEndpointPolicyDefinition + +#### SYNOPSIS +Updates a service endpoint policy definition. + +#### SYNTAX + +```powershell +Set-AzServiceEndpointPolicyDefinition -Name -ServiceEndpointPolicy + [-Description ] [-ServiceResource ] [-Service ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Updates a service endpoint policy definition in a service endpoint policy +```powershell +$serviceEndpointPolicy = Set-AzServiceEndpointPolicyDefinition -Name "Policydef1" -ServiceEndpointPolicy $serviceEndpointPolicy +``` + +This command updates a service endpoint policy definition named Policydef1 in the service endpoint policy defined by the object $ServiceEndpointPolicy. + + +#### New-AzStaticRoute + +#### SYNOPSIS +Creates a StaticRoute object which can then be added to a RoutingConfiguration object. + +#### SYNTAX + +```powershell +New-AzStaticRoute -Name -AddressPrefix -NextHopIpAddress + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzStaticRoute -Name "route1" -AddressPrefix @("10.20.0.0/16", "10.30.0.0/16") -NextHopIpAddress "10.90.0.5" +``` + +```output +Name AddressPrefixes NextHopIpAddress +---- --------------- ---------------- +route1 {10.20.0.0/16, 10.30.0.0/16} 10.90.0.5 +``` + +The above command will create a StaticRoute object which can then be added to a RoutingConfiguration object. + + +#### Get-AzVHubEffectiveRoute + +#### SYNOPSIS +Retrieves the effective routes of a virtual hub resource + +#### SYNTAX + ++ ByVirtualHubName (Default) +```powershell +Get-AzVHubEffectiveRoute -ResourceGroupName -VirtualHubName [-ResourceId ] + [-VirtualWanResourceType ] [-DefaultProfile ] + [] +``` + ++ ByVirtualHubObject +```powershell +Get-AzVHubEffectiveRoute -VirtualHubObject [-ResourceId ] + [-VirtualWanResourceType ] [-DefaultProfile ] + [] +``` + ++ ByVirtualHubResourceId +```powershell +Get-AzVHubEffectiveRoute -VirtualHubResourceId [-ResourceId ] + [-VirtualWanResourceType ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +New-AzVirtualWan -ResourceGroupName "testRg" -Name "testWan" -Location "westcentralus" -VirtualWANType "Standard" -AllowVnetToVnetTraffic -AllowBranchToBranchTraffic +$virtualWan = Get-AzVirtualWan -ResourceGroupName "testRg" -Name "testWan" +New-AzVirtualHub -ResourceGroupName "testRg" -Name "testHub" -Location "westcentralus" -AddressPrefix "10.0.0.0/16" -VirtualWan $virtualWan +$virtualHub = Get-AzVirtualHub -ResourceGroupName "testRg" -Name "testHub" +$hubRouteTableId = "/subscriptions/eb40168c-f355-4a18-b13c-5d9751d314c6/resourceGroups/testRg/providers/Microsoft.Network/virtualHubs/testHub/hubRouteTables/defaultRouteTable" +Get-AzVHubEffectiveRoute -VirtualHubObject $virtualHub -ResourceId $hubRouteTableId -VirtualWanResourceType "RouteTable" +``` + +```output +Value : [ + { + "AddressPrefixes": [ + "10.2.0.0/16" + ], + "NextHops": [ + "/subscriptions/eb40168c-f355-4a18-b13c-5d9751d314c6/resourceGroups/testRg/providers/Microsoft.Network/virtu + alHubs/testHub/hubVirtualNetworkConnections/testConnection" + ], + "NextHopType": "Virtual Network Connection", + "RouteOrigin": "/subscriptions/eb40168c-f355-4a18-b13c-5d9751d314c6/resourceGroups/testRg/providers/Microsoft. + Network/virtualHubs/testHub/hubVirtualNetworkConnections/testConnection" + } + ] +``` + +This command gets the effective routes of the virtual hub default route table. + + +#### Get-AzVHubInboundRoute + +#### SYNOPSIS +Retrieves the inbound routes of a virtual hub connection + +#### SYNTAX + ++ ByVirtualHubName (Default) +```powershell +Get-AzVHubInboundRoute -ResourceGroupName -VirtualHubName [-ResourceUri ] + [-VirtualWanConnectionType ] [-DefaultProfile ] + [] +``` + ++ ByVirtualHubObject +```powershell +Get-AzVHubInboundRoute -VirtualHubObject [-ResourceUri ] + [-VirtualWanConnectionType ] [-DefaultProfile ] + [] +``` + ++ ByVirtualHubResourceId +```powershell +Get-AzVHubInboundRoute -VirtualHubResourceId [-ResourceUri ] + [-VirtualWanConnectionType ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +New-AzVirtualWan -ResourceGroupName "testRg" -Name "testWan" -Location "westcentralus" -VirtualWANType "Standard" -AllowVnetToVnetTraffic -AllowBranchToBranchTraffic +$virtualWan = Get-AzVirtualWan -ResourceGroupName "testRg" -Name "testWan" +New-AzVirtualHub -ResourceGroupName "testRg" -Name "testHub" -Location "westcentralus" -AddressPrefix "10.0.0.0/16" -VirtualWan $virtualWan +$virtualHub = Get-AzVirtualHub -ResourceGroupName "testRg" -Name "testHub" +$hubVnetConnectionId = "/subscriptions/testSub/resourceGroups/testRg/providers/Microsoft.Network/virtualHubs/testHub/hubVirtualNetworkConnections/testCon" +Get-AzVHubInboundRoute -VirtualHubObject $virtualHub -ResourceUri $hubVnetConnectionId -VirtualWanConnectionType "HubVirtualNetworkConnection" +``` + +```output +Value : [ + { + "Prefix": "10.2.0.0/16", + "BgpCommunities": "4293853166", + "AsPath": "" + } + ] +``` + +This command gets the inbound routes of the virtual hub spoke vnet connection. + + +#### Get-AzVHubOutboundRoute + +#### SYNOPSIS +Retrieves the outbound routes of a virtual hub connection + +#### SYNTAX + ++ ByVirtualHubName (Default) +```powershell +Get-AzVHubOutboundRoute -ResourceGroupName -VirtualHubName [-ResourceUri ] + [-VirtualWanConnectionType ] [-DefaultProfile ] + [] +``` + ++ ByVirtualHubObject +```powershell +Get-AzVHubOutboundRoute -VirtualHubObject [-ResourceUri ] + [-VirtualWanConnectionType ] [-DefaultProfile ] + [] +``` + ++ ByVirtualHubResourceId +```powershell +Get-AzVHubOutboundRoute -VirtualHubResourceId [-ResourceUri ] + [-VirtualWanConnectionType ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +New-AzVirtualWan -ResourceGroupName "testRg" -Name "testWan" -Location "westcentralus" -VirtualWANType "Standard" -AllowVnetToVnetTraffic -AllowBranchToBranchTraffic +$virtualWan = Get-AzVirtualWan -ResourceGroupName "testRg" -Name "testWan" +New-AzVirtualHub -ResourceGroupName "testRg" -Name "testHub" -Location "westcentralus" -AddressPrefix "10.0.0.0/16" -VirtualWan $virtualWan +$virtualHub = Get-AzVirtualHub -ResourceGroupName "testRg" -Name "testHub" +$hubVnetConnectionId = "/subscriptions/testSub/resourceGroups/testRg/providers/Microsoft.Network/virtualHubs/testHub/hubVirtualNetworkConnections/testCon" +Get-AzVHubOutboundRoute -VirtualHubObject $virtualHub -ResourceUri $hubVnetConnectionId -VirtualWanConnectionType "HubVirtualNetworkConnection" +``` + +```output +Value : [ + { + "Prefix": "10.2.0.0/16", + "BgpCommunities": "4293853166", + "AsPath": "" + } + ] +``` + +This command gets the outbound routes of the virtual hub spoke vnet connection. + + +#### New-AzVHubRoute + +#### SYNOPSIS +Creates a VHubRoute object which can be passed as parameter to the New-AzVHubRouteTable command. + +#### SYNTAX + +```powershell +New-AzVHubRoute -Destination -DestinationType -NextHop -Name + -NextHopType [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +$rgName = "testRg" +$firewallName = "testFirewall" +$firewall = Get-AzFirewall -Name $firewallName -ResourceGroupName $rgName +New-AzVHubRoute -Name "private-traffic" -Destination @("10.30.0.0/16", "10.40.0.0/16") -DestinationType "CIDR" -NextHop $firewall.Id -NextHopType "ResourceId" +``` + +```output +Name : private-traffic +DestinationType : CIDR +Destinations : {10.30.0.0/16, 10.40.0.0/16} +NextHopType : ResourceId +NextHop : /subscriptions/testSub/resourceGroups/testRg/providers/Microsoft.Network/azureFirewalls/testFirewall +``` + +The above command will create a VHubRoute object with nextHop as the specified Firewall which can then be added to a VHubRouteTable resource. + ++ Example 2 + +```powershell +$rgName = "testRg" +$hubName = "testHub" +$hubVnetConnName = "testHubVnetConn" +$hubVnetConnection = Get-AzVirtualHubVnetConnection -Name $hubVnetConnName -ParentResourceName $hubName -ResourceGroupName $rgName +New-AzVHubRoute -Name "nva-traffic" -Destination @("10.20.0.0/16", "10.50.0.0/16") -DestinationType "CIDR" -NextHop $hubVnetConnection.Id -NextHopType "ResourceId" +``` + +```output +Name : private-traffic +DestinationType : CIDR +Destinations : {10.30.0.0/16, 10.40.0.0/16} +NextHopType : ResourceId +NextHop : /subscriptions/testSub/resourceGroups/testRg/providers/Microsoft.Network/virtualHubs/testHub/hubVirtualNetworkConnections/testHubVnetConn +``` + +The above command will create a VHubRoute object with nextHop as the specified hubVnetConnection which can then be added to a VHubRouteTable resource. + ++ Example 3 + + + +```powershell +$hub = Get-AzVirtualHub -ResourceGroupName "rgname" -Name "virtual-hub-name" +$hubVnetConn = Get-AzVirtualHubVnetConnection -ParentObject $hub -Name "connection-name" +$hubVnetConn + +Name : conn_2 +Id : /subscriptions/{subscriptionID}/resourceGroups/{rgname}/providers/Microsoft.Network/virtualHubs/{virtual-hub-name}/hubVirtualNetworkConnections/conn_2 +RemoteVirtualNetwork : /subscriptions/{subscriptionID}/resourceGroups/{rgname}/providers/Microsoft.Network/virtualNetworks/rVnet_2 +EnableInternetSecurity : True +ProvisioningState : Succeeded +RoutingConfiguration : { + "AssociatedRouteTable": { + "Id": "/subscriptions/{subscriptionID}/resourceGroups/{rgname}/providers/Microsoft.Network/virtualHubs/{virtual-hub-name}/hubRouteTables/defaultRouteTable" + }, + "PropagatedRouteTables": { + "Labels": [ + "default" + ], + "Ids": [ + { + "Id": + "/subscriptions/{subscriptionID}/resourceGroups/{rgname}/providers/Microsoft.Network/virtualHubs/{virtual-hub-name}/hubRouteTables/defaultRouteTable" + } + ] + }, + "VnetRoutes": { + "StaticRoutes": [] + } + } + +$staticRoute1 = New-AzStaticRoute -Name "static_route1" -AddressPrefix @("10.2.1.0/24", "10.2.3.0/24") -NextHopIpAddress "10.2.0.5" +$routingConfig = $hubVnetConn.RoutingConfiguration +$routingConfig.VnetRoutes.StaticRoutes = @($staticRoute1) +$routingConfig +AssociatedRouteTable : Microsoft.Azure.Commands.Network.Models.PSResourceId +PropagatedRouteTables : { + "Labels": [ + "default" + ], + "Ids": [ + { + "Id": + "/subscriptions/{subscriptionID}/resourceGroups/{rgname}/providers/Microsoft.Network/virtualHubs/rTestHub1/hubRouteTables/defaultRouteTable" + } + ] + } +VnetRoutes : { + "StaticRoutes": [ + { + "Name": "static_route1", + "AddressPrefixes": [ + "10.2.1.0/24", + "10.2.3.0/24" + ], + "NextHopIpAddress": "10.2.0.5" + } + ] + } + +Update-AzVirtualHubVnetConnection -InputObject $hubVnetConn -RoutingConfiguration $routingConfig +``` + +The above commands will get the RoutingConfiguration of an already existing AzVHubRoute and then add a static route on the connection. Alternatively, if you hope to create a new connection with the static route within it, please see Example 1 [here.](New-AzRoutingConfiguration.md) + + +#### New-AzVHubRouteTable + +#### SYNOPSIS +Creates a hub route table resource associated with a VirtualHub. + +#### SYNTAX + ++ ByVirtualHubName (Default) +```powershell +New-AzVHubRouteTable -ResourceGroupName -ParentResourceName -Name + -Route -Label [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVirtualHubObject +```powershell +New-AzVHubRouteTable -ParentObject -Name -Route -Label + [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVirtualHubResourceId +```powershell +New-AzVHubRouteTable -ParentResourceId -Name -Route -Label + [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +New-AzVirtualWan -ResourceGroupName "testRg" -Name "testWan" -Location "westcentralus" -VirtualWANType "Standard" -AllowVnetToVnetTraffic -AllowBranchToBranchTraffic +$virtualWan = Get-AzVirtualWan -ResourceGroupName "testRg" -Name "testWan" + +New-AzVirtualHub -ResourceGroupName "testRg" -Name "testHub" -Location "westcentralus" -AddressPrefix "10.0.0.0/16" -VirtualWan $virtualWan +$virtualHub = Get-AzVirtualHub -ResourceGroupName "testRg" -Name "testHub" + +$fwIp = New-AzFirewallHubPublicIpAddress -Count 1 +$hubIpAddresses = New-AzFirewallHubIpAddress -PublicIP $fwIp +New-AzFirewall -Name "testFirewall" -ResourceGroupName "testRg" -Location "westcentralus" -Sku AZFW_Hub -VirtualHubId $virtualHub.Id -HubIPAddress $hubIpAddresses +$firewall = Get-AzFirewall -Name "testFirewall" -ResourceGroupName "testRg" + +$route1 = New-AzVHubRoute -Name "private-traffic" -Destination @("10.30.0.0/16", "10.40.0.0/16") -DestinationType "CIDR" -NextHop $firewall.Id -NextHopType "ResourceId" +New-AzVHubRouteTable -ResourceGroupName "testRg" -VirtualHubName "testHub" -Name "testRouteTable" -Route @($route1) -Label @("testLabel") +``` + +```output +Name : testRouteTable +Id : /subscriptions/testSub/resourceGroups/testRg/providers/Microsoft.Network/virtualHubs/testHub/hubRouteTables/testRouteTable +ProvisioningState : Succeeded +Labels : {testLabel} +Routes : [ + { + "Name": "private-traffic", + "DestinationType": "CIDR", + "Destinations": [ + "10.30.0.0/16", + "10.40.0.0/16" + ], + "NextHopType": "ResourceId", + "NextHop": "/subscriptions/testSub/resourceGroups/testRg/providers/Microsoft.Network/azureFirewalls/testFirewall" + } + ] +AssociatedConnections : [] +PropagatingConnections : [] +``` + +This command creates a hub route table of the virtual hub. + + +#### Get-AzVHubRouteTable + +#### SYNOPSIS +Retrieves a hub route table resource associated with a VirtualHub. + +#### SYNTAX + ++ ByVirtualHubName (Default) +```powershell +Get-AzVHubRouteTable -ResourceGroupName -HubName [-Name ] + [-DefaultProfile ] [] +``` + ++ ByVirtualHubObject +```powershell +Get-AzVHubRouteTable -VirtualHub [-Name ] [-DefaultProfile ] + [] +``` + ++ ByVirtualHubResourceId +```powershell +Get-AzVHubRouteTable -ParentResourceId [-Name ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +New-AzVirtualWan -ResourceGroupName "testRg" -Name "testWan" -Location "westcentralus" -VirtualWANType "Standard" -AllowVnetToVnetTraffic -AllowBranchToBranchTraffic +$virtualWan = Get-AzVirtualWan -ResourceGroupName "testRg" -Name "testWan" +New-AzVirtualHub -ResourceGroupName "testRg" -Name "testHub" -Location "westcentralus" -AddressPrefix "10.0.0.0/16" -VirtualWan $virtualWan +$virtualHub = Get-AzVirtualHub -ResourceGroupName "testRg" -Name "testHub" +$fwIp = New-AzFirewallHubPublicIpAddress -Count 1 +$hubIpAddresses = New-AzFirewallHubIpAddress -PublicIP $fwIp +New-AzFirewall -Name "testFirewall" -ResourceGroupName "testRg" -Location "westcentralus" -Sku AZFW_Hub -VirtualHubId $virtualHub.Id -HubIPAddress $hubIpAddresses +$firewall = Get-AzFirewall -Name "testFirewall" -ResourceGroupName "testRg" +$route1 = New-AzVHubRoute -Name "private-traffic" -Destination @("10.30.0.0/16", "10.40.0.0/16") -DestinationType "CIDR" -NextHop $firewall.Id -NextHopType "ResourceId" +New-AzVHubRouteTable -ResourceGroupName "testRg" -VirtualHubName "testHub" -Name "testRouteTable" -Route @($route1) -Label @("testLabel") +Get-AzVHubRouteTable -ResourceGroupName "testRg" -VirtualHubName "testHub" -Name "testRouteTable" +``` + +```output +Name : testRouteTable +Id : /subscriptions/testSub/resourceGroups/testRg/providers/Microsoft.Network/virtualHubs/testHub/hubRouteTables/testRouteTable +ProvisioningState : Succeeded +Labels : {testLabel} +Routes : [ + { + "Name": "private-traffic", + "DestinationType": "CIDR", + "Destinations": [ + "10.30.0.0/16", + "10.40.0.0/16" + ], + "NextHopType": "ResourceId", + "NextHop": "/subscriptions/testSub/resourceGroups/testRg/providers/Microsoft.Network/azureFirewalls/testFirewall" + } + ] +AssociatedConnections : [] +PropagatingConnections : [] +``` + +This command gets the hub route table of the virtual hub. + ++ Example 2 + +```powershell +$rgName = "testRg" +$virtualHubName = "testHub" +Get-AzVHubRouteTable -ResourceGroupName $rgName -VirtualHubName $virtualHubName +``` + +```output +Name : defaultRouteTable +Id : /subscriptions/testSub/resourceGroups/testRg/providers/Microsoft.Network/virtualHubs/testHub/hubRouteTables/defaultRouteTable +ProvisioningState : Succeeded +Labels : {testLabel} +Routes : [] +AssociatedConnections : [] +PropagatingConnections : [] + + +Name : noneRouteTable +Id : /subscriptions/testSub/resourceGroups/testRg/providers/Microsoft.Network/virtualHubs/testHub/hubRouteTables/noneRouteTable +ProvisioningState : Succeeded +Labels : {testLabel} +Routes : [] +AssociatedConnections : [] +PropagatingConnections : [] +``` + +This command lists all the hub route tables in the specified VirtualHub. + + +#### Remove-AzVHubRouteTable + +#### SYNOPSIS +Delete a hub route table resource associated with a VirtualHub. + +#### SYNTAX + ++ ByVHubRouteTableName (Default) +```powershell +Remove-AzVHubRouteTable -ResourceGroupName -ParentResourceName -Name [-AsJob] + [-Force] [-PassThru] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + ++ ByVirtualHubObject +```powershell +Remove-AzVHubRouteTable -Name -ParentObject [-AsJob] [-Force] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVHubRouteTableObject +```powershell +Remove-AzVHubRouteTable -InputObject [-AsJob] [-Force] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVHubRouteTableResourceId +```powershell +Remove-AzVHubRouteTable -ResourceId [-AsJob] [-Force] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$testRouteTable = Get-AzVHubRouteTable -ResourceGroupName "testRg" -VirtualHubName "testHub" -Name "testRouteTable" +Remove-AzVHubRouteTable -ResourceGroupName "testRg" -VirtualHubName "testHub" -Name "testRouteTable" +``` + +This command deletes the hub route table of the virtual hub. + + +#### Update-AzVHubRouteTable + +#### SYNOPSIS +Delete a hub route table resource associated with a VirtualHub. + +#### SYNTAX + ++ ByVHubRouteTableName (Default) +```powershell +Update-AzVHubRouteTable -ResourceGroupName -ParentResourceName -Name + [-Route ] [-Label ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVirtualHubObject +```powershell +Update-AzVHubRouteTable -Name -ParentObject [-Route ] + [-Label ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVHubRouteTableObject +```powershell +Update-AzVHubRouteTable -InputObject [-Route ] [-Label ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVHubRouteTableResourceId +```powershell +Update-AzVHubRouteTable -ResourceId [-Route ] [-Label ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzVirtualWan -ResourceGroupName "testRg" -Name "testWan" -Location "westcentralus" -VirtualWANType "Standard" -AllowVnetToVnetTraffic -AllowBranchToBranchTraffic +$virtualWan = Get-AzVirtualWan -ResourceGroupName "testRg" -Name "testWan" + +New-AzVirtualHub -ResourceGroupName "testRg" -Name "testHub" -Location "westcentralus" -AddressPrefix "10.0.0.0/16" -VirtualWan $virtualWan +$virtualHub = Get-AzVirtualHub -ResourceGroupName "testRg" -Name "testHub" + +$fwIp = New-AzFirewallHubPublicIpAddress -Count 1 +$hubIpAddresses = New-AzFirewallHubIpAddress -PublicIP $fwIp +New-AzFirewall -Name "testFirewall" -ResourceGroupName "testRg" -Location "westcentralus" -Sku AZFW_Hub -VirtualHubId $virtualHub.Id -HubIPAddress $hubIpAddresses +$firewall = Get-AzFirewall -Name "testFirewall" -ResourceGroupName "testRg" + +$route1 = New-AzVHubRoute -Name "private-traffic" -Destination @("10.30.0.0/16", "10.40.0.0/16") -DestinationType "CIDR" -NextHop $firewall.Id -NextHopType "ResourceId" +New-AzVHubRouteTable -ResourceGroupName "testRg" -VirtualHubName "testHub" -Name "testRouteTable" -Route @($route1) -Label @("testLabel") +Get-AzVHubRouteTable -ResourceGroupName "testRg" -VirtualHubName "testHub" -Name "testRouteTable" + +$route2 = New-AzVHubRoute -Name "internet-traffic" -Destination @("0.0.0.0/0") -DestinationType "CIDR" -NextHop $firewall.Id -NextHopType "ResourceId" +Update-AzVHubRouteTable -ResourceGroupName "testRg" -VirtualHubName "testHub" -Name "testRouteTable" -Route @($route2) +Get-AzVHubRouteTable -ResourceGroupName "testRg" -VirtualHubName "testHub" -Name "testRouteTable" +``` + +```output +Name : testRouteTable +Id : /subscriptions/testSub/resourceGroups/testRg/providers/Microsoft.Network/virtualHubs/testHub/hubRouteTables/testRouteTable +ProvisioningState : Succeeded +Labels : {testLabel} +Routes : [ + { + "Name": "internet-traffic", + "DestinationType": "CIDR", + "Destinations": [ + "0.0.0.0/0" + ], + "NextHopType": "ResourceId", + "NextHop": "/subscriptions/testSub/resourceGroups/testRg/providers/Microsoft.Network/azureFirewalls/testFirewall" + } + ] +AssociatedConnections : [] +PropagatingConnections : [] +``` + +This command deletes the hub route table of the virtual hub. + + +#### New-AzVirtualApplianceAdditionalNicProperty + +#### SYNOPSIS +Define a Network Virtual Appliance Additional Nic Property for the resource. + +#### SYNTAX + +```powershell +New-AzVirtualApplianceAdditionalNicProperty -NicName -HasPublicIP [-AddressFamily ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$var=New-AzVirtualApplianceAdditionalNicProperty -NicName "sdwan" -HasPublicIp $true +``` + +Create an Additional Nic Property object to be used with New-AzNetworkVirtualAppliance command. + + +#### Update-AzVirtualApplianceInboundSecurityRule + +#### SYNOPSIS +Update the Inbound Security Rule of a Network Virtual Appliance Resource + +#### SYNTAX + ++ ResourceNameParameterSet (Default) +```powershell +Update-AzVirtualApplianceInboundSecurityRule -ResourceGroupName -VirtualApplianceName + -Name [-RuleType ] + -Rule + [-Force] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ResourceObjectParameterSet +```powershell +Update-AzVirtualApplianceInboundSecurityRule -VirtualAppliance -Name + [-RuleType ] + -Rule + [-Force] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ResourceIdParameterSet +```powershell +Update-AzVirtualApplianceInboundSecurityRule -VirtualApplianceResourceId -Name + [-RuleType ] + -Rule + [-Force] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Update-AzVirtualApplianceInboundSecurityRule -ResourceGroupName InboundRuleRg -VirtualApplianceName nva1 -Name ruleCollection1 -RuleType Permanent -Rule $inbound +``` + +The above command creates or updates the Inbound Security rule with the given Rule collection name: ruleCollection1 on the NVA: nva1 with rule type permanent having rules as defined in the rules property. The Inbound Security Rule will created an NSG rule & a SLB LB rule. + ++ Example 2 +```powershell +Update-AzVirtualApplianceInboundSecurityRule -ResourceGroupName InboundRuleRg -VirtualApplianceName nva1 -Name ruleCollection2 -RuleType AutoExpire -Rule $inbound +``` + +The above command creates or updates the Inbound Security rule with the given Rule collection name: ruleCollection2 on the NVA: nva1 with rule type Auto Expire having rules as defined in the rules property. The Inbound Security Rule will created only an NSG rule. + + +#### New-AzVirtualApplianceInboundSecurityRulesProperty + +#### SYNOPSIS +Define Inbound Security Rules Property + +#### SYNTAX + +```powershell +New-AzVirtualApplianceInboundSecurityRulesProperty -Name -Protocol + -SourceAddressPrefix [-DestinationPortRange ] [-DestinationPortRangeList ] + -AppliesOn [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzVirtualApplianceInboundSecurityRulesProperty -Name InboundRule1 -Protocol TCP -SourceAddressPrefix * -DestinationPortRangeList "80-120","121-124" -AppliesOn "publicip1" +``` + +The above command defines the rule configuration having values as below: + +Name: InboundRule1 +Protocol: TCP +Source Address Prefix: * +Destination Port Range List: "80-120" & "121-124" +Applies on: publicip1 + +The rule with above property will configure a corresponding NSG rule and a Load Balancing rule on the SLB attached to the NVA, the LB rule will have the Frontend IP as publicip1 + + +#### New-AzVirtualApplianceInternetIngressIpsProperty + +#### SYNOPSIS +Define a Network Virtual Appliance Internet Ingress IPs Property for the resource. + +#### SYNTAX + +```powershell +New-AzVirtualApplianceInternetIngressIpsProperty -InternetIngressPublicIpId + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$IngressIps=New-AzVirtualApplianceInternetIngressIpsProperty -InternetIngressPublicIpId "/subscriptions/{subscriptionid}/resourceGroups/{rgname}/providers/Microsoft.Network/publicIPAddresses/{publicipname}" +``` + +Create an Internet Ingress Property object to be used with New-AzNetworkVirtualAppliance command. + ++ Example 2 +```powershell +$IngressIps=New-AzVirtualApplianceInternetIngressIpsProperty -InternetIngressPublicIpId "/subscriptions/{subscriptionid}/resourceGroups/{rgname}/providers/Microsoft.Network/publicIPAddresses/{publicipname}", "/subscriptions/{subscriptionid}/resourceGroups/{rgname}/providers/Microsoft.Network/publicIPAddresses/{publicipname}" +``` + +Creates a list of Internet Ingress Property object which has 2 Public IPs which can be attached to the Network Virtual Appliance resource. + + +#### New-AzVirtualApplianceIpConfiguration + +#### SYNOPSIS +Defines an IP configuration for an interface of virtual appliance. + +#### SYNTAX + +```powershell +New-AzVirtualApplianceIpConfiguration -Name -Primary + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$ipConfig1 = New-AzVirtualApplianceIpConfiguration -Name "publicnicipconfig" -Primary $true +``` + +This command creates a new IP configuration with the name "publicnicipconfig" and sets it as the primary IP configuration. + ++ Example 2 +```powershell +$ipConfig2 = New-AzVirtualApplianceIpConfiguration -Name "publicnicipconfig" -Primary $false +``` + +This command creates a new IP configuration with the name "publicnicipconfig" and sets it as the secondary IP configuration. + + +#### New-AzVirtualApplianceNetworkInterfaceConfiguration + +#### SYNOPSIS +Defines a Interface Configuration for Network Profile of Virtual Appliance. + +#### SYNTAX + +```powershell +New-AzVirtualApplianceNetworkInterfaceConfiguration -NicType + -IpConfiguration [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$ipConfig1 = New-AzVirtualApplianceIpConfiguration -Name "publicnicipconfig" -Primary $true +$ipConfig2 = New-AzVirtualApplianceIpConfiguration -Name "publicnicipconfig-2" -Primary $false +$nicConfig1 = New-AzVirtualApplianceNetworkInterfaceConfiguration -NicType "PublicNic" -IpConfiguration $ipConfig1, $ipConfig2 +``` + +Creating a new network interface configuration with nicType PublicNic and IP configurations $ipConfig1 and $ipConfig2. + ++ Example 2 +```powershell +$ipConfig3 = New-AzVirtualApplianceIpConfiguration -Name "privatenicipconfig" -Primary $true +$ipConfig4 = New-AzVirtualApplianceIpConfiguration -Name "privatenicipconfig-2" -Primary $false +$nicConfig2 = New-AzVirtualApplianceNetworkInterfaceConfiguration -NicType "PrivateNic" -IpConfiguration $ipConfig3, $ipConfig4 +``` + +Creating a new network interface configuration with nicType PrivateNic and IP configurations $ipConfig3 and $ipConfig4. + + +#### New-AzVirtualApplianceNetworkProfile + +#### SYNOPSIS +Define a Network Profile for virtual appliance. + +#### SYNTAX + +```powershell +New-AzVirtualApplianceNetworkProfile + -NetworkInterfaceConfiguration + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$ipConfig1 = New-AzVirtualApplianceIpConfiguration -Name "publicnicipconfig" -Primary $true +$ipConfig2 = New-AzVirtualApplianceIpConfiguration -Name "publicnicipconfig-2" -Primary $false +$nicConfig1 = New-AzVirtualApplianceNetworkInterfaceConfiguration -NicType "PublicNic" -IpConfiguration $ipConfig1, $ipConfig2 + +$ipConfig3 = New-AzVirtualApplianceIpConfiguration -Name "privatenicipconfig" -Primary $true +$ipConfig4 = New-AzVirtualApplianceIpConfiguration -Name "privatenicipconfig-2" -Primary $false +$nicConfig2 = New-AzVirtualApplianceNetworkInterfaceConfiguration -NicType "PrivateNic" -IpConfiguration $ipConfig3, $ipConfig4 + +$networkProfile = New-AzVirtualApplianceNetworkProfile -NetworkInterfaceConfiguration $nicConfig1, $nicConfig2 +``` + +Creates a network profile object using two PSVirtualApplianceNetworkInterfaceConfiguration + + +#### New-AzVirtualApplianceSite + +#### SYNOPSIS +Create a site connected to a Network Virtual Appliance. + +#### SYNTAX + ++ ResourceNameParameterSet (Default) +```powershell +New-AzVirtualApplianceSite -Name -ResourceGroupName -AddressPrefix + -O365Policy -NetworkVirtualApplianceId [-Tag ] [-Force] + [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ResourceIdParameterSet +```powershell +New-AzVirtualApplianceSite -ResourceId -AddressPrefix + -O365Policy -NetworkVirtualApplianceId [-Tag ] [-Force] + [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$nva = Get-AzNetworkVirtualAppliance -ResourceGroupName testrg -Name nva +$o365Policy = New-AzOffice365PolicyProperty -Allow -Optimize +$site = New-AzVirtualApplianceSite -ResourceGroupName testrg -Name testsite -NetworkVirtualApplianceId $nva.Id -AddressPrefix 10.0.1.0/24 -O365Policy $o365Policy +``` + +Create a new Virtual Appliance site in the resource group: testrg. + + +#### Get-AzVirtualApplianceSite + +#### SYNOPSIS +Get or List sites connected to Network Virtual Appliance resource(s). + +#### SYNTAX + ++ ResourceNameParameterSet (Default) +```powershell +Get-AzVirtualApplianceSite [-Name ] [-NetworkVirtualApplianceId ] [-ResourceGroupName ] + [-DefaultProfile ] [] +``` + ++ ResourceIdParameterSet +```powershell +Get-AzVirtualApplianceSite -ResourceId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzVirtualApplianceSite -Name testsite -NetworkVirtualApplianceId $nva.Id -ResourceGroupName testrg +``` + +```output +AddressPrefix : 10.0.1.0/24 +O365Policy : Microsoft.Azure.Commands.Network.Models.PSOffice365PolicyProperties +ProvisioningState : Succeeded +Name : testsite +Etag : 00000000-0000-0000-0000-000000000000 +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Network/networkVirtualAppliances/nva/virtualApplianceSites/testsite +``` + +Get a Virtual Appliance site resource. + ++ Example 2 +```powershell +Get-AzVirtualApplianceSite -NetworkVirtualApplianceId $nva.Id -ResourceGroupName testrg +``` + +```output +AddressPrefix : 10.0.1.0/24 +O365Policy : Microsoft.Azure.Commands.Network.Models.PSOffice365PolicyProperties +ProvisioningState : Succeeded +Name : testsite +Etag : 00000000-0000-0000-0000-000000000000 +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Network/networkVirtualAppliances/nva/virtualApplianceSites/testsite + +AddressPrefix : 10.0.2.0/24 +O365Policy : Microsoft.Azure.Commands.Network.Models.PSOffice365PolicyProperties +ProvisioningState : Succeeded +Name : testsite2 +Etag : 00000000-0000-0000-0000-000000000000 +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Network/networkVirtualAppliances/nva/virtualApplianceSites/testsite2 +``` + +List Virtual Appliance site resources in a Network Virtual Appliance. + + +#### Remove-AzVirtualApplianceSite + +#### SYNOPSIS +Remove a virtual appliance site from a Network Virtual Appliance resource. + +#### SYNTAX + ++ ResourceNameParameterSet (Default) +```powershell +Remove-AzVirtualApplianceSite -Name -NetworkVirtualApplianceId -ResourceGroupName + [-Force] [-PassThru] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ResourceIdParameterSet +```powershell +Remove-AzVirtualApplianceSite -ResourceId [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ResourceObjectParameterSet +```powershell +Remove-AzVirtualApplianceSite -VirtualApplianceSite [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzVirtualApplianceSite -Name testsite -ResourceGroupName testrg -NetworkVirtualApplianceId $nva.Id +``` + +Delete a Virtual Appliance site resource. + + +#### Update-AzVirtualApplianceSite + +#### SYNOPSIS +Change or Modify a Virtual Appliance site connected to a Network Virtual Appliance resource. + +#### SYNTAX + +```powershell +Update-AzVirtualApplianceSite -Name -ResourceGroupName -NetworkVirtualApplianceId + [-AddresssPrefix ] [-O365Policy ] [-Tag ] [-Force] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$nva=Get-AzNetworkVirtualAppliance -ResourceGroupName testrg -Name nva +Update-AzVirtualApplianceSite -Name testsite -ResourceGroupName testrg -AddresssPrefix 10.0.4.0/24 -NetworkVirtualApplianceId $nva.Id +``` + +Modify the address prefix for a Virtual Appliance site resource. + + +#### New-AzVirtualApplianceSkuProperty + +#### SYNOPSIS +Define a Network Virtual Appliance sku for the resource. + +#### SYNTAX + +```powershell +New-AzVirtualApplianceSkuProperty -VendorName -BundledScaleUnit -MarketPlaceVersion + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$var=New-AzVirtualApplianceSkuProperty -VendorName "barracudasdwanrelease" -BundledScaleUnit 1 -MarketPlaceVersion 'latest' +``` + +Create a Virtual Appliance Sku Properties object to be used with New-AzNetworkVirtualAppliance command. + + +#### New-AzVirtualHub + +#### SYNOPSIS +Creates an Azure VirtualHub resource. + +#### SYNTAX + ++ ByVirtualWanObject (Default) +```powershell +New-AzVirtualHub -ResourceGroupName -Name -VirtualWan -AddressPrefix + -Location [-HubVnetConnection ] + [-RouteTable ] [-Tag ] [-Sku ] [-PreferredRoutingGateway ] + [-HubRoutingPreference ] [-VirtualRouterAsn ] + [-VirtualRouterAutoScaleConfiguration ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVirtualWanResourceId +```powershell +New-AzVirtualHub -ResourceGroupName -Name -VirtualWanId -AddressPrefix + -Location [-HubVnetConnection ] + [-RouteTable ] [-Tag ] [-Sku ] [-PreferredRoutingGateway ] + [-HubRoutingPreference ] [-VirtualRouterAsn ] + [-VirtualRouterAutoScaleConfiguration ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName "testRG" -Name "myVirtualWAN" -Location "West US" +New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.1.0/24" +``` + +```output +VirtualWan : /subscriptions/{subscriptionId}resourceGroups/testRG/providers/Microsoft.Network/virtualWans/myVirtualWAN +ResourceGroupName : testRG +Name : westushub +Id : /subscriptions/{subscriptionId}resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub +AddressPrefix : 10.0.1.0/24 +RouteTable : +VirtualNetworkConnections : {} +RouteTables : {} +Location : West US +Sku : Standard +PreferredRoutingGateway : ExpressRoute +HubRoutingPreference : ExpressRoute +Type : Microsoft.Network/virtualHubs +ProvisioningState : Succeeded +``` + +The above will create a resource group "testRG", a Virtual WAN and a Virtual Hub in West US in that resource group in Azure. The virtual hub will have the address space "10.0.1.0/24". + ++ Example 2 + +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName "testRG" -Name "myVirtualWAN" -Location "West US" +New-AzVirtualHub -VirtualWanId $virtualWan.Id -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.1.0/24" -Location "West US" +``` + +```output +VirtualWan : /subscriptions/{subscriptionId}resourceGroups/testRG/providers/Microsoft.Network/virtualWans/myVirtualWAN +ResourceGroupName : testRG +Name : westushub +Id : /subscriptions/{subscriptionId}resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub +AddressPrefix : 10.0.1.0/24 +RouteTable : +VirtualNetworkConnections : {} +RouteTables : {} +Location : West US +Sku : Standard +PreferredRoutingGateway : ExpressRoute +HubRoutingPreference : ExpressRoute +Type : Microsoft.Network/virtualHubs +ProvisioningState : Succeeded +``` + +The above will create a resource group "testRG", a Virtual WAN and a Virtual Hub in West US in that resource group in Azure. The virtual hub will have the address space "10.0.1.0/24". + +This example is similar to Example 1, but uses a resource Id to reference the Virtual WAN that is required to create the virtual Hub. + ++ Example 3 + +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName "testRG" -Name "myVirtualWAN" -Location "West US" +$route1 = New-AzVirtualHubRoute -AddressPrefix @("10.0.0.0/16", "11.0.0.0/16") -NextHopIpAddress "12.0.0.5" +$route2 = New-AzVirtualHubRoute -AddressPrefix @("13.0.0.0/16") -NextHopIpAddress "14.0.0.5" +$routeTable = New-AzVirtualHubRouteTable -Route @($route1, $route2) +New-AzVirtualHub -VirtualWanId $virtualWan.Id -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.1.0/24" -RouteTable $routeTable +``` + +```output +VirtualWan : /subscriptions/{subscriptionId}resourceGroups/testRG/providers/Microsoft.Network/virtualWans/myVirtualWAN +ResourceGroupName : testRG +Name : westushub +Id : /subscriptions/{subscriptionId}resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub +AddressPrefix : 10.0.1.0/24 +RouteTable : Microsoft.Azure.Commands.Network.Models.PSVirtualHubRouteTable +VirtualNetworkConnections : {} +RouteTables : {} +Location : West US +Sku : Standard +PreferredRoutingGateway : ExpressRoute +HubRoutingPreference : ExpressRoute +Type : Microsoft.Network/virtualHubs +ProvisioningState : Succeeded +``` + +The above will create a resource group "testRG", a Virtual WAN and a Virtual Hub in West US in that resource group in Azure. The virtual hub will have the address space "10.0.1.0/24" and a route table attached. + +This example is similar to Example 2, but also attaches a route table to the virtual hub. + ++ Example 4 + +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName "testRG" -Name "myVirtualWAN" -Location "West US" +$autoscale = New-AzVirtualRouterAutoScaleConfiguration -MinCapacity 3 +New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.1.0/24" -HubRoutingPreference "VpnGateway" -VirtualRouterAutoScaleConfiguration $autoscale +``` + +```output +VirtualWan : /subscriptions/{subscriptionId}resourceGroups/testRG/providers/Microsoft.Network/virtualWans/myVirtualWAN +ResourceGroupName : testRG +Name : westushub +Id : /subscriptions/{subscriptionId}resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub +AddressPrefix : 10.0.1.0/24 +RouteTable : +Location : West US +Sku : Standard +HubRoutingPreference : VpnGateway +VirtualNetworkConnections : {} +Location : West US +Type : Microsoft.Network/virtualHubs +ProvisioningState : Succeeded +``` + +The above will create a resource group "testRG", a Virtual WAN and a Virtual Hub in West US in that resource group in Azure. The virtual hub will have preferred routing gateway as VPNGateway and minimum capacity 3. + + +#### Get-AzVirtualHub + +#### SYNOPSIS +Gets an Azure VirtualHub by Name and ResourceGroupName or lists all Virtual Hubs by ResourceGroupName/Subscription. + +#### SYNTAX + ++ ListBySubscriptionId (Default) +```powershell +Get-AzVirtualHub [-DefaultProfile ] + [] +``` + ++ ListByResourceGroupName +```powershell +Get-AzVirtualHub [-ResourceGroupName ] [-Name ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName "testRG" -Name "myVirtualWAN" -Location "West US" +New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.1.0/24" +Get-AzVirtualHub -ResourceGroupName "testRG" -Name "westushub" +``` + +```output +VirtualWan : /subscriptions/{subscriptionId}resourceGroups/testRG/providers/Microsoft.Network/virtualWans/myVirtualWAN +ResourceGroupName : testRG +Name : westushub +Id : /subscriptions/{subscriptionId}resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub +AddressPrefix : 10.0.1.0/24 +RouteTable : +VirtualNetworkConnections : {} +Location : West US +Type : Microsoft.Network/virtualHubs +ProvisioningState : Succeeded +``` + +The above will create a resource group "testRG", a Virtual WAN and a Virtual Hub in West US in that resource group in Azure. The virtual hub will have the address space "10.0.1.0/24". + +It then gets the virtual hub using its ResourceGroupName and ResourceName. + ++ Example 2 + +```powershell +Get-AzVirtualHub -Name westushub* +``` + +```output +VirtualWan : /subscriptions/{subscriptionId}resourceGroups/testRG/providers/Microsoft.Network/virtualWans/myVirtualWAN +ResourceGroupName : testRG +Name : westushub1 +Id : /subscriptions/{subscriptionId}resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub1 +AddressPrefix : 10.0.1.0/24 +RouteTable : +VirtualNetworkConnections : {} +Location : West US +Type : Microsoft.Network/virtualHubs +ProvisioningState : Succeeded + +VirtualWan : /subscriptions/{subscriptionId}resourceGroups/testRG/providers/Microsoft.Network/virtualWans/myVirtualWAN +ResourceGroupName : testRG +Name : westushub2 +Id : /subscriptions/{subscriptionId}resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub2 +AddressPrefix : 10.0.1.0/24 +RouteTable : +VirtualNetworkConnections : {} +Location : West US +Type : Microsoft.Network/virtualHubs +ProvisioningState : Succeeded +``` + +This cmdlet gets the virtual hub using filtering. + + +#### Remove-AzVirtualHub + +#### SYNOPSIS +Removes an Azure VirtualHub resource. + +#### SYNTAX + ++ ByVirtualHubName (Default) +```powershell +Remove-AzVirtualHub -ResourceGroupName -Name [-AsJob] [-Force] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVirtualHubResourceId +```powershell +Remove-AzVirtualHub -ResourceId [-AsJob] [-Force] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVirtualHubObject +```powershell +Remove-AzVirtualHub -InputObject [-AsJob] [-Force] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName "testRG" -Name "myVirtualWAN" -Location "West US" +New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.1.0/24" +Remove-AzVirtualHub -ResourceGroupName "testRG" -Name "westushub" +``` + +The above will create a resource group "testRG", a Virtual WAN and a Virtual Hub in West US in that resource group in Azure. The virtual hub will have the address space "10.0.1.0/24". + +It then deletes the virtual hub using its ResourceGroupName and ResourceName. + ++ Example 2 + +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName "testRG" -Name "myVirtualWAN" -Location "West US" +$virtualHub = New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.1.0/24" +Remove-AzVirtualHub -InputObject $virtualHub +``` + +The above will create a resource group "testRG", a Virtual WAN and a Virtual Hub in West US in that resource group in Azure. The virtual hub will have the address space "10.0.1.0/24". + +It then deletes the virtual hub using an input object. The input object is of type PSVirtualHub. + ++ Example 3 + +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName "testRG" -Name "myVirtualWAN" -Location "West US" +New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.1.0/24" +Get-AzVirtualHub -ResourceGroupName "testRG" -Name "westushub" | Remove-AzVirtualHub +``` + +The above will create a resource group "testRG", a Virtual WAN and a Virtual Hub in West US in that resource group in Azure. The virtual hub will have the address space "10.0.1.0/24". + +It then deletes the virtual hub using powershell piping using output from Get-AzVirtualHub. + + +#### Set-AzVirtualHub + +#### SYNOPSIS +Modifies a Virtual Hub to add a Virtual HUb Route Table to it. + +#### SYNTAX + ++ ByVirtualHubName (Default) +```powershell +Set-AzVirtualHub -ResourceGroupName -Name -RouteTable + [-Tag ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVirtualHubResourceId +```powershell +Set-AzVirtualHub -ResourceId -RouteTable [-Tag ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVirtualHubObject +```powershell +Set-AzVirtualHub -InputObject -RouteTable [-Tag ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$existingHub = Get-AzVirtualHub -ResourceGroupName "testRg" -Name "westushub" +$route1 = Add-AzVirtualHubRoute -DestinationType "CIDR" -Destination @("10.4.0.0/16", "10.5.0.0/16") -NextHopType "IPAddress" -NextHop @("10.0.0.68") +$routeTable1 = Add-AzVirtualHubRouteTable -Route @($route1) -Connection @("All_Vnets") -Name "routeTable1" +Set-AzVirtualHub -VirtualHub $existingHub -RouteTable @($routeTable1) +``` + +```output +VirtualWan : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualWans/testWan +ResourceGroupName : testRg +Name : westushub +Id : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubswestushub +AddressPrefix : 10.40.0.0/16 +RouteTable : Microsoft.Azure.Commands.Network.Models.PSVirtualHubRouteTable +VirtualNetworkExpressRouteConnections : +RouteTables : {routeTable1} +Location : westus +Sku : Standard +Type : Microsoft.Network/virtualHubs +ProvisioningState : Succeeded +``` + +First we create a Virtual Hub Route object, and use it to create a Virtual Hub Route Table resource. Then we set this route table resource to the virtual hub using the +Set-AzVirtualHub command. + + +#### Update-AzVirtualHub + +#### SYNOPSIS +Updates a virtual hub. + +#### SYNTAX + ++ ByVirtualHubName (Default) +```powershell +Update-AzVirtualHub -ResourceGroupName -Name [-AddressPrefix ] + [-HubVnetConnection ] [-RouteTable ] + [-Tag ] [-Sku ] [-PreferredRoutingGateway ] [-HubRoutingPreference ] + [-VirtualRouterAsn ] [-VirtualRouterAutoScaleConfiguration ] + [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVirtualHubResourceId +```powershell +Update-AzVirtualHub -ResourceId [-AddressPrefix ] + [-HubVnetConnection ] [-RouteTable ] + [-Tag ] [-Sku ] [-PreferredRoutingGateway ] [-HubRoutingPreference ] + [-VirtualRouterAsn ] [-VirtualRouterAutoScaleConfiguration ] + [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVirtualHubObject +```powershell +Update-AzVirtualHub -InputObject [-AddressPrefix ] + [-HubVnetConnection ] [-RouteTable ] + [-Tag ] [-Sku ] [-PreferredRoutingGateway ] [-HubRoutingPreference ] + [-VirtualRouterAsn ] [-VirtualRouterAutoScaleConfiguration ] + [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName "testRG" -Name "myVirtualWAN" -Location "West US" +$virtualHub = New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.1.0/24" +Update-AzVirtualHub -InputObject $virtualHub -AddressPrefix "10.0.2.0/24" +``` + +```output +VirtualWan : /subscriptions/{subscriptionId}resourceGroups/testRG/providers/Microsoft.Network/virtualWans/myVirtualWAN +ResourceGroupName : testRG +Name : westushub +Id : /subscriptions/{subscriptionId}resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub +AddressPrefix : 10.0.2.0/24 +RouteTable : +VirtualNetworkConnections : {} +Location : West US +Sku : Standard +Type : Microsoft.Network/virtualHubs +ProvisioningState : Succeeded +``` + +The above will create a resource group "testRG", a Virtual WAN and a Virtual Hub in West US in that resource group in Azure. The virtual hub will have the address space "10.0.1.0/24". + ++ Example 2 + +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName "testRG" -Name "myVirtualWAN" -Location "West US" +New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.1.0/24" +$route1 = New-AzVirtualHubRoute -AddressPrefix @("10.0.0.0/16", "11.0.0.0/16") -NextHopIpAddress "12.0.0.5" +$route2 = New-AzVirtualHubRoute -AddressPrefix @("13.0.0.0/16") -NextHopIpAddress "14.0.0.5" +$routeTable = New-AzVirtualHubRouteTable -Route @($route1, $route2) +Update-AzVirtualHub -ResourceGroupName "testRG" -Name "westushub" -RouteTable $routeTable +``` + +```output +VirtualWan : /subscriptions/{subscriptionId}resourceGroups/testRG/providers/Microsoft.Network/virtualWans/myVirtualWAN +ResourceGroupName : testRG +Name : westushub +Id : /subscriptions/{subscriptionId}resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub +AddressPrefix : 192.168.2.0/24 +RouteTable : Microsoft.Azure.Commands.Network.Models.PSVirtualHubRouteTable +VirtualNetworkConnections : {} +Location : West US +Sku : Standard +Type : Microsoft.Network/virtualHubs +ProvisioningState : Succeeded +``` + +The above will create a resource group "testRG", a Virtual WAN and a Virtual Hub in West US in that resource group in Azure. The virtual hub will have the address space "10.0.1.0/24". +This example is similar to Example 1, but also attaches a route table to the virtual hub. + ++ Example 3 + +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName "testRG" -Name "myVirtualWAN" -Location "West US" +New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.1.0/24" +Update-AzVirtualHub -ResourceGroupName "testRG" -Name "westushub" -HubRoutingPreference "VpnGateway" +``` + +```output +VirtualWan : /subscriptions/{subscriptionId}resourceGroups/testRG/providers/Microsoft.Network/virtualWans/myVirtualWAN +ResourceGroupName : testRG +Name : westushub +Id : /subscriptions/{subscriptionId}resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub +AddressPrefix : 10.0.1.0/24 +RouteTable : +Location : West US +Sku : Standard +HubRoutingPreference : VpnGateway +VirtualNetworkConnections : {} +Location : West US +Type : Microsoft.Network/virtualHubs +ProvisioningState : Succeeded +``` + +The above will create a resource group "testRG", a Virtual WAN and a Virtual Hub in West US in that resource group in Azure. The virtual hub will have preferred routing gateway as ExpressRoute initially and will then be updated to VpnGateway. + + +#### New-AzVirtualHubBgpConnection + +#### SYNOPSIS +The New-AzVirtualHubBgpConnection cmdlet creates a HubBgpConnection resource that peers the Azure Virtual WAN Hub Router with a BGP-enabled peer in a virtual network connected to the Virtual WAN Hub. + +#### SYNTAX + ++ ByVirtualHubNameByHubVirtualNetworkConnectionObject (Default) +```powershell +New-AzVirtualHubBgpConnection -ResourceGroupName -VirtualHubName -PeerIp + -PeerAsn -Name -VirtualHubVnetConnection [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVirtualHubNameByHubVirtualNetworkConnectionResourceId +```powershell +New-AzVirtualHubBgpConnection -ResourceGroupName -VirtualHubName -PeerIp + -PeerAsn -Name -VirtualHubVnetConnectionId [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVirtualHubObjectByHubVirtualNetworkConnectionObject +```powershell +New-AzVirtualHubBgpConnection -PeerIp -PeerAsn -Name + -VirtualHubVnetConnection -VirtualHub [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVirtualHubResourceIdByHubVirtualNetworkConnectionObject +```powershell +New-AzVirtualHubBgpConnection -PeerIp -PeerAsn -Name + -VirtualHubVnetConnection -VirtualHubId [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVirtualHubObjectByHubVirtualNetworkConnectionResourceId +```powershell +New-AzVirtualHubBgpConnection -PeerIp -PeerAsn -Name + -VirtualHubVnetConnectionId -VirtualHub [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVirtualHubResourceIdByHubVirtualNetworkConnectionResourceId +```powershell +New-AzVirtualHubBgpConnection -PeerIp -PeerAsn -Name + -VirtualHubVnetConnectionId -VirtualHubId [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$frontendSubnet = New-AzVirtualNetworkSubnetConfig -Name frontendSubnet -AddressPrefix "192.168.1.0/24" +$backendSubnet = New-AzVirtualNetworkSubnetConfig -Name backendSubnet -AddressPrefix "192.168.2.0/24" +$remoteVirtualNetwork = New-AzVirtualNetwork -Name "testVirtualNetwork" -ResourceGroupName "testRG" -Location "West US" -AddressPrefix "192.168.0.0/16" -Subnet $frontendSubnet,$backendSubnet +$virtualWan = New-AzVirtualWan -ResourceGroupName "testRG" -Name "testWan" -Location "West US" +New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "testHub" -AddressPrefix "10.0.1.0/24" +$hubVnetConnection = New-AzVirtualHubVnetConnection -ResourceGroupName "testRG" -VirtualHubName "testHub" -Name "testVnetConnection" -RemoteVirtualNetwork $remoteVirtualNetwork +New-AzVirtualHubBgpConnection -ResourceGroupName "testRG" -VirtualHubName "testHub" -PeerIp 192.168.1.5 -PeerAsn 20000 -Name "testBgpConnection" -VirtualHubVnetConnection $hubVnetConnection +``` + +```output +Name : testBgpConnection +Id : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/testHub/bgpConnections/testBgpConnection +HubVirtualNetworkConnection : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/testHub/hubVirtualNetworkConnections/testVnetConnection +PeerAsn : 20000 +PeerIp : 192.168.1.5 +``` + +The above will create a resource group, Virtual WAN, Virtual Network, Virtual WAN Hub in West US and connect the Virtual Network to the Virtual WAN Hub in that resource group in Azure. A Virtual WAN Hub BGP Connection will be created thereafter which will peer the Virtual WAN Hub with the network appliance deployed in the Virtual Network. + ++ Example 2 +```powershell +$hubVnetConnection = Get-AzVirtualHubVnetConnection -ResourceGroupName "testRG" -VirtualHubName "testHub" -Name "testVnetConnection" +Get-AzVirtualHub -ResourceGroupName "testRG" -Name "testHub" | New-AzVirtualHubBgpConnection -PeerIp 192.168.1.5 -PeerAsn 20000 -Name "testBgpConnection" -VirtualHubVnetConnection $hubVnetConnection +``` + +```output +Name : testBgpConnection +Id : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/testHub/bgpConnections/testBgpConnection +HubVirtualNetworkConnection : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/testHub/hubVirtualNetworkConnections/testVnetConnection +PeerAsn : 20000 +PeerIp : 192.168.1.5 +``` + +The above will create a Virtual WAN Hub BGP Connection for existing Virtual WAN Hub and Virtual WAN Hub Vnet Connection using powershell piping on the output from Get-AzVirtualHub. + + +#### Get-AzVirtualHubBgpConnection + +#### SYNOPSIS +The Get-AzVirtualHubBgpConnection cmdlet gets a Virtual WAN Hub BGP Connection in a Virtual WAN Hub or lists all Virtual WAN Hub BGP Connections in a Virtual WAN Hub. + +#### SYNTAX + ++ ByVirtualHubName (Default) +```powershell +Get-AzVirtualHubBgpConnection -ResourceGroupName -VirtualHubName [-Name ] + [-DefaultProfile ] [] +``` + ++ ByVirtualHubObject +```powershell +Get-AzVirtualHubBgpConnection [-Name ] -VirtualHub + [-DefaultProfile ] [] +``` + ++ ByHubBgpConnectionResourceId +```powershell +Get-AzVirtualHubBgpConnection -ResourceId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$frontendSubnet = New-AzVirtualNetworkSubnetConfig -Name frontendSubnet -AddressPrefix "192.168.1.0/24" +$backendSubnet = New-AzVirtualNetworkSubnetConfig -Name backendSubnet -AddressPrefix "192.168.2.0/24" +$remoteVirtualNetwork = New-AzVirtualNetwork -Name "testVirtualNetwork" -ResourceGroupName "testRG" -Location "West US" -AddressPrefix "192.168.0.0/16" -Subnet $frontendSubnet,$backendSubnet +$virtualWan = New-AzVirtualWan -ResourceGroupName "testRG" -Name "testWan" -Location "West US" +New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "testHub" -AddressPrefix "10.0.1.0/24" +$hubVnetConnection = New-AzVirtualHubVnetConnection -ResourceGroupName "testRG" -VirtualHubName "testHub" -Name "testVnetConnection" -RemoteVirtualNetwork $remoteVirtualNetwork +New-AzVirtualHubBgpConnection -ResourceGroupName "testRG" -VirtualHubName "testHub" -PeerIp 192.168.1.5 -PeerAsn 20000 -Name "testBgpConnection" -VirtualHubVnetConnection $hubVnetConnection + +Get-AzVirtualHubBgpConnection -ResourceGroupName "testRG" -VirtualHubName "testHub" -Name "testBgpConnection" +``` + +```output +Name : testBgpConnection +Id : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/testHub/bgpConnections/testBgpConnection +HubVirtualNetworkConnection : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/testHub/hubVirtualNetworkConnections/testVnetConnection +PeerAsn : 20000 +PeerIp : 192.168.1.5 +``` + +The above will create a resource group, Virtual WAN, Virtual Network, Virtual WAN Hub in West US and connect the Virtual Network to the Virtual WAN Hub in that resource group in Azure. A Virtual WAN Hub BGP Connection will be created thereafter which will peer the Virtual WAN Hub with the network appliance deployed in the Virtual Network. + +After the Virtual WAN Hub BGP Connection is created, it gets the BGP Connection using its resource group name, the Virtual WAN Hub name and the BGP Connection name. + ++ Example 2 + +```powershell +Get-AzVirtualHubBgpConnection -ResourceGroupName "testRG" -VirtualHubName "testHub" -Name test* +``` + +```output +Name : testBgpConnection1 +Id : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/testHub/bgpConnections/testBgpConnection1 +HubVirtualNetworkConnection : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/testHub/hubVirtualNetworkConnections/testVnetConnection +PeerAsn : 20000 +PeerIp : 192.168.1.5 + +Name : testBgpConnection2 +Id : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/testHub/bgpConnections/testBgpConnection2 +HubVirtualNetworkConnection : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/testHub/hubVirtualNetworkConnections/testVnetConnection +PeerAsn : 20000 +PeerIp : 192.168.1.6 +``` + +This cmdlet lists all the Virtual WAN Hub BGP Connections starting with "test" using its resource group name and the Virtual WAN Hub name. + + +#### Remove-AzVirtualHubBgpConnection + +#### SYNOPSIS +The Remove-AzVirtualHubBgpConnection cmdlet removes a HubBgpConnection resource that peers the Azure Virtual WAN Hub Router with a BGP-enabled peer in a virtual network connected to the Virtual WAN Hub. + +#### SYNTAX + ++ ByVirtualHubName (Default) +```powershell +Remove-AzVirtualHubBgpConnection -ResourceGroupName -VirtualHubName -Name [-AsJob] + [-Force] [-PassThru] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + ++ ByVirtualHubObject +```powershell +Remove-AzVirtualHubBgpConnection -Name -VirtualHub [-AsJob] [-Force] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByHubBgpConnectionObject +```powershell +Remove-AzVirtualHubBgpConnection -InputObject [-AsJob] [-Force] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByHubBgpConnectionResourceId +```powershell +Remove-AzVirtualHubBgpConnection -ResourceId [-AsJob] [-Force] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzVirtualHubBgpConnection -ResourceGroupName "testRG" -VirtualHubName "testHub" -Name "testBgpConnection" +``` + +The above will remove a Virtual WAN Hub BGP Connection using its resource group name, the Virtual WAN Hub name and the Connection name. + ++ Example 2 +```powershell +Get-AzVirtualHubBgpConnection -ResourceGroupName "testRG" -VirtualHubName "testHub" -Name "testBgpConnection" | Remove-AzVirtualHubBgpConnection +``` + +The above will remove a Virtual WAN Hub BGP Connection using powershell piping on the output from Get-AzVirtualHubBgpConnection. + ++ Example 3 +```powershell +$bgpConnectionId = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Network/virtualHubs/{virtualHubName}/bgpConnections/{bgpConnectionName}" +Remove-AzVirtualHubBgpConnection -ResourceId $bgpConnectionId +``` + +The above will remove a Virtual WAN Hub BGP Connection using the BGP Connection resource id. + + +#### Update-AzVirtualHubBgpConnection + +#### SYNOPSIS +The Update-AzVirtualHubBgpConnection cmdlet updates an existing HubBgpConnection resource (Virtual WAN Hub BGP Connection). + +#### SYNTAX + ++ ByVirtualHubNameByHubVirtualNetworkConnectionObject (Default) +```powershell +Update-AzVirtualHubBgpConnection -ResourceGroupName -VirtualHubName -Name + -PeerIp -PeerAsn -VirtualHubVnetConnection [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVirtualHubNameByHubVirtualNetworkConnectionResourceId +```powershell +Update-AzVirtualHubBgpConnection -ResourceGroupName -VirtualHubName -Name + -PeerIp -PeerAsn -VirtualHubVnetConnectionId [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVirtualHubObjectByHubVirtualNetworkConnectionObject +```powershell +Update-AzVirtualHubBgpConnection -Name -PeerIp -PeerAsn + -VirtualHubVnetConnection -VirtualHub [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVirtualHubObjectByHubVirtualNetworkConnectionResourceId +```powershell +Update-AzVirtualHubBgpConnection -Name -PeerIp -PeerAsn + -VirtualHubVnetConnectionId -VirtualHub [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByHubBgpConnectionResourceIdByHubVirtualNetworkConnectionObject +```powershell +Update-AzVirtualHubBgpConnection -PeerIp -PeerAsn + -VirtualHubVnetConnection -ResourceId [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByHubBgpConnectionResourceIdByHubVirtualNetworkConnectionResourceId +```powershell +Update-AzVirtualHubBgpConnection -PeerIp -PeerAsn -VirtualHubVnetConnectionId + -ResourceId [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByHubBgpConnectionObjectByHubVirtualNetworkConnectionObject +```powershell +Update-AzVirtualHubBgpConnection [-PeerIp ] [-PeerAsn ] + -VirtualHubVnetConnection -InputObject [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByHubBgpConnectionObjectByHubVirtualNetworkConnectionResourceId +```powershell +Update-AzVirtualHubBgpConnection [-PeerIp ] [-PeerAsn ] -VirtualHubVnetConnectionId + -InputObject [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByHubBgpConnectionObject +```powershell +Update-AzVirtualHubBgpConnection [-PeerIp ] [-PeerAsn ] + [-VirtualHubVnetConnection ] [-VirtualHubVnetConnectionId ] + -InputObject [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$frontendSubnet = New-AzVirtualNetworkSubnetConfig -Name frontendSubnet -AddressPrefix "192.168.1.0/24" +$backendSubnet = New-AzVirtualNetworkSubnetConfig -Name backendSubnet -AddressPrefix "192.168.2.0/24" +$remoteVirtualNetwork = New-AzVirtualNetwork -Name "testVirtualNetwork" -ResourceGroupName "testRG" -Location "West US" -AddressPrefix "192.168.0.0/16" -Subnet $frontendSubnet,$backendSubnet +$virtualWan = New-AzVirtualWan -ResourceGroupName "testRG" -Name "testWan" -Location "West US" +New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "testHub" -AddressPrefix "10.0.1.0/24" +$hubVnetConnection = New-AzVirtualHubVnetConnection -ResourceGroupName "testRG" -VirtualHubName "testHub" -Name "testVnetConnection" -RemoteVirtualNetwork $remoteVirtualNetwork +New-AzVirtualHubBgpConnection -ResourceGroupName "testRG" -VirtualHubName "testHub" -PeerIp 192.168.1.5 -PeerAsn 20000 -Name "testBgpConnection" -VirtualHubVnetConnection $hubVnetConnection +Update-AzVirtualHubBgpConnection -ResourceGroupName "testRG" -VirtualHubName "testHub" -PeerIp 192.168.1.6 -PeerAsn 20000 -Name "testBgpConnection" -VirtualHubVnetConnection $hubVnetConnection +``` + +```output +Name : testBgpConnection +Id : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/testHub/bgpConnections/testBgpConnection +HubVirtualNetworkConnection : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/testHub/hubVirtualNetworkConnections/testVnetConnection +PeerAsn : 20000 +PeerIp : 192.168.1.6 +``` + +The above will create a resource group, Virtual WAN, Virtual Network, Virtual WAN Hub in West US and connect the Virtual Network to the Virtual WAN Hub in that resource group in Azure. A Virtual WAN Hub BGP Connection will be created thereafter which will peer the Virtual WAN Hub with the network appliance deployed in the Virtual Network. This Virtual WAN Hub BGP Connection is then updated to have a different Peer IP. + + +#### New-AzVirtualHubRoute + +#### SYNOPSIS +Creates an Azure Virtual Hub Route object. + +#### SYNTAX + +```powershell +New-AzVirtualHubRoute -AddressPrefix -NextHopIpAddress + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +$route1 = New-AzVirtualHubRoute -AddressPrefix @("10.0.0.0/16", "11.0.0.0/16") -NextHopIpAddress "12.0.0.5" +``` + +```output +AddressPrefixes NextHopIpAddress +--------------- ---------------- +{10.0.0.0/16, 11.0.0.0/16} 12.0.0.5 +``` + +The above will create a virtual hub route object that can be included in the virtual hub route table. + +The virtual hub route is an in-memory object that can be used to create a VirtualHubRouteTable object. + + +#### Add-AzVirtualHubRoute + +#### SYNOPSIS +Creates a VirtualHubRoute object which can be passed as parameter to the Add-AzVirtualHubRouteTable command. + +#### SYNTAX + +```powershell +Add-AzVirtualHubRoute -Destination -DestinationType -NextHop + -NextHopType [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Add-AzVirtualHubRoute -DestinationType "CIDR" -Destination @("10.4.0.0/16", "10.5.0.0/16") -NextHopType "IPAddress" -NextHop @("10.0.0.68") +``` + +```output +AddressPrefixes : {10.4.0.0/16, 10.5.0.0/16} +NextHopIpAddress : 10.0.0.68 +DestinationType : CIDR +Destinations : {10.4.0.0/16, 10.5.0.0/16} +NextHopType : IPAddress +NextHops : {10.0.0.68} +``` + +The above command will create a VirtualHubRoute object which can then be added to a VirtualHubRouteTable resource and set to a VirtualHub. + + +#### New-AzVirtualHubRouteTable + +#### SYNOPSIS +Creates an Azure Virtual Hub Route Table object. + +#### SYNTAX + +```powershell +New-AzVirtualHubRouteTable -Route [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +$route1 = New-AzVirtualHubRoute -AddressPrefix @("10.0.0.0/16", "11.0.0.0/16") -NextHopIpAddress "12.0.0.5" +$route2 = New-AzVirtualHubRoute -AddressPrefix @("13.0.0.0/16") -NextHopIpAddress "14.0.0.5" +$routeTable = New-AzVirtualHubRouteTable -Route @($route1, $route2) +New-AzResourceGroup -Location "West US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName "testRG" -Name "myVirtualWAN" -Location "West US" +New-AzVirtualHub -VirtualWanId $virtualWan.Id -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.1.0/24" -RouteTable $routeTable +``` + +```output +VirtualWan : /subscriptions/{subscriptionId}resourceGroups/testRG/providers/Microsoft.Network/virtualWans/myVirtualWAN +ResourceGroupName : testRG +Name : westushub +Id : /subscriptions/{subscriptionId}resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub +AddressPrefix : 10.0.1.0/24 +RouteTable : Microsoft.Azure.Commands.Network.Models.PSVirtualHubRouteTable +VirtualNetworkConnections : {} +Location : West US +Type : Microsoft.Network/virtualHubs +ProvisioningState : Succeeded +``` + +The above will create a route table composed of multiple routes and attached to a new virtual hub. + +This is an in-memory object that can be used to add a Route table to a new or an existing VirtualHub. + + +#### Add-AzVirtualHubRouteTable + +#### SYNOPSIS +Creates a Virtual Hub Route Table resource which is a child of VirtualHub. + +#### SYNTAX + +```powershell +Add-AzVirtualHubRouteTable -Name -Route -Connection + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$route1 = Add-AzVirtualHubRoute -DestinationType "CIDR" -Destination @("10.4.0.0/16", "10.5.0.0/16") -NextHopType "IPAddress" -NextHop @("10.0.0.68") +Add-AzVirtualHubRouteTable -Route @($route1) -Connection @("All_Vnets") -Name "routeTable1" +``` + +```output +Name : routeTable1 +Id : +Routes : {Microsoft.Azure.Commands.Network.Models.PSVirtualHubRoute} +Connections : {All_Vnets} +ProvisioningState : +``` + +The above command will create a Virtual Hub Route Table resource from the routes passed to it and this object can be used for routing traffic in a Virtual Hub. + + +#### Get-AzVirtualHubRouteTable + +#### SYNOPSIS +Gets a Virtual Hub Route Table in a virtual hub or lists all route tables in a virtual hub. The cmdlet [Get-AzVHubRouteTable](./Get-AzVHubRouteTable.md) is replacing this cmdlet. + +#### SYNTAX + ++ ByVirtualHubName (Default) +```powershell +Get-AzVirtualHubRouteTable -ResourceGroupName -HubName [-Name ] + [-DefaultProfile ] [] +``` + ++ ByVirtualHubObject +```powershell +Get-AzVirtualHubRouteTable -VirtualHub [-Name ] + [-DefaultProfile ] [] +``` + ++ ByVirtualHubResourceId +```powershell +Get-AzVirtualHubRouteTable -ParentResourceId [-Name ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzVirtualHubRouteTable -ResourceGroupName "testRg" -HubName "westushub" -Name "routeTable1" +``` + +```output +Name : routeTable1 +Id : /subscriptions/{subscriptionId}/resourceGroups/testRg/providers/Microsoft.Network/virtualHubs/westushub/routeTables/routeTable1 +Routes : {Microsoft.Azure.Commands.Network.Models.PSVirtualHubRoute} +Connections : {All_Vnets} +ProvisioningState : Succeeded +``` + +This cmdlet retrieves a route table resource using resource group name, hub name and the route table name. + ++ Example 2 +```powershell +Get-AzVirtualHubRouteTable -ResourceGroupName "testRg" -HubName "westushub" +``` + +```output +Name : routeTable1 +Id : /subscriptions/{subscriptionId}/resourceGroups/testRg/providers/Microsoft.Network/virtualHubs/westushub/routeTables/routeTable1 +Routes : {Microsoft.Azure.Commands.Network.Models.PSVirtualHubRoute} +Connections : {All_Vnets} +ProvisioningState : Succeeded + +Name : routeTable2 +Id : /subscriptions/{subscriptionId}/resourceGroups/testRg/providers/Microsoft.Network/virtualHubs/westushub/routeTables/routeTable2 +Routes : {Microsoft.Azure.Commands.Network.Models.PSVirtualHubRoute} +Connections : {All_Branches} +ProvisioningState : Succeeded +``` + +This cmdlet lists all route tables present in a virtual hub using resource group name and the hub name. + + +#### Remove-AzVirtualHubRouteTable + +#### SYNOPSIS +Delete a virtual hub route table resource associated with a virtual hub. + +#### SYNTAX + ++ ByVirtualHubRouteTableName (Default) +```powershell +Remove-AzVirtualHubRouteTable -ResourceGroupName -HubName -Name [-AsJob] [-Force] + [-PassThru] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + ++ ByVirtualHubObject +```powershell +Remove-AzVirtualHubRouteTable -Name -VirtualHub [-AsJob] [-Force] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVirtualHubRouteTableObject +```powershell +Remove-AzVirtualHubRouteTable [-InputObject ] [-AsJob] [-Force] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVirtualHubRouteTableResourceId +```powershell +Remove-AzVirtualHubRouteTable -ResourceId [-AsJob] [-Force] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzVirtualHubRouteTable -ResourceGroupName "testRg" -HubName "westushub" -Name "routeTable1" +``` + +This command deletes the routeTable1 of the virtual hub westushub. + + +#### New-AzVirtualHubVnetConnection + +#### SYNOPSIS +The New-AzVirtualHubVnetConnection cmdlet creates a HubVirtualNetworkConnection resource that peers a Virtual Network to the Azure Virtual Hub. + +#### SYNTAX + ++ ByVirtualHubNameByRemoteVirtualNetworkObject (Default) +```powershell +New-AzVirtualHubVnetConnection -ResourceGroupName -ParentResourceName -Name + -RemoteVirtualNetwork [-EnableInternetSecurity] [-EnableInternetSecurityFlag ] + [-RoutingConfiguration ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVirtualHubNameByRemoteVirtualNetworkResourceId +```powershell +New-AzVirtualHubVnetConnection -ResourceGroupName -ParentResourceName -Name + -RemoteVirtualNetworkId [-EnableInternetSecurity] [-EnableInternetSecurityFlag ] + [-RoutingConfiguration ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVirtualHubObjectByRemoteVirtualNetworkObject +```powershell +New-AzVirtualHubVnetConnection -ParentObject -Name + -RemoteVirtualNetwork [-EnableInternetSecurity] [-EnableInternetSecurityFlag ] + [-RoutingConfiguration ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVirtualHubObjectByRemoteVirtualNetworkResourceId +```powershell +New-AzVirtualHubVnetConnection -ParentObject -Name -RemoteVirtualNetworkId + [-EnableInternetSecurity] [-EnableInternetSecurityFlag ] + [-RoutingConfiguration ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVirtualHubResourceIdByRemoteVirtualNetworkObject +```powershell +New-AzVirtualHubVnetConnection -ParentResourceId -Name + -RemoteVirtualNetwork [-EnableInternetSecurity] [-EnableInternetSecurityFlag ] + [-RoutingConfiguration ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVirtualHubResourceIdByRemoteVirtualNetworkResourceId +```powershell +New-AzVirtualHubVnetConnection -ParentResourceId -Name -RemoteVirtualNetworkId + [-EnableInternetSecurity] [-EnableInternetSecurityFlag ] + [-RoutingConfiguration ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$frontendSubnet = New-AzVirtualNetworkSubnetConfig -Name frontendSubnet -AddressPrefix "10.0.1.0/24" +$backendSubnet = New-AzVirtualNetworkSubnetConfig -Name backendSubnet -AddressPrefix "10.0.2.0/24" +$remoteVirtualNetwork = New-AzVirtualNetwork -Name "MyVirtualNetwork" -ResourceGroupName "testRG" -Location "West US" -AddressPrefix "10.0.0.0/16" -Subnet $frontendSubnet,$backendSubnet +$virtualWan = New-AzVirtualWan -ResourceGroupName "testRG" -Name "myVirtualWAN" -Location "West US" +New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.1.0/24" +New-AzVirtualHubVnetConnection -ResourceGroupName "testRG" -VirtualHubName "westushub" -Name "testvnetconnection" -RemoteVirtualNetwork $remoteVirtualNetwork +``` + +```output +Name : testvnetconnection +Id : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub/hubVirtualNetworkConnections/testvnetconnection +RemoteVirtualNetwork : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualNetworks/MyVirtualNetwork +EnableInternetSecurity : False +ProvisioningState : Succeeded +RoutingConfiguration : { + "AssociatedRouteTable": { + "Id": "/subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub/hubRouteTables/defaultRouteTable" + }, + "PropagatedRouteTables": { + "Labels": [], + "Ids": [ + { + "Id": "/subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub/hubRouteTables/defaultRouteTable" + } + ] + }, + "VnetRoutes": { + "StaticRoutes": [] + } + } +``` + +The above will create a resource group, Virtual WAN, Virtual Network, Virtual Hub in Central US in that resource group in Azure. A Virtual Network Connection will be created thereafter which will peer the Virtual Network to the Virtual Hub. + ++ Example 2 + +The New-AzVirtualHubVnetConnection cmdlet creates a HubVirtualNetworkConnection resource that peers a Virtual Network to the Azure Virtual Hub. (autogenerated) + + + + +```powershell +New-AzVirtualHubVnetConnection -EnableInternetSecurity -Name 'testvnetconnection' -ParentResourceName 'westushub' -RemoteVirtualNetwork -ResourceGroupName 'testRG' +``` + ++ Example 3 + + + +```powershell +$rgName = "testRg" +$virtualHubName = "testHub" +$frontendSubnet = New-AzVirtualNetworkSubnetConfig -Name frontendSubnet -AddressPrefix "10.0.1.0/24" +$backendSubnet = New-AzVirtualNetworkSubnetConfig -Name backendSubnet -AddressPrefix "10.0.2.0/24" +$remoteVirtualNetwork = New-AzVirtualNetwork -Name "MyVirtualNetwork" -ResourceGroupName $rgName -Location "West US" -AddressPrefix "10.0.0.0/16" -Subnet $frontendSubnet,$backendSubnet +$rt1 = Get-AzVHubRouteTable -ResourceGroupName $rgName -VirtualHubName $virtualHubName -Name "defaultRouteTable" +$rt2 = Get-AzVHubRouteTable -ResourceGroupName $rgName -VirtualHubName $virtualHubName -Name "noneRouteTable" +$route1 = New-AzStaticRoute -Name "route1" -AddressPrefix @("10.20.0.0/16", "10.30.0.0/16")-NextHopIpAddress "10.90.0.5" +$routingconfig = New-AzRoutingConfiguration -AssociatedRouteTable $rt1.Id -Label @("testLabel") -Id @($rt2.Id) -StaticRoute @($route1) + +AssociatedRouteTable : "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.Network/virtualHubs/testHub/hubRouteTables/defaultRouteTable" +PropagatedRouteTables : { + "Labels": [ + "testLabel" + ], + "Ids": [ + { + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.Network/virtualHubs/testHub/hubRouteTables/noneRouteTable" + } + ] + } +VnetRoutes : { + "StaticRoutes": [ + { + "Name": "route1", + "AddressPrefixes": [ + "10.20.0.0/16", + "10.30.0.0/16" + ], + "NextHopIpAddress": "10.90.0.5" + } + ] + } +New-AzVirtualHubVnetConnection -ResourceGroupName $rgName -VirtualHubName $virtualHubName -Name "testvnetconnection" -RemoteVirtualNetwork $remoteVirtualNetwork -RoutingConfiguration $routingconfig +``` + +The above will create a new routing configuration and create static routes in the routing config with the next hop as a specified IP address. This routing configuration can then be passed into the New-AzVirtualHubVnetConnection command as the parameter -RoutingConfiguration. + + +#### Get-AzVirtualHubVnetConnection + +#### SYNOPSIS +Gets a Virtual Network Connection in a virtual hub or lists all virtual network connections in a virtual hub. + +#### SYNTAX + ++ ByVirtualHubName (Default) +```powershell +Get-AzVirtualHubVnetConnection -ResourceGroupName -ParentResourceName [-Name ] + [-DefaultProfile ] [] +``` + ++ ByVirtualHubObject +```powershell +Get-AzVirtualHubVnetConnection -ParentObject [-Name ] + [-DefaultProfile ] [] +``` + ++ ByVirtualHubResourceId +```powershell +Get-AzVirtualHubVnetConnection -ParentResourceId [-Name ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$frontendSubnet = New-AzVirtualNetworkSubnetConfig -Name frontendSubnet -AddressPrefix "10.0.1.0/24" +$backendSubnet = New-AzVirtualNetworkSubnetConfig -Name backendSubnet -AddressPrefix "10.0.2.0/24" +$remoteVirtualNetwork = New-AzVirtualNetwork -Name "MyVirtualNetwork" -ResourceGroupName "testRG" -Location "West US" -AddressPrefix "10.0.0.0/16" -Subnet $frontendSubnet,$backendSubnet + +$virtualWan = New-AzVirtualWan -ResourceGroupName "testRG" -Name "myVirtualWAN" -Location "West US" +New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.1.0/24" +New-AzVirtualHubVnetConnection -ResourceGroupName "testRG" -VirtualHubName "westushub" -Name "testvnetconnection" -RemoteVirtualNetwork $remoteVirtualNetwork + +Get-AzVirtualHubVnetConnection -ResourceGroupName testRG -VirtualHubName westushub -Name testvnetconnection +``` + +```output +Name : testvnetconnection +Id : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub/hubVirtualNetworkConnections/testvnetconnection +RemoteVirtualNetwork : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualNetworks/MyVirtualNetwork +ProvisioningState : Succeeded +RoutingConfiguration : { + "AssociatedRouteTable": { + "Id": "/subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub/hubRouteTables/defaultRouteTable" + }, + "PropagatedRouteTables": { + "Labels": [], + "Ids": [ + { + "Id": "/subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub/hubRouteTables/defaultRouteTable" + } + ] + }, + "VnetRoutes": { + "StaticRoutes": [] + } + } +``` + +The above will create a resource group, Virtual WAN, Virtual Network, Virtual Hub in Central US in that resource group in Azure. A Virtual Network Connection will be created thereafter which will peer the Virtual Network to the Virtual Hub. + +After the hub virtual network connection is created, it gets the hub virtual network connection using its resource group name, the hub name and the connection name. + ++ Example 2 + +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$frontendSubnet = New-AzVirtualNetworkSubnetConfig -Name frontendSubnet -AddressPrefix "10.0.1.0/24" +$backendSubnet = New-AzVirtualNetworkSubnetConfig -Name backendSubnet -AddressPrefix "10.0.2.0/24" +$remoteVirtualNetwork = New-AzVirtualNetwork -Name "MyVirtualNetwork" -ResourceGroupName "testRG" -Location "West US" -AddressPrefix "10.0.0.0/16" -Subnet $frontendSubnet,$backendSubnet +$virtualWan = New-AzVirtualWan -ResourceGroupName "testRG" -Name "myVirtualWAN" -Location "West US" +New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.1.0/24" +New-AzVirtualHubVnetConnection -ResourceGroupName "testRG" -VirtualHubName "westushub" -Name "testvnetconnection" -RemoteVirtualNetwork $remoteVirtualNetwork +Get-AzVirtualHubVnetConnection -ResourceGroupName testRG -VirtualHubName westushub +``` + +```output +Name : testvnetconnection +Id : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub/hubVirtualNetworkConnections/testvnetconnection +RemoteVirtualNetwork : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualNetworks/MyVirtualNetwork +ProvisioningState : Succeeded +RoutingConfiguration : { + "AssociatedRouteTable": { + "Id": "/subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub/hubRouteTables/defaultRouteTable" + }, + "PropagatedRouteTables": { + "Labels": [], + "Ids": [ + { + "Id": "/subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub/hubRouteTables/defaultRouteTable" + } + ] + }, + "VnetRoutes": { + "StaticRoutes": [] + } + } +``` + +The above will create a resource group, Virtual WAN, Virtual Network, Virtual Hub in Central US in that resource group in Azure. A Virtual Network Connection will be created thereafter which will peer the Virtual Network to the Virtual Hub. + +After the hub virtual network connection is created, it lists all the hub virtual network connection using its resource group name and the hub name. + ++ Example 3 + +```powershell +Get-AzVirtualHubVnetConnection -ResourceGroupName testRG -VirtualHubName westushub -Name test* +``` + +```output +Name : testvnetconnection1 +Id : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub/hubVirtualNetworkConnections/testvnetconnection1 +RemoteVirtualNetwork : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualNetworks/MyVirtualNetwork +ProvisioningState : Succeeded +RoutingConfiguration : { + "AssociatedRouteTable": { + "Id": "/subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub/hubRouteTables/defaultRouteTable" + }, + "PropagatedRouteTables": { + "Labels": [], + "Ids": [ + { + "Id": "/subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub/hubRouteTables/defaultRouteTable" + } + ] + }, + "VnetRoutes": { + "StaticRoutes": [] + } + } + +Name : testvnetconnection2 +Id : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub/hubVirtualNetworkConnections/testvnetconnection2 +RemoteVirtualNetwork : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualNetworks/MyVirtualNetwork +ProvisioningState : Succeeded +RoutingConfiguration : { + "AssociatedRouteTable": { + "Id": "/subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub/hubRouteTables/defaultRouteTable" + }, + "PropagatedRouteTables": { + "Labels": [], + "Ids": [ + { + "Id": "/subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub/hubRouteTables/defaultRouteTable" + } + ] + }, + "VnetRoutes": { + "StaticRoutes": [] + } + } +``` + +This cmdlet lists all the hub virtual network connections starting with "test" using its resource group name and the hub name. + + +#### Remove-AzVirtualHubVnetConnection + +#### SYNOPSIS +The Remove-AzVirtualHubVnetConnection cmdlet removes an Azure Virtual Network Connection which peers a remote VNET to the hub VNET. + +#### SYNTAX + ++ ByHubVirtualNetworkConnectionName (Default) +```powershell +Remove-AzVirtualHubVnetConnection -ResourceGroupName -ParentResourceName -Name + [-AsJob] [-Force] [-PassThru] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByHubVirtualNetworkConnectionObject +```powershell +Remove-AzVirtualHubVnetConnection [-InputObject ] [-AsJob] [-Force] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByHubVirtualNetworkConnectionResourceId +```powershell +Remove-AzVirtualHubVnetConnection -ResourceId [-AsJob] [-Force] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$frontendSubnet = New-AzVirtualNetworkSubnetConfig -Name frontendSubnet -AddressPrefix "10.0.1.0/24" +$backendSubnet = New-AzVirtualNetworkSubnetConfig -Name backendSubnet -AddressPrefix "10.0.2.0/24" +$remoteVirtualNetwork = New-AzVirtualNetwork -Name "MyVirtualNetwork" -ResourceGroupName "testRG" -Location "West US" -AddressPrefix "10.0.0.0/16" -Subnet $frontendSubnet,$backendSubnet +$virtualWan = New-AzVirtualWan -ResourceGroupName "testRG" -Name "myVirtualWAN" -Location "West US" +New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.1.0/24" +New-AzVirtualHubVnetConnection -ResourceGroupName "testRG" -VirtualHubName "westushub" -Name "testvnetconnection" -RemoteVirtualNetwork $remoteVirtualNetwork +Remove-AzVirtualHubVnetConnection -ResourceGroupName testRG -VirtualHubName westushub -Name testvnetconnection +``` + +The above will create a resource group, Virtual WAN, Virtual Network, Virtual Hub in Central US in that resource group in Azure. A Virtual Network Connection will be created thereafter which will peer the Virtual Network to the Virtual Hub. + +After the hub virtual network connection is created, it removes the hub virtual network connection using its resource group name, the hub name and the connection name. + ++ Example 2 + +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$frontendSubnet = New-AzVirtualNetworkSubnetConfig -Name frontendSubnet -AddressPrefix "10.0.1.0/24" +$backendSubnet = New-AzVirtualNetworkSubnetConfig -Name backendSubnet -AddressPrefix "10.0.2.0/24" +$remoteVirtualNetwork = New-AzVirtualNetwork -Name "MyVirtualNetwork" -ResourceGroupName "testRG" -Location "West US" -AddressPrefix "10.0.0.0/16" -Subnet $frontendSubnet,$backendSubnet +$virtualWan = New-AzVirtualWan -ResourceGroupName "testRG" -Name "myVirtualWAN" -Location "West US" +New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.1.0/24" +New-AzVirtualHubVnetConnection -ResourceGroupName "testRG" -VirtualHubName "westushub" -Name "testvnetconnection" -RemoteVirtualNetwork $remoteVirtualNetwork +Get-AzVirtualHubVnetConnection -ResourceGroupName testRG -VirtualHubName westushub -Name testvnetconnection | Remove-AzVirtualHubVnetConnection +``` + +The above will create a resource group, Virtual WAN, Virtual Network, Virtual Hub in Central US in that resource group in Azure. A Virtual Network Connection will be created thereafter which will peer the Virtual Network to the Virtual Hub. + +After the hub virtual network connection is created, it removes the hub virtual network connection using powershell piping on the output from Get-AzHubVirtualNetworkConnection. + + +#### Update-AzVirtualHubVnetConnection + +#### SYNOPSIS +Updates an existing HubVirtualNetworkConnection. + +#### SYNTAX + ++ ByHubVirtualNetworkConnectionName (Default) +```powershell +Update-AzVirtualHubVnetConnection -ResourceGroupName -ParentResourceName -Name + [-EnableInternetSecurity ] [-RoutingConfiguration ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByHubVirtualNetworkConnectionObject +```powershell +Update-AzVirtualHubVnetConnection -InputObject + [-EnableInternetSecurity ] [-RoutingConfiguration ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByHubVirtualNetworkConnectionResourceId +```powershell +Update-AzVirtualHubVnetConnection -ResourceId [-EnableInternetSecurity ] + [-RoutingConfiguration ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$frontendSubnet = New-AzVirtualNetworkSubnetConfig -Name frontendSubnet -AddressPrefix "10.1.1.0/24" +$backendSubnet = New-AzVirtualNetworkSubnetConfig -Name backendSubnet -AddressPrefix "10.1.2.0/24" +$remoteVirtualNetwork = New-AzVirtualNetwork -Name "MyVirtualNetwork" -ResourceGroupName "testRG" -Location "West US" -AddressPrefix "10.1.0.0/16" -Subnet $frontendSubnet,$backendSubnet +$virtualWan = New-AzVirtualWan -ResourceGroupName "testRG" -Name "myVirtualWAN" -Location "West US" +New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.1.0/24" -Location "West US" +New-AzVirtualHubVnetConnection -ResourceGroupName "testRG" -VirtualHubName "westushub" -Name "testvnetconnection" -RemoteVirtualNetwork $remoteVirtualNetwork +Update-AzVirtualHubVnetConnection -ResourceGroupName "testRG" -VirtualHubName "westushub" -Name "testvnetconnection" -EnableInternetSecurity $true +``` + +```output +Name : testvnetconnection +Id : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub/hubVirtualNetworkConnections/testvnetconnection +RemoteVirtualNetwork : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualNetworks/MyVirtualNetwork +EnableInternetSecurity : True +ProvisioningState : Succeeded +RoutingConfiguration : { + "AssociatedRouteTable": { + "Id": "/subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub/hubRouteTables/defaultRouteTable" + }, + "PropagatedRouteTables": { + "Labels": [], + "Ids": [ + { + "Id": "/subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/westushub/hubRouteTables/defaultRouteTable" + } + ] + }, + "VnetRoutes": { + "StaticRoutes": [] + } + } +``` + +The above will create a resource group, Virtual WAN, Virtual Network, Virtual Hub in Central US in that resource group in Azure. A Virtual Network Connection is also created which is peer the Virtual Network to the Virtual Hub. This Virtual Network Connection is then updated to enable internet security. + + +#### New-AzVirtualNetwork + +#### SYNOPSIS +Creates a virtual network. + +#### SYNTAX + +```powershell +New-AzVirtualNetwork -Name -ResourceGroupName -Location [-AddressPrefix ] + [-IpamPoolPrefixAllocation ] [-DnsServer ] [-FlowTimeout ] + [-Subnet ] [-BgpCommunity ] [-EnableEncryption ] + [-EncryptionEnforcementPolicy ] [-Tag ] [-EnableDdosProtection] + [-DdosProtectionPlanId ] [-IpAllocation ] [-EdgeZone ] + [-PrivateEndpointVNetPoliciesValue ] [-Force] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Create a virtual network with two subnets +```powershell +New-AzResourceGroup -Name TestResourceGroup -Location centralus +$frontendSubnet = New-AzVirtualNetworkSubnetConfig -Name frontendSubnet -AddressPrefix "10.0.1.0/24" +$backendSubnet = New-AzVirtualNetworkSubnetConfig -Name backendSubnet -AddressPrefix "10.0.2.0/24" +New-AzVirtualNetwork -Name MyVirtualNetwork -ResourceGroupName TestResourceGroup -Location centralus -AddressPrefix "10.0.0.0/16" -Subnet $frontendSubnet,$backendSubnet +``` + +This example creates a virtual network with two subnets. First, a new resource group is created in +the centralus region. Then, the example creates in-memory representations of two subnets. The +New-AzVirtualNetworkSubnetConfig cmdlet will not create any subnet on the server side. There +is one subnet called frontendSubnet and one subnet called backendSubnet. The +New-AzVirtualNetwork cmdlet then creates a virtual network using the CIDR 10.0.0.0/16 as the +address prefix and two subnets. + ++ Example 2: Create a virtual network with DNS settings +```powershell +New-AzResourceGroup -Name TestResourceGroup -Location centralus +$frontendSubnet = New-AzVirtualNetworkSubnetConfig -Name frontendSubnet -AddressPrefix "10.0.1.0/24" +$backendSubnet = New-AzVirtualNetworkSubnetConfig -Name backendSubnet -AddressPrefix "10.0.2.0/24" +New-AzVirtualNetwork -Name MyVirtualNetwork -ResourceGroupName TestResourceGroup -Location centralus -AddressPrefix "10.0.0.0/16" -Subnet $frontendSubnet,$backendSubnet -DnsServer 10.0.1.5,10.0.1.6 +``` + +This example create a virtual network with two subnets and two DNS servers. The effect of +specifying the DNS servers on the virtual network is that the NICs/VMs that are deployed into this +virtual network inherit these DNS servers as defaults. These defaults can be overwritten per NIC +through a NIC-level setting. If no DNS servers are specified on a VNET and no DNS servers on the +NICs, then the default Azure DNS servers are used for DNS resolution. + ++ Example 3: Create a virtual network with a subnet referencing a network security group +```powershell +New-AzResourceGroup -Name TestResourceGroup -Location centralus +$rdpRule = New-AzNetworkSecurityRuleConfig -Name rdp-rule -Description "Allow RDP" -Access Allow -Protocol Tcp -Direction Inbound -Priority 100 -SourceAddressPrefix Internet -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 3389 +$networkSecurityGroup = New-AzNetworkSecurityGroup -ResourceGroupName TestResourceGroup -Location centralus -Name "NSG-FrontEnd" -SecurityRules $rdpRule +$frontendSubnet = New-AzVirtualNetworkSubnetConfig -Name frontendSubnet -AddressPrefix "10.0.1.0/24" -NetworkSecurityGroup $networkSecurityGroup +$backendSubnet = New-AzVirtualNetworkSubnetConfig -Name backendSubnet -AddressPrefix "10.0.2.0/24" -NetworkSecurityGroup $networkSecurityGroup +New-AzVirtualNetwork -Name MyVirtualNetwork -ResourceGroupName TestResourceGroup -Location centralus -AddressPrefix "10.0.0.0/16" -Subnet $frontendSubnet,$backendSubnet +``` + +This example creates a virtual network with subnets that reference a network security group. First, +the example creates a resource group as a container for the resources that will be created. Then, a +network security group is created that allows inbound RDP access, but otherwise enforces the +default network security group rules. The New-AzVirtualNetworkSubnetConfig cmdlet then creates +in-memory representations of two subnets that both reference the network security group that was +created. The New-AzVirtualNetwork command then creates the virtual network. + ++ Example 4: Create a virtual network with an IPAM Pool to auto allocate from for address prefixes +```powershell +New-AzNetworkManagerIpamPool -ResourceGroupName "testRG" -NetworkManagerName "testNM" -Name "testIpamPool" -Location "centralus" -AddressPrefix @("10.0.0.0/16") +$ipamPool = Get-AzNetworkManagerIpamPool -ResourceGroupName "testRG" -NetworkManagerName "testNM" -Name "testIpamPool" +$ipamPoolPrefixAllocation = [PSCustomObject]@{ + Id = $ipamPool.Id + NumberOfIpAddresses = "256" + } +$subnet = New-AzVirtualNetworkSubnetConfig -Name "testSubnet" -IpamPoolPrefixAllocation $ipamPoolPrefixAllocation +New-AzVirtualNetwork -Name "testVnet" -ResourceGroupName "testRG" -Location "centralus" -Subnet $subnet -IpamPoolPrefixAllocation $ipamPoolPrefixAllocation +``` + +This example creates a virtual network with an IPAM (IP Address Management) pool to automatically allocate address prefixes. +First, an IPAM pool named testIpamPool is created in the testRG resource group and testNM network manager in the centralus region with the address prefix 10.0.0.0/16. +The Get-AzNetworkManagerIpamPool cmdlet retrieves the IPAM pool that was just created. +Next, a custom object representing the IPAM pool prefix allocation is created. This object includes the Id of the IPAM pool and the NumberOfIpAddresses to allocate. +The New-AzVirtualNetworkSubnetConfig cmdlet creates a subnet named testSubnet configured to use the IPAM pool prefix allocation object. +Finally, the New-AzVirtualNetwork cmdlet creates a virtual network named testVnet in the testRG resource group and centralus location. +The virtual network includes the subnet created in the previous step and uses the IPAM pool prefix allocation for address prefix allocation. + + +#### Get-AzVirtualNetwork + +#### SYNOPSIS +Gets a virtual network in a resource group. + +#### SYNTAX + ++ NoExpand +```powershell +Get-AzVirtualNetwork [-Name ] [-ResourceGroupName ] [-DefaultProfile ] + [] +``` + ++ Expand +```powershell +Get-AzVirtualNetwork -Name -ResourceGroupName -ExpandResource + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Retrieve a virtual network +```powershell +Get-AzVirtualNetwork -Name MyVirtualNetwork -ResourceGroupName TestResourceGroup +``` + +```output +Name : MyVirtualNetwork1 +ResourceGroupName : TestResourceGroup +Location : eastus +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestResourceGroup + /providers/Microsoft.Network/virtualNetworks/MyVirtualNetwork1 +Etag : W/"00000000-0000-0000-0000-000000000000" +ResourceGuid : 00000000-0000-0000-0000-000000000000 +ProvisioningState : Succeeded +Tags : +AddressSpace : { + "AddressPrefixes": [ + "xx.x.x.x/x" + ] + } +DhcpOptions : {} +FlowTimeoutInMinutes : null +Subnets : [] +VirtualNetworkPeerings : [] +EnableDdosProtection : false +DdosProtectionPlan : null +``` + +This command gets the virtual network named MyVirtualNetwork in the resource group TestResourceGroup + ++ Example 2: List virtual networks using filter +```powershell +Get-AzVirtualNetwork -Name MyVirtualNetwork* +``` + +```output +Name : MyVirtualNetwork1 +ResourceGroupName : TestResourceGroup +Location : eastus +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TestResourceGroup + /providers/Microsoft.Network/virtualNetworks/MyVirtualNetwork1 +Etag : W/"00000000-0000-0000-0000-000000000000" +ResourceGuid : 00000000-0000-0000-0000-000000000000 +ProvisioningState : Succeeded +Tags : +AddressSpace : { + "AddressPrefixes": [ + "xx.x.x.x/x" + ] + } +DhcpOptions : {} +FlowTimeoutInMinutes : null +Subnets : [] +VirtualNetworkPeerings : [] +EnableDdosProtection : false +DdosProtectionPlan : null +``` + +This command gets all virtual networks that start with "MyVirtualNetwork". + + +#### Remove-AzVirtualNetwork + +#### SYNOPSIS +Removes a virtual network. + +#### SYNTAX + +```powershell +Remove-AzVirtualNetwork -Name -ResourceGroupName [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Create and delete a virtual network +```powershell +New-AzResourceGroup -Name TestResourceGroup -Location centralus +$frontendSubnet = New-AzVirtualNetworkSubnetConfig -Name frontendSubnet -AddressPrefix "10.0.1.0/24" +$backendSubnet = New-AzVirtualNetworkSubnetConfig -Name backendSubnet -AddressPrefix "10.0.2.0/24" + +New-AzVirtualNetwork -Name MyVirtualNetwork -ResourceGroupName TestResourceGroup -Location centralus -AddressPrefix "10.0.0.0/16" -Subnet $frontendSubnet,$backendSubnet + +Remove-AzVirtualNetwork -Name MyVirtualNetwork -ResourceGroupName TestResourceGroup +``` + +This example creates a virtual network in a resource group and then immediately deletes it. To suppress the prompt when deleting the virtual network, use the -Force flag. + + +#### Set-AzVirtualNetwork + +#### SYNOPSIS +Updates a virtual network. + +#### SYNTAX + +```powershell +Set-AzVirtualNetwork -VirtualNetwork [-AsJob] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Creates a virtual network and removes one of its subnets +```powershell +New-AzResourceGroup -Name TestResourceGroup -Location centralus #### Create resource group +$frontendSubnet = New-AzVirtualNetworkSubnetConfig -Name frontendSubnet -AddressPrefix "10.0.1.0/24" #### Create frontend subnet +$backendSubnet = New-AzVirtualNetworkSubnetConfig -Name backendSubnet -AddressPrefix "10.0.2.0/24" #### Create backend subnet + +$virtualNetwork = New-AzVirtualNetwork -Name MyVirtualNetwork -ResourceGroupName TestResourceGroup ` + -Location centralus -AddressPrefix "10.0.0.0/16" -Subnet $frontendSubnet,$backendSubnet #### Create virtual network + +Remove-AzVirtualNetworkSubnetConfig -Name backendSubnet -VirtualNetwork $virtualNetwork #### Remove subnet from in memory representation of virtual network + +$virtualNetwork | Set-AzVirtualNetwork #### Remove subnet from virtual network +``` + +This example creates a virtual network called TestResourceGroup with two subnets: frontendSubnet and backendSubnet. Then it removes backendSubnet subnet from the in-memory representation of the virtual network. The Set-AzVirtualNetwork cmdlet is then used to write the modified virtual network state on the service side. When the Set-AzVirtualNetwork cmdlet is executed, the backendSubnet is removed. + + +#### Get-AzVirtualNetworkAvailableEndpointService + +#### SYNOPSIS +Lists available endpoint services for location. + +#### SYNTAX + +```powershell +Get-AzVirtualNetworkAvailableEndpointService -Location [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzVirtualNetworkAvailableEndpointService -Location westus +``` + +```output +-Name Id Type +----- -- ---- +-Microsoft.Storage /subscriptions/id/providers/Microsoft.Network/virtualNetworkEndpointServices/Microsoft.Storage Microsoft.Network/virtualNetworkEndpointServices +``` + +Gets available endpoint services in westus region. + + +#### New-AzVirtualNetworkGateway + +#### SYNOPSIS +Creates a Virtual Network Gateway + +#### SYNTAX + +```powershell +New-AzVirtualNetworkGateway -Name -ResourceGroupName -Location + [-IpConfigurations ] [-GatewayType ] + [-ExtendedLocation ] [-VNetExtendedLocationResourceId ] [-VpnType ] + [-EnableBgp ] [-DisableIPsecProtection ] [-EnableActiveActiveFeature] + [-EnableAdvancedConnectivityFeature] [-EnablePrivateIpAddress] [-GatewaySku ] + [-GatewayDefaultSite ] [-VpnClientAddressPool ] + [-VpnClientProtocol ] [-VpnAuthenticationType ] + [-VpnClientRootCertificates ] + [-VpnClientRevokedCertificates ] [-VpnClientIpsecPolicy ] + [-Asn ] [-PeerWeight ] + [-IpConfigurationBgpPeeringAddresses ] + [-NatRule ] [-EnableBgpRouteTranslationForNat] [-Tag ] [-Force] + [-RadiusServerAddress ] [-RadiusServerSecret ] [-RadiusServerList ] + [-AadTenantUri ] [-AadAudienceId ] [-AadIssuerUri ] [-CustomRoute ] + [-VpnGatewayGeneration ] [-VirtualNetworkGatewayPolicyGroup ] + [-ClientConnectionConfiguration ] [-AsJob] [-AdminState ] + [-ResiliencyModel ] [-MinScaleUnit ] [-MaxScaleUnit ] [-UserAssignedIdentityId ] + [-Identity ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Create a Virtual Network Gateway +```powershell +New-AzResourceGroup -Location "UK West" -Name "vnet-gateway" +$subnet = New-AzVirtualNetworkSubnetConfig -Name 'gatewaysubnet' -AddressPrefix '10.254.0.0/27' + +$ngwpip = New-AzPublicIpAddress -Name ngwpip -ResourceGroupName "vnet-gateway" -Location "UK West" -AllocationMethod Dynamic +$vnet = New-AzVirtualNetwork -AddressPrefix "10.254.0.0/27" -Location "UK West" -Name vnet-gateway -ResourceGroupName "vnet-gateway" -Subnet $subnet +$subnet = Get-AzVirtualNetworkSubnetConfig -name 'gatewaysubnet' -VirtualNetwork $vnet +$ngwipconfig = New-AzVirtualNetworkGatewayIpConfig -Name ngwipconfig -SubnetId $subnet.Id -PublicIpAddressId $ngwpip.Id + +New-AzVirtualNetworkGateway -Name myNGW -ResourceGroupName vnet-gateway -Location "UK West" -IpConfigurations $ngwIpConfig -GatewayType "Vpn" -VpnType "RouteBased" -GatewaySku "Basic" -CustomRoute 192.168.0.0/24 +``` + +The above will create a resource group, request a Public IP Address, create a Virtual Network and +subnet and create a Virtual Network Gateway in Azure. +The gateway will be called "myNGW" within the resource group "vnet-gateway" in the location "UK +West" with the previously created IP configurations saved in the variable "ngwIPConfig," the +gateway type of "VPN," the vpn type "RouteBased," and the sku "Basic." + ++ Example 2: Create a Virtual Network Gateway with External Radius Configuration +```powershell +New-AzResourceGroup -Location "UK West" -Name "vnet-gateway" +New-AzVirtualNetworkSubnetConfig -Name 'gatewaysubnet' -AddressPrefix '10.254.0.0/27' + +$ngwpip = New-AzPublicIpAddress -Name ngwpip -ResourceGroupName "vnet-gateway" -Location "UK West" -AllocationMethod Dynamic +$vnet = New-AzVirtualNetwork -AddressPrefix "10.254.0.0/27" -Location "UK West" -Name vnet-gateway -ResourceGroupName "vnet-gateway" -Subnet $subnet +$subnet = Get-AzVirtualNetworkSubnetConfig -name 'gatewaysubnet' -VirtualNetwork $vnet +$ngwipconfig = New-AzVirtualNetworkGatewayIpConfig -Name ngwipconfig -SubnetId $subnet.Id -PublicIpAddressId $ngwpip.Id +$Secure_String_Pwd = ConvertTo-SecureString -String "****" -AsPlainText -Force + +New-AzVirtualNetworkGateway -Name myNGW -ResourceGroupName vnet-gateway -Location "UK West" -IpConfigurations $ngwIpConfig -GatewayType "Vpn" -VpnType "RouteBased" -GatewaySku "Basic" -RadiusServerAddress "TestRadiusServer" -RadiusServerSecret $Secure_String_Pwd -CustomRoute 192.168.0.0/24 +``` + +The above will create a resource group, request a Public IP Address, create a Virtual Network and +subnet and create a Virtual Network Gateway in Azure. +The gateway will be called "myNGW" within the resource group "vnet-gateway" in the location "UK West" with the previously created IP configurations saved in the variable "ngwIPConfig," the gateway type of "VPN," the vpn type "RouteBased," and the sku "Basic." It also adds an external radius server with address "TestRadiusServer". It will also set custom routes specified by customers on gateway. + ++ Example 3: Create a Virtual Network Gateway with P2S settings +```powershell +New-AzResourceGroup -Location "UK West" -Name "vnet-gateway" +$subnet = New-AzVirtualNetworkSubnetConfig -Name 'gatewaysubnet' -AddressPrefix '10.254.0.0/27' + +$ngwpip = New-AzPublicIpAddress -Name ngwpip -ResourceGroupName "vnet-gateway" -Location "UK West" -AllocationMethod Dynamic +$vnet = New-AzVirtualNetwork -AddressPrefix "10.254.0.0/27" -Location "UK West" -Name vnet-gateway -ResourceGroupName "vnet-gateway" -Subnet $subnet +$subnet = Get-AzVirtualNetworkSubnetConfig -name 'gatewaysubnet' -VirtualNetwork $vnet +$ngwipconfig = New-AzVirtualNetworkGatewayIpConfig -Name ngwipconfig -SubnetId $subnet.Id -PublicIpAddressId $ngwpip.Id +$rootCert = New-AzVpnClientRootCertificate -Name $clientRootCertName -PublicCertData $samplePublicCertData +$vpnclientipsecpolicy = New-AzVpnClientIpsecPolicy -IpsecEncryption AES256 -IpsecIntegrity SHA256 -SALifeTime 86471 -SADataSize 429496 -IkeEncryption AES256 -IkeIntegrity SHA384 -DhGroup DHGroup2 -PfsGroup PFS2 + +New-AzVirtualNetworkGateway -Name myNGW -ResourceGroupName vnet-gateway -Location "UK West" -IpConfigurations $ngwIpConfig -GatewayType "Vpn" -VpnType "RouteBased" -GatewaySku "VpnGw1" -VpnClientProtocol IkeV2 -VpnClientAddressPool 201.169.0.0/16 -VpnClientRootCertificates $rootCert -VpnClientIpsecPolicy $vpnclientipsecpolicy -CustomRoute 192.168.0.0/24 +``` + +The above will create a resource group, request a Public IP Address, create a Virtual Network and +subnet and create a Virtual Network Gateway with P2S settings e.g. VpnProtocol,VpnClientAddressPool,VpnClientRootCertificates,VpnClientIpsecPolicy etc. in Azure. +The gateway will be called "myNGW" within the resource group "vnet-gateway" in the location "UK West" with the previously created IP configurations saved in the variable "ngwIPConfig," the gateway type of "VPN," the vpn type "RouteBased," and the sku "VpnGw1." Vpn settings will be set on Gateway such as VpnProtocol set as Ikev2, VpnClientAddressPool as "201.169.0.0/16", VpnClientRootCertificate set as passed one: clientRootCertName and custom vpn ipsec policy passed in object:$vpnclientipsecpolicy +It will also set custom routes specified by customers on gateway. + ++ Example 4: Create a Virtual Network Gateway with AAD authentication Configuration for VpnClient of virtual network gateway. +```powershell +New-AzResourceGroup -Location "UK West" -Name "vnet-gateway" +New-AzVirtualNetworkSubnetConfig -Name 'gatewaysubnet' -AddressPrefix '10.254.0.0/27' + +$ngwpip = New-AzPublicIpAddress -Name ngwpip -ResourceGroupName "vnet-gateway" -Location "UK West" -AllocationMethod Dynamic +$vnet = New-AzVirtualNetwork -AddressPrefix "10.254.0.0/27" -Location "UK West" -Name vnet-gateway -ResourceGroupName "vnet-gateway" -Subnet $subnet +$subnet = Get-AzVirtualNetworkSubnetConfig -name 'gatewaysubnet' -VirtualNetwork $vnet +$ngwipconfig = New-AzVirtualNetworkGatewayIpConfig -Name ngwipconfig -SubnetId $subnet.Id -PublicIpAddressId $ngwpip.Id +$Secure_String_Pwd = ConvertTo-SecureString -String "****" -AsPlainText -Force + +New-AzVirtualNetworkGateway -Name myNGW -ResourceGroupName vnet-gateway -Location "UK West" -IpConfigurations $ngwIpConfig -GatewayType "Vpn" -VpnType "RouteBased" -GatewaySku "VpnGw1" -VpnClientProtocol OpenVPN -VpnClientAddressPool 201.169.0.0/16 -AadTenantUri "https://login.microsoftonline.com/0ab2c4f4-81e6-44cc-a0b2-b3a47a1443f4" -AadIssuerUri "https://sts.windows.net/0ab2c4f4-81e6-44cc-a0b2-b3a47a1443f4/" -AadAudienceId "a21fce82-76af-45e6-8583-a08cb3b956f9" +``` + +The above will create a resource group, request a Public IP Address, create a Virtual Network and +subnet and create a Virtual Network Gateway in Azure. +The gateway will be called "myNGW" within the resource group "vnet-gateway" in the location "UK West" with the previously created IP configurations saved in the variable "ngwIPConfig," the gateway type of "VPN," the vpn type "RouteBased," and the sku "Basic." It also configures AAD authentication configurations: AadTenantUri, AadIssuerUri and AadAudienceId for VpnClient of virtual network gateway. + ++ Example 5: Create a Virtual Network Gateway with VpnGatewayGeneration +```powershell +New-AzResourceGroup -Location "UK West" -Name "vnet-gateway" +$subnet = New-AzVirtualNetworkSubnetConfig -Name 'gatewaysubnet' -AddressPrefix '10.254.0.0/27' + +$ngwpip = New-AzPublicIpAddress -Name ngwpip -ResourceGroupName "vnet-gateway" -Location "UK West" -AllocationMethod Dynamic +$vnet = New-AzVirtualNetwork -AddressPrefix "10.254.0.0/27" -Location "UK West" -Name vnet-gateway -ResourceGroupName "vnet-gateway" -Subnet $subnet +$subnet = Get-AzVirtualNetworkSubnetConfig -name 'gatewaysubnet' -VirtualNetwork $vnet +$ngwipconfig = New-AzVirtualNetworkGatewayIpConfig -Name ngwipconfig -SubnetId $subnet.Id -PublicIpAddressId $ngwpip.Id + +New-AzVirtualNetworkGateway -Name myNGW -ResourceGroupName vnet-gateway -Location "UK West" -IpConfigurations $ngwIpConfig -GatewayType "Vpn" -VpnType "RouteBased" -GatewaySku "VpnGw4" -VpnGatewayGeneration "Generation2" +``` + +The above will create a resource group, request a Public IP Address, create a Virtual Network and +subnet and create a Virtual Network Gateway in Azure. +The gateway will be called "myNGW" within the resource group "vnet-gateway" in the location "UK West" +with the previously created IP configurations saved in the variable "ngwIPConfig," the +gateway type of "VPN", the vpn type "RouteBased", the sku "VpnGw4" and VpnGatewayGeneration Generation2 enabled. + ++ Example 6: Create a Virtual Network Gateway with IpConfigurationBgpPeeringAddresses +```powershell +New-AzResourceGroup -Location "UK West" -Name "resourcegroup1" +$subnet = New-AzVirtualNetworkSubnetConfig -Name 'gatewaysubnet' -AddressPrefix '10.254.0.0/27' + +$ngwpip = New-AzPublicIpAddress -Name ngwpip -ResourceGroupName "resourcegroup1" -Location "UK West" -AllocationMethod Dynamic +$vnet = New-AzVirtualNetwork -AddressPrefix "10.254.0.0/27" -Location "UK West" -Name vnet-gateway -ResourceGroupName "resourcegroup1" -Subnet $subnet +$subnet = Get-AzVirtualNetworkSubnetConfig -name 'gatewaysubnet' -VirtualNetwork $vnet +$ngwipconfig = New-AzVirtualNetworkGatewayIpConfig -Name ipconfig1 -SubnetId $subnet.Id -PublicIpAddressId $ngwpip.Id + +$ipconfigurationId1 = $ngwipconfig.Id +$addresslist1 = @('169.254.21.10') +$gw1ipconfBgp1 = New-AzIpConfigurationBgpPeeringAddressObject -IpConfigurationId $ipconfigurationId1 -CustomAddress $addresslist1 + +New-AzVirtualNetworkGateway -Name gateway1 -ResourceGroupName vnet-gateway -Location "UK West" -IpConfigurations $ngwIpConfig -IpConfigurationBgpPeeringAddresses $gw1ipconfBgp1 -GatewayType "Vpn" -VpnType "RouteBased" -GatewaySku "VpnGw4" -VpnGatewayGeneration "Generation2" +``` + +The above will create a resource group, request a Public IP Address, create a Virtual Network and +subnet and create a Virtual Network Gateway in Azure. +ipconfigurationId1 of gateway ipconfiguration just created and stored in ngwipconfig. +The gateway will be called "gateway1" within the resource group "resourcegroup1resourcegroup1" in the location "UK West" +with the previously created IP configurations Bgppeering address saved in the variable "gw1ipconfBgp1," the +gateway type of "VPN", the vpn type "RouteBased", the sku "VpnGw4" and VpnGatewayGeneration Generation2 enabled. + ++ Example 7: Create a Virtual Network Gateway with NatRules +```powershell +New-AzResourceGroup -Location "UK West" -Name "resourcegroup1" +$subnet = New-AzVirtualNetworkSubnetConfig -Name 'gatewaysubnet' -AddressPrefix '10.254.0.0/27' + +$ngwpip = New-AzPublicIpAddress -Name ngwpip -ResourceGroupName "resourcegroup1" -Location "UK West" -AllocationMethod Dynamic +$vnet = New-AzVirtualNetwork -AddressPrefix "10.254.0.0/27" -Location "UK West" -Name vnet-gateway -ResourceGroupName "resourcegroup1" -Subnet $subnet +$subnet = Get-AzVirtualNetworkSubnetConfig -name 'gatewaysubnet' -VirtualNetwork $vnet +$ngwipconfig = New-AzVirtualNetworkGatewayIpConfig -Name ipconfig1 -SubnetId $subnet.Id -PublicIpAddressId $ngwpip.Id + +$natRule = New-AzVirtualNetworkGatewayNatRule -Name "natRule1" -Type "Static" -Mode "IngressSnat" -InternalMapping @("25.0.0.0/16") -ExternalMapping @("30.0.0.0/16") + +New-AzVirtualNetworkGateway -Name gateway1 -ResourceGroupName vnet-gateway -Location "UK West" -IpConfigurations $ngwIpConfig -GatewayType "Vpn" -VpnType "RouteBased" -GatewaySku "VpnGw4" -VpnGatewayGeneration "Generation2" -NatRule $natRule -EnableBgpRouteTranslationForNat +``` + +The above will create a resource group, request a Public IP Address, create a Virtual Network and +subnet and create a Virtual Network Gateway in Azure. +ipconfigurationId1 of gateway ipconfiguration just created and stored in ngwipconfig. +The gateway will be called "gateway1" within the resource group "resourcegroup1resourcegroup1" in the location "UK West" +New virtualNetworkGateway NatRule will be saved in the variable "natRule" +the gateway type of "VPN", the vpn type "RouteBased", the sku "VpnGw4" and VpnGatewayGeneration Generation2 enabled and BgpRouteTranslationForNat enabled. + + +#### Get-AzVirtualNetworkGateway + +#### SYNOPSIS +Gets a Virtual Network Gateway + +#### SYNTAX + +```powershell +Get-AzVirtualNetworkGateway [-Name ] -ResourceGroupName + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Get a Virtual Network Gateway +```powershell +Get-AzVirtualNetworkGateway -Name myGateway1 -ResourceGroupName myRG +``` + +Returns the object of the Virtual Network Gateway with the name "myGateway1" within the resource group "myRG" + ++ Example 2: Get a Virtual Network Gateway +```powershell +Get-AzVirtualNetworkGateway -Name myGateway* -ResourceGroupName myRG +``` + +Returns all Virtual Network Gateways that start with "myGateway" within the resource group "myRG" + + +#### Remove-AzVirtualNetworkGateway + +#### SYNOPSIS +Deletes a Virtual Network Gateway + +#### SYNTAX + +```powershell +Remove-AzVirtualNetworkGateway -Name -ResourceGroupName [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Delete a Virtual Network Gateway +```powershell +Remove-AzVirtualNetworkGateway -Name myGateway -ResourceGroupName myRG +``` + +Deletes the object of the Virtual Network Gateway with the name "myGateway" within the resource group "myRG" +Note: You must first delete all connections to the Virtual Network Gateway using the **Remove-AzVirtualNetworkGatewayConnection** cmdlet. + + +#### Reset-AzVirtualNetworkGateway + +#### SYNOPSIS +Resets the Virtual Network Gateway + +#### SYNTAX + +```powershell +Reset-AzVirtualNetworkGateway -VirtualNetworkGateway [-GatewayVip ] [-AsJob] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: +```powershell +$Gateway = Get-AzVirtualNetworkGateway -Name myGateway1 -ResourceGroupName myRG +Reset-AzVirtualNetworkGateway -VirtualNetworkGateway $Gateway +``` + + +#### Resize-AzVirtualNetworkGateway + +#### SYNOPSIS +Resizes an existing virtual network gateway. + +#### SYNTAX + +```powershell +Resize-AzVirtualNetworkGateway -VirtualNetworkGateway -GatewaySku + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Change the size of a virtual network gateway +```powershell +$Gateway = Get-AzVirtualNetworkGateway -Name "ContosoVirtualGateway" +Resize-AzVirtualNetworkGateway -VirtualNetworkGateway $Gateway -GatewaySku "Basic" +``` + +This example changes the size of a virtual network gateway named ContosoVirtualGateway. +The first command creates an object reference to ContosoVirtualGateway; this object reference is stored in a variable named $Gateway. +The second command then uses the **Resize-AzVirtualNetworkGateway** cmdlet to set the *GatewaySku* property to Basic. + + +#### Set-AzVirtualNetworkGateway + +#### SYNOPSIS +Updates a virtual network gateway. + +#### SYNTAX + ++ Default (Default) +```powershell +Set-AzVirtualNetworkGateway -VirtualNetworkGateway [-GatewaySku ] + [-GatewayDefaultSite ] [-VpnClientAddressPool ] + [-VpnClientProtocol ] [-VpnAuthenticationType ] + [-VpnClientRootCertificates ] + [-VpnClientRevokedCertificates ] [-VpnClientIpsecPolicy ] + [-Asn ] [-PeerWeight ] + [-IpConfigurationBgpPeeringAddresses ] [-EnableActiveActiveFeature] + [-EnablePrivateIpAddress ] [-DisableActiveActiveFeature] [-RadiusServerAddress ] + [-RadiusServerSecret ] [-RadiusServerList ] [-AadTenantUri ] + [-AadAudienceId ] [-AadIssuerUri ] [-RemoveAadAuthentication] [-CustomRoute ] + [-NatRule ] [-BgpRouteTranslationForNat ] [-MinScaleUnit ] + [-MaxScaleUnit ] [-VirtualNetworkGatewayPolicyGroup ] + [-ClientConnectionConfiguration ] [-AdminState ] + [-AllowRemoteVnetTraffic ] [-ResiliencyModel ] [-AllowVirtualWanTraffic ] + [-UserAssignedIdentityId ] [-Identity ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ UpdateResourceWithTags +```powershell +Set-AzVirtualNetworkGateway -VirtualNetworkGateway [-GatewaySku ] + [-GatewayDefaultSite ] [-VpnClientAddressPool ] + [-VpnClientProtocol ] [-VpnAuthenticationType ] + [-VpnClientRootCertificates ] + [-VpnClientRevokedCertificates ] [-VpnClientIpsecPolicy ] + [-Asn ] [-PeerWeight ] + [-IpConfigurationBgpPeeringAddresses ] [-EnableActiveActiveFeature] + [-EnablePrivateIpAddress ] [-DisableActiveActiveFeature] [-RadiusServerAddress ] + [-RadiusServerSecret ] [-RadiusServerList ] [-AadTenantUri ] + [-AadAudienceId ] [-AadIssuerUri ] [-RemoveAadAuthentication] [-CustomRoute ] + [-NatRule ] [-BgpRouteTranslationForNat ] [-MinScaleUnit ] + [-MaxScaleUnit ] [-VirtualNetworkGatewayPolicyGroup ] + [-ClientConnectionConfiguration ] [-AdminState ] + [-AllowRemoteVnetTraffic ] [-ResiliencyModel ] [-AllowVirtualWanTraffic ] + [-UserAssignedIdentityId ] [-Identity ] -Tag [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Update a virtual network gateway's ASN +```powershell +$Gateway = Get-AzVirtualNetworkGateway -ResourceGroupName "ResourceGroup001" -Name "Gateway001" +Set-AzVirtualNetworkGateway -VirtualNetworkGateway $Gateway -Asn 1337 +``` + +The first command gets a virtual network gateway named Gateway01 that belongs to resource group ResourceGroup001 and stores it to the variable named $Gateway +The second command updates the virtual network gateway stored in variable $Gateway. +The command also sets the ASN to 1337. + ++ Example 2: Add IPsec policy to a virtual network gateway +```powershell +$Gateway = Get-AzVirtualNetworkGateway -ResourceGroupName "ResourceGroup001" -Name "Gateway001" +$vpnclientipsecpolicy = New-AzVpnClientIpsecPolicy -IpsecEncryption AES256 -IpsecIntegrity SHA256 -SALifeTime 86472 -SADataSize 429497 -IkeEncryption AES256 -IkeIntegrity SHA256 -DhGroup DHGroup2 -PfsGroup None +Set-AzVirtualNetworkGateway -VirtualNetworkGateway $Gateway -VpnClientIpsecPolicy $vpnclientipsecpolicy +``` + +The first command gets a virtual network gateway named Gateway01 that belongs to resource group ResourceGroup001 and stores it to the variable named $Gateway +The second command creates the Vpn ipsec policy object as per specified ipsec parameters. +The third command updates the virtual network gateway stored in variable $Gateway. +The command also sets the custom vpn ipsec policy specified in the $vpnclientipsecpolicy object on Virtual network gateway. + ++ Example 3: Add/Update Tags to an existing virtual network gateway +```powershell +$Gateway = Get-AzVirtualNetworkGateway -ResourceGroupName "ResourceGroup001" -Name "Gateway001" +Set-AzVirtualNetworkGateway -VirtualNetworkGateway $Gateway -Tag @{ testtagKey="SomeTagKey"; testtagValue="SomeKeyValue" } +``` + +```output +Name : Gateway001 +ResourceGroupName : ResourceGroup001 +Location : westus +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ResourceGroup001/providers/Microsoft.Network/virtualNetworkGateways/Gateway001 +Etag : W/"00000000-0000-0000-0000-000000000000" +ResourceGuid : 00000000-0000-0000-0000-000000000000 +ProvisioningState : Succeeded +Tags : + Name Value + ============ ============ + testtagValue SomeKeyValue + testtagKey SomeTagKey + +IpConfigurations : [ + { + "PrivateIpAllocationMethod": "Dynamic", + "Subnet": { + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ResourceGroup001/providers/Microsoft.Network/virtualNetworks/MyVnet/subnets/GatewaySubnet" + }, + "PublicIpAddress": { + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ResourceGroup001/providers/Microsoft.Network/publicIPAddresses/Gateway001Ip" + }, + "Name": "vng1ipConfig", + "Etag": "W/\"00000000-0000-0000-0000-000000000000\"", + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ResourceGroup001/providers/Microsoft.Network/virtualNetworkGateways/Gateway001/ipConfigurations/Gateway001IpConfig" + } + ] +GatewayType : Vpn +VpnType : RouteBased +EnableBgp : False +ActiveActive : False +GatewayDefaultSite : null +Sku : { + "Capacity": 2, + "Name": "VpnGw1", + "Tier": "VpnGw1" + } +VpnClientConfiguration : null +BgpSettings : { + "Asn": 65515, + "BgpPeeringAddress": "1.2.3.4", + "PeerWeight": 0 + } +``` + +The first command gets a virtual network gateway named Gateway01 that belongs to resource group ResourceGroup001 and stores it to the variable named $Gateway +The second command updates the virtual network gateway Gateway01 with the tags @{ testtagKey="SomeTagKey"; testtagValue="SomeKeyValue" }. + ++ Example 4: Add/Update AAD authentication configuration for VpnClient of an existing virtual network gateway + + + +```powershell +$Gateway = Get-AzVirtualNetworkGateway -ResourceGroupName "ResourceGroup001" -Name "Gateway001" +Set-AzVirtualNetworkGateway -VirtualNetworkGateway $Gateway -AadTenantUri "https://login.microsoftonline.com/0ab2c4f4-81e6-44cc-a0b2-b3a47a1443f4" -AadIssuerUri "https://sts.windows.net/0ab2c4f4-81e6-44cc-a0b2-b3a47a1443f4/" -AadAudienceId "a21fce82-76af-45e6-8583-a08cb3b956f9" + +Name : Gateway001 +ResourceGroupName : ResourceGroup001 +Location : westus +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ResourceGroup001/providers/Microsoft.Network/virtualNetworkGateways/Gateway001 +Etag : W/"00000000-0000-0000-0000-000000000000" +ResourceGuid : 00000000-0000-0000-0000-000000000000 +ProvisioningState : Succeeded +Tags : + Name Value + ============ ============ + testtagValue SomeKeyValue + testtagKey SomeTagKey + +IpConfigurations : [ + { + "PrivateIpAllocationMethod": "Dynamic", + "Subnet": { + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ResourceGroup001/providers/Microsoft.Network/virtualNetworks/MyVnet/subnets/GatewaySubnet" + }, + "PublicIpAddress": { + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ResourceGroup001/providers/Microsoft.Network/publicIPAddresses/Gateway001Ip" + }, + "Name": "vng1ipConfig", + "Etag": "W/\"00000000-0000-0000-0000-000000000000\"", + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ResourceGroup001/providers/Microsoft.Network/virtualNetworkGateways/Gateway001/ipConfigurations/Gateway001IpConfig" + } + ] +GatewayType : Vpn +VpnType : RouteBased +EnableBgp : False +ActiveActive : False +GatewayDefaultSite : null +Sku : { + "Capacity": 2, + "Name": "VpnGw1", + "Tier": "VpnGw1" + } +vpnClientConfiguration : { + "vpnClientProtocols": [ + "OpenVPN" + ], + + "vpnClientAddressPool": { + "addressPrefixes": [ + "101.10.0.0/16" + ] + }, + "vpnClientRootCertificates": "", + "vpnClientRevokedCertificates": "", + + "radiusServerAddress": "", + "radiusServerSecret": "", + "aadTenantUri": "https://login.microsoftonline.com/0ab2c4f4-81e6-44cc-a0b2-b3a47a1443f4\", + "aadAudienceId": "a21fce82-76af-45e6-8583-a08cb3b956g9\", + "aadIssuerUri": "https://sts.windows.net/0ab2c4f4-81e6-44cc-a0b2-b3a47a1443f4/\" + }, +BgpSettings : { + "Asn": 65515, + "BgpPeeringAddress": "1.2.3.4", + "PeerWeight": 0 + } + +Set-AzVirtualNetworkGateway -VirtualNetworkGateway $Gateway -VpnClientRootCertificates $rootCert -RemoveAadAuthentication +``` + +The first command gets a virtual network gateway named Gateway01 that belongs to resource group ResourceGroup001 and stores it to the variable named $Gateway +The second command updates the virtual network gateway Gateway01 with the AAD authentication configurations params:aadTenantUri, aadAudienceId, aadIssuerUri for VpnClient. +The third command removes the AAD authentication configuration from VpnClient of virtual network gateway. + ++ Example 5: Add/Update IpConfigurationBgpPeeringAddresses to an existing virtual network gateway +```powershell +$Gateway = Get-AzVirtualNetworkGateway -ResourceGroupName "ResourceGroup001" -Name "Gateway001" +$ipconfigurationId1 = '/subscriptions/59ac12a6-f2b7-46d4-af3d-98ba9d9dbd92/resourceGroups/ResourceGroup001/providers/Microsoft.Network/virtualNetworkGateways/Gateway001/ipConfigurations/default' +$addresslist1 = @('169.254.21.25') +$gw1ipconfBgp1 = New-AzIpConfigurationBgpPeeringAddressObject -IpConfigurationId $ipconfigurationId1 -CustomAddress $addresslist1 +Set-AzVirtualNetworkGateway -VirtualNetworkGateway $Gateway -IpConfigurationBgpPeeringAddresses $gw1ipconfBgp1 +``` + +```output +Name : Gateway001 +ResourceGroupName : ResourceGroup001 +Location : westcentralus +Id : /subscriptions/59ac12a6-f2b7-46d4-af3d-98ba9d9dbd92/resourceGroups/ResourceGroup001/providers/Microsoft.Network/virtualNetworkGateways/Gateway001 +Etag : W/"a08f13d3-6106-44e0-9127-e35e6f9793d5" +ResourceGuid : 30993429-a1ed-42ca-9862-9156b013626e +ProvisioningState : Succeeded +Tags : +IpConfigurations : [ + { + "PrivateIpAllocationMethod": "Dynamic", + "Subnet": { + "Id": "/subscriptions/59ac12a6-f2b7-46d4-af3d-98ba9d9dbd92/resourceGroups/ResourceGroup001/providers/Microsoft.Network/virtualNetworks/newApipaNet/subnets/GatewaySubnet" + }, + "PublicIpAddress": { + "Id": "/subscriptions/59ac12a6-f2b7-46d4-af3d-98ba9d9dbd92/resourceGroups/ResourceGroup001/providers/Microsoft.Network/publicIPAddresses/newapipaip" + }, + "Name": "default", + "Etag": "W/\"a08f13d3-6106-44e0-9127-e35e6f9793d5\"", + "Id": "/subscriptions/59ac12a6-f2b7-46d4-af3d-98ba9d9dbd92/resourceGroups/ResourceGroup001/providers/Microsoft.Network/virtualNetworkGateways/Gateway001/ipConfigurations/default" + } + ] +GatewayType : Vpn +VpnType : RouteBased +EnableBgp : False +ActiveActive : False +GatewayDefaultSite : null +Sku : { + "Capacity": 2, + "Name": "VpnGw1", + "Tier": "VpnGw1" + } +VpnClientConfiguration : null +BgpSettings : { + "Asn": 65515, + "BgpPeeringAddress": "10.1.255.30", + "PeerWeight": 0, + "BgpPeeringAddresses": [ + { + "IpconfigurationId": "/subscriptions/59ac12a6-f2b7-46d4-af3d-98ba9d9dbd92/resourceGroups/ResourceGroup001/providers/Microsoft.Network/virtualNetworkGateways/Gateway001/ipConfigurations/default", + "DefaultBgpIpAddresses": [ + "10.1.255.30" + ], + "CustomBgpIpAddresses": [ + "169.254.21.55" + ], + "TunnelIpAddresses": [ + "13.78.146.151" + ] + } + ] + } +``` + +The first command gets a virtual network gateway named Gateway01 that belongs to resource group ResourceGroup001 and stores it to the variable named $Gateway +The second command assigns the value of virtual network gateway Gateway01 IpConfiguration Id into variable ipconfigurationId1. +The third command assigns the address list into addresslist1. +The fourth command created a PSIpConfigurationBgpPeeringAddress object. +The fifth command set this new created PSIpConfigurationBgpPeeringAddress to IpConfigurationBgpPeeringAddresses and update the gateway. + ++ Example 6: Update/Remove CustomAddress to an existing IpConfigurationBgpPeeringAddresses of virtual network gateway +```powershell +$Gateway = Get-AzVirtualNetworkGateway -ResourceGroupName "ResourceGroup001" -Name "Gateway001" +$ipconfigurationId1 = '/subscriptions/59ac12a6-f2b7-46d4-af3d-98ba9d9dbd92/resourceGroups/ResourceGroup001/providers/Microsoft.Network/virtualNetworkGateways/Gateway001/ipConfigurations/default' +$addresslist1 = @() +$gw1ipconfBgp1 = New-AzIpConfigurationBgpPeeringAddressObject -IpConfigurationId $ipconfigurationId1 -CustomAddress $addresslist1 +Set-AzVirtualNetworkGateway -VirtualNetworkGateway $Gateway -IpConfigurationBgpPeeringAddresses $gw1ipconfBgp1 +``` + +```output +Name : Gateway001 +ResourceGroupName : ResourceGroup001 +Location : westcentralus +Id : /subscriptions/59ac12a6-f2b7-46d4-af3d-98ba9d9dbd92/resourceGroups/ResourceGroup001/providers/Microsoft.Network/virtualNetworkGateways/Gateway001 +Etag : W/"a08f13d3-6106-44e0-9127-e35e6f9793d5" +ResourceGuid : 30993429-a1ed-42ca-9862-9156b013626e +ProvisioningState : Succeeded +Tags : +IpConfigurations : [ + { + "PrivateIpAllocationMethod": "Dynamic", + "Subnet": { + "Id": "/subscriptions/59ac12a6-f2b7-46d4-af3d-98ba9d9dbd92/resourceGroups/ResourceGroup001/providers/Microsoft.Network/virtualNetworks/newApipaNet/subnets/GatewaySubnet" + }, + "PublicIpAddress": { + "Id": "/subscriptions/59ac12a6-f2b7-46d4-af3d-98ba9d9dbd92/resourceGroups/ResourceGroup001/providers/Microsoft.Network/publicIPAddresses/newapipaip" + }, + "Name": "default", + "Etag": "W/\"a08f13d3-6106-44e0-9127-e35e6f9793d5\"", + "Id": "/subscriptions/59ac12a6-f2b7-46d4-af3d-98ba9d9dbd92/resourceGroups/ResourceGroup001/providers/Microsoft.Network/virtualNetworkGateways/Gateway001/ipConfigurations/default" + } + ] +GatewayType : Vpn +VpnType : RouteBased +EnableBgp : False +ActiveActive : False +GatewayDefaultSite : null +Sku : { + "Capacity": 2, + "Name": "VpnGw1", + "Tier": "VpnGw1" + } +VpnClientConfiguration : null +BgpSettings : { + "Asn": 65515, + "BgpPeeringAddress": "10.1.255.30", + "PeerWeight": 0, + "BgpPeeringAddresses": [ + { + "IpconfigurationId": "/subscriptions/59ac12a6-f2b7-46d4-af3d-98ba9d9dbd92/resourceGroups/ResourceGroup001/providers/Microsoft.Network/virtualNetworkGateways/Gateway001/ipConfigurations/default", + "DefaultBgpIpAddresses": [ + "10.1.255.30" + ], + "CustomBgpIpAddresses": [], + "TunnelIpAddresses": [ + "13.78.146.151" + ] + } + ] + } +``` + +The first command gets a virtual network gateway named Gateway01 that belongs to resource group ResourceGroup001 and stores it to the variable named $Gateway +The second command assigns the value of virtual network gateway Gateway01 IpConfiguration Id into variable ipconfigurationId1. +The third command assigns the address list into addresslist1. +The fourth command created a PSIpConfigurationBgpPeeringAddress object. +The fifth command set this new created PSIpConfigurationBgpPeeringAddress to IpConfigurationBgpPeeringAddresses and update the gateway. + ++ Example 7: Add/Update NatRules to an existing virtual network gateway +```powershell +$Gateway = Get-AzVirtualNetworkGateway -ResourceGroupName "ResourceGroup001" -Name "Gateway001" +$vngNatRules = $Gateway.NatRules +$natRule = New-AzVirtualNetworkGatewayNatRule -Name "natRule1" -Type "Static" -Mode "IngressSnat" -InternalMapping @("25.0.0.0/16") -ExternalMapping @("30.0.0.0/16") +$vngNatRules.Add($natrule) +Set-AzVirtualNetworkGateway -VirtualNetworkGateway $Gateway -NatRule $vngNatRules.NatRules -BgpRouteTranslationForNat $true +``` + +```output +Name : Gateway001 +ResourceGroupName : ResourceGroup001 +Location : westcentralus +Id : /subscriptions/59ac12a6-f2b7-46d4-af3d-98ba9d9dbd92/resourceGroups/ResourceGroup001/providers/Microsoft.Network/virtualNetworkGateways/Gateway001 +Etag : W/"a08f13d3-6106-44e0-9127-e35e6f9793d5" +ResourceGuid : 30993429-a1ed-42ca-9862-9156b013626e +ProvisioningState : Succeeded +Tags : +IpConfigurations : [ + { + "PrivateIpAllocationMethod": "Dynamic", + "Subnet": { + "Id": "/subscriptions/59ac12a6-f2b7-46d4-af3d-98ba9d9dbd92/resourceGroups/ResourceGroup001/providers/Microsoft.Network/virtualNetworks/newApipaNet/subnets/GatewaySubnet" + }, + "PublicIpAddress": { + "Id": "/subscriptions/59ac12a6-f2b7-46d4-af3d-98ba9d9dbd92/resourceGroups/ResourceGroup001/providers/Microsoft.Network/publicIPAddresses/newapipaip" + }, + "Name": "default", + "Etag": "W/\"a08f13d3-6106-44e0-9127-e35e6f9793d5\"", + "Id": "/subscriptions/59ac12a6-f2b7-46d4-af3d-98ba9d9dbd92/resourceGroups/ResourceGroup001/providers/Microsoft.Network/virtualNetworkGateways/Gateway001/ipConfigurations/default" + } + ] +GatewayType : Vpn +VpnType : RouteBased +EnableBgp : False +ActiveActive : False +GatewayDefaultSite : null +Sku : { + "Capacity": 2, + "Name": "VpnGw1", + "Tier": "VpnGw1" + } +VpnClientConfiguration : null +BgpSettings : { + "Asn": 65515, + "BgpPeeringAddress": "10.1.255.30", + "PeerWeight": 0, + "BgpPeeringAddresses": [ + { + "IpconfigurationId": "/subscriptions/59ac12a6-f2b7-46d4-af3d-98ba9d9dbd92/resourceGroups/ResourceGroup001/providers/Microsoft.Network/virtualNetworkGateways/Gateway001/ipConfigurations/default", + "DefaultBgpIpAddresses": [ + "10.1.255.30" + ], + "CustomBgpIpAddresses": [ + "169.254.21.55" + ], + "TunnelIpAddresses": [ + "13.78.146.151" + ] + } + ] + } +NatRules : [ + { + "VirtualNetworkGatewayNatRulePropertiesType": "Static", + "Mode": "IngressSnat", + "InternalMappings": [ + { + "AddressSpace": "25.0.0.0/16" + } + ], + "ExternalMappings": [ + { + "AddressSpace": "30.0.0.0/16" + } + ], + "ProvisioningState": "Succeeded", + "Name": "natRule1", + "Etag": "W/\"5150d788-e165-42ba-99c4-8138a545fce9\"", + "Id": "/subscriptions/59ac12a6-f2b7-46d4-af3d-98ba9d9dbd92/resourceGroups/ResourceGroup001/providers/Microsoft.Network/virtualNetworkGateways/Gateway001/natRules/natRule1" + } + ] +EnableBgpRouteTranslationForNat : True +``` + +The first command gets a virtual network gateway named Gateway01 that belongs to resource group ResourceGroup001 and stores it to the variable named $Gateway +The second command assigns the existing natrules into variable vngNatRules. +The third command assigns the value newly created PSVirtualNetworkGatewayNatRule object natrule into variable natRule. +The fourth command add this PSVirtualNetworkGatewayNatRule object into vngNatRules list. +The fifth command set this new created PSVirtualNetworkGatewayNatRule to NatRules of gateway and update the gateway. + ++ Example 8: Delete multiple expired VpnClientRootCertificates of an existing virtual network gateway +```powershell +$Gateway=Get-AzVirtualNetworkGateway -ResourceGroupName "ResourceGroup001" -Name "Gateway001" + +$rootCerts=$Gateway.VpnClientConfiguration.VpnClientRootCertificates + +$rootCerts.Count +$rootCerts[0] +$rootCerts[1] +$rootCerts.Remove($rootCerts[1]) + +$Gateway1 = Set-AzVirtualNetworkGateway -VirtualNetworkGateway $Gateway -VpnClientRootCertificates $rootCerts +``` + +The first command gets a virtual network gateway named Gateway01 that belongs to resource group ResourceGroup001 and stores it to the variable named $Gateway +The second command gets all the root certificates on VirtualNetworkGateway and save it to another variable $rootCerts +The third command shows total existing root certs on VirtualNetworkGateway. +The forth & fifth commands print root certificates at those corresponding indices for customer to see which ones they want to delete. +The sixth command removes expired root certificate by using that index e.g. here 1. Repeat same steps to remove multiple expired certificates from variable: $rootCerts +The seventh command updates VirtualNetworkGateway to set valid root certificates i.e. certificates that exists in variable: $rootCerts + ++ Example 9: Configure an ExpressRoute virtual network gateway to allow communication over ExpressRoute with other ExpressRoute virtual network gateways in Virtual Wan networks. + +```powershell +#### Option 1 - Retrieve the gateway object, modify the property and save the changes. +$gateway = Get-AzVirtualNetworkGateway -ResourceGroupName "resourceGroup001" -Name "gateway001" +$gateway.AllowVirtualWanTraffic = $true +$gateway = Set-AzVirtualNetworkGateway -VirtualNetworkGateway $gateway + +#### Option 2 - Use the cmdlet switch +$gateway = Get-AzVirtualNetworkGateway -ResourceGroupName "resourceGroup001" -Name "gateway001" +Set-AzVirtualNetworkGateway -VirtualNetworkGateway $gateway -AllowVirtualWanTraffic $true +``` + +In both cases, the first command retrieves the gateway. You may then either modify the property directly on the object and persist it, or you may use the switch on the Set-AzVirtualNetworkGateway cmdlet. + ++ Example 10: Configure an ExpressRoute virtual network gateway to block communication over ExpressRoute with other ExpressRoute virtual network gateways in Virtual Wan networks. + +```powershell +#### Option 1 - Retrieve the gateway object, modify the property and save the changes. +$gateway = Get-AzVirtualNetworkGateway -ResourceGroupName "resourceGroup001" -Name "gateway001" +$gateway.AllowVirtualWanTraffic = $false +$gateway = Set-AzVirtualNetworkGateway -VirtualNetworkGateway $gateway + +#### Option 2 - Use the cmdlet switch +$gateway = Get-AzVirtualNetworkGateway -ResourceGroupName "resourceGroup001" -Name "gateway001" +Set-AzVirtualNetworkGateway -VirtualNetworkGateway $gateway -AllowVirtualWanTraffic $false +``` + +In both cases, the first command retrieves the gateway. You may then either modify the property directly on the object and persist it, or you may use the switch on the Set-AzVirtualNetworkGateway cmdlet. + ++ Example 11: Configure an ExpressRoute virtual network gateway to allow communication over ExpressRoute with other ExpressRoute virtual network gateways in other VNets. + +```powershell +#### Option 1 - Retrieve the gateway object, modify the property and save the changes. +$gateway = Get-AzVirtualNetworkGateway -ResourceGroupName "resourceGroup001" -Name "gateway001" +$gateway.AllowRemoteVnetTraffic = $true +$gateway = Set-AzVirtualNetworkGateway -VirtualNetworkGateway $gateway + +#### Option 2 - Use the cmdlet switch +$gateway = Get-AzVirtualNetworkGateway -ResourceGroupName "resourceGroup001" -Name "gateway001" +Set-AzVirtualNetworkGateway -VirtualNetworkGateway $gateway -AllowRemoteVnetTraffic $true +``` + +In both cases, the first command retrieves the gateway. You may then either modify the property directly on the object and persist it, or you may use the switch on the Set-AzVirtualNetworkGateway cmdlet. + ++ Example 12: Configure an ExpressRoute virtual network gateway to block communication over ExpressRoute with other virtual network gateways in other VNets. + +```powershell +#### Option 1 - Retrieve the gateway object, modify the property and save the changes. +$gateway = Get-AzVirtualNetworkGateway -ResourceGroupName "resourceGroup001" -Name "gateway001" +$gateway.AllowRemoteVnetTraffic = $false +$gateway = Set-AzVirtualNetworkGateway -VirtualNetworkGateway $gateway + +#### Option 2 - Use the cmdlet switch +$gateway = Get-AzVirtualNetworkGateway -ResourceGroupName "resourceGroup001" -Name "gateway001" +Set-AzVirtualNetworkGateway -VirtualNetworkGateway $gateway -AllowRemoteVnetTraffic $false +``` + +In both cases, the first command retrieves the gateway. You may then either modify the property directly on the object and persist it, or you may use the switch on the Set-AzVirtualNetworkGateway cmdlet. + ++ Example 13: Configure a virtual network gateway with a user-assigned managed identity + +```powershell +#### Create or retrieve the user-assigned managed identity +$identity = Get-AzUserAssignedIdentity -ResourceGroupName "resourceGroup001" -Name "myIdentity001" + +#### Get the virtual network gateway +$gateway = Get-AzVirtualNetworkGateway -ResourceGroupName "resourceGroup001" -Name "gateway001" + +#### Set the identity using the UserAssignedIdentityId parameter +Set-AzVirtualNetworkGateway -VirtualNetworkGateway $gateway -UserAssignedIdentityId $identity.Id +``` + +This example demonstrates how to configure a virtual network gateway with a user-assigned managed identity. This uses the UserAssignedIdentityId parameter to create the managed identity object. User-assigned identities are useful for accessing Azure Key Vault certificates for gateway authentication. + + +#### Invoke-AzVirtualNetworkGatewayAbortMigration + +#### SYNOPSIS +Trigger abort migration for virtual network gateway. + +#### SYNTAX + ++ ByName (Default) +```powershell +Invoke-AzVirtualNetworkGatewayAbortMigration -Name -ResourceGroupName [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByInputObject +```powershell +Invoke-AzVirtualNetworkGatewayAbortMigration -InputObject [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByResourceId +```powershell +Invoke-AzVirtualNetworkGatewayAbortMigration -ResourceId [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$gateway = Get-AzVirtualNetworkGateway -Name "ContosoVirtualGateway" -ResourceGroupName "RGName" +Invoke-AzVirtualNetworkGatewayAbortMigration -InputObject $gateway +``` + + +#### Get-AzVirtualNetworkGatewayAdvertisedRoute + +#### SYNOPSIS +Lists routes being advertised by an Azure virtual network gateway + +#### SYNTAX + +```powershell +Get-AzVirtualNetworkGatewayAdvertisedRoute -VirtualNetworkGatewayName -ResourceGroupName + -Peer [-AsJob] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzVirtualNetworkGatewayAdvertisedRoute -VirtualNetworkGatewayName gatewayName -ResourceGroupName resourceGroupName -Peer 10.0.0.254 +``` + +For the Azure gateway named gatewayName in resource group resourceGroupName, retrieves a list of routes being advertised to the BGP peer with IP 10.0.0.254 + ++ Example 2 +```powershell +$bgpPeerStatus = Get-AzVirtualNetworkGatewayBGPPeerStatus -VirtualNetworkGatewayName gatewayName -ResourceGroupName resourceGroupName +Get-AzVirtualNetworkGatewayAdvertisedRoute -VirtualNetworkGatewayName gatewayName -ResourceGroupName resourceGroupName -Peer $bgpPeerStatus[0].Neighbor +``` + +For the Azure gateway named gatewayName in resource group resourceGroupName, retrieves routes being advertised to the first BGP peer on the gateway's list of BGP peers. + + +#### Get-AzVirtualNetworkGatewayBGPPeerStatus + +#### SYNOPSIS +Lists an Azure virtual network gateway's BGP peers + +#### SYNTAX + +```powershell +Get-AzVirtualNetworkGatewayBGPPeerStatus -VirtualNetworkGatewayName -ResourceGroupName + [-Peer ] [-AsJob] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzVirtualNetworkGatewayBGPPeerStatus -ResourceGroupName resourceGroup -VirtualNetworkGatewayName gatewayName +``` + +```output +Asn : 65515 +ConnectedDuration : 9.01:04:53.5768637 +LocalAddress : 10.1.0.254 +MessagesReceived : 14893 +MessagesSent : 14900 +Neighbor : 10.0.0.254 +RoutesReceived : 1 +State : Connected +``` + +Retrieves BGP peers for the Azure virtual network gateway named gatewayName in resource group resourceGroup. +This example output shows one connected BGP peer, with an IP of 10.0.0.254. + + +#### New-AzVirtualNetworkGatewayCertificateAuthentication + +#### SYNOPSIS +Creates a certificate authentication configuration object for VPN gateway connections. + +#### SYNTAX + +```powershell +New-AzVirtualNetworkGatewayCertificateAuthentication [-OutboundAuthCertificate ] + [-InboundAuthCertificateSubjectName ] [-InboundAuthCertificateChain ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Create a certificate authentication object +```powershell +#### Create certificate chain array with base64-encoded certificates (without BEGIN/END CERTIFICATE headers) +$certChain = @( + "MIIDfzCCAmegAwIBAgIQIFxjNWTuGjYGa8zJVnpfnDANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1DZXJ0QmFzZWRBdXRoMB4XDTI0MTIxODA1MjkzOVoXDTI1MTIxODA2MDk...", + "MIIDezCCAmOgAwIBAgIQQIpJdJF8D8JwkqF6fJ6zGDANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1DZXJ0QmFzZWRBdXRoMB4XDTI0MTIxODA1MjkzOVoXDTI1MTIxODA2MDk..." +) + +$certAuth = New-AzVirtualNetworkGatewayCertificateAuthentication ` + -OutboundAuthCertificate "https://myvault.vault.azure.net/certificates/mycert/abc123" ` + -InboundAuthCertificateSubjectName "MyCertSubject" ` + -InboundAuthCertificateChain $certChain +``` + +This example creates a certificate authentication object with a Key Vault certificate URL for outbound authentication, a certificate subject name for inbound authentication, and a certificate chain. This object can then be used with New-AzVirtualNetworkGatewayConnection or Set-AzVirtualNetworkGatewayConnection. + + +#### Invoke-AzVirtualNetworkGatewayCommitMigration + +#### SYNOPSIS +Trigger commit migration for virtual network gateway. + +#### SYNTAX + ++ ByName (Default) +```powershell +Invoke-AzVirtualNetworkGatewayCommitMigration -Name -ResourceGroupName [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByInputObject +```powershell +Invoke-AzVirtualNetworkGatewayCommitMigration -InputObject [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByResourceId +```powershell +Invoke-AzVirtualNetworkGatewayCommitMigration -ResourceId [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$gateway = Get-AzVirtualNetworkGateway -Name "ContosoVirtualGateway" -ResourceGroupName "RGName" +Invoke-AzVirtualNetworkGatewayCommitMigration -InputObject $gateway +``` + + +#### New-AzVirtualNetworkGatewayConnection + +#### SYNOPSIS +Creates the Site-to-Site VPN connection between the virtual network gateway and the on-prem VPN device. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +New-AzVirtualNetworkGatewayConnection -Name -ResourceGroupName -Location + [-AuthorizationKey ] -VirtualNetworkGateway1 + [-VirtualNetworkGateway2 ] [-LocalNetworkGateway2 ] + -ConnectionType [-RoutingWeight ] [-DpdTimeoutInSeconds ] [-ConnectionMode ] + [-SharedKey ] [-Peer ] [-EnableBgp ] [-UseLocalAzureIpAddress] [-Tag ] + [-Force] [-UsePolicyBasedTrafficSelectors ] [-IpsecPolicies ] + [-TrafficSelectorPolicy ] [-ConnectionProtocol ] + [-IngressNatRule ] [-EgressNatRule ] + [-GatewayCustomBgpIpAddress ] [-AuthenticationType ] + [-CertificateAuthentication ] [-AsJob] [-ExpressRouteGatewayBypass] + [-EnablePrivateLinkFastPath] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ SetByResourceId +```powershell +New-AzVirtualNetworkGatewayConnection -Name -ResourceGroupName -Location + [-AuthorizationKey ] -VirtualNetworkGateway1 + [-VirtualNetworkGateway2 ] [-LocalNetworkGateway2 ] + -ConnectionType [-RoutingWeight ] [-DpdTimeoutInSeconds ] [-ConnectionMode ] + [-SharedKey ] [-PeerId ] [-EnableBgp ] [-UseLocalAzureIpAddress] [-Tag ] + [-Force] [-UsePolicyBasedTrafficSelectors ] [-IpsecPolicies ] + [-TrafficSelectorPolicy ] [-ConnectionProtocol ] + [-IngressNatRule ] [-EgressNatRule ] + [-GatewayCustomBgpIpAddress ] [-AuthenticationType ] + [-CertificateAuthentication ] [-AsJob] [-ExpressRouteGatewayBypass] + [-EnablePrivateLinkFastPath] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$vnetgw1 = Get-AzVirtualNetworkGateway -ResourceGroupName "Rg1" -Name "gw1" +$vnetgw2 = Get-AzVirtualNetworkGateway -ResourceGroupName "Rg1" -Name "gw2" +New-AzVirtualNetworkGatewayConnection -Name conn-client-1 -ResourceGroupName "Rg1" -VirtualNetworkGateway1 $vnetgw1 -VirtualNetworkGateway2 $vnetgw2 -Location "eastus" -ConnectionType Vnet2Vnet -SharedKey 'a1b2c3d4e5' +``` + ++ Example 2 Add/Update IngressNatRule/EgressNatRule to an existing virtual network gateway connection +```powershell +$vnetgw1 = Get-AzVirtualNetworkGateway -ResourceGroupName "Rg1" -Name "vnetgw1" +$vnetgw2 = Get-AzVirtualNetworkGateway -ResourceGroupName "Rg1" -Name "vnetgw2" +$ingressnatrule = Get-AzVirtualNetworkGatewayNatRule -ResourceGroupName "Rg1" -Name "natRule1" -ParentResourceName vnetgw1 +$egressnatrule = Get-AzVirtualNetworkGatewayNatRule -ResourceGroupName "Rg1" -Name "natRule2" -ParentResourceName vnetgw1 +New-AzVirtualNetworkGatewayConnection -Name conn-client-1 -ResourceGroupName $RG1 -VirtualNetworkGateway1 $vnetgw1 -VirtualNetworkGateway2 $vnetgw2 -Location "eastus" -ConnectionType Vnet2Vnet -SharedKey 'a1b2c3d4e5' ` +-IngressNatRule $ingressnatrule -EgressNatRule $egressnatrule +``` + +The first command gets a virtual network gateway natRule named natRule1 that's type is IngressSnat. +The second command gets a virtual network gateway natRule named natRule2 that's type is EgressSnat. +The third command creates this new virtual Network gateway connection with Ingress and Egress NatRules. + ++ Example 3 Add GatewayCustomBgpIpAddress to virtual network gateway connection +```powershell +$LocalnetGateway = Get-AzLocalNetworkGateway -ResourceGroupName "PS_testing" -name "testLng" +$gateway = Get-AzVirtualNetworkGateway -ResourceGroupName PS_testing -ResourceName testGw +$address = New-AzGatewayCustomBgpIpConfigurationObject -IpConfigurationId "/subscriptions/83704d68-d560-4c67-b1c7-12404db89dc3/resourceGroups/PS_testing/providers/Microsoft.Network/virtualNetworkGateways/testGw/ipConfigurations/default" -CustomBgpIpAddress "169.254.21.1" + +New-AzVirtualNetworkGatewayConnection -ResourceGroupName "PS_testing" -name "Conn" -location "eastus" -VirtualNetworkGateway1 $gateway -LocalNetworkGateway2 $localnetGateway -ConnectionType IPsec -RoutingWeight 3 -SharedKey abc -GatewayCustomBgpIpAddress $address -EnableBgp $true +``` + +The two command gets a local network gateway and virtual network gateway. +The third command creates a AzGatewayCustomBgpIpConfigurationObject. +The third command creates this new virtual Network gateway connection with GatewayCustomBgpIpAddress. + ++ Example 4 Create a new virtual network gateway connection with certificate-based authentication +```powershell +$gateway = Get-AzVirtualNetworkGateway -ResourceGroupName "myResourceGroup" -Name "myVnetGateway" +$localGateway = Get-AzLocalNetworkGateway -ResourceGroupName "myResourceGroup" -Name "myLocalGateway" + +#### Create certificate chain array with base64-encoded certificates (without BEGIN/END CERTIFICATE headers) +$certChain = @( + "MIIDfzCCAmegAwIBAgIQIFxjNWTuGjYGa8zJVnpfnDANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1DZXJ0QmFzZWRBdXRoMB4XDTI0MTIxODA1MjkzOVoXDTI1MTIxODA2MDk...", + "MIIDezCCAmOgAwIBAgIQQIpJdJF8D8JwkqF6fJ6zGDANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1DZXJ0QmFzZWRBdXRoMB4XDTI0MTIxODA1MjkzOVoXDTI1MTIxODA2MDk..." +) + +$certAuth = New-AzVirtualNetworkGatewayCertificateAuthentication ` + -OutboundAuthCertificate "https://myvault.vault.azure.net/certificates/mycert/abc123" ` + -InboundAuthCertificateSubjectName "MyCertSubject" ` + -InboundAuthCertificateChain $certChain + +New-AzVirtualNetworkGatewayConnection -Name "myCertConnection" -ResourceGroupName "myResourceGroup" -Location "eastus" ` + -VirtualNetworkGateway1 $gateway -LocalNetworkGateway2 $localGateway -ConnectionType IPsec ` + -AuthenticationType "Certificate" -CertificateAuthentication $certAuth +``` + +This example creates a new virtual network gateway connection with certificate-based authentication. +The first two commands get the virtual network gateway and local network gateway. +The New-AzVirtualNetworkGatewayCertificateAuthentication cmdlet creates the certificate authentication configuration with the Key Vault certificate URL for outbound authentication, the certificate subject name for inbound authentication, and the certificate chain. +The final command creates the new connection with certificate-based authentication instead of a pre-shared key. + + +#### Get-AzVirtualNetworkGatewayConnection + +#### SYNOPSIS +Gets a Virtual Network Gateway Connection + +#### SYNTAX + +```powershell +Get-AzVirtualNetworkGatewayConnection [-Name ] -ResourceGroupName + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Get a Virtual Network Gateway Connection +```powershell +Get-AzVirtualNetworkGatewayConnection -Name myTunnel -ResourceGroupName myRG +``` + +Returns the object of the Virtual Network Gateway Connection with the name "myTunnel" within the resource group "myRG" + ++ Example 2: Get all Virtual Network Gateway Connections using filtering +```powershell +Get-AzVirtualNetworkGatewayConnection -Name myTunnel* -ResourceGroupName myRG +``` + +Returns all Virtual Network Gateway Connections that start with "myTunnel" within the resource group "myRG" + + +#### Remove-AzVirtualNetworkGatewayConnection + +#### SYNOPSIS +Deletes a Virtual Network Gateway Connection + +#### SYNTAX + +```powershell +Remove-AzVirtualNetworkGatewayConnection -Name -ResourceGroupName [-Force] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Delete a Virtual Network Gateway Connection +```powershell +Remove-AzVirtualNetworkGatewayConnection -Name myTunnel -ResourceGroupName myRG +``` + +Deletes the object of the Virtual Network Gateway Connection with the name "myTunnel" within the resource group "myRG" + + +#### Reset-AzVirtualNetworkGatewayConnection + +#### SYNOPSIS +Reset a Virtual Network Gateway Connection + +#### SYNTAX + ++ ByName (Default) +```powershell +Reset-AzVirtualNetworkGatewayConnection -Name -ResourceGroupName [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByInputObject +```powershell +Reset-AzVirtualNetworkGatewayConnection -InputObject [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByResourceId +```powershell +Reset-AzVirtualNetworkGatewayConnection -ResourceId [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Reset-AzVirtualNetworkGatewayConnection -ResourceGroupName myRG -Name myTunnel +``` + +Resets the Virtual Network Gateway Connection with the name "myTunnel" within the resource group "myRG" + + +#### Set-AzVirtualNetworkGatewayConnection + +#### SYNOPSIS +Configures a virtual network gateway connection. + +#### SYNTAX + ++ Default (Default) +```powershell +Set-AzVirtualNetworkGatewayConnection -VirtualNetworkGatewayConnection + [-EnableBgp ] [-DpdTimeoutInSeconds ] [-ConnectionMode ] + [-UsePolicyBasedTrafficSelectors ] [-UseLocalAzureIpAddress ] + [-IpsecPolicies ] [-TrafficSelectorPolicy ] + [-IngressNatRule ] [-EgressNatRule ] + [-GatewayCustomBgpIpAddress ] [-Force] [-AsJob] + [-AuthenticationType ] [-CertificateAuthentication ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ UpdateResourceWithTags +```powershell +Set-AzVirtualNetworkGatewayConnection -VirtualNetworkGatewayConnection + [-EnableBgp ] [-DpdTimeoutInSeconds ] [-ConnectionMode ] + [-UsePolicyBasedTrafficSelectors ] [-UseLocalAzureIpAddress ] + [-IpsecPolicies ] [-TrafficSelectorPolicy ] + [-IngressNatRule ] [-EgressNatRule ] + [-GatewayCustomBgpIpAddress ] -Tag [-Force] [-AsJob] + [-AuthenticationType ] [-CertificateAuthentication ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: +```powershell +$conn = Get-AzVirtualNetworkGatewayConnection -Name 1 -ResourceGroupName myRG +Set-AzVirtualNetworkGatewayConnection -VirtualNetworkGatewayConnection $conn +``` + +```output +Confirm +Are you sure you want to overwrite resource '1' +[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): y + + +Name : 1 +ResourceGroupName : myRG +Location : westus +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Mi + crosoft.Network/connections/1 +Etag : W/"00000000-0000-0000-0000-000000000000" +ResourceGuid : 00000000-0000-0000-0000-000000000000 +ProvisioningState : Succeeded +Tags : +AuthorizationKey : +VirtualNetworkGateway1 : "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/M + icrosoft.Network/virtualNetworkGateways/myGateway" +VirtualNetworkGateway2 : "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/S2SVnetConn/providers/Mic + rosoft.Network/virtualNetworkGateways/S2SConnGW" +LocalNetworkGateway2 : +Peer : +RoutingWeight : 0 +SharedKey : +ConnectionStatus : Connected +EgressBytesTransferred : 91334484 +IngressBytesTransferred : 100386089 +TunnelConnectionStatus : [] +``` + ++ Example 2: Add/Update tags to an existing VirtualNetworkGatewayConnection +```powershell +$conn = Get-AzVirtualNetworkGatewayConnection -Name 1 -ResourceGroupName myRG +Set-AzVirtualNetworkGatewayConnection -VirtualNetworkGatewayConnection $conn -Tag @{ testtagKey="SomeTagKey"; testtagValue="SomeKeyValue" } +``` + +```output +Confirm +Are you sure you want to overwrite resource '1' +[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): y + + +Name : 1 +ResourceGroupName : myRG +Location : westus +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Mi + crosoft.Network/connections/1 +Etag : W/"00000000-0000-0000-0000-000000000000" +ResourceGuid : 00000000-0000-0000-0000-000000000000 +ProvisioningState : Succeeded +Tags : + Name Value + ============ ============ + testtagValue SomeKeyValue + testtagKey SomeTagKey +AuthorizationKey : +VirtualNetworkGateway1 : "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/M + icrosoft.Network/virtualNetworkGateways/myGateway" +VirtualNetworkGateway2 : "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/S2SVnetConn/providers/Mic + rosoft.Network/virtualNetworkGateways/S2SConnGW" +LocalNetworkGateway2 : +Peer : +RoutingWeight : 0 +SharedKey : +ConnectionStatus : Connected +EgressBytesTransferred : 91334484 +IngressBytesTransferred : 100386089 +TunnelConnectionStatus : [] +``` + ++ Example 3: Add/Remove natRules to an existing VirtualNetworkGatewayConnection +```powershell +$conn = Get-AzVirtualNetworkGatewayConnection -Name 1 -ResourceGroupName myRG +$egressNatrule = Get-AzVirtualNetworkGatewayNatRule -ResourceGroupName myRG -Name "natRule1" -ParentResourceName "gw1" +Set-AzVirtualNetworkGatewayConnection -VirtualNetworkGatewayConnection $conn -IngressNatRule @() -EgressNatRule $egressNatrule +``` + +```output +Confirm +Are you sure you want to overwrite resource '1' +[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): y + + +Name : 1 +ResourceGroupName : myRG +Location : westus +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Mi + crosoft.Network/connections/1 +Etag : W/"00000000-0000-0000-0000-000000000000" +ResourceGuid : 00000000-0000-0000-0000-000000000000 +ProvisioningState : Succeeded +Tags : + Name Value + ============ ============ + testtagValue SomeKeyValue + testtagKey SomeTagKey +AuthorizationKey : +VirtualNetworkGateway1 : "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/M + icrosoft.Network/virtualNetworkGateways/myGateway" +VirtualNetworkGateway2 : "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/S2SVnetConn/providers/Mic + rosoft.Network/virtualNetworkGateways/S2SConnGW" +LocalNetworkGateway2 : +Peer : +RoutingWeight : 0 +SharedKey : +ConnectionStatus : Connected +EgressBytesTransferred : 91334484 +IngressBytesTransferred : 100386089 +TunnelConnectionStatus : [] +IngressNatRules : [] +EgressNatRules : [ + { + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.Network/virtualNetworkGateways/gw1/natRules/natRule1" + } + ] +``` + +The first command gets a virtual network gateway connection named 1 that belongs to resource group myRG and stores it to the variable named $conn. +The second command gets the virtual network gateway natRule named natRule1 and stores it to the variable named $egressNatrule. +The third command sets virtual network gateway connection with removed all IngressNatRules and add egressNatrule into EgressNatRules. + ++ Example 3: Add/Remove GatewayCustomBgpIpAddress to an existing VirtualNetworkGatewayConnection +```powershell +$address1 = New-AzGatewayCustomBgpIpConfigurationObject -IpConfigurationId "/subscriptions/83704d68-d560-4c67-b1c7-12404db89dc3/resourceGroups/PS_testing/providers/Microsoft.Network/virtualNetworkGateways/testGw/ipConfigurations/default" -CustomBgpIpAddress "169.254.21.1" +$address2 = New-AzGatewayCustomBgpIpConfigurationObject -IpConfigurationId "/subscriptions/83704d68-d560-4c67-b1c7-12404db89dc3/resourceGroups/PS_testing/providers/Microsoft.Network/virtualNetworkGateways/testGw/ipConfigurations/ActiveActive" -CustomBgpIpAddress "169.254.21.3" +$conn = Get-AzVirtualNetworkGatewayConnection -ResourceGroupName PS_testing -ResourceName Conn + +Set-AzVirtualNetworkGatewayConnection -VirtualNetworkGatewayConnection $conn -GatewayCustomBgpIpAddress $address1,$address2 +``` + +```output +Name : Conn +ResourceGroupName : PS_testing +Location : eastus +Id : /subscriptions/83704d68-d560-4c67-b1c7-12404db89dc3/resourceGroups/PS_testing/providers/Microsoft.Network/connections/Conn +Etag : W/"e867e7bb-fa2e-436e-8822-70c556ec0f03" +ResourceGuid : 9c33f4f7-b09c-4080-932e-a44405a8c252 +ProvisioningState : Succeeded +Tags : +AuthorizationKey : +VirtualNetworkGateway1 : "/subscriptions/83704d68-d560-4c67-b1c7-12404db89dc3/resourceGroups/PS_testing/providers/Microsoft.Network/virtualNetworkGateways/testGw" +VirtualNetworkGateway2 : +LocalNetworkGateway2 : "/subscriptions/83704d68-d560-4c67-b1c7-12404db89dc3/resourceGroups/PS_testing/providers/Microsoft.Network/localNetworkGateways/testLng" +Peer : +RoutingWeight : 3 +SharedKey : abc +ExpressRouteGatewayBypass : False +EnablePrivateLinkFastPath : False +ConnectionStatus : Unknown +EgressBytesTransferred : 0 +IngressBytesTransferred : 0 +TunnelConnectionStatus : [] +IngressNatRules : [] +EgressNatRules : [] +GatewayCustomBgpIpAddresses : [ + { + "IpconfigurationId": + "/subscriptions/83704d68-d560-4c67-b1c7-12404db89dc3/resourceGroups/PS_testing/providers/Microsoft.Network/virtualNetworkGateways/testGw/ipConfigurations/default", + "CustomBgpIpAddress": "169.254.21.1" + }, + { + "IpconfigurationId": + "/subscriptions/83704d68-d560-4c67-b1c7-12404db89dc3/resourceGroups/PS_testing/providers/Microsoft.Network/virtualNetworkGateways/testGw/ipConfigurations/ActiveActive", + "CustomBgpIpAddress": "169.254.21.3" + } + ] +``` + +This will create new AzGatewayCustomBgpIpConfigurationObjects and update gateway connection with these GatewayCustomBgpIpAddress. + ++ Example 4: Remove GatewayCustomBgpIpAddress to an existing VirtualNetworkGatewayConnection +```powershell +$conn = Get-AzVirtualNetworkGatewayConnection -ResourceGroupName PS_testing -ResourceName Conn +Set-AzVirtualNetworkGatewayConnection -VirtualNetworkGatewayConnection $conn -GatewayCustomBgpIpAddress @() +``` + +```output +Name : Conn +ResourceGroupName : PS_testing +Location : eastus +Id : /subscriptions/83704d68-d560-4c67-b1c7-12404db89dc3/resourceGroups/PS_testing/providers/Microsoft.Network/connections/Conn +Etag : W/"863d9b89-a030-42ba-9f71-58d5bc3336a9" +ResourceGuid : 9c33f4f7-b09c-4080-932e-a44405a8c252 +ProvisioningState : Succeeded +Tags : +AuthorizationKey : +VirtualNetworkGateway1 : "/subscriptions/83704d68-d560-4c67-b1c7-12404db89dc3/resourceGroups/PS_testing/providers/Microsoft.Network/virtualNetworkGateways/testGw" +VirtualNetworkGateway2 : +LocalNetworkGateway2 : "/subscriptions/83704d68-d560-4c67-b1c7-12404db89dc3/resourceGroups/PS_testing/providers/Microsoft.Network/localNetworkGateways/testLng" +Peer : +RoutingWeight : 3 +SharedKey : abc +ExpressRouteGatewayBypass : False +EnablePrivateLinkFastPath : False +ConnectionStatus : NotConnected +EgressBytesTransferred : 0 +IngressBytesTransferred : 0 +TunnelConnectionStatus : [] +IngressNatRules : [] +EgressNatRules : [] +GatewayCustomBgpIpAddresses : [] +``` + +This will update gateway connection with removing these GatewayCustomBgpIpAddress. + + +#### Get-AzVirtualNetworkGatewayConnectionIkeSa + +#### SYNOPSIS +Get IKE Security Associations of a Virtual Network Gateway Connection + +#### SYNTAX + ++ ByName (Default) +```powershell +Get-AzVirtualNetworkGatewayConnectionIkeSa -Name -ResourceGroupName [-AsJob] + [-DefaultProfile ] [] +``` + ++ ByInputObject +```powershell +Get-AzVirtualNetworkGatewayConnectionIkeSa -InputObject [-AsJob] + [-DefaultProfile ] [] +``` + ++ ByResourceId +```powershell +Get-AzVirtualNetworkGatewayConnectionIkeSa -ResourceId [-AsJob] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzVirtualNetworkGatewayConnectionIkeSa -ResourceGroupName myRG -Name myTunnel +``` + +```output +localEndpoint : 52.180.160.154 +remoteEndpoint : 104.208.54.1 +initiatorCookie : 5490733703579933026 +responderCookie : 15460013388959380535 +localUdpEncapsulationPort : 0 +remoteUdpEncapsulationPort : 0 +encryption : AES256 +integrity : SHA1 +dhGroup : DHGroup2 +lifeTimeSeconds : 28800 +isSaInitiator : True +elapsedTimeInseconds : 23092 +quickModeSa : {} +``` + +Returns the IKE Security Associations for the Virtual Network Gateway Connection with the name "myTunnel" within the resource group "myRG" + + +#### Start-AzVirtualNetworkGatewayConnectionPacketCapture + +#### SYNOPSIS +Starts Packet Capture Operation on a Virtual Network Gateway Connection. + +#### SYNTAX + ++ ByName (Default) +```powershell +Start-AzVirtualNetworkGatewayConnectionPacketCapture -ResourceGroupName -Name + [-FilterData ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByInputObject +```powershell +Start-AzVirtualNetworkGatewayConnectionPacketCapture -InputObject + [-FilterData ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByResourceId +```powershell +Start-AzVirtualNetworkGatewayConnectionPacketCapture -ResourceId [-FilterData ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Start-AzVirtualNetworkGatewayConnectionPacketCapture -ResourceGroupName "PktCaptureTestSite2RG" -Name "PktCaptureTestSite2Site1Cn" +``` + +```output +Code : Succeeded +EndTime : 10/1/2019 12:52:37 AM +StartTime : 10/1/2019 12:52:25 AM +ResultsText : +ResourceGroupName : PktCaptureTestSite2RG +Location : centraluseuap +ResourceGuid : ac70028f-5b88-4ad4-93d3-0b9a9172c382 +Type : +Tag : +TagsTable : +Name : PktCaptureTestSite2Site1Cn +Etag : +Id : +``` + ++ Example 2 +```powershell +$a="{`"TracingFlags`":11,`"MaxPacketBufferSize`":120,`"MaxFileSize`":500,`"Filters`":[{`"SourceSubnets`":[`"10.19.0.4/32`",`"10.20.0.4/32`"],`"DestinationSubnets`":[`"10.20.0.4/32`",`"10.19.0.4/32`"],`"TcpFlags`":-1,`"Protocol`":[6],`"CaptureSingleDirectionTrafficOnly`":true}]}" +Start-AzVirtualNetworkGatewayConnectionPacketCapture -ResourceGroupName "PktCaptureTestSite2RG" -Name "PktCaptureTestSite2Site1Cn" -FilterData $a +``` + +```output +Code : Succeeded +EndTime : 10/1/2019 12:52:37 AM +StartTime : 10/1/2019 12:52:25 AM +ResultsText : +ResourceGroupName : PktCaptureTestSite2RG +Location : centraluseuap +ResourceGuid : ac70028f-5b88-4ad4-93d3-0b9a9172c382 +Type : +Tag : +TagsTable : +Name : PktCaptureTestSite2Site1Cn +Etag : +Id : +``` + ++ Example 3 +Packet Capture example for capture all inner and outer packets + + +```powershell +$a = "{`"TracingFlags`": 11,`"MaxPacketBufferSize`": 120,`"MaxFileSize`": 500,`"Filters`" :[{`"CaptureSingleDirectionTrafficOnly`": false}]}" +Start-AzVirtualNetworkGatewayConnectionPacketCapture -ResourceGroupName "PktCaptureTestSite2RG" -Name "PktCaptureTestSite2Site1Cn" -FilterData $a +``` + +```output +Code : Succeeded +EndTime : 10/1/2019 12:52:37 AM +StartTime : 10/1/2019 12:52:25 AM +ResultsText : +ResourceGroupName : PktCaptureTestSite2RG +Location : centraluseuap +ResourceGuid : ac70028f-5b88-4ad4-93d3-0b9a9172c382 +Type : +Tag : +TagsTable : +Name : PktCaptureTestSite2Site1Cn +Etag : +Id : +``` + + +#### Stop-AzVirtualNetworkGatewayConnectionPacketCapture + +#### SYNOPSIS +Stops Packet Capture Operation on a Virtual Network Gateway connection + +#### SYNTAX + ++ ByName (Default) +```powershell +Stop-AzVirtualNetworkGatewayConnectionPacketCapture -ResourceGroupName -Name -SasUrl + [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByInputObject +```powershell +Stop-AzVirtualNetworkGatewayConnectionPacketCapture -InputObject + -SasUrl [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByResourceId +```powershell +Stop-AzVirtualNetworkGatewayConnectionPacketCapture -ResourceId -SasUrl [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$rgname = "testRg" +$storeName = "teststorage" +$containerName = "packetcaptureresults" +$key = Get-AzStorageAccountKey -ResourceGroupName $rgname -Name $storeName +$context = New-AzStorageContext -StorageAccountName $storeName -StorageAccountKey $key[0].Value +New-AzStorageContainer -Name $containerName -Context $context +$container = Get-AzStorageContainer -Name $containerName -Context $context +$now = Get-Date +$sasurl = New-AzStorageContainerSASToken -Name $containerName -Context $context -Permission "rwd" -StartTime $now.AddHours(-1) -ExpiryTime $now.AddDays(1) -FullUri +Stop-AzVirtualNetworkGatewayConnectionPacketCapture -ResourceGroupName $rgname -Name "testconn" -SasUrl $sasurl +``` + +```output +Code : Succeeded +EndTime : 10/1/2019 12:54:51 AM +StartTime : 10/1/2019 12:53:40 AM +ResultsText : +ResourceGroupName : testRg +Location : centraluseuap +ResourceGuid : ac70028f-5b88-4ad4-93d3-0b9a9172c382 +Type : +Tag : +TagsTable : +Name : testconn +Etag : +Id : +``` + ++ Example 2 +```powershell +$rgname = "testRg" +$storeName = "teststorage" +$containerName = "packetcaptureresults" +$key = Get-AzStorageAccountKey -ResourceGroupName $rgname -Name $storeName +$context = New-AzStorageContext -StorageAccountName $storeName -StorageAccountKey $key[0].Value +$container = Get-AzStorageContainer -Name $containerName -Context $context +$now = Get-Date +$sasurl = New-AzStorageContainerSASToken -Name $containerName -Context $context -Permission "rwd" -StartTime $now.AddHours(-1) -ExpiryTime $now.AddDays(1) -FullUri +$conn = Get-AzVirtualNetworkGatewayConnection -name "testconn" -ResourceGroupName $rgname +Stop-AzVirtualNetworkGatewayConnectionPacketCapture -InputObject $conn -SasUrl $sasurl +``` + +```output +Code : Succeeded +EndTime : 10/1/2019 12:54:51 AM +StartTime : 10/1/2019 12:53:40 AM +ResultsText : +ResourceGroupName : testRg +Location : centraluseuap +ResourceGuid : ac70028f-5b88-4ad4-93d3-0b9a9172c382 +Type : +Tag : +TagsTable : +Name : testconn +Etag : +Id : +``` + + +#### Get-AzVirtualNetworkGatewayConnectionSharedKey + +#### SYNOPSIS +Displays the shared key used for the connection. + +#### SYNTAX + +```powershell +Get-AzVirtualNetworkGatewayConnectionSharedKey [-Name ] -ResourceGroupName + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzVirtualNetworkGatewayConnectionSharedKey -Name 1 -ResourceGroupName P2SVPNGateway +``` + +```output +xxxxxx +``` + + +#### Reset-AzVirtualNetworkGatewayConnectionSharedKey + +#### SYNOPSIS +Resets the shared key of the virtual network gateway connection. + +#### SYNTAX + +```powershell +Reset-AzVirtualNetworkGatewayConnectionSharedKey -Name -ResourceGroupName -KeyLength + [-Force] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: +```powershell +Reset-AzVirtualNetworkGatewayConnectionSharedKey -ResourceGroupName myRG -Name myConnection -KeyLength 32 +``` + +```output +Confirm +Are you sure you want to overwrite resource 'myConnection' +[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): y +h0FmZA3BzXHqRE00J0wie0Mti0cCZwJm +``` + + +#### Set-AzVirtualNetworkGatewayConnectionSharedKey + +#### SYNOPSIS +Configures the shared key of the virtual network gateway connection. + +#### SYNTAX + +```powershell +Set-AzVirtualNetworkGatewayConnectionSharedKey -Name -ResourceGroupName -Value + [-Force] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Set-AzVirtualNetworkGatewayConnectionSharedKey -ResourceGroupName VPNGatewayV3 -Name VNet1toVNet2 -Value abcd1234 +``` + +```output +Confirm +Are you sure you want to overwrite resource 'VNet1toVNet2' +[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): y +abcd1234 +``` + + +#### Get-AzVirtualNetworkGatewayConnectionVpnDeviceConfigScript + +#### SYNOPSIS +This cmdlet takes the connection resource, VPN device brand, model, firmware version, and return the corresponding configuration script that customers can apply directly on their on-premises VPN devices. The script will follow the syntax of the selected device, and fill in the necessary parameters such as Azure gateway public IP addresses, virtual network address prefixes, VPN tunnel pre-shared key, etc. so customers can simply copy-paste to their VPN device configurations. + +#### SYNTAX + +```powershell +Get-AzVirtualNetworkGatewayConnectionVpnDeviceConfigScript -Name -ResourceGroupName + -DeviceVendor -DeviceFamily -FirmwareVersion + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzVirtualNetworkGatewaySupportedVpnDevice -ResourceGroupName TestRG -Name TestGateway +Get-AzVirtualNetworkGatewayConnectionVpnDeviceConfigScript -ResourceGroupName TestRG -Name TestConnection -DeviceVendor "Cisco-Test" -DeviceFamily "IOS-Test" -FirmwareVersion "20" +``` + +The above example uses Get-AzVirtualNetworkGatewaySupportedVpnDevice to get the supported VPN Device brands, models, and firmware versions. +Then uses one of the returned models information to generate a VPN Device configuration script for the VirtualNetworkGatewayConnection "TestConnection". The device used in this example has DeviceFamily "IOS-Test", DeviceVendor "Cisco-Test" and FirmwareVersion 20. + + +#### Remove-AzVirtualNetworkGatewayDefaultSite + +#### SYNOPSIS +Removes the default site from a virtual network gateway. + +#### SYNTAX + +```powershell +Remove-AzVirtualNetworkGatewayDefaultSite -VirtualNetworkGateway + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Remove the default site assigned to a virtual network gateway +```powershell +$Gateway = Get-AzVirtualNetworkGateway -Name "ContosoVirtualGateway" +Remove-AzVirtualNetworkGatewayDefaultSite -VirtualNetworkGateway $Gateway +``` + +This example removes the default site currently assigned to a virtual network gateway named ContosoVirtualGateway. +The first command uses **Get-AzVirtualNetworkGateway** to create an object reference to the gateway; this object reference is stored in a variable named $Gateway. +The second command then uses **Remove-AzVirtualNetworkGatewayDefaultSite** to remove the default site assigned to that gateway. + + +#### Set-AzVirtualNetworkGatewayDefaultSite + +#### SYNOPSIS +Sets the default site for a virtual network gateway. + +#### SYNTAX + +```powershell +Set-AzVirtualNetworkGatewayDefaultSite -VirtualNetworkGateway + -GatewayDefaultSite [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Assign a default site to a virtual network gateway +```powershell +$LocalGateway = Get-AzLocalNetworkGateway -Name "ContosoLocalGateway " -ResourceGroupName "ContosoResourceGroup" +$VirtualGateway = Get-AzVirtualNetworkGateway -Name "ContosoVirtualGateway" +Set-AzVirtualNetworkGatewayDefaultSite -GatewayDefaultSite $LocalGateway -VirtualNetworkGateway $VirtualGateway +``` + +This example assigns a default site to a virtual network gateway named ContosoVirtualGateway. +The first command creates an object reference to a local gateway named ContosoLocalGateway. +This object reference that is stored in the variable named $LocalGateway represents the gateway to be configured as the default site +. +The second command then creates an object reference to the virtual network gateway and stores the result in the variable named $VirtualGateway. +The third command uses the **Set-AzVirtualNetworkGatewayDefaultSite** cmdlet to assign the default site to ContosoVirtualGateway. + + +#### Invoke-AzVirtualNetworkGatewayExecuteMigration + +#### SYNOPSIS +Trigger execute migration for virtual network gateway. + +#### SYNTAX + ++ ByName (Default) +```powershell +Invoke-AzVirtualNetworkGatewayExecuteMigration -Name -ResourceGroupName [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByInputObject +```powershell +Invoke-AzVirtualNetworkGatewayExecuteMigration -InputObject [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByResourceId +```powershell +Invoke-AzVirtualNetworkGatewayExecuteMigration -ResourceId [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$gateway = Get-AzVirtualNetworkGateway -Name "ContosoVirtualGateway" -ResourceGroupName "RGName" +Invoke-AzVirtualNetworkGatewayExecuteMigration -InputObject $gateway +``` + + +#### Get-AzVirtualNetworkGatewayFailoverAllTestsDetail + +#### SYNOPSIS +Retrieves the details of all failover tests for a specified virtual network gateway. + +#### SYNTAX + ++ ByName (Default) +```powershell +Get-AzVirtualNetworkGatewayFailoverAllTestsDetail [-DefaultProfile ] + [] +``` + ++ GetByNameParameterSet +```powershell +Get-AzVirtualNetworkGatewayFailoverAllTestsDetail -ResourceGroupName + -VirtualNetworkGatewayName -Type -FetchLatest + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzVirtualNetworkGatewayFailoverAllTestsDetail -ResourceGroupName "test_rg" -VirtualNetworkGatewayName "test_gateway" -Type "SingleSiteFailover" -FetchLatest $true +``` + +This example retrieves the details of all failover tests of type SingleSiteFailover for the virtual network gateway "test_gateway" in the resource group "test_rg". The -FetchLatest parameter is set to $true, ensuring only the most recent failover tests for each peering location are returned. + ++ Example 2 +```powershell +Get-AzVirtualNetworkGatewayFailoverAllTestsDetail -ResourceGroupName "test_rg" -VirtualNetworkGatewayName "test_gateway" -Type "MultiSiteFailover" -FetchLatest $false +``` + +This example retrieves all MultisiteFailover tests (not limited to the latest) for the virtual network gateway "test_gateway" in the resource group "test_rg". The -FetchLatest parameter is set to $false, so the cmdlet will return all available failover tests. + + +#### Get-AzVirtualNetworkGatewayFailoverSingleTestDetail + +#### SYNOPSIS +Retrieves detailed information about a specific failover test for a virtual network gateway. + +#### SYNTAX + +```powershell +Get-AzVirtualNetworkGatewayFailoverSingleTestDetail -ResourceGroupName + -VirtualNetworkGatewayName -PeeringLocation -FailoverTestId + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzVirtualNetworkGatewayFailoverSingleTestDetail -ResourceGroupName "test_rg" -VirtualNetworkGatewayName "test_gateway" -PeeringLocation "West US" -FailoverTestId "00000000-0000-0000-0000-000000000000" +``` + +This example retrieves the details of a specific failover test with the FailoverTestId of 00000000-0000-0000-0000-000000000000 that was performed in the East US peering location on the virtual network gateway "test_gateway" in the resource group "test_rg". + + +#### New-AzVirtualNetworkGatewayIpConfig + +#### SYNOPSIS +Creates an IP Configuration for a Virtual Network Gateway + +#### SYNTAX + ++ SetByResourceId +```powershell +New-AzVirtualNetworkGatewayIpConfig -Name [-PrivateIpAddress ] [-SubnetId ] + [-PublicIpAddressId ] [-DefaultProfile ] + [] +``` + ++ SetByResource +```powershell +New-AzVirtualNetworkGatewayIpConfig -Name [-PrivateIpAddress ] [-Subnet ] + [-PublicIpAddress ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Create an IP Configuration for a Virtual Network Gateway +```powershell +$gwIpConfig = New-AzVirtualNetworkGatewayIpConfig -Name myGWIpConfig -SubnetId $myGWsubnet.Id -PublicIpAddressId $myGWpip.Id +``` + +Configures a Virtual Network Gateway with a Public IP Address. The variable $myGWsubnet is obtained using the **Get-AzVirtualNetworkSubnetConfig** cmdlet on the "GatewaySubnet" within the Virtual Network you intend to create a Virtual Network Gateway. The variable $myGWpip is obtained using the **New-AzPublicIpAddress** cmdlet. + + +#### Add-AzVirtualNetworkGatewayIpConfig + +#### SYNOPSIS +Adds an IP configuration to a virtual network gateway. + +#### SYNTAX + ++ SetByResourceId +```powershell +Add-AzVirtualNetworkGatewayIpConfig -VirtualNetworkGateway -Name + [-PrivateIpAddress ] [-SubnetId ] [-PublicIpAddressId ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByResource +```powershell +Add-AzVirtualNetworkGatewayIpConfig -VirtualNetworkGateway -Name + [-PrivateIpAddress ] [-Subnet ] [-PublicIpAddress ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Add-AzVirtualNetworkGatewayIpConfig -VirtualNetworkGateway $gw -Name GWIPConfig2 -Subnet $subnet -PublicIpAddress $gwpip2 +``` + +```output +Name : VNet7GW +ResourceGroupName : VPNGatewayV3 +Location : eastus +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/VPNGatewayV3/providers/Microsoft.Network/virtualNetworkGateways/VNet7GW +Etag : W/"d27a784f-3c3f-4150-863d-764649b6e8e7" +ResourceGuid : 3c2478a7-d5d4-4e80-8532-7ea2ad577598 +ProvisioningState : Succeeded +Tags : +IpConfigurations : [ + { + "PrivateIpAllocationMethod": "Dynamic", + "Subnet": { + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/VPNGatewayV3/providers/Microsoft.Network/virtualNetworks/Vnet7/subnets/GatewaySubnet" + }, + "PublicIpAddress": { + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/VPNGatewayV3/providers/Microsoft.Network/publicIPAddresses/VNet7GW_IP" + }, + "Name": "default", + "Etag": "W/\"d27a784f-3c3f-4150-863d-764649b6e8e7\"", + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/VPNGatewayV3/providers/Microsoft.Network/virtualNetworkGateways/VNet7GW/ipConfigurations/default" + }, + { + "PrivateIpAllocationMethod": "Dynamic", + "PublicIpAddress": { + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/VPNGatewayV3/providers/Microsoft.Network/publicIPAddresses/delIPConfig" + }, + "Name": "GWIPConfig2", + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ResourceGroupNotSet/providers/Microsoft.Network/virtualNetworkGateways/VirtualNetworkGatewayNameNotSet/virtualNetworkGatewayIpConfiguration/GWIPConfig2" + } + ] +GatewayType : Vpn +VpnType : RouteBased +EnableBgp : True +ActiveActive : False +GatewayDefaultSite : null +Sku : { + "Capacity": 2, + "Name": "VpnGw1", + "Tier": "VpnGw1" + } +VpnClientConfiguration : null +BgpSettings : { + "Asn": 65534, + "BgpPeeringAddress": "10.7.255.254", + "PeerWeight": 0 + } +``` + + +#### Remove-AzVirtualNetworkGatewayIpConfig + +#### SYNOPSIS +Removes an IP Configuration from a Virtual Network Gateway + +#### SYNTAX + +```powershell +Remove-AzVirtualNetworkGatewayIpConfig -VirtualNetworkGateway -Name + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: +```powershell +Remove-AzVirtualNetworkGatewayIpConfig -VirtualNetworkGateway $gateway -Name ActiveActive +``` + +```output +Name : myGateway +ResourceGroupName : myRG +Location : eastus +Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft + .Network/virtualNetworkGateways/VNet8GW +Etag : W/"00000000-0000-0000-0000-000000000000" +ResourceGuid : 00000000-0000-0000-0000-000000000000 +ProvisioningState : Succeeded +Tags : +IpConfigurations : [ + { + "PrivateIpAllocationMethod": "Dynamic", + "Subnet": { + "Id": "/subscriptions/800000000-0000-0000-0000-000000000000/resourceGroups/myRG/provid + ers/Microsoft.Network/virtualNetworks/VNet8/subnets/GatewaySubnet" + }, + "PublicIpAddress": { + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/provid + ers/Microsoft.Network/publicIPAddresses/VNet8GWIP" + }, + "Name": "gwipconfig1", + "Etag": "W/\"00000000-0000-0000-0000-000000000000\"", + "Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/provider + s/Microsoft.Network/virtualNetworkGateways/VNet8GW/ipConfigurations/gwipconfig1" + } + ] +GatewayType : Vpn +VpnType : RouteBased +EnableBgp : False +ActiveActive : True +GatewayDefaultSite : null +Sku : { + "Capacity": 2, + "Name": "VpnGw1", + "Tier": "VpnGw1" + } +VpnClientConfiguration : null +BgpSettings : { + "Asn": 65515, + "BgpPeeringAddress": "192.0.2.4,192.0.2.5", + "PeerWeight": 0 + } +``` + + +#### Get-AzVirtualNetworkGatewayLearnedRoute + +#### SYNOPSIS +Lists routes learned by an Azure virtual network gateway + +#### SYNTAX + +```powershell +Get-AzVirtualNetworkGatewayLearnedRoute -VirtualNetworkGatewayName -ResourceGroupName + [-AsJob] [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzVirtualNetworkGatewayLearnedRoute -ResourceGroupName resourceGroup -VirtualNetworkGatewayname gatewayName +``` + +```output +AsPath : +LocalAddress : 10.1.0.254 +Network : 10.1.0.0/16 +NextHop : +Origin : Network +SourcePeer : 10.1.0.254 +Weight : 32768 + +AsPath : +LocalAddress : 10.1.0.254 +Network : 10.0.0.254/32 +NextHop : +Origin : Network +SourcePeer : 10.1.0.254 +Weight : 32768 + +AsPath : 65515 +LocalAddress : 10.1.0.254 +Network : 10.0.0.0/16 +NextHop : 10.0.0.254 +Origin : EBgp +SourcePeer : 10.0.0.254 +Weight : 32768 +``` + +For the Azure virtual network gateway named gatewayname in resource group resourceGroup, retrieves routes the Azure gateway knows. +The Azure virtual network gateway in this case has two static routes (10.1.0.0/16 and 10.0.0.254/32), as well as one route learned over BGP (10.0.0.0/16). + + +#### New-AzVirtualNetworkGatewayMigrationParameter + +#### SYNOPSIS +Create migration parameters to trigger prepare migration for a virtual network gateway. + +#### SYNTAX + +```powershell +New-AzVirtualNetworkGatewayMigrationParameter -MigrationType [-ResourceUrl ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzVirtualNetworkGatewayMigrationParameter -MigrationType UpgradeDeploymentToStandardIP +``` + + +#### New-AzVirtualNetworkGatewayNatRule + +#### SYNOPSIS +Creates the virtual network gateway natRule object. + +#### SYNTAX + +```powershell +New-AzVirtualNetworkGatewayNatRule -Name -Type -Mode -InternalMapping + -ExternalMapping [-InternalPortRange ] [-ExternalPortRange ] + [-IpConfigurationId ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$gateway = Get-AzVirtualNetworkGateway -ResourceGroupName myRg -Name gw1 +$natRule = New-AzVirtualNetworkGatewayNatRule -Name "natRule1" -Type "Static" -Mode "IngressSnat" -InternalMapping @("25.0.0.0/16") -ExternalMapping @("30.0.0.0/16") -InternalPortRange @("100-100") -ExternalPortRange @("200-200") +Set-AzVirtualNetworkGateway -VirtualNetworkGateway $gateway -NatRule $natRule +``` + +The first command gets a virtual network gateway named gw1 that belongs to resource group myRg and stores it to the variable named $gateway +The second command creates a new PSVirtualNetworkGatewayNatRule virtual object. +The third command updates the virtual network gateway gw1 with the with newly added natRule. + + +#### Get-AzVirtualNetworkGatewayNatRule + +#### SYNOPSIS +Gets a Virtual Network Gateway NatRule. + +#### SYNTAX + ++ ByVirtualNetworkGatewayName (Default) +```powershell +Get-AzVirtualNetworkGatewayNatRule -ResourceGroupName -ParentResourceName [-Name ] + [-DefaultProfile ] [] +``` + ++ ByVirtualNetworkGatewayObject +```powershell +Get-AzVirtualNetworkGatewayNatRule -ParentObject [-Name ] + [-DefaultProfile ] [] +``` + ++ ByVirtualNetworkGatewayResourceId +```powershell +Get-AzVirtualNetworkGatewayNatRule -ParentResourceId [-Name ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzVirtualNetworkGatewayNatRule -ResourceGroupName "rg1" -Name "natRule1" -ParentResourceName gw1 +``` + +```output +Name : natRule1 +ProvisioningState : Succeeded +Type : Static +Mode : IngressSnat +InternalMappings : [ + { + "AddressSpace": "25.0.0.0/16" + } + ] +ExternalMappings : [ + { + "AddressSpace": "30.0.0.0/16" + } + ] +IpConfigurationId : +Id : /subscriptions/7afd8f92-c220-4f53-886e-1df53a69afd4/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/gw1/natRules/natRule1 +Etag : W/"5150d788-e165-42ba-99c4-8138a545fce9" +``` + ++ Example 2: +```powershell +Get-AzVirtualNetworkGatewayNatRule -ResourceGroupName "rg1" -ParentResourceName "gw1" +``` + +```output +Name : natRule1 +ProvisioningState : Succeeded +Type : Static +Mode : IngressSnat +InternalMappings : [ + { + "AddressSpace": "25.0.0.0/16" + } + ] +ExternalMappings : [ + { + "AddressSpace": "30.0.0.0/16" + } + ] +IpConfigurationId : +Id : /subscriptions/7afd8f92-c220-4f53-886e-1df53a69afd4/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/gw1/natRules/natRule1 +Etag : W/"5150d788-e165-42ba-99c4-8138a545fce9" + +Name : natRule2 +ProvisioningState : Succeeded +Type : Static +Mode : EgressSnat +InternalMappings : [ + { + "AddressSpace": "20.0.0.0/16" + } + ] +ExternalMappings : [ + { + "AddressSpace": "50.0.0.0/16" + } + ] +IpConfigurationId : +Id : /subscriptions/7afd8f92-c220-4f53-886e-1df53a69afd4/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/gw1/natRules/natRule2 +Etag : W/"5150d788-e165-42ba-99c4-8138a545fce9" +``` + + +#### Remove-AzVirtualNetworkGatewayNatRule + +#### SYNOPSIS +Removes or Delete a Virtual Network Gateway NatRule. + +#### SYNTAX + ++ ByVirtualNetworkGatewayNatRuleName (Default) +```powershell +Remove-AzVirtualNetworkGatewayNatRule -ResourceGroupName -ParentResourceName -Name + [-Force] [-PassThru] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + ++ ByVirtualNetworkGatewayNatRuleResourceId +```powershell +Remove-AzVirtualNetworkGatewayNatRule -ResourceId [-Force] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVirtualNetworkGatewayNatRuleObject +```powershell +Remove-AzVirtualNetworkGatewayNatRule -InputObject [-Force] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzVirtualNetworkGatewayNatRule -ResourceGroupName rg1 -ParentResourceName gw1 -Name natRule3 +``` + +```output +Confirm +Are you sure you want to remove resource 'natRule3' +[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): Y +``` + + +#### Update-AzVirtualNetworkGatewayNatRule + +#### SYNOPSIS +Updates a Virtual Network Gateway NatRule. + +#### SYNTAX + ++ ByVirtualNetworkGatewayNatRuleName (Default) +```powershell +Update-AzVirtualNetworkGatewayNatRule -ResourceGroupName -ParentResourceName -Name + [-InternalMapping ] [-ExternalMapping ] [-InternalPortRange ] + [-ExternalPortRange ] [-IpConfigurationId ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVirtualNetworkGatewayNatRuleResourceId +```powershell +Update-AzVirtualNetworkGatewayNatRule -ResourceId [-InternalMapping ] + [-ExternalMapping ] [-InternalPortRange ] [-ExternalPortRange ] + [-IpConfigurationId ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVirtualNetworkGatewayNatRuleObject +```powershell +Update-AzVirtualNetworkGatewayNatRule -InputObject + [-InternalMapping ] [-ExternalMapping ] [-InternalPortRange ] + [-ExternalPortRange ] [-IpConfigurationId ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: +```powershell +$natRule1 = Get-AzVirtualNetworkGatewayNatRule -ResourceGroupName "rg1" -Name "natRule1" -ParentResourceName "gw1" +Update-AzVirtualNetworkGatewayNatRule -InputObject $natRule1 -ExternalMapping @("30.0.0.0/16") -InternalMapping @("25.0.0.0/16") -IpConfigurationId "/subscriptions/7afd8f92-c220-4f53-886e-1df53a69afd4/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/gw1/ipConfigurations/default" +``` + +```output +Name : natRule1 +ProvisioningState : Succeeded +Type : Static +Mode : IngressSnat +InternalMappings : [ + { + "AddressSpace": "25.0.0.0/16" + } + ] +ExternalMappings : [ + { + "AddressSpace": "30.0.0.0/16" + } + ] +IpConfigurationId : /subscriptions/7afd8f92-c220-4f53-886e-1df53a69afd4/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/gw1/ipConfigurations/default +Id : /subscriptions/7afd8f92-c220-4f53-886e-1df53a69afd4/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/gw1/natRules/natRule1 +Etag : W/"5150d788-e165-42ba-99c4-8138a545fce9" +``` + + +#### Start-AzVirtualnetworkGatewayPacketCapture + +#### SYNOPSIS +Starts Packet Capture Operation on a Virtual Network Gateway. + +#### SYNTAX + ++ ByName (Default) +```powershell +Start-AzVirtualnetworkGatewayPacketCapture -ResourceGroupName -Name [-FilterData ] + [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByInputObject +```powershell +Start-AzVirtualnetworkGatewayPacketCapture -InputObject [-FilterData ] + [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByResourceId +```powershell +Start-AzVirtualnetworkGatewayPacketCapture -ResourceId [-FilterData ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Start-AzVirtualnetworkGatewayPacketCapture -ResourceGroupName "PktCaptureTestSite2RG" -Name "PktCaptureTestSite2VNG" +``` + +```output +Code : Succeeded +EndTime : 10/1/2019 12:57:27 AM +StartTime : 10/1/2019 12:57:16 AM +ResultsText : +ResourceGroupName : PktCaptureTestSite2RG +Location : centraluseuap +ResourceGuid : 161c0fff-f3fd-4698-9ab3-8ca9470de975 +Type : +Tag : +TagsTable : +Name : PktCaptureTestSite2VNG +Etag : +Id : +``` + ++ Example 2 +```powershell +$a="{`"TracingFlags`":11,`"MaxPacketBufferSize`":120,`"MaxFileSize`":500,`"Filters`":[{`"SourceSubnets`":[`"10.19.0.4/32`",`"10.20.0.4/32`"],`"DestinationSubnets`":[`"10.20.0.4/32`",`"10.19.0.4/32`"],`"TcpFlags`":-1,`"Protocol`":[6],`"CaptureSingleDirectionTrafficOnly`":true}]}" +Start-AzVirtualnetworkGatewayPacketCapture -ResourceGroupName "PktCaptureTestSite2RG" -Name "PktCaptureTestSite2VNG" -FilterData $a +``` + +```output +Code : Succeeded +EndTime : 10/1/2019 12:57:27 AM +StartTime : 10/1/2019 12:57:16 AM +ResultsText : +ResourceGroupName : PktCaptureTestSite2RG +Location : centraluseuap +ResourceGuid : 161c0fff-f3fd-4698-9ab3-8ca9470de975 +Type : +Tag : +TagsTable : +Name : PktCaptureTestSite2VNG +Etag : +Id : +``` + ++ Example 3 +Packet Capture example for capture all inner and outer packets + + +```powershell +$a = "{`"TracingFlags`": 11,`"MaxPacketBufferSize`": 120,`"MaxFileSize`": 500,`"Filters`" :[{`"CaptureSingleDirectionTrafficOnly`": false}]}" +Start-AzVirtualnetworkGatewayPacketCapture -ResourceGroupName "PktCaptureTestSite2RG" -Name "PktCaptureTestSite2VNG" -FilterData $a +``` + +```output +Code : Succeeded +EndTime : 10/1/2019 12:57:27 AM +StartTime : 10/1/2019 12:57:16 AM +ResultsText : +ResourceGroupName : PktCaptureTestSite2RG +Location : centraluseuap +ResourceGuid : 161c0fff-f3fd-4698-9ab3-8ca9470de975 +Type : +Tag : +TagsTable : +Name : PktCaptureTestSite2VNG +Etag : +Id : +``` + + +#### Stop-AzVirtualNetworkGatewayPacketCapture + +#### SYNOPSIS +Stops Packet Capture Operation on a Virtual Network Gateway. + +#### SYNTAX + ++ ByName (Default) +```powershell +Stop-AzVirtualNetworkGatewayPacketCapture -ResourceGroupName -Name -SasUrl [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByInputObject +```powershell +Stop-AzVirtualNetworkGatewayPacketCapture -InputObject -SasUrl [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByResourceId +```powershell +Stop-AzVirtualNetworkGatewayPacketCapture -ResourceId -SasUrl [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$rgname = "testRg" +$storeName = "teststorage" +$containerName = "packetcaptureresults" +$key = Get-AzStorageAccountKey -ResourceGroupName $rgname -Name $storeName +$context = New-AzStorageContext -StorageAccountName $storeName -StorageAccountKey $key[0].Value +New-AzStorageContainer -Name $containerName -Context $context +$container = Get-AzStorageContainer -Name $containerName -Context $context +$now = Get-Date +$sasurl = New-AzStorageContainerSASToken -Name $containerName -Context $context -Permission "rwd" -StartTime $now.AddHours(-1) -ExpiryTime $now.AddDays(1) -FullUri +Stop-AzVirtualNetworkGatewayPacketCapture -ResourceGroupName $rgname -Name "testgw" -SasUrl $sasurl +``` + +```output +Code : Succeeded +EndTime : 10/1/2019 12:59:37 AM +StartTime : 10/1/2019 12:58:26 AM +ResultsText : +ResourceGroupName : testRg +Location : centraluseuap +ResourceGuid : 161c0fff-f3fd-4698-9ab3-8ca9470de975 +Type : +Tag : +TagsTable : +Name : testgw +Etag : +Id : +``` + ++ Example 2 +```powershell +$rgname = "testRg" +$storeName = "teststorage" +$containerName = "packetcaptureresults" +$key = Get-AzStorageAccountKey -ResourceGroupName $rgname -Name $storeName +$context = New-AzStorageContext -StorageAccountName $storeName -StorageAccountKey $key[0].Value +$container = Get-AzStorageContainer -Name $containerName -Context $context +$now = Get-Date +$sasurl = New-AzStorageContainerSASToken -Name $containerName -Context $context -Permission "rwd" -StartTime $now.AddHours(-1) -ExpiryTime $now.AddDays(1) -FullUri +$gw = Get-AzVirtualNetworkGateway -ResourceGroupName $rgname -name "testGw" +Stop-AzVirtualNetworkGatewayPacketCapture -InputObject $gw -SasUrl $sasurl +``` + +```output +Code : Succeeded +EndTime : 10/1/2019 12:59:37 AM +StartTime : 10/1/2019 12:58:26 AM +ResultsText : +ResourceGroupName : testRg +Location : centraluseuap +ResourceGuid : 161c0fff-f3fd-4698-9ab3-8ca9470de975 +Type : +Tag : +TagsTable : +Name : testgw +Etag : +Id : +``` + + +#### New-AzVirtualNetworkGatewayPolicyGroup + +#### SYNOPSIS +Create a Virtual Network Gateway Policy Group + +#### SYNTAX + +```powershell +New-AzVirtualNetworkGatewayPolicyGroup -Name -Priority [-DefaultPolicyGroup] + -PolicyMember [-AsJob] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +####create the policy group and connection client configuration +$member1=New-AzVirtualNetworkGatewayPolicyGroupMember -Name "member1" -AttributeType "CertificateGroupId" -AttributeValue "ab" +$member2=New-AzVirtualNetworkGatewayPolicyGroupMember -Name "member2" -AttributeType "CertificateGroupId" -AttributeValue "cd" +$policyGroup1=New-AzVirtualNetworkGatewayPolicyGroup -Name "policyGroup1" -Priority 0 -DefaultPolicyGroup -PolicyMember $member1 +$policyGroup2=New-AzVirtualNetworkGatewayPolicyGroup -Name "policyGroup2" -Priority 10 -PolicyMember $member2 +``` + +create policy group member + + +#### New-AzVirtualNetworkGatewayPolicyGroupMember + +#### SYNOPSIS +Create a Virtual Network Gateway Policy Group Member + +#### SYNTAX + +```powershell +New-AzVirtualNetworkGatewayPolicyGroupMember -Name -AttributeType -AttributeValue + [-AsJob] [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +####create the policy group and connection client configuration +$member1=New-AzVirtualNetworkGatewayPolicyGroupMember -Name "member1" -AttributeType "CertificateGroupId" -AttributeValue "ab" +$member2=New-AzVirtualNetworkGatewayPolicyGroupMember -Name "member2" -AttributeType "CertificateGroupId" -AttributeValue "cd" +$policyGroup1=New-AzVirtualNetworkGatewayPolicyGroup -Name "policyGroup1" -Priority 0 -DefaultPolicyGroup -PolicyMember $member1 +$policyGroup2=New-AzVirtualNetworkGatewayPolicyGroup -Name "policyGroup2" -Priority 10 -PolicyMember $member2 +``` + +create policy group member + + +#### Invoke-AzVirtualNetworkGatewayPrepareMigration + +#### SYNOPSIS +Trigger prepare migration for virtual network gateway. + +#### SYNTAX + ++ ByName (Default) +```powershell +Invoke-AzVirtualNetworkGatewayPrepareMigration -Name -ResourceGroupName + -MigrationParameter [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByInputObject +```powershell +Invoke-AzVirtualNetworkGatewayPrepareMigration -InputObject + -MigrationParameter [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByResourceId +```powershell +Invoke-AzVirtualNetworkGatewayPrepareMigration -ResourceId + -MigrationParameter [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$gateway = Get-AzVirtualNetworkGateway -Name "ContosoVirtualGateway" -ResourceGroupName "RGName" +$migrationParams = New-AzVirtualNetworkGatewayMigrationParameter -MigrationType UpgradeDeploymentToStandardIP +Invoke-AzVirtualNetworkGatewayPrepareMigration -InputObject $gateway -MigrationParameter $migrationParams +``` + + +#### Get-AzVirtualNetworkGatewayResiliencyInformation + +#### SYNOPSIS +Retrieves the resiliency information for an ExpressRoute Gateway, including its current resiliency score and recommendations for improvement. + +#### SYNTAX + +```powershell +Get-AzVirtualNetworkGatewayResiliencyInformation -ResourceGroupName + -VirtualNetworkGatewayName [-AttemptRefresh ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzVirtualNetworkGatewayResiliencyInformation -ResourceGroupName "test_rg" -VirtualNetworkGatewayName "test_gateway" +``` + +This example retrieves the resiliency information for the virtual network gateway "test_gateway" in the resource group "test_rg". It does not attempt to refresh the data, providing the latest available information. + ++ Example 2 +```powershell +Get-AzVirtualNetworkGatewayResiliencyInformation -ResourceGroupName "test_rg" -VirtualNetworkGatewayName "test_gateway" -AttemptRefresh $true +``` + +This example retrieves the resiliency information for the virtual network gateway "test_gateway" in the resource group "test_rg", and forces the system to recalculate the resiliency metrics by using the -AttemptRefresh parameter set to $true. + + +#### Get-AzVirtualNetworkGatewayRoutesInformation + +#### SYNOPSIS +Retrieves the route set information for an ExpressRoute Gateway, based on its resiliency. + +#### SYNTAX + +```powershell +Get-AzVirtualNetworkGatewayRoutesInformation -ResourceGroupName -VirtualNetworkGatewayName + [-AttemptRefresh ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzVirtualNetworkGatewayRoutesInformation -ResourceGroupName "test_rg" -VirtualNetworkGatewayName "test_gateway" +``` + +This example retrieves the route set information for the virtual network gateway named "test_gateway" in the resource group "test_rg". The command provides the current routing information, including details about the gateway's resiliency and routes configuration. + ++ Example 2 +```powershell +Get-AzVirtualNetworkGatewayRoutesInformation -ResourceGroupName "test_rg" -VirtualNetworkGatewayName "test_gateway" -AttemptRefresh $true +``` + +This example retrieves the route set information for the "test_gateway" in the "test_rg" resource group. The -AttemptRefresh parameter is used to recalculate the route sets, ensuring that the most recent data is returned after any potential configuration changes or updates to the gateway's routing information. + + +#### Start-AzVirtualNetworkGatewaySiteFailoverTest + +#### SYNOPSIS +Starts a failover simulation on the virtual network gateway for the specified peering location. + +#### SYNTAX + +```powershell +Start-AzVirtualNetworkGatewaySiteFailoverTest -ResourceGroupName -VirtualNetworkGatewayName + -PeeringLocation [-Type ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Start-AzVirtualNetworkGatewaySiteFailoverTest -ResourceGroupName "test_rg" -VirtualNetworkGatewayName "test_gateway" -PeeringLocation "EastUS" +``` + +This example starts a failover simulation for the virtual network gateway "test_gateway" in the "test_rg" resource group for the peering location EastUS. By default, a SingleSiteFailover test will be performed. + ++ Example 2 +```powershell +Start-AzVirtualNetworkGatewaySiteFailoverTest -ResourceGroupName "test_rg" -VirtualNetworkGatewayName "test_gateway" -PeeringLocation "EastUS" -Type "MultiSiteFailover" +``` + +This example starts a failover simulation for the virtual network gateway "test_gateway" in the "test_rg" resource group for the EastUS peering location. The test type is set to MultiSiteFailover, meaning the test will simulate failover for multiple sites. + + +#### Stop-AzVirtualNetworkGatewaySiteFailoverTest + +#### SYNOPSIS +Stops the failover simulation on the virtual network gateway for the specified peering location. + +#### SYNTAX + +```powershell +Stop-AzVirtualNetworkGatewaySiteFailoverTest -ResourceGroupName -VirtualNetworkGatewayName + -PeeringLocation -WasSimulationSuccessful + -Detail + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$detail = @( + [Microsoft.Azure.Management.Network.Models.FailoverConnectionDetails]@{ + FailoverConnectionName = "test_failover_gateway_connection" + FailoverLocation = "eastus2" + IsVerified = $true + } +) +Stop-AzVirtualNetworkGatewaySiteFailoverTest -ResourceGroupName "test_failover_rg" -VirtualNetworkGatewayName "test_failoverGw" -PeeringLocation "WestEurope" -Detail $detail -WasSimulationSuccessful $true +``` + +This example demonstrates how to stop a failover simulation for a virtual network gateway. The cmdlet Stop-AzVirtualNetworkGatewaySiteFailoverTest is used with the following parameters: + +ResourceGroupName: Specifies the resource group ("test_failover_rg") that contains the virtual network gateway. + +VirtualNetworkGatewayName: Specifies the virtual network gateway ("test_failoverGw") for which the failover test is being stopped. + +PeeringLocation: Specifies the peering location ("WestEurope") where the failover test is being stopped. + +Detail: The failover connection details are provided, including the name, location, and verification status. + +WasSimulationSuccessful: Indicates that the failover simulation was successful ($true). + + +#### Get-AzVirtualNetworkGatewaySupportedVpnDevice + +#### SYNOPSIS +This cmdlet returns a list of supported VPN device brands, models, and firmware versions. + +#### SYNTAX + +```powershell +Get-AzVirtualNetworkGatewaySupportedVpnDevice -Name -ResourceGroupName + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 + +The following example returns a list of supported VPN device brands, models and firmware versions. + +```powershell +Get-AzVirtualNetworkGatewaySupportedVpnDevice -ResourceGroupName TestRG -Name TestGateway +``` + +```output + + + + + + + + +``` + + +#### Get-AzVirtualNetworkGatewayVpnClientConnectionHealth + +#### SYNOPSIS +Get the list of vpn client connection health of an Azure virtual network gateway for per vpn client connection + +#### SYNTAX + ++ ByFactoryName (Default) +```powershell +Get-AzVirtualNetworkGatewayVpnClientConnectionHealth -VirtualNetworkGatewayName + -ResourceGroupName [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByResourceId +```powershell +Get-AzVirtualNetworkGatewayVpnClientConnectionHealth [-ResourceId ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByFactoryObject +```powershell +Get-AzVirtualNetworkGatewayVpnClientConnectionHealth [-InputObject ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzVirtualNetworkGatewayVpnClientConnectionHealth -ResourceName gatewayName -ResourceGroupName resourceGroup +``` + +```output +VpnConnectionId : OVPN_0085393D-B345-4846-0426-140616833F4C +VpnConnectionDuration : 27878 +VpnConnectionTime : 05/30/2019 16:03:11 +PublicIpAddress : 13.78.148.224:39672 +PrivateIpAddress : 10.1.1.131 +VpnUserName : GWP2SChildCert +MaxBandwidth : 48000000 +EgressPacketsTransferred : 104084 +EgressBytesTransferred : 4059276 +IngressPacketsTransferred : 1410 +IngressBytesTransferred : 67680 +MaxPacketsPerSecond : 1 + +VpnConnectionId : OVPN_00F692AC-2D6F-DE7B-DCAF-07BE896233A0 +VpnConnectionDuration : 27878 +VpnConnectionTime : 05/30/2019 16:03:11 +PublicIpAddress : 13.78.148.224:39692 +PrivateIpAddress : 10.1.1.79 +VpnUserName : GWP2SChildCert +MaxBandwidth : 48000000 +EgressPacketsTransferred : 104623 +EgressBytesTransferred : 4080297 +IngressPacketsTransferred : 1416 +IngressBytesTransferred : 67968 +MaxPacketsPerSecond : 1 +``` + +For the Azure virtual network gateway named gatewayname in resource group resourceGroup, retrieves the currently connected vpn client connection by using OpenVpn. + ++ Example 2 + +Get the list of vpn client connection health of an Azure virtual network gateway for per vpn client connection. (autogenerated) + + + + +```powershell +Get-AzVirtualNetworkGatewayVpnClientConnectionHealth -ResourceGroupName resourceGroup -VirtualNetworkGatewayName 'ContosoVirtualNetwork' +``` + + +#### Disconnect-AzVirtualNetworkGatewayVpnConnection + +#### SYNOPSIS +Disconnect given connected vpn client connections with a given virtual network gateway. + +#### SYNTAX + ++ ByFactoryName (Default) +```powershell +Disconnect-AzVirtualNetworkGatewayVpnConnection -VirtualNetworkGatewayName -ResourceGroupName + -VpnConnectionId [-AsJob] [-PassThru] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByResourceId +```powershell +Disconnect-AzVirtualNetworkGatewayVpnConnection -ResourceId -VpnConnectionId [-AsJob] + [-PassThru] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + ++ ByFactoryObject +```powershell +Disconnect-AzVirtualNetworkGatewayVpnConnection [-InputObject ] + -VpnConnectionId [-AsJob] [-PassThru] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Disconnect-AzVirtualNetworkGatewayVpnConnection -ResourceName vnet-gw -ResourceGroupName vnetgwrg -VpnConnectionId @("IKEv2_7e1cfe59-5c7c-4315-a876-b11fbfdfeed4") +``` + + +#### Add-AzVirtualNetworkPeering + +#### SYNOPSIS +Creates a peering between two virtual networks. + +#### SYNTAX + +```powershell +Add-AzVirtualNetworkPeering -Name -VirtualNetwork -RemoteVirtualNetworkId + [-PeerCompleteVnets ] [-LocalSubnetNames ] [-RemoteSubnetNames ] + [-EnableOnlyIPv6Peering ] [-BlockVirtualNetworkAccess] [-AllowForwardedTraffic] + [-AllowGatewayTransit] [-UseRemoteGateways] [-AsJob] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Create a peering between two virtual networks in the same region +```powershell +#### Variables for common values used throughout the script. +$rgName='myResourceGroup' +$location='eastus' + +#### Create a resource group. +New-AzResourceGroup -Name $rgName -Location $location + +#### Create virtual network 1. +$vnet1 = New-AzVirtualNetwork -ResourceGroupName $rgName -Name 'myVnet1' -AddressPrefix '10.0.0.0/16' -Location $location + +#### Create virtual network 2. +$vnet2 = New-AzVirtualNetwork -ResourceGroupName $rgName -Name 'myVnet2' -AddressPrefix '10.1.0.0/16' -Location $location + +#### Peer VNet1 to VNet2. +Add-AzVirtualNetworkPeering -Name 'myVnet1ToMyVnet2' -VirtualNetwork $vnet1 -RemoteVirtualNetworkId $vnet2.Id + +#### Peer VNet2 to VNet1. +Add-AzVirtualNetworkPeering -Name 'myVnet2ToMyVnet1' -VirtualNetwork $vnet2 -RemoteVirtualNetworkId $vnet1.Id +``` + +Note that a peering link must be created from vnet1 to vnet2 and vice versa in order for peering to work. + ++ Example 2: Create a peering between two virtual networks in different regions +```powershell +#### Variables for common values used throughout the script. +$rgName='myResourceGroup' + +#### Create a resource group. +New-AzResourceGroup -Name $rgName -Location westcentralus + +#### Create virtual network 1. +$vnet1 = New-AzVirtualNetwork -ResourceGroupName $rgName -Name 'myVnet1' -AddressPrefix '10.0.0.0/16' -Location westcentralus + +#### Create virtual network 2. +$vnet2 = New-AzVirtualNetwork -ResourceGroupName $rgName -Name 'myVnet2' -AddressPrefix '10.1.0.0/16' -Location canadacentral + +#### Peer VNet1 to VNet2. +Add-AzVirtualNetworkPeering -Name 'myVnet1ToMyVnet2' -VirtualNetwork $vnet1 -RemoteVirtualNetworkId $vnet2.Id + +#### Peer VNet2 to VNet1. +Add-AzVirtualNetworkPeering -Name 'myVnet2ToMyVnet1' -VirtualNetwork $vnet2 -RemoteVirtualNetworkId $vnet1.Id +``` + +Here 'myVnet1' in US West Central is peered with 'myVnet2' in Canada Central. + + +#### Get-AzVirtualNetworkPeering + +#### SYNOPSIS +Gets the virtual network peering. + +#### SYNTAX + +```powershell +Get-AzVirtualNetworkPeering -VirtualNetworkName -ResourceGroupName [-Name ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Get a peering between two virtual networks +```powershell +#### Get virtual network peering named myVnet1TomyVnet2 located in myVirtualNetwork in the resource group named myResourceGroup. + +Get-AzVirtualNetworkPeering -Name "myVnet1TomyVnet2" -VirtualNetworkName "myVnet" -ResourceGroupName "myResourceGroup" +``` + ++ Example 2: Get all peerings in virtual network +```powershell +#### Get all virtual network peerings located in myVirtualNetwork in the resource group named myResourceGroup. + +Get-AzVirtualNetworkPeering -Name "myVnet1To*" -VirtualNetworkName "myVnet" -ResourceGroupName "myResourceGroup" +``` + + +#### Remove-AzVirtualNetworkPeering + +#### SYNOPSIS +Removes a virtual network peering. + +#### SYNTAX + +```powershell +Remove-AzVirtualNetworkPeering -VirtualNetworkName -Name -ResourceGroupName [-Force] + [-PassThru] [-AsJob] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Remove a virtual network peering +```powershell +#### Remove the virtual network peering named myVnet1TomyVnet2 located in myVnet1 in the resource group named myResourceGroup. + +Remove-AzVirtualNetworkPeering -Name "myVnet1TomyVnet2" -VirtualNetworkName "myVnet" -ResourceGroupName "myResourceGroup" +``` + + +#### Set-AzVirtualNetworkPeering + +#### SYNOPSIS +Configures a virtual network peering. + +#### SYNTAX + +```powershell +Set-AzVirtualNetworkPeering -VirtualNetworkPeering [-AsJob] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Change forwarded traffic configuration of a virtual network peering +```powershell +#### Get the virtual network peering you want to update information for +$myVnet1ToMyVnet2 = Get-AzVirtualNetworkPeering -VirtualNetworkName "myVnet1" -ResourceGroupName "ResourceGroup" -Name "myVnet1ToMyVnet2" + +#### Change value of AllowForwardedTraffic property +$myVnet1ToMyVnet2.AllowForwardedTraffic = $True + +#### Update the peering with changes made +Set-AzVirtualNetworkPeering -VirtualNetworkPeering $myVnet1ToMyVnet2 +``` + ++ Example 2: Change virtual network access of a virtual network peering +```powershell +#### Get the virtual network peering +$myVnet1TomyVnet2 = Get-AzVirtualNetworkPeering -VirtualNetworkName "myVnet1" -ResourceGroupName "myResourceGroup" -Name "myVnet1TomyVnet2" + +#### Change AllowVirtualNetworkAccess property +$myVnet1TomyVnet2.AllowVirtualNetworkAccess = $False + +#### Update virtual network peering +Set-AzVirtualNetworkPeering -VirtualNetworkPeering $myVnet1TomyVnet2 +``` + ++ Example 3: Change gateway transit property configuration of a virtual network peering +```powershell +#### Get the virtual network peering +$myVnet1TomyVnet2 = Get-AzVirtualNetworkPeering -VirtualNetworkName "myVnet1" -ResourceGroupName "myResourceGroup" -Name "myVnet1TomyVnet2" + +#### Change AllowGatewayTransit property +$myVnet1TomyVnet2.AllowGatewayTransit = $True + +#### Update the virtual network peering +Set-AzVirtualNetworkPeering -VirtualNetworkPeering $myVnet1TomyVnet2 +``` + ++ Example 4: Use remote gateways in virtual network peering +```powershell +#### Get the virtual network peering +$myVnet1TomyVnet2 = Get-AzVirtualNetworkPeering -VirtualNetworkName "myVnet1" -ResourceGroupName "ResourceGroup001" -Name "myVnet1TomyVnet2" + +#### Change the UseRemoteGateways property +$myVnet1TomyVnet2.UseRemoteGateways = $True + +#### Update the virtual network peering +Set-AzVirtualNetworkPeering -VirtualNetworkPeering $myVnet1TomyVnet2 +``` + +By changing this property to $True, your peer's VNet gateway can be used. +However, the peer VNet must have a gateway configured and **AllowGatewayTransit** must have a value of $True. +This property cannot be used if a gateway has already been configured. + + +#### Sync-AzVirtualNetworkPeering + +#### SYNOPSIS +Command to sync the address space on the peering link if the remote virtual network has a new address space. + +#### SYNTAX + ++ Fields (Default) +```powershell +Sync-AzVirtualNetworkPeering -VirtualNetworkName -ResourceGroupName -Name + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ Object +```powershell +Sync-AzVirtualNetworkPeering -VirtualNetworkPeering + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Sync-AzVirtualNetworkPeering -Name 'peering2' -VirtualNetworkName 'vnet1' -ResourceGroupName 'rg1' +``` + +Syncs the address space on the peering, peering2 in the virtual network, vnet1 within the resource group, rg1. + ++ Example 2 +```powershell +$s1h1 = Get-AzVirtualNetworkPeering -Name 'spoke1-hub1' -VirtualNetworkName 'spoke1' -ResourceGroupName 'HUB1-RG' +$s1h1 | Sync-AzVirtualNetworkPeering +``` + +The first cmdlet gets the virtual network peering. The second piped cmdlet applies the sync operation on the peering. + + +#### New-AzVirtualNetworkSubnetConfig + +#### SYNOPSIS +Creates a virtual network subnet configuration. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +New-AzVirtualNetworkSubnetConfig -Name [-AddressPrefix ] + [-IpamPoolPrefixAllocation ] [-NetworkSecurityGroup ] + [-RouteTable ] [-InputObject ] [-ServiceEndpoint ] + [-NetworkIdentifier ] [-ServiceEndpointConfig ] + [-ServiceEndpointPolicy ] [-Delegation ] + [-PrivateEndpointNetworkPoliciesFlag ] [-PrivateLinkServiceNetworkPoliciesFlag ] + [-IpAllocation ] [-DefaultOutboundAccess ] + [-DefaultProfile ] [] +``` + ++ SetByResourceId +```powershell +New-AzVirtualNetworkSubnetConfig -Name [-AddressPrefix ] + [-IpamPoolPrefixAllocation ] [-NetworkSecurityGroupId ] + [-RouteTableId ] [-ResourceId ] [-ServiceEndpoint ] + [-NetworkIdentifier ] [-ServiceEndpointConfig ] + [-ServiceEndpointPolicy ] [-Delegation ] + [-PrivateEndpointNetworkPoliciesFlag ] [-PrivateLinkServiceNetworkPoliciesFlag ] + [-IpAllocation ] [-DefaultOutboundAccess ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Create a virtual network with two subnets and a network security group +```powershell +New-AzResourceGroup -Name TestResourceGroup -Location centralus + +$rdpRule = New-AzNetworkSecurityRuleConfig -Name rdp-rule -Description "Allow RDP" ` + -Access Allow -Protocol Tcp -Direction Inbound -Priority 100 ` + -SourceAddressPrefix Internet -SourcePortRange * ` + -DestinationAddressPrefix * -DestinationPortRange 3389 + +$networkSecurityGroup = New-AzNetworkSecurityGroup -ResourceGroupName TestResourceGroup ` + -Location centralus -Name "NSG-FrontEnd" -SecurityRules $rdpRule + +$frontendSubnet = New-AzVirtualNetworkSubnetConfig -Name frontendSubnet ` + -AddressPrefix "10.0.1.0/24" -NetworkSecurityGroup $networkSecurityGroup + +$backendSubnet = New-AzVirtualNetworkSubnetConfig -Name backendSubnet ` + -AddressPrefix "10.0.2.0/24" -NetworkSecurityGroup $networkSecurityGroup + +$pip = New-AzPublicIpAddress -Name "pip" -ResourceGroupName "natgateway_test" ` + -Location "eastus2" -Sku "Standard" -IdleTimeoutInMinutes 4 -AllocationMethod "static" + +$natgateway = New-AzNatGateway -ResourceGroupName "natgateway_test" -Name "nat_gateway" ` + -IdleTimeoutInMinutes 4 -Sku "Standard" -Location "eastus2" -PublicIpAddress $pip + +$natGatewaySubnet = New-AzVirtualNetworkSubnetConfig -Name natGatewaySubnet ` + -AddressPrefix "10.0.3.0/24" -InputObject $natGateway + +New-AzVirtualNetwork -Name MyVirtualNetwork -ResourceGroupName TestResourceGroup ` + -Location centralus -AddressPrefix "10.0.0.0/16" -Subnet $frontendSubnet,$backendSubnet,$natGatewaySubnet +``` + +This example creates two new subnet configurations using the + New-AzVirtualNetworkSubnetConfig cmdlet, and then uses them to create a virtual network. + The New-AzVirtualNetworkSubnetConfig template only creates an in-memory representation of + the subnet. In this example, the frontendSubnet has CIDR 10.0.1.0/24 and references a + network security group that allows RDP access. The backendSubnet has CIDR 10.0.2.0/24 and + references the same network security group. + + +#### Add-AzVirtualNetworkSubnetConfig + +#### SYNOPSIS +Adds a subnet configuration to a virtual network. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +Add-AzVirtualNetworkSubnetConfig -Name -VirtualNetwork [-AddressPrefix ] + [-IpamPoolPrefixAllocation ] [-NetworkSecurityGroup ] + [-RouteTable ] [-InputObject ] [-ServiceEndpoint ] + [-NetworkIdentifier ] [-ServiceEndpointConfig ] + [-ServiceEndpointPolicy ] [-Delegation ] + [-PrivateEndpointNetworkPoliciesFlag ] [-PrivateLinkServiceNetworkPoliciesFlag ] + [-IpAllocation ] [-DefaultOutboundAccess ] + [-DefaultProfile ] [] +``` + ++ SetByResourceId +```powershell +Add-AzVirtualNetworkSubnetConfig -Name -VirtualNetwork [-AddressPrefix ] + [-IpamPoolPrefixAllocation ] [-NetworkSecurityGroupId ] + [-RouteTableId ] [-ResourceId ] [-ServiceEndpoint ] + [-NetworkIdentifier ] [-ServiceEndpointConfig ] + [-ServiceEndpointPolicy ] [-Delegation ] + [-PrivateEndpointNetworkPoliciesFlag ] [-PrivateLinkServiceNetworkPoliciesFlag ] + [-IpAllocation ] [-DefaultOutboundAccess ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Add a subnet to an existing virtual network +```powershell +New-AzResourceGroup -Name TestResourceGroup -Location centralus + $frontendSubnet = New-AzVirtualNetworkSubnetConfig -Name frontendSubnet -AddressPrefix "10.0.1.0/24" + $virtualNetwork = New-AzVirtualNetwork -Name MyVirtualNetwork -ResourceGroupName TestResourceGroup -Location centralus -AddressPrefix "10.0.0.0/16" -Subnet $frontendSubnet + Add-AzVirtualNetworkSubnetConfig -Name backendSubnet -VirtualNetwork $virtualNetwork -AddressPrefix "10.0.2.0/24" + $virtualNetwork | Set-AzVirtualNetwork +``` + + This example first creates a resource group as a container of the resources to be created. It then creates a subnet configuration and uses it to create a virtual network. The + Add-AzVirtualNetworkSubnetConfig is then used to add a subnet to the in-memory representation of the virtual network. The Set-AzVirtualNetwork command updates the existing virtual + network with the new subnet. + ++ Example 2: Add a delegation to a subnet being added to an existing virtual network +```powershell +$vnet = Get-AzVirtualNetwork -Name "myVNet" -ResourceGroupName "myResourceGroup" +$delegation = New-AzDelegation -Name "myDelegation" -ServiceName "Microsoft.Sql/servers" +Add-AzVirtualNetworkSubnetConfig -Name "mySubnet" -VirtualNetwork $vnet -AddressPrefix "10.0.2.0/24" -Delegation $delegation | Set-AzVirtualNetwork +``` + +This example first gets an existing vnet. +Then, it creates a delegation object in memory. +Finally, it creates a new subnet with that delegation that is added to the vnet. The modified configuration is then sent to the server. + + +#### Get-AzVirtualNetworkSubnetConfig + +#### SYNOPSIS +Gets a subnet in a virtual network. + +#### SYNTAX + ++ GetByVirtualNetwork (Default) +```powershell +Get-AzVirtualNetworkSubnetConfig [-Name ] -VirtualNetwork + [-DefaultProfile ] [] +``` + ++ GetByResourceId +```powershell +Get-AzVirtualNetworkSubnetConfig -ResourceId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Get a subnet in a virtual network +```powershell +New-AzResourceGroup -Name TestResourceGroup -Location centralus +$frontendSubnet = New-AzVirtualNetworkSubnetConfig -Name frontendSubnet -AddressPrefix "10.0.1.0/24" +$virtualNetwork = New-AzVirtualNetwork -Name MyVirtualNetwork -ResourceGroupName TestResourceGroup -Location centralus -AddressPrefix "10.0.0.0/16" -Subnet $frontendSubnet +Get-AzVirtualNetworkSubnetConfig -Name frontendSubnet -VirtualNetwork $virtualNetwork +``` + +This example creates a resource group and a virtual network with a single subnet in that resource group. It then retrieves data about that subnet. + + +#### Remove-AzVirtualNetworkSubnetConfig + +#### SYNOPSIS +Removes a subnet configuration from a virtual network. + +#### SYNTAX + +```powershell +Remove-AzVirtualNetworkSubnetConfig [-Name ] -VirtualNetwork + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Remove a subnet from a virtual network and update the virtual network +```powershell +New-AzResourceGroup -Name TestResourceGroup -Location centralus +$frontendSubnet = New-AzVirtualNetworkSubnetConfig -Name frontendSubnet -AddressPrefix "10.0.1.0/24" + +$backendSubnet = New-AzVirtualNetworkSubnetConfig -Name backendSubnet -AddressPrefix "10.0.2.0/24" + +$virtualNetwork = New-AzVirtualNetwork -Name MyVirtualNetwork -ResourceGroupName TestResourceGroup -Location centralus -AddressPrefix "10.0.0.0/16" -Subnet $frontendSubnet,$backendSubnet + +Remove-AzVirtualNetworkSubnetConfig -Name backendSubnet -VirtualNetwork $virtualNetwork +$virtualNetwork | Set-AzVirtualNetwork +``` + +This example creates a resource group and a virtual network with two subnets. It then + uses the Remove-AzVirtualNetworkSubnetConfig command to remove the backend subnet + from the in-memory representation of the virtual network. Set-AzVirtualNetwork is + then called to modify the virtual network on the server side. + + +#### Set-AzVirtualNetworkSubnetConfig + +#### SYNOPSIS +Updates a subnet configuration for a virtual network. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +Set-AzVirtualNetworkSubnetConfig -Name -VirtualNetwork [-AddressPrefix ] + [-IpamPoolPrefixAllocation ] [-NetworkSecurityGroup ] + [-RouteTable ] [-InputObject ] [-ServiceEndpoint ] + [-NetworkIdentifier ] [-ServiceEndpointConfig ] + [-ServiceEndpointPolicy ] [-Delegation ] + [-PrivateEndpointNetworkPoliciesFlag ] [-PrivateLinkServiceNetworkPoliciesFlag ] + [-IpAllocation ] [-DefaultOutboundAccess ] + [-DefaultProfile ] [] +``` + ++ SetByResourceId +```powershell +Set-AzVirtualNetworkSubnetConfig -Name -VirtualNetwork [-AddressPrefix ] + [-IpamPoolPrefixAllocation ] [-NetworkSecurityGroupId ] + [-RouteTableId ] [-ResourceId ] [-ServiceEndpoint ] + [-NetworkIdentifier ] [-ServiceEndpointConfig ] + [-ServiceEndpointPolicy ] [-Delegation ] + [-PrivateEndpointNetworkPoliciesFlag ] [-PrivateLinkServiceNetworkPoliciesFlag ] + [-IpAllocation ] [-DefaultOutboundAccess ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Modify the address prefix of a subnet +```powershell +New-AzResourceGroup -Name TestResourceGroup -Location centralus + +$frontendSubnet = New-AzVirtualNetworkSubnetConfig -Name frontendSubnet -AddressPrefix "10.0.1.0/24" + +$virtualNetwork = New-AzVirtualNetwork -Name MyVirtualNetwork -ResourceGroupName TestResourceGroup -Location centralus -AddressPrefix "10.0.0.0/16" -Subnet $frontendSubnet + +Set-AzVirtualNetworkSubnetConfig -Name frontendSubnet -VirtualNetwork $virtualNetwork -AddressPrefix "10.0.3.0/23" + +$virtualNetwork | Set-AzVirtualNetwork +``` + +This example creates a virtual network with one subnet. Then is calls + Set-AzVirtualNetworkSubnetConfig to modify the AddressPrefix of the subnet. This + only impacts the in-memory representation of the virtual network. + Set-AzVirtualNetwork is then called to modify the virtual network in Azure. + ++ Example 2: Add a network security group to a subnet +```powershell +New-AzResourceGroup -Name TestResourceGroup -Location centralus + +$frontendSubnet = New-AzVirtualNetworkSubnetConfig -Name frontendSubnet -AddressPrefix "10.0.1.0/24" + +$virtualNetwork = New-AzVirtualNetwork -Name MyVirtualNetwork -ResourceGroupName TestResourceGroup -Location centralus -AddressPrefix "10.0.0.0/16" -Subnet $frontendSubnet + +$rdpRule = New-AzNetworkSecurityRuleConfig -Name rdp-rule -Description "Allow RDP" -Access Allow -Protocol Tcp -Direction Inbound -Priority 100 -SourceAddressPrefix Internet -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 3389 + +$networkSecurityGroup = New-AzNetworkSecurityGroup -ResourceGroupName TestResourceGroup -Location centralus -Name "NSG-FrontEnd" -SecurityRules $rdpRule + +Set-AzVirtualNetworkSubnetConfig -Name frontendSubnet -VirtualNetwork $virtualNetwork -AddressPrefix "10.0.1.0/24" -NetworkSecurityGroupId $networkSecurityGroup.Id + +$virtualNetwork | Set-AzVirtualNetwork +``` + +This example creates a resource group with one virtual network containing just one + subnet. It then creates a network security group with an allow rule for RDP traffic. The + Set-AzVirtualNetworkSubnetConfig cmdlet is used to modify the in-memory + representation of the frontend subnet so that it points to the newly created network + security group. The Set-AzVirtualNetwork cmdlet is then called to write the modified + state back to the service. + ++ Example 3: Attach a Nat Gateway to a subnet +```powershell +$pip = New-AzPublicIpAddress -Name "pip" -ResourceGroupName "natgateway_test" ` + -Location "eastus2" -Sku "Standard" -IdleTimeoutInMinutes 4 -AllocationMethod "static" + +$natGateway = New-AzNatGateway -ResourceGroupName "natgateway_test" -Name "nat_gateway" ` + -IdleTimeoutInMinutes 4 -Sku "Standard" -Location "eastus2" -PublicIpAddress $pip + +$frontendSubnet = New-AzVirtualNetworkSubnetConfig -Name frontendSubnet -AddressPrefix "10.0.1.0/24" + +$virtualNetwork = New-AzVirtualNetwork -Name MyVirtualNetwork -ResourceGroupName TestResourceGroup -Location eastus2 -AddressPrefix "10.0.0.0/16" -Subnet $frontendSubnet + +Set-AzVirtualNetworkSubnetConfig -Name frontendSubnet -VirtualNetwork $virtualNetwork -InputObject $natGateway -AddressPrefix "10.0.0.0/16" + +$virtualNetwork | Set-AzVirtualNetwork +``` + + +#### New-AzVirtualNetworkTap + +#### SYNOPSIS +Creates a VirtualNetworkTap resource. + +#### SYNTAX + ++ SetByResource (Default) +```powershell +New-AzVirtualNetworkTap -ResourceGroupName -Name [-DestinationPort ] + [-Location ] [-Tag ] + [-DestinationNetworkInterfaceIPConfiguration ] + [-DestinationLoadBalancerFrontEndIPConfiguration ] [-Force] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ SetByResourceId +```powershell +New-AzVirtualNetworkTap -ResourceGroupName -Name [-DestinationPort ] + [-Location ] [-Tag ] [-DestinationNetworkInterfaceIPConfigurationId ] + [-DestinationLoadBalancerFrontEndIPConfigurationId ] [-Force] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Create an Azure virtual network tap +```powershell +New-AzVirtualNetworkTap -Name "VirtualNetworkTap1" -ResourceGroupName "ResourceGroup1" -Location "centralus" -DestinationPort 8888 -DestinationNetworkInterfaceIPConfiguration $destinationNic.IpConfigurations[0] +``` + +This command creates a virtual network tap named "VirtualNetworkTap1" which has destination VM configuration details (DestinationIpConfiguration, DestinationPort). +All the source tap configured VM's traffic will be routed to this Destination IP + Port. + ++ Example 2: Create an Azure virtual network tap using LoadBalancer IP +```powershell +#### Create LoadBalancer +$frontend = New-AzLoadBalancerFrontendIpConfig -Name $frontendName -PublicIpAddress $publicip +New-AzVirtualNetworkTap -Name "VirtualNetworkTap1" -ResourceGroupName "ResourceGroup1" -Location "centralus" -DestinationLoadBalancerFrontEndIPConfiguration $frontend +``` + +This command creates a virtual network tap named "VirtualNetworkTap1" which has destination VM configuration details (FrontEndIpConfiguration). +All the source tap configured VM's traffic will be routed to this LoadBalancer IpConfiguration. Default Destination Port is 4789. + + +#### Get-AzVirtualNetworkTap + +#### SYNOPSIS +Gets a virtual network tap + +#### SYNTAX + ++ ListParameterSet (Default) +```powershell +Get-AzVirtualNetworkTap [-ResourceGroupName ] [-Name ] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ GetByResourceIdParameterSet +```powershell +Get-AzVirtualNetworkTap -ResourceId [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Get a virtual network tap +```powershell +Get-AzVirtualNetworkTap -ResourceGroupName "ResourceGroup1" -Name "VirtualTap1" +``` + +This command gets a VirtualNetwork tap reference for given "VirtualTap1" in "ResourceGroup1". + ++ Example 2: Get all virtual network taps using filtering +```powershell +Get-AzVirtualNetworkTap -Name "VirtualTap*" +``` + +This command gets all VirtualNetwork tap references that start with "VirtualTap". + + +#### Remove-AzVirtualNetworkTap + +#### SYNOPSIS +Removes a virtual network tap. + +#### SYNTAX + ++ RemoveByNameParameterSet (Default) +```powershell +Remove-AzVirtualNetworkTap -ResourceGroupName -Name [-Force] [-AsJob] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ DeleteByResourceIdParameterSet +```powershell +Remove-AzVirtualNetworkTap -ResourceId [-Force] [-AsJob] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ DeleteByInputObjectParameterSet +```powershell +Remove-AzVirtualNetworkTap -InputObject [-Force] [-AsJob] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Remove a virtual network tap +```powershell +Remove-AzNetworkInterface -Name "VirtualNetworkTap1" -ResourceGroupName "ResourceGroup1" +``` + +This command removes the VirtualNetworkTap1 in resource group ResourceGroup1. +Because the *Force* parameter is not used, the user will be prompted to confirm this action. + + +#### Set-AzVirtualNetworkTap + +#### SYNOPSIS +Updates a virtual network tap. + +#### SYNTAX + +```powershell +Set-AzVirtualNetworkTap -VirtualNetworkTap [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Configure a Virtual network tap +```powershell +$vTap = Get-AzVirtualNetworkTap -ResourceGroupName "ResourceGroup1" -Name "VirtualTap1" +$vTap.DestinationNetworkInterfaceIPConfiguration = $newDestinationNic.IpConfigurations[0] +Set-AzVirtualNetworkTap -VirtualNetworkTap $vTap +``` + +The command updates the Destination IpConfiguration and updates the Virtual network tap. +If there are any tap configurations referencing it, then all the source traffic will not start be mirrored to new destination ip configuration post update. + + +#### Get-AzVirtualNetworkUsageList + +#### SYNOPSIS +Gets virtual network current usage. + +#### SYNTAX + +```powershell +Get-AzVirtualNetworkUsageList -ResourceGroupName -Name + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzVirtualNetworkUsageList -ResourceGroupName test -Name usagetest +``` + +```output +Name : Subnet size and usage +Id : /subscriptions/sub1/resourceGroups/test/providers/Microsoft.Network/virtualNetworks/usagetest/subnets/subnet +CurrentValue : 1 +Limit : 65531 +Unit : Count + +Name : Subnet size and usage +Id : /subscriptions/sub1/resourceGroups/test/providers/Microsoft.Network/virtualNetworks/usagetest/subnets/subnet11 +CurrentValue : 0 +Limit : 251 +Unit : Count +``` + +Gets per subnet current values of usage for usagetest virtual network. + + +#### New-AzVirtualRouter + +#### SYNOPSIS +Creates an Azure VirtualRouter. + +#### SYNTAX + +```powershell +New-AzVirtualRouter -ResourceGroupName -Name -HostedSubnet -Location + [-Tag ] [-Force] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$subnet = New-AzVirtualNetworkSubnetConfig -Name $subnetName -AddressPrefix 10.0.0.0/24 +$vnet = New-AzVirtualNetwork -Name $vnetName -ResourceGroupName $resourceGroupName -Location $resourceGroupLocation -AddressPrefix 10.0.0.0/16 -Subnet $subnet +$subnetId = (Get-AzVirtualNetworkSubnetConfig -Name $subnetName -VirtualNetwork $vnet).Id +New-AzVirtualRouter -Name $virtualRouterName -ResourceGroupName $resourceGroupName -Location $resourceGroupLocation -HostedSubnet $subnetId +``` + + +#### Get-AzVirtualRouter + +#### SYNOPSIS +Get an Azure VirtualRouter + +#### SYNTAX + ++ VirtualRouterSubscriptionIdParameterSet (Default) +```powershell +Get-AzVirtualRouter [-DefaultProfile ] + [] +``` + ++ VirtualRouterNameParameterSet +```powershell +Get-AzVirtualRouter -ResourceGroupName [-RouterName ] + [-DefaultProfile ] [] +``` + ++ VirtualRouterResourceIdParameterSet +```powershell +Get-AzVirtualRouter -ResourceId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzVirtualRouter -ResourceGroupName virtualRouterRG -RouterName virtualRouter +``` + ++ Example 2 +```powershell +$virtualRouterId = '/subscriptions/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/resourceGroups/virtualRouterRG/providers/Microsoft.Network/virtualRouters/virtualRouter' +Get-AzVirtualRouter -ResourceId $virtualRouterId +``` + + +#### Remove-AzVirtualRouter + +#### SYNOPSIS +Deletes an Azure VirtualRouter. + +#### SYNTAX + ++ VirtualRouterNameParameterSet (Default) +```powershell +Remove-AzVirtualRouter -ResourceGroupName -RouterName [-Force] [-AsJob] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ VirtualRouterInputObjectParameterSet +```powershell +Remove-AzVirtualRouter -InputObject [-Force] [-AsJob] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ VirtualRouterResourceIdParameterSet +```powershell +Remove-AzVirtualRouter -ResourceId [-Force] [-AsJob] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzVirtualRouter -ResourceGroupName virtualRouterRG -RouterName virtualRouter +``` + ++ Example 2 +```powershell +$virtualRouterId = '/subscriptions/8c992d64-fce9-426d-b278-85642dfeab03/resourceGroups/virtualRouterRG/providers/Microsoft.Network/virtualRouters/virtualRouter' +Remove-AzVirtualRouter -ResourceId $virtualRouterId +``` + ++ Example 3 +```powershell +$virtualRouter = Get-AzVirtualRouter -ResourceGroupName virtualRouterRG -RouterName virtualRouter +Remove-AzVirtualRouter -InputObject $virtualRouter +``` + + +#### Update-AzVirtualRouter + +#### SYNOPSIS +Updates a Virtual Router. + +#### SYNTAX + ++ VirtualRouterNameParameterSet (Default) +```powershell +Update-AzVirtualRouter -ResourceGroupName -RouterName [-AllowBranchToBranchTraffic] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ VirtualRouterResourceIdParameterSet +```powershell +Update-AzVirtualRouter [-AllowBranchToBranchTraffic] -ResourceId + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Update-AzVirtualRouter -ResourceGroupName $rgname -RouterName $virtualRouterName -AllowBranchToBranchTraffic +``` + +Updates the Virtual Router to allow branch to branch traffic + ++ Example 2 +```powershell +Update-AzVirtualRouter -ResourceGroupName $rgname -RouterName $virtualRouterName +``` + +Updates the Virtual Router to block branch to branch traffic + + +#### New-AzVirtualRouterAutoScaleConfiguration + +#### SYNOPSIS +Create a VirtualRouterAutoScaleConfiguration object for a Virtual Hub. + +#### SYNTAX + +```powershell +New-AzVirtualRouterAutoScaleConfiguration -MinCapacity [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName "testRG" -Name "myVirtualWAN" -Location "West US" +$autoscale = New-AzVirtualRouterAutoScaleConfiguration -MinCapacity 3 +New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.1.0/24" -VirtualRouterAutoScaleConfiguration $autoscale +Remove-AzVirtualHub -ResourceGroupName "testRG" -Name "westushub" +``` + +The above will create a resource group "testRG", a Virtual WAN and a Virtual Hub in West US in that resource group in Azure. The virtual hub will have the address space "10.0.1.0/24" and minimum capacity 3. + +It then deletes the virtual hub using its ResourceGroupName and ResourceName. + + +#### Add-AzVirtualRouterPeer + +#### SYNOPSIS +Add a Peer to an Azure VirtualRouter + +#### SYNTAX + +```powershell +Add-AzVirtualRouterPeer -ResourceGroupName -PeerName -PeerIp -PeerAsn + -VirtualRouterName [-Force] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Add-AzVirtualRouterPeer -ResourceGroupName virtualRouterRG -PeerName csr -PeerIp 10.0.1.5 -PeerAsn 63000 -VirtualRouterName virtualRouter +``` + + +#### Get-AzVirtualRouterPeer + +#### SYNOPSIS +Gets a VirtualRouter peer in an Azure VirtualRouter + +#### SYNTAX + ++ VirtualRouterPeerNameParameterSet (Default) +```powershell +Get-AzVirtualRouterPeer -ResourceGroupName -PeerName -VirtualRouterName + [-DefaultProfile ] [] +``` + ++ VirtualRouterPeerResourceIdParameterSet +```powershell +Get-AzVirtualRouterPeer -ResourceId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzVirtualRouterPeer -ResourceGroupName virtualRouterRG -VirtualRouterName virtualRouter -PeerName csr +``` + ++ Example 2 +```powershell +$virtualRouterPeerId = '/subscriptions/8c992d64-fce9-426d-b278-85642dfeab03/resourceGroups/virtualRouterRG/providers/Microsoft.Network/virtualRouters/virtualRouter/peerings/csr' +Get-AzVirtualRouterPeer -ResourceId $virtualRouterPeerId +``` + + +#### Remove-AzVirtualRouterPeer + +#### SYNOPSIS +Removes a Peer from an Azure VirtualRouter + +#### SYNTAX + ++ VirtualRouterPeerNameParameterSet (Default) +```powershell +Remove-AzVirtualRouterPeer -ResourceGroupName -PeerName -VirtualRouterName [-Force] + [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ VirtualRouterPeerObjectParameterSet +```powershell +Remove-AzVirtualRouterPeer -InputObject [-Force] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ VirtualRouterPeerResourceIdParameterSet +```powershell +Remove-AzVirtualRouterPeer -ResourceId [-Force] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzVirtualRouterPeer -PeerName csr -VirtualRouterName virtualRouter -ResourceGroupName virtualRouterRG +``` + ++ Example 2 +```powershell +$virtualRouterPeerId = '/subscriptions/8c992d64-fce9-426d-b278-85642dfeab03/resourceGroups/virtualRouterRG/providers/Microsoft.Network/virtualRouters/virtualRouter/peerings/csr' +Remove-AzVirtualRouterPeer -ResourceId $virtualRouterPeerId +``` + ++ Example 3 +```powershell +$virtualRouterPeer = Get-AzVirtualRouterPeer -ResourceGroupName virtualRouter -VirtualRouterName virtualRouter -PeerName csr +Remove-AzVirtualRouterPeer -InputObject $virtualRouterPeer +``` + + +#### Update-AzVirtualRouterPeer + +#### SYNOPSIS +Update a Peer in an Azure VirtualRouter + +#### SYNTAX + ++ VirtualRouterNameParameterSet (Default) +```powershell +Update-AzVirtualRouterPeer -ResourceGroupName -VirtualRouterName [-Force] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ VirtualRouterPeerNameParameterSet +```powershell +Update-AzVirtualRouterPeer -ResourceGroupName -PeerName -PeerIp -PeerAsn + -VirtualRouterName [-Force] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ VirtualRouterPeerObjectParameterSet +```powershell +Update-AzVirtualRouterPeer -ResourceGroupName -VirtualRouterName + -InputObject [-Force] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ VirtualRouterPeerResourceIdParameterSet +```powershell +Update-AzVirtualRouterPeer -ResourceGroupName -VirtualRouterName -ResourceId + [-Force] [-AsJob] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Update-AzVirtualRouterPeer -PeerName csr -PeerIp 10.0.1.5 -PeerAsn 63000 -VirtualRouterName virtualRouter -ResourceGroupName virtualRouterRG +``` + ++ Example 2 +```powershell +$virtualRouterPeerId = '/subscriptions/8c992d64-fce9-426d-b278-85642dfeab03/resourceGroups/virtualRouterRG/providers/Microsoft.Network/virtualRouters/testVirtualRouter/peerings/csr' +Update-AzVirtualRouterPeer -ResourceId $virtualRouterPeerId -VirtualRouterName virtualRouter -ResourceGroupName virtualRouterRG +``` + ++ Example 3 +```powershell +$virtualRouterPeer = Get-AzVirtualRouterPeer -ResourceGroupName testVirtualRouter -VirtualRouterName virtualRouter -PeerName csr +Update-AzVirtualRouterPeer -ResourceGroupName virtualRouterRG -InputObject $virtualRouterPeer -VirtualRouterName virtualRouter +``` + + +#### Get-AzVirtualRouterPeerAdvertisedRoute + +#### SYNOPSIS +List routes being advertised by specific virtual router peer + +#### SYNTAX + ++ VirtualRouterPeerNameParameterSet (Default) +```powershell +Get-AzVirtualRouterPeerAdvertisedRoute -ResourceGroupName -VirtualRouterName + -PeerName [-AsJob] [-DefaultProfile ] + [] +``` + ++ VirtualRouterPeerObjectParameterSet +```powershell +Get-AzVirtualRouterPeerAdvertisedRoute -InputObject [-AsJob] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzVirtualRouterPeerAdvertisedRoute -ResourceGroupName $resourceGroupName -VirtualRouterName $virtualRouterName -PeerName $peerName +``` + ++ Example 2 +```powershell +$virtualRouterPeer = Get-AzVirtualRouterPeer -ResourceGroupName $resourceGroupName -VirtualRouterName $virtualRouterName -PeerName $peerName +Get-AzVirtualRouterPeerAdvertisedRoute -InputObject $virtualRouterPeer +``` + + +#### Get-AzVirtualRouterPeerLearnedRoute + +#### SYNOPSIS +List routes learned by a specific virtual router peer + +#### SYNTAX + ++ VirtualRouterPeerNameParameterSet (Default) +```powershell +Get-AzVirtualRouterPeerLearnedRoute -ResourceGroupName -VirtualRouterName -PeerName + [-AsJob] [-DefaultProfile ] [] +``` + ++ VirtualRouterPeerObjectParameterSet +```powershell +Get-AzVirtualRouterPeerLearnedRoute -InputObject [-AsJob] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzVirtualRouterPeerLearnedRoute -ResourceGroupName $resourceGroupName -VirtualRouterName $virtualRouterName -PeerName $peerName +``` + ++ Example 2 +```powershell +$virtualRouterPeer = Get-AzVirtualRouterPeer -ResourceGroupName $resourceGroupName -VirtualRouterName $virtualRouterName -PeerName $peerName +Get-AzVirtualRouterPeerLearnedRoute -InputObject $virtualRouterPeer +``` + + +#### New-AzVirtualWan + +#### SYNOPSIS +Creates an Azure Virtual WAN. + +#### SYNTAX + +```powershell +New-AzVirtualWan -ResourceGroupName -Name -Location [-AllowVnetToVnetTraffic] + [-AllowBranchToBranchTraffic] [-Tag ] [-VirtualWANType ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +New-AzVirtualWan -ResourceGroupName "testRG" -Name "myVirtualWAN" -Location "West US" -AllowBranchToBranchTraffic +``` + +```output +Name : testRG +Id : /subscriptions/{SubscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualWans/myVirtualWAN +AllowVnetToVnetTraffic : False +AllowBranchToBranchTraffic : True +Location : West US +VirtualWANType : Standard +Type : Microsoft.Network/virtualWans +ProvisioningState : Succeeded +``` + +The above will create a resource group "testRG" in region "West US" and an Azure Virtual WAN with branch to branch traffic allowed in that resource group in Azure. + ++ Example 2 + +Creates an Azure Virtual WAN. (autogenerated) + + + + +```powershell +New-AzVirtualWan -AllowBranchToBranchTraffic -AllowVnetToVnetTraffic -Location 'Central US' -Name 'MyVirtualWan' -ResourceGroupName 'TestResourceGroup' -VirtualWANType 'Standard' +``` + + +#### Get-AzVirtualWan + +#### SYNOPSIS +Gets a Virtual WAN or all Virtual WANs in a resource group or subscription. + +#### SYNTAX + ++ ListBySubscriptionId (Default) +```powershell +Get-AzVirtualWan [-DefaultProfile ] + [] +``` + ++ ListByResourceGroupName +```powershell +Get-AzVirtualWan [-ResourceGroupName ] [-Name ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +New-AzVirtualWan -ResourceGroupName "testRG" -Name "myVirtualWAN" -Location "West US" -AllowBranchToBranchTraffic +Get-AzVirtualWan -Name "myVirtualWAN" -ResourceGroupName "testRG" +``` + +```output +Name : myVirtualWAN +Id : /subscriptions/{SubscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualWans/myVirtualWAN +AllowVnetToVnetTraffic : False +AllowBranchToBranchTraffic : True +Location : West US +Type : Microsoft.Network/virtualWans +ProvisioningState : Succeeded +``` + +This command gets the Virtual WAN named myVirtualWAN in the resource group testRG. + ++ Example 2 + +```powershell +Get-AzVirtualWan -Name test* +``` + +```output +Name : test1 +Id : /subscriptions/{SubscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualWans/test1 +AllowVnetToVnetTraffic : False +AllowBranchToBranchTraffic : True +Location : West US +Type : Microsoft.Network/virtualWans +ProvisioningState : Succeeded + +Name : test2 +Id : /subscriptions/{SubscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualWans/test2 +AllowVnetToVnetTraffic : False +AllowBranchToBranchTraffic : True +Location : West US +Type : Microsoft.Network/virtualWans +ProvisioningState : Succeeded +``` + +This command gets all Virtual WANs starting with "test". + + +#### Remove-AzVirtualWan + +#### SYNOPSIS +Removes an Azure Virtual WAN. + +#### SYNTAX + ++ ByVirtualWanName (Default) +```powershell +Remove-AzVirtualWan -ResourceGroupName -Name [-Force] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVirtualWanObject +```powershell +Remove-AzVirtualWan -InputObject [-Force] [-PassThru] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVirtualWanResourceId +```powershell +Remove-AzVirtualWan -ResourceId [-Force] [-PassThru] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +New-AzResourceGroup -Name "TestResourceGroup" -Location "Central US" +New-AzVirtualWan -Name "MyVirtualWan" -ResourceGroupName "TestResourceGroup" -Location "Central US" +Remove-AzVirtualWan -Name "MyVirtualWan" -ResourceGroupName "TestResourceGroup" -Passthru +``` + +This example creates a Virtual WAN in a resource group and then immediately deletes it. +To suppress the prompt when deleting the Virtual WAN, use the -Force flag. + ++ Example 2 + +```powershell +New-AzResourceGroup -Name "TestResourceGroup" -Location "Central US" +$virtualWan = New-AzVirtualWan -Name "MyVirtualWan" -ResourceGroupName "TestResourceGroup" -Location "Central US" +Remove-AzVirtualWan -InputObject $virtualWan -Passthru +``` + +This example creates a Virtual WAN in a resource group and then immediately deletes it. This deletion happens using the virtual wan object returned by New-AzVirtualWan. +To suppress the prompt when deleting the Virtual WAN, use the -Force flag. + ++ Example 3 + +```powershell +New-AzResourceGroup -Name "TestResourceGroup" -Location "Central US" +$virtualWan = New-AzVirtualWan -Name "MyVirtualWan" -ResourceGroupName "TestResourceGroup" -Location "Central US" +Remove-AzVirtualWan -ResourceId $virtualWan.Id -Passthru +``` + +This example creates a Virtual WAN in a resource group and then immediately deletes it. This deletion happens using the virtual wan resource id returned by New-AzVirtualWan. +To suppress the prompt when deleting the Virtual WAN, use the -Force flag. + + +#### Update-AzVirtualWan + +#### SYNOPSIS +Updates an Azure Virtual WAN. + +#### SYNTAX + ++ ByVirtualWanName (Default) +```powershell +Update-AzVirtualWan -ResourceGroupName -Name [-AllowVnetToVnetTraffic ] + [-AllowBranchToBranchTraffic ] [-Tag ] [-VirtualWANType ] [-Force] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVirtualWanObject +```powershell +Update-AzVirtualWan -InputObject [-AllowVnetToVnetTraffic ] + [-AllowBranchToBranchTraffic ] [-Tag ] [-VirtualWANType ] [-Force] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVirtualWanResourceId +```powershell +Update-AzVirtualWan -ResourceId [-AllowVnetToVnetTraffic ] + [-AllowBranchToBranchTraffic ] [-Tag ] [-VirtualWANType ] [-Force] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +New-AzVirtualWan -ResourceGroupName "testRG" -Name "myVirtualWAN" -Location "West US" +Update-AzVirtualWan -ResourceGroupName "testRG" -Name "myVirtualWAN" -AllowBranchToBranchTraffic $true -AllowVnetToVnetTraffic $false +``` + +```output +Name : testRG +Id : /subscriptions/{SubscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualWans/myVirtualWAN +AllowVnetToVnetTraffic : False +AllowBranchToBranchTraffic : True +Location : West US +VirtualWANType : Standard +Type : Microsoft.Network/virtualWans +ProvisioningState : Succeeded +``` + +The above will create a resource group "testRG" in region "West US" and an Azure Virtual WAN in that resource group in Azure. VirtualWan is updated with new properties. + + +#### Get-AzVirtualWanVpnConfiguration + +#### SYNOPSIS +Gets the Vpn configuration for a subset of VpnSites connected to this WAN via VpnConnections. Uploads the generated Vpn +configuration to a storage blob specified by the customer. + +#### SYNTAX + ++ ByVirtualWanNameByVpnSiteObject (Default) +```powershell +Get-AzVirtualWanVpnConfiguration -ResourceGroupName -Name -StorageSasUrl + -VpnSite [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVirtualWanNameByVpnSiteResourceId +```powershell +Get-AzVirtualWanVpnConfiguration -ResourceGroupName -Name -StorageSasUrl + -VpnSiteId [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVirtualWanObjectByVpnSiteObject +```powershell +Get-AzVirtualWanVpnConfiguration -InputObject -StorageSasUrl -VpnSite + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVirtualWanObjectByVpnSiteResourceId +```powershell +Get-AzVirtualWanVpnConfiguration -InputObject -StorageSasUrl -VpnSiteId + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVirtualWanResourceIdByVpnSiteObject +```powershell +Get-AzVirtualWanVpnConfiguration -ResourceId -StorageSasUrl -VpnSite + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVirtualWanResourceIdByVpnSiteResourceId +```powershell +Get-AzVirtualWanVpnConfiguration -ResourceId -StorageSasUrl -VpnSiteId + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName testRG -Name myVirtualWAN -Location "West US" +$virtualHub = New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.0.1/24" +New-AzVpnGateway -ResourceGroupName "testRG" -Name "testvpngw" -VirtualHubId $virtualHub.Id -VpnGatewayScaleUnit 2 +$vpnGateway = Get-AzVpnGateway -ResourceGroupName "testRG" -Name "testvpngw" + +$vpnSiteAddressSpaces = New-Object string[] 2 +$vpnSiteAddressSpaces[0] = "192.168.2.0/24" +$vpnSiteAddressSpaces[1] = "192.168.3.0/24" + +$vpnSite = New-AzVpnSite -ResourceGroupName "testRG" -Name "testVpnSite" -Location "West US" -VirtualWan $virtualWan -IpAddress "1.2.3.4" -AddressSpace $vpnSiteAddressSpaces -DeviceModel "SomeDevice" -DeviceVendor "SomeDeviceVendor" -LinkSpeedInMbps "10" + +New-AzVpnConnection -ResourceGroupName $vpnGateway.ResourceGroupName -ParentResourceName $vpnGateway.Name -Name "testConnection" -VpnSite $vpnSite + +$vpnSitesForConfig = New-Object Microsoft.Azure.Commands.Network.Models.PSVpnSite[] 1 +$vpnSitesForConfig[0] = $vpnSite +Get-AzVirtualWanVpnConfiguration -VirtualWan $virtualWan -StorageSasUrl "SignedSasUrl" -VpnSite $vpnSitesForConfig +``` + +```output +SasUrl +------ +SignedSasUrl +``` + +The above will create a resource group, Virtual WAN, Virtual Network, Virtual Hub and a VpnSite in West US in "testRG" resource group in Azure. +A VPN gateway will be created thereafter in the Virtual Hub with 2 scale units. + +Once the gateway has been created, it is connected to the VpnSite using the New-AzVpnConnection command. + +The configuration is then downloaded using this cmdlet. + +If the cmdlet is successful, then the download configuration will be written to the blob indicated by the SignedSasUrl. Below is an example for how the URL will look like : +https://[account].blob.core.windows.net/[container]/[path/to/blob]?[SAS] + + +#### Get-AzVirtualWanVpnServerConfiguration + +#### SYNOPSIS +Gets the list of all VpnServerConfigurations that are associated with this VirtualWan. + +#### SYNTAX + ++ ByVirtualWanName (Default) +```powershell +Get-AzVirtualWanVpnServerConfiguration -Name -ResourceGroupName + [-DefaultProfile ] [] +``` + ++ ByVirtualWanObject +```powershell +Get-AzVirtualWanVpnServerConfiguration -VirtualWanObject + [-DefaultProfile ] [] +``` + ++ ByVirtualWanResourceId +```powershell +Get-AzVirtualWanVpnServerConfiguration -ResourceId [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzVirtualWanVpnServerConfiguration -Name WestUsVirtualWan -ResourceGroupName P2SCortexGATesting +``` + +```output +VpnServerConfigurationResourceIds : [ + "/subscriptions/b1f1deed-af60-4bab-9223-65d340462e24/resourceGroups/P2SCortexGATesting/providers/Microsoft.Network/vpnServerConfigurations/WestUsConfig" ] +``` + + +#### Get-AzVirtualWanVpnServerConfigurationVpnProfile + +#### SYNOPSIS +Generates and downloads Vpn profile at VirtualWan-VpnServerConfiguration level for Point to site client setup. + +#### SYNTAX + ++ ByVirtualWanNameByVpnServerConfigurationObject (Default) +```powershell +Get-AzVirtualWanVpnServerConfigurationVpnProfile [-Name ] -ResourceGroupName + -VpnServerConfiguration [-AuthenticationMethod ] + [-DefaultProfile ] [] +``` + ++ ByVirtualWanNameByVpnServerConfigurationResourceId +```powershell +Get-AzVirtualWanVpnServerConfigurationVpnProfile [-Name ] -ResourceGroupName + -VpnServerConfigurationId [-AuthenticationMethod ] [-DefaultProfile ] + [] +``` + ++ ByVirtualWanObjectByVpnServerConfigurationObject +```powershell +Get-AzVirtualWanVpnServerConfigurationVpnProfile -VirtualWanObject + -VpnServerConfiguration [-AuthenticationMethod ] + [-DefaultProfile ] [] +``` + ++ ByVirtualWanObjectByVpnServerConfigurationResourceId +```powershell +Get-AzVirtualWanVpnServerConfigurationVpnProfile -VirtualWanObject + -VpnServerConfigurationId [-AuthenticationMethod ] [-DefaultProfile ] + [] +``` + ++ ByVirtualWanResourceIdByVpnServerConfigurationObject +```powershell +Get-AzVirtualWanVpnServerConfigurationVpnProfile -ResourceId + -VpnServerConfiguration [-AuthenticationMethod ] + [-DefaultProfile ] [] +``` + ++ ByVirtualWanResourceIdByVpnServerConfigurationResourceId +```powershell +Get-AzVirtualWanVpnServerConfigurationVpnProfile -ResourceId -VpnServerConfigurationId + [-AuthenticationMethod ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzVirtualWanVpnServerConfigurationVpnProfile -Name WestUsVirtualWan -ResourceGroupName P2SCortexGATesting -VpnServerConfiguration $vpnServerConfig -AuthenticationMethod EAPTLS +``` + +```output +ProfileUrl : https://nfvprodsuppby.blob.core.windows.net/vpnprofileimmutable/aa316f33-d0f6-4e61-994a-9aa24c0e5f70/vpnprofile/eb99aa3d-1106-49eb-9644-791c045c5cca/vpnclientconfiguration.zip?sv=2017-04-17&sr=b&sig=kZinevNqW + qsEAbWAcYiKfUHFxZzh2hwvtb49dfVtUDA%3D&st=2019-10-25T19%3A52%3A36Z&se=2019-10-25T20%3A52%3A36Z&sp=r&fileExtension=.zip +``` + +The above command will generate and returns SAS Url for customer to download the Vpn profile at VirtualWan-VpnServerConfiguration level for Point to site client setup. + + +#### New-AzVpnClientConfiguration + +#### SYNOPSIS +This command allows the users to create the Vpn profile package based on pre-configured vpn settings on the VPN gateway, in addition to some additional settings that users may need to configure, for e.g. some root certificates. + +#### SYNTAX + +```powershell +New-AzVpnClientConfiguration [-Name ] -ResourceGroupName [-ProcessorArchitecture ] + [-AuthenticationMethod ] [-RadiusRootCertificateFile ] + [-ClientRootCertificateFileList ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzVpnClientConfiguration -ResourceGroupName "ContosoResourceGroup" -Name "ContosoVirtualNetworkGateway" -AuthenticationMethod "EAPTLS" -RadiusRootCertificateFile "C:\Users\Test\Desktop\VpnProfileRadiusCert.cer" +``` + +This cmdlet is used to create a VPN client profile zip file for "ContosoVirtualNetworkGateway" in ResourceGroup "ContosoResourceGroup". The profile is generated for a pre-configured radius server that is configured to use "EAPTLS" authentication method with the VpnProfileRadiusCert certificate file. + + +#### Get-AzVpnClientConfiguration + +#### SYNOPSIS +Allows users to easily download the Vpn Profile package that was generated using the New-AzVpnClientConfiguration cmdlet. + +#### SYNTAX + +```powershell +Get-AzVpnClientConfiguration [-Name ] -ResourceGroupName + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzVpnClientConfiguration -Name "ContosoVirtualNetworkGateway" -ResourceGroupName "ContosoResourceGroup" -AuthenticationMethod "EAPTLS" -RadiusRootCertificateFile "C:\Users\Test\Desktop\VpnProfileRadiusCert.cer" + +Get-AzVpnClientConfiguration -Name "ContosoVirtualNetworkGateway" -ResourceGroupName "ContosoResourceGroup" +``` + +Gets the URL to download a VpnClient profile that has been previously generated using the New-AzVpnClientConfiguration command. + + +#### New-AzVpnClientConnectionConfiguration + +#### SYNOPSIS +Create Virtual Network Gateway Connection configuration + +#### SYNTAX + +```powershell +New-AzVpnClientConnectionConfiguration -Name + -VirtualNetworkGatewayPolicyGroup -VpnClientAddressPool + [-AsJob] [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$member1=New-AzVirtualNetworkGatewayPolicyGroupMember -Name "member1" -AttributeType "CertificateGroupId" -AttributeValue "ab" +$member2=New-AzVirtualNetworkGatewayPolicyGroupMember -Name "member2" -AttributeType "CertificateGroupId" -AttributeValue "cd" +$policyGroup1=New-AzVirtualNetworkGatewayPolicyGroup -Name "policyGroup1" -Priority 0 -DefaultPolicyGroup -PolicyMember $member1 +$policyGroup2=New-AzVirtualNetworkGatewayPolicyGroup -Name "policyGroup2" -Priority 10 -PolicyMember $member2 +$vngconnectionConfig=New-AzVpnClientConnectionConfiguration -Name "config1" -VirtualNetworkGatewayPolicyGroup $policyGroup1 -VpnClientAddressPool "192.168.10.0/24" +$vngconnectionConfig2=New-AzVpnClientConnectionConfiguration -Name "config2" -VirtualNetworkGatewayPolicyGroup $policyGroup2 -VpnClientAddressPool "192.168.20.0/24" +``` + +Create Client Connection configuration + + +#### New-AzVpnClientIpsecParameter + +#### SYNOPSIS +This command allows the users to create the Vpn ipsec parameters object specifying one or all values such as IpsecEncryption,IpsecIntegrity,IkeEncryption,IkeIntegrity,DhGroup,PfsGroup to set on the existing VPN gateway. + +#### SYNTAX + +```powershell +New-AzVpnClientIpsecParameter [-SALifeTime ] [-SADataSize ] [-IpsecEncryption ] + [-IpsecIntegrity ] [-IkeEncryption ] [-IkeIntegrity ] [-DhGroup ] + [-PfsGroup ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$vpnclientipsecparams1 = New-AzVpnClientIpsecParameter -IpsecEncryption AES256 -IpsecIntegrity SHA256 -SALifeTime 86473 -SADataSize 429498 -IkeEncryption AES256 -IkeIntegrity SHA384 -DhGroup DHGroup2 -PfsGroup PFS2 +$setvpnIpsecParams = Set-AzVpnClientIpsecParameter -VirtualNetworkGatewayName $rname -ResourceGroupName $rgname -VpnClientIPsecParameter $vpnclientipsecparams1 +``` + +New-AzVpnClientIpsecParameter cmdlet is used to create the vpn ipsec parameters object of using the passed one or all parameters' values which user can set for any existing Virtual network gateway in ResourceGroup. +This created VpnClientIPsecParameters object is passed to Set-AzVpnClientIpsecParameter command to set the specified Vpn ipsec custom policy on Virtual network gateway as shown in above example. This command returns object of VpnClientIPsecParameters which shows set parameters. + + +#### Get-AzVpnClientIpsecParameter + +#### SYNOPSIS +Gets the vpn Ipsec parameters set on Virtual Network Gateway for Point to site connections. + +#### SYNTAX + +```powershell +Get-AzVpnClientIpsecParameter [-Name ] -ResourceGroupName + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Gets the vpn Ipsec parameters set on Virtual Network Gateway for Point to site connections. +```powershell +$VpnClientIPsecParameters = Get-AzVpnClientIpsecParameter -Name myGateway -ResourceGroupName myRG +``` + +Returns the object of the vpn ipsec parameters set on the Virtual Network Gateway with the name "myGateway" within the resource group "myRG" + + +#### Remove-AzVpnClientIpsecParameter + +#### SYNOPSIS +Removes Vpn custom ipsec policy set on Virtual Network Gateway resource. + +#### SYNTAX + ++ ByFactoryName (Default) +```powershell +Remove-AzVpnClientIpsecParameter -VirtualNetworkGatewayName -ResourceGroupName + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByFactoryObject +```powershell +Remove-AzVpnClientIpsecParameter -InputObject + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByResourceId +```powershell +Remove-AzVpnClientIpsecParameter -ResourceId [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1: Deletes the set vpn ipsec parameters set on the Virtual Network Gateway +```powershell +$delete = Remove-AzVpnClientIpsecParameter -VirtualNetworkGatewayName myGateway -ResourceGroupName myRG +``` + +Deletes the vpn custom ipsec parameters set on your Virtual Network Gateway with the name "myGateway" within the resource group "myRG". This command returns bool object showing if removal was successful or failed. +Note: This will result in setting default vpn ipsec policy on your Virtual Network Gateway. + + +#### Set-AzVpnClientIpsecParameter + +#### SYNOPSIS +Sets the vpn ipsec parameters for existing virtual network gateway. + +#### SYNTAX + ++ ByFactoryName (Default) +```powershell +Set-AzVpnClientIpsecParameter -VirtualNetworkGatewayName -ResourceGroupName + -VpnClientIPsecParameter [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByFactoryObject +```powershell +Set-AzVpnClientIpsecParameter -VirtualNetworkGatewayName -ResourceGroupName + -VpnClientIPsecParameter -InputObject + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByResourceId +```powershell +Set-AzVpnClientIpsecParameter -VirtualNetworkGatewayName -ResourceGroupName + -VpnClientIPsecParameter -ResourceId + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1: Sets a custom vpn ipsec policy to existing virtual network gateway. +```powershell +$vpnclientipsecparams = New-AzVpnClientIpsecParameter -IpsecEncryption AES256 -IpsecIntegrity SHA256 -SALifeTime 86473 -SADataSize 429498 -IkeEncryption AES256 -IkeIntegrity SHA384 -DhGroup DHGroup2 -PfsGroup PFS2 +$setvpnIpsecParams = Set-AzVpnClientIpsecParameter -VirtualNetworkGatewayName "ContosoLocalGateway" -ResourceGroupName "ContosoResourceGroup" -VpnClientIPsecParameter $vpnclientipsecparams +``` + +This example sets custom vpn ipsec policy to existing virtual network gateway named ContosoVirtualGateway from Resource group named ContosoResourceGroup. +New-AzVpnClientIpsecParameter cmdlet is used to create the vpn ipsec parameters object of using the passed one or all parameters' values which user can set for any existing Virtual network gateway in ResourceGroup. +This created VpnClientIPsecParameters object is passed to Set-AzVpnClientIpsecParameter command to set the specified Vpn ipsec custom policy on Virtual network gateway as shown in above example. This command returns object of VpnClientIPsecParameters which shows set parameters. + + +#### New-AzVpnClientIpsecPolicy + +#### SYNOPSIS +This command allows the users to create the Vpn ipsec policy object specifying one or all values such as IpsecEncryption,IpsecIntegrity,IkeEncryption,IkeIntegrity,DhGroup,PfsGroup to set on the VPN gateway. This command let output object is used to set vpn ipsec policy for both new / existing gateway. + +#### SYNTAX + +```powershell +New-AzVpnClientIpsecPolicy [-SALifeTime ] [-SADataSize ] [-IpsecEncryption ] + [-IpsecIntegrity ] [-IkeEncryption ] [-IkeIntegrity ] [-DhGroup ] + [-PfsGroup ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Define vpn ipsec policy object: +```powershell +$vpnclientipsecpolicy = New-AzVpnClientIpsecPolicy -IpsecEncryption AES256 -IpsecIntegrity SHA256 -SALifeTime 86472 -SADataSize 429497 -IkeEncryption AES256 -IkeIntegrity SHA256 -DhGroup DHGroup2 -PfsGroup None +``` + +This cmdlet is used to create the vpn ipsec policy object using the passed one or all parameters' values which user can pass to param:VpnClientIpsecPolicy of PS command let: New-AzVirtualNetworkGateway (New VPN Gateway creation) / Set-AzVirtualNetworkGateway (existing VPN Gateway update) in ResourceGroup : + ++ Example 2: Create new virtual network gateway with setting vpn custom ipsec policy: +```powershell +$vnetGateway = New-AzVirtualNetworkGateway -ResourceGroupName vnet-gateway -name myNGW -location $location -IpConfigurations $vnetIpConfig -GatewayType Vpn -VpnType RouteBased -GatewaySku VpnGw1 -VpnClientIpsecPolicy $vpnclientipsecpolicy +``` + +This cmdlet returns virtual network gateway object after creation. + ++ Example 3: Set vpn custom ipsec policy on existing virtual network gateway: +```powershell +$vnetGateway = Set-AzVirtualNetworkGateway -VirtualNetworkGateway $gateway -VpnClientIpsecPolicy $vpnclientipsecpolicy +``` + +This cmdlet returns virtual network gateway object after setting vpn custom ipsec policy. + ++ Example 4: Get virtual network gateway to see if vpn custom policy is set correctly: +```powershell +$gateway = Get-AzVirtualNetworkGateway -ResourceGroupName vnet-gateway -name myNGW +``` + +This cmdlet returns virtual network gateway object. + + +#### Get-AzVpnClientPackage + +#### SYNOPSIS +Gets information about a VPN client package. + +#### SYNTAX + +```powershell +Get-AzVpnClientPackage -ResourceGroupName -VirtualNetworkGatewayName + -ProcessorArchitecture [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Get information about a processor architecture VPN client package +```powershell +Get-AzVpnClientPackage -VirtualNetworkGatewayName "ContosoVirtualNetworkGateway" -ResourceGroupName "ContosoResourceGroup" -ProcessorArchitecture "Amd64" +``` + +This command gets information about the AMD64 VPN client packages stored on the virtual network gateway named ContosoVirtualNetworkGateway. +To get information about the x86 client packages, set the value of the *ProcessorArchitecture* parameter to x86. + + +#### New-AzVpnClientRevokedCertificate + +#### SYNOPSIS +Creates a new VPN client-revocation certificate. + +#### SYNTAX + +```powershell +New-AzVpnClientRevokedCertificate -Name -Thumbprint + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Create a new client-revoked certificate +```powershell +$Certificate = New-AzVpnClientRevokedCertificate -Name "ContosoClientRevokedCertificate" -Thumbprint "E3A38EBA60CAA1C162785A2E1C44A15AD450199C3" +``` + +This command creates a new client-revoked certificate and stores the certificate object in a variable named $Certificate. +This variable can then be used by the **New-AzVirtualNetworkGateway** cmdlet to add the certificate to a new virtual network gateway. + + +#### Add-AzVpnClientRevokedCertificate + +#### SYNOPSIS +Adds a VPN client-revocation certificate. + +#### SYNTAX + +```powershell +Add-AzVpnClientRevokedCertificate -VpnClientRevokedCertificateName -VirtualNetworkGatewayName + -ResourceGroupName -Thumbprint [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Add a new client-revocation certificate to a virtual network gateway +```powershell +Add-AzVpnClientRevokedCertificate -VirtualNetworkGatewayName "ContosoVirtualNetwork" -ResourceGroupName "ContosoResourceGroup" -VpnClientRevokedCertificateName "ContosoRevokedClientCertificate" -Thumbprint "E3A38EBA60CAA1C162785A2E1C44A15AD450199C3" +``` + +This command adds a new client-revocation certificate to the virtual network gateway named ContosoVirtualNetwork. +In order to add the certificate, you must specify both the certificate name and the certificate thumbprint. + + +#### Get-AzVpnClientRevokedCertificate + +#### SYNOPSIS +Gets information about VPN client-revocation certificates. + +#### SYNTAX + +```powershell +Get-AzVpnClientRevokedCertificate [-VpnClientRevokedCertificateName ] + -VirtualNetworkGatewayName -ResourceGroupName [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Get information about all client-revocation certificates +```powershell +Get-AzVpnClientRevokedCertificate -VirtualNetworkGatewayName "ContosoVirtualNetworkGateway" -ResourceGroupName "ContosoResourceGroup" +``` + +This command gets information about all the client-revocation certificates associated with the virtual network gateway named ContosoVirtualNetworkGateway. + ++ Example 2: Get information about specific client-revocation certificates +```powershell +Get-AzVpnClientRevokedCertificate -VirtualNetworkGatewayName "ContosoVirtualNetwork" -ResourceGroupName "ContosoResourceGroup" -VpnClientRevokedCertificateName "ContosoRevokedClientCertificate" +``` + +This command is a variation of the command shown in Example 1. +In this case, however, the *VpnClientRevokedCertificateName* parameter is used to limit the returned data to a specific client-revoked certificate: the certificate with the name ContosoRevokedClientCertificate. + + +#### Remove-AzVpnClientRevokedCertificate + +#### SYNOPSIS +Removes a VPN client-revocation certificate. + +#### SYNTAX + +```powershell +Remove-AzVpnClientRevokedCertificate -VpnClientRevokedCertificateName + -VirtualNetworkGatewayName -ResourceGroupName -Thumbprint + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Remove a client-revocation certificate from a virtual network gateway +```powershell +Remove-AzVpnClientRevokedCertificate -VirtualNetworkGatewayName "ContosoVirtualNetwork" -ResourceGroupName "ContosoResourceGroup" -VpnClientRevokedCertificateName "ContosoRevokedClientCertificate" -Thumbprint "E3A38EBA60CAA1C162785A2E1C44A15AD450199C3" +``` + +This command removes a client-revocation certificate from a virtual network gateway named ContosoVirtualNetwork. +In order to remove a client-revocation certificate, you must specify both the certificate name and the certificate thumbprint. + + +#### New-AzVpnClientRootCertificate + +#### SYNOPSIS +Creates a new VPN client root certificate. + +#### SYNTAX + +```powershell +New-AzVpnClientRootCertificate -Name -PublicCertData + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1: Create a client root certificate +```powershell +$Text = Get-Content -Path "C:\Azure\Certificates\ExportedCertificate.cer" +$CertificateText = for ($i=1; $i -lt $Text.Length -1 ; $i++){$Text[$i]} +$Certificate = New-AzVpnClientRootCertificate -PublicCertData $CertificateText -Name "ContosoClientRootCertificate" +``` + +This example creates a client root certificate and store the certificate object in a variable named $Certificate. +This variable can then be used by the **New-AzVirtualNetworkGateway** cmdlet to add a root certificate to a new virtual network gateway. +The first command uses the **Get-Content** cmdlet to get a previously exported text representation of the root certificate; that text data is stored in a variable named $Text. +The second command then uses a for loop to extract all the text except for the first line and the last line, storing the extracted text in a variable named $CertificateText. +The third command uses the **New-AzVpnClientRootCertificate** cmdlet to create the certificate, storing the created object in a variable named $Certificate. + + +#### Add-AzVpnClientRootCertificate + +#### SYNOPSIS +Adds a VPN client root certificate. + +#### SYNTAX + +```powershell +Add-AzVpnClientRootCertificate -VpnClientRootCertificateName -VirtualNetworkGatewayName + -ResourceGroupName -PublicCertData [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Add a client root certificate to a virtual gateway +```powershell +$Text = Get-Content -Path "C:\Azure\Certificates\ExportedCertificate.cer" +$CertificateText = for ($i=1; $i -lt $Text.Length -1 ; $i++){$Text[$i]} +Add-AzVpnClientRootCertificate -PublicCertData $CertificateText -ResourceGroupName "ContosoResourceGroup" -VirtualNetworkGatewayName "ContosoVirtualGateway" -VpnClientRootCertificateName "ContosoClientRootCertificate" +``` + +This example adds a client root certificate to a virtual gateway named ContosoVirtualGateway. +The first command uses the **Get-Content** cmdlet to get a previously-exported text representation of the root certificate and stores that text data the variable named $Text. +The second command then uses a for loop to extract all the text except for the first line and the last line. +The extracted text is stored in a variable named $CertificateText. +The third command then uses the text stored in $CertificateText with the **Add-AzVpnClientRootCertificate** cmdlet to add the root certificate to the gateway. + + +#### Get-AzVpnClientRootCertificate + +#### SYNOPSIS +Gets information about VPN root certificates. + +#### SYNTAX + +```powershell +Get-AzVpnClientRootCertificate [-VpnClientRootCertificateName ] -VirtualNetworkGatewayName + -ResourceGroupName [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Get information about all root certificates +```powershell +Get-AzVpnClientRootCertificate -VirtualNetworkGatewayName "ContosoVirtualNetwork" -ResourceGroupName "ContosoResourceGroup" +``` + +This command gets information about all the root certificates assigned to a virtual network gateway named ContosoVirtualNetwork. + ++ Example 2: Get information about specific root certificates +```powershell +Get-AzVpnClientRootCertificate -VirtualNetworkGatewayName "ContosoVirtualNetwork" -ResourceGroupName "ContosoResourceGroup" -VpnClientRootCertificateName "ContosoRootClientCertificate" +``` + +This command is a variation of the command shown in Example 1. +In this case, however, the *VpnClientRootCertificateName* parameter is included in order to limit the returned data to a specific root certificate: ContosoRootClientCertificate. + + +#### Remove-AzVpnClientRootCertificate + +#### SYNOPSIS +Removes an existing VPN client root certificate. + +#### SYNTAX + +```powershell +Remove-AzVpnClientRootCertificate -VpnClientRootCertificateName -VirtualNetworkGatewayName + -ResourceGroupName -PublicCertData [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1: Remove a client root certificate from a virtual network gateway +```powershell +$Text = Get-Content -Path "C:\Azure\Certificates\ExportedCertificate.cer" +$CertificateText = for ($i=1; $i -lt $Text.Length -1 ; $i++){$Text[$i]} +Remove-AzVpnClientRootCertificate -PublicCertData $CertificateText -ResourceGroupName "ContosoResourceGroup" -VirtualNetworkGatewayName "ContosoVirtualGateway" -VpnClientRootCertificateName "ContosoRootCertificate" +``` + +This example removes a client root certificate named ContosoRootCertificate from the virtual network gateway ContosoVirtualGateway. +The first command uses the **Get-Content** cmdlet to get a previously-exported text representation of the certificate; this text representation is stored in a variable named $Text. +The second command then uses a for loop to extract all the text in $Text except for the first line and the last line. +This extracted text is stored in a variable named $CertificateText. +The third command uses the information stored in the $CertificateText variable along with the **Remove-AzVpnClientRootCertificate** cmdlet to remove the certificate from the gateway. + + +#### New-AzVpnConnection + +#### SYNOPSIS +Creates a IPSec connection that connects a VpnGateway to a remote customer branch represented in RM as a VpnSite. + +#### SYNTAX + ++ ByVpnGatewayNameByVpnSiteObject (Default) +```powershell +New-AzVpnConnection -ResourceGroupName -ParentResourceName -Name + -VpnSite [-SharedKey ] [-ConnectionBandwidthInMbps ] + [-IpSecPolicy ] [-VpnConnectionProtocolType ] [-EnableBgp] [-UseLocalAzureIpAddress] + [-UsePolicyBasedTrafficSelectors] [-VpnSiteLinkConnection ] + [-EnableInternetSecurity] [-RoutingConfiguration ] + [-TrafficSelectorPolicy ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVpnGatewayNameByVpnSiteResourceId +```powershell +New-AzVpnConnection -ResourceGroupName -ParentResourceName -Name -VpnSiteId + [-SharedKey ] [-ConnectionBandwidthInMbps ] [-IpSecPolicy ] + [-VpnConnectionProtocolType ] [-EnableBgp] [-UseLocalAzureIpAddress] [-UsePolicyBasedTrafficSelectors] + [-VpnSiteLinkConnection ] [-EnableInternetSecurity] + [-RoutingConfiguration ] [-TrafficSelectorPolicy ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVpnGatewayObjectByVpnSiteObject +```powershell +New-AzVpnConnection -ParentObject -Name -VpnSite + [-SharedKey ] [-ConnectionBandwidthInMbps ] [-IpSecPolicy ] + [-VpnConnectionProtocolType ] [-EnableBgp] [-UseLocalAzureIpAddress] [-UsePolicyBasedTrafficSelectors] + [-VpnSiteLinkConnection ] [-EnableInternetSecurity] + [-RoutingConfiguration ] [-TrafficSelectorPolicy ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVpnGatewayObjectByVpnSiteResourceId +```powershell +New-AzVpnConnection -ParentObject -Name -VpnSiteId [-SharedKey ] + [-ConnectionBandwidthInMbps ] [-IpSecPolicy ] [-VpnConnectionProtocolType ] + [-EnableBgp] [-UseLocalAzureIpAddress] [-UsePolicyBasedTrafficSelectors] + [-VpnSiteLinkConnection ] [-EnableInternetSecurity] + [-RoutingConfiguration ] [-TrafficSelectorPolicy ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVpnGatewayResourceIdByVpnSiteObject +```powershell +New-AzVpnConnection -ParentResourceId -Name -VpnSite [-SharedKey ] + [-ConnectionBandwidthInMbps ] [-IpSecPolicy ] [-VpnConnectionProtocolType ] + [-EnableBgp] [-UseLocalAzureIpAddress] [-UsePolicyBasedTrafficSelectors] + [-VpnSiteLinkConnection ] [-EnableInternetSecurity] + [-RoutingConfiguration ] [-TrafficSelectorPolicy ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVpnGatewayResourceIdByVpnSiteResourceId +```powershell +New-AzVpnConnection -ParentResourceId -Name -VpnSiteId [-SharedKey ] + [-ConnectionBandwidthInMbps ] [-IpSecPolicy ] [-VpnConnectionProtocolType ] + [-EnableBgp] [-UseLocalAzureIpAddress] [-UsePolicyBasedTrafficSelectors] + [-VpnSiteLinkConnection ] [-EnableInternetSecurity] + [-RoutingConfiguration ] [-TrafficSelectorPolicy ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName testRG -Name myVirtualWAN -Location "West US" +$virtualHub = New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.0.1/24" +New-AzVpnGateway -ResourceGroupName "testRG" -Name "testvpngw" -VirtualHubId $virtualHub.Id -VpnGatewayScaleUnit 2 +$vpnGateway = Get-AzVpnGateway -ResourceGroupName "testRG" -Name "testvpngw" +$vpnSiteAddressSpaces = New-Object string[] 2 +$vpnSiteAddressSpaces[0] = "192.168.2.0/24" +$vpnSiteAddressSpaces[1] = "192.168.3.0/24" +$vpnSite = New-AzVpnSite -ResourceGroupName "testRG" -Name "testVpnSite" -Location "West US" -VirtualWan $virtualWan -IpAddress "1.2.3.4" -AddressSpace $vpnSiteAddressSpaces -DeviceModel "SomeDevice" -DeviceVendor "SomeDeviceVendor" -LinkSpeedInMbps "10" + +New-AzVpnConnection -ResourceGroupName $vpnGateway.ResourceGroupName -ParentResourceName $vpnGateway.Name -Name "testConnection" -VpnSite $vpnSite -ConnectionBandwidthInMbps 20 +``` + +```output +RemoteVpnSite : Microsoft.Azure.Commands.Network.Models.PSResourceId +SharedKey : +VpnConnectionProtocolType : IKEv2 +ConnectionStatus : +EgressBytesTransferred : 0 +IngressBytesTransferred : 0 +IpsecPolicies : {} +ConnectionBandwidth : 20 +EnableBgp : False +UseLocalAzureIpAddress : False +ProvisioningState : testConnection +Name : ps9709 +Etag : W/"4580a2e2-2fab-4cff-88eb-92013a76b5a8" +Id : /subscriptions/{subscriptionId}/resourceGroups/testRg/providers/Microsoft.Network/vpnGateways/testvpngw/vpnConnections/testConnection +RoutingConfiguration : { + "AssociatedRouteTable": { + "Id": "/subscriptions/{subscriptionId}/resourceGroups/testRg/providers/Microsoft.Network/virtualHubs/westushub/hubRouteTables/defaultRouteTable" + } + "PropagatedRouteTables": { + "Labels": [], + "Ids": [ + { + "Id": "/subscriptions/{subscriptionId}/resourceGroups/testRg/providers/Microsoft.Network/virtualHubs/westushub/hubRouteTables/defaultRouteTable" + } + ] + }, + "VnetRoutes": { + "StaticRoutes": [] + } + } +``` + +The above will create a resource group, Virtual WAN, Virtual Network, Virtual Hub and a VpnSite in West US in "testRG" resource group in Azure. +A VPN gateway will be created thereafter in the Virtual Hub with 2 scale units. + +Once the gateway has been created, it is connected to the VpnSite using the New-AzVpnConnection command. + ++ Example 2 +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName testRG -Name myVirtualWAN -Location "West US" +$virtualHub = New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.0.1/24" +New-AzVpnGateway -ResourceGroupName "testRG" -Name "testvpngw" -VirtualHubId $virtualHub.Id -VpnGatewayScaleUnit 2 +$vpnGateway = Get-AzVpnGateway -ResourceGroupName "testRG" -Name "testvpngw" + +$vpnSiteAddressSpaces = New-Object string[] 2 +$vpnSiteAddressSpaces[0] = "192.168.2.0/24" +$vpnSiteAddressSpaces[1] = "192.168.3.0/24" + +$vpnSiteLink1 = New-AzVpnSiteLink -Name "testVpnSiteLink1" -IpAddress "15.25.35.45" -LinkProviderName "SomeTelecomProvider" -LinkSpeedInMbps "10" +$vpnSiteLink2 = New-AzVpnSiteLink -Name "testVpnSiteLink2" -IpAddress "15.25.35.55" -LinkProviderName "SomeTelecomProvider2" -LinkSpeedInMbps "100" +$vpnSite = New-AzVpnSite -ResourceGroupName "testRG" -Name "testVpnSite" -Location "West US" -VirtualWan $virtualWan -AddressSpace $vpnSiteAddressSpaces -DeviceModel "SomeDevice" -DeviceVendor "SomeDeviceVendor" -VpnSiteLink @($vpnSiteLink1, $vpnSiteLink2) + + +$vpnSiteLinkConnection1 = New-AzVpnSiteLinkConnection -Name "testLinkConnection1" -VpnSiteLink $vpnSite.VpnSiteLinks[0] -ConnectionBandwidth 100 +$vpnSiteLinkConnection2 = New-AzVpnSiteLinkConnection -Name "testLinkConnection2" -VpnSiteLink $vpnSite.VpnSiteLinks[1] -ConnectionBandwidth 10 + +New-AzVpnConnection -ResourceGroupName $vpnGateway.ResourceGroupName -ParentResourceName $vpnGateway.Name -Name "testConnection" -VpnSite $vpnSite -VpnSiteLinkConnection @($vpnSiteLinkConnection1, $vpnSiteLinkConnection2) +``` + +The above will create a resource group, Virtual WAN, Virtual Network, Virtual Hub and a VpnSite with 1 VpnSiteLinks in West US in "testRG" resource group in Azure. +A VPN gateway will be created thereafter in the Virtual Hub. +Once the gateway has been created, it is connected to the VpnSite using the New-AzVpnConnection command with 1 VpnSiteLinkConnections to the VpnSiteLink of the VpnSite. + + +#### Get-AzVpnConnection + +#### SYNOPSIS +Gets a vpn connection by name or lists all vpn connections connected to a VpnGateway. + +>[!NOTE] +> This Powershell command is for customers using Virtual WAN Site-to-site VPN Gateway only. + +#### SYNTAX + ++ ByVpnGatewayName (Default) +```powershell +Get-AzVpnConnection -ResourceGroupName -ParentResourceName [-Name ] + [-DefaultProfile ] [] +``` + ++ ByVpnGatewayObject +```powershell +Get-AzVpnConnection -ParentObject [-Name ] [-DefaultProfile ] + [] +``` + ++ ByVpnGatewayResourceId +```powershell +Get-AzVpnConnection -ParentResourceId [-Name ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName testRG -Name myVirtualWAN -Location "West US" +$virtualHub = New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.0.1/24" +New-AzVpnGateway -ResourceGroupName "testRG" -Name "testvpngw" -VirtualHubId $virtualHub.Id -VpnGatewayScaleUnit 2 +$vpnGateway = Get-AzVpnGateway -ResourceGroupName "testRG" -Name "testvpngw" + +$vpnSiteAddressSpaces = New-Object string[] 2 +$vpnSiteAddressSpaces[0] = "192.168.2.0/24" +$vpnSiteAddressSpaces[1] = "192.168.3.0/24" + +$vpnSite = New-AzVpnSite -ResourceGroupName "testRG" -Name "testVpnSite" -Location "West US" -VirtualWan $virtualWan -IpAddress "1.2.3.4" -AddressSpace $vpnSiteAddressSpaces -DeviceModel "SomeDevice" -DeviceVendor "SomeDeviceVendor" -LinkSpeedInMbps "10" + +New-AzVpnConnection -ResourceGroupName $vpnGateway.ResourceGroupName -ParentResourceName $vpnGateway.Name -Name "testConnection" -VpnSite $vpnSite +Get-AzVpnConnection -ResourceGroupName $vpnGateway.ResourceGroupName -ParentResourceName $vpnGateway.Name -Name "testConnection" +``` + +```output +RemoteVpnSite : Microsoft.Azure.Commands.Network.Models.PSResourceId +SharedKey : +VpnConnectionProtocolType : IKEv2 +ConnectionStatus : +EgressBytesTransferred : 0 +IngressBytesTransferred : 0 +IpsecPolicies : {} +ConnectionBandwidth : 20 +EnableBgp : False +ProvisioningState : testConnection +Name : ps9709 +Etag : W/"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" +Id : /subscriptions/{subscriptionId}/resourceGroups/testRg/providers/Microsoft.Network/vpnGateways/testvpngw/vpnConnections/testConnection +RoutingConfiguration : { + "AssociatedRouteTable": { + "Id": "/subscriptions/{subscriptionId}/resourceGroups/testRg/providers/Microsoft.Network/virtualHubs/westushub/hubRouteTables/defaultRouteTable" + } + "PropagatedRouteTables": { + "Labels": [], + "Ids": [ + { + "Id": "/subscriptions/{subscriptionId}/resourceGroups/testRg/providers/Microsoft.Network/virtualHubs/westushub/hubRouteTables/defaultRouteTable" + } + ] + }, + "VnetRoutes": { + "StaticRoutes": [] + } + } +``` + +The above will create a resource group, Virtual WAN, Virtual Network, Virtual Hub and a VpnSite in West US in "testRG" resource group in Azure. +A VPN gateway will be created thereafter in the Virtual Hub with 2 scale units. + +Once the gateway has been created, it is connected to the VpnSite using the New-AzVpnConnection command. + +Then it gets the connection using the connection name. + ++ Example 2 + +```powershell +Get-AzVpnConnection -ResourceGroupName ps9361 -ParentResourceName testvpngw -Name test* +``` + +```output +RemoteVpnSite : Microsoft.Azure.Commands.Network.Models.PSResourceId +SharedKey : +VpnConnectionProtocolType : IKEv2 +ConnectionStatus : +EgressBytesTransferred : 0 +IngressBytesTransferred : 0 +IpsecPolicies : {} +ConnectionBandwidth : 20 +EnableBgp : False +ProvisioningState : testConnection +Name : ps9709 +Etag : W/"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" +Id : /subscriptions/{subscriptionId}/resourceGroups/testRg/providers/Microsoft.Network/vpnGateways/testvpngw/vpnConnections/testConnection1 +RoutingConfiguration : { + "AssociatedRouteTable": { + "Id": "/subscriptions/{subscriptionId}/resourceGroups/testRg/providers/Microsoft.Network/virtualHubs/westushub/hubRouteTables/defaultRouteTable" + } + "PropagatedRouteTables": { + "Labels": [], + "Ids": [ + { + "Id": "/subscriptions/{subscriptionId}/resourceGroups/testRg/providers/Microsoft.Network/virtualHubs/westushub/hubRouteTables/defaultRouteTable" + } + ] + }, + "VnetRoutes": { + "StaticRoutes": [] + } + } + +RemoteVpnSite : Microsoft.Azure.Commands.Network.Models.PSResourceId +SharedKey : +VpnConnectionProtocolType : IKEv2 +ConnectionStatus : +EgressBytesTransferred : 0 +IngressBytesTransferred : 0 +IpsecPolicies : {} +ConnectionBandwidth : 20 +EnableBgp : False +ProvisioningState : testConnection +Name : ps9709 +Etag : W/"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" +Id : /subscriptions/{subscriptionId}/resourceGroups/testRg/providers/Microsoft.Network/vpnGateways/testvpngw/vpnConnections/testConnection2 +RoutingConfiguration : { + "AssociatedRouteTable": { + "Id": "/subscriptions/{subscriptionId}/resourceGroups/testRg/providers/Microsoft.Network/virtualHubs/westushub/hubRouteTables/defaultRouteTable" + } + "PropagatedRouteTables": { + "Labels": [], + "Ids": [ + { + "Id": "/subscriptions/{subscriptionId}/resourceGroups/testRg/providers/Microsoft.Network/virtualHubs/westushub/hubRouteTables/defaultRouteTable" + } + ] + }, + "VnetRoutes": { + "StaticRoutes": [] + } + } +``` + +This cmdlet gets all connections that start with "test". + + +#### Remove-AzVpnConnection + +#### SYNOPSIS +Removes a VpnConnection. + +#### SYNTAX + ++ ByVpnConnectionName (Default) +```powershell +Remove-AzVpnConnection -ResourceGroupName -ParentResourceName -Name [-Force] + [-PassThru] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + ++ ByVpnConnectionResourceId +```powershell +Remove-AzVpnConnection -ResourceId [-Force] [-PassThru] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVpnConnectionObject +```powershell +Remove-AzVpnConnection -InputObject [-Force] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName testRG -Name myVirtualWAN -Location "West US" +$virtualHub = New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.0.1/24" +New-AzVpnGateway -ResourceGroupName "testRG" -Name "testvpngw" -VirtualHubId $virtualHub.Id -VpnGatewayScaleUnit 2 +$vpnGateway = Get-AzVpnGateway -ResourceGroupName "testRG" -Name "testvpngw" + +$vpnSiteAddressSpaces = New-Object string[] 2 +$vpnSiteAddressSpaces[0] = "192.168.2.0/24" +$vpnSiteAddressSpaces[1] = "192.168.3.0/24" + +$vpnSite = New-AzVpnSite -ResourceGroupName "testRG" -Name "testVpnSite" -Location "West US" -VirtualWan $virtualWan -IpAddress "1.2.3.4" -AddressSpace $vpnSiteAddressSpaces -DeviceModel "SomeDevice" -DeviceVendor "SomeDeviceVendor" -LinkSpeedInMbps "10" + +New-AzVpnConnection -ResourceGroupName $vpnGateway.ResourceGroupName -ParentResourceName $vpnGateway.Name -Name "testConnection" -VpnSite $vpnSite +Remove-AzVpnConnection -ResourceGroupName $vpnGateway.ResourceGroupName -ParentResourceName $vpnGateway.Name -Name "testConnection" +``` + +The above will create a resource group, Virtual WAN, Virtual Network, Virtual Hub and a VpnSite in West US in "testRG" resource group in Azure. +A VPN gateway will be created thereafter in the Virtual Hub with 2 scale units. + +Once the gateway has been created, it is connected to the VpnSite using the New-AzVpnConnection command. + +Then it removes the connection using the connection name. + ++ Example 2 + +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName testRG -Name myVirtualWAN -Location "West US" +$virtualHub = New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.0.1/24" +New-AzVpnGateway -ResourceGroupName "testRG" -Name "testvpngw" -VirtualHubId $virtualHub.Id -VpnGatewayScaleUnit 2 +$vpnGateway = Get-AzVpnGateway -ResourceGroupName "testRG" -Name "testvpngw" + +$vpnSiteAddressSpaces = New-Object string[] 2 +$vpnSiteAddressSpaces[0] = "192.168.2.0/24" +$vpnSiteAddressSpaces[1] = "192.168.3.0/24" + +$vpnSite = New-AzVpnSite -ResourceGroupName "testRG" -Name "testVpnSite" -Location "West US" -VirtualWan $virtualWan -IpAddress "1.2.3.4" -AddressSpace $vpnSiteAddressSpaces -DeviceModel "SomeDevice" -DeviceVendor "SomeDeviceVendor" -LinkSpeedInMbps "10" + +New-AzVpnConnection -ResourceGroupName $vpnGateway.ResourceGroupName -ParentResourceName $vpnGateway.Name -Name "testConnection" -VpnSite $vpnSite +Get-AzVpnConnection -ResourceGroupName $vpnGateway.ResourceGroupName -ParentResourceName $vpnGateway.Name -Name "testConnection" | Remove-AzVpnConnection +``` + +Same as example 1, but it now removes the connection using the piped object from Get-AzVpnConnection. + + +#### Update-AzVpnConnection + +#### SYNOPSIS +Updates a VPN connection. + +#### SYNTAX + ++ ByVpnConnectionName (Default) +```powershell +Update-AzVpnConnection -ResourceGroupName -ParentResourceName -Name + [-SharedKey ] [-ConnectionBandwidthInMbps ] [-IpSecPolicy ] + [-EnableBgp ] [-UseLocalAzureIpAddress ] [-UsePolicyBasedTrafficSelectors ] + [-VpnSiteLinkConnection ] [-EnableInternetSecurity ] + [-RoutingConfiguration ] [-VpnLinkConnectionMode ] + [-TrafficSelectorPolicy ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVpnConnectionResourceId +```powershell +Update-AzVpnConnection -ResourceId [-SharedKey ] [-ConnectionBandwidthInMbps ] + [-IpSecPolicy ] [-EnableBgp ] [-UseLocalAzureIpAddress ] + [-UsePolicyBasedTrafficSelectors ] [-VpnSiteLinkConnection ] + [-EnableInternetSecurity ] [-RoutingConfiguration ] + [-VpnLinkConnectionMode ] [-TrafficSelectorPolicy ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVpnConnectionObject +```powershell +Update-AzVpnConnection -InputObject [-SharedKey ] + [-ConnectionBandwidthInMbps ] [-IpSecPolicy ] [-EnableBgp ] + [-UseLocalAzureIpAddress ] [-UsePolicyBasedTrafficSelectors ] + [-VpnSiteLinkConnection ] [-EnableInternetSecurity ] + [-RoutingConfiguration ] [-VpnLinkConnectionMode ] + [-TrafficSelectorPolicy ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName testRG -Name myVirtualWAN -Location "West US" +$virtualHub = New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.0.1/24" +New-AzVpnGateway -ResourceGroupName "testRG" -Name "testvpngw" -VirtualHubId $virtualHub.Id -VpnGatewayScaleUnit 2 +$vpnGateway = Get-AzVpnGateway -ResourceGroupName "testRG" -Name "testvpngw" +$vpnSiteAddressSpaces = New-Object string[] 2 +$vpnSiteAddressSpaces[0] = "192.168.2.0/24" +$vpnSiteAddressSpaces[1] = "192.168.3.0/24" +$vpnSite = New-AzVpnSite -ResourceGroupName "testRG" -Name "testVpnSite" -Location "West US" -VirtualWan $virtualWan -IpAddress "1.2.3.4" -AddressSpace $vpnSiteAddressSpaces -DeviceModel "SomeDevice" -DeviceVendor "SomeDeviceVendor" -LinkSpeedInMbps "10" +$vpnConnection = New-AzVpnConnection -ResourceGroupName $vpnGateway.ResourceGroupName -ParentResourceName $vpnGateway.Name -Name "testConnection" -VpnSite $vpnSite +$ipsecPolicy = New-AzIpsecPolicy -SALifeTimeSeconds 1000 -SADataSizeKilobytes 2000 -IpsecEncryption "GCMAES256" -IpsecIntegrity "GCMAES256" -IkeEncryption "AES256" -IkeIntegrity "SHA256" -DhGroup "DHGroup14" -PfsGroup "PFS2048" +Update-AzVpnConnection -InputObject $vpnConnection -IpSecPolicy $ipsecPolicy +``` + +```output +RemoteVpnSite : Microsoft.Azure.Commands.Network.Models.PSResourceId +SharedKey : +VpnConnectionProtocolType : IKEv2 +ConnectionStatus : +EgressBytesTransferred : 0 +IngressBytesTransferred : 0 +IpsecPolicies : {Microsoft.Azure.Commands.Network.Models.PSIpsecPolicy} +ConnectionBandwidth : 20 +EnableBgp : False +UseLocalAzureIpAddress : False +ProvisioningState : testConnection +Name : ps9709 +Etag : W/"4580a2e2-2fab-4cff-88eb-92013a76b5a8" +Id : /subscriptions/{subscriptionId}/resourceGroups/ps9361/providers/Microsoft.Network/vpnGateways/testvpngw/vpnConnections/testConnection +RoutingConfiguration : { + "AssociatedRouteTable": { + "Id": "/subscriptions/{subscriptionId}/resourceGroups/testRg/providers/Microsoft.Network/virtualHubs/westushub/hubRouteTables/defaultRouteTable" + } + "PropagatedRouteTables": { + "Labels": [], + "Ids": [ + { + "Id": "/subscriptions/{subscriptionId}/resourceGroups/testRg/providers/Microsoft.Network/virtualHubs/westushub/hubRouteTables/defaultRouteTable" + } + ] + }, + "VnetRoutes": { + "StaticRoutes": [] + } + } +``` + +The above will create a resource group, Virtual WAN, Virtual Network, Virtual Hub and a VpnSite in West US in "testRG" resource group in Azure. +A VPN gateway will be created thereafter in the Virtual Hub with 2 scale units. + +Once the gateway has been created, it is connected to the VpnSite using the New-AzVpnConnection command. + +The connection is then updated to have a new IpSecPolicy by using the Set-AzVpnConnection command. + ++ Example 2 + +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName testRG -Name myVirtualWAN -Location "West US" +$virtualHub = New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.0.1/24" +New-AzVpnGateway -ResourceGroupName "testRG" -Name "testvpngw" -VirtualHubId $virtualHub.Id -VpnGatewayScaleUnit 2 +$vpnGateway = Get-AzVpnGateway -ResourceGroupName "testRG" -Name "testvpngw" +$vpnSiteAddressSpaces = New-Object string[] 2 +$vpnSiteAddressSpaces[0] = "192.168.2.0/24" +$vpnSiteAddressSpaces[1] = "192.168.3.0/24" +$vpnSite = New-AzVpnSite -ResourceGroupName "testRG" -Name "testVpnSite" -Location "West US" -VirtualWan $virtualWan -IpAddress "1.2.3.4" -AddressSpace $vpnSiteAddressSpaces -DeviceModel "SomeDevice" -DeviceVendor "SomeDeviceVendor" -LinkSpeedInMbps "10" +$vpnConnection = New-AzVpnConnection -ResourceGroupName $vpnGateway.ResourceGroupName -ParentResourceName $vpnGateway.Name -Name "testConnection" -VpnSite $vpnSite +$Secure_String_Pwd = Read-Host -AsSecureString +Update-AzVpnConnection -InputObject $vpnConnection -SharedKey $Secure_String_Pwd +``` + +```output +RemoteVpnSite : Microsoft.Azure.Commands.Network.Models.PSResourceId +SharedKey : +VpnConnectionProtocolType : IKEv2 +ConnectionStatus : +EgressBytesTransferred : 0 +IngressBytesTransferred : 0 +IpsecPolicies : {Microsoft.Azure.Commands.Network.Models.PSIpsecPolicy} +ConnectionBandwidth : 20 +EnableBgp : False +UseLocalAzureIpAddress : False +ProvisioningState : testConnection +Name : ps9709 +Etag : W/"4580a2e2-2fab-4cff-88eb-92013a76b5a8" +Id : /subscriptions/{subscriptionId}/resourceGroups/ps9361/providers/Microsoft.Network/vpnGateways/testvpngw/vpnConnections/testConnection +RoutingConfiguration : { + "AssociatedRouteTable": { + "Id": "/subscriptions/{subscriptionId}/resourceGroups/testRg/providers/Microsoft.Network/virtualHubs/westushub/hubRouteTables/defaultRouteTable" + } + "PropagatedRouteTables": { + "Labels": [], + "Ids": [ + { + "Id": "/subscriptions/{subscriptionId}/resourceGroups/testRg/providers/Microsoft.Network/virtualHubs/westushub/hubRouteTables/defaultRouteTable" + } + ] + }, + "VnetRoutes": { + "StaticRoutes": [] + } + } +``` + +The above will create a resource group, Virtual WAN, Virtual Network, Virtual Hub and a VpnSite in West US in "testRG" resource group in Azure. +A VPN gateway will be created thereafter in the Virtual Hub with 2 scale units. + +Once the gateway has been created, it is connected to the VpnSite using the New-AzVpnConnection command. + +The connection is then updated to have a new shared key using the secure string construct. + + +#### Start-AzVpnConnectionPacketCapture + +#### SYNOPSIS +Starts Packet Capture Operation on a Vpn Connection. + +#### SYNTAX + ++ ByVpnConnectionName (Default) +```powershell +Start-AzVpnConnectionPacketCapture -ResourceGroupName -ParentResourceName -Name + [-FilterData ] -LinkConnectionName [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVpnConnectionObject +```powershell +Start-AzVpnConnectionPacketCapture -InputObject [-FilterData ] + -LinkConnectionName [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVpnConnectionResourceId +```powershell +Start-AzVpnConnectionPacketCapture -ResourceId [-FilterData ] -LinkConnectionName + [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Start-AzVpnConnectionPacketCapture -ResourceGroupName "PktCaptureTestSite2RG" -Name "PktCaptureTestSite2Site1Cn" -ParentResourceName "VpnGw1" -LinkConnectionName "PktCaptureTestSite2Site1CnLink1" +``` + +```output +Code : Succeeded +EndTime : 10/1/2019 12:52:37 AM +StartTime : 10/1/2019 12:52:25 AM +ResultsText : +LinkConnectionName: PktCaptureTestSite2Site1CnLink1 +ResourceGroupName : PktCaptureTestSite2RG +Location : centraluseuap +ResourceGuid : ac70028f-5b88-4ad4-93d3-0b9a9172c382 +Type : +Tag : +TagsTable : +Name : PktCaptureTestSite2Site1Cn +Etag : +Id : +``` + ++ Example 2 +```powershell +$a="{`"TracingFlags`":11,`"MaxPacketBufferSize`":120,`"MaxFileSize`":500,`"Filters`":[{`"SourceSubnets`":[`"10.19.0.4/32`",`"10.20.0.4/32`"],`"DestinationSubnets`":[`"10.20.0.4/32`",`"10.19.0.4/32`"],`"IpSubnetValueAsAny`":true,`"TcpFlags`":-1,`"PortValueAsAny`":true,`"CaptureSingleDirectionTrafficOnly`":true}]}" +Start-AzVpnConnectionPacketCapture -ResourceGroupName "PktCaptureTestSite2RG" -Name "PktCaptureTestSite2Site1Cn" -ParentResourceName "VpnGw1" -LinkConnectionName "PktCaptureTestSite2Site1CnLink1,PktCaptureTestSite2Site1CnLink1" -FilterData $a +``` + +```output +Code : Succeeded +EndTime : 10/1/2019 12:52:37 AM +StartTime : 10/1/2019 12:52:25 AM +ResultsText : +LinkConnectionName: PktCaptureTestSite2Site1CnLink1,PktCaptureTestSite2Site1CnLink1 +ResourceGroupName : PktCaptureTestSite2RG +Location : centraluseuap +ResourceGuid : ac70028f-5b88-4ad4-93d3-0b9a9172c382 +Type : +Tag : +TagsTable : +Name : PktCaptureTestSite2Site1Cn +Etag : +Id : +``` + + +#### Stop-AzVpnConnectionPacketCapture + +#### SYNOPSIS +Stops Packet Capture Operation on a Vpn connection + +#### SYNTAX + ++ ByVpnConnectionName (Default) +```powershell +Stop-AzVpnConnectionPacketCapture -ResourceGroupName -ParentResourceName -Name + -LinkConnectionName -SasUrl [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVpnConnectionObject +```powershell +Stop-AzVpnConnectionPacketCapture -InputObject -LinkConnectionName -SasUrl + [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVpnConnectionResourceId +```powershell +Stop-AzVpnConnectionPacketCapture -ResourceId -LinkConnectionName -SasUrl [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$rgname = "testRg" +$storeName = "teststorage" +$containerName = "packetcaptureresults" +$key = Get-AzStorageAccountKey -ResourceGroupName $rgname -Name $storeName +$context = New-AzStorageContext -StorageAccountName $storeName -StorageAccountKey $key[0].Value +New-AzStorageContainer -Name $containerName -Context $context +$container = Get-AzStorageContainer -Name $containerName -Context $context +$now = Get-Date +$sasurl = New-AzStorageContainerSASToken -Name $containerName -Context $context -Permission "rwd" -StartTime $now.AddHours(-1) -ExpiryTime $now.AddDays(1) -FullUri +Stop-AzVpnConnectionPacketCapture -ResourceGroupName $rgname -Name "testconn" -ParentResourceName "VpnGw1" -LinkConnectionName "SiteLink1,SiteLink2" -SasUrl $sasurl +``` + +```output +Code : Succeeded +EndTime : 10/1/2019 12:54:51 AM +StartTime : 10/1/2019 12:53:40 AM +ResultsText : +LinkConnectionName: SiteLink1,SiteLink2 +ResourceGroupName : testRg +Location : centraluseuap +ResourceGuid : ac70028f-5b88-4ad4-93d3-0b9a9172c382 +Type : +Tag : +TagsTable : +Name : testconn +Etag : +Id : +``` + ++ Example 2 +```powershell +$rgname = "testRg" +$storeName = "teststorage" +$containerName = "packetcaptureresults" +$key = Get-AzStorageAccountKey -ResourceGroupName $rgname -Name $storeName +$context = New-AzStorageContext -StorageAccountName $storeName -StorageAccountKey $key[0].Value +$container = Get-AzStorageContainer -Name $containerName -Context $context +$now = Get-Date +$sasurl = New-AzStorageContainerSASToken -Name $containerName -Context $context -Permission "rwd" -StartTime $now.AddHours(-1) -ExpiryTime $now.AddDays(1) -FullUri +$conn = Get-AzVpnConnection -name "testconn" -ResourceGroupName $rgname +Stop-AzVpnConnectionPacketCapture -InputObject $conn -SasUrl $sasurl -LinkConnectionName "SiteLink1,SiteLink2" +``` + +```output +Code : Succeeded +EndTime : 10/1/2019 12:54:51 AM +StartTime : 10/1/2019 12:53:40 AM +ResultsText : +LinkConnectionName: SiteLink1,SiteLink2 +ResourceGroupName : testRg +Location : centraluseuap +ResourceGuid : ac70028f-5b88-4ad4-93d3-0b9a9172c382 +Type : +Tag : +TagsTable : +Name : testconn +Etag : +Id : +``` + + +#### New-AzVpnGateway + +#### SYNOPSIS +Creates a Scalable VPN Gateway. + +#### SYNTAX + ++ ByVirtualHubName (Default) +```powershell +New-AzVpnGateway -ResourceGroupName -Name -VpnGatewayScaleUnit + -VirtualHubName [-VpnConnection ] [-EnableRoutingPreferenceInternetFlag] + [-EnableBgpRouteTranslationForNat] [-VpnGatewayNatRule ] [-Tag ] + [-Asn ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVirtualHubObject +```powershell +New-AzVpnGateway -ResourceGroupName -Name -VpnGatewayScaleUnit + -VirtualHub [-VpnConnection ] [-EnableRoutingPreferenceInternetFlag] + [-EnableBgpRouteTranslationForNat] [-VpnGatewayNatRule ] [-Tag ] + [-Asn ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVirtualHubResourceId +```powershell +New-AzVpnGateway -ResourceGroupName -Name -VpnGatewayScaleUnit + -VirtualHubId [-VpnConnection ] [-EnableRoutingPreferenceInternetFlag] + [-EnableBgpRouteTranslationForNat] [-VpnGatewayNatRule ] [-Tag ] + [-Asn ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName testRG -Name myVirtualWAN -Location "West US" +$virtualHub = New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.0.1/24" +New-AzVpnGateway -ResourceGroupName "testRG" -Name "testvpngw" -VirtualHubId $virtualHub.Id -VpnGatewayScaleUnit 2 -EnableRoutingPreferenceInternetFlag +``` + +```output +ResourceGroupName : testRG +Name : testvpngw +Id : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/vpnGateways/testvpngw +Location : West US +VpnGatewayScaleUnit : 2 +VirtualHub : /subscriptions/{subscriptionId}/resourceGroups/Ali_pS_Test/providers/Microsoft.Network/virtualHubs/westushub +BgpSettings : {} +Type : Microsoft.Network/vpnGateways +ProvisioningState : Succeeded +``` + +The above will create a resource group, Virtual WAN, Virtual Network, Virtual Hub in West US in "testRG" resource group in Azure. +A VPN gateway will be created thereafter in the Virtual Hub with 2 scale units. + + +#### Get-AzVpnGateway + +#### SYNOPSIS +Gets a VpnGateway resource using ResourceGroupName and GatewayName OR lists all gateways by ResourceGroupName or SubscriptionId. + +#### SYNTAX + ++ ListBySubscriptionId (Default) +```powershell +Get-AzVpnGateway [-DefaultProfile ] + [] +``` + ++ ListByResourceGroupName +```powershell +Get-AzVpnGateway [-ResourceGroupName ] [-Name ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName testRG -Name myVirtualWAN -Location "West US" +$virtualHub = New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.0.1/24" +New-AzVpnGateway -ResourceGroupName "testRG" -Name "testvpngw" -VirtualHubId $virtualHub.Id -VpnGatewayScaleUnit 2 +Get-AzVpnGateway -ResourceGroupName "testRG" -Name "testvpngw" +``` + +```output +ResourceGroupName : testRG +Name : testvpngw +Id : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/vpnGateways/testvpngw +Location : West US +VpnGatewayScaleUnit : 2 +VirtualHub : /subscriptions/{subscriptionId}/resourceGroups/Ali_pS_Test/providers/Microsoft.Network/virtualHubs/westushub +BgpSettings : {} +IpConfigurations : {Instance0, Instance1} +Type : Microsoft.Network/vpnGateways +ProvisioningState : Succeeded +``` + +The above will create a resource group, Virtual WAN, Virtual Network, Virtual Hub in West US in "testRG" resource group in Azure. +A VPN gateway will be created thereafter in the Virtual Hub with 2 scale units. + +It then gets the VpnGateway using its resourceGroupName and the gateway name. + ++ Example 2 + +```powershell +Get-AzVpnGateway -Name test* +``` + +```output +ResourceGroupName : testRG +Name : test1 +Id : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/vpnGateways/test1 +Location : West US +VpnGatewayScaleUnit : 2 +VirtualHub : /subscriptions/{subscriptionId}/resourceGroups/Ali_pS_Test/providers/Microsoft.Network/virtualHubs/westushub +BgpSettings : {} +IpConfigurations : {Instance0, Instance1} +Type : Microsoft.Network/vpnGateways +ProvisioningState : Succeeded + +ResourceGroupName : testRG +Name : test2 +Id : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/vpnGateways/test2 +Location : West US +VpnGatewayScaleUnit : 2 +VirtualHub : /subscriptions/{subscriptionId}/resourceGroups/Ali_pS_Test/providers/Microsoft.Network/virtualHubs/westushub +BgpSettings : {} +IpConfigurations : {Instance0, Instance1} +Type : Microsoft.Network/vpnGateways +ProvisioningState : Succeeded +``` + +This cmdlet gets all Gateways that start with "test". + + +#### Remove-AzVpnGateway + +#### SYNOPSIS +The Remove-AzVpnGateway cmdlet removes an Azure VPN gateway. This is a gateway specific to Azure Virtual WAN's software defined connectivity. + +#### SYNTAX + ++ ByVpnGatewayName (Default) +```powershell +Remove-AzVpnGateway -ResourceGroupName -Name [-PassThru] [-Force] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVpnGatewayObject +```powershell +Remove-AzVpnGateway -InputObject [-PassThru] [-Force] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVpnGatewayResourceId +```powershell +Remove-AzVpnGateway -ResourceId [-PassThru] [-Force] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName testRG -Name myVirtualWAN -Location "West US" +$virtualHub = New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.0.1/24" +New-AzVpnGateway -ResourceGroupName "testRG" -Name "testvpngw" -VirtualHubId $virtualHub.Id -VpnGatewayScaleUnit 2 +Remove-AzVpnGateway -ResourceGroupName "testRG" -Name "testvpngw" -Passthru +``` + +This example creates a Resource group, Virtual WAN, Virtual Hub, scalable VPN gateway in Central US and then immediately deletes it. +To suppress the prompt when deleting the Virtual Gateway, use the -Force flag. +This will delete the VpnGateway and all VpnConnections attached to it. + ++ Example 2 + +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName testRG -Name myVirtualWAN -Location "West US" +$virtualHub = New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.0.1/24" +New-AzVpnGateway -ResourceGroupName "testRG" -Name "testvpngw" -VirtualHubId $virtualHub.Id -VpnGatewayScaleUnit 2 +Get-AzVpnGateway -ResourceGroupName "testRG" -Name "testvpngw" | Remove-AzVpnGateway -Passthru +``` + +This example creates a Resource group, Virtual WAN, Virtual Hub, scalable VPN gateway in Central US and then immediately deletes it. +This deletion happens using powershell piping, which uses the VpnGateway object returned by the Get-AzVpnGateway command. +To suppress the prompt when deleting the Virtual Gateway, use the -Force flag. +This will delete the VpnGateway and all VpnConnections attached to it. + + +#### Reset-AzVpnGateway + +#### SYNOPSIS +Resets the scalable VPN gateway. + +#### SYNTAX + ++ ByVpnGatewayName (Default) +```powershell +Reset-AzVpnGateway -ResourceGroupName -Name [-IpConfigurationId ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVpnGatewayObject +```powershell +Reset-AzVpnGateway -InputObject [-IpConfigurationId ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVpnGatewayResourceId +```powershell +Reset-AzVpnGateway -ResourceId [-IpConfigurationId ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$Gateway = Get-AzVpnGateway -Name "ContosoVirtualGateway" -ResourceGroupName "RGName" +Reset-AzVpnGateway -VpnGateway $Gateway -IpConfigurationId "Instance0" +``` + + +#### Update-AzVpnGateway + +#### SYNOPSIS +Updates a scalable VPN gateway. + +#### SYNTAX + ++ ByVpnGatewayName (Default) +```powershell +Update-AzVpnGateway -ResourceGroupName -Name [-VpnConnection ] + [-VpnGatewayNatRule ] [-VpnGatewayScaleUnit ] + [-BgpPeeringAddress ] [-EnableBgpRouteTranslationForNat ] + [-Tag ] [-Asn ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVpnGatewayObject +```powershell +Update-AzVpnGateway -InputObject [-VpnConnection ] + [-VpnGatewayNatRule ] [-VpnGatewayScaleUnit ] + [-BgpPeeringAddress ] [-EnableBgpRouteTranslationForNat ] + [-Tag ] [-Asn ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVpnGatewayResourceId +```powershell +Update-AzVpnGateway -ResourceId [-VpnConnection ] + [-VpnGatewayNatRule ] [-VpnGatewayScaleUnit ] + [-BgpPeeringAddress ] [-EnableBgpRouteTranslationForNat ] + [-Tag ] [-Asn ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName testRG -Name myVirtualWAN -Location "West US" +$virtualHub = New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.0.1/24" +$vpnGateway = New-AzVpnGateway -ResourceGroupName "testRG" -Name "testvpngw" -VirtualHubId $virtualHub.Id -VpnGatewayScaleUnit 2 +Update-AzVpnGateway -ResourceGroupName "testRG" -Name "testvpngw" -VpnGatewayScaleUnit 3 +``` + +```output +ResourceGroupName : testRG +Name : testvpngw +Id : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/vpnGateways/testvpngw +Location : West US +VpnGatewayScaleUnit : 3 +VirtualHub : /subscriptions/{subscriptionId}/resourceGroups/Ali_pS_Test/providers/Microsoft.Network/virtualHubs/westushub +BgpSettings : {} +Type : Microsoft.Network/vpnGateways +ProvisioningState : Succeeded +``` + +The above will create a resource group, Virtual WAN, Virtual Network, Virtual Hub in West US in "testRG" resource group in Azure. +A VPN gateway will be created thereafter in the Virtual Hub with 2 scale units. + +After the gateway has been created, it uses Update-AzVpnGateway to upgrade the gateway to 3 scale units. + ++ Example 2 + +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName testRG -Name myVirtualWAN -Location "West US" +$virtualHub = New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.0.1/24" +$vpnGateway = New-AzVpnGateway -ResourceGroupName "testRG" -Name "testvpngw" -VirtualHubId $virtualHub.Id -VpnGatewayScaleUnit 2 +$ipconfigurationId1 = 'Instance0' +$addresslist1 = @('169.254.21.5') +$gw1ipconfBgp1 = New-AzIpConfigurationBgpPeeringAddressObject -IpConfigurationId $ipconfigurationId1 -CustomAddress $addresslist1 +$ipconfigurationId2 = 'Instance1' +$addresslist2 = @('169.254.21.10') +$gw1ipconfBgp2 = New-AzIpConfigurationBgpPeeringAddressObject -IpConfigurationId $ipconfigurationId2 -CustomAddress $addresslist2 +$gw = Get-AzVpnGateway -ResourceGroupName testRg -Name testgw +Update-AzVpnGateway -ResourceGroupName "testRG" -Name "testvpngw" -BgpPeeringAddress @($gw1ipconfBgp1,$gw1ipconfBgp2) +``` + +```output +ResourceGroupName : testRG +Name : testvpngw +Id : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/vpnGateways/testvpngw +Location : West US +VpnGatewayScaleUnit : 3 +VirtualHub : /subscriptions/{subscriptionId}/resourceGroups/Ali_pS_Test/providers/Microsoft.Network/virtualHubs/westushub +BgpSettings : {} +Type : Microsoft.Network/vpnGateways +ProvisioningState : Succeeded +``` + +The above will create a resource group, Virtual WAN, Virtual Network, Virtual Hub in West US in "testRG" resource group in Azure. +A VPN gateway will be created thereafter in the Virtual Hub with 2 scale units. + +After the gateway has been created, it uses Set-AzVpnGateway to update BgpPeeringAddress. + ++ Example 3 + +```powershell +$gw = Get-AzVpnGateway -ResourceGroupName "testRg" -Name "testgw" +$gw.BgpSettings.BgpPeeringAddresses +$gw.BgpSettings.BgpPeeringAddresses[0].CustomBgpIpAddresses=$null +$gw.BgpSettings.BgpPeeringAddresses[1].CustomBgpIpAddresses=$null +$gw.BgpSettings.BgpPeeringAddresses +Update-AzVpnGateway -InputObject $gw +``` + +The above example will update the Virtual WAN VPN Gateway to use the default BgpPeeringAddress. + ++ Example 4 + +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName testRG -Name myVirtualWAN -Location "West US" +$virtualHub = New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.0.1/24" +$vpnGateway = New-AzVpnGateway -ResourceGroupName "testRG" -Name "testvpngw" -VirtualHubId $virtualHub.Id -VpnGatewayScaleUnit 2 +$ipconfigurationId1 = 'Instance0' +$addresslist1 = @() +$gw1ipconfBgp1 = New-AzIpConfigurationBgpPeeringAddressObject -IpConfigurationId $ipconfigurationId1 -CustomAddress $addresslist1 +$ipconfigurationId2 = 'Instance1' +$addresslist2 = @() +$gw1ipconfBgp2 = New-AzIpConfigurationBgpPeeringAddressObject -IpConfigurationId $ipconfigurationId2 -CustomAddress $addresslist2 +$gw = Get-AzVpnGateway -ResourceGroupName testRg -Name testgw +Update-AzVpnGateway -ResourceGroupName "testRG" -Name "testvpngw" -BgpPeeringAddress @($gw1ipconfBgp1,$gw1ipconfBgp2) +``` + +The above example will update the Virtual WAN VPN Gateway to use the default BgpPeeringAddress. + +It uses Update-AzVpnGateway to update BgpPeeringAddress + + +#### New-AzVpnGatewayNatRule + +#### SYNOPSIS +Creates a NAT rule on a VpnGateway which can be associated with VpnSiteLinkConnection. + +#### SYNTAX + ++ ByVpnGatewayName (Default) +```powershell +New-AzVpnGatewayNatRule -ResourceGroupName -ParentResourceName -Name + [-Type ] [-Mode ] -InternalMapping -ExternalMapping + [-InternalPortRange ] [-ExternalPortRange ] [-IpConfigurationId ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVpnGatewayObject +```powershell +New-AzVpnGatewayNatRule -ParentObject -Name [-Type ] [-Mode ] + -InternalMapping -ExternalMapping [-InternalPortRange ] + [-ExternalPortRange ] [-IpConfigurationId ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVpnGatewayResourceId +```powershell +New-AzVpnGatewayNatRule -ParentResourceId -Name [-Type ] [-Mode ] + -InternalMapping -ExternalMapping [-InternalPortRange ] + [-ExternalPortRange ] [-IpConfigurationId ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName testRG -Name myVirtualWAN -Location "West US" +$virtualHub = New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.0.1/24" +New-AzVpnGateway -ResourceGroupName "testRG" -Name "testvpngw" -VirtualHubId $virtualHub.Id -VpnGatewayScaleUnit 2 +$vpnGateway = Get-AzVpnGateway -ResourceGroupName "testRG" -Name "testvpngw" + +New-AzVpnGatewayNatRule -ResourceGroupName $vpnGateway.ResourceGroupName -ParentResourceName $vpnGateway.Name -Name "testNatRule" -Type Static -Mode EgressSnat -InternalMapping "10.0.0.1/26" -ExternalMapping "192.168.0.0/26" -InternalPortRange "100-100" -ExternalPortRange "200-200" +``` + +```output +Type : Static +Mode : EgressSnat +VpnConnectionProtocolType : IKEv2 +InternalMappings : 10.0.0.1/26 +ExternalMappings : 192.168.0.0/26 +InternalPortRange : 100-100 +ExternalPortRange : 200-200 +IpConfigurationId : +IngressVpnSiteLinkConnections : [Microsoft.Azure.Commands.Network.Models.PSResourceId] +EgressVpnSiteLinkConnections : [Microsoft.Azure.Commands.Network.Models.PSResourceId] +ProvisioningState : Provisioned +Name : ps9709 +Etag : W/"4580a2e2-2fab-4cff-88eb-92013a76b5a8" +Id : /subscriptions/{subscriptionId}/resourceGroups/testRg/providers/Microsoft.Network/vpnGateways/testvpngw/natRules/testNatRule +``` + +The above will create a resource group, Virtual WAN, Virtual Network, Virtual Hub. Then, we will create VpnGateway under that Virtual Hub. Then, using this command: New-AzVpnGatewayNatRule, NAT rule can be created and associated with created VpnGateway. + + +#### Get-AzVpnGatewayNatRule + +#### SYNOPSIS +Gets a NAT rule associated with VpnGateway. + +#### SYNTAX + ++ ByVpnGatewayName (Default) +```powershell +Get-AzVpnGatewayNatRule -ResourceGroupName -ParentResourceName [-Name ] + [-DefaultProfile ] [] +``` + ++ ByVpnGatewayObject +```powershell +Get-AzVpnGatewayNatRule -ParentObject [-Name ] + [-DefaultProfile ] [] +``` + ++ ByVpnGatewayResourceId +```powershell +Get-AzVpnGatewayNatRule -ParentResourceId [-Name ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example + +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName testRG -Name myVirtualWAN -Location "West US" +$virtualHub = New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.0.1/24" +New-AzVpnGateway -ResourceGroupName "testRG" -Name "testvpngw" -VirtualHubId $virtualHub.Id -VpnGatewayScaleUnit 2 +$vpnGateway = Get-AzVpnGateway -ResourceGroupName "testRG" -Name "testvpngw" +New-AzVpnGatewayNatRule -ResourceGroupName $vpnGateway.ResourceGroupName -ParentResourceName $vpnGateway.Name -Name "testNatRule" -Type Static -Mode EgressSnat -InternalMapping "10.0.0.1/26" -ExternalMapping "192.168.0.0/26" +Get-AzVpnGatewayNatRule -ResourceGroupName $vpnGateway.ResourceGroupName -ParentResourceName $vpnGateway.Name -Name "testNatRule" +``` + +```output +Type : Static +Mode : EgressSnat +VpnConnectionProtocolType : IKEv2 +InternalMappings : 10.0.0.1/26 +ExternalMappings : 192.168.0.0/26 +IpConfigurationId : +IngressVpnSiteLinkConnections : [Microsoft.Azure.Commands.Network.Models.PSResourceId] +EgressVpnSiteLinkConnections : [Microsoft.Azure.Commands.Network.Models.PSResourceId] +ProvisioningState : Provisioned +Name : ps9709 +Etag : W/"4580a2e2-2fab-4cff-88eb-92013a76b5a8" +Id : /subscriptions/{subscriptionId}/resourceGroups/testRg/providers/Microsoft.Network/vpnGateways/testvpngw/natRules/testNatRule +``` + +The above will create a resource group, Virtual WAN, Virtual Network, Virtual Hub and VpnGateway & a NAT rule associated with Vpngateway. +Then it gets the NAT rule using the NAT rule name. + + +#### Remove-AzVpnGatewayNatRule + +#### SYNOPSIS +Removes a NAT rule associated with VpnGateway. + +#### SYNTAX + ++ ByVpnGatewayNatRuleName (Default) +```powershell +Remove-AzVpnGatewayNatRule -ResourceGroupName -ParentResourceName -Name [-Force] + [-PassThru] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + ++ ByVpnGatewayNatRuleResourceId +```powershell +Remove-AzVpnGatewayNatRule -ResourceId [-Force] [-PassThru] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVpnGatewayNatRuleObject +```powershell +Remove-AzVpnGatewayNatRule -InputObject [-Force] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example1 + +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName testRG -Name myVirtualWAN -Location "West US" +$virtualHub = New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.0.1/24" +New-AzVpnGateway -ResourceGroupName "testRG" -Name "testvpngw" -VirtualHubId $virtualHub.Id -VpnGatewayScaleUnit 2 +$vpnGateway = Get-AzVpnGateway -ResourceGroupName "testRG" -Name "testvpngw" +New-AzVpnGatewayNatRule -ResourceGroupName $vpnGateway.ResourceGroupName -ParentResourceName $vpnGateway.Name -Name "testNatRule" -Type Static -Mode EgressSnat -InternalMapping "10.0.0.1/26" -ExternalMapping "192.168.0.0/26" +Remove-AzVpnGatewayNatRule -ResourceGroupName $vpnGateway.ResourceGroupName -ParentResourceName $vpnGateway.Name -Name "testNatRule" +``` + +The above will create a resource group, Virtual WAN, Virtual Network, Virtual Hub,VpnGateway and NAT rule associated with that VpnGateway. +Then it removes the NAT rule using the NAT rule name. + + +#### Update-AzVpnGatewayNatRule + +#### SYNOPSIS +Updates a NAT rule associated with VpnGateway. + +#### SYNTAX + ++ ByVpnGatewayNatRuleName (Default) +```powershell +Update-AzVpnGatewayNatRule -ResourceGroupName -ParentResourceName -Name + [-Type ] [-Mode ] [-InternalMapping ] [-ExternalMapping ] + [-InternalPortRange ] [-ExternalPortRange ] [-IpConfigurationId ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVpnGatewayNatRuleResourceId +```powershell +Update-AzVpnGatewayNatRule -ResourceId [-Type ] [-Mode ] [-InternalMapping ] + [-ExternalMapping ] [-InternalPortRange ] [-ExternalPortRange ] + [-IpConfigurationId ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVpnGatewayNatRuleObject +```powershell +Update-AzVpnGatewayNatRule -InputObject [-Type ] [-Mode ] + [-InternalMapping ] [-ExternalMapping ] [-InternalPortRange ] + [-ExternalPortRange ] [-IpConfigurationId ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example + +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName testRG -Name myVirtualWAN -Location "West US" +$virtualHub = New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.0.1/24" +New-AzVpnGateway -ResourceGroupName "testRG" -Name "testvpngw" -VirtualHubId $virtualHub.Id -VpnGatewayScaleUnit 2 +$vpnGateway = Get-AzVpnGateway -ResourceGroupName "testRG" -Name "testvpngw" +New-AzVpnGatewayNatRule -ResourceGroupName $vpnGateway.ResourceGroupName -ParentResourceName $vpnGateway.Name -Name "testNatRule" -Type Static -Mode EgressSnat -InternalMapping "10.0.0.1/26" -ExternalMapping "192.168.0.0/26" +$natRule = Get-AzVpnGatewayNatRule -ResourceGroupName $vpnGateway.ResourceGroupName -ParentResourceName $vpnGateway.Name -Name "testNatRule" +Update-AzVpnGatewayNatRule -InputObject $natRule -Type Dynamic -Mode IngressSnat +``` + +```output +Type : Dynamic +Mode : IngressSnat +VpnConnectionProtocolType : IKEv2 +InternalMappings : 10.0.0.1/26 +ExternalMappings : 192.168.0.0/26 +IpConfigurationId : +IngressVpnSiteLinkConnections : [Microsoft.Azure.Commands.Network.Models.PSResourceId] +EgressVpnSiteLinkConnections : [Microsoft.Azure.Commands.Network.Models.PSResourceId] +ProvisioningState : Provisioned +Name : ps9709 +Etag : W/"4580a2e2-2fab-4cff-88eb-92013a76b5a8" +Id : /subscriptions/{subscriptionId}/resourceGroups/testRg/providers/Microsoft.Network/vpnGateways/testvpngw/natRules/testNatRule +``` + +The above will create a resource group, Virtual WAN, Virtual Network, Virtual Hub. Then, we will create VpnGateway under that Virtual Hub. Then, create new NAT rule associated with created VpnGateway. +Using this command: Update-AzVpnGatewayNatRule, update NAT rule. + + +#### Start-AzVpnGatewayPacketCapture + +#### SYNOPSIS +Starts Packet Capture Operation on a Vpn Gateway. + +#### SYNTAX + ++ ByVpnGatewayName (Default) +```powershell +Start-AzVpnGatewayPacketCapture -ResourceGroupName -Name [-FilterData ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVpnGatewayObject +```powershell +Start-AzVpnGatewayPacketCapture -InputObject [-FilterData ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVpnGatewayResourceId +```powershell +Start-AzVpnGatewayPacketCapture -ResourceId [-FilterData ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Start-AzVpnGatewayPacketCapture -ResourceGroupName "PktCaptureTestSite2RG" -Name "PktCaptureTestSite2VNG" +``` + +```output +Code : Succeeded +EndTime : 10/1/2019 12:57:27 AM +StartTime : 10/1/2019 12:57:16 AM +ResultsText : +ResourceGroupName : PktCaptureTestSite2RG +Location : centraluseuap +ResourceGuid : 161c0fff-f3fd-4698-9ab3-8ca9470de975 +Type : +Tag : +TagsTable : +Name : PktCaptureTestSite2VNG +Etag : +Id : +``` + ++ Example 2 +```powershell +$a="{`"TracingFlags`":11,`"MaxPacketBufferSize`":120,`"MaxFileSize`":500,`"Filters`":[{`"SourceSubnets`":[`"10.19.0.4/32`",`"10.20.0.4/32`"],`"DestinationSubnets`":[`"10.20.0.4/32`",`"10.19.0.4/32`"],`"TcpFlags`":-1,`"Protocol`":[6],`"CaptureSingleDirectionTrafficOnly`":true}]}" +Start-AzVpnGatewayPacketCapture -ResourceGroupName "PktCaptureTestSite2RG" -Name "PktCaptureTestSite2VNG" -FilterData $a +``` + +```output +Code : Succeeded +EndTime : 10/1/2019 12:57:27 AM +StartTime : 10/1/2019 12:57:16 AM +ResultsText : +ResourceGroupName : PktCaptureTestSite2RG +Location : centraluseuap +ResourceGuid : 161c0fff-f3fd-4698-9ab3-8ca9470de975 +Type : +Tag : +TagsTable : +Name : PktCaptureTestSite2VNG +Etag : +Id : +``` + + +#### Stop-AzVpnGatewayPacketCapture + +#### SYNOPSIS +Stops Packet Capture Operation on a Vpn Gateway. + +#### SYNTAX + ++ ByVpnGatewayName (Default) +```powershell +Stop-AzVpnGatewayPacketCapture -ResourceGroupName -Name -SasUrl [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVpnGatewayObject +```powershell +Stop-AzVpnGatewayPacketCapture -InputObject -SasUrl [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVpnGatewayResourceId +```powershell +Stop-AzVpnGatewayPacketCapture -ResourceId -SasUrl [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$rgname = "testRg" +$storeName = "teststorage" +$containerName = "packetcaptureresults" +$key = Get-AzStorageAccountKey -ResourceGroupName $rgname -Name $storeName +$context = New-AzStorageContext -StorageAccountName $storeName -StorageAccountKey $key[0].Value +New-AzStorageContainer -Name $containerName -Context $context +$container = Get-AzStorageContainer -Name $containerName -Context $context +$now = Get-Date +$sasurl = New-AzStorageContainerSASToken -Name $containerName -Context $context -Permission "rwd" -StartTime $now.AddHours(-1) -ExpiryTime $now.AddDays(1) -FullUri +Stop-AzVpnGatewayPacketCapture -ResourceGroupName $rgname -Name "testgw" -SasUrl $sasurl +``` + +```output +Code : Succeeded +EndTime : 10/1/2019 12:59:37 AM +StartTime : 10/1/2019 12:58:26 AM +ResultsText : +ResourceGroupName : testRg +Location : centraluseuap +ResourceGuid : 161c0fff-f3fd-4698-9ab3-8ca9470de975 +Type : +Tag : +TagsTable : +Name : testgw +Etag : +Id : +``` + ++ Example 2 +```powershell +$rgname = "testRg" +$storeName = "teststorage" +$containerName = "packetcaptureresults" +$key = Get-AzStorageAccountKey -ResourceGroupName $rgname -Name $storeName +$context = New-AzStorageContext -StorageAccountName $storeName -StorageAccountKey $key[0].Value +$container = Get-AzStorageContainer -Name $containerName -Context $context +$now = Get-Date +$sasurl = New-AzStorageContainerSASToken -Name $containerName -Context $context -Permission "rwd" -StartTime $now.AddHours(-1) -ExpiryTime $now.AddDays(1) -FullUri +$gw = Get-AzVpnGateway -ResourceGroupName $rgname -name "testGw" +Stop-AzVpnGatewayPacketCapture -InputObject $gw -SasUrl $sasurl +``` + +```output +Code : Succeeded +EndTime : 10/1/2019 12:59:37 AM +StartTime : 10/1/2019 12:58:26 AM +ResultsText : +ResourceGroupName : testRg +Location : centraluseuap +ResourceGuid : 161c0fff-f3fd-4698-9ab3-8ca9470de975 +Type : +Tag : +TagsTable : +Name : testgw +Etag : +Id : +``` + + +#### New-AzVpnServerConfiguration + +#### SYNOPSIS +Create a new VpnServerConfiguration for point to site connectivity. + +#### SYNTAX + +```powershell +New-AzVpnServerConfiguration -ResourceGroupName -Name -Location + [-VpnProtocol ] [-VpnAuthenticationType ] [-VpnClientRootCertificateFilesList ] + [-VpnClientRevokedCertificateFilesList ] [-RadiusServerAddress ] + [-RadiusServerSecret ] [-RadiusServerList ] + [-RadiusServerRootCertificateFilesList ] [-RadiusClientRootCertificateFilesList ] + [-AadTenant ] [-AadAudience ] [-AadIssuer ] [-VpnClientIpsecPolicy ] + [-ConfigurationPolicyGroup ] [-Tag ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +$VpnServerConfigCertFilePath = Join-Path -Path $basedir -ChildPath "\ScenarioTests\Data\ApplicationGatewayAuthCert.cer" +$listOfCerts = New-Object "System.Collections.Generic.List[String]" +$listOfCerts.Add($VpnServerConfigCertFilePath) +New-AzVpnServerConfiguration -Name "test1config" -ResourceGroupName "P2SCortexGATesting" -VpnProtocol IkeV2 -VpnAuthenticationType Certificate -VpnClientRootCertificateFilesList $listOfCerts -VpnClientRevokedCertificateFilesList $listOfCerts -Location "westus" +``` + +```output +ResourceGroupName : P2SCortexGATesting +Name : test1config +Id : /subscriptions/b1f1deed-af60-4bab-9223-65d340462e24/resourceGroups/P2SCortexGATesting/providers/Microsoft.Network/vpnServerConfigurations/test1config +Location : westus +VpnProtocols : {IkeV2, OpenVPN} +VpnAuthenticationTypes : {Certificate} +VpnClientRootCertificates : +VpnClientRevokedCertificates : [ + { + "Name": "cert2", + "Thumbprint": "83FFBFC8848B5A5836C94D0112367E16148A286F" + } + ] +RadiusServerAddress : +RadiusServerRootCertificates : [] +RadiusClientRootCertificates : [] +VpnClientIpsecPolicies : [] +AadAuthenticationParameters : null +P2sVpnGateways : [] +Type : Microsoft.Network/vpnServerConfigurations +ProvisioningState : Succeeded +``` + +The above command will create a new VpnServerConfiguration with VpnAuthenticationType as Certificate. + ++ Example 2 + +Create a new VpnServerConfiguration for point to site connectivity. (autogenerated) + + + + +```powershell +New-AzVpnServerConfiguration -AadAudience -AadIssuer -AadTenant -Location 'westus' -Name 'test1config' -ResourceGroupName 'P2SCortexGATesting' -VpnAuthenticationType Certificate -VpnProtocol IkeV2 +``` + + +#### Get-AzVpnServerConfiguration + +#### SYNOPSIS +Gets an existing VpnServerConfiguration for point to site connectivity. + +#### SYNTAX + ++ ListBySubscriptionId (Default) +```powershell +Get-AzVpnServerConfiguration [-DefaultProfile ] + [] +``` + ++ ListByResourceGroupName +```powershell +Get-AzVpnServerConfiguration [-ResourceGroupName ] [-Name ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzVpnServerConfiguration -ResourceGroupName P2SCortexGATesting -Name test1config +``` + +```output +ResourceGroupName : P2SCortexGATesting +Name : test1config +Id : /subscriptions/b1f1deed-af60-4bab-9223-65d340462e24/resourceGroups/P2SCortexGATesting/providers/Microsoft.Network/vpnServerConfigurations/test1config +Location : westus +VpnProtocols : {IkeV2, OpenVPN} +VpnAuthenticationTypes : {Certificate} +VpnClientRootCertificates : +VpnClientRevokedCertificates : [ + { + "Name": "cert2", + "Thumbprint": "83FFBFC8848B5A5836C94D0112367E16148A286F" + } + ] +RadiusServerAddress : +RadiusServerRootCertificates : [] +RadiusClientRootCertificates : [] +VpnClientIpsecPolicies : [] +AadAuthenticationParameters : null +P2sVpnGateways : [] +Type : Microsoft.Network/vpnServerConfigurations +ProvisioningState : Succeeded +``` + +The above command will get the existing VpnServerConfiguration. + + +#### Remove-AzVpnServerConfiguration + +#### SYNOPSIS +Removes an existing VpnServerConfiguration. + +#### SYNTAX + ++ ByVpnServerConfigurationName (Default) +```powershell +Remove-AzVpnServerConfiguration -ResourceGroupName -Name [-Force] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVpnServerConfigurationObject +```powershell +Remove-AzVpnServerConfiguration -InputObject [-Force] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVpnServerConfigurationResourceId +```powershell +Remove-AzVpnServerConfiguration -ResourceId [-Force] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzVpnServerConfiguration -Name "test1config" -ResourceGroupName "P2SCortexGATesting" -Force -PassThru +``` + +The above command will remove an existing VpnServerConfiguration. + + +#### Update-AzVpnServerConfiguration + +#### SYNOPSIS +Updates an existing VpnServerConfiguration. + +#### SYNTAX + ++ ByVpnServerConfigurationName (Default) +```powershell +Update-AzVpnServerConfiguration -ResourceGroupName -Name [-VpnProtocol ] + [-VpnAuthenticationType ] [-VpnClientRootCertificateFilesList ] + [-VpnClientRevokedCertificateFilesList ] [-RadiusServerAddress ] + [-RadiusServerSecret ] [-RadiusServerList ] + [-RadiusServerRootCertificateFilesList ] [-RadiusClientRootCertificateFilesList ] + [-AadTenant ] [-AadAudience ] [-AadIssuer ] [-VpnClientIpsecPolicy ] + [-ConfigurationPolicyGroup ] [-Tag ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVpnServerConfigurationObject +```powershell +Update-AzVpnServerConfiguration -InputObject [-VpnProtocol ] + [-VpnAuthenticationType ] [-VpnClientRootCertificateFilesList ] + [-VpnClientRevokedCertificateFilesList ] [-RadiusServerAddress ] + [-RadiusServerSecret ] [-RadiusServerList ] + [-RadiusServerRootCertificateFilesList ] [-RadiusClientRootCertificateFilesList ] + [-AadTenant ] [-AadAudience ] [-AadIssuer ] [-VpnClientIpsecPolicy ] + [-ConfigurationPolicyGroup ] [-Tag ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVpnServerConfigurationResourceId +```powershell +Update-AzVpnServerConfiguration -ResourceId [-VpnProtocol ] + [-VpnAuthenticationType ] [-VpnClientRootCertificateFilesList ] + [-VpnClientRevokedCertificateFilesList ] [-RadiusServerAddress ] + [-RadiusServerSecret ] [-RadiusServerList ] + [-RadiusServerRootCertificateFilesList ] [-RadiusClientRootCertificateFilesList ] + [-AadTenant ] [-AadAudience ] [-AadIssuer ] [-VpnClientIpsecPolicy ] + [-ConfigurationPolicyGroup ] [-Tag ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Update-AzVpnServerConfiguration -Name "test1config" -ResourceGroupName "P2SCortexGATesting" -VpnProtocol IkeV2 + +New-AzVpnServerConfiguration -Name "test1config" -ResourceGroupName "P2SCortexGATesting" -VpnProtocol IkeV2 -VpnAuthenticationType Certificate -VpnClientRootCertificateFilesList $listOfCerts -VpnClientRevokedCertificateFilesList $listOfCerts -Location "westus" +``` + +```output +ResourceGroupName : P2SCortexGATesting +Name : test1config +Id : /subscriptions/b1f1deed-af60-4bab-9223-65d340462e24/resourceGroups/P2SCortexGATesting/providers/Microsoft.Network/vpnServerConfigurations/test1config +Location : westus +VpnProtocols : {IkeV2} +VpnAuthenticationTypes : {Certificate} +VpnClientRootCertificates : +VpnClientRevokedCertificates : [ + { + "Name": "cert2", + "Thumbprint": "83FFBFC8848B5A5836C94D0112367E16148A286F" + } + ] +RadiusServerAddress : +RadiusServerRootCertificates : [] +RadiusClientRootCertificates : [] +VpnClientIpsecPolicies : [] +AadAuthenticationParameters : null +P2sVpnGateways : [] +Type : Microsoft.Network/vpnServerConfigurations +ProvisioningState : Succeeded +``` + +The above command will update an existing VpnServerConfiguration with VpnProtocol as IkeV2. + + +#### New-AzVpnServerConfigurationPolicyGroup + +#### SYNOPSIS +Creates a new VpnServerConfigurationPolicyGroup that can be attached to P2SVpnGateway. + +#### SYNTAX + ++ ByVpnServerConfigurationName (Default) +```powershell +New-AzVpnServerConfigurationPolicyGroup -ResourceGroupName -ServerConfigurationName + -Name -Priority [-DefaultPolicyGroup] + [-PolicyMember ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVpnServerConfigurationObject +```powershell +New-AzVpnServerConfigurationPolicyGroup -ServerConfigurationObject -Priority + [-DefaultPolicyGroup] [-PolicyMember ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVpnServerConfigurationResourceId +```powershell +New-AzVpnServerConfigurationPolicyGroup -ServerConfigurationResourceId -Priority + [-DefaultPolicyGroup] [-PolicyMember ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +#### Create a PolicyMember1 Object +$policyGroupMember1 = New-Object -TypeName Microsoft.Azure.Commands.Network.Models.PSVpnServerConfigurationPolicyGroupMember +$policyGroupMember1.Name = "policyGroupMember1" +$policyGroupMember1.AttributeType = "AADGroupId" +$policyGroupMember1.AttributeValue = "41b23e61-6c1e-4545-b367-cd054e0ed4b5" + +#### Create a PolicyGroup1 +New-AzVpnServerConfigurationPolicyGroup -ResourceGroupName TestRG -ServerConfigurationName VpnServerConfig2 -Name Group3 -Priority 3 -PolicyMember $policyGroupMember1 +``` + +```output +ProvisioningState : Succeeded +IsDefault : True +Priority : 0 +PolicyMembers : {AADPolicy, CertPolicy1, RadiusPolicy1} +P2SConnectionConfigurations : {/subscriptions/b1f1deed-af60-4bab-9223-65d340462e24/resourceGroups/TestingRG/providers/Microsoft.Network/p2sVpnGateways/4e72273faa1346ad9b910c37a5667c99-westcentralus-gw/p2sConnectio + nConfigurations/P2SConfig1, /subscriptions/b1f1deed-af60-4bab-9223-65d340462e24/resourceGroups/TestingRG/providers/Microsoft.Network/p2sVpnGateways/f6d6b5d6711641028c480bf342478392-we + stcentralus-p2s-gw/p2sConnectionConfigurations/Config1} +PolicyMembersText : [ + { + "Name": "AADPolicy", + "AttributeType": "AADGroupId", + "AttributeValue": "41b23e61-6c1e-4545-b367-cd054e0ed4b4" + }, + { + "Name": "CertPolicy1", + "AttributeType": "CertificateGroupId", + "AttributeValue": "ab" + }, + { + "Name": "RadiusPolicy1", + "AttributeType": "RadiusAzureGroupId", + "AttributeValue": "6ad1bd09" + } + ] +P2SConnectionConfigurationsText : [ + { + "Id": "/subscriptions/b1f1deed-af60-4bab-9223-65d340462e24/resourceGroups/TestingRG/providers/Microsoft.Network/p2sVpnGateways/4e72273faa1346ad9b910c37a5667c99-westcentralus-gw/p2 + sConnectionConfigurations/P2SConfig1" + }, + { + "Id": "/subscriptions/b1f1deed-af60-4bab-9223-65d340462e24/resourceGroups/TestingRG/providers/Microsoft.Network/p2sVpnGateways/f6d6b5d6711641028c480bf342478392-westcentralus-p2s-g + w/p2sConnectionConfigurations/Config1" + } + ] +Name : Group1 +Id : /subscriptions/b1f1deed-af60-4bab-9223-65d340462e24/resourceGroups/TestingRG/providers/Microsoft.Network/vpnServerConfigurations/MPConfig/configurationPolicyGroups/Group1 +``` + +Creates a new VpnServerConfiguration PolicyGroup. + + +#### Get-AzVpnServerConfigurationPolicyGroup + +#### SYNOPSIS +Gets VpnServerConfigurationPolicyGroup that can be attached to P2SVpnGateway. + +#### SYNTAX + ++ ByVpnServerConfigurationName (Default) +```powershell +Get-AzVpnServerConfigurationPolicyGroup -ResourceGroupName -ServerConfigurationName + [-Name ] [-DefaultProfile ] + [] +``` + ++ ByVpnServerConfigurationObject +```powershell +Get-AzVpnServerConfigurationPolicyGroup [-Name ] -ServerConfigurationObject + [-DefaultProfile ] [] +``` + ++ ByVpnServerConfigurationResourceId +```powershell +Get-AzVpnServerConfigurationPolicyGroup [-Name ] -ServerConfigurationResourceId + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzVpnServerConfigurationPolicyGroup -ResourceGroupName TestRG -ServerConfigurationName VpnServerConfig2 -Name Group2 | Format-List +``` + +```output +ProvisioningState : Succeeded +IsDefault : False +Priority : 1 +PolicyMembers : {policy2} +P2SConnectionConfigurations : {/subscriptions/64c5a05b-0859-4e60-9634-d52db66832bd/resourceGroups/TestRG/providers/Microsoft.Network/p2sVpnGateways/d8c79d4be6fd47a497f8ac8f8eb545ad-eastus-gw/p2sConnectionConfigurations/P2SConConfig2} +PolicyMembersText : [ + { + "Name": "policy2", + "AttributeType": "CertificateGroupId", + "AttributeValue": "cd" + } + ] +P2SConnectionConfigurationsText : [ + { + "Id": "/subscriptions/64c5a05b-0859-4e60-9634-d52db66832bd/resourceGroups/TestRG/providers/Microsoft.Network/p2sVpnGateways/d8c79d4be6fd47a497f8ac8f8eb545ad-eastus-gw/p2sConnectionConfigurations/P2SConConfig2" + } + ] +Name : Group2 +Etag : W/"d3d91ed6-11a9-471f-880e-6459e78aeef9" +Id : /subscriptions/64c5a05b-0859-4e60-9634-d52db66832bd/resourceGroups/TestRG/providers/Microsoft.Network/vpnServerConfigurations/VpnServerConfig2/configurationPolicyGroups/Group2 +``` + +The **Get-AzVpnServerConfigurationPolicyGroup** cmdlet enables you to get an existing VpnServerConfigurationPolicyGroup under VpnServerConfiguration which can be attached to P2SVpnGateway for Point to site connectivity from Point to site clients to Azure VirtualWan. + + +#### Remove-AzVpnServerConfigurationPolicyGroup + +#### SYNOPSIS +Removes an existing VpnServerConfigurationPolicyGroup. + +#### SYNTAX + ++ ByVpnServerConfigurationName (Default) +```powershell +Remove-AzVpnServerConfigurationPolicyGroup -ResourceGroupName -ServerConfigurationName + -Name [-Force] [-PassThru] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVpnServerConfigurationResourceId +```powershell +Remove-AzVpnServerConfigurationPolicyGroup -ServerConfigurationResourceId [-Force] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVpnServerConfigurationObject +```powershell +Remove-AzVpnServerConfigurationPolicyGroup -ServerConfigurationObject [-Force] + [-PassThru] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Remove-AzVpnServerConfigurationPolicyGroup -ResourceGroupName TestRG -ServerConfigurationName VpnServerConfig2 -Name Group3 -Force -PassThru +``` + +```output +True +``` + +The **Remove-AzVpnServerConfigurationPolicyGroup** cmdlet enables you to remove an existing VpnServerConfigurationPolicyGroup under VpnServerConfiguration. + + +#### Update-AzVpnServerConfigurationPolicyGroup + +#### SYNOPSIS +Update an existing VpnServerConfigurationPolicyGroup under VpnServerConfiguration for point to site connectivity. + +#### SYNTAX + ++ ByVpnServerConfigurationName (Default) +```powershell +Update-AzVpnServerConfigurationPolicyGroup -ResourceGroupName -ServerConfigurationName + -Name [-Priority ] [-DefaultPolicyGroup ] + [-PolicyMember ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVpnServerConfigurationObject +```powershell +Update-AzVpnServerConfigurationPolicyGroup -ServerConfigurationObject + [-Priority ] [-DefaultPolicyGroup ] + [-PolicyMember ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVpnServerConfigurationResourceId +```powershell +Update-AzVpnServerConfigurationPolicyGroup -ServerConfigurationResourceId [-Priority ] + [-DefaultPolicyGroup ] [-PolicyMember ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +#### Update existing VpnServerConfigurationPolicyGroup with new PolicyGroupMember2 & Priority to 2. +Update-AzVpnServerConfigurationPolicyGroup -ResourceGroupName TestRG -ServerConfigurationName VpnServerConfig2 -Name Group2 -PolicyMember $policyGroupMember2 -Priority 2 +``` + +```output +ProvisioningState : Succeeded +IsDefault : False +Priority : 2 +PolicyMembers : {policyGroupMember2} +P2SConnectionConfigurations : {/subscriptions/64c5a05b-0859-4e60-9634-d52db66832bd/resourceGroups/TestRG/providers/Microsoft.Network/p2sVpnGateways/d8c79d4be6fd47a497f8ac8f8eb545ad-eastus-gw/p2sConnectionConfigurations/P2SConConfig2} +PolicyMembersText : [ + { + "Name": "policyGroupMember2", + "AttributeType": "AADGroupId", + "AttributeValue": "41b23e61-6c1e-4545-b367-cd054e0ed4b5" + } + ] +P2SConnectionConfigurationsText : [ + { + "Id": "/subscriptions/64c5a05b-0859-4e60-9634-d52db66832bd/resourceGroups/TestRG/providers/Microsoft.Network/p2sVpnGateways/d8c79d4be6fd47a497f8ac8f8eb545ad-eastus-gw/p2sConnectionConfigurations/P2SConConfig2" + } + ] +Name : Group2 +Etag : W/"44998fce-7fde-43f9-bafb-4599452d672c" +Id : /subscriptions/64c5a05b-0859-4e60-9634-d52db66832bd/resourceGroups/TestRG/providers/Microsoft.Network/vpnServerConfigurations/VpnServerConfig2/configurationPolicyGroups/Group2 +``` + +The **Update-AzVpnServerConfigurationPolicyGroup** cmdlet enables you to update an existing VpnServerConfigurationPolicyGroup under VpnServerConfiguration with new policyGroupMember and/or Priority. + + +#### New-AzVpnSite + +#### SYNOPSIS +Creates a new Azure VpnSite resource. This is an RM representation of customer branches that are uploaded to Azure +for S2S connectivity with a Cortex virtual hub. + +#### SYNTAX + ++ ByVirtualWanNameByVpnSiteIpAddress (Default) +```powershell +New-AzVpnSite -ResourceGroupName -Name -Location + -VirtualWanResourceGroupName -VirtualWanName -IpAddress [-AddressSpace ] + [-DeviceModel ] [-DeviceVendor ] [-IsSecuritySite] [-LinkSpeedInMbps ] + [-BgpAsn ] [-BgpPeeringAddress ] [-BgpPeeringWeight ] + [-O365Policy ] [-Tag ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVirtualWanNameByVpnSiteLinkObject +```powershell +New-AzVpnSite -ResourceGroupName -Name -Location + -VirtualWanResourceGroupName -VirtualWanName [-AddressSpace ] + [-DeviceModel ] [-DeviceVendor ] [-IsSecuritySite] -VpnSiteLink + [-O365Policy ] [-Tag ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVirtualWanObjectByVpnSiteIpAddress +```powershell +New-AzVpnSite -ResourceGroupName -Name -Location -VirtualWan + -IpAddress [-AddressSpace ] [-DeviceModel ] [-DeviceVendor ] + [-IsSecuritySite] [-LinkSpeedInMbps ] [-BgpAsn ] [-BgpPeeringAddress ] + [-BgpPeeringWeight ] [-O365Policy ] [-Tag ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVirtualWanObjectByVpnSiteLinkObject +```powershell +New-AzVpnSite -ResourceGroupName -Name -Location -VirtualWan + [-AddressSpace ] [-DeviceModel ] [-DeviceVendor ] [-IsSecuritySite] + -VpnSiteLink [-O365Policy ] [-Tag ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVirtualWanResourceIdByVpnSiteIpAddress +```powershell +New-AzVpnSite -ResourceGroupName -Name -Location -VirtualWanId + -IpAddress [-AddressSpace ] [-DeviceModel ] [-DeviceVendor ] + [-IsSecuritySite] [-LinkSpeedInMbps ] [-BgpAsn ] [-BgpPeeringAddress ] + [-BgpPeeringWeight ] [-O365Policy ] [-Tag ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVirtualWanResourceIdByVpnSiteLinkObject +```powershell +New-AzVpnSite -ResourceGroupName -Name -Location -VirtualWanId + [-AddressSpace ] [-DeviceModel ] [-DeviceVendor ] [-IsSecuritySite] + -VpnSiteLink [-O365Policy ] [-Tag ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +New-AzResourceGroup -Location "East US" -Name "nonlinkSite" +$virtualWan = New-AzVirtualWan -ResourceGroupName "nonlinkSite" -Name myVirtualWAN -Location "East US" + +$vpnSiteAddressSpaces = New-Object string[] 2 +$vpnSiteAddressSpaces[0] = "192.168.2.0/24" +$vpnSiteAddressSpaces[1] = "192.168.3.0/24" + +New-AzVpnSite -ResourceGroupName "nonlinkSite" -Name "testVpnSite" -Location "East US" -VirtualWan $virtualWan -IpAddress "1.2.3.4" -AddressSpace $vpnSiteAddressSpaces -DeviceModel "SomeDevice" -DeviceVendor "SomeDeviceVendor" -LinkSpeedInMbps "10" +``` + +```output +ResourceGroupName : nonlinkSite +Name : testVpnSite +Id : /subscriptions/{subscriptionId}/resourceGroups/nonlinkSite/providers/Microsoft.Network/vpnSites/testVpnSite +Location : eastus2euap +IpAddress : 1.2.3.4 +VirtualWan : /subscriptions/{subscriptionId}/resourceGroups/nonlinkSite/providers/Microsoft.Network/virtualWans/myVirtualWAN +AddressSpace : {192.168.2.0/24, 192.168.3.0/24} +BgpSettings : +Type : Microsoft.Network/vpnSites +ProvisioningState : Succeeded +``` + +The above will create a resource group, Virtual WAN in East US in "nonlinkSite" resource group in Azure. + +Then it creates a VpnSite to represent a customer branch and links it to the Virtual WAN. + +An IPSec connection can then be setup with this branch and a VpnGateway using the New-AzVpnConnection command. + ++ Example 2 +```powershell +New-AzResourceGroup -Location "East US" -Name "multilink" +$virtualWan = New-AzVirtualWan -ResourceGroupName multilink -Name myVirtualWAN -Location "East US" +$vpnSiteAddressSpaces = New-Object string[] 2 +$vpnSiteAddressSpaces[0] = "192.168.2.0/24" +$vpnSiteAddressSpaces[1] = "192.168.3.0/24" + +$vpnSiteLink = New-AzVpnSiteLink -Name "testVpnSiteLink1" -IpAddress "15.25.35.45" -LinkProviderName "SomeTelecomProvider" -LinkSpeedInMbps "10" +$vpnSiteLink2 = New-AzVpnSiteLink -Name "testVpnSiteLink2" -IpAddress "15.25.35.55" -LinkProviderName "SomeTelecomProvider2" -LinkSpeedInMbps "100" +$vpnSite = New-AzVpnSite -ResourceGroupName "multilink" -Name "testVpnSite" -Location "East US" -VirtualWan $virtualWan -AddressSpace $vpnSiteAddressSpaces -DeviceModel "SomeDevice" -DeviceVendor "SomeDeviceVendor" -VpnSiteLink @($vpnSiteLink1, $vpnSiteLink2) +``` + +The above will create a resource group, Virtual WAN and a VpnSite with 1 VpnSiteLinks in East US in "multilink" resource group in Azure. + ++ Example 3 + +Creates a new Azure VpnSite resource. (autogenerated) + + + + +```powershell +New-AzVpnSite -AddressSpace -DeviceModel 'SomeDevice' -DeviceVendor 'SomeDeviceVendor' -IpAddress '1.2.3.4' -LinkSpeedInMbps '10' -Location 'East US' -Name 'testVpnSite' -ResourceGroupName 'multilink' -VirtualWanName -VirtualWanResourceGroupName +``` + + +#### Get-AzVpnSite + +#### SYNOPSIS +Gets an Azure VpnSite resource by name OR lists all VpnSites in a ResourceGroup or SubscriptionId. + +This is an RM representation of customer branches that are uploaded to Azure for S2S connectivity with a Cortex virtual hub. + +#### SYNTAX + ++ ListBySubscriptionId (Default) +```powershell +Get-AzVpnSite [-DefaultProfile ] + [] +``` + ++ ListByResourceGroupName +```powershell +Get-AzVpnSite [-ResourceGroupName ] [-Name ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName testRG -Name myVirtualWAN -Location "West US" +$vpnSiteAddressSpaces = New-Object string[] 2 +$vpnSiteAddressSpaces[0] = "192.168.2.0/24" +$vpnSiteAddressSpaces[1] = "192.168.3.0/24" +New-AzVpnSite -ResourceGroupName "testRG" -Name "testVpnSite" -Location "West US" -VirtualWan $virtualWan -IpAddress "1.2.3.4" -AddressSpace $vpnSiteAddressSpaces -DeviceModel "SomeDevice" -DeviceVendor "SomeDeviceVendor" -LinkSpeedInMbps "10" +Get-AzVpnSite -ResourceGroupName "testRG" -Name "testVpnSite" +``` + +```output +ResourceGroupName : testRG +Name : testVpnSite +Id : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/vpnSites/testVpnSite +Location : eastus2euap +IpAddress : 1.2.3.4 +VirtualWan : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualWans/myVirtualWAN +AddressSpace : {192.168.2.0/24, 192.168.3.0/24} +BgpSettings : +Type : Microsoft.Network/vpnSites +ProvisioningState : Succeeded +``` + +The above will create a resource group, Virtual WAN in West US in "testRG" resource group in Azure. + +Then it creates a VpnSite to represent a customer branch and links it to the Virtual WAN. + +Once the site is created, it gets the site using the Get-AzVpnSite command. + ++ Example 2 + +```powershell +Get-AzVpnSite -Name test* +``` + +```output +ResourceGroupName : testRG +Name : testVpnSite1 +Id : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/vpnSites/testVpnSite1 +Location : eastus2euap +IpAddress : 1.2.3.4 +VirtualWan : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualWans/myVirtualWAN +AddressSpace : {192.168.2.0/24, 192.168.3.0/24} +BgpSettings : +Type : Microsoft.Network/vpnSites +ProvisioningState : Succeeded + +ResourceGroupName : testRG +Name : testVpnSite2 +Id : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/vpnSites/testVpnSite2 +Location : eastus2euap +IpAddress : 1.2.3.4 +VirtualWan : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualWans/myVirtualWAN +AddressSpace : {192.168.2.0/24, 192.168.3.0/24} +BgpSettings : +Type : Microsoft.Network/vpnSites +ProvisioningState : Succeeded +``` + +This cmdlet gets all Sites that start with "test". + + +#### Remove-AzVpnSite + +#### SYNOPSIS +Removes an Azure VpnSite resource. + +#### SYNTAX + ++ ByVpnSiteName (Default) +```powershell +Remove-AzVpnSite -ResourceGroupName -Name [-Force] [-PassThru] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVpnSiteObject +```powershell +Remove-AzVpnSite -InputObject [-Force] [-PassThru] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVpnSiteResourceId +```powershell +Remove-AzVpnSite -ResourceId [-Force] [-PassThru] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName testRG -Name myVirtualWAN -Location "West US" +$vpnSiteAddressSpaces = New-Object string[] 2 +$vpnSiteAddressSpaces[0] = "192.168.2.0/24" +$vpnSiteAddressSpaces[1] = "192.168.3.0/24" +New-AzVpnSite -ResourceGroupName "testRG" -Name "testVpnSite" -Location "West US" -VirtualWan $virtualWan -IpAddress "1.2.3.4" -AddressSpace $vpnSiteAddressSpaces -DeviceModel "SomeDevice" -DeviceVendor "SomeDeviceVendor" -LinkSpeedInMbps "10" +Remove-AzVpnSite -ResourceGroupName "testRG" -Name "testVpnSite" +``` + +The above will create a resource group, Virtual WAN in West US in "testRG" resource group in Azure. + +Then it creates a VpnSite to represent a customer branch and links it to the Virtual WAN. + +Once the site is created, it is immediately removed using the Remove-AzVpnSite command. + ++ Example 2 + +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName testRG -Name myVirtualWAN -Location "West US" +$vpnSiteAddressSpaces = New-Object string[] 2 +$vpnSiteAddressSpaces[0] = "192.168.2.0/24" +$vpnSiteAddressSpaces[1] = "192.168.3.0/24" +New-AzVpnSite -ResourceGroupName "testRG" -Name "testVpnSite" -Location "West US" -VirtualWan $virtualWan -IpAddress "1.2.3.4" -AddressSpace $vpnSiteAddressSpaces -DeviceModel "SomeDevice" -DeviceVendor "SomeDeviceVendor" -LinkSpeedInMbps "10" +Get-AzVpnSite -ResourceGroupName "testRG" -Name "testVpnSite" | Remove-AzVpnSite +``` + +Same as example 1 but here the removal happens using the piped output from Get-AzVpnSite. + + +#### Update-AzVpnSite + +#### SYNOPSIS +Updates a VPN site. + +#### SYNTAX + ++ ByVpnSiteNameNoVirtualWanUpdate (Default) +```powershell +Update-AzVpnSite -ResourceGroupName -Name [-IpAddress ] [-AddressSpace ] + [-DeviceModel ] [-DeviceVendor ] [-LinkSpeedInMbps ] [-BgpAsn ] + [-BgpPeeringAddress ] [-BgpPeeringWeight ] [-VpnSiteLink ] + [-O365Policy ] [-Tag ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVpnSiteNameByVirtualWanName +```powershell +Update-AzVpnSite -ResourceGroupName -Name -VirtualWanResourceGroupName + -VirtualWanName [-IpAddress ] [-AddressSpace ] [-DeviceModel ] + [-DeviceVendor ] [-LinkSpeedInMbps ] [-BgpAsn ] [-BgpPeeringAddress ] + [-BgpPeeringWeight ] [-VpnSiteLink ] [-O365Policy ] + [-Tag ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVpnSiteNameByVirtualWanResourceId +```powershell +Update-AzVpnSite -ResourceGroupName -Name -VirtualWanId [-IpAddress ] + [-AddressSpace ] [-DeviceModel ] [-DeviceVendor ] [-LinkSpeedInMbps ] + [-BgpAsn ] [-BgpPeeringAddress ] [-BgpPeeringWeight ] [-VpnSiteLink ] + [-O365Policy ] [-Tag ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVpnSiteNameByVirtualWanObject +```powershell +Update-AzVpnSite -ResourceGroupName -Name -VirtualWan [-IpAddress ] + [-AddressSpace ] [-DeviceModel ] [-DeviceVendor ] [-LinkSpeedInMbps ] + [-BgpAsn ] [-BgpPeeringAddress ] [-BgpPeeringWeight ] [-VpnSiteLink ] + [-O365Policy ] [-Tag ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVpnSiteObjectByVirtualWanName +```powershell +Update-AzVpnSite -InputObject -VirtualWanResourceGroupName -VirtualWanName + [-IpAddress ] [-AddressSpace ] [-DeviceModel ] [-DeviceVendor ] + [-LinkSpeedInMbps ] [-BgpAsn ] [-BgpPeeringAddress ] [-BgpPeeringWeight ] + [-VpnSiteLink ] [-O365Policy ] [-Tag ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVpnSiteObjectByVirtualWanResourceId +```powershell +Update-AzVpnSite -InputObject -VirtualWanId [-IpAddress ] + [-AddressSpace ] [-DeviceModel ] [-DeviceVendor ] [-LinkSpeedInMbps ] + [-BgpAsn ] [-BgpPeeringAddress ] [-BgpPeeringWeight ] [-VpnSiteLink ] + [-O365Policy ] [-Tag ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVpnSiteObjectByVirtualWanObject +```powershell +Update-AzVpnSite -InputObject -VirtualWan [-IpAddress ] + [-AddressSpace ] [-DeviceModel ] [-DeviceVendor ] [-LinkSpeedInMbps ] + [-BgpAsn ] [-BgpPeeringAddress ] [-BgpPeeringWeight ] [-VpnSiteLink ] + [-O365Policy ] [-Tag ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVpnSiteObjectNoVirtualWanUpdate +```powershell +Update-AzVpnSite -InputObject [-IpAddress ] [-AddressSpace ] + [-DeviceModel ] [-DeviceVendor ] [-LinkSpeedInMbps ] [-BgpAsn ] + [-BgpPeeringAddress ] [-BgpPeeringWeight ] [-VpnSiteLink ] + [-O365Policy ] [-Tag ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVpnSiteResourceIdByVirtualWanName +```powershell +Update-AzVpnSite -ResourceId -VirtualWanResourceGroupName -VirtualWanName + [-IpAddress ] [-AddressSpace ] [-DeviceModel ] [-DeviceVendor ] + [-LinkSpeedInMbps ] [-BgpAsn ] [-BgpPeeringAddress ] [-BgpPeeringWeight ] + [-VpnSiteLink ] [-O365Policy ] [-Tag ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByVpnSiteResourceIdByVirtualWanResourceId +```powershell +Update-AzVpnSite -ResourceId -VirtualWanId [-IpAddress ] [-AddressSpace ] + [-DeviceModel ] [-DeviceVendor ] [-LinkSpeedInMbps ] [-BgpAsn ] + [-BgpPeeringAddress ] [-BgpPeeringWeight ] [-VpnSiteLink ] + [-O365Policy ] [-Tag ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVpnSiteResourceIdByVirtualWanObject +```powershell +Update-AzVpnSite -ResourceId -VirtualWan [-IpAddress ] + [-AddressSpace ] [-DeviceModel ] [-DeviceVendor ] [-LinkSpeedInMbps ] + [-BgpAsn ] [-BgpPeeringAddress ] [-BgpPeeringWeight ] [-VpnSiteLink ] + [-O365Policy ] [-Tag ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByVpnSiteResourceIdNoVirtualWanUpdate +```powershell +Update-AzVpnSite -ResourceId [-IpAddress ] [-AddressSpace ] [-DeviceModel ] + [-DeviceVendor ] [-LinkSpeedInMbps ] [-BgpAsn ] [-BgpPeeringAddress ] + [-BgpPeeringWeight ] [-VpnSiteLink ] [-O365Policy ] + [-Tag ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 + +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName testRG -Name myVirtualWAN -Location "West US" +$vpnSiteAddressSpaces = New-Object string[] 2 +$vpnSiteAddressSpaces[0] = "192.168.2.0/24" +$vpnSiteAddressSpaces[1] = "192.168.3.0/24" +New-AzVpnSite -ResourceGroupName "testRG" -Name "testVpnSite" -Location "West US" -VirtualWan $virtualWan -IpAddress "1.2.3.4" -AddressSpace $vpnSiteAddressSpaces -DeviceModel "SomeDevice" -DeviceVendor "SomeDeviceVendor" -LinkSpeedInMbps "10" +New-AzVpnSite -ResourceGroupName "testRG" -Name "testVpnSite" -Location "West US" -VirtualWan $virtualWan -IpAddress "2.3.5.5" +``` + +```output +ResourceGroupName : testRG +Name : testVpnSite +Id : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/vpnSites/testVpnSite +Location : eastus2euap +IpAddress : 2.3.4.5 +VirtualWan : /subscriptions/{subscriptionId}/resourceGroups/testRG/providers/Microsoft.Network/virtualWans/myVirtualWAN +AddressSpace : {192.168.2.0/24, 192.168.3.0/24} +BgpSettings : +Type : Microsoft.Network/vpnSites +ProvisioningState : Succeeded +``` + +The above will create a resource group, Virtual WAN in West US in "testRG" resource group in Azure. + +Then it creates a VpnSite to represent a customer branch and links it to the Virtual WAN. + +Once the site is created, it updates the IpAddress of the site using the Set-AzVpnSite command. + + +#### New-AzVpnSiteLink + +#### SYNOPSIS +Creates an Azure VpnSiteLink object. + +#### SYNTAX + ++ ByVpnSiteLinkIpAddress +```powershell +New-AzVpnSiteLink -Name -IPAddress [-LinkProviderName ] [-LinkSpeedInMbps ] + [-BGPAsn ] [-BGPPeeringAddress ] [-DefaultProfile ] + [] +``` + ++ ByVpnSiteLinkFqdn +```powershell +New-AzVpnSiteLink -Name -Fqdn [-LinkProviderName ] [-LinkSpeedInMbps ] + [-BGPAsn ] [-BGPPeeringAddress ] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName testRG -Name myVirtualWAN -Location "West US" +$vpnSiteAddressSpaces = New-Object string[] 2 +$vpnSiteAddressSpaces[0] = "192.168.2.0/24" +$vpnSiteAddressSpaces[1] = "192.168.3.0/24" + +$vpnSiteLink = New-AzVpnSiteLink -Name "testVpnSiteLink1" -IpAddress "15.25.35.45" -LinkProviderName "SomeTelecomProvider" -LinkSpeedInMbps "10" +$vpnSite = New-AzVpnSite -ResourceGroupName "testRG" -Name "testVpnSite" -Location "West US" -VirtualWan $virtualWan -AddressSpace $vpnSiteAddressSpaces -DeviceModel "SomeDevice" -DeviceVendor "SomeDeviceVendor" -VpnSiteLink @($vpnSiteLink) +``` + +The above will create a resource group, Virtual WAN and a VpnSite with 1 VpnSiteLinks in West US in "testRG" resource group in Azure. + ++ Example 2 + +Creates an Azure VpnSiteLink object. (autogenerated) + + + + +```powershell +New-AzVpnSiteLink -BGPAsn -BGPPeeringAddress -IPAddress '15.25.35.45' -LinkProviderName 'SomeTelecomProvider' -LinkSpeedInMbps '10' -Name 'testVpnSiteLink1' +``` + + +#### New-AzVpnSiteLinkConnection + +#### SYNOPSIS +Creates an Azure VpnSiteLinkConnection object. + +#### SYNTAX + +```powershell +New-AzVpnSiteLinkConnection -Name -VpnSiteLink [-SharedKey ] + [-ConnectionBandwidth ] [-RoutingWeight ] [-IpSecPolicy ] + [-VpnConnectionProtocolType ] [-EnableBgp] [-UseLocalAzureIpAddress] [-UsePolicyBasedTrafficSelectors] + [-IngressNatRule ] [-EgressNatRule ] + [-VpnGatewayCustomBgpAddress ] [-VpnLinkConnectionMode ] + [-DefaultProfile ] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +New-AzResourceGroup -Location "West US" -Name "testRG" +$virtualWan = New-AzVirtualWan -ResourceGroupName testRG -Name myVirtualWAN -Location "West US" +$virtualHub = New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.0.1/24" +New-AzVpnGateway -ResourceGroupName "testRG" -Name "testvpngw" -VirtualHubId $virtualHub.Id -VpnGatewayScaleUnit 2 +$vpnGateway = Get-AzVpnGateway -ResourceGroupName "testRG" -Name "testvpngw" + +$vpnSiteAddressSpaces = New-Object string[] 2 +$vpnSiteAddressSpaces[0] = "192.168.2.0/24" +$vpnSiteAddressSpaces[1] = "192.168.3.0/24" + +$vpnSiteLink = New-AzVpnSiteLink -Name "testVpnSiteLink1" -IpAddress "15.25.35.45" -LinkProviderName "SomeTelecomProvider" -LinkSpeedInMbps "10" +$vpnSite = New-AzVpnSite -ResourceGroupName "testRG" -Name "testVpnSite" -Location "West US" -VirtualWan $virtualWan -AddressSpace $vpnSiteAddressSpaces -DeviceModel "SomeDevice" -DeviceVendor "SomeDeviceVendor" -VpnSiteLink @($vpnSiteLink) + + +$vpnSiteLinkConnection = New-AzVpnSiteLinkConnection -Name "testLinkConnection1" -VpnSiteLink $vpnSite.VpnSiteLinks[0] -ConnectionBandwidth 100 + +New-AzVpnConnection -ResourceGroupName $vpnGateway.ResourceGroupName -ParentResourceName $vpnGateway.Name -Name "testConnection" -VpnSite $vpnSite -VpnSiteLinkConnection @($vpnSiteLinkConnection) +``` + +The above will create a resource group, Virtual WAN, Virtual Network, Virtual Hub and a VpnSite with 1 VpnSiteLinks in West US in "testRG" resource group in Azure. +A VPN gateway will be created thereafter in the Virtual Hub. +Once the gateway has been created, it is connected to the VpnSite using the New-AzVpnConnection command with 1 VpnSiteLinkConnections to the VpnSiteLink of the VpnSite. + ++ Example 2 VpnGatewayCustomBgpAddress +```powershell +$vpnSite = Get-AzVpnSite -ResourceGroupName PS_testing -Name testsite +$vpnGateway = Get-AzVpnGateway -ResourceGroupName PS_testing -Name 196ddf92afae40e4b20edc32dfb48a63-eastus-gw + +$address = New-AzGatewayCustomBgpIpConfigurationObject -IpConfigurationId "Instance0" -CustomBgpIpAddress "169.254.22.1" +$address2 = New-AzGatewayCustomBgpIpConfigurationObject -IpConfigurationId "Instance1" -CustomBgpIpAddress "169.254.22.3" + +$vpnSiteLinkConnection = New-AzVpnSiteLinkConnection -Name "testLinkConnection1" -VpnSiteLink $vpnSite.VpnSiteLinks[0] -ConnectionBandwidth 100 -VpnGatewayCustomBgpAddress $address,$address2 -EnableBgp + +New-AzVpnConnection -ResourceGroupName $vpnGateway.ResourceGroupName -ParentResourceName $vpnGateway.Name -Name "testConnection" -VpnSite $vpnSite -VpnSiteLinkConnection @($vpnSiteLinkConnection) +``` + +The above will create AzGatewayCustomBgpIpConfigurationObject 1 VpnSiteLinks with VpnConnection in "PS_testing" resource group in Azure. +Once connection is created, it is connected to the VpnSite using the New-AzVpnConnection command with 1 VpnSiteLinkConnections to the VpnSiteLink of the VpnSite. +This connection will use provided GatewayCustomBgpIpAddress for Bgp connection at VpnGateway side. + + +#### Reset-AzVpnSiteLinkConnection + +#### SYNOPSIS +Reset a VPN Site Link Connection + +#### SYNTAX + ++ ByName (Default) +```powershell +Reset-AzVpnSiteLinkConnection -ResourceGroupName -VpnGatewayName -VpnConnectionName + -Name [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + ++ ByInputObject +```powershell +Reset-AzVpnSiteLinkConnection -InputObject [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + ++ ByResourceId +```powershell +Reset-AzVpnSiteLinkConnection -ResourceId [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Reset-AzVpnSiteLinkConnection -ResourceGroupName test-rg -VpnGatewayName test-gateway -VpnConnectionName test-connection -ResourceName test-linkConnection +``` + +Resets the VPN Site Link Connection with the name "test-linkConnection" within the resource group "test-rg" + + +#### Get-AzVpnSiteLinkConnectionIkeSa + +#### SYNOPSIS +Get IKE Security Associations of VPN Site Link Connections + +#### SYNTAX + ++ ByName (Default) +```powershell +Get-AzVpnSiteLinkConnectionIkeSa -ResourceGroupName -VpnGatewayName + -VpnConnectionName -Name [-AsJob] [-DefaultProfile ] + [] +``` + ++ ByInputObject +```powershell +Get-AzVpnSiteLinkConnectionIkeSa -InputObject [-AsJob] + [-DefaultProfile ] [] +``` + ++ ByResourceId +```powershell +Get-AzVpnSiteLinkConnectionIkeSa -ResourceId [-AsJob] [-DefaultProfile ] + [] +``` + +#### EXAMPLES + ++ Example 1 +```powershell +Get-AzVpnSiteLinkConnectionIkeSa -ResourceGroupName test-rg -VpnGatewayName test-gateway -VpnConnectionName test-connection -ResourceName test-linkConnection +``` + +```output +LocalEndpoint : 52.148.27.69 +RemoteEndpoint : 13.78.223.113 +InitiatorCookie : 10994953846917485010 +ResponderCookie : 4652217515638795111 +LocalUdpEncapsulationPort : 0 +RemoteUdpEncapsulationPort : 0 +Encryption : AES256 +Integrity : SHA1 +DhGroup : DHGroup2 +LifeTimeSeconds : 28800 +IsSaInitiator : True +ElapsedTimeInseconds : 21437 +Quick Mode SA : 1 item(s) +``` + +Returns the IKE Security Associations for the VPN Site Link Connection with the name "test-linkConnection" within the resource group "test-rg" + + diff --git a/src/Network/Network/help/Get-AzVirtualNetworkAppliance.md b/src/Network/Network/help/Get-AzVirtualNetworkAppliance.md new file mode 100644 index 000000000000..91314fd7541b --- /dev/null +++ b/src/Network/Network/help/Get-AzVirtualNetworkAppliance.md @@ -0,0 +1,129 @@ +--- +external help file: Microsoft.Azure.PowerShell.Cmdlets.Network.dll-Help.xml +Module Name: Az.Network +online version: https://learn.microsoft.com/powershell/module/az.network/get-azvirtualnetworkappliance +schema: 2.0.0 +--- + +# Get-AzVirtualNetworkAppliance + +## SYNOPSIS +Gets a Virtual Network Appliance (VNA) resource. + +## SYNTAX + +### ResourceNameParameterSet (Default) +``` +Get-AzVirtualNetworkAppliance [-Name ] [-ResourceGroupName ] + [-DefaultProfile ] [] +``` + +### ResourceIdParameterSet +``` +Get-AzVirtualNetworkAppliance -ResourceId [-DefaultProfile ] + [] +``` + +## DESCRIPTION +The Get-AzVirtualNetworkAppliance cmdlet retrieves a Virtual Network Appliance resource. +You can get a specific VNA by name and resource group, by resource ID, or list all VNAs in a resource group or subscription. + +## EXAMPLES + +### Example 1: Get a VNA by name +```powershell +Get-AzVirtualNetworkAppliance -Name "myVNA" -ResourceGroupName "myResourceGroup" +``` + +Gets a Virtual Network Appliance named "myVNA" in the resource group "myResourceGroup". + +### Example 2: List all VNAs in a resource group +```powershell +Get-AzVirtualNetworkAppliance -ResourceGroupName "myResourceGroup" +``` + +Lists all Virtual Network Appliances in the specified resource group. + +### Example 3: Get a VNA by resource ID +```powershell +Get-AzVirtualNetworkAppliance -ResourceId "/subscriptions/xxx/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworkAppliances/myVNA" +``` + +Gets a Virtual Network Appliance by its Azure resource ID. + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer +Parameter Sets: (All) +Aliases: AzContext, AzureRmContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name +The resource name. + +```yaml +Type: System.String +Parameter Sets: ResourceNameParameterSet +Aliases: ResourceName + +Required: False +Position: Named +Default value: None +Accept pipeline input: True (ByPropertyName) +Accept wildcard characters: False +``` + +### -ResourceGroupName +The resource group name. + +```yaml +Type: System.String +Parameter Sets: ResourceNameParameterSet +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: True (ByPropertyName) +Accept wildcard characters: False +``` + +### -ResourceId +The resource Id. + +```yaml +Type: System.String +Parameter Sets: ResourceIdParameterSet +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByPropertyName) +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### System.String + +## OUTPUTS + +### Microsoft.Azure.Commands.Network.Models.PSVirtualNetworkAppliance + +## NOTES + +## RELATED LINKS diff --git a/src/Network/Network/help/New-AzVirtualNetworkAppliance.md b/src/Network/Network/help/New-AzVirtualNetworkAppliance.md new file mode 100644 index 000000000000..7ec6d1bbbea6 --- /dev/null +++ b/src/Network/Network/help/New-AzVirtualNetworkAppliance.md @@ -0,0 +1,227 @@ +--- +external help file: Microsoft.Azure.PowerShell.Cmdlets.Network.dll-Help.xml +Module Name: Az.Network +online version: https://learn.microsoft.com/powershell/module/az.network/new-azvirtualnetworkappliance +schema: 2.0.0 +--- + +# New-AzVirtualNetworkAppliance + +## SYNOPSIS +Creates a new Virtual Network Appliance (VNA) resource. + +## SYNTAX + +``` +New-AzVirtualNetworkAppliance -Name -ResourceGroupName -Location -SubnetId + -Bandwidth [-Tag ] [-Force] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION +The New-AzVirtualNetworkAppliance cmdlet creates a new Virtual Network Appliance resource in Azure. +A Virtual Network Appliance is a network device that provides network functions such as firewalling, +load balancing, or routing within a virtual network. + +## EXAMPLES + +### Example 1: Create a Virtual Network Appliance +```powershell +$subnet = Get-AzVirtualNetworkSubnetConfig -Name "VirtualNetworkApplianceSubnet" -VirtualNetwork (Get-AzVirtualNetwork -Name "myVnet" -ResourceGroupName "myResourceGroup") +New-AzVirtualNetworkAppliance -Name "myVNA" -ResourceGroupName "myResourceGroup" -Location "eastus" -SubnetId $subnet.Id -Bandwidth "50" +``` + +Creates a new Virtual Network Appliance named "myVNA" in the specified subnet with 50 Gbps bandwidth. + +### Example 2: Create a Virtual Network Appliance with tags +```powershell +$subnet = Get-AzVirtualNetworkSubnetConfig -Name "VirtualNetworkApplianceSubnet" -VirtualNetwork (Get-AzVirtualNetwork -Name "myVnet" -ResourceGroupName "myResourceGroup") +New-AzVirtualNetworkAppliance -Name "myVNA" -ResourceGroupName "myResourceGroup" -Location "eastus" -SubnetId $subnet.Id -Bandwidth "100" -Tag @{"Environment" = "Production"} +``` + +Creates a new Virtual Network Appliance with 100 Gbps bandwidth and a tag. + +## PARAMETERS + +### -AsJob +Run cmdlet in the background + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Bandwidth +Bandwidth of the Virtual Network Appliance in Gbps. Valid values are: 50, 100, 200. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByPropertyName) +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer +Parameter Sets: (All) +Aliases: AzContext, AzureRmContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Force +Do not ask for confirmation if you want to overwrite a resource + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Location +The location. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByPropertyName) +Accept wildcard characters: False +``` + +### -Name +The resource name. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: ResourceName + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByPropertyName) +Accept wildcard characters: False +``` + +### -ResourceGroupName +The resource group name. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByPropertyName) +Accept wildcard characters: False +``` + +### -SubnetId +The subnet resource ID for the Virtual Network Appliance. The subnet must be named "VirtualNetworkApplianceSubnet". + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByPropertyName) +Accept wildcard characters: False +``` + +### -Tag +A hashtable which represents resource tags. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: True (ByPropertyName) +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### System.String + +### System.Collections.Hashtable + +## OUTPUTS + +### Microsoft.Azure.Commands.Network.Models.PSVirtualNetworkAppliance + +## NOTES + +## RELATED LINKS diff --git a/src/Network/Network/help/Remove-AzVirtualNetworkAppliance.md b/src/Network/Network/help/Remove-AzVirtualNetworkAppliance.md new file mode 100644 index 000000000000..2be43f9c9696 --- /dev/null +++ b/src/Network/Network/help/Remove-AzVirtualNetworkAppliance.md @@ -0,0 +1,228 @@ +--- +external help file: Microsoft.Azure.PowerShell.Cmdlets.Network.dll-Help.xml +Module Name: Az.Network +online version: https://learn.microsoft.com/powershell/module/az.network/remove-azvirtualnetworkappliance +schema: 2.0.0 +--- + +# Remove-AzVirtualNetworkAppliance + +## SYNOPSIS +Removes a Virtual Network Appliance (VNA) resource. + +## SYNTAX + +### ResourceNameParameterSet (Default) +``` +Remove-AzVirtualNetworkAppliance -Name -ResourceGroupName [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + +### ResourceIdParameterSet +``` +Remove-AzVirtualNetworkAppliance -ResourceId [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + +### InputObjectParameterSet +``` +Remove-AzVirtualNetworkAppliance -InputObject [-Force] [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION +The Remove-AzVirtualNetworkAppliance cmdlet removes a Virtual Network Appliance resource from Azure. +You can specify the VNA to remove by name and resource group, by resource ID, or by passing an input object. + +## EXAMPLES + +### Example 1: Remove a VNA by name +```powershell +Remove-AzVirtualNetworkAppliance -Name "myVNA" -ResourceGroupName "myResourceGroup" -Force +``` + +Removes a Virtual Network Appliance named "myVNA" from the specified resource group without prompting for confirmation. + +### Example 2: Remove a VNA by resource ID +```powershell +Remove-AzVirtualNetworkAppliance -ResourceId "/subscriptions/xxx/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworkAppliances/myVNA" -Force +``` + +Removes a Virtual Network Appliance by its Azure resource ID. + +### Example 3: Remove a VNA using pipeline +```powershell +Get-AzVirtualNetworkAppliance -Name "myVNA" -ResourceGroupName "myResourceGroup" | Remove-AzVirtualNetworkAppliance -Force +``` + +Gets a Virtual Network Appliance and removes it using the pipeline. + +## PARAMETERS + +### -AsJob +Run cmdlet in the background + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer +Parameter Sets: (All) +Aliases: AzContext, AzureRmContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Force +Do not ask for confirmation. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +The Virtual Network Appliance object. + +```yaml +Type: Microsoft.Azure.Commands.Network.Models.PSVirtualNetworkAppliance +Parameter Sets: InputObjectParameterSet +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The resource name. + +```yaml +Type: System.String +Parameter Sets: ResourceNameParameterSet +Aliases: ResourceName + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByPropertyName) +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the operation succeeds. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The resource group name. + +```yaml +Type: System.String +Parameter Sets: ResourceNameParameterSet +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByPropertyName) +Accept wildcard characters: False +``` + +### -ResourceId +The resource Id. + +```yaml +Type: System.String +Parameter Sets: ResourceIdParameterSet +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByPropertyName) +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### System.String + +### Microsoft.Azure.Commands.Network.Models.PSVirtualNetworkAppliance + +## OUTPUTS + +### System.Boolean + +## NOTES + +## RELATED LINKS diff --git a/src/Network/Network/help/Update-AzVirtualNetworkAppliance.md b/src/Network/Network/help/Update-AzVirtualNetworkAppliance.md new file mode 100644 index 000000000000..909893a8b44d --- /dev/null +++ b/src/Network/Network/help/Update-AzVirtualNetworkAppliance.md @@ -0,0 +1,215 @@ +--- +external help file: Microsoft.Azure.PowerShell.Cmdlets.Network.dll-Help.xml +Module Name: Az.Network +online version: https://learn.microsoft.com/powershell/module/az.network/update-azvirtualnetworkappliance +schema: 2.0.0 +--- + +# Update-AzVirtualNetworkAppliance + +## SYNOPSIS +Updates a Virtual Network Appliance (VNA) resource. + +## SYNTAX + +### ResourceNameParameterSet (Default) +``` +Update-AzVirtualNetworkAppliance -Name -ResourceGroupName [-Tag ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + +### ResourceIdParameterSet +``` +Update-AzVirtualNetworkAppliance -ResourceId [-Tag ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + +### InputObjectParameterSet +``` +Update-AzVirtualNetworkAppliance -InputObject [-Tag ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION +The Update-AzVirtualNetworkAppliance cmdlet updates a Virtual Network Appliance resource in Azure. +Currently supports updating tags on the VNA resource. + +## EXAMPLES + +### Example 1: Update VNA tags by name +```powershell +Update-AzVirtualNetworkAppliance -Name "myVNA" -ResourceGroupName "myResourceGroup" -Tag @{"Environment" = "Production"; "Team" = "Network"} +``` + +Updates the tags on a Virtual Network Appliance named "myVNA". + +### Example 2: Update VNA tags by resource ID +```powershell +Update-AzVirtualNetworkAppliance -ResourceId "/subscriptions/xxx/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworkAppliances/myVNA" -Tag @{"Environment" = "Staging"} +``` + +Updates the tags on a Virtual Network Appliance using its resource ID. + +### Example 3: Update VNA using pipeline +```powershell +Get-AzVirtualNetworkAppliance -Name "myVNA" -ResourceGroupName "myResourceGroup" | Update-AzVirtualNetworkAppliance -Tag @{"Updated" = "true"} +``` + +Gets a Virtual Network Appliance and updates its tags using the pipeline. + +## PARAMETERS + +### -AsJob +Run cmdlet in the background + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer +Parameter Sets: (All) +Aliases: AzContext, AzureRmContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +The Virtual Network Appliance object. + +```yaml +Type: Microsoft.Azure.Commands.Network.Models.PSVirtualNetworkAppliance +Parameter Sets: InputObjectParameterSet +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The resource name. + +```yaml +Type: System.String +Parameter Sets: ResourceNameParameterSet +Aliases: ResourceName + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByPropertyName) +Accept wildcard characters: False +``` + +### -ResourceGroupName +The resource group name. + +```yaml +Type: System.String +Parameter Sets: ResourceNameParameterSet +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByPropertyName) +Accept wildcard characters: False +``` + +### -ResourceId +The resource Id. + +```yaml +Type: System.String +Parameter Sets: ResourceIdParameterSet +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByPropertyName) +Accept wildcard characters: False +``` + +### -Tag +A hashtable which represents resource tags. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: True (ByPropertyName) +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### System.String + +### Microsoft.Azure.Commands.Network.Models.PSVirtualNetworkAppliance + +### System.Collections.Hashtable + +## OUTPUTS + +### Microsoft.Azure.Commands.Network.Models.PSVirtualNetworkAppliance + +## NOTES + +## RELATED LINKS