From fa58e37a14ce91b7a266f49f0dc0b29c7aee8d28 Mon Sep 17 00:00:00 2001 From: Arcturus Zhang Date: Mon, 23 Jun 2025 16:32:19 +0800 Subject: [PATCH 01/10] initial commit of refreshing provisioning.resources --- eng/Packages.Data.props | 2 +- .../Generated/Models/ArmDeploymentContent.cs | 12 +++ .../ArmDeploymentExtensionConfigItem.cs | 80 +++++++++++++++ .../ArmDeploymentExtensionDefinition.cs | 86 ++++++++++++++++ .../Models/ArmDeploymentExternalInput.cs | 55 +++++++++++ .../ArmDeploymentExternalInputDefinition.cs | 67 +++++++++++++ .../Models/ArmDeploymentProperties.cs | 39 ++++++++ .../Models/ArmDeploymentPropertiesExtended.cs | 46 +++++++-- .../Generated/Models/ArmResourceReference.cs | 97 +++++++++++++++++++ .../Models/ExtensionConfigPropertyType.cs | 47 +++++++++ 10 files changed, 522 insertions(+), 9 deletions(-) create mode 100644 sdk/provisioning/Azure.Provisioning/src/Generated/Models/ArmDeploymentExtensionConfigItem.cs create mode 100644 sdk/provisioning/Azure.Provisioning/src/Generated/Models/ArmDeploymentExtensionDefinition.cs create mode 100644 sdk/provisioning/Azure.Provisioning/src/Generated/Models/ArmDeploymentExternalInput.cs create mode 100644 sdk/provisioning/Azure.Provisioning/src/Generated/Models/ArmDeploymentExternalInputDefinition.cs create mode 100644 sdk/provisioning/Azure.Provisioning/src/Generated/Models/ArmResourceReference.cs create mode 100644 sdk/provisioning/Azure.Provisioning/src/Generated/Models/ExtensionConfigPropertyType.cs diff --git a/eng/Packages.Data.props b/eng/Packages.Data.props index b6ec450e2864..8b9b879043db 100644 --- a/eng/Packages.Data.props +++ b/eng/Packages.Data.props @@ -156,7 +156,7 @@ - + diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ArmDeploymentContent.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ArmDeploymentContent.cs index 845c49b46ad2..26deacb2bea9 100644 --- a/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ArmDeploymentContent.cs +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ArmDeploymentContent.cs @@ -17,6 +17,17 @@ namespace Azure.Provisioning.Resources; /// public partial class ArmDeploymentContent : ProvisionableConstruct { + /// + /// The Managed Identity configuration for a deployment. The + /// supported types are: None, UserAssigned + /// + public ManagedServiceIdentity Identity + { + get { Initialize(); return _identity!; } + set { Initialize(); AssignOrReplace(ref _identity, value); } + } + private ManagedServiceIdentity? _identity; + /// /// The location to store the deployment data. /// @@ -59,6 +70,7 @@ public ArmDeploymentContent() protected override void DefineProvisionableProperties() { base.DefineProvisionableProperties(); + _identity = DefineModelProperty("Identity", ["identity"]); _location = DefineProperty("Location", ["location"]); _properties = DefineModelProperty("Properties", ["properties"], isOutput: true); _tags = DefineDictionaryProperty("Tags", ["tags"]); diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ArmDeploymentExtensionConfigItem.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ArmDeploymentExtensionConfigItem.cs new file mode 100644 index 000000000000..a310f6f4cfcc --- /dev/null +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ArmDeploymentExtensionConfigItem.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable enable + +using Azure.Core; +using Azure.Provisioning.Primitives; +using System; + +namespace Azure.Provisioning.Resources; + +/// +/// The ArmDeploymentExtensionConfigItem. +/// +public partial class ArmDeploymentExtensionConfigItem : ProvisionableConstruct +{ + /// + /// The value type of the extension config property. + /// + public BicepValue ExtensionConfigPropertyType + { + get { Initialize(); return _extensionConfigPropertyType!; } + } + private BicepValue? _extensionConfigPropertyType; + + /// + /// The value of the extension config property. To + /// assign an object to this property use + /// System.BinaryData.FromObjectAsJson``1(``0,System.Text.Json.JsonSerializerOptions). + /// To assign an already formatted json string to + /// this property use System.BinaryData.FromString(System.String). + /// Examples: + /// BinaryData.FromObjectAsJson("foo")Creates a + /// payload of + /// "foo".BinaryData.FromString("\"foo\"")Creates + /// a payload of "foo".BinaryData.FromObjectAsJson(new { key = + /// "value" })Creates a payload of { "key": + /// "value" }.BinaryData.FromString("{\"key\": + /// \"value\"}")Creates a payload of { "key": + /// "value" }. + /// + public BicepValue Value + { + get { Initialize(); return _value!; } + set { Initialize(); _value!.Assign(value); } + } + private BicepValue? _value; + + /// + /// The Azure Key Vault reference used to retrieve the secret value of the + /// extension config property. + /// + public KeyVaultParameterReference KeyVaultReference + { + get { Initialize(); return _keyVaultReference!; } + set { Initialize(); AssignOrReplace(ref _keyVaultReference, value); } + } + private KeyVaultParameterReference? _keyVaultReference; + + /// + /// Creates a new ArmDeploymentExtensionConfigItem. + /// + public ArmDeploymentExtensionConfigItem() + { + } + + /// + /// Define all the provisionable properties of + /// ArmDeploymentExtensionConfigItem. + /// + protected override void DefineProvisionableProperties() + { + base.DefineProvisionableProperties(); + _extensionConfigPropertyType = DefineProperty("ExtensionConfigPropertyType", ["type"], isOutput: true); + _value = DefineProperty("Value", ["value"]); + _keyVaultReference = DefineModelProperty("KeyVaultReference", ["keyVaultReference"]); + } +} diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ArmDeploymentExtensionDefinition.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ArmDeploymentExtensionDefinition.cs new file mode 100644 index 000000000000..8e2cebaa42f9 --- /dev/null +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ArmDeploymentExtensionDefinition.cs @@ -0,0 +1,86 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable enable + +using Azure.Core; +using Azure.Provisioning; +using Azure.Provisioning.Primitives; +using System; + +namespace Azure.Provisioning.Resources; + +/// +/// The ArmDeploymentExtensionDefinition. +/// +public partial class ArmDeploymentExtensionDefinition : ProvisionableConstruct +{ + /// + /// The alias of the extension as defined in the deployment template. + /// + public BicepValue Alias + { + get { Initialize(); return _alias!; } + } + private BicepValue? _alias; + + /// + /// The extension name. + /// + public BicepValue Name + { + get { Initialize(); return _name!; } + } + private BicepValue? _name; + + /// + /// The extension version. + /// + public BicepValue Version + { + get { Initialize(); return _version!; } + } + private BicepValue? _version; + + /// + /// The extension configuration ID. It uniquely identifies a deployment + /// control plane within an extension. + /// + public BicepValue ConfigId + { + get { Initialize(); return _configId!; } + } + private BicepValue? _configId; + + /// + /// The extension configuration. + /// + public BicepDictionary Config + { + get { Initialize(); return _config!; } + } + private BicepDictionary? _config; + + /// + /// Creates a new ArmDeploymentExtensionDefinition. + /// + public ArmDeploymentExtensionDefinition() + { + } + + /// + /// Define all the provisionable properties of + /// ArmDeploymentExtensionDefinition. + /// + protected override void DefineProvisionableProperties() + { + base.DefineProvisionableProperties(); + _alias = DefineProperty("Alias", ["alias"], isOutput: true); + _name = DefineProperty("Name", ["name"], isOutput: true); + _version = DefineProperty("Version", ["version"], isOutput: true); + _configId = DefineProperty("ConfigId", ["configId"], isOutput: true); + _config = DefineDictionaryProperty("Config", ["config"], isOutput: true); + } +} diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ArmDeploymentExternalInput.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ArmDeploymentExternalInput.cs new file mode 100644 index 000000000000..c24d1c961198 --- /dev/null +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ArmDeploymentExternalInput.cs @@ -0,0 +1,55 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable enable + +using Azure.Provisioning.Primitives; +using System; + +namespace Azure.Provisioning.Resources; + +/// +/// Deployment external input for parameterization. +/// +public partial class ArmDeploymentExternalInput : ProvisionableConstruct +{ + /// + /// External input value. To assign an object to + /// this property use + /// System.BinaryData.FromObjectAsJson``1(``0,System.Text.Json.JsonSerializerOptions). + /// To assign an already formatted json string to + /// this property use System.BinaryData.FromString(System.String). + /// Examples: + /// BinaryData.FromObjectAsJson("foo")Creates a + /// payload of + /// "foo".BinaryData.FromString("\"foo\"")Creates + /// a payload of "foo".BinaryData.FromObjectAsJson(new { key = + /// "value" })Creates a payload of { "key": + /// "value" }.BinaryData.FromString("{\"key\": + /// \"value\"}")Creates a payload of { "key": + /// "value" }. + /// + public BicepValue Value + { + get { Initialize(); return _value!; } + } + private BicepValue? _value; + + /// + /// Creates a new ArmDeploymentExternalInput. + /// + public ArmDeploymentExternalInput() + { + } + + /// + /// Define all the provisionable properties of ArmDeploymentExternalInput. + /// + protected override void DefineProvisionableProperties() + { + base.DefineProvisionableProperties(); + _value = DefineProperty("Value", ["value"], isOutput: true); + } +} diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ArmDeploymentExternalInputDefinition.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ArmDeploymentExternalInputDefinition.cs new file mode 100644 index 000000000000..726f8ec27d15 --- /dev/null +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ArmDeploymentExternalInputDefinition.cs @@ -0,0 +1,67 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable enable + +using Azure.Provisioning.Primitives; +using System; + +namespace Azure.Provisioning.Resources; + +/// +/// Deployment external input definition for parameterization. +/// +public partial class ArmDeploymentExternalInputDefinition : ProvisionableConstruct +{ + /// + /// The kind of external input. + /// + public BicepValue Kind + { + get { Initialize(); return _kind!; } + } + private BicepValue? _kind; + + /// + /// Configuration for the external input. To + /// assign an object to this property use + /// System.BinaryData.FromObjectAsJson``1(``0,System.Text.Json.JsonSerializerOptions). + /// To assign an already formatted json string to + /// this property use System.BinaryData.FromString(System.String). + /// Examples: + /// BinaryData.FromObjectAsJson("foo")Creates a + /// payload of + /// "foo".BinaryData.FromString("\"foo\"")Creates + /// a payload of "foo".BinaryData.FromObjectAsJson(new { key = + /// "value" })Creates a payload of { "key": + /// "value" }.BinaryData.FromString("{\"key\": + /// \"value\"}")Creates a payload of { "key": + /// "value" }. + /// + public BicepValue Config + { + get { Initialize(); return _config!; } + set { Initialize(); _config!.Assign(value); } + } + private BicepValue? _config; + + /// + /// Creates a new ArmDeploymentExternalInputDefinition. + /// + public ArmDeploymentExternalInputDefinition() + { + } + + /// + /// Define all the provisionable properties of + /// ArmDeploymentExternalInputDefinition. + /// + protected override void DefineProvisionableProperties() + { + base.DefineProvisionableProperties(); + _kind = DefineProperty("Kind", ["kind"], isOutput: true); + _config = DefineProperty("Config", ["config"]); + } +} diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ArmDeploymentProperties.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ArmDeploymentProperties.cs index 7f37c9905d55..abbbdc0242c2 100644 --- a/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ArmDeploymentProperties.cs +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ArmDeploymentProperties.cs @@ -5,6 +5,8 @@ #nullable enable +using Azure.Core; +using Azure.Provisioning; using Azure.Provisioning.Primitives; using System; @@ -80,6 +82,28 @@ public BicepValue Parameters } private BicepValue? _parameters; + /// + /// External input values, used by external tooling for parameter + /// evaluation. + /// + public BicepDictionary ExternalInputs + { + get { Initialize(); return _externalInputs!; } + set { Initialize(); _externalInputs!.Assign(value); } + } + private BicepDictionary? _externalInputs; + + /// + /// External input definitions, used by external tooling to define expected + /// external input values. + /// + public BicepDictionary ExternalInputDefinitions + { + get { Initialize(); return _externalInputDefinitions!; } + set { Initialize(); _externalInputDefinitions!.Assign(value); } + } + private BicepDictionary? _externalInputDefinitions; + /// /// The URI of parameters file. You use this element to link to an existing /// parameters file. Use either the parametersLink property or the @@ -92,6 +116,18 @@ public ArmDeploymentParametersLink ParametersLink } private ArmDeploymentParametersLink? _parametersLink; + /// + /// The configurations to use for deployment extensions. The keys of this + /// object are deployment extension aliases as defined in the deployment + /// template. + /// + public BicepDictionary> ExtensionConfigs + { + get { Initialize(); return _extensionConfigs!; } + set { Initialize(); _extensionConfigs!.Assign(value); } + } + private BicepDictionary>? _extensionConfigs; + /// /// The mode that is used to deploy resources. This value can be either /// Incremental or Complete. In Incremental mode, resources are deployed @@ -171,7 +207,10 @@ protected override void DefineProvisionableProperties() _template = DefineProperty("Template", ["template"]); _templateLink = DefineModelProperty("TemplateLink", ["templateLink"]); _parameters = DefineProperty("Parameters", ["parameters"]); + _externalInputs = DefineDictionaryProperty("ExternalInputs", ["externalInputs"]); + _externalInputDefinitions = DefineDictionaryProperty("ExternalInputDefinitions", ["externalInputDefinitions"]); _parametersLink = DefineModelProperty("ParametersLink", ["parametersLink"]); + _extensionConfigs = DefineDictionaryProperty>("ExtensionConfigs", ["extensionConfigs"]); _mode = DefineProperty("Mode", ["mode"], isOutput: true); _debugSettingDetailLevel = DefineProperty("DebugSettingDetailLevel", ["debugSetting", "detailLevel"]); _errorDeployment = DefineModelProperty("ErrorDeployment", ["onErrorDeployment"]); diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ArmDeploymentPropertiesExtended.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ArmDeploymentPropertiesExtended.cs index 82b504bbaea1..b76870721311 100644 --- a/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ArmDeploymentPropertiesExtended.cs +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ArmDeploymentPropertiesExtended.cs @@ -18,6 +18,24 @@ namespace Azure.Provisioning.Resources; /// public partial class ArmDeploymentPropertiesExtended : ProvisionableConstruct { + /// + /// Array of provisioned resources. + /// + public BicepList OutputResources + { + get { Initialize(); return _outputResources!; } + } + private BicepList? _outputResources; + + /// + /// Array of validated resources. + /// + public BicepList ValidatedResources + { + get { Initialize(); return _validatedResources!; } + } + private BicepList? _validatedResources; + /// /// Denotes the state of provisioning. /// @@ -134,6 +152,15 @@ public ArmDeploymentParametersLink ParametersLink } private ArmDeploymentParametersLink? _parametersLink; + /// + /// The extensions used in this deployment. + /// + public BicepList Extensions + { + get { Initialize(); return _extensions!; } + } + private BicepList? _extensions; + /// /// The deployment mode. Possible values are Incremental and Complete. /// @@ -164,20 +191,20 @@ public BicepValue TemplateHash /// /// Array of provisioned resources. /// - public BicepList OutputResources + public BicepList OutputResourceDetails { - get { Initialize(); return _outputResources!; } + get { Initialize(); return _outputResourceDetails!; } } - private BicepList? _outputResources; + private BicepList? _outputResourceDetails; /// /// Array of validated resources. /// - public BicepList ValidatedResources + public BicepList ValidatedResourceDetails { - get { Initialize(); return _validatedResources!; } + get { Initialize(); return _validatedResourceDetails!; } } - private BicepList? _validatedResources; + private BicepList? _validatedResourceDetails; /// /// The deployment error. @@ -220,6 +247,8 @@ public ArmDeploymentPropertiesExtended() protected override void DefineProvisionableProperties() { base.DefineProvisionableProperties(); + _outputResources = DefineListProperty("OutputResources", ["outputResources"], isOutput: true); + _validatedResources = DefineListProperty("ValidatedResources", ["validatedResources"], isOutput: true); _provisioningState = DefineProperty("ProvisioningState", ["provisioningState"], isOutput: true); _correlationId = DefineProperty("CorrelationId", ["correlationId"], isOutput: true); _timestamp = DefineProperty("Timestamp", ["timestamp"], isOutput: true); @@ -230,11 +259,12 @@ protected override void DefineProvisionableProperties() _templateLink = DefineModelProperty("TemplateLink", ["templateLink"], isOutput: true); _parameters = DefineProperty("Parameters", ["parameters"], isOutput: true); _parametersLink = DefineModelProperty("ParametersLink", ["parametersLink"], isOutput: true); + _extensions = DefineListProperty("Extensions", ["extensions"], isOutput: true); _mode = DefineProperty("Mode", ["mode"], isOutput: true); _errorDeployment = DefineModelProperty("ErrorDeployment", ["onErrorDeployment"], isOutput: true); _templateHash = DefineProperty("TemplateHash", ["templateHash"], isOutput: true); - _outputResources = DefineListProperty("OutputResources", ["outputResources"], isOutput: true); - _validatedResources = DefineListProperty("ValidatedResources", ["validatedResources"], isOutput: true); + _outputResourceDetails = DefineListProperty("OutputResourceDetails", ["outputResources"], isOutput: true); + _validatedResourceDetails = DefineListProperty("ValidatedResourceDetails", ["validatedResources"], isOutput: true); _error = DefineProperty("Error", ["error"], isOutput: true); _diagnostics = DefineListProperty("Diagnostics", ["diagnostics"], isOutput: true); _validationLevel = DefineProperty("ValidationLevel", ["validationLevel"], isOutput: true); diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ArmResourceReference.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ArmResourceReference.cs new file mode 100644 index 000000000000..beda2ea8d863 --- /dev/null +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ArmResourceReference.cs @@ -0,0 +1,97 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable enable + +using Azure.Core; +using Azure.Provisioning; +using Azure.Provisioning.Primitives; +using System; + +namespace Azure.Provisioning.Resources; + +/// +/// The resource Id model. +/// +public partial class ArmResourceReference : ProvisionableConstruct +{ + /// + /// The fully qualified Azure resource ID. + /// + public BicepValue Id + { + get { Initialize(); return _id!; } + } + private BicepValue? _id; + + /// + /// The extension the resource was deployed with. + /// + public ArmDeploymentExtensionDefinition Extension + { + get { Initialize(); return _extension!; } + } + private ArmDeploymentExtensionDefinition? _extension; + + /// + /// The resource type. + /// + public BicepValue ResourceType + { + get { Initialize(); return _resourceType!; } + } + private BicepValue? _resourceType; + + /// + /// The extensible resource identifiers. To assign + /// an object to this property use + /// System.BinaryData.FromObjectAsJson``1(``0,System.Text.Json.JsonSerializerOptions). + /// To assign an already formatted json string to + /// this property use System.BinaryData.FromString(System.String). + /// Examples: + /// BinaryData.FromObjectAsJson("foo")Creates a + /// payload of + /// "foo".BinaryData.FromString("\"foo\"")Creates + /// a payload of "foo".BinaryData.FromObjectAsJson(new { key = + /// "value" })Creates a payload of { "key": + /// "value" }.BinaryData.FromString("{\"key\": + /// \"value\"}")Creates a payload of { "key": + /// "value" }. + /// + public BicepValue Identifiers + { + get { Initialize(); return _identifiers!; } + } + private BicepValue? _identifiers; + + /// + /// The API version the resource was deployed with. + /// + public BicepValue ApiVersion + { + get { Initialize(); return _apiVersion!; } + } + private BicepValue? _apiVersion; + + /// + /// Creates a new ArmResourceReference. + /// + public ArmResourceReference() + { + } + + /// + /// Define all the provisionable properties of ArmResourceReference. + /// + protected override void DefineProvisionableProperties() + { + base.DefineProvisionableProperties(); + _id = DefineProperty("Id", ["id"], isOutput: true); + _extension = DefineModelProperty("Extension", ["extension"], isOutput: true); + _resourceType = DefineProperty("ResourceType", ["resourceType"], isOutput: true); + _identifiers = DefineProperty("Identifiers", ["identifiers"], isOutput: true); + _apiVersion = DefineProperty("ApiVersion", ["apiVersion"], isOutput: true); + } +} diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ExtensionConfigPropertyType.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ExtensionConfigPropertyType.cs new file mode 100644 index 000000000000..8f045d26a709 --- /dev/null +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ExtensionConfigPropertyType.cs @@ -0,0 +1,47 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +namespace Azure.Provisioning.Resources; + +/// +/// The ExtensionConfigPropertyType. +/// +public enum ExtensionConfigPropertyType +{ + /// + /// Property type representing a string value. + /// + String, + + /// + /// Property type representing an integer value. + /// + Int, + + /// + /// Property type representing a boolean value. + /// + Bool, + + /// + /// Property type representing an array value. + /// + Array, + + /// + /// Property type representing an object value. + /// + Object, + + /// + /// Property type representing a secure string value. + /// + SecureString, + + /// + /// Property type representing a secure object value. + /// + SecureObject, +} From 70c78c912ea742c59325ad5ccec55ade60899416 Mon Sep 17 00:00:00 2001 From: Arcturus Zhang Date: Mon, 23 Jun 2025 23:14:38 +0800 Subject: [PATCH 02/10] totally not working, need to investigate why --- eng/Packages.Data.props | 2 +- .../Generator/src/Model/Specification.Analyze.cs | 2 +- .../Generator/src/Specifications/ArmSpecification.cs | 12 ++++++++++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/eng/Packages.Data.props b/eng/Packages.Data.props index 8b9b879043db..e55ce9d90b72 100644 --- a/eng/Packages.Data.props +++ b/eng/Packages.Data.props @@ -156,7 +156,7 @@ - + diff --git a/sdk/provisioning/Generator/src/Model/Specification.Analyze.cs b/sdk/provisioning/Generator/src/Model/Specification.Analyze.cs index 1a64f2d150df..706544a3c551 100644 --- a/sdk/provisioning/Generator/src/Model/Specification.Analyze.cs +++ b/sdk/provisioning/Generator/src/Model/Specification.Analyze.cs @@ -145,7 +145,7 @@ [.. data.ApiVersions.OrderDescending().Where((v, i) => }); } - private Dictionary FindConstructibleResources() + private protected virtual Dictionary FindConstructibleResources() { // Find constructible resources Dictionary resources = []; diff --git a/sdk/provisioning/Generator/src/Specifications/ArmSpecification.cs b/sdk/provisioning/Generator/src/Specifications/ArmSpecification.cs index 45834ee109f4..55b8e1f6fc66 100644 --- a/sdk/provisioning/Generator/src/Specifications/ArmSpecification.cs +++ b/sdk/provisioning/Generator/src/Specifications/ArmSpecification.cs @@ -3,10 +3,15 @@ using Azure.Provisioning.Generator.Model; using Azure.ResourceManager; +using Azure.ResourceManager.AppService; +using Azure.ResourceManager.AppService.Models; using Azure.ResourceManager.ManagementGroups; using Azure.ResourceManager.Models; using Azure.ResourceManager.Resources; using Azure.ResourceManager.Resources.Models; +using System; +using System.Collections.Generic; +using System.Reflection; namespace Azure.Provisioning.Generator.Specifications; @@ -69,4 +74,11 @@ protected override void Customize() Roles.Add(new Role("ManagedIdentityContributor", "e40ec5ca-96e0-45a2-b4ff-59039f2c2b59", "Create, Read, Update, and Delete User Assigned Identity")); Roles.Add(new Role("ManagedIdentityOperator", "f1a07417-d97a-45cb-824c-7a7467783830", "Read and Assign User Assigned Identity")); } + private protected override Dictionary FindConstructibleResources() + { + // Add missing resources + var dict = base.FindConstructibleResources(); + dict.Add(typeof(AzureCliScript), typeof(ArmDeploymentScriptCollection).GetMethod("CreateOrUpdate")!); + return dict; + } } From fe23b74b6ef0655e9619bb9942dd897702c800de Mon Sep 17 00:00:00 2001 From: Arcturus Zhang Date: Tue, 1 Jul 2025 11:55:32 +0800 Subject: [PATCH 03/10] fix build issue and add a note --- sdk/provisioning/Generator/src/Model/Resource.cs | 2 ++ .../Generator/src/Specifications/AppServiceSpecification.cs | 2 +- .../Generator/src/Specifications/ArmSpecification.cs | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/sdk/provisioning/Generator/src/Model/Resource.cs b/sdk/provisioning/Generator/src/Model/Resource.cs index 8ac75f83c39b..26c16df81b6f 100644 --- a/sdk/provisioning/Generator/src/Model/Resource.cs +++ b/sdk/provisioning/Generator/src/Model/Resource.cs @@ -26,6 +26,8 @@ public class Resource(Specification spec, Type armType) public SimpleModel? GetKeysType { get; set; } public bool GetKeysIsList { get; set; } + // TODO -- add discriminated child resources to support such cases as DeploymentScript + public override string ToString() => $""; public override void Lint() diff --git a/sdk/provisioning/Generator/src/Specifications/AppServiceSpecification.cs b/sdk/provisioning/Generator/src/Specifications/AppServiceSpecification.cs index 648ee725ce98..79401b225e46 100644 --- a/sdk/provisioning/Generator/src/Specifications/AppServiceSpecification.cs +++ b/sdk/provisioning/Generator/src/Specifications/AppServiceSpecification.cs @@ -72,7 +72,7 @@ protected override void Customize() Roles.Add(new Role("WebsiteContributor", "de139f84-1756-47ae-9be6-808fbbe84772", "Manage websites, but not web plans. Does not allow you to assign roles in Azure RBAC.")); } - protected override Dictionary FindConstructibleResources() + private protected override Dictionary FindConstructibleResources() { // Add missing resources var dict = base.FindConstructibleResources(); diff --git a/sdk/provisioning/Generator/src/Specifications/ArmSpecification.cs b/sdk/provisioning/Generator/src/Specifications/ArmSpecification.cs index 55b8e1f6fc66..a95a08578069 100644 --- a/sdk/provisioning/Generator/src/Specifications/ArmSpecification.cs +++ b/sdk/provisioning/Generator/src/Specifications/ArmSpecification.cs @@ -74,6 +74,7 @@ protected override void Customize() Roles.Add(new Role("ManagedIdentityContributor", "e40ec5ca-96e0-45a2-b4ff-59039f2c2b59", "Create, Read, Update, and Delete User Assigned Identity")); Roles.Add(new Role("ManagedIdentityOperator", "f1a07417-d97a-45cb-824c-7a7467783830", "Read and Assign User Assigned Identity")); } + private protected override Dictionary FindConstructibleResources() { // Add missing resources From f4cd3c5bf2d31a9f275d6624262ae469b3b1432b Mon Sep 17 00:00:00 2001 From: Arcturus Zhang Date: Tue, 1 Jul 2025 15:46:40 +0800 Subject: [PATCH 04/10] Add the azurecliscript resource --- .../src/Generated/ArmApplication.cs | 1 + .../src/Generated/ArmApplicationDefinition.cs | 1 + .../src/Generated/ArmDeployment.cs | 1 + .../src/Generated/ArmDeploymentScript.cs | 1 + .../Generated/AuthorizationRoleDefinition.cs | 1 + .../src/Generated/AzureCliScript.cs | 252 ++++++++++++++++++ .../src/Generated/DeploymentStack.cs | 1 + .../Generated/FederatedIdentityCredential.cs | 1 + .../src/Generated/GenericResource.cs | 1 + .../src/Generated/JitRequest.cs | 1 + .../src/Generated/ManagementGroup.cs | 1 + .../ManagementGroupPolicyDefinition.cs | 1 + .../ManagementGroupPolicySetDefinition.cs | 1 + .../Generated/ManagementGroupSubscription.cs | 1 + .../src/Generated/ManagementLock.cs | 1 + .../Models/ArmDeploymentPropertiesExtended.cs | 20 -- .../Generated/Models/ScriptCleanupOptions.cs | 28 ++ .../Models/ScriptContainerConfiguration.cs | 70 +++++ .../Models/ScriptContainerGroupSubnet.cs | 55 ++++ .../Models/ScriptEnvironmentVariable.cs | 65 +++++ .../Models/ScriptProvisioningState.cs | 42 +++ .../src/Generated/Models/ScriptStatus.cs | 93 +++++++ .../Models/ScriptStorageConfiguration.cs | 55 ++++ .../src/Generated/PolicyAssignment.cs | 1 + .../src/Generated/ResourceGroup.cs | 1 + .../src/Generated/RoleAssignment.cs | 1 + .../RoleAssignmentScheduleRequest.cs | 1 + .../RoleEligibilityScheduleRequest.cs | 1 + .../RoleManagementPolicyAssignment.cs | 1 + .../src/Generated/Subscription.cs | 1 + .../Generated/SubscriptionPolicyDefinition.cs | 1 + .../SubscriptionPolicySetDefinition.cs | 1 + .../src/Generated/TagResource.cs | 1 + .../src/Generated/TemplateSpec.cs | 1 + .../src/Generated/TemplateSpecVersion.cs | 1 + .../src/Generated/Tenant.cs | 1 + .../src/Generated/TenantDataBoundary.cs | 1 + .../src/Generated/UserAssignedIdentity.cs | 1 + .../Generator/src/Model/Resource.cs | 16 +- .../src/Model/Specification.Analyze.cs | 1 - .../src/Specifications/ArmSpecification.cs | 8 - .../Specifications/ResourcesSpecification.cs | 27 ++ 42 files changed, 730 insertions(+), 31 deletions(-) create mode 100644 sdk/provisioning/Azure.Provisioning/src/Generated/AzureCliScript.cs create mode 100644 sdk/provisioning/Azure.Provisioning/src/Generated/Models/ScriptCleanupOptions.cs create mode 100644 sdk/provisioning/Azure.Provisioning/src/Generated/Models/ScriptContainerConfiguration.cs create mode 100644 sdk/provisioning/Azure.Provisioning/src/Generated/Models/ScriptContainerGroupSubnet.cs create mode 100644 sdk/provisioning/Azure.Provisioning/src/Generated/Models/ScriptEnvironmentVariable.cs create mode 100644 sdk/provisioning/Azure.Provisioning/src/Generated/Models/ScriptProvisioningState.cs create mode 100644 sdk/provisioning/Azure.Provisioning/src/Generated/Models/ScriptStatus.cs create mode 100644 sdk/provisioning/Azure.Provisioning/src/Generated/Models/ScriptStorageConfiguration.cs diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/ArmApplication.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/ArmApplication.cs index 927a37d69b0c..8171a5e1e358 100644 --- a/sdk/provisioning/Azure.Provisioning/src/Generated/ArmApplication.cs +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/ArmApplication.cs @@ -305,6 +305,7 @@ public ArmApplication(string bicepIdentifier, string? resourceVersion = default) /// protected override void DefineProvisionableProperties() { + base.DefineProvisionableProperties(); _name = DefineProperty("Name", ["name"], isRequired: true); _kind = DefineProperty("Kind", ["kind"], isRequired: true); _location = DefineProperty("Location", ["location"], isRequired: true); diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/ArmApplicationDefinition.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/ArmApplicationDefinition.cs index d7decf8f05d8..36b65d5b151d 100644 --- a/sdk/provisioning/Azure.Provisioning/src/Generated/ArmApplicationDefinition.cs +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/ArmApplicationDefinition.cs @@ -266,6 +266,7 @@ public ArmApplicationDefinition(string bicepIdentifier, string? resourceVersion /// protected override void DefineProvisionableProperties() { + base.DefineProvisionableProperties(); _name = DefineProperty("Name", ["name"], isRequired: true); _location = DefineProperty("Location", ["location"], isRequired: true); _lockLevel = DefineProperty("LockLevel", ["properties", "lockLevel"], isRequired: true); diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/ArmDeployment.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/ArmDeployment.cs index 160ef0ae8f15..4f70efb0fa12 100644 --- a/sdk/provisioning/Azure.Provisioning/src/Generated/ArmDeployment.cs +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/ArmDeployment.cs @@ -95,6 +95,7 @@ public ArmDeployment(string bicepIdentifier, string? resourceVersion = default) /// protected override void DefineProvisionableProperties() { + base.DefineProvisionableProperties(); _name = DefineProperty("Name", ["name"], isRequired: true); _id = DefineProperty("Id", ["id"], isOutput: true); _location = DefineProperty("Location", ["location"], isOutput: true); diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/ArmDeploymentScript.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/ArmDeploymentScript.cs index d35182405351..76e32db751ca 100644 --- a/sdk/provisioning/Azure.Provisioning/src/Generated/ArmDeploymentScript.cs +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/ArmDeploymentScript.cs @@ -97,6 +97,7 @@ public ArmDeploymentScript(string bicepIdentifier, string? resourceVersion = def /// protected override void DefineProvisionableProperties() { + base.DefineProvisionableProperties(); _name = DefineProperty("Name", ["name"], isRequired: true); _location = DefineProperty("Location", ["location"], isRequired: true); _identity = DefineModelProperty("Identity", ["identity"]); diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/AuthorizationRoleDefinition.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/AuthorizationRoleDefinition.cs index 880498e7f83f..8488c4cb625a 100644 --- a/sdk/provisioning/Azure.Provisioning/src/Generated/AuthorizationRoleDefinition.cs +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/AuthorizationRoleDefinition.cs @@ -120,6 +120,7 @@ public AuthorizationRoleDefinition(string bicepIdentifier, string? resourceVersi /// protected override void DefineProvisionableProperties() { + base.DefineProvisionableProperties(); _name = DefineProperty("Name", ["name"], isOutput: true, defaultValue: GetNameDefaultValue()); _assignableScopes = DefineListProperty("AssignableScopes", ["properties", "assignableScopes"]); _description = DefineProperty("Description", ["properties", "description"]); diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/AzureCliScript.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/AzureCliScript.cs new file mode 100644 index 000000000000..6e4e0763bafb --- /dev/null +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/AzureCliScript.cs @@ -0,0 +1,252 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable enable + +using Azure; +using Azure.Core; +using Azure.Provisioning; +using Azure.Provisioning.Primitives; +using System; + +namespace Azure.Provisioning.Resources; + +/// +/// AzureCliScript. +/// +public partial class AzureCliScript : ArmDeploymentScript +{ + /// + /// Azure CLI module version to be used. + /// + public BicepValue AzCliVersion + { + get { Initialize(); return _azCliVersion!; } + set { Initialize(); _azCliVersion!.Assign(value); } + } + private BicepValue? _azCliVersion; + + /// + /// Interval for which the service retains the script resource after it + /// reaches a terminal state. Resource will be deleted when this duration + /// expires. Duration is based on ISO 8601 pattern (for example P1D means + /// one day). + /// + public BicepValue RetentionInterval + { + get { Initialize(); return _retentionInterval!; } + set { Initialize(); _retentionInterval!.Assign(value); } + } + private BicepValue? _retentionInterval; + + /// + /// Command line arguments to pass to the script. Arguments are separated + /// by spaces. ex: -Name blue* -Location 'West US 2'. + /// + public BicepValue Arguments + { + get { Initialize(); return _arguments!; } + set { Initialize(); _arguments!.Assign(value); } + } + private BicepValue? _arguments; + + /// + /// The clean up preference when the script execution gets in a terminal + /// state. Default setting is 'Always'. + /// + public BicepValue CleanupPreference + { + get { Initialize(); return _cleanupPreference!; } + set { Initialize(); _cleanupPreference!.Assign(value); } + } + private BicepValue? _cleanupPreference; + + /// + /// Container group name, if not specified then the name will get + /// auto-generated. Not specifying a 'containerGroupName' + /// indicates the system to generate a unique name which might end up + /// flagging an Azure Policy as non-compliant. Use + /// 'containerGroupName' when you have an Azure Policy that + /// expects a specific naming convention or when you want to fully control + /// the name. 'containerGroupName' property must be between 1 + /// and 63 characters long, must contain only lowercase letters, numbers, + /// and dashes and it cannot start or end with a dash and consecutive + /// dashes are not allowed. To specify a 'containerGroupName', + /// add the following object to properties: { + /// "containerSettings": { "containerGroupName": + /// "contoso-container" } }. If you do not want to specify a + /// 'containerGroupName' then do not add + /// 'containerSettings' property. + /// + public BicepValue ContainerGroupName + { + get { Initialize(); return _containerGroupName!; } + set { Initialize(); _containerGroupName!.Assign(value); } + } + private BicepValue? _containerGroupName; + + /// + /// Container settings. + /// + public ScriptContainerConfiguration ContainerSettings + { + get { Initialize(); return _containerSettings!; } + set { Initialize(); AssignOrReplace(ref _containerSettings, value); } + } + private ScriptContainerConfiguration? _containerSettings; + + /// + /// The environment variables to pass over to the script. + /// + public BicepList EnvironmentVariables + { + get { Initialize(); return _environmentVariables!; } + set { Initialize(); _environmentVariables!.Assign(value); } + } + private BicepList? _environmentVariables; + + /// + /// Gets or sets how the deployment script should be forced to execute even + /// if the script resource has not changed. Can be current time stamp or a + /// GUID. + /// + public BicepValue ForceUpdateTag + { + get { Initialize(); return _forceUpdateTag!; } + set { Initialize(); _forceUpdateTag!.Assign(value); } + } + private BicepValue? _forceUpdateTag; + + /// + /// Uri for the script. This is the entry point for the external script. + /// + public BicepValue PrimaryScriptUri + { + get { Initialize(); return _primaryScriptUri!; } + set { Initialize(); _primaryScriptUri!.Assign(value); } + } + private BicepValue? _primaryScriptUri; + + /// + /// Script body. + /// + public BicepValue ScriptContent + { + get { Initialize(); return _scriptContent!; } + set { Initialize(); _scriptContent!.Assign(value); } + } + private BicepValue? _scriptContent; + + /// + /// Storage Account settings. + /// + public ScriptStorageConfiguration StorageAccountSettings + { + get { Initialize(); return _storageAccountSettings!; } + set { Initialize(); AssignOrReplace(ref _storageAccountSettings, value); } + } + private ScriptStorageConfiguration? _storageAccountSettings; + + /// + /// Supporting files for the external script. + /// + public BicepList SupportingScriptUris + { + get { Initialize(); return _supportingScriptUris!; } + set { Initialize(); _supportingScriptUris!.Assign(value); } + } + private BicepList? _supportingScriptUris; + + /// + /// Maximum allowed script execution time specified in ISO 8601 format. + /// Default value is P1D. + /// + public BicepValue Timeout + { + get { Initialize(); return _timeout!; } + set { Initialize(); _timeout!.Assign(value); } + } + private BicepValue? _timeout; + + /// + /// List of script outputs. To assign an object to + /// this property use + /// System.BinaryData.FromObjectAsJson``1(``0,System.Text.Json.JsonSerializerOptions). + /// To assign an already formatted json string to + /// this property use System.BinaryData.FromString(System.String). + /// Examples: + /// BinaryData.FromObjectAsJson("foo")Creates a + /// payload of + /// "foo".BinaryData.FromString("\"foo\"")Creates + /// a payload of "foo".BinaryData.FromObjectAsJson(new { key = + /// "value" })Creates a payload of { "key": + /// "value" }.BinaryData.FromString("{\"key\": + /// \"value\"}")Creates a payload of { "key": + /// "value" }. + /// + public BicepValue Outputs + { + get { Initialize(); return _outputs!; } + } + private BicepValue? _outputs; + + /// + /// State of the script execution. This only appears in the response. + /// + public BicepValue ProvisioningState + { + get { Initialize(); return _provisioningState!; } + } + private BicepValue? _provisioningState; + + /// + /// Contains the results of script execution. + /// + public ScriptStatus Status + { + get { Initialize(); return _status!; } + } + private ScriptStatus? _status; + + /// + /// Creates a new AzureCliScript. + /// + /// + /// The the Bicep identifier name of the AzureCliScript resource. This can + /// be used to refer to the resource in expressions, but is not the Azure + /// name of the resource. This value can contain letters, numbers, and + /// underscores. + /// + /// Version of the AzureCliScript. + public AzureCliScript(string bicepIdentifier, string? resourceVersion = default) + : base(bicepIdentifier, resourceVersion) + { + } + + /// + /// Define all the provisionable properties of AzureCliScript. + /// + protected override void DefineProvisionableProperties() + { + base.DefineProvisionableProperties(); + DefineProperty("Kind", ["Kind"], defaultValue: "AzureCLI"); + _azCliVersion = DefineProperty("AzCliVersion", ["properties", "azCliVersion"], isRequired: true); + _retentionInterval = DefineProperty("RetentionInterval", ["properties", "retentionInterval"], isRequired: true); + _arguments = DefineProperty("Arguments", ["properties", "arguments"]); + _cleanupPreference = DefineProperty("CleanupPreference", ["properties", "cleanupPreference"]); + _containerGroupName = DefineProperty("ContainerGroupName", ["properties", "containerSettings", "containerGroupName"]); + _containerSettings = DefineModelProperty("ContainerSettings", ["properties", "containerSettings"]); + _environmentVariables = DefineListProperty("EnvironmentVariables", ["properties", "environmentVariables"]); + _forceUpdateTag = DefineProperty("ForceUpdateTag", ["properties", "forceUpdateTag"]); + _primaryScriptUri = DefineProperty("PrimaryScriptUri", ["properties", "primaryScriptUri"]); + _scriptContent = DefineProperty("ScriptContent", ["properties", "scriptContent"]); + _storageAccountSettings = DefineModelProperty("StorageAccountSettings", ["properties", "storageAccountSettings"]); + _supportingScriptUris = DefineListProperty("SupportingScriptUris", ["properties", "supportingScriptUris"]); + _timeout = DefineProperty("Timeout", ["properties", "timeout"]); + _outputs = DefineProperty("Outputs", ["properties", "outputs"], isOutput: true); + _provisioningState = DefineProperty("ProvisioningState", ["properties", "provisioningState"], isOutput: true); + _status = DefineModelProperty("Status", ["properties", "status"], isOutput: true); + } +} diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/DeploymentStack.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/DeploymentStack.cs index c3ed9e7e2107..35999b45f0cf 100644 --- a/sdk/provisioning/Azure.Provisioning/src/Generated/DeploymentStack.cs +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/DeploymentStack.cs @@ -338,6 +338,7 @@ public DeploymentStack(string bicepIdentifier, string? resourceVersion = default /// protected override void DefineProvisionableProperties() { + base.DefineProvisionableProperties(); _name = DefineProperty("Name", ["name"], isRequired: true); _actionOnUnmanage = DefineModelProperty("ActionOnUnmanage", ["properties", "actionOnUnmanage"]); _bypassStackOutOfSyncError = DefineProperty("BypassStackOutOfSyncError", ["properties", "bypassStackOutOfSyncError"]); diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/FederatedIdentityCredential.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/FederatedIdentityCredential.cs index b7eb36eefc78..bf06f23ddbc9 100644 --- a/sdk/provisioning/Azure.Provisioning/src/Generated/FederatedIdentityCredential.cs +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/FederatedIdentityCredential.cs @@ -107,6 +107,7 @@ public FederatedIdentityCredential(string bicepIdentifier, string? resourceVersi /// protected override void DefineProvisionableProperties() { + base.DefineProvisionableProperties(); _name = DefineProperty("Name", ["name"], isRequired: true); _audiences = DefineListProperty("Audiences", ["properties", "audiences"]); _issuerUri = DefineProperty("IssuerUri", ["properties", "issuer"]); diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/GenericResource.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/GenericResource.cs index 2a8ba8aeb33b..7f6221c31cfb 100644 --- a/sdk/provisioning/Azure.Provisioning/src/Generated/GenericResource.cs +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/GenericResource.cs @@ -199,6 +199,7 @@ public GenericResource(string bicepIdentifier, string? resourceVersion = default /// protected override void DefineProvisionableProperties() { + base.DefineProvisionableProperties(); _name = DefineProperty("Name", ["name"], isOutput: true); _location = DefineProperty("Location", ["location"], isRequired: true); _extendedLocation = DefineModelProperty("ExtendedLocation", ["extendedLocation"]); diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/JitRequest.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/JitRequest.cs index 0c8bb40f8059..f8161531a244 100644 --- a/sdk/provisioning/Azure.Provisioning/src/Generated/JitRequest.cs +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/JitRequest.cs @@ -160,6 +160,7 @@ public JitRequest(string bicepIdentifier, string? resourceVersion = default) /// protected override void DefineProvisionableProperties() { + base.DefineProvisionableProperties(); _name = DefineProperty("Name", ["name"], isRequired: true); _location = DefineProperty("Location", ["location"], isRequired: true); _applicationResourceId = DefineProperty("ApplicationResourceId", ["properties", "applicationResourceId"]); diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/ManagementGroup.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/ManagementGroup.cs index 7b44fb3fbfdc..baca6b44f050 100644 --- a/sdk/provisioning/Azure.Provisioning/src/Generated/ManagementGroup.cs +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/ManagementGroup.cs @@ -108,6 +108,7 @@ public ManagementGroup(string bicepIdentifier, string? resourceVersion = default /// protected override void DefineProvisionableProperties() { + base.DefineProvisionableProperties(); _name = DefineProperty("Name", ["name"]); _details = DefineModelProperty("Details", ["properties", "details"]); _displayName = DefineProperty("DisplayName", ["properties", "displayName"]); diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/ManagementGroupPolicyDefinition.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/ManagementGroupPolicyDefinition.cs index 938a67c4d00c..2755a79e69dd 100644 --- a/sdk/provisioning/Azure.Provisioning/src/Generated/ManagementGroupPolicyDefinition.cs +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/ManagementGroupPolicyDefinition.cs @@ -169,6 +169,7 @@ public ManagementGroupPolicyDefinition(string bicepIdentifier, string? resourceV /// protected override void DefineProvisionableProperties() { + base.DefineProvisionableProperties(); _name = DefineProperty("Name", ["name"], isRequired: true); _description = DefineProperty("Description", ["properties", "description"]); _displayName = DefineProperty("DisplayName", ["properties", "displayName"]); diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/ManagementGroupPolicySetDefinition.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/ManagementGroupPolicySetDefinition.cs index ed3481d6be63..4fac288818b6 100644 --- a/sdk/provisioning/Azure.Provisioning/src/Generated/ManagementGroupPolicySetDefinition.cs +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/ManagementGroupPolicySetDefinition.cs @@ -156,6 +156,7 @@ public ManagementGroupPolicySetDefinition(string bicepIdentifier, string? resour /// protected override void DefineProvisionableProperties() { + base.DefineProvisionableProperties(); _name = DefineProperty("Name", ["name"], isRequired: true); _description = DefineProperty("Description", ["properties", "description"]); _displayName = DefineProperty("DisplayName", ["properties", "displayName"]); diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/ManagementGroupSubscription.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/ManagementGroupSubscription.cs index 3c46339ff99f..8800c2818647 100644 --- a/sdk/provisioning/Azure.Provisioning/src/Generated/ManagementGroupSubscription.cs +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/ManagementGroupSubscription.cs @@ -113,6 +113,7 @@ public ManagementGroupSubscription(string bicepIdentifier, string? resourceVersi /// protected override void DefineProvisionableProperties() { + base.DefineProvisionableProperties(); _name = DefineProperty("Name", ["name"], isOutput: true); _displayName = DefineProperty("DisplayName", ["properties", "displayName"], isOutput: true); _id = DefineProperty("Id", ["id"], isOutput: true); diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/ManagementLock.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/ManagementLock.cs index a4b0f3f4345d..d17aae0963f1 100644 --- a/sdk/provisioning/Azure.Provisioning/src/Generated/ManagementLock.cs +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/ManagementLock.cs @@ -101,6 +101,7 @@ public ManagementLock(string bicepIdentifier, string? resourceVersion = default) /// protected override void DefineProvisionableProperties() { + base.DefineProvisionableProperties(); _name = DefineProperty("Name", ["name"], isRequired: true); _level = DefineProperty("Level", ["properties", "level"], isRequired: true); _notes = DefineProperty("Notes", ["properties", "notes"]); diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ArmDeploymentPropertiesExtended.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ArmDeploymentPropertiesExtended.cs index b76870721311..c9f24a3ddc66 100644 --- a/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ArmDeploymentPropertiesExtended.cs +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ArmDeploymentPropertiesExtended.cs @@ -18,24 +18,6 @@ namespace Azure.Provisioning.Resources; /// public partial class ArmDeploymentPropertiesExtended : ProvisionableConstruct { - /// - /// Array of provisioned resources. - /// - public BicepList OutputResources - { - get { Initialize(); return _outputResources!; } - } - private BicepList? _outputResources; - - /// - /// Array of validated resources. - /// - public BicepList ValidatedResources - { - get { Initialize(); return _validatedResources!; } - } - private BicepList? _validatedResources; - /// /// Denotes the state of provisioning. /// @@ -247,8 +229,6 @@ public ArmDeploymentPropertiesExtended() protected override void DefineProvisionableProperties() { base.DefineProvisionableProperties(); - _outputResources = DefineListProperty("OutputResources", ["outputResources"], isOutput: true); - _validatedResources = DefineListProperty("ValidatedResources", ["validatedResources"], isOutput: true); _provisioningState = DefineProperty("ProvisioningState", ["provisioningState"], isOutput: true); _correlationId = DefineProperty("CorrelationId", ["correlationId"], isOutput: true); _timestamp = DefineProperty("Timestamp", ["timestamp"], isOutput: true); diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ScriptCleanupOptions.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ScriptCleanupOptions.cs new file mode 100644 index 000000000000..b066931e83ea --- /dev/null +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ScriptCleanupOptions.cs @@ -0,0 +1,28 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +namespace Azure.Provisioning.Resources; + +/// +/// The clean up preference when the script execution gets in a terminal state. +/// Default setting is 'Always'. +/// +public enum ScriptCleanupOptions +{ + /// + /// Always. + /// + Always, + + /// + /// OnSuccess. + /// + OnSuccess, + + /// + /// OnExpiration. + /// + OnExpiration, +} diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ScriptContainerConfiguration.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ScriptContainerConfiguration.cs new file mode 100644 index 000000000000..6f66839264f1 --- /dev/null +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ScriptContainerConfiguration.cs @@ -0,0 +1,70 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable enable + +using Azure.Core; +using Azure.Provisioning; +using Azure.Provisioning.Primitives; +using System; + +namespace Azure.Provisioning.Resources; + +/// +/// Settings to customize ACI container instance. +/// +public partial class ScriptContainerConfiguration : ProvisionableConstruct +{ + /// + /// Container group name, if not specified then the name will get + /// auto-generated. Not specifying a 'containerGroupName' + /// indicates the system to generate a unique name which might end up + /// flagging an Azure Policy as non-compliant. Use + /// 'containerGroupName' when you have an Azure Policy that + /// expects a specific naming convention or when you want to fully control + /// the name. 'containerGroupName' property must be between 1 + /// and 63 characters long, must contain only lowercase letters, numbers, + /// and dashes and it cannot start or end with a dash and consecutive + /// dashes are not allowed. To specify a 'containerGroupName', + /// add the following object to properties: { + /// "containerSettings": { "containerGroupName": + /// "contoso-container" } }. If you do not want to specify a + /// 'containerGroupName' then do not add + /// 'containerSettings' property. + /// + public BicepValue ContainerGroupName + { + get { Initialize(); return _containerGroupName!; } + set { Initialize(); _containerGroupName!.Assign(value); } + } + private BicepValue? _containerGroupName; + + /// + /// The subnet resource IDs for a container group. + /// + public BicepList SubnetIds + { + get { Initialize(); return _subnetIds!; } + set { Initialize(); _subnetIds!.Assign(value); } + } + private BicepList? _subnetIds; + + /// + /// Creates a new ScriptContainerConfiguration. + /// + public ScriptContainerConfiguration() + { + } + + /// + /// Define all the provisionable properties of ScriptContainerConfiguration. + /// + protected override void DefineProvisionableProperties() + { + base.DefineProvisionableProperties(); + _containerGroupName = DefineProperty("ContainerGroupName", ["containerGroupName"]); + _subnetIds = DefineListProperty("SubnetIds", ["subnetIds"]); + } +} diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ScriptContainerGroupSubnet.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ScriptContainerGroupSubnet.cs new file mode 100644 index 000000000000..b49bf3c9cf0e --- /dev/null +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ScriptContainerGroupSubnet.cs @@ -0,0 +1,55 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable enable + +using Azure.Core; +using Azure.Provisioning.Primitives; +using System; + +namespace Azure.Provisioning.Resources; + +/// +/// Container group subnet information. +/// +public partial class ScriptContainerGroupSubnet : ProvisionableConstruct +{ + /// + /// Resource ID of subnet. + /// + public BicepValue Id + { + get { Initialize(); return _id!; } + set { Initialize(); _id!.Assign(value); } + } + private BicepValue? _id; + + /// + /// Friendly name for the subnet. + /// + public BicepValue Name + { + get { Initialize(); return _name!; } + set { Initialize(); _name!.Assign(value); } + } + private BicepValue? _name; + + /// + /// Creates a new ScriptContainerGroupSubnet. + /// + public ScriptContainerGroupSubnet() + { + } + + /// + /// Define all the provisionable properties of ScriptContainerGroupSubnet. + /// + protected override void DefineProvisionableProperties() + { + base.DefineProvisionableProperties(); + _id = DefineProperty("Id", ["id"]); + _name = DefineProperty("Name", ["name"]); + } +} diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ScriptEnvironmentVariable.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ScriptEnvironmentVariable.cs new file mode 100644 index 000000000000..4da250afb307 --- /dev/null +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ScriptEnvironmentVariable.cs @@ -0,0 +1,65 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable enable + +using Azure.Provisioning.Primitives; +using System; + +namespace Azure.Provisioning.Resources; + +/// +/// The environment variable to pass to the script in the container instance. +/// +public partial class ScriptEnvironmentVariable : ProvisionableConstruct +{ + /// + /// The name of the environment variable. + /// + public BicepValue Name + { + get { Initialize(); return _name!; } + set { Initialize(); _name!.Assign(value); } + } + private BicepValue? _name; + + /// + /// The value of the environment variable. + /// + public BicepValue Value + { + get { Initialize(); return _value!; } + set { Initialize(); _value!.Assign(value); } + } + private BicepValue? _value; + + /// + /// The value of the secure environment variable. + /// + public BicepValue SecureValue + { + get { Initialize(); return _secureValue!; } + set { Initialize(); _secureValue!.Assign(value); } + } + private BicepValue? _secureValue; + + /// + /// Creates a new ScriptEnvironmentVariable. + /// + public ScriptEnvironmentVariable() + { + } + + /// + /// Define all the provisionable properties of ScriptEnvironmentVariable. + /// + protected override void DefineProvisionableProperties() + { + base.DefineProvisionableProperties(); + _name = DefineProperty("Name", ["name"]); + _value = DefineProperty("Value", ["value"]); + _secureValue = DefineProperty("SecureValue", ["secureValue"]); + } +} diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ScriptProvisioningState.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ScriptProvisioningState.cs new file mode 100644 index 000000000000..0a8affb5fee0 --- /dev/null +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ScriptProvisioningState.cs @@ -0,0 +1,42 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +namespace Azure.Provisioning.Resources; + +/// +/// State of the script execution. This only appears in the response. +/// +public enum ScriptProvisioningState +{ + /// + /// Creating. + /// + Creating, + + /// + /// ProvisioningResources. + /// + ProvisioningResources, + + /// + /// Running. + /// + Running, + + /// + /// Succeeded. + /// + Succeeded, + + /// + /// Failed. + /// + Failed, + + /// + /// Canceled. + /// + Canceled, +} diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ScriptStatus.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ScriptStatus.cs new file mode 100644 index 000000000000..30e1f5c55367 --- /dev/null +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ScriptStatus.cs @@ -0,0 +1,93 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable enable + +using Azure; +using Azure.Provisioning.Primitives; +using System; + +namespace Azure.Provisioning.Resources; + +/// +/// Generic object modeling results of script execution. +/// +public partial class ScriptStatus : ProvisionableConstruct +{ + /// + /// ACI resource Id. + /// + public BicepValue ContainerInstanceId + { + get { Initialize(); return _containerInstanceId!; } + } + private BicepValue? _containerInstanceId; + + /// + /// Storage account resource Id. + /// + public BicepValue StorageAccountId + { + get { Initialize(); return _storageAccountId!; } + } + private BicepValue? _storageAccountId; + + /// + /// Start time of the script execution. + /// + public BicepValue StartOn + { + get { Initialize(); return _startOn!; } + } + private BicepValue? _startOn; + + /// + /// End time of the script execution. + /// + public BicepValue EndOn + { + get { Initialize(); return _endOn!; } + } + private BicepValue? _endOn; + + /// + /// Time the deployment script resource will expire. + /// + public BicepValue ExpireOn + { + get { Initialize(); return _expireOn!; } + } + private BicepValue? _expireOn; + + /// + /// Error that is relayed from the script execution. + /// + public BicepValue Error + { + get { Initialize(); return _error!; } + } + private BicepValue? _error; + + /// + /// Creates a new ScriptStatus. + /// + public ScriptStatus() + { + } + + /// + /// Define all the provisionable properties of ScriptStatus. + /// + protected override void DefineProvisionableProperties() + { + base.DefineProvisionableProperties(); + _containerInstanceId = DefineProperty("ContainerInstanceId", ["containerInstanceId"], isOutput: true); + _storageAccountId = DefineProperty("StorageAccountId", ["storageAccountId"], isOutput: true); + _startOn = DefineProperty("StartOn", ["startTime"], isOutput: true); + _endOn = DefineProperty("EndOn", ["endTime"], isOutput: true); + _expireOn = DefineProperty("ExpireOn", ["expirationTime"], isOutput: true); + _error = DefineProperty("Error", ["error"], isOutput: true); + } +} diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ScriptStorageConfiguration.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ScriptStorageConfiguration.cs new file mode 100644 index 000000000000..ea3b72ef550b --- /dev/null +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ScriptStorageConfiguration.cs @@ -0,0 +1,55 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable enable + +using Azure.Provisioning.Primitives; +using System; + +namespace Azure.Provisioning.Resources; + +/// +/// Settings to use an existing storage account. Valid storage account kinds +/// are: Storage, StorageV2 and FileStorage. +/// +public partial class ScriptStorageConfiguration : ProvisionableConstruct +{ + /// + /// The storage account name. + /// + public BicepValue StorageAccountName + { + get { Initialize(); return _storageAccountName!; } + set { Initialize(); _storageAccountName!.Assign(value); } + } + private BicepValue? _storageAccountName; + + /// + /// The storage account access key. + /// + public BicepValue StorageAccountKey + { + get { Initialize(); return _storageAccountKey!; } + set { Initialize(); _storageAccountKey!.Assign(value); } + } + private BicepValue? _storageAccountKey; + + /// + /// Creates a new ScriptStorageConfiguration. + /// + public ScriptStorageConfiguration() + { + } + + /// + /// Define all the provisionable properties of ScriptStorageConfiguration. + /// + protected override void DefineProvisionableProperties() + { + base.DefineProvisionableProperties(); + _storageAccountName = DefineProperty("StorageAccountName", ["storageAccountName"]); + _storageAccountKey = DefineProperty("StorageAccountKey", ["storageAccountKey"]); + } +} diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/PolicyAssignment.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/PolicyAssignment.cs index e6da9ac2ebe4..0c6ad363f300 100644 --- a/sdk/provisioning/Azure.Provisioning/src/Generated/PolicyAssignment.cs +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/PolicyAssignment.cs @@ -216,6 +216,7 @@ public PolicyAssignment(string bicepIdentifier, string? resourceVersion = defaul /// protected override void DefineProvisionableProperties() { + base.DefineProvisionableProperties(); _name = DefineProperty("Name", ["name"], isRequired: true); _description = DefineProperty("Description", ["properties", "description"]); _displayName = DefineProperty("DisplayName", ["properties", "displayName"]); diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/ResourceGroup.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/ResourceGroup.cs index 11bf3f95c548..93b168d0b59d 100644 --- a/sdk/provisioning/Azure.Provisioning/src/Generated/ResourceGroup.cs +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/ResourceGroup.cs @@ -110,6 +110,7 @@ public ResourceGroup(string bicepIdentifier, string? resourceVersion = default) /// protected override void DefineProvisionableProperties() { + base.DefineProvisionableProperties(); _name = DefineProperty("Name", ["name"], isRequired: true); _location = DefineProperty("Location", ["location"], isRequired: true); _managedBy = DefineProperty("ManagedBy", ["managedBy"]); diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/RoleAssignment.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/RoleAssignment.cs index 1fa597bc03a9..2e73ac502ec2 100644 --- a/sdk/provisioning/Azure.Provisioning/src/Generated/RoleAssignment.cs +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/RoleAssignment.cs @@ -190,6 +190,7 @@ public RoleAssignment(string bicepIdentifier, string? resourceVersion = default) /// protected override void DefineProvisionableProperties() { + base.DefineProvisionableProperties(); _name = DefineProperty("Name", ["name"], isRequired: true, defaultValue: GetNameDefaultValue()); _principalId = DefineProperty("PrincipalId", ["properties", "principalId"], isRequired: true); _roleDefinitionId = DefineProperty("RoleDefinitionId", ["properties", "roleDefinitionId"], isRequired: true); diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/RoleAssignmentScheduleRequest.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/RoleAssignmentScheduleRequest.cs index 0cded32ffe91..e2e79bfd4383 100644 --- a/sdk/provisioning/Azure.Provisioning/src/Generated/RoleAssignmentScheduleRequest.cs +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/RoleAssignmentScheduleRequest.cs @@ -275,6 +275,7 @@ public RoleAssignmentScheduleRequest(string bicepIdentifier, string? resourceVer /// protected override void DefineProvisionableProperties() { + base.DefineProvisionableProperties(); _name = DefineProperty("Name", ["name"], isRequired: true); _condition = DefineProperty("Condition", ["properties", "condition"]); _conditionVersion = DefineProperty("ConditionVersion", ["properties", "conditionVersion"]); diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/RoleEligibilityScheduleRequest.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/RoleEligibilityScheduleRequest.cs index a505fdca6856..87d077c7c685 100644 --- a/sdk/provisioning/Azure.Provisioning/src/Generated/RoleEligibilityScheduleRequest.cs +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/RoleEligibilityScheduleRequest.cs @@ -264,6 +264,7 @@ public RoleEligibilityScheduleRequest(string bicepIdentifier, string? resourceVe /// protected override void DefineProvisionableProperties() { + base.DefineProvisionableProperties(); _name = DefineProperty("Name", ["name"], isRequired: true); _condition = DefineProperty("Condition", ["properties", "condition"]); _conditionVersion = DefineProperty("ConditionVersion", ["properties", "conditionVersion"]); diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/RoleManagementPolicyAssignment.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/RoleManagementPolicyAssignment.cs index a591ee344262..7d2bd9b6426b 100644 --- a/sdk/provisioning/Azure.Provisioning/src/Generated/RoleManagementPolicyAssignment.cs +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/RoleManagementPolicyAssignment.cs @@ -128,6 +128,7 @@ public RoleManagementPolicyAssignment(string bicepIdentifier, string? resourceVe /// protected override void DefineProvisionableProperties() { + base.DefineProvisionableProperties(); _name = DefineProperty("Name", ["name"], isRequired: true); _policyId = DefineProperty("PolicyId", ["properties", "policyId"]); _roleDefinitionId = DefineProperty("RoleDefinitionId", ["properties", "roleDefinitionId"]); diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/Subscription.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/Subscription.cs index fef122ccf6cb..27a1faa1f790 100644 --- a/sdk/provisioning/Azure.Provisioning/src/Generated/Subscription.cs +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/Subscription.cs @@ -123,6 +123,7 @@ public Subscription(string bicepIdentifier, string? resourceVersion = default) /// protected override void DefineProvisionableProperties() { + base.DefineProvisionableProperties(); _authorizationSource = DefineProperty("AuthorizationSource", ["authorizationSource"], isOutput: true); _displayName = DefineProperty("DisplayName", ["displayName"], isOutput: true); _id = DefineProperty("Id", ["id"], isOutput: true); diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/SubscriptionPolicyDefinition.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/SubscriptionPolicyDefinition.cs index 447c5cbf32ec..24919c41d864 100644 --- a/sdk/provisioning/Azure.Provisioning/src/Generated/SubscriptionPolicyDefinition.cs +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/SubscriptionPolicyDefinition.cs @@ -168,6 +168,7 @@ public SubscriptionPolicyDefinition(string bicepIdentifier, string? resourceVers /// protected override void DefineProvisionableProperties() { + base.DefineProvisionableProperties(); _name = DefineProperty("Name", ["name"], isRequired: true); _description = DefineProperty("Description", ["properties", "description"]); _displayName = DefineProperty("DisplayName", ["properties", "displayName"]); diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/SubscriptionPolicySetDefinition.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/SubscriptionPolicySetDefinition.cs index d3a23518bce7..44a0ef29ebef 100644 --- a/sdk/provisioning/Azure.Provisioning/src/Generated/SubscriptionPolicySetDefinition.cs +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/SubscriptionPolicySetDefinition.cs @@ -156,6 +156,7 @@ public SubscriptionPolicySetDefinition(string bicepIdentifier, string? resourceV /// protected override void DefineProvisionableProperties() { + base.DefineProvisionableProperties(); _name = DefineProperty("Name", ["name"], isRequired: true); _description = DefineProperty("Description", ["properties", "description"]); _displayName = DefineProperty("DisplayName", ["properties", "displayName"]); diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/TagResource.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/TagResource.cs index c5cca8115925..13c86870b4f8 100644 --- a/sdk/provisioning/Azure.Provisioning/src/Generated/TagResource.cs +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/TagResource.cs @@ -77,6 +77,7 @@ public TagResource(string bicepIdentifier, string? resourceVersion = default) /// protected override void DefineProvisionableProperties() { + base.DefineProvisionableProperties(); _name = DefineProperty("Name", ["name"], isOutput: true); _tagValues = DefineDictionaryProperty("TagValues", ["properties", "tags"]); _id = DefineProperty("Id", ["id"], isOutput: true); diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/TemplateSpec.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/TemplateSpec.cs index fe5ca94ee7ba..2dbc27b860a7 100644 --- a/sdk/provisioning/Azure.Provisioning/src/Generated/TemplateSpec.cs +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/TemplateSpec.cs @@ -142,6 +142,7 @@ public TemplateSpec(string bicepIdentifier, string? resourceVersion = default) /// protected override void DefineProvisionableProperties() { + base.DefineProvisionableProperties(); _name = DefineProperty("Name", ["name"], isRequired: true); _location = DefineProperty("Location", ["location"], isRequired: true); _description = DefineProperty("Description", ["properties", "description"]); diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/TemplateSpecVersion.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/TemplateSpecVersion.cs index 6af8fd5b41b4..1c5615d4c55d 100644 --- a/sdk/provisioning/Azure.Provisioning/src/Generated/TemplateSpecVersion.cs +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/TemplateSpecVersion.cs @@ -185,6 +185,7 @@ public TemplateSpecVersion(string bicepIdentifier, string? resourceVersion = def /// protected override void DefineProvisionableProperties() { + base.DefineProvisionableProperties(); _name = DefineProperty("Name", ["name"], isOutput: true); _location = DefineProperty("Location", ["location"], isRequired: true); _description = DefineProperty("Description", ["properties", "description"]); diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/Tenant.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/Tenant.cs index 0a59ced06790..4e6140e2142e 100644 --- a/sdk/provisioning/Azure.Provisioning/src/Generated/Tenant.cs +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/Tenant.cs @@ -130,6 +130,7 @@ public Tenant(string bicepIdentifier, string? resourceVersion = default) /// protected override void DefineProvisionableProperties() { + base.DefineProvisionableProperties(); _country = DefineProperty("Country", ["country"], isOutput: true); _countryCode = DefineProperty("CountryCode", ["countryCode"], isOutput: true); _defaultDomain = DefineProperty("DefaultDomain", ["defaultDomain"], isOutput: true); diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/TenantDataBoundary.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/TenantDataBoundary.cs index fb1c84408e3c..04ded934f24a 100644 --- a/sdk/provisioning/Azure.Provisioning/src/Generated/TenantDataBoundary.cs +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/TenantDataBoundary.cs @@ -75,6 +75,7 @@ public TenantDataBoundary(string bicepIdentifier, string? resourceVersion = defa /// protected override void DefineProvisionableProperties() { + base.DefineProvisionableProperties(); _name = DefineProperty("Name", ["name"], isRequired: true); _properties = DefineModelProperty("Properties", ["properties"]); _id = DefineProperty("Id", ["id"], isOutput: true); diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/UserAssignedIdentity.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/UserAssignedIdentity.cs index b616e0ac8ba4..14b6f88ae056 100644 --- a/sdk/provisioning/Azure.Provisioning/src/Generated/UserAssignedIdentity.cs +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/UserAssignedIdentity.cs @@ -116,6 +116,7 @@ public UserAssignedIdentity(string bicepIdentifier, string? resourceVersion = de /// protected override void DefineProvisionableProperties() { + base.DefineProvisionableProperties(); _name = DefineProperty("Name", ["name"], isRequired: true); _location = DefineProperty("Location", ["location"], isRequired: true); _tags = DefineDictionaryProperty("Tags", ["tags"]); diff --git a/sdk/provisioning/Generator/src/Model/Resource.cs b/sdk/provisioning/Generator/src/Model/Resource.cs index 26c16df81b6f..95442106e95a 100644 --- a/sdk/provisioning/Generator/src/Model/Resource.cs +++ b/sdk/provisioning/Generator/src/Model/Resource.cs @@ -70,7 +70,7 @@ public override void Generate() writer.WriteLine($"/// "); writer.WriteWrapped(Description ?? (Name + ".")); writer.WriteLine($"/// "); - writer.WriteLine($"public partial class {Name} : ProvisionableResource"); + writer.WriteLine($"public partial class {Name} : {(BaseType is not null ? BaseType.Name : "ProvisionableResource")}"); using (writer.Scope("{", "}")) { var fence = new IndentWriter.Fenceposter(); @@ -143,7 +143,14 @@ public override void Generate() writer.WriteLine($"/// "); writer.WriteLine($"/// Version of the {Name}."); writer.WriteLine($"public {Name}(string bicepIdentifier, string? resourceVersion = default)"); - writer.Write($" : base(bicepIdentifier, \"{ResourceType}\", resourceVersion"); + if (BaseType is not null) + { + writer.Write($" : base(bicepIdentifier, resourceVersion"); + } + else + { + writer.Write($" : base(bicepIdentifier, \"{ResourceType}\", resourceVersion"); + } if (DefaultResourceVersion is not null) { writer.Write($" ?? \"{DefaultResourceVersion}\""); @@ -159,6 +166,11 @@ public override void Generate() writer.WriteLine($"protected override void DefineProvisionableProperties()"); using (writer.Scope("{", "}")) { + writer.WriteLine("base.DefineProvisionableProperties();"); + if (DiscriminatorName is not null) + { + writer.WriteLine($"DefineProperty(\"{DiscriminatorName}\", [\"{DiscriminatorName}\"], defaultValue: \"{DiscriminatorValue}\");"); + } foreach (Property property in Properties) { writer.Write($"{property.FieldName} = "); diff --git a/sdk/provisioning/Generator/src/Model/Specification.Analyze.cs b/sdk/provisioning/Generator/src/Model/Specification.Analyze.cs index 4673c4eba746..d97003972b37 100644 --- a/sdk/provisioning/Generator/src/Model/Specification.Analyze.cs +++ b/sdk/provisioning/Generator/src/Model/Specification.Analyze.cs @@ -143,7 +143,6 @@ [.. data.ApiVersions.OrderDescending().Where((v, i) => parent = parent.ParentResource; } } - /**/ }); } diff --git a/sdk/provisioning/Generator/src/Specifications/ArmSpecification.cs b/sdk/provisioning/Generator/src/Specifications/ArmSpecification.cs index a95a08578069..c96fce98eb7c 100644 --- a/sdk/provisioning/Generator/src/Specifications/ArmSpecification.cs +++ b/sdk/provisioning/Generator/src/Specifications/ArmSpecification.cs @@ -74,12 +74,4 @@ protected override void Customize() Roles.Add(new Role("ManagedIdentityContributor", "e40ec5ca-96e0-45a2-b4ff-59039f2c2b59", "Create, Read, Update, and Delete User Assigned Identity")); Roles.Add(new Role("ManagedIdentityOperator", "f1a07417-d97a-45cb-824c-7a7467783830", "Read and Assign User Assigned Identity")); } - - private protected override Dictionary FindConstructibleResources() - { - // Add missing resources - var dict = base.FindConstructibleResources(); - dict.Add(typeof(AzureCliScript), typeof(ArmDeploymentScriptCollection).GetMethod("CreateOrUpdate")!); - return dict; - } } diff --git a/sdk/provisioning/Generator/src/Specifications/ResourcesSpecification.cs b/sdk/provisioning/Generator/src/Specifications/ResourcesSpecification.cs index 6cec0226722f..21f05ec83e31 100644 --- a/sdk/provisioning/Generator/src/Specifications/ResourcesSpecification.cs +++ b/sdk/provisioning/Generator/src/Specifications/ResourcesSpecification.cs @@ -2,8 +2,12 @@ // Licensed under the MIT License. using Azure.Provisioning.Generator.Model; +using Azure.ResourceManager; using Azure.ResourceManager.Resources; using Azure.ResourceManager.Resources.Models; +using System; +using System.Collections.Generic; +using System.Reflection; namespace Azure.Provisioning.Generator.Specifications; @@ -39,8 +43,31 @@ protected override void Customize() // CustomizePropertyIsoDuration("Timeout"); // CustomizePropertyIsoDuration("Duration"); + CustomizeResource(r => + { + r.BaseType = GetModel() as TypeModel; + r.DiscriminatorName = "Kind"; + r.DiscriminatorValue = "AzureCLI"; + }); + RemoveProperty("Id"); + RemoveProperty("Name"); + RemoveProperty("Location"); + RemoveProperty("Identity"); + RemoveProperty("SystemData"); + RemoveProperty("Tags"); + // Naming requirements AddNameRequirements(min: 1, max: 64, lower: true, upper: true, digits: true, hyphen: true, underscore: true, period: true, parens: true); AddNameRequirements(min: 1, max: 90, lower: true, upper: true, digits: true, hyphen: true, underscore: true, period: true, parens: true); } + + private protected override Dictionary FindConstructibleResources() + { + var result = base.FindConstructibleResources(); + + result.Add(typeof(AzureCliScript), typeof(ResourcesSpecification).GetMethod("CreateOrUpdateAzureCliScript", BindingFlags.NonPublic | BindingFlags.Static)!); + return result; + } + + private static ArmOperation CreateOrUpdateAzureCliScript(AzureCliScript content) { return null!; } } From cfd561fe3df40c42d3651eb9b3b0b7a48cd6ec75 Mon Sep 17 00:00:00 2001 From: Arcturus Zhang Date: Tue, 1 Jul 2025 15:56:39 +0800 Subject: [PATCH 05/10] add another --- .../src/Generated/AzurePowerShellScript.cs | 252 ++++++++++++++++++ .../Specifications/ResourcesSpecification.cs | 14 + 2 files changed, 266 insertions(+) create mode 100644 sdk/provisioning/Azure.Provisioning/src/Generated/AzurePowerShellScript.cs diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/AzurePowerShellScript.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/AzurePowerShellScript.cs new file mode 100644 index 000000000000..2c23797ebcd8 --- /dev/null +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/AzurePowerShellScript.cs @@ -0,0 +1,252 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable enable + +using Azure; +using Azure.Core; +using Azure.Provisioning; +using Azure.Provisioning.Primitives; +using System; + +namespace Azure.Provisioning.Resources; + +/// +/// AzurePowerShellScript. +/// +public partial class AzurePowerShellScript : ArmDeploymentScript +{ + /// + /// Azure PowerShell module version to be used. + /// + public BicepValue AzPowerShellVersion + { + get { Initialize(); return _azPowerShellVersion!; } + set { Initialize(); _azPowerShellVersion!.Assign(value); } + } + private BicepValue? _azPowerShellVersion; + + /// + /// Interval for which the service retains the script resource after it + /// reaches a terminal state. Resource will be deleted when this duration + /// expires. Duration is based on ISO 8601 pattern (for example P1D means + /// one day). + /// + public BicepValue RetentionInterval + { + get { Initialize(); return _retentionInterval!; } + set { Initialize(); _retentionInterval!.Assign(value); } + } + private BicepValue? _retentionInterval; + + /// + /// Command line arguments to pass to the script. Arguments are separated + /// by spaces. ex: -Name blue* -Location 'West US 2'. + /// + public BicepValue Arguments + { + get { Initialize(); return _arguments!; } + set { Initialize(); _arguments!.Assign(value); } + } + private BicepValue? _arguments; + + /// + /// The clean up preference when the script execution gets in a terminal + /// state. Default setting is 'Always'. + /// + public BicepValue CleanupPreference + { + get { Initialize(); return _cleanupPreference!; } + set { Initialize(); _cleanupPreference!.Assign(value); } + } + private BicepValue? _cleanupPreference; + + /// + /// Container group name, if not specified then the name will get + /// auto-generated. Not specifying a 'containerGroupName' + /// indicates the system to generate a unique name which might end up + /// flagging an Azure Policy as non-compliant. Use + /// 'containerGroupName' when you have an Azure Policy that + /// expects a specific naming convention or when you want to fully control + /// the name. 'containerGroupName' property must be between 1 + /// and 63 characters long, must contain only lowercase letters, numbers, + /// and dashes and it cannot start or end with a dash and consecutive + /// dashes are not allowed. To specify a 'containerGroupName', + /// add the following object to properties: { + /// "containerSettings": { "containerGroupName": + /// "contoso-container" } }. If you do not want to specify a + /// 'containerGroupName' then do not add + /// 'containerSettings' property. + /// + public BicepValue ContainerGroupName + { + get { Initialize(); return _containerGroupName!; } + set { Initialize(); _containerGroupName!.Assign(value); } + } + private BicepValue? _containerGroupName; + + /// + /// Container settings. + /// + public ScriptContainerConfiguration ContainerSettings + { + get { Initialize(); return _containerSettings!; } + set { Initialize(); AssignOrReplace(ref _containerSettings, value); } + } + private ScriptContainerConfiguration? _containerSettings; + + /// + /// The environment variables to pass over to the script. + /// + public BicepList EnvironmentVariables + { + get { Initialize(); return _environmentVariables!; } + set { Initialize(); _environmentVariables!.Assign(value); } + } + private BicepList? _environmentVariables; + + /// + /// Gets or sets how the deployment script should be forced to execute even + /// if the script resource has not changed. Can be current time stamp or a + /// GUID. + /// + public BicepValue ForceUpdateTag + { + get { Initialize(); return _forceUpdateTag!; } + set { Initialize(); _forceUpdateTag!.Assign(value); } + } + private BicepValue? _forceUpdateTag; + + /// + /// Uri for the script. This is the entry point for the external script. + /// + public BicepValue PrimaryScriptUri + { + get { Initialize(); return _primaryScriptUri!; } + set { Initialize(); _primaryScriptUri!.Assign(value); } + } + private BicepValue? _primaryScriptUri; + + /// + /// Script body. + /// + public BicepValue ScriptContent + { + get { Initialize(); return _scriptContent!; } + set { Initialize(); _scriptContent!.Assign(value); } + } + private BicepValue? _scriptContent; + + /// + /// Storage Account settings. + /// + public ScriptStorageConfiguration StorageAccountSettings + { + get { Initialize(); return _storageAccountSettings!; } + set { Initialize(); AssignOrReplace(ref _storageAccountSettings, value); } + } + private ScriptStorageConfiguration? _storageAccountSettings; + + /// + /// Supporting files for the external script. + /// + public BicepList SupportingScriptUris + { + get { Initialize(); return _supportingScriptUris!; } + set { Initialize(); _supportingScriptUris!.Assign(value); } + } + private BicepList? _supportingScriptUris; + + /// + /// Maximum allowed script execution time specified in ISO 8601 format. + /// Default value is P1D. + /// + public BicepValue Timeout + { + get { Initialize(); return _timeout!; } + set { Initialize(); _timeout!.Assign(value); } + } + private BicepValue? _timeout; + + /// + /// List of script outputs. To assign an object to + /// this property use + /// System.BinaryData.FromObjectAsJson``1(``0,System.Text.Json.JsonSerializerOptions). + /// To assign an already formatted json string to + /// this property use System.BinaryData.FromString(System.String). + /// Examples: + /// BinaryData.FromObjectAsJson("foo")Creates a + /// payload of + /// "foo".BinaryData.FromString("\"foo\"")Creates + /// a payload of "foo".BinaryData.FromObjectAsJson(new { key = + /// "value" })Creates a payload of { "key": + /// "value" }.BinaryData.FromString("{\"key\": + /// \"value\"}")Creates a payload of { "key": + /// "value" }. + /// + public BicepValue Outputs + { + get { Initialize(); return _outputs!; } + } + private BicepValue? _outputs; + + /// + /// State of the script execution. This only appears in the response. + /// + public BicepValue ProvisioningState + { + get { Initialize(); return _provisioningState!; } + } + private BicepValue? _provisioningState; + + /// + /// Contains the results of script execution. + /// + public ScriptStatus Status + { + get { Initialize(); return _status!; } + } + private ScriptStatus? _status; + + /// + /// Creates a new AzurePowerShellScript. + /// + /// + /// The the Bicep identifier name of the AzurePowerShellScript resource. + /// This can be used to refer to the resource in expressions, but is not + /// the Azure name of the resource. This value can contain letters, + /// numbers, and underscores. + /// + /// Version of the AzurePowerShellScript. + public AzurePowerShellScript(string bicepIdentifier, string? resourceVersion = default) + : base(bicepIdentifier, resourceVersion) + { + } + + /// + /// Define all the provisionable properties of AzurePowerShellScript. + /// + protected override void DefineProvisionableProperties() + { + base.DefineProvisionableProperties(); + DefineProperty("Kind", ["Kind"], defaultValue: "AzurePowerShell"); + _azPowerShellVersion = DefineProperty("AzPowerShellVersion", ["properties", "azPowerShellVersion"], isRequired: true); + _retentionInterval = DefineProperty("RetentionInterval", ["properties", "retentionInterval"], isRequired: true); + _arguments = DefineProperty("Arguments", ["properties", "arguments"]); + _cleanupPreference = DefineProperty("CleanupPreference", ["properties", "cleanupPreference"]); + _containerGroupName = DefineProperty("ContainerGroupName", ["properties", "containerSettings", "containerGroupName"]); + _containerSettings = DefineModelProperty("ContainerSettings", ["properties", "containerSettings"]); + _environmentVariables = DefineListProperty("EnvironmentVariables", ["properties", "environmentVariables"]); + _forceUpdateTag = DefineProperty("ForceUpdateTag", ["properties", "forceUpdateTag"]); + _primaryScriptUri = DefineProperty("PrimaryScriptUri", ["properties", "primaryScriptUri"]); + _scriptContent = DefineProperty("ScriptContent", ["properties", "scriptContent"]); + _storageAccountSettings = DefineModelProperty("StorageAccountSettings", ["properties", "storageAccountSettings"]); + _supportingScriptUris = DefineListProperty("SupportingScriptUris", ["properties", "supportingScriptUris"]); + _timeout = DefineProperty("Timeout", ["properties", "timeout"]); + _outputs = DefineProperty("Outputs", ["properties", "outputs"], isOutput: true); + _provisioningState = DefineProperty("ProvisioningState", ["properties", "provisioningState"], isOutput: true); + _status = DefineModelProperty("Status", ["properties", "status"], isOutput: true); + } +} diff --git a/sdk/provisioning/Generator/src/Specifications/ResourcesSpecification.cs b/sdk/provisioning/Generator/src/Specifications/ResourcesSpecification.cs index 21f05ec83e31..364b40ed4308 100644 --- a/sdk/provisioning/Generator/src/Specifications/ResourcesSpecification.cs +++ b/sdk/provisioning/Generator/src/Specifications/ResourcesSpecification.cs @@ -55,6 +55,18 @@ protected override void Customize() RemoveProperty("Identity"); RemoveProperty("SystemData"); RemoveProperty("Tags"); + CustomizeResource(r => + { + r.BaseType = GetModel() as TypeModel; + r.DiscriminatorName = "Kind"; + r.DiscriminatorValue = "AzurePowerShell"; + }); + RemoveProperty("Id"); + RemoveProperty("Name"); + RemoveProperty("Location"); + RemoveProperty("Identity"); + RemoveProperty("SystemData"); + RemoveProperty("Tags"); // Naming requirements AddNameRequirements(min: 1, max: 64, lower: true, upper: true, digits: true, hyphen: true, underscore: true, period: true, parens: true); @@ -66,8 +78,10 @@ private protected override Dictionary FindConstructibleResourc var result = base.FindConstructibleResources(); result.Add(typeof(AzureCliScript), typeof(ResourcesSpecification).GetMethod("CreateOrUpdateAzureCliScript", BindingFlags.NonPublic | BindingFlags.Static)!); + result.Add(typeof(AzurePowerShellScript), typeof(ResourcesSpecification).GetMethod("CreateOrUpdateAzurePowerShellScript", BindingFlags.NonPublic | BindingFlags.Static)!); return result; } private static ArmOperation CreateOrUpdateAzureCliScript(AzureCliScript content) { return null!; } + private static ArmOperation CreateOrUpdateAzurePowerShellScript(AzurePowerShellScript content) { return null!; } } From e7934259d204bf1a13e1980237d7067295c11d01 Mon Sep 17 00:00:00 2001 From: Arcturus Zhang Date: Tue, 1 Jul 2025 16:14:25 +0800 Subject: [PATCH 06/10] fix backward compatible issue --- .../api/Azure.Provisioning.net8.0.cs | 155 ++++++++++++++++++ .../api/Azure.Provisioning.netstandard2.0.cs | 155 ++++++++++++++++++ .../ArmDeploymentPropertiesExtended.cs | 29 ++++ .../Models/ArmDeploymentPropertiesExtended.cs | 2 + .../Specifications/ResourcesSpecification.cs | 16 +- 5 files changed, 355 insertions(+), 2 deletions(-) create mode 100644 sdk/provisioning/Azure.Provisioning/src/BackwardCompatible/ArmDeploymentPropertiesExtended.cs diff --git a/sdk/provisioning/Azure.Provisioning/api/Azure.Provisioning.net8.0.cs b/sdk/provisioning/Azure.Provisioning/api/Azure.Provisioning.net8.0.cs index b06da1e9c7a9..fbbfa41264e7 100644 --- a/sdk/provisioning/Azure.Provisioning/api/Azure.Provisioning.net8.0.cs +++ b/sdk/provisioning/Azure.Provisioning/api/Azure.Provisioning.net8.0.cs @@ -1311,11 +1311,43 @@ public static partial class ResourceVersions public partial class ArmDeploymentContent : Azure.Provisioning.Primitives.ProvisionableConstruct { public ArmDeploymentContent() { } + public Azure.Provisioning.Resources.ManagedServiceIdentity Identity { get { throw null; } set { } } public Azure.Provisioning.BicepValue Location { get { throw null; } set { } } public Azure.Provisioning.Resources.ArmDeploymentProperties Properties { get { throw null; } } public Azure.Provisioning.BicepDictionary Tags { get { throw null; } set { } } protected override void DefineProvisionableProperties() { } } + public partial class ArmDeploymentExtensionConfigItem : Azure.Provisioning.Primitives.ProvisionableConstruct + { + public ArmDeploymentExtensionConfigItem() { } + public Azure.Provisioning.BicepValue ExtensionConfigPropertyType { get { throw null; } } + public Azure.Provisioning.Resources.KeyVaultParameterReference KeyVaultReference { get { throw null; } set { } } + public Azure.Provisioning.BicepValue Value { get { throw null; } set { } } + protected override void DefineProvisionableProperties() { } + } + public partial class ArmDeploymentExtensionDefinition : Azure.Provisioning.Primitives.ProvisionableConstruct + { + public ArmDeploymentExtensionDefinition() { } + public Azure.Provisioning.BicepValue Alias { get { throw null; } } + public Azure.Provisioning.BicepDictionary Config { get { throw null; } } + public Azure.Provisioning.BicepValue ConfigId { get { throw null; } } + public Azure.Provisioning.BicepValue Name { get { throw null; } } + public Azure.Provisioning.BicepValue Version { get { throw null; } } + protected override void DefineProvisionableProperties() { } + } + public partial class ArmDeploymentExternalInput : Azure.Provisioning.Primitives.ProvisionableConstruct + { + public ArmDeploymentExternalInput() { } + public Azure.Provisioning.BicepValue Value { get { throw null; } } + protected override void DefineProvisionableProperties() { } + } + public partial class ArmDeploymentExternalInputDefinition : Azure.Provisioning.Primitives.ProvisionableConstruct + { + public ArmDeploymentExternalInputDefinition() { } + public Azure.Provisioning.BicepValue Config { get { throw null; } set { } } + public Azure.Provisioning.BicepValue Kind { get { throw null; } } + protected override void DefineProvisionableProperties() { } + } public enum ArmDeploymentMode { Incremental = 0, @@ -1334,6 +1366,9 @@ public ArmDeploymentProperties() { } public Azure.Provisioning.BicepValue DebugSettingDetailLevel { get { throw null; } set { } } public Azure.Provisioning.Resources.ErrorDeployment ErrorDeployment { get { throw null; } set { } } public Azure.Provisioning.BicepValue ExpressionEvaluationScope { get { throw null; } set { } } + public Azure.Provisioning.BicepDictionary> ExtensionConfigs { get { throw null; } set { } } + public Azure.Provisioning.BicepDictionary ExternalInputDefinitions { get { throw null; } set { } } + public Azure.Provisioning.BicepDictionary ExternalInputs { get { throw null; } set { } } public Azure.Provisioning.BicepValue Mode { get { throw null; } } public Azure.Provisioning.BicepValue Parameters { get { throw null; } set { } } public Azure.Provisioning.Resources.ArmDeploymentParametersLink ParametersLink { get { throw null; } set { } } @@ -1351,7 +1386,9 @@ public ArmDeploymentPropertiesExtended() { } public Azure.Provisioning.BicepValue Duration { get { throw null; } } public Azure.Provisioning.BicepValue Error { get { throw null; } } public Azure.Provisioning.Resources.ErrorDeploymentExtended ErrorDeployment { get { throw null; } } + public Azure.Provisioning.BicepList Extensions { get { throw null; } } public Azure.Provisioning.BicepValue Mode { get { throw null; } } + public Azure.Provisioning.BicepList OutputResourceDetails { get { throw null; } } public Azure.Provisioning.BicepList OutputResources { get { throw null; } } public Azure.Provisioning.BicepValue Outputs { get { throw null; } } public Azure.Provisioning.BicepValue Parameters { get { throw null; } } @@ -1361,6 +1398,7 @@ public ArmDeploymentPropertiesExtended() { } public Azure.Provisioning.BicepValue TemplateHash { get { throw null; } } public Azure.Provisioning.Resources.ArmDeploymentTemplateLink TemplateLink { get { throw null; } } public Azure.Provisioning.BicepValue Timestamp { get { throw null; } } + public Azure.Provisioning.BicepList ValidatedResourceDetails { get { throw null; } } public Azure.Provisioning.BicepList ValidatedResources { get { throw null; } } public Azure.Provisioning.BicepValue ValidationLevel { get { throw null; } } protected override void DefineProvisionableProperties() { } @@ -1445,6 +1483,58 @@ public ArmPolicyParameterValue() { } public Azure.Provisioning.BicepValue Value { get { throw null; } set { } } protected override void DefineProvisionableProperties() { } } + public partial class ArmResourceReference : Azure.Provisioning.Primitives.ProvisionableConstruct + { + public ArmResourceReference() { } + public Azure.Provisioning.BicepValue ApiVersion { get { throw null; } } + public Azure.Provisioning.Resources.ArmDeploymentExtensionDefinition Extension { get { throw null; } } + public Azure.Provisioning.BicepValue Id { get { throw null; } } + public Azure.Provisioning.BicepValue Identifiers { get { throw null; } } + public Azure.Provisioning.BicepValue ResourceType { get { throw null; } } + protected override void DefineProvisionableProperties() { } + } + public partial class AzureCliScript : Azure.Provisioning.Resources.ArmDeploymentScript + { + public AzureCliScript(string bicepIdentifier, string? resourceVersion = null) : base (default(string), default(string)) { } + public Azure.Provisioning.BicepValue Arguments { get { throw null; } set { } } + public Azure.Provisioning.BicepValue AzCliVersion { get { throw null; } set { } } + public Azure.Provisioning.BicepValue CleanupPreference { get { throw null; } set { } } + public Azure.Provisioning.BicepValue ContainerGroupName { get { throw null; } set { } } + public Azure.Provisioning.Resources.ScriptContainerConfiguration ContainerSettings { get { throw null; } set { } } + public Azure.Provisioning.BicepList EnvironmentVariables { get { throw null; } set { } } + public Azure.Provisioning.BicepValue ForceUpdateTag { get { throw null; } set { } } + public Azure.Provisioning.BicepValue Outputs { get { throw null; } } + public Azure.Provisioning.BicepValue PrimaryScriptUri { get { throw null; } set { } } + public Azure.Provisioning.BicepValue ProvisioningState { get { throw null; } } + public Azure.Provisioning.BicepValue RetentionInterval { get { throw null; } set { } } + public Azure.Provisioning.BicepValue ScriptContent { get { throw null; } set { } } + public Azure.Provisioning.Resources.ScriptStatus Status { get { throw null; } } + public Azure.Provisioning.Resources.ScriptStorageConfiguration StorageAccountSettings { get { throw null; } set { } } + public Azure.Provisioning.BicepList SupportingScriptUris { get { throw null; } set { } } + public Azure.Provisioning.BicepValue Timeout { get { throw null; } set { } } + protected override void DefineProvisionableProperties() { } + } + public partial class AzurePowerShellScript : Azure.Provisioning.Resources.ArmDeploymentScript + { + public AzurePowerShellScript(string bicepIdentifier, string? resourceVersion = null) : base (default(string), default(string)) { } + public Azure.Provisioning.BicepValue Arguments { get { throw null; } set { } } + public Azure.Provisioning.BicepValue AzPowerShellVersion { get { throw null; } set { } } + public Azure.Provisioning.BicepValue CleanupPreference { get { throw null; } set { } } + public Azure.Provisioning.BicepValue ContainerGroupName { get { throw null; } set { } } + public Azure.Provisioning.Resources.ScriptContainerConfiguration ContainerSettings { get { throw null; } set { } } + public Azure.Provisioning.BicepList EnvironmentVariables { get { throw null; } set { } } + public Azure.Provisioning.BicepValue ForceUpdateTag { get { throw null; } set { } } + public Azure.Provisioning.BicepValue Outputs { get { throw null; } } + public Azure.Provisioning.BicepValue PrimaryScriptUri { get { throw null; } set { } } + public Azure.Provisioning.BicepValue ProvisioningState { get { throw null; } } + public Azure.Provisioning.BicepValue RetentionInterval { get { throw null; } set { } } + public Azure.Provisioning.BicepValue ScriptContent { get { throw null; } set { } } + public Azure.Provisioning.Resources.ScriptStatus Status { get { throw null; } } + public Azure.Provisioning.Resources.ScriptStorageConfiguration StorageAccountSettings { get { throw null; } set { } } + public Azure.Provisioning.BicepList SupportingScriptUris { get { throw null; } set { } } + public Azure.Provisioning.BicepValue Timeout { get { throw null; } set { } } + protected override void DefineProvisionableProperties() { } + } public partial class BasicArmDependency : Azure.Provisioning.Primitives.ProvisionableConstruct { public BasicArmDependency() { } @@ -1683,6 +1773,16 @@ public enum ExtendedLocationType { EdgeZone = 0, } + public enum ExtensionConfigPropertyType + { + String = 0, + Int = 1, + Bool = 2, + Array = 3, + Object = 4, + SecureString = 5, + SecureObject = 6, + } public partial class GenericResource : Azure.Provisioning.Primitives.ProvisionableResource { public GenericResource(string bicepIdentifier, string? resourceVersion = null) : base (default(string), default(Azure.Core.ResourceType), default(string)) { } @@ -2376,6 +2476,61 @@ public enum ResourceTypeAliasType PlainText = 1, Mask = 2, } + public enum ScriptCleanupOptions + { + Always = 0, + OnSuccess = 1, + OnExpiration = 2, + } + public partial class ScriptContainerConfiguration : Azure.Provisioning.Primitives.ProvisionableConstruct + { + public ScriptContainerConfiguration() { } + public Azure.Provisioning.BicepValue ContainerGroupName { get { throw null; } set { } } + public Azure.Provisioning.BicepList SubnetIds { get { throw null; } set { } } + protected override void DefineProvisionableProperties() { } + } + public partial class ScriptContainerGroupSubnet : Azure.Provisioning.Primitives.ProvisionableConstruct + { + public ScriptContainerGroupSubnet() { } + public Azure.Provisioning.BicepValue Id { get { throw null; } set { } } + public Azure.Provisioning.BicepValue Name { get { throw null; } set { } } + protected override void DefineProvisionableProperties() { } + } + public partial class ScriptEnvironmentVariable : Azure.Provisioning.Primitives.ProvisionableConstruct + { + public ScriptEnvironmentVariable() { } + public Azure.Provisioning.BicepValue Name { get { throw null; } set { } } + public Azure.Provisioning.BicepValue SecureValue { get { throw null; } set { } } + public Azure.Provisioning.BicepValue Value { get { throw null; } set { } } + protected override void DefineProvisionableProperties() { } + } + public enum ScriptProvisioningState + { + Creating = 0, + ProvisioningResources = 1, + Running = 2, + Succeeded = 3, + Failed = 4, + Canceled = 5, + } + public partial class ScriptStatus : Azure.Provisioning.Primitives.ProvisionableConstruct + { + public ScriptStatus() { } + public Azure.Provisioning.BicepValue ContainerInstanceId { get { throw null; } } + public Azure.Provisioning.BicepValue EndOn { get { throw null; } } + public Azure.Provisioning.BicepValue Error { get { throw null; } } + public Azure.Provisioning.BicepValue ExpireOn { get { throw null; } } + public Azure.Provisioning.BicepValue StartOn { get { throw null; } } + public Azure.Provisioning.BicepValue StorageAccountId { get { throw null; } } + protected override void DefineProvisionableProperties() { } + } + public partial class ScriptStorageConfiguration : Azure.Provisioning.Primitives.ProvisionableConstruct + { + public ScriptStorageConfiguration() { } + public Azure.Provisioning.BicepValue StorageAccountKey { get { throw null; } set { } } + public Azure.Provisioning.BicepValue StorageAccountName { get { throw null; } set { } } + protected override void DefineProvisionableProperties() { } + } public enum SpendingLimit { On = 0, diff --git a/sdk/provisioning/Azure.Provisioning/api/Azure.Provisioning.netstandard2.0.cs b/sdk/provisioning/Azure.Provisioning/api/Azure.Provisioning.netstandard2.0.cs index a0ca514d127f..17b06c3eaa81 100644 --- a/sdk/provisioning/Azure.Provisioning/api/Azure.Provisioning.netstandard2.0.cs +++ b/sdk/provisioning/Azure.Provisioning/api/Azure.Provisioning.netstandard2.0.cs @@ -1309,11 +1309,43 @@ public static partial class ResourceVersions public partial class ArmDeploymentContent : Azure.Provisioning.Primitives.ProvisionableConstruct { public ArmDeploymentContent() { } + public Azure.Provisioning.Resources.ManagedServiceIdentity Identity { get { throw null; } set { } } public Azure.Provisioning.BicepValue Location { get { throw null; } set { } } public Azure.Provisioning.Resources.ArmDeploymentProperties Properties { get { throw null; } } public Azure.Provisioning.BicepDictionary Tags { get { throw null; } set { } } protected override void DefineProvisionableProperties() { } } + public partial class ArmDeploymentExtensionConfigItem : Azure.Provisioning.Primitives.ProvisionableConstruct + { + public ArmDeploymentExtensionConfigItem() { } + public Azure.Provisioning.BicepValue ExtensionConfigPropertyType { get { throw null; } } + public Azure.Provisioning.Resources.KeyVaultParameterReference KeyVaultReference { get { throw null; } set { } } + public Azure.Provisioning.BicepValue Value { get { throw null; } set { } } + protected override void DefineProvisionableProperties() { } + } + public partial class ArmDeploymentExtensionDefinition : Azure.Provisioning.Primitives.ProvisionableConstruct + { + public ArmDeploymentExtensionDefinition() { } + public Azure.Provisioning.BicepValue Alias { get { throw null; } } + public Azure.Provisioning.BicepDictionary Config { get { throw null; } } + public Azure.Provisioning.BicepValue ConfigId { get { throw null; } } + public Azure.Provisioning.BicepValue Name { get { throw null; } } + public Azure.Provisioning.BicepValue Version { get { throw null; } } + protected override void DefineProvisionableProperties() { } + } + public partial class ArmDeploymentExternalInput : Azure.Provisioning.Primitives.ProvisionableConstruct + { + public ArmDeploymentExternalInput() { } + public Azure.Provisioning.BicepValue Value { get { throw null; } } + protected override void DefineProvisionableProperties() { } + } + public partial class ArmDeploymentExternalInputDefinition : Azure.Provisioning.Primitives.ProvisionableConstruct + { + public ArmDeploymentExternalInputDefinition() { } + public Azure.Provisioning.BicepValue Config { get { throw null; } set { } } + public Azure.Provisioning.BicepValue Kind { get { throw null; } } + protected override void DefineProvisionableProperties() { } + } public enum ArmDeploymentMode { Incremental = 0, @@ -1332,6 +1364,9 @@ public ArmDeploymentProperties() { } public Azure.Provisioning.BicepValue DebugSettingDetailLevel { get { throw null; } set { } } public Azure.Provisioning.Resources.ErrorDeployment ErrorDeployment { get { throw null; } set { } } public Azure.Provisioning.BicepValue ExpressionEvaluationScope { get { throw null; } set { } } + public Azure.Provisioning.BicepDictionary> ExtensionConfigs { get { throw null; } set { } } + public Azure.Provisioning.BicepDictionary ExternalInputDefinitions { get { throw null; } set { } } + public Azure.Provisioning.BicepDictionary ExternalInputs { get { throw null; } set { } } public Azure.Provisioning.BicepValue Mode { get { throw null; } } public Azure.Provisioning.BicepValue Parameters { get { throw null; } set { } } public Azure.Provisioning.Resources.ArmDeploymentParametersLink ParametersLink { get { throw null; } set { } } @@ -1349,7 +1384,9 @@ public ArmDeploymentPropertiesExtended() { } public Azure.Provisioning.BicepValue Duration { get { throw null; } } public Azure.Provisioning.BicepValue Error { get { throw null; } } public Azure.Provisioning.Resources.ErrorDeploymentExtended ErrorDeployment { get { throw null; } } + public Azure.Provisioning.BicepList Extensions { get { throw null; } } public Azure.Provisioning.BicepValue Mode { get { throw null; } } + public Azure.Provisioning.BicepList OutputResourceDetails { get { throw null; } } public Azure.Provisioning.BicepList OutputResources { get { throw null; } } public Azure.Provisioning.BicepValue Outputs { get { throw null; } } public Azure.Provisioning.BicepValue Parameters { get { throw null; } } @@ -1359,6 +1396,7 @@ public ArmDeploymentPropertiesExtended() { } public Azure.Provisioning.BicepValue TemplateHash { get { throw null; } } public Azure.Provisioning.Resources.ArmDeploymentTemplateLink TemplateLink { get { throw null; } } public Azure.Provisioning.BicepValue Timestamp { get { throw null; } } + public Azure.Provisioning.BicepList ValidatedResourceDetails { get { throw null; } } public Azure.Provisioning.BicepList ValidatedResources { get { throw null; } } public Azure.Provisioning.BicepValue ValidationLevel { get { throw null; } } protected override void DefineProvisionableProperties() { } @@ -1443,6 +1481,58 @@ public ArmPolicyParameterValue() { } public Azure.Provisioning.BicepValue Value { get { throw null; } set { } } protected override void DefineProvisionableProperties() { } } + public partial class ArmResourceReference : Azure.Provisioning.Primitives.ProvisionableConstruct + { + public ArmResourceReference() { } + public Azure.Provisioning.BicepValue ApiVersion { get { throw null; } } + public Azure.Provisioning.Resources.ArmDeploymentExtensionDefinition Extension { get { throw null; } } + public Azure.Provisioning.BicepValue Id { get { throw null; } } + public Azure.Provisioning.BicepValue Identifiers { get { throw null; } } + public Azure.Provisioning.BicepValue ResourceType { get { throw null; } } + protected override void DefineProvisionableProperties() { } + } + public partial class AzureCliScript : Azure.Provisioning.Resources.ArmDeploymentScript + { + public AzureCliScript(string bicepIdentifier, string? resourceVersion = null) : base (default(string), default(string)) { } + public Azure.Provisioning.BicepValue Arguments { get { throw null; } set { } } + public Azure.Provisioning.BicepValue AzCliVersion { get { throw null; } set { } } + public Azure.Provisioning.BicepValue CleanupPreference { get { throw null; } set { } } + public Azure.Provisioning.BicepValue ContainerGroupName { get { throw null; } set { } } + public Azure.Provisioning.Resources.ScriptContainerConfiguration ContainerSettings { get { throw null; } set { } } + public Azure.Provisioning.BicepList EnvironmentVariables { get { throw null; } set { } } + public Azure.Provisioning.BicepValue ForceUpdateTag { get { throw null; } set { } } + public Azure.Provisioning.BicepValue Outputs { get { throw null; } } + public Azure.Provisioning.BicepValue PrimaryScriptUri { get { throw null; } set { } } + public Azure.Provisioning.BicepValue ProvisioningState { get { throw null; } } + public Azure.Provisioning.BicepValue RetentionInterval { get { throw null; } set { } } + public Azure.Provisioning.BicepValue ScriptContent { get { throw null; } set { } } + public Azure.Provisioning.Resources.ScriptStatus Status { get { throw null; } } + public Azure.Provisioning.Resources.ScriptStorageConfiguration StorageAccountSettings { get { throw null; } set { } } + public Azure.Provisioning.BicepList SupportingScriptUris { get { throw null; } set { } } + public Azure.Provisioning.BicepValue Timeout { get { throw null; } set { } } + protected override void DefineProvisionableProperties() { } + } + public partial class AzurePowerShellScript : Azure.Provisioning.Resources.ArmDeploymentScript + { + public AzurePowerShellScript(string bicepIdentifier, string? resourceVersion = null) : base (default(string), default(string)) { } + public Azure.Provisioning.BicepValue Arguments { get { throw null; } set { } } + public Azure.Provisioning.BicepValue AzPowerShellVersion { get { throw null; } set { } } + public Azure.Provisioning.BicepValue CleanupPreference { get { throw null; } set { } } + public Azure.Provisioning.BicepValue ContainerGroupName { get { throw null; } set { } } + public Azure.Provisioning.Resources.ScriptContainerConfiguration ContainerSettings { get { throw null; } set { } } + public Azure.Provisioning.BicepList EnvironmentVariables { get { throw null; } set { } } + public Azure.Provisioning.BicepValue ForceUpdateTag { get { throw null; } set { } } + public Azure.Provisioning.BicepValue Outputs { get { throw null; } } + public Azure.Provisioning.BicepValue PrimaryScriptUri { get { throw null; } set { } } + public Azure.Provisioning.BicepValue ProvisioningState { get { throw null; } } + public Azure.Provisioning.BicepValue RetentionInterval { get { throw null; } set { } } + public Azure.Provisioning.BicepValue ScriptContent { get { throw null; } set { } } + public Azure.Provisioning.Resources.ScriptStatus Status { get { throw null; } } + public Azure.Provisioning.Resources.ScriptStorageConfiguration StorageAccountSettings { get { throw null; } set { } } + public Azure.Provisioning.BicepList SupportingScriptUris { get { throw null; } set { } } + public Azure.Provisioning.BicepValue Timeout { get { throw null; } set { } } + protected override void DefineProvisionableProperties() { } + } public partial class BasicArmDependency : Azure.Provisioning.Primitives.ProvisionableConstruct { public BasicArmDependency() { } @@ -1681,6 +1771,16 @@ public enum ExtendedLocationType { EdgeZone = 0, } + public enum ExtensionConfigPropertyType + { + String = 0, + Int = 1, + Bool = 2, + Array = 3, + Object = 4, + SecureString = 5, + SecureObject = 6, + } public partial class GenericResource : Azure.Provisioning.Primitives.ProvisionableResource { public GenericResource(string bicepIdentifier, string? resourceVersion = null) : base (default(string), default(Azure.Core.ResourceType), default(string)) { } @@ -2374,6 +2474,61 @@ public enum ResourceTypeAliasType PlainText = 1, Mask = 2, } + public enum ScriptCleanupOptions + { + Always = 0, + OnSuccess = 1, + OnExpiration = 2, + } + public partial class ScriptContainerConfiguration : Azure.Provisioning.Primitives.ProvisionableConstruct + { + public ScriptContainerConfiguration() { } + public Azure.Provisioning.BicepValue ContainerGroupName { get { throw null; } set { } } + public Azure.Provisioning.BicepList SubnetIds { get { throw null; } set { } } + protected override void DefineProvisionableProperties() { } + } + public partial class ScriptContainerGroupSubnet : Azure.Provisioning.Primitives.ProvisionableConstruct + { + public ScriptContainerGroupSubnet() { } + public Azure.Provisioning.BicepValue Id { get { throw null; } set { } } + public Azure.Provisioning.BicepValue Name { get { throw null; } set { } } + protected override void DefineProvisionableProperties() { } + } + public partial class ScriptEnvironmentVariable : Azure.Provisioning.Primitives.ProvisionableConstruct + { + public ScriptEnvironmentVariable() { } + public Azure.Provisioning.BicepValue Name { get { throw null; } set { } } + public Azure.Provisioning.BicepValue SecureValue { get { throw null; } set { } } + public Azure.Provisioning.BicepValue Value { get { throw null; } set { } } + protected override void DefineProvisionableProperties() { } + } + public enum ScriptProvisioningState + { + Creating = 0, + ProvisioningResources = 1, + Running = 2, + Succeeded = 3, + Failed = 4, + Canceled = 5, + } + public partial class ScriptStatus : Azure.Provisioning.Primitives.ProvisionableConstruct + { + public ScriptStatus() { } + public Azure.Provisioning.BicepValue ContainerInstanceId { get { throw null; } } + public Azure.Provisioning.BicepValue EndOn { get { throw null; } } + public Azure.Provisioning.BicepValue Error { get { throw null; } } + public Azure.Provisioning.BicepValue ExpireOn { get { throw null; } } + public Azure.Provisioning.BicepValue StartOn { get { throw null; } } + public Azure.Provisioning.BicepValue StorageAccountId { get { throw null; } } + protected override void DefineProvisionableProperties() { } + } + public partial class ScriptStorageConfiguration : Azure.Provisioning.Primitives.ProvisionableConstruct + { + public ScriptStorageConfiguration() { } + public Azure.Provisioning.BicepValue StorageAccountKey { get { throw null; } set { } } + public Azure.Provisioning.BicepValue StorageAccountName { get { throw null; } set { } } + protected override void DefineProvisionableProperties() { } + } public enum SpendingLimit { On = 0, diff --git a/sdk/provisioning/Azure.Provisioning/src/BackwardCompatible/ArmDeploymentPropertiesExtended.cs b/sdk/provisioning/Azure.Provisioning/src/BackwardCompatible/ArmDeploymentPropertiesExtended.cs new file mode 100644 index 000000000000..8703c7abe2ec --- /dev/null +++ b/sdk/provisioning/Azure.Provisioning/src/BackwardCompatible/ArmDeploymentPropertiesExtended.cs @@ -0,0 +1,29 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +#nullable enable + +using Azure.Provisioning.Primitives; + +namespace Azure.Provisioning.Resources; + +public partial class ArmDeploymentPropertiesExtended : ProvisionableConstruct +{ + /// + /// Array of provisioned resources. + /// + public BicepList OutputResources + { + get { Initialize(); return _outputResources!; } + } + private BicepList? _outputResources; + + /// + /// Array of validated resources. + /// + public BicepList ValidatedResources + { + get { Initialize(); return _validatedResources!; } + } + private BicepList? _validatedResources; +} diff --git a/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ArmDeploymentPropertiesExtended.cs b/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ArmDeploymentPropertiesExtended.cs index c9f24a3ddc66..4f4a81851dbf 100644 --- a/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ArmDeploymentPropertiesExtended.cs +++ b/sdk/provisioning/Azure.Provisioning/src/Generated/Models/ArmDeploymentPropertiesExtended.cs @@ -229,6 +229,8 @@ public ArmDeploymentPropertiesExtended() protected override void DefineProvisionableProperties() { base.DefineProvisionableProperties(); + _outputResources = DefineListProperty("OutputResources", ["outputResources"], isOutput: true); + _validatedResources = DefineListProperty("ValidatedResources", ["validatedResources"], isOutput: true); _provisioningState = DefineProperty("ProvisioningState", ["provisioningState"], isOutput: true); _correlationId = DefineProperty("CorrelationId", ["correlationId"], isOutput: true); _timestamp = DefineProperty("Timestamp", ["timestamp"], isOutput: true); diff --git a/sdk/provisioning/Generator/src/Specifications/ResourcesSpecification.cs b/sdk/provisioning/Generator/src/Specifications/ResourcesSpecification.cs index 364b40ed4308..641ed3706fb8 100644 --- a/sdk/provisioning/Generator/src/Specifications/ResourcesSpecification.cs +++ b/sdk/provisioning/Generator/src/Specifications/ResourcesSpecification.cs @@ -5,6 +5,7 @@ using Azure.ResourceManager; using Azure.ResourceManager.Resources; using Azure.ResourceManager.Resources.Models; +using Generator.Model; using System; using System.Collections.Generic; using System.Reflection; @@ -68,6 +69,16 @@ protected override void Customize() RemoveProperty("SystemData"); RemoveProperty("Tags"); + // Backward compatibility + CustomizeProperty("OutputResources", p => + { + p.HideLevel = PropertyHideLevel.HideProperty; + }); + CustomizeProperty("ValidatedResources", p => + { + p.HideLevel = PropertyHideLevel.HideProperty; + }); + // Naming requirements AddNameRequirements(min: 1, max: 64, lower: true, upper: true, digits: true, hyphen: true, underscore: true, period: true, parens: true); AddNameRequirements(min: 1, max: 90, lower: true, upper: true, digits: true, hyphen: true, underscore: true, period: true, parens: true); @@ -77,11 +88,12 @@ private protected override Dictionary FindConstructibleResourc { var result = base.FindConstructibleResources(); - result.Add(typeof(AzureCliScript), typeof(ResourcesSpecification).GetMethod("CreateOrUpdateAzureCliScript", BindingFlags.NonPublic | BindingFlags.Static)!); - result.Add(typeof(AzurePowerShellScript), typeof(ResourcesSpecification).GetMethod("CreateOrUpdateAzurePowerShellScript", BindingFlags.NonPublic | BindingFlags.Static)!); + result.Add(typeof(AzureCliScript), typeof(ResourcesSpecification).GetMethod(nameof(CreateOrUpdateAzureCliScript), BindingFlags.NonPublic | BindingFlags.Static)!); + result.Add(typeof(AzurePowerShellScript), typeof(ResourcesSpecification).GetMethod(nameof(CreateOrUpdateAzurePowerShellScript), BindingFlags.NonPublic | BindingFlags.Static)!); return result; } + // These methods are here as a workaround to generate correct properties for the above two discriminated child resources. private static ArmOperation CreateOrUpdateAzureCliScript(AzureCliScript content) { return null!; } private static ArmOperation CreateOrUpdateAzurePowerShellScript(AzurePowerShellScript content) { return null!; } } From 5d27f65ccc63eb44700cfdc96201ce9524eaff40 Mon Sep 17 00:00:00 2001 From: Arcturus Zhang Date: Tue, 1 Jul 2025 16:17:58 +0800 Subject: [PATCH 07/10] add changelog --- sdk/provisioning/Azure.Provisioning/CHANGELOG.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/sdk/provisioning/Azure.Provisioning/CHANGELOG.md b/sdk/provisioning/Azure.Provisioning/CHANGELOG.md index 8b454e69c5f1..73ad0e971c57 100644 --- a/sdk/provisioning/Azure.Provisioning/CHANGELOG.md +++ b/sdk/provisioning/Azure.Provisioning/CHANGELOG.md @@ -1,14 +1,12 @@ # Release History -## 1.2.0-beta.1 (Unreleased) +## 1.2.0 (2025-07-02) ### Features Added -### Breaking Changes - -### Bugs Fixed - -### Other Changes +- Updated models to match the latest API version for ArmDeployment and ArmDeploymentScript. +- Added derived types (`AzureCliScript` and `AzurePowerShellScript`) for `ArmDeploymentScript` to support different kind of deployment scripts. + - Please note that usually `ArmDeploymentScript` should not be constructed directly, but rather through the `AzureCliScript` or `AzurePowerShellScript` constructors. ## 1.1.0 (2025-06-16) From 32b7a0ada289e17c0d56540f9a32a078f4c76e6c Mon Sep 17 00:00:00 2001 From: Arcturus Zhang Date: Tue, 1 Jul 2025 16:23:37 +0800 Subject: [PATCH 08/10] resolve comments --- .../Specifications/ResourcesSpecification.cs | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/sdk/provisioning/Generator/src/Specifications/ResourcesSpecification.cs b/sdk/provisioning/Generator/src/Specifications/ResourcesSpecification.cs index 641ed3706fb8..ba653e15ed66 100644 --- a/sdk/provisioning/Generator/src/Specifications/ResourcesSpecification.cs +++ b/sdk/provisioning/Generator/src/Specifications/ResourcesSpecification.cs @@ -50,24 +50,15 @@ protected override void Customize() r.DiscriminatorName = "Kind"; r.DiscriminatorValue = "AzureCLI"; }); - RemoveProperty("Id"); - RemoveProperty("Name"); - RemoveProperty("Location"); - RemoveProperty("Identity"); - RemoveProperty("SystemData"); - RemoveProperty("Tags"); CustomizeResource(r => { r.BaseType = GetModel() as TypeModel; r.DiscriminatorName = "Kind"; r.DiscriminatorValue = "AzurePowerShell"; }); - RemoveProperty("Id"); - RemoveProperty("Name"); - RemoveProperty("Location"); - RemoveProperty("Identity"); - RemoveProperty("SystemData"); - RemoveProperty("Tags"); + // remove the properties that inherited from the base type ArmDeploymentScript + RemoveProperties("Id", "Name", "Location", "Identity", "SystemData", "Tags"); + RemoveProperties("Id", "Name", "Location", "Identity", "SystemData", "Tags"); // Backward compatibility CustomizeProperty("OutputResources", p => @@ -84,6 +75,14 @@ protected override void Customize() AddNameRequirements(min: 1, max: 90, lower: true, upper: true, digits: true, hyphen: true, underscore: true, period: true, parens: true); } + private void RemoveProperties(params string[] propertyNames) + { + foreach (string propertyName in propertyNames) + { + RemoveProperty(propertyName); + } + } + private protected override Dictionary FindConstructibleResources() { var result = base.FindConstructibleResources(); From 7feeb6a392fa4ffd381fcde6578f787e007426e9 Mon Sep 17 00:00:00 2001 From: Arcturus Zhang Date: Tue, 1 Jul 2025 16:41:15 +0800 Subject: [PATCH 09/10] bump version --- .../Azure.Provisioning/src/Azure.Provisioning.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/provisioning/Azure.Provisioning/src/Azure.Provisioning.csproj b/sdk/provisioning/Azure.Provisioning/src/Azure.Provisioning.csproj index 89afd00912a4..096277fc76a1 100644 --- a/sdk/provisioning/Azure.Provisioning/src/Azure.Provisioning.csproj +++ b/sdk/provisioning/Azure.Provisioning/src/Azure.Provisioning.csproj @@ -2,7 +2,7 @@ Contains the core functionality for defining Azure infrastructure with dotnet code. - 1.2.0-beta.1 + 1.2.0 1.1.0 $(RequiredTargetFrameworks) From 61c7213f48e20fb43a7f8420fd2a06f5cf723578 Mon Sep 17 00:00:00 2001 From: Dapeng Zhang Date: Wed, 2 Jul 2025 10:37:16 +0800 Subject: [PATCH 10/10] Update sdk/provisioning/Generator/src/Model/Resource.cs --- sdk/provisioning/Generator/src/Model/Resource.cs | 2 -- 1 file changed, 2 deletions(-) diff --git a/sdk/provisioning/Generator/src/Model/Resource.cs b/sdk/provisioning/Generator/src/Model/Resource.cs index 95442106e95a..27e41efdb047 100644 --- a/sdk/provisioning/Generator/src/Model/Resource.cs +++ b/sdk/provisioning/Generator/src/Model/Resource.cs @@ -26,8 +26,6 @@ public class Resource(Specification spec, Type armType) public SimpleModel? GetKeysType { get; set; } public bool GetKeysIsList { get; set; } - // TODO -- add discriminated child resources to support such cases as DeploymentScript - public override string ToString() => $""; public override void Lint()