From 92d3dddcaf3d72ae4adb265f8e572f928d54319b Mon Sep 17 00:00:00 2001 From: Pranav Nair Date: Mon, 15 Jul 2024 18:46:57 -0700 Subject: [PATCH 1/7] .net sdk updates for privatedns to include new resolutionPolicy feature --- ...sourceManager.PrivateDns.netstandard2.0.cs | 23 ++++++++- .../Generated/ArmPrivateDnsModelFactory.cs | 24 ++++++++- ...MockablePrivateDnsResourceGroupResource.cs | 4 +- .../MockablePrivateDnsSubscriptionResource.cs | 4 +- .../Extensions/PrivateDnsExtensions.cs | 8 +-- .../src/Generated/Models/ResolutionPolicy.cs | 51 +++++++++++++++++++ .../src/Generated/PrivateDnsZoneCollection.cs | 20 ++++---- .../PrivateZonesRestOperations.cs | 2 +- .../RecordSetsRestOperations.cs | 2 +- .../VirtualNetworkLinksRestOperations.cs | 2 +- .../Generated/VirtualNetworkLinkCollection.cs | 20 ++++---- .../VirtualNetworkLinkData.Serialization.cs | 16 ++++++ .../src/Generated/VirtualNetworkLinkData.cs | 6 ++- .../Generated/VirtualNetworkLinkResource.cs | 24 ++++----- .../src/autorest.md | 2 +- .../tests/PrivateDnsManagementTestBase.cs | 7 +++ .../tests/Scenario/PrivateDnsTests.cs | 38 ++++++++++++++ 17 files changed, 206 insertions(+), 47 deletions(-) create mode 100644 sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/ResolutionPolicy.cs diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/api/Azure.ResourceManager.PrivateDns.netstandard2.0.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/api/Azure.ResourceManager.PrivateDns.netstandard2.0.cs index f56e7515368c..dc824b8ba570 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/api/Azure.ResourceManager.PrivateDns.netstandard2.0.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/api/Azure.ResourceManager.PrivateDns.netstandard2.0.cs @@ -466,6 +466,7 @@ public VirtualNetworkLinkData(Azure.Core.AzureLocation location) { } public Azure.ETag? ETag { get { throw null; } set { } } public Azure.ResourceManager.PrivateDns.Models.PrivateDnsProvisioningState? PrivateDnsProvisioningState { get { throw null; } } public bool? RegistrationEnabled { get { throw null; } set { } } + public Azure.ResourceManager.PrivateDns.Models.ResolutionPolicy? ResolutionPolicy { get { throw null; } set { } } public Azure.Core.ResourceIdentifier VirtualNetworkId { get { throw null; } set { } } public Azure.ResourceManager.PrivateDns.Models.VirtualNetworkLinkState? VirtualNetworkLinkState { get { throw null; } } Azure.ResourceManager.PrivateDns.VirtualNetworkLinkData System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } @@ -535,7 +536,9 @@ namespace Azure.ResourceManager.PrivateDns.Models public static partial class ArmPrivateDnsModelFactory { public static Azure.ResourceManager.PrivateDns.PrivateDnsZoneData PrivateDnsZoneData(Azure.Core.ResourceIdentifier id = null, string name = null, Azure.Core.ResourceType resourceType = default(Azure.Core.ResourceType), Azure.ResourceManager.Models.SystemData systemData = null, System.Collections.Generic.IDictionary tags = null, Azure.Core.AzureLocation location = default(Azure.Core.AzureLocation), Azure.ETag? etag = default(Azure.ETag?), long? maxNumberOfRecords = default(long?), long? numberOfRecords = default(long?), long? maxNumberOfVirtualNetworkLinks = default(long?), long? numberOfVirtualNetworkLinks = default(long?), long? maxNumberOfVirtualNetworkLinksWithRegistration = default(long?), long? numberOfVirtualNetworkLinksWithRegistration = default(long?), Azure.ResourceManager.PrivateDns.Models.PrivateDnsProvisioningState? privateDnsProvisioningState = default(Azure.ResourceManager.PrivateDns.Models.PrivateDnsProvisioningState?), string internalId = null) { throw null; } - public static Azure.ResourceManager.PrivateDns.VirtualNetworkLinkData VirtualNetworkLinkData(Azure.Core.ResourceIdentifier id = null, string name = null, Azure.Core.ResourceType resourceType = default(Azure.Core.ResourceType), Azure.ResourceManager.Models.SystemData systemData = null, System.Collections.Generic.IDictionary tags = null, Azure.Core.AzureLocation location = default(Azure.Core.AzureLocation), Azure.ETag? etag = default(Azure.ETag?), Azure.Core.ResourceIdentifier virtualNetworkId = null, bool? registrationEnabled = default(bool?), Azure.ResourceManager.PrivateDns.Models.VirtualNetworkLinkState? virtualNetworkLinkState = default(Azure.ResourceManager.PrivateDns.Models.VirtualNetworkLinkState?), Azure.ResourceManager.PrivateDns.Models.PrivateDnsProvisioningState? privateDnsProvisioningState = default(Azure.ResourceManager.PrivateDns.Models.PrivateDnsProvisioningState?)) { throw null; } + public static Azure.ResourceManager.PrivateDns.VirtualNetworkLinkData VirtualNetworkLinkData(Azure.Core.ResourceIdentifier id = null, string name = null, Azure.Core.ResourceType resourceType = default(Azure.Core.ResourceType), Azure.ResourceManager.Models.SystemData systemData = null, System.Collections.Generic.IDictionary tags = null, Azure.Core.AzureLocation location = default(Azure.Core.AzureLocation), Azure.ETag? etag = default(Azure.ETag?), Azure.Core.ResourceIdentifier virtualNetworkId = null, bool? registrationEnabled = default(bool?), Azure.ResourceManager.PrivateDns.Models.ResolutionPolicy? resolutionPolicy = default(Azure.ResourceManager.PrivateDns.Models.ResolutionPolicy?), Azure.ResourceManager.PrivateDns.Models.VirtualNetworkLinkState? virtualNetworkLinkState = default(Azure.ResourceManager.PrivateDns.Models.VirtualNetworkLinkState?), Azure.ResourceManager.PrivateDns.Models.PrivateDnsProvisioningState? privateDnsProvisioningState = default(Azure.ResourceManager.PrivateDns.Models.PrivateDnsProvisioningState?)) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public static Azure.ResourceManager.PrivateDns.VirtualNetworkLinkData VirtualNetworkLinkData(Azure.Core.ResourceIdentifier id, string name, Azure.Core.ResourceType resourceType, Azure.ResourceManager.Models.SystemData systemData, System.Collections.Generic.IDictionary tags, Azure.Core.AzureLocation location, Azure.ETag? etag, Azure.Core.ResourceIdentifier virtualNetworkId, bool? registrationEnabled, Azure.ResourceManager.PrivateDns.Models.VirtualNetworkLinkState? virtualNetworkLinkState, Azure.ResourceManager.PrivateDns.Models.PrivateDnsProvisioningState? privateDnsProvisioningState) { throw null; } } public partial class PrivateDnsAaaaRecordInfo : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel { @@ -640,6 +643,24 @@ public PrivateDnsTxtRecordInfo() { } System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } } [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] + public readonly partial struct ResolutionPolicy : System.IEquatable + { + private readonly object _dummy; + private readonly int _dummyPrimitive; + public ResolutionPolicy(string value) { throw null; } + public static Azure.ResourceManager.PrivateDns.Models.ResolutionPolicy Default { get { throw null; } } + public static Azure.ResourceManager.PrivateDns.Models.ResolutionPolicy NxDomainRedirect { get { throw null; } } + public bool Equals(Azure.ResourceManager.PrivateDns.Models.ResolutionPolicy other) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public override bool Equals(object obj) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public override int GetHashCode() { throw null; } + public static bool operator ==(Azure.ResourceManager.PrivateDns.Models.ResolutionPolicy left, Azure.ResourceManager.PrivateDns.Models.ResolutionPolicy right) { throw null; } + public static implicit operator Azure.ResourceManager.PrivateDns.Models.ResolutionPolicy (string value) { throw null; } + public static bool operator !=(Azure.ResourceManager.PrivateDns.Models.ResolutionPolicy left, Azure.ResourceManager.PrivateDns.Models.ResolutionPolicy right) { throw null; } + public override string ToString() { throw null; } + } + [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] public readonly partial struct VirtualNetworkLinkState : System.IEquatable { private readonly object _dummy; diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/ArmPrivateDnsModelFactory.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/ArmPrivateDnsModelFactory.cs index 083b8aa7c323..f2c46004de4e 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/ArmPrivateDnsModelFactory.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/ArmPrivateDnsModelFactory.cs @@ -6,6 +6,7 @@ #nullable disable using System.Collections.Generic; +using System.ComponentModel; using System.Linq; using Azure.Core; using Azure.ResourceManager.Models; @@ -65,10 +66,11 @@ public static PrivateDnsZoneData PrivateDnsZoneData(ResourceIdentifier id = null /// The ETag of the virtual network link. /// The reference of the virtual network. /// Is auto-registration of virtual machine records in the virtual network in the Private DNS zone enabled?. + /// The resolution policy on the virtual network link. Only applicable for virtual network links to privatelink zones, and for A,AAAA,CNAME queries. When set to 'NxDomainRedirect', Azure DNS resolver falls back to public resolution if private dns query resolution results in non-existent domain response. /// The status of the virtual network link to the Private DNS zone. Possible values are 'InProgress' and 'Done'. This is a read-only property and any attempt to set this value will be ignored. /// The provisioning state of the resource. This is a read-only property and any attempt to set this value will be ignored. /// A new instance for mocking. - public static VirtualNetworkLinkData VirtualNetworkLinkData(ResourceIdentifier id = null, string name = null, ResourceType resourceType = default, SystemData systemData = null, IDictionary tags = null, AzureLocation location = default, ETag? etag = null, ResourceIdentifier virtualNetworkId = null, bool? registrationEnabled = null, VirtualNetworkLinkState? virtualNetworkLinkState = null, PrivateDnsProvisioningState? privateDnsProvisioningState = null) + public static VirtualNetworkLinkData VirtualNetworkLinkData(ResourceIdentifier id = null, string name = null, ResourceType resourceType = default, SystemData systemData = null, IDictionary tags = null, AzureLocation location = default, ETag? etag = null, ResourceIdentifier virtualNetworkId = null, bool? registrationEnabled = null, ResolutionPolicy? resolutionPolicy = null, VirtualNetworkLinkState? virtualNetworkLinkState = null, PrivateDnsProvisioningState? privateDnsProvisioningState = null) { tags ??= new Dictionary(); @@ -82,9 +84,29 @@ public static VirtualNetworkLinkData VirtualNetworkLinkData(ResourceIdentifier i etag, virtualNetworkId != null ? ResourceManagerModelFactory.WritableSubResource(virtualNetworkId) : null, registrationEnabled, + resolutionPolicy, virtualNetworkLinkState, privateDnsProvisioningState, serializedAdditionalRawData: null); } + + /// Initializes a new instance of . + /// The id. + /// The name. + /// The resourceType. + /// The systemData. + /// The tags. + /// The location. + /// The ETag of the virtual network link. + /// The reference of the virtual network. + /// Is auto-registration of virtual machine records in the virtual network in the Private DNS zone enabled?. + /// The status of the virtual network link to the Private DNS zone. Possible values are 'InProgress' and 'Done'. This is a read-only property and any attempt to set this value will be ignored. + /// The provisioning state of the resource. This is a read-only property and any attempt to set this value will be ignored. + /// A new instance for mocking. + [EditorBrowsable(EditorBrowsableState.Never)] + public static VirtualNetworkLinkData VirtualNetworkLinkData(ResourceIdentifier id, string name, ResourceType resourceType, SystemData systemData, IDictionary tags, AzureLocation location, ETag? etag, ResourceIdentifier virtualNetworkId, bool? registrationEnabled, VirtualNetworkLinkState? virtualNetworkLinkState, PrivateDnsProvisioningState? privateDnsProvisioningState) + { + return VirtualNetworkLinkData(id: id, name: name, resourceType: resourceType, systemData: systemData, tags: tags, location: location, etag: etag, virtualNetworkId: virtualNetworkId, registrationEnabled: registrationEnabled, resolutionPolicy: default, virtualNetworkLinkState: virtualNetworkLinkState, privateDnsProvisioningState: privateDnsProvisioningState); + } } } diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Extensions/MockablePrivateDnsResourceGroupResource.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Extensions/MockablePrivateDnsResourceGroupResource.cs index 907ed3ceee31..9871b6a15cb2 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Extensions/MockablePrivateDnsResourceGroupResource.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Extensions/MockablePrivateDnsResourceGroupResource.cs @@ -53,7 +53,7 @@ public virtual PrivateDnsZoneCollection GetPrivateDnsZones() /// /// /// Default Api Version - /// 2020-06-01 + /// 2024-06-01 /// /// /// Resource @@ -84,7 +84,7 @@ public virtual async Task> GetPrivateDnsZoneAsy /// /// /// Default Api Version - /// 2020-06-01 + /// 2024-06-01 /// /// /// Resource diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Extensions/MockablePrivateDnsSubscriptionResource.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Extensions/MockablePrivateDnsSubscriptionResource.cs index df9c1db3b307..8446aee4c124 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Extensions/MockablePrivateDnsSubscriptionResource.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Extensions/MockablePrivateDnsSubscriptionResource.cs @@ -52,7 +52,7 @@ private string GetApiVersionOrNull(ResourceType resourceType) /// /// /// Default Api Version - /// 2020-06-01 + /// 2024-06-01 /// /// /// Resource @@ -83,7 +83,7 @@ public virtual AsyncPageable GetPrivateDnsZonesAsync(int /// /// /// Default Api Version - /// 2020-06-01 + /// 2024-06-01 /// /// /// Resource diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Extensions/PrivateDnsExtensions.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Extensions/PrivateDnsExtensions.cs index 36e3ce663d33..7ccf5d7c68dd 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Extensions/PrivateDnsExtensions.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Extensions/PrivateDnsExtensions.cs @@ -252,7 +252,7 @@ public static PrivateDnsZoneCollection GetPrivateDnsZones(this ResourceGroupReso /// /// /// Default Api Version - /// 2020-06-01 + /// 2024-06-01 /// /// /// Resource @@ -290,7 +290,7 @@ public static async Task> GetPrivateDnsZoneAsyn /// /// /// Default Api Version - /// 2020-06-01 + /// 2024-06-01 /// /// /// Resource @@ -328,7 +328,7 @@ public static Response GetPrivateDnsZone(this ResourceGr /// /// /// Default Api Version - /// 2020-06-01 + /// 2024-06-01 /// /// /// Resource @@ -365,7 +365,7 @@ public static AsyncPageable GetPrivateDnsZonesAsync(this /// /// /// Default Api Version - /// 2020-06-01 + /// 2024-06-01 /// /// /// Resource diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/ResolutionPolicy.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/ResolutionPolicy.cs new file mode 100644 index 000000000000..2558fd940a52 --- /dev/null +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/ResolutionPolicy.cs @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ComponentModel; + +namespace Azure.ResourceManager.PrivateDns.Models +{ + /// The resolution policy on the virtual network link. Only applicable for virtual network links to privatelink zones, and for A,AAAA,CNAME queries. When set to 'NxDomainRedirect', Azure DNS resolver falls back to public resolution if private dns query resolution results in non-existent domain response. + public readonly partial struct ResolutionPolicy : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public ResolutionPolicy(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string DefaultValue = "Default"; + private const string NxDomainRedirectValue = "NxDomainRedirect"; + + /// Default. + public static ResolutionPolicy Default { get; } = new ResolutionPolicy(DefaultValue); + /// NxDomainRedirect. + public static ResolutionPolicy NxDomainRedirect { get; } = new ResolutionPolicy(NxDomainRedirectValue); + /// Determines if two values are the same. + public static bool operator ==(ResolutionPolicy left, ResolutionPolicy right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(ResolutionPolicy left, ResolutionPolicy right) => !left.Equals(right); + /// Converts a string to a . + public static implicit operator ResolutionPolicy(string value) => new ResolutionPolicy(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is ResolutionPolicy other && Equals(other); + /// + public bool Equals(ResolutionPolicy other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + /// + public override string ToString() => _value; + } +} diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/PrivateDnsZoneCollection.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/PrivateDnsZoneCollection.cs index da015b96d9f4..80ab55326d48 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/PrivateDnsZoneCollection.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/PrivateDnsZoneCollection.cs @@ -65,7 +65,7 @@ internal static void ValidateResourceId(ResourceIdentifier id) /// /// /// Default Api Version - /// 2020-06-01 + /// 2024-06-01 /// /// /// Resource @@ -116,7 +116,7 @@ public virtual async Task> CreateOrUpdateAs /// /// /// Default Api Version - /// 2020-06-01 + /// 2024-06-01 /// /// /// Resource @@ -167,7 +167,7 @@ public virtual ArmOperation CreateOrUpdate(WaitUntil wai /// /// /// Default Api Version - /// 2020-06-01 + /// 2024-06-01 /// /// /// Resource @@ -212,7 +212,7 @@ public virtual async Task> GetAsync(string priv /// /// /// Default Api Version - /// 2020-06-01 + /// 2024-06-01 /// /// /// Resource @@ -257,7 +257,7 @@ public virtual Response Get(string privateZoneName, Canc /// /// /// Default Api Version - /// 2020-06-01 + /// 2024-06-01 /// /// /// Resource @@ -288,7 +288,7 @@ public virtual AsyncPageable GetAllAsync(int? top = null /// /// /// Default Api Version - /// 2020-06-01 + /// 2024-06-01 /// /// /// Resource @@ -319,7 +319,7 @@ public virtual Pageable GetAll(int? top = null, Cancella /// /// /// Default Api Version - /// 2020-06-01 + /// 2024-06-01 /// /// /// Resource @@ -362,7 +362,7 @@ public virtual async Task> ExistsAsync(string privateZoneName, Ca /// /// /// Default Api Version - /// 2020-06-01 + /// 2024-06-01 /// /// /// Resource @@ -405,7 +405,7 @@ public virtual Response Exists(string privateZoneName, CancellationToken c /// /// /// Default Api Version - /// 2020-06-01 + /// 2024-06-01 /// /// /// Resource @@ -450,7 +450,7 @@ public virtual async Task> GetIfExistsA /// /// /// Default Api Version - /// 2020-06-01 + /// 2024-06-01 /// /// /// Resource diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/RestOperations/PrivateZonesRestOperations.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/RestOperations/PrivateZonesRestOperations.cs index 72cc3468fe3a..909eb02768ab 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/RestOperations/PrivateZonesRestOperations.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/RestOperations/PrivateZonesRestOperations.cs @@ -32,7 +32,7 @@ public PrivateZonesRestOperations(HttpPipeline pipeline, string applicationId, U { _pipeline = pipeline ?? throw new ArgumentNullException(nameof(pipeline)); _endpoint = endpoint ?? new Uri("https://management.azure.com"); - _apiVersion = apiVersion ?? "2020-06-01"; + _apiVersion = apiVersion ?? "2024-06-01"; _userAgent = new TelemetryDetails(GetType().Assembly, applicationId); } diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/RestOperations/RecordSetsRestOperations.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/RestOperations/RecordSetsRestOperations.cs index d5a8f6945b0f..aec3d035695b 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/RestOperations/RecordSetsRestOperations.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/RestOperations/RecordSetsRestOperations.cs @@ -32,7 +32,7 @@ public RecordSetsRestOperations(HttpPipeline pipeline, string applicationId, Uri { _pipeline = pipeline ?? throw new ArgumentNullException(nameof(pipeline)); _endpoint = endpoint ?? new Uri("https://management.azure.com"); - _apiVersion = apiVersion ?? "2020-06-01"; + _apiVersion = apiVersion ?? "2024-06-01"; _userAgent = new TelemetryDetails(GetType().Assembly, applicationId); } diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/RestOperations/VirtualNetworkLinksRestOperations.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/RestOperations/VirtualNetworkLinksRestOperations.cs index 5a49c9cde952..adc5bd42ddc6 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/RestOperations/VirtualNetworkLinksRestOperations.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/RestOperations/VirtualNetworkLinksRestOperations.cs @@ -32,7 +32,7 @@ public VirtualNetworkLinksRestOperations(HttpPipeline pipeline, string applicati { _pipeline = pipeline ?? throw new ArgumentNullException(nameof(pipeline)); _endpoint = endpoint ?? new Uri("https://management.azure.com"); - _apiVersion = apiVersion ?? "2020-06-01"; + _apiVersion = apiVersion ?? "2024-06-01"; _userAgent = new TelemetryDetails(GetType().Assembly, applicationId); } diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/VirtualNetworkLinkCollection.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/VirtualNetworkLinkCollection.cs index 3fb708126b6f..5861801a9dc0 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/VirtualNetworkLinkCollection.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/VirtualNetworkLinkCollection.cs @@ -64,7 +64,7 @@ internal static void ValidateResourceId(ResourceIdentifier id) /// /// /// Default Api Version - /// 2020-06-01 + /// 2024-06-01 /// /// /// Resource @@ -115,7 +115,7 @@ public virtual async Task> CreateOrUpda /// /// /// Default Api Version - /// 2020-06-01 + /// 2024-06-01 /// /// /// Resource @@ -166,7 +166,7 @@ public virtual ArmOperation CreateOrUpdate(WaitUntil /// /// /// Default Api Version - /// 2020-06-01 + /// 2024-06-01 /// /// /// Resource @@ -211,7 +211,7 @@ public virtual async Task> GetAsync(string /// /// /// Default Api Version - /// 2020-06-01 + /// 2024-06-01 /// /// /// Resource @@ -256,7 +256,7 @@ public virtual Response Get(string virtualNetworkLin /// /// /// Default Api Version - /// 2020-06-01 + /// 2024-06-01 /// /// /// Resource @@ -287,7 +287,7 @@ public virtual AsyncPageable GetAllAsync(int? top = /// /// /// Default Api Version - /// 2020-06-01 + /// 2024-06-01 /// /// /// Resource @@ -318,7 +318,7 @@ public virtual Pageable GetAll(int? top = null, Canc /// /// /// Default Api Version - /// 2020-06-01 + /// 2024-06-01 /// /// /// Resource @@ -361,7 +361,7 @@ public virtual async Task> ExistsAsync(string virtualNetworkLinkN /// /// /// Default Api Version - /// 2020-06-01 + /// 2024-06-01 /// /// /// Resource @@ -404,7 +404,7 @@ public virtual Response Exists(string virtualNetworkLinkName, Cancellation /// /// /// Default Api Version - /// 2020-06-01 + /// 2024-06-01 /// /// /// Resource @@ -449,7 +449,7 @@ public virtual async Task> GetIfExi /// /// /// Default Api Version - /// 2020-06-01 + /// 2024-06-01 /// /// /// Resource diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/VirtualNetworkLinkData.Serialization.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/VirtualNetworkLinkData.Serialization.cs index b72aaaa6cb38..5ec6f741150f 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/VirtualNetworkLinkData.Serialization.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/VirtualNetworkLinkData.Serialization.cs @@ -79,6 +79,11 @@ void IJsonModel.Write(Utf8JsonWriter writer, ModelReader writer.WritePropertyName("registrationEnabled"u8); writer.WriteBooleanValue(RegistrationEnabled.Value); } + if (Optional.IsDefined(ResolutionPolicy)) + { + writer.WritePropertyName("resolutionPolicy"u8); + writer.WriteStringValue(ResolutionPolicy.Value.ToString()); + } if (options.Format != "W" && Optional.IsDefined(VirtualNetworkLinkState)) { writer.WritePropertyName("virtualNetworkLinkState"u8); @@ -137,6 +142,7 @@ internal static VirtualNetworkLinkData DeserializeVirtualNetworkLinkData(JsonEle SystemData systemData = default; WritableSubResource virtualNetwork = default; bool? registrationEnabled = default; + ResolutionPolicy? resolutionPolicy = default; VirtualNetworkLinkState? virtualNetworkLinkState = default; PrivateDnsProvisioningState? privateDnsProvisioningState = default; IDictionary serializedAdditionalRawData = default; @@ -222,6 +228,15 @@ internal static VirtualNetworkLinkData DeserializeVirtualNetworkLinkData(JsonEle registrationEnabled = property0.Value.GetBoolean(); continue; } + if (property0.NameEquals("resolutionPolicy"u8)) + { + if (property0.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + resolutionPolicy = new ResolutionPolicy(property0.Value.GetString()); + continue; + } if (property0.NameEquals("virtualNetworkLinkState"u8)) { if (property0.Value.ValueKind == JsonValueKind.Null) @@ -259,6 +274,7 @@ internal static VirtualNetworkLinkData DeserializeVirtualNetworkLinkData(JsonEle etag, virtualNetwork, registrationEnabled, + resolutionPolicy, virtualNetworkLinkState, privateDnsProvisioningState, serializedAdditionalRawData); diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/VirtualNetworkLinkData.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/VirtualNetworkLinkData.cs index 736ba1e6f3d6..954727760bed 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/VirtualNetworkLinkData.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/VirtualNetworkLinkData.cs @@ -68,14 +68,16 @@ public VirtualNetworkLinkData(AzureLocation location) : base(location) /// The ETag of the virtual network link. /// The reference of the virtual network. /// Is auto-registration of virtual machine records in the virtual network in the Private DNS zone enabled?. + /// The resolution policy on the virtual network link. Only applicable for virtual network links to privatelink zones, and for A,AAAA,CNAME queries. When set to 'NxDomainRedirect', Azure DNS resolver falls back to public resolution if private dns query resolution results in non-existent domain response. /// The status of the virtual network link to the Private DNS zone. Possible values are 'InProgress' and 'Done'. This is a read-only property and any attempt to set this value will be ignored. /// The provisioning state of the resource. This is a read-only property and any attempt to set this value will be ignored. /// Keeps track of any properties unknown to the library. - internal VirtualNetworkLinkData(ResourceIdentifier id, string name, ResourceType resourceType, SystemData systemData, IDictionary tags, AzureLocation location, ETag? etag, WritableSubResource virtualNetwork, bool? registrationEnabled, VirtualNetworkLinkState? virtualNetworkLinkState, PrivateDnsProvisioningState? privateDnsProvisioningState, IDictionary serializedAdditionalRawData) : base(id, name, resourceType, systemData, tags, location) + internal VirtualNetworkLinkData(ResourceIdentifier id, string name, ResourceType resourceType, SystemData systemData, IDictionary tags, AzureLocation location, ETag? etag, WritableSubResource virtualNetwork, bool? registrationEnabled, ResolutionPolicy? resolutionPolicy, VirtualNetworkLinkState? virtualNetworkLinkState, PrivateDnsProvisioningState? privateDnsProvisioningState, IDictionary serializedAdditionalRawData) : base(id, name, resourceType, systemData, tags, location) { ETag = etag; VirtualNetwork = virtualNetwork; RegistrationEnabled = registrationEnabled; + ResolutionPolicy = resolutionPolicy; VirtualNetworkLinkState = virtualNetworkLinkState; PrivateDnsProvisioningState = privateDnsProvisioningState; _serializedAdditionalRawData = serializedAdditionalRawData; @@ -104,6 +106,8 @@ public ResourceIdentifier VirtualNetworkId /// Is auto-registration of virtual machine records in the virtual network in the Private DNS zone enabled?. public bool? RegistrationEnabled { get; set; } + /// The resolution policy on the virtual network link. Only applicable for virtual network links to privatelink zones, and for A,AAAA,CNAME queries. When set to 'NxDomainRedirect', Azure DNS resolver falls back to public resolution if private dns query resolution results in non-existent domain response. + public ResolutionPolicy? ResolutionPolicy { get; set; } /// The status of the virtual network link to the Private DNS zone. Possible values are 'InProgress' and 'Done'. This is a read-only property and any attempt to set this value will be ignored. public VirtualNetworkLinkState? VirtualNetworkLinkState { get; } /// The provisioning state of the resource. This is a read-only property and any attempt to set this value will be ignored. diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/VirtualNetworkLinkResource.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/VirtualNetworkLinkResource.cs index ff803105943b..ea8ae1144619 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/VirtualNetworkLinkResource.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/VirtualNetworkLinkResource.cs @@ -102,7 +102,7 @@ internal static void ValidateResourceId(ResourceIdentifier id) /// /// /// Default Api Version - /// 2020-06-01 + /// 2024-06-01 /// /// /// Resource @@ -142,7 +142,7 @@ public virtual async Task> GetAsync(Cancell /// /// /// Default Api Version - /// 2020-06-01 + /// 2024-06-01 /// /// /// Resource @@ -182,7 +182,7 @@ public virtual Response Get(CancellationToken cancel /// /// /// Default Api Version - /// 2020-06-01 + /// 2024-06-01 /// /// /// Resource @@ -225,7 +225,7 @@ public virtual async Task DeleteAsync(WaitUntil waitUntil, ETag? i /// /// /// Default Api Version - /// 2020-06-01 + /// 2024-06-01 /// /// /// Resource @@ -268,7 +268,7 @@ public virtual ArmOperation Delete(WaitUntil waitUntil, ETag? ifMatch = null, Ca /// /// /// Default Api Version - /// 2020-06-01 + /// 2024-06-01 /// /// /// Resource @@ -315,7 +315,7 @@ public virtual async Task> UpdateAsync( /// /// /// Default Api Version - /// 2020-06-01 + /// 2024-06-01 /// /// /// Resource @@ -362,7 +362,7 @@ public virtual ArmOperation Update(WaitUntil waitUnt /// /// /// Default Api Version - /// 2020-06-01 + /// 2024-06-01 /// /// /// Resource @@ -424,7 +424,7 @@ public virtual async Task> AddTagAsync(stri /// /// /// Default Api Version - /// 2020-06-01 + /// 2024-06-01 /// /// /// Resource @@ -486,7 +486,7 @@ public virtual Response AddTag(string key, string va /// /// /// Default Api Version - /// 2020-06-01 + /// 2024-06-01 /// /// /// Resource @@ -543,7 +543,7 @@ public virtual async Task> SetTagsAsync(IDi /// /// /// Default Api Version - /// 2020-06-01 + /// 2024-06-01 /// /// /// Resource @@ -600,7 +600,7 @@ public virtual Response SetTags(IDictionary /// /// Default Api Version - /// 2020-06-01 + /// 2024-06-01 /// /// /// Resource @@ -660,7 +660,7 @@ public virtual async Task> RemoveTagAsync(s /// /// /// Default Api Version - /// 2020-06-01 + /// 2024-06-01 /// /// /// Resource diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/autorest.md b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/autorest.md index b95328d8e7d5..4d59c66683a9 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/autorest.md +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/autorest.md @@ -8,7 +8,7 @@ azure-arm: true csharp: true library-name: PrivateDns namespace: Azure.ResourceManager.PrivateDns -require: https://github.com/Azure/azure-rest-api-specs/blob/6b08774c89877269e73e11ac3ecbd1bd4e14f5a0/specification/privatedns/resource-manager/readme.md +require: https://github.com/Azure/azure-rest-api-specs/blob/1aa912658531534e4e57ea613591075f7b97897c/specification/privatedns/resource-manager/readme.md output-folder: $(this-folder)/Generated clear-output-folder: true sample-gen: diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/PrivateDnsManagementTestBase.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/PrivateDnsManagementTestBase.cs index a806b437beb3..0b8bb9b617b6 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/PrivateDnsManagementTestBase.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/PrivateDnsManagementTestBase.cs @@ -4,6 +4,7 @@ using Azure.Core; using Azure.Core.TestFramework; using Azure.ResourceManager.Resources; +using Azure.ResourceManager.Resources.Models; using Azure.ResourceManager.TestFramework; using NUnit.Framework; using System.Threading.Tasks; @@ -49,5 +50,11 @@ protected async Task CreatePrivateZone(ResourceGroupReso var privateZone = await resourceGroup.GetPrivateDnsZones().CreateOrUpdateAsync(WaitUntil.Completed,zoneName,data); return privateZone.Value; } + + protected async Task CreateOrUpdateVirtualNetworkLink(PrivateDnsZoneResource privateZone, string linkName, VirtualNetworkLinkData vnetLinkData) + { + var vnetLinkResponse = await privateZone.GetVirtualNetworkLinks().CreateOrUpdateAsync(WaitUntil.Completed, linkName, vnetLinkData); + return vnetLinkResponse.Value; + } } } diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/Scenario/PrivateDnsTests.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/Scenario/PrivateDnsTests.cs index 5fcbed03c9d9..96503247001f 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/Scenario/PrivateDnsTests.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/Scenario/PrivateDnsTests.cs @@ -8,9 +8,11 @@ using System.Text; using System.Threading; using System.Threading.Tasks; +using Azure.Core; using Azure.Core.TestFramework; using Azure.ResourceManager.PrivateDns.Models; using Azure.ResourceManager.Resources; +using Azure.ResourceManager.Resources.Models; using NUnit.Framework; namespace Azure.ResourceManager.PrivateDns.Tests @@ -174,6 +176,42 @@ public async Task AddRemoveTag(bool? useTagResource) Assert.AreEqual(0, privateZone.Data.Tags.Count); } + [RecordedTest] + public async Task AddVnetLinkWithResolutionPolicy() + { + string privateZoneName = "privatelink.sql.azuresynapse.net"; + string vnetLinkName = $"{Recording.GenerateAssetName("sample")}"; + var privateZone = await CreatePrivateZone(_resourceGroup, privateZoneName); + + // Add NxDomainRedirect resolutionPolicy + var virtualNetworkLinkData = new VirtualNetworkLinkData() + { + VirtualNetwork = new WritableSubResource { Id = new ResourceIdentifier("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1") }, + RegistrationEnabled = false, + ResolutionPolicy = ResolutionPolicy.NxDomainRedirect, + }; + await CreateOrUpdateVirtualNetworkLink(privateZone, vnetLinkName, virtualNetworkLinkData); + + if (TestEnvironment.Mode == RecordedTestMode.Record) + { + Thread.Sleep(30000); + } + var virtualNetworkLinkResource = await privateZone.GetVirtualNetworkLinks().GetAsync(vnetLinkName); + var vnetLinkData = virtualNetworkLinkResource.Value.Data; + Assert.AreEqual(vnetLinkData.ResolutionPolicy, virtualNetworkLinkData.ResolutionPolicy); + + // Update resolutionPolicy to default + virtualNetworkLinkData.ResolutionPolicy = ResolutionPolicy.Default; + await CreateOrUpdateVirtualNetworkLink(privateZone, vnetLinkName, virtualNetworkLinkData); + if (TestEnvironment.Mode == RecordedTestMode.Record) + { + Thread.Sleep(30000); + } + virtualNetworkLinkResource = await privateZone.GetVirtualNetworkLinks().GetAsync(vnetLinkName); + vnetLinkData = virtualNetworkLinkResource.Value.Data; + Assert.AreEqual(vnetLinkData.ResolutionPolicy, virtualNetworkLinkData.ResolutionPolicy); + } + private void ValidatePrivateZone(PrivateDnsZoneResource privateZone, string privateZoneName) { Assert.IsNotNull(privateZone); From a8da8a002a85361b06e7803c8dcebba1c208acd6 Mon Sep 17 00:00:00 2001 From: Pranav Nair Date: Tue, 3 Sep 2024 19:38:34 -0700 Subject: [PATCH 2/7] Add and record test --- .../Azure.ResourceManager.Dns.Tests.csproj | 4 +-- .../CHANGELOG.md | 8 ++---- .../assets.json | 2 +- .../Azure.ResourceManager.PrivateDns.csproj | 2 +- ...re.ResourceManager.PrivateDns.Tests.csproj | 5 ++++ .../tests/PrivateDnsManagementTestBase.cs | 26 ++++++++++++++++++- .../tests/Scenario/PrivateDnsTests.cs | 14 +++++----- sdk/privatedns/test-resources.json | 6 +++++ 8 files changed, 49 insertions(+), 18 deletions(-) create mode 100644 sdk/privatedns/test-resources.json diff --git a/sdk/dns/Azure.ResourceManager.Dns/tests/Azure.ResourceManager.Dns.Tests.csproj b/sdk/dns/Azure.ResourceManager.Dns/tests/Azure.ResourceManager.Dns.Tests.csproj index 836794a316b5..0e76dd9bdc74 100644 --- a/sdk/dns/Azure.ResourceManager.Dns/tests/Azure.ResourceManager.Dns.Tests.csproj +++ b/sdk/dns/Azure.ResourceManager.Dns/tests/Azure.ResourceManager.Dns.Tests.csproj @@ -1,12 +1,10 @@  - - - + diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/CHANGELOG.md b/sdk/privatedns/Azure.ResourceManager.PrivateDns/CHANGELOG.md index 67f5a7b6e90e..6ac0005390a7 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/CHANGELOG.md +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/CHANGELOG.md @@ -1,14 +1,10 @@ # Release History -## 1.2.0-beta.1 (Unreleased) +## 1.2.0 (2024-07-31) ### Features Added -### Breaking Changes - -### Bugs Fixed - -### Other Changes +- Added resolutionPolicy enum to VirtualNetworkLink resource. This new property can be used to set up resolution policies for virtual networks linked to privatelink zones. ## 1.1.1 (2024-04-29) diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/assets.json b/sdk/privatedns/Azure.ResourceManager.PrivateDns/assets.json index 660da3d8aabb..598fed8f0908 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/assets.json +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/assets.json @@ -2,5 +2,5 @@ "AssetsRepo": "Azure/azure-sdk-assets", "AssetsRepoPrefixPath": "net", "TagPrefix": "net/privatedns/Azure.ResourceManager.PrivateDns", - "Tag": "net/privatedns/Azure.ResourceManager.PrivateDns_81a88282cc" + "Tag": "net/privatedns/Azure.ResourceManager.PrivateDns_89871f1b47" } diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Azure.ResourceManager.PrivateDns.csproj b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Azure.ResourceManager.PrivateDns.csproj index 0f75e542a7e4..fdbf3c89c4f4 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Azure.ResourceManager.PrivateDns.csproj +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Azure.ResourceManager.PrivateDns.csproj @@ -1,6 +1,6 @@ - 1.2.0-beta.1 + 1.2.0 1.1.1 Azure.ResourceManager.PrivateDns diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/Azure.ResourceManager.PrivateDns.Tests.csproj b/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/Azure.ResourceManager.PrivateDns.Tests.csproj index 9d4ac68770f8..ab3c624d4f01 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/Azure.ResourceManager.PrivateDns.Tests.csproj +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/Azure.ResourceManager.PrivateDns.Tests.csproj @@ -1,5 +1,10 @@  + + + + + diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/PrivateDnsManagementTestBase.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/PrivateDnsManagementTestBase.cs index 0b8bb9b617b6..b65d1206429d 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/PrivateDnsManagementTestBase.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/PrivateDnsManagementTestBase.cs @@ -3,8 +3,8 @@ using Azure.Core; using Azure.Core.TestFramework; +using Azure.ResourceManager.Network; using Azure.ResourceManager.Resources; -using Azure.ResourceManager.Resources.Models; using Azure.ResourceManager.TestFramework; using NUnit.Framework; using System.Threading.Tasks; @@ -13,6 +13,10 @@ namespace Azure.ResourceManager.PrivateDns.Tests { public class PrivateDnsManagementTestBase : ManagementRecordedTestBase { + private const string DefaultVnetAddressPrefix = "10.0.0.0/16"; + private const string DefaultVnetSubnetName = "DefaultSubnet"; + private const string DefaultSubnetAddressPrefix = "10.0.0.0/24"; + protected ArmClient Client { get; private set; } protected AzureLocation DefaultLocation = AzureLocation.EastUS; protected const string DefaultResourceGroupName = "PrivateDnsRG"; @@ -51,6 +55,26 @@ protected async Task CreatePrivateZone(ResourceGroupReso return privateZone.Value; } + protected async Task CreateVirtualNetwork(ResourceGroupResource resourceGroup, string vnetName) + { + var virtualNetworkData = new VirtualNetworkData + { + Location = DefaultLocation, + AddressPrefixes = { DefaultVnetAddressPrefix }, + Subnets = + { + new SubnetData + { + Name = DefaultVnetSubnetName, + AddressPrefix = DefaultSubnetAddressPrefix, + } + } + }; + + var virtualNetwork = await resourceGroup.GetVirtualNetworks().CreateOrUpdateAsync(WaitUntil.Completed, vnetName, virtualNetworkData); + return virtualNetwork.Value; + } + protected async Task CreateOrUpdateVirtualNetworkLink(PrivateDnsZoneResource privateZone, string linkName, VirtualNetworkLinkData vnetLinkData) { var vnetLinkResponse = await privateZone.GetVirtualNetworkLinks().CreateOrUpdateAsync(WaitUntil.Completed, linkName, vnetLinkData); diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/Scenario/PrivateDnsTests.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/Scenario/PrivateDnsTests.cs index 96503247001f..158f2dc3d204 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/Scenario/PrivateDnsTests.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/Scenario/PrivateDnsTests.cs @@ -1,14 +1,11 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. -using System; using System.Collections.Generic; using System.Linq; using System.Net; -using System.Text; using System.Threading; using System.Threading.Tasks; -using Azure.Core; using Azure.Core.TestFramework; using Azure.ResourceManager.PrivateDns.Models; using Azure.ResourceManager.Resources; @@ -180,22 +177,26 @@ public async Task AddRemoveTag(bool? useTagResource) public async Task AddVnetLinkWithResolutionPolicy() { string privateZoneName = "privatelink.sql.azuresynapse.net"; - string vnetLinkName = $"{Recording.GenerateAssetName("sample")}"; + string vnetName = "samplevnet"; + string vnetLinkName = $"{Recording.GenerateAssetName("samplelink")}"; var privateZone = await CreatePrivateZone(_resourceGroup, privateZoneName); + var vnet = await CreateVirtualNetwork(_resourceGroup, vnetName); // Add NxDomainRedirect resolutionPolicy - var virtualNetworkLinkData = new VirtualNetworkLinkData() + var virtualNetworkLinkData = new VirtualNetworkLinkData("global") { - VirtualNetwork = new WritableSubResource { Id = new ResourceIdentifier("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1") }, + VirtualNetwork = new WritableSubResource { Id = vnet.Id }, RegistrationEnabled = false, ResolutionPolicy = ResolutionPolicy.NxDomainRedirect, }; + await CreateOrUpdateVirtualNetworkLink(privateZone, vnetLinkName, virtualNetworkLinkData); if (TestEnvironment.Mode == RecordedTestMode.Record) { Thread.Sleep(30000); } + var virtualNetworkLinkResource = await privateZone.GetVirtualNetworkLinks().GetAsync(vnetLinkName); var vnetLinkData = virtualNetworkLinkResource.Value.Data; Assert.AreEqual(vnetLinkData.ResolutionPolicy, virtualNetworkLinkData.ResolutionPolicy); @@ -207,6 +208,7 @@ public async Task AddVnetLinkWithResolutionPolicy() { Thread.Sleep(30000); } + virtualNetworkLinkResource = await privateZone.GetVirtualNetworkLinks().GetAsync(vnetLinkName); vnetLinkData = virtualNetworkLinkResource.Value.Data; Assert.AreEqual(vnetLinkData.ResolutionPolicy, virtualNetworkLinkData.ResolutionPolicy); diff --git a/sdk/privatedns/test-resources.json b/sdk/privatedns/test-resources.json new file mode 100644 index 000000000000..a837d5a0f2b8 --- /dev/null +++ b/sdk/privatedns/test-resources.json @@ -0,0 +1,6 @@ +{ + "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "resources": [ + ] +} From 3685a35dfefe2345e177c1171df782fb86d1f40d Mon Sep 17 00:00:00 2001 From: Pranav Nair Date: Tue, 3 Sep 2024 21:42:24 -0700 Subject: [PATCH 3/7] Add TearDown methods in test files and re-record tests --- .../CHANGELOG.md | 2 +- .../assets.json | 2 +- .../tests/Scenario/PrivateDnsTests.cs | 18 +++++++++++++++++- .../tests/Scenario/RecordTests.cs | 8 +++++++- 4 files changed, 26 insertions(+), 4 deletions(-) diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/CHANGELOG.md b/sdk/privatedns/Azure.ResourceManager.PrivateDns/CHANGELOG.md index 6ac0005390a7..6633880e81d0 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/CHANGELOG.md +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/CHANGELOG.md @@ -1,6 +1,6 @@ # Release History -## 1.2.0 (2024-07-31) +## 1.2.0 (2024-09-10) ### Features Added diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/assets.json b/sdk/privatedns/Azure.ResourceManager.PrivateDns/assets.json index 598fed8f0908..e18e119f03a6 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/assets.json +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/assets.json @@ -2,5 +2,5 @@ "AssetsRepo": "Azure/azure-sdk-assets", "AssetsRepoPrefixPath": "net", "TagPrefix": "net/privatedns/Azure.ResourceManager.PrivateDns", - "Tag": "net/privatedns/Azure.ResourceManager.PrivateDns_89871f1b47" + "Tag": "net/privatedns/Azure.ResourceManager.PrivateDns_07db91e484" } diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/Scenario/PrivateDnsTests.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/Scenario/PrivateDnsTests.cs index 158f2dc3d204..a4a9f50c6a2f 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/Scenario/PrivateDnsTests.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/Scenario/PrivateDnsTests.cs @@ -19,7 +19,7 @@ internal class PrivateDnsTests : PrivateDnsManagementTestBase private ResourceGroupResource _resourceGroup; private PrivateDnsZoneCollection _privateZoneResource; - public PrivateDnsTests(bool isAsync) : base(isAsync)//, RecordedTestMode.Record) + public PrivateDnsTests(bool isAsync) : base(isAsync, RecordedTestMode.Record) { } @@ -30,6 +30,22 @@ public async Task TestSetUp() _privateZoneResource = _resourceGroup.GetPrivateDnsZones(); } + [TearDown] + public async Task TearDown() + { + var list = await _privateZoneResource.GetAllAsync().ToEnumerableAsync(); + foreach (var item in list) + { + var vnetLinks = await item.GetVirtualNetworkLinks().GetAllAsync().ToEnumerableAsync(); + foreach (var vnetLink in vnetLinks) + { + await vnetLink.DeleteAsync(WaitUntil.Completed); + } + + await item.DeleteAsync(WaitUntil.Completed); + } + } + [RecordedTest] public async Task CreateOrUpdate() { diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/Scenario/RecordTests.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/Scenario/RecordTests.cs index 8204f5bf1111..d1ea67357cc9 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/Scenario/RecordTests.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/Scenario/RecordTests.cs @@ -18,7 +18,7 @@ internal class RecordTests : PrivateDnsManagementTestBase { private PrivateDnsZoneResource _privateDns; - public RecordTests(bool isAsync) : base(isAsync)//, RecordedTestMode.Record) + public RecordTests(bool isAsync) : base(isAsync, RecordedTestMode.Record) { } @@ -29,6 +29,12 @@ public async Task TestSetUp() _privateDns = await CreatePrivateZone(resourceGroup, $"{Recording.GenerateAssetName("sample")}.com"); } + [TearDown] + public async Task TearDown() + { + await _privateDns.DeleteAsync(WaitUntil.Completed); + } + [RecordedTest] public async Task AaaaRecordOperationTest() { From cbe4d76cd57dbdcb10b5d262e3d97af3e1042b45 Mon Sep 17 00:00:00 2001 From: Pranav Nair Date: Tue, 3 Sep 2024 21:43:51 -0700 Subject: [PATCH 4/7] set test execution back to PlayBack mode --- .../tests/Scenario/PrivateDnsTests.cs | 2 +- .../tests/Scenario/RecordTests.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/Scenario/PrivateDnsTests.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/Scenario/PrivateDnsTests.cs index a4a9f50c6a2f..ea001b2c476e 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/Scenario/PrivateDnsTests.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/Scenario/PrivateDnsTests.cs @@ -19,7 +19,7 @@ internal class PrivateDnsTests : PrivateDnsManagementTestBase private ResourceGroupResource _resourceGroup; private PrivateDnsZoneCollection _privateZoneResource; - public PrivateDnsTests(bool isAsync) : base(isAsync, RecordedTestMode.Record) + public PrivateDnsTests(bool isAsync) : base(isAsync)//, RecordedTestMode.Record) { } diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/Scenario/RecordTests.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/Scenario/RecordTests.cs index d1ea67357cc9..a4aff49f4184 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/Scenario/RecordTests.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/Scenario/RecordTests.cs @@ -18,7 +18,7 @@ internal class RecordTests : PrivateDnsManagementTestBase { private PrivateDnsZoneResource _privateDns; - public RecordTests(bool isAsync) : base(isAsync, RecordedTestMode.Record) + public RecordTests(bool isAsync) : base(isAsync)//, RecordedTestMode.Record) { } From 6e94a786ecf726d83ae3f1cb829f3df01d3c6941 Mon Sep 17 00:00:00 2001 From: Pranav Nair Date: Thu, 5 Sep 2024 10:40:47 -0700 Subject: [PATCH 5/7] Address comment: Remove unnecessary Sleep --- .../tests/Scenario/PrivateDnsTests.cs | 9 --------- 1 file changed, 9 deletions(-) diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/Scenario/PrivateDnsTests.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/Scenario/PrivateDnsTests.cs index ea001b2c476e..1e81f7a49c20 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/Scenario/PrivateDnsTests.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/Scenario/PrivateDnsTests.cs @@ -208,11 +208,6 @@ public async Task AddVnetLinkWithResolutionPolicy() await CreateOrUpdateVirtualNetworkLink(privateZone, vnetLinkName, virtualNetworkLinkData); - if (TestEnvironment.Mode == RecordedTestMode.Record) - { - Thread.Sleep(30000); - } - var virtualNetworkLinkResource = await privateZone.GetVirtualNetworkLinks().GetAsync(vnetLinkName); var vnetLinkData = virtualNetworkLinkResource.Value.Data; Assert.AreEqual(vnetLinkData.ResolutionPolicy, virtualNetworkLinkData.ResolutionPolicy); @@ -220,10 +215,6 @@ public async Task AddVnetLinkWithResolutionPolicy() // Update resolutionPolicy to default virtualNetworkLinkData.ResolutionPolicy = ResolutionPolicy.Default; await CreateOrUpdateVirtualNetworkLink(privateZone, vnetLinkName, virtualNetworkLinkData); - if (TestEnvironment.Mode == RecordedTestMode.Record) - { - Thread.Sleep(30000); - } virtualNetworkLinkResource = await privateZone.GetVirtualNetworkLinks().GetAsync(vnetLinkName); vnetLinkData = virtualNetworkLinkResource.Value.Data; From a9018d90e05fdcd9bf582eb3e70ac0592ae83612 Mon Sep 17 00:00:00 2001 From: Arthur Ma Date: Fri, 6 Sep 2024 17:05:36 +0800 Subject: [PATCH 6/7] update --- .../CHANGELOG.md | 18 +- .../Generated/ArmPrivateDnsModelFactory.cs | 8 +- .../Internal/BicepSerializationHelpers.cs | 58 ++++ .../Generated/Internal/WirePathAttribute.cs | 27 ++ .../PrivateDnsARecordInfo.Serialization.cs | 33 +++ .../Generated/Models/PrivateDnsARecordInfo.cs | 1 + .../PrivateDnsAaaaRecordInfo.Serialization.cs | 33 +++ .../Models/PrivateDnsAaaaRecordInfo.cs | 1 + ...PrivateDnsCnameRecordInfo.Serialization.cs | 41 +++ .../Models/PrivateDnsCnameRecordInfo.cs | 1 + .../PrivateDnsMXRecordInfo.Serialization.cs | 56 ++++ .../Models/PrivateDnsMXRecordInfo.cs | 2 + .../PrivateDnsPtrRecordInfo.Serialization.cs | 41 +++ .../Models/PrivateDnsPtrRecordInfo.cs | 1 + ...rivateDnsRecordListResult.Serialization.cs | 65 +++++ .../Models/PrivateDnsResolutionPolicy.cs | 51 ++++ .../PrivateDnsSoaRecordInfo.Serialization.cs | 139 +++++++++ .../Models/PrivateDnsSoaRecordInfo.cs | 7 + .../PrivateDnsSrvRecordInfo.Serialization.cs | 86 ++++++ .../Models/PrivateDnsSrvRecordInfo.cs | 4 + .../PrivateDnsTxtRecordInfo.Serialization.cs | 55 ++++ .../Models/PrivateDnsTxtRecordInfo.cs | 1 + .../PrivateZoneListResult.Serialization.cs | 65 +++++ .../src/Generated/Models/ResolutionPolicy.cs | 51 ---- ...tualNetworkLinkListResult.Serialization.cs | 65 +++++ .../PrivateDnsZoneData.Serialization.cs | 267 ++++++++++++++++++ .../src/Generated/PrivateDnsZoneData.cs | 9 + .../VirtualNetworkLinkData.Serialization.cs | 230 ++++++++++++++- .../src/Generated/VirtualNetworkLinkData.cs | 14 +- .../src/autorest.md | 6 + .../tests/Scenario/PrivateDnsTests.cs | 8 +- 31 files changed, 1370 insertions(+), 74 deletions(-) create mode 100644 sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Internal/BicepSerializationHelpers.cs create mode 100644 sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Internal/WirePathAttribute.cs create mode 100644 sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsResolutionPolicy.cs delete mode 100644 sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/ResolutionPolicy.cs diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/CHANGELOG.md b/sdk/privatedns/Azure.ResourceManager.PrivateDns/CHANGELOG.md index 6633880e81d0..b129fa73e20a 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/CHANGELOG.md +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/CHANGELOG.md @@ -4,20 +4,26 @@ ### Features Added +- Upgraded api-version tag from 'package-2020-06' to 'package-2024-06'. Tag detail available at https://github.com/Azure/azure-rest-api-specs/blob/1aa912658531534e4e57ea613591075f7b97897c/specification/privatedns/resource-manager/readme.md. - Added resolutionPolicy enum to VirtualNetworkLink resource. This new property can be used to set up resolution policies for virtual networks linked to privatelink zones. +### Other Changes + +- Upgraded Azure.Core from 1.39.0 to 1.42.0 +- Upgraded Azure.ResourceManager from 1.11.1 to 1.13.0 + ## 1.1.1 (2024-04-29) ### Features Added -- Enable the new model serialization by using the System.ClientModel, refer this [document](https://aka.ms/azsdk/net/mrw) for more details. -- Add `ArmOperation.Rehydrate` and `ArmOperation.Rehydrate` static methods to rehydrate a long-running operation. +- Enabled the new model serialization by using the System.ClientModel, refer this [document](https://aka.ms/azsdk/net/mrw) for more details. +- Added `ArmOperation.Rehydrate` and `ArmOperation.Rehydrate` static methods to rehydrate a long-running operation. ## 1.1.0 (2023-11-29) ### Features Added -- Enable mocking for extension methods, refer this [document](https://aka.ms/azsdk/net/mocking) for more details. +- Enabled mocking for extension methods, refer this [document](https://aka.ms/azsdk/net/mocking) for more details. ### Other Changes @@ -27,7 +33,7 @@ ### Features Added -- Enable the model factory feature for model mocking, more information can be found [here](https://azure.github.io/azure-sdk/dotnet_introduction.html#dotnet-mocking-factory-builder). +- Enabled the model factory feature for model mocking, more information can be found [here](https://azure.github.io/azure-sdk/dotnet_introduction.html#dotnet-mocking-factory-builder). ### Other Changes @@ -51,6 +57,7 @@ - Renamed some properties to more comprehensive names. ### Other Changes + - Upgraded dependent `Azure.ResourceManager` to 1.3.2 - Upgraded dependent `Azure.Core` to 1.26.0 @@ -76,5 +83,4 @@ This package follows the [new Azure SDK guidelines](https://azure.github.io/azur This package is a Public Preview version, so expect incompatible changes in subsequent releases as we improve the product. To provide feedback, submit an issue in our [Azure SDK for .NET GitHub repo](https://github.com/Azure/azure-sdk-for-net/issues). -> NOTE: For more information about unified authentication, please refer to [Microsoft Azure Identity documentation for .NET](https://docs.microsoft.com//dotnet/api/overview/azure/identity-readme?view=azure-dotnet). - +> NOTE: For more information about unified authentication, please refer to [Microsoft Azure Identity documentation for .NET](https://docs.microsoft.com//dotnet/api/overview/azure/identity-readme?view=azure-dotnet). \ No newline at end of file diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/ArmPrivateDnsModelFactory.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/ArmPrivateDnsModelFactory.cs index f2c46004de4e..4b9a2fc35494 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/ArmPrivateDnsModelFactory.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/ArmPrivateDnsModelFactory.cs @@ -66,11 +66,11 @@ public static PrivateDnsZoneData PrivateDnsZoneData(ResourceIdentifier id = null /// The ETag of the virtual network link. /// The reference of the virtual network. /// Is auto-registration of virtual machine records in the virtual network in the Private DNS zone enabled?. - /// The resolution policy on the virtual network link. Only applicable for virtual network links to privatelink zones, and for A,AAAA,CNAME queries. When set to 'NxDomainRedirect', Azure DNS resolver falls back to public resolution if private dns query resolution results in non-existent domain response. + /// The resolution policy on the virtual network link. Only applicable for virtual network links to privatelink zones, and for A,AAAA,CNAME queries. When set to 'NxDomainRedirect', Azure DNS resolver falls back to public resolution if private dns query resolution results in non-existent domain response. /// The status of the virtual network link to the Private DNS zone. Possible values are 'InProgress' and 'Done'. This is a read-only property and any attempt to set this value will be ignored. /// The provisioning state of the resource. This is a read-only property and any attempt to set this value will be ignored. /// A new instance for mocking. - public static VirtualNetworkLinkData VirtualNetworkLinkData(ResourceIdentifier id = null, string name = null, ResourceType resourceType = default, SystemData systemData = null, IDictionary tags = null, AzureLocation location = default, ETag? etag = null, ResourceIdentifier virtualNetworkId = null, bool? registrationEnabled = null, ResolutionPolicy? resolutionPolicy = null, VirtualNetworkLinkState? virtualNetworkLinkState = null, PrivateDnsProvisioningState? privateDnsProvisioningState = null) + public static VirtualNetworkLinkData VirtualNetworkLinkData(ResourceIdentifier id = null, string name = null, ResourceType resourceType = default, SystemData systemData = null, IDictionary tags = null, AzureLocation location = default, ETag? etag = null, ResourceIdentifier virtualNetworkId = null, bool? registrationEnabled = null, PrivateDnsResolutionPolicy? privateDnsResolutionPolicy = null, VirtualNetworkLinkState? virtualNetworkLinkState = null, PrivateDnsProvisioningState? privateDnsProvisioningState = null) { tags ??= new Dictionary(); @@ -84,7 +84,7 @@ public static VirtualNetworkLinkData VirtualNetworkLinkData(ResourceIdentifier i etag, virtualNetworkId != null ? ResourceManagerModelFactory.WritableSubResource(virtualNetworkId) : null, registrationEnabled, - resolutionPolicy, + privateDnsResolutionPolicy, virtualNetworkLinkState, privateDnsProvisioningState, serializedAdditionalRawData: null); @@ -106,7 +106,7 @@ public static VirtualNetworkLinkData VirtualNetworkLinkData(ResourceIdentifier i [EditorBrowsable(EditorBrowsableState.Never)] public static VirtualNetworkLinkData VirtualNetworkLinkData(ResourceIdentifier id, string name, ResourceType resourceType, SystemData systemData, IDictionary tags, AzureLocation location, ETag? etag, ResourceIdentifier virtualNetworkId, bool? registrationEnabled, VirtualNetworkLinkState? virtualNetworkLinkState, PrivateDnsProvisioningState? privateDnsProvisioningState) { - return VirtualNetworkLinkData(id: id, name: name, resourceType: resourceType, systemData: systemData, tags: tags, location: location, etag: etag, virtualNetworkId: virtualNetworkId, registrationEnabled: registrationEnabled, resolutionPolicy: default, virtualNetworkLinkState: virtualNetworkLinkState, privateDnsProvisioningState: privateDnsProvisioningState); + return VirtualNetworkLinkData(id: id, name: name, resourceType: resourceType, systemData: systemData, tags: tags, location: location, etag: etag, virtualNetworkId: virtualNetworkId, registrationEnabled: registrationEnabled, privateDnsResolutionPolicy: default, virtualNetworkLinkState: virtualNetworkLinkState, privateDnsProvisioningState: privateDnsProvisioningState); } } } diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Internal/BicepSerializationHelpers.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Internal/BicepSerializationHelpers.cs new file mode 100644 index 000000000000..1ac1440ae0e5 --- /dev/null +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Internal/BicepSerializationHelpers.cs @@ -0,0 +1,58 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Text; + +namespace Azure.ResourceManager.PrivateDns +{ + internal static class BicepSerializationHelpers + { + public static void AppendChildObject(StringBuilder stringBuilder, object childObject, ModelReaderWriterOptions options, int spaces, bool indentFirstLine, string formattedPropertyName) + { + string indent = new string(' ', spaces); + int emptyObjectLength = 2 + spaces + Environment.NewLine.Length + Environment.NewLine.Length; + int length = stringBuilder.Length; + bool inMultilineString = false; + + BinaryData data = ModelReaderWriter.Write(childObject, options); + string[] lines = data.ToString().Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries); + for (int i = 0; i < lines.Length; i++) + { + string line = lines[i]; + if (inMultilineString) + { + if (line.Contains("'''")) + { + inMultilineString = false; + } + stringBuilder.AppendLine(line); + continue; + } + if (line.Contains("'''")) + { + inMultilineString = true; + stringBuilder.AppendLine($"{indent}{line}"); + continue; + } + if (i == 0 && !indentFirstLine) + { + stringBuilder.AppendLine($"{line}"); + } + else + { + stringBuilder.AppendLine($"{indent}{line}"); + } + } + if (stringBuilder.Length == length + emptyObjectLength) + { + stringBuilder.Length = stringBuilder.Length - emptyObjectLength - formattedPropertyName.Length; + } + } + } +} diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Internal/WirePathAttribute.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Internal/WirePathAttribute.cs new file mode 100644 index 000000000000..a96a9b3f6789 --- /dev/null +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Internal/WirePathAttribute.cs @@ -0,0 +1,27 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; + +namespace Azure.ResourceManager.PrivateDns +{ + [AttributeUsage(AttributeTargets.Property)] + internal class WirePathAttribute : Attribute + { + private string _wirePath; + + public WirePathAttribute(string wirePath) + { + _wirePath = wirePath; + } + + public override string ToString() + { + return _wirePath; + } + } +} diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsARecordInfo.Serialization.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsARecordInfo.Serialization.cs index 473a2a4c2488..7819d9ff25f6 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsARecordInfo.Serialization.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsARecordInfo.Serialization.cs @@ -9,6 +9,7 @@ using System.ClientModel.Primitives; using System.Collections.Generic; using System.Net; +using System.Text; using System.Text.Json; using Azure.Core; @@ -93,6 +94,36 @@ internal static PrivateDnsARecordInfo DeserializePrivateDnsARecordInfo(JsonEleme return new PrivateDnsARecordInfo(ipv4Address, serializedAdditionalRawData); } + private BinaryData SerializeBicep(ModelReaderWriterOptions options) + { + StringBuilder builder = new StringBuilder(); + BicepModelReaderWriterOptions bicepOptions = options as BicepModelReaderWriterOptions; + IDictionary propertyOverrides = null; + bool hasObjectOverride = bicepOptions != null && bicepOptions.PropertyOverrides.TryGetValue(this, out propertyOverrides); + bool hasPropertyOverride = false; + string propertyOverride = null; + + builder.AppendLine("{"); + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(IPv4Address), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" ipv4Address: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsDefined(IPv4Address)) + { + builder.Append(" ipv4Address: "); + builder.AppendLine($"'{IPv4Address.ToString()}'"); + } + } + + builder.AppendLine("}"); + return BinaryData.FromString(builder.ToString()); + } + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) { var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; @@ -101,6 +132,8 @@ BinaryData IPersistableModel.Write(ModelReaderWriterOptio { case "J": return ModelReaderWriter.Write(this, options); + case "bicep": + return SerializeBicep(options); default: throw new FormatException($"The model {nameof(PrivateDnsARecordInfo)} does not support writing '{options.Format}' format."); } diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsARecordInfo.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsARecordInfo.cs index bc8a0cc64328..07321f986985 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsARecordInfo.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsARecordInfo.cs @@ -61,6 +61,7 @@ internal PrivateDnsARecordInfo(IPAddress ipv4Address, IDictionary The IPv4 address of this A record. + [WirePath("ipv4Address")] public IPAddress IPv4Address { get; set; } } } diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsAaaaRecordInfo.Serialization.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsAaaaRecordInfo.Serialization.cs index 5fea71552697..220e9c12ee94 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsAaaaRecordInfo.Serialization.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsAaaaRecordInfo.Serialization.cs @@ -9,6 +9,7 @@ using System.ClientModel.Primitives; using System.Collections.Generic; using System.Net; +using System.Text; using System.Text.Json; using Azure.Core; @@ -93,6 +94,36 @@ internal static PrivateDnsAaaaRecordInfo DeserializePrivateDnsAaaaRecordInfo(Jso return new PrivateDnsAaaaRecordInfo(ipv6Address, serializedAdditionalRawData); } + private BinaryData SerializeBicep(ModelReaderWriterOptions options) + { + StringBuilder builder = new StringBuilder(); + BicepModelReaderWriterOptions bicepOptions = options as BicepModelReaderWriterOptions; + IDictionary propertyOverrides = null; + bool hasObjectOverride = bicepOptions != null && bicepOptions.PropertyOverrides.TryGetValue(this, out propertyOverrides); + bool hasPropertyOverride = false; + string propertyOverride = null; + + builder.AppendLine("{"); + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(IPv6Address), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" ipv6Address: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsDefined(IPv6Address)) + { + builder.Append(" ipv6Address: "); + builder.AppendLine($"'{IPv6Address.ToString()}'"); + } + } + + builder.AppendLine("}"); + return BinaryData.FromString(builder.ToString()); + } + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) { var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; @@ -101,6 +132,8 @@ BinaryData IPersistableModel.Write(ModelReaderWriterOp { case "J": return ModelReaderWriter.Write(this, options); + case "bicep": + return SerializeBicep(options); default: throw new FormatException($"The model {nameof(PrivateDnsAaaaRecordInfo)} does not support writing '{options.Format}' format."); } diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsAaaaRecordInfo.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsAaaaRecordInfo.cs index 05538f3803c4..d784ecad9fc4 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsAaaaRecordInfo.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsAaaaRecordInfo.cs @@ -61,6 +61,7 @@ internal PrivateDnsAaaaRecordInfo(IPAddress ipv6Address, IDictionary The IPv6 address of this AAAA record. + [WirePath("ipv6Address")] public IPAddress IPv6Address { get; set; } } } diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsCnameRecordInfo.Serialization.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsCnameRecordInfo.Serialization.cs index 21e5cb281933..de8a0a153aa4 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsCnameRecordInfo.Serialization.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsCnameRecordInfo.Serialization.cs @@ -8,6 +8,7 @@ using System; using System.ClientModel.Primitives; using System.Collections.Generic; +using System.Text; using System.Text.Json; using Azure.Core; @@ -88,6 +89,44 @@ internal static PrivateDnsCnameRecordInfo DeserializePrivateDnsCnameRecordInfo(J return new PrivateDnsCnameRecordInfo(cname, serializedAdditionalRawData); } + private BinaryData SerializeBicep(ModelReaderWriterOptions options) + { + StringBuilder builder = new StringBuilder(); + BicepModelReaderWriterOptions bicepOptions = options as BicepModelReaderWriterOptions; + IDictionary propertyOverrides = null; + bool hasObjectOverride = bicepOptions != null && bicepOptions.PropertyOverrides.TryGetValue(this, out propertyOverrides); + bool hasPropertyOverride = false; + string propertyOverride = null; + + builder.AppendLine("{"); + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(Cname), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" cname: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsDefined(Cname)) + { + builder.Append(" cname: "); + if (Cname.Contains(Environment.NewLine)) + { + builder.AppendLine("'''"); + builder.AppendLine($"{Cname}'''"); + } + else + { + builder.AppendLine($"'{Cname}'"); + } + } + } + + builder.AppendLine("}"); + return BinaryData.FromString(builder.ToString()); + } + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) { var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; @@ -96,6 +135,8 @@ BinaryData IPersistableModel.Write(ModelReaderWriterO { case "J": return ModelReaderWriter.Write(this, options); + case "bicep": + return SerializeBicep(options); default: throw new FormatException($"The model {nameof(PrivateDnsCnameRecordInfo)} does not support writing '{options.Format}' format."); } diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsCnameRecordInfo.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsCnameRecordInfo.cs index 567da186a5de..e74c102dea97 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsCnameRecordInfo.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsCnameRecordInfo.cs @@ -60,6 +60,7 @@ internal PrivateDnsCnameRecordInfo(string cname, IDictionary } /// The canonical name for this CNAME record. + [WirePath("cname")] public string Cname { get; set; } } } diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsMXRecordInfo.Serialization.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsMXRecordInfo.Serialization.cs index 8bcd9422df92..37cc341f4c0f 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsMXRecordInfo.Serialization.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsMXRecordInfo.Serialization.cs @@ -8,6 +8,7 @@ using System; using System.ClientModel.Primitives; using System.Collections.Generic; +using System.Text; using System.Text.Json; using Azure.Core; @@ -103,6 +104,59 @@ internal static PrivateDnsMXRecordInfo DeserializePrivateDnsMXRecordInfo(JsonEle return new PrivateDnsMXRecordInfo(preference, exchange, serializedAdditionalRawData); } + private BinaryData SerializeBicep(ModelReaderWriterOptions options) + { + StringBuilder builder = new StringBuilder(); + BicepModelReaderWriterOptions bicepOptions = options as BicepModelReaderWriterOptions; + IDictionary propertyOverrides = null; + bool hasObjectOverride = bicepOptions != null && bicepOptions.PropertyOverrides.TryGetValue(this, out propertyOverrides); + bool hasPropertyOverride = false; + string propertyOverride = null; + + builder.AppendLine("{"); + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(Preference), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" preference: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsDefined(Preference)) + { + builder.Append(" preference: "); + builder.AppendLine($"{Preference.Value}"); + } + } + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(Exchange), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" exchange: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsDefined(Exchange)) + { + builder.Append(" exchange: "); + if (Exchange.Contains(Environment.NewLine)) + { + builder.AppendLine("'''"); + builder.AppendLine($"{Exchange}'''"); + } + else + { + builder.AppendLine($"'{Exchange}'"); + } + } + } + + builder.AppendLine("}"); + return BinaryData.FromString(builder.ToString()); + } + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) { var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; @@ -111,6 +165,8 @@ BinaryData IPersistableModel.Write(ModelReaderWriterOpti { case "J": return ModelReaderWriter.Write(this, options); + case "bicep": + return SerializeBicep(options); default: throw new FormatException($"The model {nameof(PrivateDnsMXRecordInfo)} does not support writing '{options.Format}' format."); } diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsMXRecordInfo.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsMXRecordInfo.cs index d4cb139316e8..b90e2a9f2434 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsMXRecordInfo.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsMXRecordInfo.cs @@ -62,8 +62,10 @@ internal PrivateDnsMXRecordInfo(int? preference, string exchange, IDictionary The preference value for this MX record. + [WirePath("preference")] public int? Preference { get; set; } /// The domain name of the mail host for this MX record. + [WirePath("exchange")] public string Exchange { get; set; } } } diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsPtrRecordInfo.Serialization.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsPtrRecordInfo.Serialization.cs index 3935cac1f6e4..7a25a41d3e64 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsPtrRecordInfo.Serialization.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsPtrRecordInfo.Serialization.cs @@ -8,6 +8,7 @@ using System; using System.ClientModel.Primitives; using System.Collections.Generic; +using System.Text; using System.Text.Json; using Azure.Core; @@ -88,6 +89,44 @@ internal static PrivateDnsPtrRecordInfo DeserializePrivateDnsPtrRecordInfo(JsonE return new PrivateDnsPtrRecordInfo(ptrdname, serializedAdditionalRawData); } + private BinaryData SerializeBicep(ModelReaderWriterOptions options) + { + StringBuilder builder = new StringBuilder(); + BicepModelReaderWriterOptions bicepOptions = options as BicepModelReaderWriterOptions; + IDictionary propertyOverrides = null; + bool hasObjectOverride = bicepOptions != null && bicepOptions.PropertyOverrides.TryGetValue(this, out propertyOverrides); + bool hasPropertyOverride = false; + string propertyOverride = null; + + builder.AppendLine("{"); + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(PtrDomainName), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" ptrdname: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsDefined(PtrDomainName)) + { + builder.Append(" ptrdname: "); + if (PtrDomainName.Contains(Environment.NewLine)) + { + builder.AppendLine("'''"); + builder.AppendLine($"{PtrDomainName}'''"); + } + else + { + builder.AppendLine($"'{PtrDomainName}'"); + } + } + } + + builder.AppendLine("}"); + return BinaryData.FromString(builder.ToString()); + } + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) { var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; @@ -96,6 +135,8 @@ BinaryData IPersistableModel.Write(ModelReaderWriterOpt { case "J": return ModelReaderWriter.Write(this, options); + case "bicep": + return SerializeBicep(options); default: throw new FormatException($"The model {nameof(PrivateDnsPtrRecordInfo)} does not support writing '{options.Format}' format."); } diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsPtrRecordInfo.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsPtrRecordInfo.cs index 2951fbe53065..568837618daf 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsPtrRecordInfo.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsPtrRecordInfo.cs @@ -60,6 +60,7 @@ internal PrivateDnsPtrRecordInfo(string ptrDomainName, IDictionary The PTR target domain name for this PTR record. + [WirePath("ptrdname")] public string PtrDomainName { get; set; } } } diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsRecordListResult.Serialization.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsRecordListResult.Serialization.cs index 26ea42999ad2..b84e66471c24 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsRecordListResult.Serialization.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsRecordListResult.Serialization.cs @@ -8,6 +8,8 @@ using System; using System.ClientModel.Primitives; using System.Collections.Generic; +using System.Linq; +using System.Text; using System.Text.Json; using Azure.Core; @@ -113,6 +115,67 @@ internal static PrivateDnsRecordListResult DeserializePrivateDnsRecordListResult return new PrivateDnsRecordListResult(value ?? new ChangeTrackingList(), nextLink, serializedAdditionalRawData); } + private BinaryData SerializeBicep(ModelReaderWriterOptions options) + { + StringBuilder builder = new StringBuilder(); + BicepModelReaderWriterOptions bicepOptions = options as BicepModelReaderWriterOptions; + IDictionary propertyOverrides = null; + bool hasObjectOverride = bicepOptions != null && bicepOptions.PropertyOverrides.TryGetValue(this, out propertyOverrides); + bool hasPropertyOverride = false; + string propertyOverride = null; + + builder.AppendLine("{"); + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(Value), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" value: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsCollectionDefined(Value)) + { + if (Value.Any()) + { + builder.Append(" value: "); + builder.AppendLine("["); + foreach (var item in Value) + { + BicepSerializationHelpers.AppendChildObject(builder, item, options, 4, true, " value: "); + } + builder.AppendLine(" ]"); + } + } + } + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(NextLink), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" nextLink: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsDefined(NextLink)) + { + builder.Append(" nextLink: "); + if (NextLink.Contains(Environment.NewLine)) + { + builder.AppendLine("'''"); + builder.AppendLine($"{NextLink}'''"); + } + else + { + builder.AppendLine($"'{NextLink}'"); + } + } + } + + builder.AppendLine("}"); + return BinaryData.FromString(builder.ToString()); + } + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) { var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; @@ -121,6 +184,8 @@ BinaryData IPersistableModel.Write(ModelReaderWriter { case "J": return ModelReaderWriter.Write(this, options); + case "bicep": + return SerializeBicep(options); default: throw new FormatException($"The model {nameof(PrivateDnsRecordListResult)} does not support writing '{options.Format}' format."); } diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsResolutionPolicy.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsResolutionPolicy.cs new file mode 100644 index 000000000000..36e1d3ddeb70 --- /dev/null +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsResolutionPolicy.cs @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ComponentModel; + +namespace Azure.ResourceManager.PrivateDns.Models +{ + /// The resolution policy on the virtual network link. Only applicable for virtual network links to privatelink zones, and for A,AAAA,CNAME queries. When set to 'NxDomainRedirect', Azure DNS resolver falls back to public resolution if private dns query resolution results in non-existent domain response. + public readonly partial struct PrivateDnsResolutionPolicy : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public PrivateDnsResolutionPolicy(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string DefaultValue = "Default"; + private const string NxDomainRedirectValue = "NxDomainRedirect"; + + /// Default. + public static PrivateDnsResolutionPolicy Default { get; } = new PrivateDnsResolutionPolicy(DefaultValue); + /// NxDomainRedirect. + public static PrivateDnsResolutionPolicy NxDomainRedirect { get; } = new PrivateDnsResolutionPolicy(NxDomainRedirectValue); + /// Determines if two values are the same. + public static bool operator ==(PrivateDnsResolutionPolicy left, PrivateDnsResolutionPolicy right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(PrivateDnsResolutionPolicy left, PrivateDnsResolutionPolicy right) => !left.Equals(right); + /// Converts a string to a . + public static implicit operator PrivateDnsResolutionPolicy(string value) => new PrivateDnsResolutionPolicy(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is PrivateDnsResolutionPolicy other && Equals(other); + /// + public bool Equals(PrivateDnsResolutionPolicy other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + /// + public override string ToString() => _value; + } +} diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsSoaRecordInfo.Serialization.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsSoaRecordInfo.Serialization.cs index 58014b56fd1d..342abb4275d7 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsSoaRecordInfo.Serialization.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsSoaRecordInfo.Serialization.cs @@ -8,6 +8,7 @@ using System; using System.ClientModel.Primitives; using System.Collections.Generic; +using System.Text; using System.Text.Json; using Azure.Core; @@ -182,6 +183,142 @@ internal static PrivateDnsSoaRecordInfo DeserializePrivateDnsSoaRecordInfo(JsonE serializedAdditionalRawData); } + private BinaryData SerializeBicep(ModelReaderWriterOptions options) + { + StringBuilder builder = new StringBuilder(); + BicepModelReaderWriterOptions bicepOptions = options as BicepModelReaderWriterOptions; + IDictionary propertyOverrides = null; + bool hasObjectOverride = bicepOptions != null && bicepOptions.PropertyOverrides.TryGetValue(this, out propertyOverrides); + bool hasPropertyOverride = false; + string propertyOverride = null; + + builder.AppendLine("{"); + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(Host), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" host: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsDefined(Host)) + { + builder.Append(" host: "); + if (Host.Contains(Environment.NewLine)) + { + builder.AppendLine("'''"); + builder.AppendLine($"{Host}'''"); + } + else + { + builder.AppendLine($"'{Host}'"); + } + } + } + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(Email), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" email: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsDefined(Email)) + { + builder.Append(" email: "); + if (Email.Contains(Environment.NewLine)) + { + builder.AppendLine("'''"); + builder.AppendLine($"{Email}'''"); + } + else + { + builder.AppendLine($"'{Email}'"); + } + } + } + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(SerialNumber), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" serialNumber: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsDefined(SerialNumber)) + { + builder.Append(" serialNumber: "); + builder.AppendLine($"'{SerialNumber.Value.ToString()}'"); + } + } + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(RefreshTimeInSeconds), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" refreshTime: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsDefined(RefreshTimeInSeconds)) + { + builder.Append(" refreshTime: "); + builder.AppendLine($"'{RefreshTimeInSeconds.Value.ToString()}'"); + } + } + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(RetryTimeInSeconds), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" retryTime: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsDefined(RetryTimeInSeconds)) + { + builder.Append(" retryTime: "); + builder.AppendLine($"'{RetryTimeInSeconds.Value.ToString()}'"); + } + } + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(ExpireTimeInSeconds), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" expireTime: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsDefined(ExpireTimeInSeconds)) + { + builder.Append(" expireTime: "); + builder.AppendLine($"'{ExpireTimeInSeconds.Value.ToString()}'"); + } + } + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(MinimumTtlInSeconds), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" minimumTtl: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsDefined(MinimumTtlInSeconds)) + { + builder.Append(" minimumTtl: "); + builder.AppendLine($"'{MinimumTtlInSeconds.Value.ToString()}'"); + } + } + + builder.AppendLine("}"); + return BinaryData.FromString(builder.ToString()); + } + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) { var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; @@ -190,6 +327,8 @@ BinaryData IPersistableModel.Write(ModelReaderWriterOpt { case "J": return ModelReaderWriter.Write(this, options); + case "bicep": + return SerializeBicep(options); default: throw new FormatException($"The model {nameof(PrivateDnsSoaRecordInfo)} does not support writing '{options.Format}' format."); } diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsSoaRecordInfo.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsSoaRecordInfo.cs index f20c7097eb09..a6d1d0801bc7 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsSoaRecordInfo.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsSoaRecordInfo.cs @@ -72,18 +72,25 @@ internal PrivateDnsSoaRecordInfo(string host, string email, long? serialNumber, } /// The domain name of the authoritative name server for this SOA record. + [WirePath("host")] public string Host { get; set; } /// The email contact for this SOA record. + [WirePath("email")] public string Email { get; set; } /// The serial number for this SOA record. + [WirePath("serialNumber")] public long? SerialNumber { get; set; } /// The refresh value for this SOA record. + [WirePath("refreshTime")] public long? RefreshTimeInSeconds { get; set; } /// The retry time for this SOA record. + [WirePath("retryTime")] public long? RetryTimeInSeconds { get; set; } /// The expire time for this SOA record. + [WirePath("expireTime")] public long? ExpireTimeInSeconds { get; set; } /// The minimum value for this SOA record. By convention this is used to determine the negative caching duration. + [WirePath("minimumTtl")] public long? MinimumTtlInSeconds { get; set; } } } diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsSrvRecordInfo.Serialization.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsSrvRecordInfo.Serialization.cs index 9239580a7682..3121ec46f32e 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsSrvRecordInfo.Serialization.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsSrvRecordInfo.Serialization.cs @@ -8,6 +8,7 @@ using System; using System.ClientModel.Primitives; using System.Collections.Generic; +using System.Text; using System.Text.Json; using Azure.Core; @@ -133,6 +134,89 @@ internal static PrivateDnsSrvRecordInfo DeserializePrivateDnsSrvRecordInfo(JsonE return new PrivateDnsSrvRecordInfo(priority, weight, port, target, serializedAdditionalRawData); } + private BinaryData SerializeBicep(ModelReaderWriterOptions options) + { + StringBuilder builder = new StringBuilder(); + BicepModelReaderWriterOptions bicepOptions = options as BicepModelReaderWriterOptions; + IDictionary propertyOverrides = null; + bool hasObjectOverride = bicepOptions != null && bicepOptions.PropertyOverrides.TryGetValue(this, out propertyOverrides); + bool hasPropertyOverride = false; + string propertyOverride = null; + + builder.AppendLine("{"); + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(Priority), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" priority: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsDefined(Priority)) + { + builder.Append(" priority: "); + builder.AppendLine($"{Priority.Value}"); + } + } + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(Weight), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" weight: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsDefined(Weight)) + { + builder.Append(" weight: "); + builder.AppendLine($"{Weight.Value}"); + } + } + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(Port), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" port: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsDefined(Port)) + { + builder.Append(" port: "); + builder.AppendLine($"{Port.Value}"); + } + } + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(Target), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" target: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsDefined(Target)) + { + builder.Append(" target: "); + if (Target.Contains(Environment.NewLine)) + { + builder.AppendLine("'''"); + builder.AppendLine($"{Target}'''"); + } + else + { + builder.AppendLine($"'{Target}'"); + } + } + } + + builder.AppendLine("}"); + return BinaryData.FromString(builder.ToString()); + } + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) { var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; @@ -141,6 +225,8 @@ BinaryData IPersistableModel.Write(ModelReaderWriterOpt { case "J": return ModelReaderWriter.Write(this, options); + case "bicep": + return SerializeBicep(options); default: throw new FormatException($"The model {nameof(PrivateDnsSrvRecordInfo)} does not support writing '{options.Format}' format."); } diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsSrvRecordInfo.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsSrvRecordInfo.cs index b6054ea3230b..fcf761a6bc87 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsSrvRecordInfo.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsSrvRecordInfo.cs @@ -66,12 +66,16 @@ internal PrivateDnsSrvRecordInfo(int? priority, int? weight, int? port, string t } /// The priority value for this SRV record. + [WirePath("priority")] public int? Priority { get; set; } /// The weight value for this SRV record. + [WirePath("weight")] public int? Weight { get; set; } /// The port value for this SRV record. + [WirePath("port")] public int? Port { get; set; } /// The target domain name for this SRV record. + [WirePath("target")] public string Target { get; set; } } } diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsTxtRecordInfo.Serialization.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsTxtRecordInfo.Serialization.cs index a6bb98e4dd4b..d7ddc39816dc 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsTxtRecordInfo.Serialization.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsTxtRecordInfo.Serialization.cs @@ -8,6 +8,8 @@ using System; using System.ClientModel.Primitives; using System.Collections.Generic; +using System.Linq; +using System.Text; using System.Text.Json; using Azure.Core; @@ -102,6 +104,57 @@ internal static PrivateDnsTxtRecordInfo DeserializePrivateDnsTxtRecordInfo(JsonE return new PrivateDnsTxtRecordInfo(value ?? new ChangeTrackingList(), serializedAdditionalRawData); } + private BinaryData SerializeBicep(ModelReaderWriterOptions options) + { + StringBuilder builder = new StringBuilder(); + BicepModelReaderWriterOptions bicepOptions = options as BicepModelReaderWriterOptions; + IDictionary propertyOverrides = null; + bool hasObjectOverride = bicepOptions != null && bicepOptions.PropertyOverrides.TryGetValue(this, out propertyOverrides); + bool hasPropertyOverride = false; + string propertyOverride = null; + + builder.AppendLine("{"); + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(Values), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" value: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsCollectionDefined(Values)) + { + if (Values.Any()) + { + builder.Append(" value: "); + builder.AppendLine("["); + foreach (var item in Values) + { + if (item == null) + { + builder.Append("null"); + continue; + } + if (item.Contains(Environment.NewLine)) + { + builder.AppendLine(" '''"); + builder.AppendLine($"{item}'''"); + } + else + { + builder.AppendLine($" '{item}'"); + } + } + builder.AppendLine(" ]"); + } + } + } + + builder.AppendLine("}"); + return BinaryData.FromString(builder.ToString()); + } + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) { var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; @@ -110,6 +163,8 @@ BinaryData IPersistableModel.Write(ModelReaderWriterOpt { case "J": return ModelReaderWriter.Write(this, options); + case "bicep": + return SerializeBicep(options); default: throw new FormatException($"The model {nameof(PrivateDnsTxtRecordInfo)} does not support writing '{options.Format}' format."); } diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsTxtRecordInfo.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsTxtRecordInfo.cs index 9aa3069c3f7a..4db88a279edf 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsTxtRecordInfo.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateDnsTxtRecordInfo.cs @@ -61,6 +61,7 @@ internal PrivateDnsTxtRecordInfo(IList values, IDictionary The text value of this TXT record. + [WirePath("value")] public IList Values { get; } } } diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateZoneListResult.Serialization.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateZoneListResult.Serialization.cs index 3cf320e5a2f6..d24bb406f940 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateZoneListResult.Serialization.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/PrivateZoneListResult.Serialization.cs @@ -8,6 +8,8 @@ using System; using System.ClientModel.Primitives; using System.Collections.Generic; +using System.Linq; +using System.Text; using System.Text.Json; using Azure.Core; @@ -113,6 +115,67 @@ internal static PrivateZoneListResult DeserializePrivateZoneListResult(JsonEleme return new PrivateZoneListResult(value ?? new ChangeTrackingList(), nextLink, serializedAdditionalRawData); } + private BinaryData SerializeBicep(ModelReaderWriterOptions options) + { + StringBuilder builder = new StringBuilder(); + BicepModelReaderWriterOptions bicepOptions = options as BicepModelReaderWriterOptions; + IDictionary propertyOverrides = null; + bool hasObjectOverride = bicepOptions != null && bicepOptions.PropertyOverrides.TryGetValue(this, out propertyOverrides); + bool hasPropertyOverride = false; + string propertyOverride = null; + + builder.AppendLine("{"); + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(Value), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" value: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsCollectionDefined(Value)) + { + if (Value.Any()) + { + builder.Append(" value: "); + builder.AppendLine("["); + foreach (var item in Value) + { + BicepSerializationHelpers.AppendChildObject(builder, item, options, 4, true, " value: "); + } + builder.AppendLine(" ]"); + } + } + } + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(NextLink), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" nextLink: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsDefined(NextLink)) + { + builder.Append(" nextLink: "); + if (NextLink.Contains(Environment.NewLine)) + { + builder.AppendLine("'''"); + builder.AppendLine($"{NextLink}'''"); + } + else + { + builder.AppendLine($"'{NextLink}'"); + } + } + } + + builder.AppendLine("}"); + return BinaryData.FromString(builder.ToString()); + } + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) { var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; @@ -121,6 +184,8 @@ BinaryData IPersistableModel.Write(ModelReaderWriterOptio { case "J": return ModelReaderWriter.Write(this, options); + case "bicep": + return SerializeBicep(options); default: throw new FormatException($"The model {nameof(PrivateZoneListResult)} does not support writing '{options.Format}' format."); } diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/ResolutionPolicy.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/ResolutionPolicy.cs deleted file mode 100644 index 2558fd940a52..000000000000 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/ResolutionPolicy.cs +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System; -using System.ComponentModel; - -namespace Azure.ResourceManager.PrivateDns.Models -{ - /// The resolution policy on the virtual network link. Only applicable for virtual network links to privatelink zones, and for A,AAAA,CNAME queries. When set to 'NxDomainRedirect', Azure DNS resolver falls back to public resolution if private dns query resolution results in non-existent domain response. - public readonly partial struct ResolutionPolicy : IEquatable - { - private readonly string _value; - - /// Initializes a new instance of . - /// is null. - public ResolutionPolicy(string value) - { - _value = value ?? throw new ArgumentNullException(nameof(value)); - } - - private const string DefaultValue = "Default"; - private const string NxDomainRedirectValue = "NxDomainRedirect"; - - /// Default. - public static ResolutionPolicy Default { get; } = new ResolutionPolicy(DefaultValue); - /// NxDomainRedirect. - public static ResolutionPolicy NxDomainRedirect { get; } = new ResolutionPolicy(NxDomainRedirectValue); - /// Determines if two values are the same. - public static bool operator ==(ResolutionPolicy left, ResolutionPolicy right) => left.Equals(right); - /// Determines if two values are not the same. - public static bool operator !=(ResolutionPolicy left, ResolutionPolicy right) => !left.Equals(right); - /// Converts a string to a . - public static implicit operator ResolutionPolicy(string value) => new ResolutionPolicy(value); - - /// - [EditorBrowsable(EditorBrowsableState.Never)] - public override bool Equals(object obj) => obj is ResolutionPolicy other && Equals(other); - /// - public bool Equals(ResolutionPolicy other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); - - /// - [EditorBrowsable(EditorBrowsableState.Never)] - public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; - /// - public override string ToString() => _value; - } -} diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/VirtualNetworkLinkListResult.Serialization.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/VirtualNetworkLinkListResult.Serialization.cs index 82d45e7a7a36..3ee49705d687 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/VirtualNetworkLinkListResult.Serialization.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/Models/VirtualNetworkLinkListResult.Serialization.cs @@ -8,6 +8,8 @@ using System; using System.ClientModel.Primitives; using System.Collections.Generic; +using System.Linq; +using System.Text; using System.Text.Json; using Azure.Core; @@ -113,6 +115,67 @@ internal static VirtualNetworkLinkListResult DeserializeVirtualNetworkLinkListRe return new VirtualNetworkLinkListResult(value ?? new ChangeTrackingList(), nextLink, serializedAdditionalRawData); } + private BinaryData SerializeBicep(ModelReaderWriterOptions options) + { + StringBuilder builder = new StringBuilder(); + BicepModelReaderWriterOptions bicepOptions = options as BicepModelReaderWriterOptions; + IDictionary propertyOverrides = null; + bool hasObjectOverride = bicepOptions != null && bicepOptions.PropertyOverrides.TryGetValue(this, out propertyOverrides); + bool hasPropertyOverride = false; + string propertyOverride = null; + + builder.AppendLine("{"); + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(Value), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" value: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsCollectionDefined(Value)) + { + if (Value.Any()) + { + builder.Append(" value: "); + builder.AppendLine("["); + foreach (var item in Value) + { + BicepSerializationHelpers.AppendChildObject(builder, item, options, 4, true, " value: "); + } + builder.AppendLine(" ]"); + } + } + } + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(NextLink), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" nextLink: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsDefined(NextLink)) + { + builder.Append(" nextLink: "); + if (NextLink.Contains(Environment.NewLine)) + { + builder.AppendLine("'''"); + builder.AppendLine($"{NextLink}'''"); + } + else + { + builder.AppendLine($"'{NextLink}'"); + } + } + } + + builder.AppendLine("}"); + return BinaryData.FromString(builder.ToString()); + } + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) { var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; @@ -121,6 +184,8 @@ BinaryData IPersistableModel.Write(ModelReaderWrit { case "J": return ModelReaderWriter.Write(this, options); + case "bicep": + return SerializeBicep(options); default: throw new FormatException($"The model {nameof(VirtualNetworkLinkListResult)} does not support writing '{options.Format}' format."); } diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/PrivateDnsZoneData.Serialization.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/PrivateDnsZoneData.Serialization.cs index f8323f24f026..4e4b4afaccad 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/PrivateDnsZoneData.Serialization.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/PrivateDnsZoneData.Serialization.cs @@ -8,6 +8,8 @@ using System; using System.ClientModel.Primitives; using System.Collections.Generic; +using System.Linq; +using System.Text; using System.Text.Json; using Azure.Core; using Azure.ResourceManager.Models; @@ -323,6 +325,269 @@ internal static PrivateDnsZoneData DeserializePrivateDnsZoneData(JsonElement ele serializedAdditionalRawData); } + private BinaryData SerializeBicep(ModelReaderWriterOptions options) + { + StringBuilder builder = new StringBuilder(); + BicepModelReaderWriterOptions bicepOptions = options as BicepModelReaderWriterOptions; + IDictionary propertyOverrides = null; + bool hasObjectOverride = bicepOptions != null && bicepOptions.PropertyOverrides.TryGetValue(this, out propertyOverrides); + bool hasPropertyOverride = false; + string propertyOverride = null; + + builder.AppendLine("{"); + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(Name), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" name: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsDefined(Name)) + { + builder.Append(" name: "); + if (Name.Contains(Environment.NewLine)) + { + builder.AppendLine("'''"); + builder.AppendLine($"{Name}'''"); + } + else + { + builder.AppendLine($"'{Name}'"); + } + } + } + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(Location), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" location: "); + builder.AppendLine(propertyOverride); + } + else + { + builder.Append(" location: "); + builder.AppendLine($"'{Location.ToString()}'"); + } + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(Tags), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" tags: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsCollectionDefined(Tags)) + { + if (Tags.Any()) + { + builder.Append(" tags: "); + builder.AppendLine("{"); + foreach (var item in Tags) + { + builder.Append($" '{item.Key}': "); + if (item.Value == null) + { + builder.Append("null"); + continue; + } + if (item.Value.Contains(Environment.NewLine)) + { + builder.AppendLine("'''"); + builder.AppendLine($"{item.Value}'''"); + } + else + { + builder.AppendLine($"'{item.Value}'"); + } + } + builder.AppendLine(" }"); + } + } + } + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(ETag), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" etag: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsDefined(ETag)) + { + builder.Append(" etag: "); + builder.AppendLine($"'{ETag.Value.ToString()}'"); + } + } + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(Id), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" id: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsDefined(Id)) + { + builder.Append(" id: "); + builder.AppendLine($"'{Id.ToString()}'"); + } + } + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(SystemData), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" systemData: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsDefined(SystemData)) + { + builder.Append(" systemData: "); + builder.AppendLine($"'{SystemData.ToString()}'"); + } + } + + builder.Append(" properties:"); + builder.AppendLine(" {"); + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(MaxNumberOfRecords), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" maxNumberOfRecordSets: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsDefined(MaxNumberOfRecords)) + { + builder.Append(" maxNumberOfRecordSets: "); + builder.AppendLine($"'{MaxNumberOfRecords.Value.ToString()}'"); + } + } + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(NumberOfRecords), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" numberOfRecordSets: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsDefined(NumberOfRecords)) + { + builder.Append(" numberOfRecordSets: "); + builder.AppendLine($"'{NumberOfRecords.Value.ToString()}'"); + } + } + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(MaxNumberOfVirtualNetworkLinks), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" maxNumberOfVirtualNetworkLinks: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsDefined(MaxNumberOfVirtualNetworkLinks)) + { + builder.Append(" maxNumberOfVirtualNetworkLinks: "); + builder.AppendLine($"'{MaxNumberOfVirtualNetworkLinks.Value.ToString()}'"); + } + } + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(NumberOfVirtualNetworkLinks), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" numberOfVirtualNetworkLinks: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsDefined(NumberOfVirtualNetworkLinks)) + { + builder.Append(" numberOfVirtualNetworkLinks: "); + builder.AppendLine($"'{NumberOfVirtualNetworkLinks.Value.ToString()}'"); + } + } + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(MaxNumberOfVirtualNetworkLinksWithRegistration), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" maxNumberOfVirtualNetworkLinksWithRegistration: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsDefined(MaxNumberOfVirtualNetworkLinksWithRegistration)) + { + builder.Append(" maxNumberOfVirtualNetworkLinksWithRegistration: "); + builder.AppendLine($"'{MaxNumberOfVirtualNetworkLinksWithRegistration.Value.ToString()}'"); + } + } + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(NumberOfVirtualNetworkLinksWithRegistration), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" numberOfVirtualNetworkLinksWithRegistration: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsDefined(NumberOfVirtualNetworkLinksWithRegistration)) + { + builder.Append(" numberOfVirtualNetworkLinksWithRegistration: "); + builder.AppendLine($"'{NumberOfVirtualNetworkLinksWithRegistration.Value.ToString()}'"); + } + } + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(PrivateDnsProvisioningState), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" provisioningState: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsDefined(PrivateDnsProvisioningState)) + { + builder.Append(" provisioningState: "); + builder.AppendLine($"'{PrivateDnsProvisioningState.Value.ToString()}'"); + } + } + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(InternalId), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" internalId: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsDefined(InternalId)) + { + builder.Append(" internalId: "); + if (InternalId.Contains(Environment.NewLine)) + { + builder.AppendLine("'''"); + builder.AppendLine($"{InternalId}'''"); + } + else + { + builder.AppendLine($"'{InternalId}'"); + } + } + } + + builder.AppendLine(" }"); + builder.AppendLine("}"); + return BinaryData.FromString(builder.ToString()); + } + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) { var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; @@ -331,6 +596,8 @@ BinaryData IPersistableModel.Write(ModelReaderWriterOptions { case "J": return ModelReaderWriter.Write(this, options); + case "bicep": + return SerializeBicep(options); default: throw new FormatException($"The model {nameof(PrivateDnsZoneData)} does not support writing '{options.Format}' format."); } diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/PrivateDnsZoneData.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/PrivateDnsZoneData.cs index 58c1e886bd81..1300bea67910 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/PrivateDnsZoneData.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/PrivateDnsZoneData.cs @@ -94,22 +94,31 @@ internal PrivateDnsZoneData() } /// The ETag of the zone. + [WirePath("etag")] public ETag? ETag { get; set; } /// The maximum number of record sets that can be created in this Private DNS zone. This is a read-only property and any attempt to set this value will be ignored. + [WirePath("properties.maxNumberOfRecordSets")] public long? MaxNumberOfRecords { get; } /// The current number of record sets in this Private DNS zone. This is a read-only property and any attempt to set this value will be ignored. + [WirePath("properties.numberOfRecordSets")] public long? NumberOfRecords { get; } /// The maximum number of virtual networks that can be linked to this Private DNS zone. This is a read-only property and any attempt to set this value will be ignored. + [WirePath("properties.maxNumberOfVirtualNetworkLinks")] public long? MaxNumberOfVirtualNetworkLinks { get; } /// The current number of virtual networks that are linked to this Private DNS zone. This is a read-only property and any attempt to set this value will be ignored. + [WirePath("properties.numberOfVirtualNetworkLinks")] public long? NumberOfVirtualNetworkLinks { get; } /// The maximum number of virtual networks that can be linked to this Private DNS zone with registration enabled. This is a read-only property and any attempt to set this value will be ignored. + [WirePath("properties.maxNumberOfVirtualNetworkLinksWithRegistration")] public long? MaxNumberOfVirtualNetworkLinksWithRegistration { get; } /// The current number of virtual networks that are linked to this Private DNS zone with registration enabled. This is a read-only property and any attempt to set this value will be ignored. + [WirePath("properties.numberOfVirtualNetworkLinksWithRegistration")] public long? NumberOfVirtualNetworkLinksWithRegistration { get; } /// The provisioning state of the resource. This is a read-only property and any attempt to set this value will be ignored. + [WirePath("properties.provisioningState")] public PrivateDnsProvisioningState? PrivateDnsProvisioningState { get; } /// Private zone internal Id. + [WirePath("properties.internalId")] public string InternalId { get; } } } diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/VirtualNetworkLinkData.Serialization.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/VirtualNetworkLinkData.Serialization.cs index 5ec6f741150f..3d411c2255d2 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/VirtualNetworkLinkData.Serialization.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/VirtualNetworkLinkData.Serialization.cs @@ -8,6 +8,8 @@ using System; using System.ClientModel.Primitives; using System.Collections.Generic; +using System.Linq; +using System.Text; using System.Text.Json; using Azure.Core; using Azure.ResourceManager.Models; @@ -79,10 +81,10 @@ void IJsonModel.Write(Utf8JsonWriter writer, ModelReader writer.WritePropertyName("registrationEnabled"u8); writer.WriteBooleanValue(RegistrationEnabled.Value); } - if (Optional.IsDefined(ResolutionPolicy)) + if (Optional.IsDefined(PrivateDnsResolutionPolicy)) { writer.WritePropertyName("resolutionPolicy"u8); - writer.WriteStringValue(ResolutionPolicy.Value.ToString()); + writer.WriteStringValue(PrivateDnsResolutionPolicy.Value.ToString()); } if (options.Format != "W" && Optional.IsDefined(VirtualNetworkLinkState)) { @@ -142,7 +144,7 @@ internal static VirtualNetworkLinkData DeserializeVirtualNetworkLinkData(JsonEle SystemData systemData = default; WritableSubResource virtualNetwork = default; bool? registrationEnabled = default; - ResolutionPolicy? resolutionPolicy = default; + PrivateDnsResolutionPolicy? privateDnsResolutionPolicy = default; VirtualNetworkLinkState? virtualNetworkLinkState = default; PrivateDnsProvisioningState? privateDnsProvisioningState = default; IDictionary serializedAdditionalRawData = default; @@ -234,7 +236,7 @@ internal static VirtualNetworkLinkData DeserializeVirtualNetworkLinkData(JsonEle { continue; } - resolutionPolicy = new ResolutionPolicy(property0.Value.GetString()); + privateDnsResolutionPolicy = new PrivateDnsResolutionPolicy(property0.Value.GetString()); continue; } if (property0.NameEquals("virtualNetworkLinkState"u8)) @@ -274,12 +276,228 @@ internal static VirtualNetworkLinkData DeserializeVirtualNetworkLinkData(JsonEle etag, virtualNetwork, registrationEnabled, - resolutionPolicy, + privateDnsResolutionPolicy, virtualNetworkLinkState, privateDnsProvisioningState, serializedAdditionalRawData); } + private BinaryData SerializeBicep(ModelReaderWriterOptions options) + { + StringBuilder builder = new StringBuilder(); + BicepModelReaderWriterOptions bicepOptions = options as BicepModelReaderWriterOptions; + IDictionary propertyOverrides = null; + bool hasObjectOverride = bicepOptions != null && bicepOptions.PropertyOverrides.TryGetValue(this, out propertyOverrides); + bool hasPropertyOverride = false; + string propertyOverride = null; + + builder.AppendLine("{"); + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(Name), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" name: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsDefined(Name)) + { + builder.Append(" name: "); + if (Name.Contains(Environment.NewLine)) + { + builder.AppendLine("'''"); + builder.AppendLine($"{Name}'''"); + } + else + { + builder.AppendLine($"'{Name}'"); + } + } + } + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(Location), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" location: "); + builder.AppendLine(propertyOverride); + } + else + { + builder.Append(" location: "); + builder.AppendLine($"'{Location.ToString()}'"); + } + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(Tags), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" tags: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsCollectionDefined(Tags)) + { + if (Tags.Any()) + { + builder.Append(" tags: "); + builder.AppendLine("{"); + foreach (var item in Tags) + { + builder.Append($" '{item.Key}': "); + if (item.Value == null) + { + builder.Append("null"); + continue; + } + if (item.Value.Contains(Environment.NewLine)) + { + builder.AppendLine("'''"); + builder.AppendLine($"{item.Value}'''"); + } + else + { + builder.AppendLine($"'{item.Value}'"); + } + } + builder.AppendLine(" }"); + } + } + } + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(ETag), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" etag: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsDefined(ETag)) + { + builder.Append(" etag: "); + builder.AppendLine($"'{ETag.Value.ToString()}'"); + } + } + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(Id), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" id: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsDefined(Id)) + { + builder.Append(" id: "); + builder.AppendLine($"'{Id.ToString()}'"); + } + } + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(SystemData), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" systemData: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsDefined(SystemData)) + { + builder.Append(" systemData: "); + builder.AppendLine($"'{SystemData.ToString()}'"); + } + } + + builder.Append(" properties:"); + builder.AppendLine(" {"); + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue("VirtualNetworkId", out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" virtualNetwork: "); + builder.AppendLine("{"); + builder.AppendLine(" virtualNetwork: {"); + builder.Append(" id: "); + builder.AppendLine(propertyOverride); + builder.AppendLine(" }"); + builder.AppendLine(" }"); + } + else + { + if (Optional.IsDefined(VirtualNetwork)) + { + builder.Append(" virtualNetwork: "); + BicepSerializationHelpers.AppendChildObject(builder, VirtualNetwork, options, 4, false, " virtualNetwork: "); + } + } + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(RegistrationEnabled), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" registrationEnabled: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsDefined(RegistrationEnabled)) + { + builder.Append(" registrationEnabled: "); + var boolValue = RegistrationEnabled.Value == true ? "true" : "false"; + builder.AppendLine($"{boolValue}"); + } + } + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(PrivateDnsResolutionPolicy), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" resolutionPolicy: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsDefined(PrivateDnsResolutionPolicy)) + { + builder.Append(" resolutionPolicy: "); + builder.AppendLine($"'{PrivateDnsResolutionPolicy.Value.ToString()}'"); + } + } + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(VirtualNetworkLinkState), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" virtualNetworkLinkState: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsDefined(VirtualNetworkLinkState)) + { + builder.Append(" virtualNetworkLinkState: "); + builder.AppendLine($"'{VirtualNetworkLinkState.Value.ToString()}'"); + } + } + + hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(PrivateDnsProvisioningState), out propertyOverride); + if (hasPropertyOverride) + { + builder.Append(" provisioningState: "); + builder.AppendLine(propertyOverride); + } + else + { + if (Optional.IsDefined(PrivateDnsProvisioningState)) + { + builder.Append(" provisioningState: "); + builder.AppendLine($"'{PrivateDnsProvisioningState.Value.ToString()}'"); + } + } + + builder.AppendLine(" }"); + builder.AppendLine("}"); + return BinaryData.FromString(builder.ToString()); + } + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) { var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; @@ -288,6 +506,8 @@ BinaryData IPersistableModel.Write(ModelReaderWriterOpti { case "J": return ModelReaderWriter.Write(this, options); + case "bicep": + return SerializeBicep(options); default: throw new FormatException($"The model {nameof(VirtualNetworkLinkData)} does not support writing '{options.Format}' format."); } diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/VirtualNetworkLinkData.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/VirtualNetworkLinkData.cs index 954727760bed..51ddc39a4901 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/VirtualNetworkLinkData.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/Generated/VirtualNetworkLinkData.cs @@ -68,16 +68,16 @@ public VirtualNetworkLinkData(AzureLocation location) : base(location) /// The ETag of the virtual network link. /// The reference of the virtual network. /// Is auto-registration of virtual machine records in the virtual network in the Private DNS zone enabled?. - /// The resolution policy on the virtual network link. Only applicable for virtual network links to privatelink zones, and for A,AAAA,CNAME queries. When set to 'NxDomainRedirect', Azure DNS resolver falls back to public resolution if private dns query resolution results in non-existent domain response. + /// The resolution policy on the virtual network link. Only applicable for virtual network links to privatelink zones, and for A,AAAA,CNAME queries. When set to 'NxDomainRedirect', Azure DNS resolver falls back to public resolution if private dns query resolution results in non-existent domain response. /// The status of the virtual network link to the Private DNS zone. Possible values are 'InProgress' and 'Done'. This is a read-only property and any attempt to set this value will be ignored. /// The provisioning state of the resource. This is a read-only property and any attempt to set this value will be ignored. /// Keeps track of any properties unknown to the library. - internal VirtualNetworkLinkData(ResourceIdentifier id, string name, ResourceType resourceType, SystemData systemData, IDictionary tags, AzureLocation location, ETag? etag, WritableSubResource virtualNetwork, bool? registrationEnabled, ResolutionPolicy? resolutionPolicy, VirtualNetworkLinkState? virtualNetworkLinkState, PrivateDnsProvisioningState? privateDnsProvisioningState, IDictionary serializedAdditionalRawData) : base(id, name, resourceType, systemData, tags, location) + internal VirtualNetworkLinkData(ResourceIdentifier id, string name, ResourceType resourceType, SystemData systemData, IDictionary tags, AzureLocation location, ETag? etag, WritableSubResource virtualNetwork, bool? registrationEnabled, PrivateDnsResolutionPolicy? privateDnsResolutionPolicy, VirtualNetworkLinkState? virtualNetworkLinkState, PrivateDnsProvisioningState? privateDnsProvisioningState, IDictionary serializedAdditionalRawData) : base(id, name, resourceType, systemData, tags, location) { ETag = etag; VirtualNetwork = virtualNetwork; RegistrationEnabled = registrationEnabled; - ResolutionPolicy = resolutionPolicy; + PrivateDnsResolutionPolicy = privateDnsResolutionPolicy; VirtualNetworkLinkState = virtualNetworkLinkState; PrivateDnsProvisioningState = privateDnsProvisioningState; _serializedAdditionalRawData = serializedAdditionalRawData; @@ -89,10 +89,12 @@ internal VirtualNetworkLinkData() } /// The ETag of the virtual network link. + [WirePath("etag")] public ETag? ETag { get; set; } /// The reference of the virtual network. internal WritableSubResource VirtualNetwork { get; set; } /// Gets or sets Id. + [WirePath("properties.virtualNetwork.id")] public ResourceIdentifier VirtualNetworkId { get => VirtualNetwork is null ? default : VirtualNetwork.Id; @@ -105,12 +107,16 @@ public ResourceIdentifier VirtualNetworkId } /// Is auto-registration of virtual machine records in the virtual network in the Private DNS zone enabled?. + [WirePath("properties.registrationEnabled")] public bool? RegistrationEnabled { get; set; } /// The resolution policy on the virtual network link. Only applicable for virtual network links to privatelink zones, and for A,AAAA,CNAME queries. When set to 'NxDomainRedirect', Azure DNS resolver falls back to public resolution if private dns query resolution results in non-existent domain response. - public ResolutionPolicy? ResolutionPolicy { get; set; } + [WirePath("properties.resolutionPolicy")] + public PrivateDnsResolutionPolicy? PrivateDnsResolutionPolicy { get; set; } /// The status of the virtual network link to the Private DNS zone. Possible values are 'InProgress' and 'Done'. This is a read-only property and any attempt to set this value will be ignored. + [WirePath("properties.virtualNetworkLinkState")] public VirtualNetworkLinkState? VirtualNetworkLinkState { get; } /// The provisioning state of the resource. This is a read-only property and any attempt to set this value will be ignored. + [WirePath("properties.provisioningState")] public PrivateDnsProvisioningState? PrivateDnsProvisioningState { get; } } } diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/autorest.md b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/autorest.md index 4d59c66683a9..c7043f5f2cd2 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/autorest.md +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/src/autorest.md @@ -9,6 +9,7 @@ csharp: true library-name: PrivateDns namespace: Azure.ResourceManager.PrivateDns require: https://github.com/Azure/azure-rest-api-specs/blob/1aa912658531534e4e57ea613591075f7b97897c/specification/privatedns/resource-manager/readme.md +#tag: package-2024-06 output-folder: $(this-folder)/Generated clear-output-folder: true sample-gen: @@ -19,6 +20,10 @@ skip-csproj: true modelerfour: flatten-payloads: false use-model-reader-writer: true +enable-bicep-serialization: true + +#mgmt-debug: +# show-serialized-names: true format-by-name-rules: 'tenantId': 'uuid' @@ -62,6 +67,7 @@ acronym-mapping: SrvRecord: PrivateDnsSrvRecordInfo TxtRecord: PrivateDnsTxtRecordInfo ProvisioningState : PrivateDnsProvisioningState + ResolutionPolicy: PrivateDnsResolutionPolicy override-operation-name: RecordSets_List: GetRecords diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/Scenario/PrivateDnsTests.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/Scenario/PrivateDnsTests.cs index 1e81f7a49c20..588babbb9531 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/Scenario/PrivateDnsTests.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/tests/Scenario/PrivateDnsTests.cs @@ -203,22 +203,22 @@ public async Task AddVnetLinkWithResolutionPolicy() { VirtualNetwork = new WritableSubResource { Id = vnet.Id }, RegistrationEnabled = false, - ResolutionPolicy = ResolutionPolicy.NxDomainRedirect, + PrivateDnsResolutionPolicy = PrivateDnsResolutionPolicy.NxDomainRedirect, }; await CreateOrUpdateVirtualNetworkLink(privateZone, vnetLinkName, virtualNetworkLinkData); var virtualNetworkLinkResource = await privateZone.GetVirtualNetworkLinks().GetAsync(vnetLinkName); var vnetLinkData = virtualNetworkLinkResource.Value.Data; - Assert.AreEqual(vnetLinkData.ResolutionPolicy, virtualNetworkLinkData.ResolutionPolicy); + Assert.AreEqual(vnetLinkData.PrivateDnsResolutionPolicy, virtualNetworkLinkData.PrivateDnsResolutionPolicy); // Update resolutionPolicy to default - virtualNetworkLinkData.ResolutionPolicy = ResolutionPolicy.Default; + virtualNetworkLinkData.PrivateDnsResolutionPolicy = PrivateDnsResolutionPolicy.Default; await CreateOrUpdateVirtualNetworkLink(privateZone, vnetLinkName, virtualNetworkLinkData); virtualNetworkLinkResource = await privateZone.GetVirtualNetworkLinks().GetAsync(vnetLinkName); vnetLinkData = virtualNetworkLinkResource.Value.Data; - Assert.AreEqual(vnetLinkData.ResolutionPolicy, virtualNetworkLinkData.ResolutionPolicy); + Assert.AreEqual(vnetLinkData.PrivateDnsResolutionPolicy, virtualNetworkLinkData.PrivateDnsResolutionPolicy); } private void ValidatePrivateZone(PrivateDnsZoneResource privateZone, string privateZoneName) From 1b68ba09714e4ef2dbf5b4b6c3148a200d41f3df Mon Sep 17 00:00:00 2001 From: Arthur Ma Date: Fri, 6 Sep 2024 17:53:49 +0800 Subject: [PATCH 7/7] update --- ...sourceManager.PrivateDns.netstandard2.0.cs | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/sdk/privatedns/Azure.ResourceManager.PrivateDns/api/Azure.ResourceManager.PrivateDns.netstandard2.0.cs b/sdk/privatedns/Azure.ResourceManager.PrivateDns/api/Azure.ResourceManager.PrivateDns.netstandard2.0.cs index dc824b8ba570..251c076d80ce 100644 --- a/sdk/privatedns/Azure.ResourceManager.PrivateDns/api/Azure.ResourceManager.PrivateDns.netstandard2.0.cs +++ b/sdk/privatedns/Azure.ResourceManager.PrivateDns/api/Azure.ResourceManager.PrivateDns.netstandard2.0.cs @@ -465,8 +465,8 @@ public partial class VirtualNetworkLinkData : Azure.ResourceManager.Models.Track public VirtualNetworkLinkData(Azure.Core.AzureLocation location) { } public Azure.ETag? ETag { get { throw null; } set { } } public Azure.ResourceManager.PrivateDns.Models.PrivateDnsProvisioningState? PrivateDnsProvisioningState { get { throw null; } } + public Azure.ResourceManager.PrivateDns.Models.PrivateDnsResolutionPolicy? PrivateDnsResolutionPolicy { get { throw null; } set { } } public bool? RegistrationEnabled { get { throw null; } set { } } - public Azure.ResourceManager.PrivateDns.Models.ResolutionPolicy? ResolutionPolicy { get { throw null; } set { } } public Azure.Core.ResourceIdentifier VirtualNetworkId { get { throw null; } set { } } public Azure.ResourceManager.PrivateDns.Models.VirtualNetworkLinkState? VirtualNetworkLinkState { get { throw null; } } Azure.ResourceManager.PrivateDns.VirtualNetworkLinkData System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } @@ -536,7 +536,7 @@ namespace Azure.ResourceManager.PrivateDns.Models public static partial class ArmPrivateDnsModelFactory { public static Azure.ResourceManager.PrivateDns.PrivateDnsZoneData PrivateDnsZoneData(Azure.Core.ResourceIdentifier id = null, string name = null, Azure.Core.ResourceType resourceType = default(Azure.Core.ResourceType), Azure.ResourceManager.Models.SystemData systemData = null, System.Collections.Generic.IDictionary tags = null, Azure.Core.AzureLocation location = default(Azure.Core.AzureLocation), Azure.ETag? etag = default(Azure.ETag?), long? maxNumberOfRecords = default(long?), long? numberOfRecords = default(long?), long? maxNumberOfVirtualNetworkLinks = default(long?), long? numberOfVirtualNetworkLinks = default(long?), long? maxNumberOfVirtualNetworkLinksWithRegistration = default(long?), long? numberOfVirtualNetworkLinksWithRegistration = default(long?), Azure.ResourceManager.PrivateDns.Models.PrivateDnsProvisioningState? privateDnsProvisioningState = default(Azure.ResourceManager.PrivateDns.Models.PrivateDnsProvisioningState?), string internalId = null) { throw null; } - public static Azure.ResourceManager.PrivateDns.VirtualNetworkLinkData VirtualNetworkLinkData(Azure.Core.ResourceIdentifier id = null, string name = null, Azure.Core.ResourceType resourceType = default(Azure.Core.ResourceType), Azure.ResourceManager.Models.SystemData systemData = null, System.Collections.Generic.IDictionary tags = null, Azure.Core.AzureLocation location = default(Azure.Core.AzureLocation), Azure.ETag? etag = default(Azure.ETag?), Azure.Core.ResourceIdentifier virtualNetworkId = null, bool? registrationEnabled = default(bool?), Azure.ResourceManager.PrivateDns.Models.ResolutionPolicy? resolutionPolicy = default(Azure.ResourceManager.PrivateDns.Models.ResolutionPolicy?), Azure.ResourceManager.PrivateDns.Models.VirtualNetworkLinkState? virtualNetworkLinkState = default(Azure.ResourceManager.PrivateDns.Models.VirtualNetworkLinkState?), Azure.ResourceManager.PrivateDns.Models.PrivateDnsProvisioningState? privateDnsProvisioningState = default(Azure.ResourceManager.PrivateDns.Models.PrivateDnsProvisioningState?)) { throw null; } + public static Azure.ResourceManager.PrivateDns.VirtualNetworkLinkData VirtualNetworkLinkData(Azure.Core.ResourceIdentifier id = null, string name = null, Azure.Core.ResourceType resourceType = default(Azure.Core.ResourceType), Azure.ResourceManager.Models.SystemData systemData = null, System.Collections.Generic.IDictionary tags = null, Azure.Core.AzureLocation location = default(Azure.Core.AzureLocation), Azure.ETag? etag = default(Azure.ETag?), Azure.Core.ResourceIdentifier virtualNetworkId = null, bool? registrationEnabled = default(bool?), Azure.ResourceManager.PrivateDns.Models.PrivateDnsResolutionPolicy? privateDnsResolutionPolicy = default(Azure.ResourceManager.PrivateDns.Models.PrivateDnsResolutionPolicy?), Azure.ResourceManager.PrivateDns.Models.VirtualNetworkLinkState? virtualNetworkLinkState = default(Azure.ResourceManager.PrivateDns.Models.VirtualNetworkLinkState?), Azure.ResourceManager.PrivateDns.Models.PrivateDnsProvisioningState? privateDnsProvisioningState = default(Azure.ResourceManager.PrivateDns.Models.PrivateDnsProvisioningState?)) { throw null; } [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] public static Azure.ResourceManager.PrivateDns.VirtualNetworkLinkData VirtualNetworkLinkData(Azure.Core.ResourceIdentifier id, string name, Azure.Core.ResourceType resourceType, Azure.ResourceManager.Models.SystemData systemData, System.Collections.Generic.IDictionary tags, Azure.Core.AzureLocation location, Azure.ETag? etag, Azure.Core.ResourceIdentifier virtualNetworkId, bool? registrationEnabled, Azure.ResourceManager.PrivateDns.Models.VirtualNetworkLinkState? virtualNetworkLinkState, Azure.ResourceManager.PrivateDns.Models.PrivateDnsProvisioningState? privateDnsProvisioningState) { throw null; } } @@ -603,6 +603,24 @@ public PrivateDnsPtrRecordInfo() { } string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } } + [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] + public readonly partial struct PrivateDnsResolutionPolicy : System.IEquatable + { + private readonly object _dummy; + private readonly int _dummyPrimitive; + public PrivateDnsResolutionPolicy(string value) { throw null; } + public static Azure.ResourceManager.PrivateDns.Models.PrivateDnsResolutionPolicy Default { get { throw null; } } + public static Azure.ResourceManager.PrivateDns.Models.PrivateDnsResolutionPolicy NxDomainRedirect { get { throw null; } } + public bool Equals(Azure.ResourceManager.PrivateDns.Models.PrivateDnsResolutionPolicy other) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public override bool Equals(object obj) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public override int GetHashCode() { throw null; } + public static bool operator ==(Azure.ResourceManager.PrivateDns.Models.PrivateDnsResolutionPolicy left, Azure.ResourceManager.PrivateDns.Models.PrivateDnsResolutionPolicy right) { throw null; } + public static implicit operator Azure.ResourceManager.PrivateDns.Models.PrivateDnsResolutionPolicy (string value) { throw null; } + public static bool operator !=(Azure.ResourceManager.PrivateDns.Models.PrivateDnsResolutionPolicy left, Azure.ResourceManager.PrivateDns.Models.PrivateDnsResolutionPolicy right) { throw null; } + public override string ToString() { throw null; } + } public partial class PrivateDnsSoaRecordInfo : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel { public PrivateDnsSoaRecordInfo() { } @@ -643,24 +661,6 @@ public PrivateDnsTxtRecordInfo() { } System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } } [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] - public readonly partial struct ResolutionPolicy : System.IEquatable - { - private readonly object _dummy; - private readonly int _dummyPrimitive; - public ResolutionPolicy(string value) { throw null; } - public static Azure.ResourceManager.PrivateDns.Models.ResolutionPolicy Default { get { throw null; } } - public static Azure.ResourceManager.PrivateDns.Models.ResolutionPolicy NxDomainRedirect { get { throw null; } } - public bool Equals(Azure.ResourceManager.PrivateDns.Models.ResolutionPolicy other) { throw null; } - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] - public override bool Equals(object obj) { throw null; } - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] - public override int GetHashCode() { throw null; } - public static bool operator ==(Azure.ResourceManager.PrivateDns.Models.ResolutionPolicy left, Azure.ResourceManager.PrivateDns.Models.ResolutionPolicy right) { throw null; } - public static implicit operator Azure.ResourceManager.PrivateDns.Models.ResolutionPolicy (string value) { throw null; } - public static bool operator !=(Azure.ResourceManager.PrivateDns.Models.ResolutionPolicy left, Azure.ResourceManager.PrivateDns.Models.ResolutionPolicy right) { throw null; } - public override string ToString() { throw null; } - } - [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] public readonly partial struct VirtualNetworkLinkState : System.IEquatable { private readonly object _dummy;