diff --git a/sdk/provisioning/Azure.Provisioning/CHANGELOG.md b/sdk/provisioning/Azure.Provisioning/CHANGELOG.md new file mode 100644 index 000000000000..8b33f0fedccc --- /dev/null +++ b/sdk/provisioning/Azure.Provisioning/CHANGELOG.md @@ -0,0 +1,11 @@ +# Release History + +## 1.0.0-beta.1 (Unreleased) + +### Features Added + +### Breaking Changes + +### Bugs Fixed + +### Other Changes \ No newline at end of file diff --git a/sdk/provisioning/Azure.Provisioning/README.md b/sdk/provisioning/Azure.Provisioning/README.md new file mode 100644 index 000000000000..a43842b8a1e0 --- /dev/null +++ b/sdk/provisioning/Azure.Provisioning/README.md @@ -0,0 +1,81 @@ +# Azure Provisioning client library for .NET + +Azure.Provisioning is a cloud development kit that allows you to declaritively specify your Azure infrastructure natively in dotnet. + +## Getting started + +### Install the package + +Install the client library for .NET with [NuGet](https://www.nuget.org/ ): + +```dotnetcli +dotnet add package Azure.Provisioning --prerelease +``` + +### Prerequisites + +> You must have an [Azure subscription](https://azure.microsoft.com/free/dotnet/). + +### Authenticate the Client + +## Key concepts + +This library allows you to specify your infrastructure in a declarative style using dotnet. You can then use azd to deploy your infrastructure to Azure diretly without needing to write or maintain bicep or arm templates. + +## Examples + +Here is a simple example which creates a KeyVault. + +First create your Infrastructure class. + +```C# Snippet:SampleInfrastructure +public class SampleInfrastructure : Infrastructure +{ +} +``` + +Next add your resources into your infrastructure and then Build. + +```C# Snippet:KeyVaultOnly +// Create a new infrastructure +var infrastructure = new SampleInfrastructure(); + +// Add a new key vault +var keyVault = infrastructure.AddKeyVault(); + +// You can call Build to convert the infrastructure into bicep files +infrastructure.Build(); +``` + +## Troubleshooting + +- File an issue via [GitHub Issues](https://github.com/Azure/azure-sdk-for-net/issues). +- Check [previous questions](https://stackoverflow.com/questions/tagged/azure+.net) or ask new ones on Stack Overflow using Azure and .NET tags. + +## Next steps + +## Contributing + +For details on contributing to this repository, see the [contributing +guide][cg]. + +This project welcomes contributions and suggestions. Most contributions +require you to agree to a Contributor License Agreement (CLA) declaring +that you have the right to, and actually do, grant us the rights to use +your contribution. For details, visit . + +When you submit a pull request, a CLA-bot will automatically determine +whether you need to provide a CLA and decorate the PR appropriately +(for example, label, comment). Follow the instructions provided by the +bot. You'll only need to do this action once across all repositories +using our CLA. + +This project has adopted the [Microsoft Open Source Code of Conduct][coc]. For +more information, see the [Code of Conduct FAQ][coc_faq] or contact + with any other questions or comments. + + +[cg]: https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/resourcemanager/Azure.ResourceManager/docs/CONTRIBUTING.md +[coc]: https://opensource.microsoft.com/codeofconduct/ +[coc_faq]: https://opensource.microsoft.com/codeofconduct/faq/ + diff --git a/sdk/provisioning/Azure.Provisioning/api/Azure.Provisioning.net6.0.cs b/sdk/provisioning/Azure.Provisioning/api/Azure.Provisioning.net6.0.cs new file mode 100644 index 000000000000..c88db5668215 --- /dev/null +++ b/sdk/provisioning/Azure.Provisioning/api/Azure.Provisioning.net6.0.cs @@ -0,0 +1,209 @@ +namespace Azure.Provisioning +{ + public static partial class CdkExtensions + { + public static T? GetSingleResourceInScope(this Azure.Provisioning.IConstruct construct) where T : Azure.Provisioning.Resource { throw null; } + public static T? GetSingleResource(this Azure.Provisioning.IConstruct construct) where T : Azure.Provisioning.Resource { throw null; } + } + public abstract partial class Construct : Azure.Provisioning.IConstruct, System.ClientModel.Primitives.IPersistableModel + { + protected Construct(Azure.Provisioning.IConstruct? scope, string name, Azure.Provisioning.ConstructScope constructScope = Azure.Provisioning.ConstructScope.ResourceGroup, System.Guid? tenantId = default(System.Guid?), System.Guid? subscriptionId = default(System.Guid?), string? envName = null) { } + public Azure.Provisioning.ConstructScope ConstructScope { get { throw null; } } + public string EnvironmentName { get { throw null; } } + public string Name { get { throw null; } } + public Azure.Provisioning.ResourceManager.ResourceGroup? ResourceGroup { get { throw null; } protected set { } } + public Azure.Provisioning.ResourceManager.Tenant Root { get { throw null; } } + public Azure.Provisioning.IConstruct? Scope { get { throw null; } } + public Azure.Provisioning.ResourceManager.Subscription? Subscription { get { throw null; } } + public void AddConstruct(Azure.Provisioning.IConstruct construct) { } + public void AddOutput(Azure.Provisioning.Output output) { } + public void AddParameter(Azure.Provisioning.Parameter parameter) { } + public void AddResource(Azure.Provisioning.Resource resource) { } + public System.Collections.Generic.IEnumerable GetConstructs(bool recursive = true) { throw null; } + public System.Collections.Generic.IEnumerable GetOutputs(bool recursive = true) { throw null; } + public System.Collections.Generic.IEnumerable GetParameters(bool recursive = true) { throw null; } + public System.Collections.Generic.IEnumerable GetResources(bool recursive = true) { throw null; } + Azure.Provisioning.Construct System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + protected T UseExistingResource(T? resource, System.Func create) where T : Azure.Provisioning.Resource { throw null; } + } + public enum ConstructScope + { + ResourceGroup = 0, + Subscription = 1, + ManagementGroup = 2, + Tenant = 3, + } + public partial interface IConstruct + { + Azure.Provisioning.ConstructScope ConstructScope { get; } + string EnvironmentName { get; } + string Name { get; } + Azure.Provisioning.ResourceManager.ResourceGroup? ResourceGroup { get; } + Azure.Provisioning.ResourceManager.Tenant Root { get; } + Azure.Provisioning.IConstruct? Scope { get; } + Azure.Provisioning.ResourceManager.Subscription? Subscription { get; } + void AddConstruct(Azure.Provisioning.IConstruct construct); + void AddOutput(Azure.Provisioning.Output output); + void AddParameter(Azure.Provisioning.Parameter parameter); + void AddResource(Azure.Provisioning.Resource resource); + System.Collections.Generic.IEnumerable GetConstructs(bool recursive = true); + System.Collections.Generic.IEnumerable GetOutputs(bool recursive = true); + System.Collections.Generic.IEnumerable GetParameters(bool recursive = true); + System.Collections.Generic.IEnumerable GetResources(bool recursive = true); + } + public abstract partial class Infrastructure : Azure.Provisioning.Construct + { + public Infrastructure(Azure.Provisioning.ConstructScope constructScope = Azure.Provisioning.ConstructScope.Subscription, System.Guid? tenantId = default(System.Guid?), System.Guid? subscriptionId = default(System.Guid?), string? envName = null) : base (default(Azure.Provisioning.IConstruct), default(string), default(Azure.Provisioning.ConstructScope), default(System.Guid?), default(System.Guid?), default(string)) { } + public void Build(string? outputPath = null) { } + } + public partial class Output + { + public Output(string name, string value, Azure.Provisioning.IConstruct source, bool isLiteral = false, bool isSecure = false) { } + public bool IsLiteral { get { throw null; } } + public bool IsSecure { get { throw null; } } + public string Name { get { throw null; } } + public string Value { get { throw null; } } + } + [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] + public readonly partial struct Parameter + { + private readonly object _dummy; + private readonly int _dummyPrimitive; + public Parameter(string name, string? description = null, object? defaultValue = null, bool isSecure = false) { throw null; } + public object? DefaultValue { get { throw null; } } + public string? Description { get { throw null; } } + public bool IsSecure { get { throw null; } } + public string Name { get { throw null; } } + } + public abstract partial class Resource : System.ClientModel.Primitives.IPersistableModel + { + protected Resource(Azure.Provisioning.IConstruct scope, Azure.Provisioning.Resource? parent, string resourceName, Azure.Core.ResourceType resourceType, string version, object properties) { } + public Azure.Core.ResourceIdentifier Id { get { throw null; } } + public string Name { get { throw null; } } + public System.Collections.Generic.IList Parameters { get { throw null; } } + public Azure.Provisioning.Resource? Parent { get { throw null; } } + public Azure.Provisioning.IConstruct Scope { get { throw null; } } + public string Version { get { throw null; } } + public Azure.Provisioning.Output AddOutput(string name, string propertyName, bool isLiteral = false, bool isSecure = false) { throw null; } + public void AssignParameter(object instance, string propertyName, Azure.Provisioning.Parameter parameter) { } + protected virtual Azure.Provisioning.Resource? FindParentInScope(Azure.Provisioning.IConstruct scope) { throw null; } + Azure.Provisioning.Resource System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } + public abstract partial class Resource : Azure.Provisioning.Resource where T : notnull + { + protected Resource(Azure.Provisioning.IConstruct scope, Azure.Provisioning.Resource? parent, string resourceName, Azure.Core.ResourceType resourceType, string version, T properties) : base (default(Azure.Provisioning.IConstruct), default(Azure.Provisioning.Resource), default(string), default(Azure.Core.ResourceType), default(string), default(object)) { } + public T Properties { get { throw null; } } + } +} +namespace Azure.Provisioning.AppService +{ + public partial class AppServicePlan : Azure.Provisioning.Resource + { + public AppServicePlan(Azure.Provisioning.IConstruct scope, string resourceName, string version = "2021-02-01", Azure.Core.AzureLocation? location = default(Azure.Core.AzureLocation?)) : base (default(Azure.Provisioning.IConstruct), default(Azure.Provisioning.Resource), default(string), default(Azure.Core.ResourceType), default(string), default(Azure.ResourceManager.AppService.AppServicePlanData)) { } + protected override Azure.Provisioning.Resource? FindParentInScope(Azure.Provisioning.IConstruct scope) { throw null; } + } + public static partial class AppServicesExtensions + { + public static Azure.Provisioning.AppService.AppServicePlan AddAppServicePlan(this Azure.Provisioning.IConstruct construct, Azure.Provisioning.ResourceManager.ResourceGroup? parent = null, string name = "appServicePlan") { throw null; } + } + public partial class WebSite : Azure.Provisioning.Resource + { + public WebSite(Azure.Provisioning.IConstruct scope, string resourceName, Azure.Provisioning.AppService.AppServicePlan appServicePlan, Azure.Provisioning.AppService.WebSiteRuntime runtime, string runtimeVersion, string version = "2021-02-01", Azure.Core.AzureLocation? location = default(Azure.Core.AzureLocation?)) : base (default(Azure.Provisioning.IConstruct), default(Azure.Provisioning.Resource), default(string), default(Azure.Core.ResourceType), default(string), default(Azure.ResourceManager.AppService.WebSiteData)) { } + public void AddApplicationSetting(string key, Azure.Provisioning.Parameter value) { } + public void AddApplicationSetting(string key, string value) { } + public void AddLogConfig(string resourceName) { } + protected override Azure.Provisioning.Resource? FindParentInScope(Azure.Provisioning.IConstruct scope) { throw null; } + } + public partial class WebSiteConfigLogs : Azure.Provisioning.Resource + { + public WebSiteConfigLogs(Azure.Provisioning.IConstruct scope, string resourceName, Azure.Provisioning.AppService.WebSite? parent = null, string version = "2021-02-01", Azure.Core.AzureLocation? location = default(Azure.Core.AzureLocation?)) : base (default(Azure.Provisioning.IConstruct), default(Azure.Provisioning.Resource), default(string), default(Azure.Core.ResourceType), default(string), default(Azure.ResourceManager.AppService.SiteLogsConfigData)) { } + } + public partial class WebSitePublishingCredentialPolicy : Azure.Provisioning.Resource + { + public WebSitePublishingCredentialPolicy(Azure.Provisioning.IConstruct scope, string resourceName, string version = "2021-02-01", Azure.Core.AzureLocation? location = default(Azure.Core.AzureLocation?)) : base (default(Azure.Provisioning.IConstruct), default(Azure.Provisioning.Resource), default(string), default(Azure.Core.ResourceType), default(string), default(Azure.ResourceManager.AppService.CsmPublishingCredentialsPoliciesEntityData)) { } + } + public enum WebSiteRuntime + { + Node = 0, + Dotnetcore = 1, + } +} +namespace Azure.Provisioning.KeyVaults +{ + public partial class KeyVault : Azure.Provisioning.Resource + { + public KeyVault(Azure.Provisioning.IConstruct scope, string? name = null, string version = "2023-02-01", Azure.Core.AzureLocation? location = default(Azure.Core.AzureLocation?)) : base (default(Azure.Provisioning.IConstruct), default(Azure.Provisioning.Resource), default(string), default(Azure.Core.ResourceType), default(string), default(Azure.ResourceManager.KeyVault.KeyVaultData)) { } + public void AddAccessPolicy(Azure.Provisioning.Output output) { } + protected override Azure.Provisioning.Resource? FindParentInScope(Azure.Provisioning.IConstruct scope) { throw null; } + } + public static partial class KeyVaultExtensions + { + public static Azure.Provisioning.KeyVaults.KeyVault AddKeyVault(this Azure.Provisioning.IConstruct construct, Azure.Provisioning.ResourceManager.ResourceGroup? parent = null, string name = "kv") { throw null; } + public static System.Collections.Generic.IEnumerable GetSecrets(this Azure.Provisioning.IConstruct construct) { throw null; } + } + public partial class KeyVaultSecret : Azure.Provisioning.Resource + { + public KeyVaultSecret(Azure.Provisioning.IConstruct scope, string name, Azure.Provisioning.Sql.ConnectionString connectionString, string version = "2023-02-01") : base (default(Azure.Provisioning.IConstruct), default(Azure.Provisioning.Resource), default(string), default(Azure.Core.ResourceType), default(string), default(Azure.ResourceManager.KeyVault.KeyVaultSecretData)) { } + public KeyVaultSecret(Azure.Provisioning.IConstruct scope, string name, string version = "2023-02-01") : base (default(Azure.Provisioning.IConstruct), default(Azure.Provisioning.Resource), default(string), default(Azure.Core.ResourceType), default(string), default(Azure.ResourceManager.KeyVault.KeyVaultSecretData)) { } + protected override Azure.Provisioning.Resource? FindParentInScope(Azure.Provisioning.IConstruct scope) { throw null; } + } +} +namespace Azure.Provisioning.ResourceManager +{ + public partial class ResourceGroup : Azure.Provisioning.Resource + { + public ResourceGroup(Azure.Provisioning.IConstruct scope, string? name = null, string version = "2023-07-01", Azure.Core.AzureLocation? location = default(Azure.Core.AzureLocation?)) : base (default(Azure.Provisioning.IConstruct), default(Azure.Provisioning.Resource), default(string), default(Azure.Core.ResourceType), default(string), default(Azure.ResourceManager.Resources.ResourceGroupData)) { } + protected override Azure.Provisioning.Resource? FindParentInScope(Azure.Provisioning.IConstruct scope) { throw null; } + } + public static partial class ResourceManagerExtensions + { + public static Azure.Provisioning.ResourceManager.ResourceGroup AddResourceGroup(this Azure.Provisioning.IConstruct construct) { throw null; } + public static Azure.Provisioning.ResourceManager.ResourceGroup GetOrAddResourceGroup(this Azure.Provisioning.IConstruct construct) { throw null; } + public static Azure.Provisioning.ResourceManager.Subscription GetOrCreateSubscription(this Azure.Provisioning.IConstruct construct, System.Guid? subscriptionId = default(System.Guid?)) { throw null; } + } + public partial class Subscription : Azure.Provisioning.Resource + { + public Subscription(Azure.Provisioning.IConstruct scope, System.Guid? guid = default(System.Guid?)) : base (default(Azure.Provisioning.IConstruct), default(Azure.Provisioning.Resource), default(string), default(Azure.Core.ResourceType), default(string), default(Azure.ResourceManager.Resources.SubscriptionData)) { } + } + public partial class Tenant : Azure.Provisioning.Resource + { + public Tenant(Azure.Provisioning.IConstruct scope, System.Guid? tenantId = default(System.Guid?)) : base (default(Azure.Provisioning.IConstruct), default(Azure.Provisioning.Resource), default(string), default(Azure.Core.ResourceType), default(string), default(Azure.ResourceManager.Resources.TenantData)) { } + } +} +namespace Azure.Provisioning.Resources +{ + public partial class DeploymentScript : Azure.Provisioning.Resource + { + public DeploymentScript(Azure.Provisioning.IConstruct scope, string resourceName, Azure.Provisioning.Resource database, Azure.Provisioning.Parameter appUserPasswordSecret, Azure.Provisioning.Parameter sqlAdminPasswordSecret, string version = "2020-10-01", Azure.Core.AzureLocation? location = default(Azure.Core.AzureLocation?)) : base (default(Azure.Provisioning.IConstruct), default(Azure.Provisioning.Resource), default(string), default(Azure.Core.ResourceType), default(string), default(Azure.ResourceManager.Resources.Models.AzureCliScript)) { } + public DeploymentScript(Azure.Provisioning.IConstruct scope, string resourceName, System.Collections.Generic.IEnumerable scriptEnvironmentVariables, string scriptContent, string version = "2020-10-01", Azure.Core.AzureLocation? location = default(Azure.Core.AzureLocation?)) : base (default(Azure.Provisioning.IConstruct), default(Azure.Provisioning.Resource), default(string), default(Azure.Core.ResourceType), default(string), default(Azure.ResourceManager.Resources.Models.AzureCliScript)) { } + protected override Azure.Provisioning.Resource? FindParentInScope(Azure.Provisioning.IConstruct scope) { throw null; } + } +} +namespace Azure.Provisioning.Sql +{ + public partial class ConnectionString + { + public ConnectionString(Azure.Provisioning.Sql.SqlDatabase database, Azure.Provisioning.Parameter password, string userName) { } + public string Value { get { throw null; } } + } + public partial class SqlDatabase : Azure.Provisioning.Resource + { + public SqlDatabase(Azure.Provisioning.IConstruct scope, string? name = null, string version = "2022-08-01-preview", Azure.Core.AzureLocation? location = default(Azure.Core.AzureLocation?)) : base (default(Azure.Provisioning.IConstruct), default(Azure.Provisioning.Resource), default(string), default(Azure.Core.ResourceType), default(string), default(Azure.ResourceManager.Sql.SqlDatabaseData)) { } + protected override Azure.Provisioning.Resource? FindParentInScope(Azure.Provisioning.IConstruct scope) { throw null; } + public Azure.Provisioning.Sql.ConnectionString GetConnectionString(Azure.Provisioning.Parameter passwordSecret, string userName = "appUser") { throw null; } + } + public partial class SqlFirewallRule : Azure.Provisioning.Resource + { + public SqlFirewallRule(Azure.Provisioning.IConstruct scope, string? name = null, string version = "2020-11-01-preview") : base (default(Azure.Provisioning.IConstruct), default(Azure.Provisioning.Resource), default(string), default(Azure.Core.ResourceType), default(string), default(Azure.ResourceManager.Sql.SqlFirewallRuleData)) { } + protected override Azure.Provisioning.Resource? FindParentInScope(Azure.Provisioning.IConstruct scope) { throw null; } + } + public partial class SqlServer : Azure.Provisioning.Resource + { + public SqlServer(Azure.Provisioning.IConstruct scope, string name, string? version = null, Azure.Core.AzureLocation? location = default(Azure.Core.AzureLocation?)) : base (default(Azure.Provisioning.IConstruct), default(Azure.Provisioning.Resource), default(string), default(Azure.Core.ResourceType), default(string), default(Azure.ResourceManager.Sql.SqlServerData)) { } + protected override Azure.Provisioning.Resource? FindParentInScope(Azure.Provisioning.IConstruct scope) { throw null; } + } +} diff --git a/sdk/provisioning/Azure.Provisioning/api/Azure.Provisioning.netstandard2.0.cs b/sdk/provisioning/Azure.Provisioning/api/Azure.Provisioning.netstandard2.0.cs new file mode 100644 index 000000000000..c88db5668215 --- /dev/null +++ b/sdk/provisioning/Azure.Provisioning/api/Azure.Provisioning.netstandard2.0.cs @@ -0,0 +1,209 @@ +namespace Azure.Provisioning +{ + public static partial class CdkExtensions + { + public static T? GetSingleResourceInScope(this Azure.Provisioning.IConstruct construct) where T : Azure.Provisioning.Resource { throw null; } + public static T? GetSingleResource(this Azure.Provisioning.IConstruct construct) where T : Azure.Provisioning.Resource { throw null; } + } + public abstract partial class Construct : Azure.Provisioning.IConstruct, System.ClientModel.Primitives.IPersistableModel + { + protected Construct(Azure.Provisioning.IConstruct? scope, string name, Azure.Provisioning.ConstructScope constructScope = Azure.Provisioning.ConstructScope.ResourceGroup, System.Guid? tenantId = default(System.Guid?), System.Guid? subscriptionId = default(System.Guid?), string? envName = null) { } + public Azure.Provisioning.ConstructScope ConstructScope { get { throw null; } } + public string EnvironmentName { get { throw null; } } + public string Name { get { throw null; } } + public Azure.Provisioning.ResourceManager.ResourceGroup? ResourceGroup { get { throw null; } protected set { } } + public Azure.Provisioning.ResourceManager.Tenant Root { get { throw null; } } + public Azure.Provisioning.IConstruct? Scope { get { throw null; } } + public Azure.Provisioning.ResourceManager.Subscription? Subscription { get { throw null; } } + public void AddConstruct(Azure.Provisioning.IConstruct construct) { } + public void AddOutput(Azure.Provisioning.Output output) { } + public void AddParameter(Azure.Provisioning.Parameter parameter) { } + public void AddResource(Azure.Provisioning.Resource resource) { } + public System.Collections.Generic.IEnumerable GetConstructs(bool recursive = true) { throw null; } + public System.Collections.Generic.IEnumerable GetOutputs(bool recursive = true) { throw null; } + public System.Collections.Generic.IEnumerable GetParameters(bool recursive = true) { throw null; } + public System.Collections.Generic.IEnumerable GetResources(bool recursive = true) { throw null; } + Azure.Provisioning.Construct System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + protected T UseExistingResource(T? resource, System.Func create) where T : Azure.Provisioning.Resource { throw null; } + } + public enum ConstructScope + { + ResourceGroup = 0, + Subscription = 1, + ManagementGroup = 2, + Tenant = 3, + } + public partial interface IConstruct + { + Azure.Provisioning.ConstructScope ConstructScope { get; } + string EnvironmentName { get; } + string Name { get; } + Azure.Provisioning.ResourceManager.ResourceGroup? ResourceGroup { get; } + Azure.Provisioning.ResourceManager.Tenant Root { get; } + Azure.Provisioning.IConstruct? Scope { get; } + Azure.Provisioning.ResourceManager.Subscription? Subscription { get; } + void AddConstruct(Azure.Provisioning.IConstruct construct); + void AddOutput(Azure.Provisioning.Output output); + void AddParameter(Azure.Provisioning.Parameter parameter); + void AddResource(Azure.Provisioning.Resource resource); + System.Collections.Generic.IEnumerable GetConstructs(bool recursive = true); + System.Collections.Generic.IEnumerable GetOutputs(bool recursive = true); + System.Collections.Generic.IEnumerable GetParameters(bool recursive = true); + System.Collections.Generic.IEnumerable GetResources(bool recursive = true); + } + public abstract partial class Infrastructure : Azure.Provisioning.Construct + { + public Infrastructure(Azure.Provisioning.ConstructScope constructScope = Azure.Provisioning.ConstructScope.Subscription, System.Guid? tenantId = default(System.Guid?), System.Guid? subscriptionId = default(System.Guid?), string? envName = null) : base (default(Azure.Provisioning.IConstruct), default(string), default(Azure.Provisioning.ConstructScope), default(System.Guid?), default(System.Guid?), default(string)) { } + public void Build(string? outputPath = null) { } + } + public partial class Output + { + public Output(string name, string value, Azure.Provisioning.IConstruct source, bool isLiteral = false, bool isSecure = false) { } + public bool IsLiteral { get { throw null; } } + public bool IsSecure { get { throw null; } } + public string Name { get { throw null; } } + public string Value { get { throw null; } } + } + [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] + public readonly partial struct Parameter + { + private readonly object _dummy; + private readonly int _dummyPrimitive; + public Parameter(string name, string? description = null, object? defaultValue = null, bool isSecure = false) { throw null; } + public object? DefaultValue { get { throw null; } } + public string? Description { get { throw null; } } + public bool IsSecure { get { throw null; } } + public string Name { get { throw null; } } + } + public abstract partial class Resource : System.ClientModel.Primitives.IPersistableModel + { + protected Resource(Azure.Provisioning.IConstruct scope, Azure.Provisioning.Resource? parent, string resourceName, Azure.Core.ResourceType resourceType, string version, object properties) { } + public Azure.Core.ResourceIdentifier Id { get { throw null; } } + public string Name { get { throw null; } } + public System.Collections.Generic.IList Parameters { get { throw null; } } + public Azure.Provisioning.Resource? Parent { get { throw null; } } + public Azure.Provisioning.IConstruct Scope { get { throw null; } } + public string Version { get { throw null; } } + public Azure.Provisioning.Output AddOutput(string name, string propertyName, bool isLiteral = false, bool isSecure = false) { throw null; } + public void AssignParameter(object instance, string propertyName, Azure.Provisioning.Parameter parameter) { } + protected virtual Azure.Provisioning.Resource? FindParentInScope(Azure.Provisioning.IConstruct scope) { throw null; } + Azure.Provisioning.Resource System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } + public abstract partial class Resource : Azure.Provisioning.Resource where T : notnull + { + protected Resource(Azure.Provisioning.IConstruct scope, Azure.Provisioning.Resource? parent, string resourceName, Azure.Core.ResourceType resourceType, string version, T properties) : base (default(Azure.Provisioning.IConstruct), default(Azure.Provisioning.Resource), default(string), default(Azure.Core.ResourceType), default(string), default(object)) { } + public T Properties { get { throw null; } } + } +} +namespace Azure.Provisioning.AppService +{ + public partial class AppServicePlan : Azure.Provisioning.Resource + { + public AppServicePlan(Azure.Provisioning.IConstruct scope, string resourceName, string version = "2021-02-01", Azure.Core.AzureLocation? location = default(Azure.Core.AzureLocation?)) : base (default(Azure.Provisioning.IConstruct), default(Azure.Provisioning.Resource), default(string), default(Azure.Core.ResourceType), default(string), default(Azure.ResourceManager.AppService.AppServicePlanData)) { } + protected override Azure.Provisioning.Resource? FindParentInScope(Azure.Provisioning.IConstruct scope) { throw null; } + } + public static partial class AppServicesExtensions + { + public static Azure.Provisioning.AppService.AppServicePlan AddAppServicePlan(this Azure.Provisioning.IConstruct construct, Azure.Provisioning.ResourceManager.ResourceGroup? parent = null, string name = "appServicePlan") { throw null; } + } + public partial class WebSite : Azure.Provisioning.Resource + { + public WebSite(Azure.Provisioning.IConstruct scope, string resourceName, Azure.Provisioning.AppService.AppServicePlan appServicePlan, Azure.Provisioning.AppService.WebSiteRuntime runtime, string runtimeVersion, string version = "2021-02-01", Azure.Core.AzureLocation? location = default(Azure.Core.AzureLocation?)) : base (default(Azure.Provisioning.IConstruct), default(Azure.Provisioning.Resource), default(string), default(Azure.Core.ResourceType), default(string), default(Azure.ResourceManager.AppService.WebSiteData)) { } + public void AddApplicationSetting(string key, Azure.Provisioning.Parameter value) { } + public void AddApplicationSetting(string key, string value) { } + public void AddLogConfig(string resourceName) { } + protected override Azure.Provisioning.Resource? FindParentInScope(Azure.Provisioning.IConstruct scope) { throw null; } + } + public partial class WebSiteConfigLogs : Azure.Provisioning.Resource + { + public WebSiteConfigLogs(Azure.Provisioning.IConstruct scope, string resourceName, Azure.Provisioning.AppService.WebSite? parent = null, string version = "2021-02-01", Azure.Core.AzureLocation? location = default(Azure.Core.AzureLocation?)) : base (default(Azure.Provisioning.IConstruct), default(Azure.Provisioning.Resource), default(string), default(Azure.Core.ResourceType), default(string), default(Azure.ResourceManager.AppService.SiteLogsConfigData)) { } + } + public partial class WebSitePublishingCredentialPolicy : Azure.Provisioning.Resource + { + public WebSitePublishingCredentialPolicy(Azure.Provisioning.IConstruct scope, string resourceName, string version = "2021-02-01", Azure.Core.AzureLocation? location = default(Azure.Core.AzureLocation?)) : base (default(Azure.Provisioning.IConstruct), default(Azure.Provisioning.Resource), default(string), default(Azure.Core.ResourceType), default(string), default(Azure.ResourceManager.AppService.CsmPublishingCredentialsPoliciesEntityData)) { } + } + public enum WebSiteRuntime + { + Node = 0, + Dotnetcore = 1, + } +} +namespace Azure.Provisioning.KeyVaults +{ + public partial class KeyVault : Azure.Provisioning.Resource + { + public KeyVault(Azure.Provisioning.IConstruct scope, string? name = null, string version = "2023-02-01", Azure.Core.AzureLocation? location = default(Azure.Core.AzureLocation?)) : base (default(Azure.Provisioning.IConstruct), default(Azure.Provisioning.Resource), default(string), default(Azure.Core.ResourceType), default(string), default(Azure.ResourceManager.KeyVault.KeyVaultData)) { } + public void AddAccessPolicy(Azure.Provisioning.Output output) { } + protected override Azure.Provisioning.Resource? FindParentInScope(Azure.Provisioning.IConstruct scope) { throw null; } + } + public static partial class KeyVaultExtensions + { + public static Azure.Provisioning.KeyVaults.KeyVault AddKeyVault(this Azure.Provisioning.IConstruct construct, Azure.Provisioning.ResourceManager.ResourceGroup? parent = null, string name = "kv") { throw null; } + public static System.Collections.Generic.IEnumerable GetSecrets(this Azure.Provisioning.IConstruct construct) { throw null; } + } + public partial class KeyVaultSecret : Azure.Provisioning.Resource + { + public KeyVaultSecret(Azure.Provisioning.IConstruct scope, string name, Azure.Provisioning.Sql.ConnectionString connectionString, string version = "2023-02-01") : base (default(Azure.Provisioning.IConstruct), default(Azure.Provisioning.Resource), default(string), default(Azure.Core.ResourceType), default(string), default(Azure.ResourceManager.KeyVault.KeyVaultSecretData)) { } + public KeyVaultSecret(Azure.Provisioning.IConstruct scope, string name, string version = "2023-02-01") : base (default(Azure.Provisioning.IConstruct), default(Azure.Provisioning.Resource), default(string), default(Azure.Core.ResourceType), default(string), default(Azure.ResourceManager.KeyVault.KeyVaultSecretData)) { } + protected override Azure.Provisioning.Resource? FindParentInScope(Azure.Provisioning.IConstruct scope) { throw null; } + } +} +namespace Azure.Provisioning.ResourceManager +{ + public partial class ResourceGroup : Azure.Provisioning.Resource + { + public ResourceGroup(Azure.Provisioning.IConstruct scope, string? name = null, string version = "2023-07-01", Azure.Core.AzureLocation? location = default(Azure.Core.AzureLocation?)) : base (default(Azure.Provisioning.IConstruct), default(Azure.Provisioning.Resource), default(string), default(Azure.Core.ResourceType), default(string), default(Azure.ResourceManager.Resources.ResourceGroupData)) { } + protected override Azure.Provisioning.Resource? FindParentInScope(Azure.Provisioning.IConstruct scope) { throw null; } + } + public static partial class ResourceManagerExtensions + { + public static Azure.Provisioning.ResourceManager.ResourceGroup AddResourceGroup(this Azure.Provisioning.IConstruct construct) { throw null; } + public static Azure.Provisioning.ResourceManager.ResourceGroup GetOrAddResourceGroup(this Azure.Provisioning.IConstruct construct) { throw null; } + public static Azure.Provisioning.ResourceManager.Subscription GetOrCreateSubscription(this Azure.Provisioning.IConstruct construct, System.Guid? subscriptionId = default(System.Guid?)) { throw null; } + } + public partial class Subscription : Azure.Provisioning.Resource + { + public Subscription(Azure.Provisioning.IConstruct scope, System.Guid? guid = default(System.Guid?)) : base (default(Azure.Provisioning.IConstruct), default(Azure.Provisioning.Resource), default(string), default(Azure.Core.ResourceType), default(string), default(Azure.ResourceManager.Resources.SubscriptionData)) { } + } + public partial class Tenant : Azure.Provisioning.Resource + { + public Tenant(Azure.Provisioning.IConstruct scope, System.Guid? tenantId = default(System.Guid?)) : base (default(Azure.Provisioning.IConstruct), default(Azure.Provisioning.Resource), default(string), default(Azure.Core.ResourceType), default(string), default(Azure.ResourceManager.Resources.TenantData)) { } + } +} +namespace Azure.Provisioning.Resources +{ + public partial class DeploymentScript : Azure.Provisioning.Resource + { + public DeploymentScript(Azure.Provisioning.IConstruct scope, string resourceName, Azure.Provisioning.Resource database, Azure.Provisioning.Parameter appUserPasswordSecret, Azure.Provisioning.Parameter sqlAdminPasswordSecret, string version = "2020-10-01", Azure.Core.AzureLocation? location = default(Azure.Core.AzureLocation?)) : base (default(Azure.Provisioning.IConstruct), default(Azure.Provisioning.Resource), default(string), default(Azure.Core.ResourceType), default(string), default(Azure.ResourceManager.Resources.Models.AzureCliScript)) { } + public DeploymentScript(Azure.Provisioning.IConstruct scope, string resourceName, System.Collections.Generic.IEnumerable scriptEnvironmentVariables, string scriptContent, string version = "2020-10-01", Azure.Core.AzureLocation? location = default(Azure.Core.AzureLocation?)) : base (default(Azure.Provisioning.IConstruct), default(Azure.Provisioning.Resource), default(string), default(Azure.Core.ResourceType), default(string), default(Azure.ResourceManager.Resources.Models.AzureCliScript)) { } + protected override Azure.Provisioning.Resource? FindParentInScope(Azure.Provisioning.IConstruct scope) { throw null; } + } +} +namespace Azure.Provisioning.Sql +{ + public partial class ConnectionString + { + public ConnectionString(Azure.Provisioning.Sql.SqlDatabase database, Azure.Provisioning.Parameter password, string userName) { } + public string Value { get { throw null; } } + } + public partial class SqlDatabase : Azure.Provisioning.Resource + { + public SqlDatabase(Azure.Provisioning.IConstruct scope, string? name = null, string version = "2022-08-01-preview", Azure.Core.AzureLocation? location = default(Azure.Core.AzureLocation?)) : base (default(Azure.Provisioning.IConstruct), default(Azure.Provisioning.Resource), default(string), default(Azure.Core.ResourceType), default(string), default(Azure.ResourceManager.Sql.SqlDatabaseData)) { } + protected override Azure.Provisioning.Resource? FindParentInScope(Azure.Provisioning.IConstruct scope) { throw null; } + public Azure.Provisioning.Sql.ConnectionString GetConnectionString(Azure.Provisioning.Parameter passwordSecret, string userName = "appUser") { throw null; } + } + public partial class SqlFirewallRule : Azure.Provisioning.Resource + { + public SqlFirewallRule(Azure.Provisioning.IConstruct scope, string? name = null, string version = "2020-11-01-preview") : base (default(Azure.Provisioning.IConstruct), default(Azure.Provisioning.Resource), default(string), default(Azure.Core.ResourceType), default(string), default(Azure.ResourceManager.Sql.SqlFirewallRuleData)) { } + protected override Azure.Provisioning.Resource? FindParentInScope(Azure.Provisioning.IConstruct scope) { throw null; } + } + public partial class SqlServer : Azure.Provisioning.Resource + { + public SqlServer(Azure.Provisioning.IConstruct scope, string name, string? version = null, Azure.Core.AzureLocation? location = default(Azure.Core.AzureLocation?)) : base (default(Azure.Provisioning.IConstruct), default(Azure.Provisioning.Resource), default(string), default(Azure.Core.ResourceType), default(string), default(Azure.ResourceManager.Sql.SqlServerData)) { } + protected override Azure.Provisioning.Resource? FindParentInScope(Azure.Provisioning.IConstruct scope) { throw null; } + } +} diff --git a/sdk/provisioning/Azure.Provisioning/src/Construct.cs b/sdk/provisioning/Azure.Provisioning/src/Construct.cs index fbd09eb7307b..b1130a312585 100644 --- a/sdk/provisioning/Azure.Provisioning/src/Construct.cs +++ b/sdk/provisioning/Azure.Provisioning/src/Construct.cs @@ -22,7 +22,7 @@ public abstract class Construct : IConstruct, IPersistableModel private List _constructs; private List _outputs; private List _existingResources; - private string _environmentName; + private string? _environmentName; /// public string Name { get; } @@ -75,7 +75,7 @@ protected Construct(IConstruct? scope, string name, ConstructScope constructScop Subscription = scope is null ? this.GetOrCreateSubscription(subscriptionId) : scope.Subscription ?? scope.GetOrCreateSubscription(subscriptionId); } - _environmentName = envName ?? Environment.GetEnvironmentVariable("AZURE_ENV_NAME") ?? throw new Exception("No environment variable found named 'AZURE_ENV_NAME'"); + _environmentName = envName; } private string GetEnvironmentName() diff --git a/sdk/provisioning/Azure.Provisioning/src/Infrastructure.cs b/sdk/provisioning/Azure.Provisioning/src/Infrastructure.cs index 12d6915131b4..c9c49198eea9 100644 --- a/sdk/provisioning/Azure.Provisioning/src/Infrastructure.cs +++ b/sdk/provisioning/Azure.Provisioning/src/Infrastructure.cs @@ -23,7 +23,7 @@ public abstract class Infrastructure : Construct /// The subscription id to use. If not passed in will try to load from AZURE_SUBSCRIPTION_ID environment variable. /// The environment name to use. If not passed in will try to load from AZURE_ENV_NAME environment variable. public Infrastructure(ConstructScope constructScope = ConstructScope.Subscription, Guid? tenantId = null, Guid? subscriptionId = null, string? envName = null) - : base(null, "default", constructScope, tenantId, subscriptionId, envName) + : base(null, "default", constructScope, tenantId, subscriptionId, envName ?? Environment.GetEnvironmentVariable("AZURE_ENV_NAME") ?? throw new Exception("No environment variable found named 'AZURE_ENV_NAME'")) { } diff --git a/sdk/provisioning/Azure.Provisioning/src/ResourceOfT.cs b/sdk/provisioning/Azure.Provisioning/src/ResourceOfT.cs index fc0527549eeb..e76a83f64344 100644 --- a/sdk/provisioning/Azure.Provisioning/src/ResourceOfT.cs +++ b/sdk/provisioning/Azure.Provisioning/src/ResourceOfT.cs @@ -21,7 +21,15 @@ public abstract class Resource : Resource /// public T Properties { get; } - /// + /// + /// Initializes a new instance of the . + /// + /// The scope. + /// The parent. + /// The resouce name. + /// The resourceType. + /// The version. + /// The properites. protected Resource(IConstruct scope, Resource? parent, string resourceName, ResourceType resourceType, string version, T properties) : base(scope, parent, resourceName, resourceType, version, properties) { diff --git a/sdk/provisioning/Azure.Provisioning/src/keyvault/KeyVaultAddAccessPolicy.cs b/sdk/provisioning/Azure.Provisioning/src/keyvault/KeyVaultAddAccessPolicy.cs index 4462a350ccdb..8625e1449664 100644 --- a/sdk/provisioning/Azure.Provisioning/src/keyvault/KeyVaultAddAccessPolicy.cs +++ b/sdk/provisioning/Azure.Provisioning/src/keyvault/KeyVaultAddAccessPolicy.cs @@ -19,7 +19,7 @@ public KeyVaultAddAccessPolicy(IConstruct scope, Parameter principalIdParameter, accessPolicies: new List { new KeyVaultAccessPolicy( - Guid.Parse(Environment.GetEnvironmentVariable("AZURE_TENANT_ID")!), + scope.Root.Properties.TenantId!.Value, GetParamValue(principalIdParameter, scope), new IdentityAccessPermissions() { diff --git a/sdk/provisioning/Azure.Provisioning/src/resourcemanager/ResourceGroup.cs b/sdk/provisioning/Azure.Provisioning/src/resourcemanager/ResourceGroup.cs index c67648ff3f7b..61b36e0f0130 100644 --- a/sdk/provisioning/Azure.Provisioning/src/resourcemanager/ResourceGroup.cs +++ b/sdk/provisioning/Azure.Provisioning/src/resourcemanager/ResourceGroup.cs @@ -27,7 +27,7 @@ public ResourceGroup(IConstruct scope, string? name = default, string version = : base(scope, null, GetName(scope, name), ResourceType, version, ResourceManagerModelFactory.ResourceGroupData( name: GetName(scope, name), resourceType: ResourceType, - tags: new Dictionary { { "azd-env-name", Environment.GetEnvironmentVariable("AZURE_ENV_NAME") ?? throw new Exception("No environment variable 'AZURE_ENV_NAME' was found") } }, + tags: new Dictionary { { "azd-env-name", scope.EnvironmentName } }, location: location ?? Environment.GetEnvironmentVariable("AZURE_LOCATION") ?? AzureLocation.WestUS)) { } diff --git a/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/ResourceGroupOnly/main.bicep b/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/ResourceGroupOnly/main.bicep index dca2c6a38ba8..9eb894c2b3ff 100644 --- a/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/ResourceGroupOnly/main.bicep +++ b/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/ResourceGroupOnly/main.bicep @@ -5,6 +5,6 @@ resource resourceGroup_I6QNkoPsb 'Microsoft.Resources/resourceGroups@2023-07-01' name: 'rg-TEST' location: 'westus' tags: { - azd-env-name: 'mnash-cdk' + azd-env-name: 'TEST' } } diff --git a/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/WebSiteUsingL1/main.bicep b/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/WebSiteUsingL1/main.bicep index a52a2bd00e06..b2c07be67a85 100644 --- a/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/WebSiteUsingL1/main.bicep +++ b/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/WebSiteUsingL1/main.bicep @@ -13,7 +13,7 @@ resource resourceGroup_I6QNkoPsb 'Microsoft.Resources/resourceGroups@2023-07-01' name: 'rg-TEST' location: 'westus' tags: { - azd-env-name: 'mnash-cdk' + azd-env-name: 'TEST' key: 'value' } } @@ -82,7 +82,7 @@ resource keyVaultAddAccessPolicy_OttgS6uaT 'Microsoft.KeyVault/vaults/accessPoli properties: { accessPolicies: [ { - tenantId: '72f988bf-86f1-41af-91ab-2d7cd011db47' + tenantId: '00000000-0000-0000-0000-000000000000' objectId: 'SERVICE_API_IDENTITY_PRINCIPAL_ID' permissions: { secrets: [ diff --git a/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/WebSiteUsingL2/main.bicep b/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/WebSiteUsingL2/main.bicep index bdf01644e879..61edf249924a 100644 --- a/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/WebSiteUsingL2/main.bicep +++ b/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/WebSiteUsingL2/main.bicep @@ -13,7 +13,7 @@ resource resourceGroup_I6QNkoPsb 'Microsoft.Resources/resourceGroups@2023-07-01' name: 'rg-TEST' location: 'westus' tags: { - azd-env-name: 'mnash-cdk' + azd-env-name: 'TEST' key: 'value' } } @@ -49,7 +49,7 @@ resource keyVaultAddAccessPolicy_OttgS6uaT 'Microsoft.KeyVault/vaults/accessPoli properties: { accessPolicies: [ { - tenantId: '72f988bf-86f1-41af-91ab-2d7cd011db47' + tenantId: '00000000-0000-0000-0000-000000000000' objectId: 'TestFrontEndWebSite.outputs.SERVICE_API_IDENTITY_PRINCIPAL_ID' permissions: { secrets: [ diff --git a/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/WebSiteUsingL2/resources/TestBackEndWebSite/TestBackEndWebSite.bicep b/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/WebSiteUsingL2/resources/TestBackEndWebSite/TestBackEndWebSite.bicep index 3ffe35b0a5e0..6922472a5c1f 100644 --- a/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/WebSiteUsingL2/resources/TestBackEndWebSite/TestBackEndWebSite.bicep +++ b/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/WebSiteUsingL2/resources/TestBackEndWebSite/TestBackEndWebSite.bicep @@ -3,8 +3,8 @@ resource appServicePlan_kjMZSF1FP 'Microsoft.Web/serverfarms@2021-02-01' existin name: 'appServicePlan_kjMZSF1FP' } -resource webSite_vYvIqKCDk 'Microsoft.Web/sites@2021-02-01' = { - name: 'backEnd-mnash-cdk' +resource webSite_4pzZqR2OO 'Microsoft.Web/sites@2021-02-01' = { + name: 'backEnd-TEST' location: 'westus' identity: { } @@ -30,8 +30,8 @@ resource webSite_vYvIqKCDk 'Microsoft.Web/sites@2021-02-01' = { } } -resource applicationSettingsResource_Ys2FlARU8 'Microsoft.Web/sites/config@2021-02-01' = { - parent: webSite_vYvIqKCDk +resource applicationSettingsResource_Pfdqa0OdT 'Microsoft.Web/sites/config@2021-02-01' = { + parent: webSite_4pzZqR2OO name: 'appsettings' properties: { SCM_DO_BUILD_DURING_DEPLOYMENT: 'False' diff --git a/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/WebSiteUsingL2/resources/TestCommonSqlDatabase/TestCommonSqlDatabase.bicep b/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/WebSiteUsingL2/resources/TestCommonSqlDatabase/TestCommonSqlDatabase.bicep index cc03c5129821..518a3dc10c3a 100644 --- a/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/WebSiteUsingL2/resources/TestCommonSqlDatabase/TestCommonSqlDatabase.bicep +++ b/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/WebSiteUsingL2/resources/TestCommonSqlDatabase/TestCommonSqlDatabase.bicep @@ -27,8 +27,8 @@ resource keyVaultSecret_PrlUnEuAz 'Microsoft.KeyVault/vaults/secrets@2023-02-01' } } -resource sqlServer_GfC780gjO 'Microsoft.Sql/servers@2022-08-01-preview' = { - name: 'sqlserver-mnash-cdk' +resource sqlServer_zjdvvB2wl 'Microsoft.Sql/servers@2022-08-01-preview' = { + name: 'sqlserver-TEST' location: 'westus' properties: { administratorLogin: 'sqladmin' @@ -39,9 +39,9 @@ resource sqlServer_GfC780gjO 'Microsoft.Sql/servers@2022-08-01-preview' = { } } -resource sqlDatabase_06pzzL812 'Microsoft.Sql/servers/databases@2022-08-01-preview' = { - parent: sqlServer_GfC780gjO - name: 'db-mnash-cdk' +resource sqlDatabase_U7NzorRJT 'Microsoft.Sql/servers/databases@2022-08-01-preview' = { + parent: sqlServer_zjdvvB2wl + name: 'db-TEST' location: 'westus' properties: { } @@ -51,21 +51,21 @@ resource keyVaultSecret_NP8ELZpgb 'Microsoft.KeyVault/vaults/secrets@2023-02-01' parent: keyVault_CRoMbemLF name: 'connectionString' properties: { - value: 'Server=${sqlServer_GfC780gjO.properties.fullyQualifiedDomainName}; Database=${sqlDatabase_06pzzL812.name}; User=appUser; Password=${appUserPassword}' + value: 'Server=${sqlServer_zjdvvB2wl.properties.fullyQualifiedDomainName}; Database=${sqlDatabase_U7NzorRJT.name}; User=appUser; Password=${appUserPassword}' } } -resource sqlFirewallRule_uT1qFq1g9 'Microsoft.Sql/servers/firewallRules@2020-11-01-preview' = { - parent: sqlServer_GfC780gjO - name: 'firewallRule-mnash-cdk' +resource sqlFirewallRule_eS4m8st65 'Microsoft.Sql/servers/firewallRules@2020-11-01-preview' = { + parent: sqlServer_zjdvvB2wl + name: 'firewallRule-TEST' properties: { startIpAddress: '0.0.0.1' endIpAddress: '255.255.255.254' } } -resource deploymentScript_rue7c15EI 'Microsoft.Resources/deploymentScripts@2020-10-01' = { - name: 'cliScript-mnash-cdk' +resource deploymentScript_3Zq2Pl8xa 'Microsoft.Resources/deploymentScripts@2020-10-01' = { + name: 'cliScript-TEST' location: 'westus' kind: 'AzureCLI' properties: { @@ -93,11 +93,11 @@ SCRIPT_END } { name: 'DBNAME' - value: '_p_.sqlDatabase_06pzzL812.name' + value: '_p_.sqlDatabase_U7NzorRJT.name' } { name: 'DBSERVER' - value: '_p_.sqlServer_GfC780gjO.properties.fullyQualifiedDomainName' + value: '_p_.sqlServer_zjdvvB2wl.properties.fullyQualifiedDomainName' } { name: 'SQLCMDPASSWORD' diff --git a/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/WebSiteUsingL2/resources/TestFrontEndWebSite/TestFrontEndWebSite.bicep b/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/WebSiteUsingL2/resources/TestFrontEndWebSite/TestFrontEndWebSite.bicep index 0d174dead7e5..70b2a2a6da49 100644 --- a/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/WebSiteUsingL2/resources/TestFrontEndWebSite/TestFrontEndWebSite.bicep +++ b/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/WebSiteUsingL2/resources/TestFrontEndWebSite/TestFrontEndWebSite.bicep @@ -7,8 +7,8 @@ resource keyVault_CRoMbemLF 'Microsoft.KeyVault/vaults@2023-02-01' existing = { name: 'keyVault_CRoMbemLF' } -resource webSite_5n5qLSHlO 'Microsoft.Web/sites@2021-02-01' = { - name: 'frontEnd-mnash-cdk' +resource webSite_W5EweSXEq 'Microsoft.Web/sites@2021-02-01' = { + name: 'frontEnd-TEST' location: 'westus' identity: { } @@ -34,13 +34,13 @@ resource webSite_5n5qLSHlO 'Microsoft.Web/sites@2021-02-01' = { } } -resource applicationSettingsResource_0dS4jj7Cg 'Microsoft.Web/sites/config@2021-02-01' = { - parent: webSite_5n5qLSHlO +resource applicationSettingsResource_NslbdUwEt 'Microsoft.Web/sites/config@2021-02-01' = { + parent: webSite_W5EweSXEq name: 'appsettings' } -resource webSiteConfigLogs_PBLecfGMJ 'Microsoft.Web/sites/config@2021-02-01' = { - parent: webSite_5n5qLSHlO +resource webSiteConfigLogs_giqxapQs0 'Microsoft.Web/sites/config@2021-02-01' = { + parent: webSite_W5EweSXEq name: 'logs' properties: { applicationLogs: { @@ -64,4 +64,4 @@ resource webSiteConfigLogs_PBLecfGMJ 'Microsoft.Web/sites/config@2021-02-01' = { } } -output SERVICE_API_IDENTITY_PRINCIPAL_ID string = webSite_5n5qLSHlO.identity.principalId +output SERVICE_API_IDENTITY_PRINCIPAL_ID string = webSite_W5EweSXEq.identity.principalId diff --git a/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/WebSiteUsingL3/main.bicep b/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/WebSiteUsingL3/main.bicep index 332fa072a043..ef77e05ab324 100644 --- a/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/WebSiteUsingL3/main.bicep +++ b/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/WebSiteUsingL3/main.bicep @@ -13,7 +13,7 @@ resource resourceGroup_I6QNkoPsb 'Microsoft.Resources/resourceGroups@2023-07-01' name: 'rg-TEST' location: 'westus' tags: { - azd-env-name: 'mnash-cdk' + azd-env-name: 'TEST' key: 'value' } } diff --git a/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/WebSiteUsingL3/resources/TestBackEndWebSite/TestBackEndWebSite.bicep b/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/WebSiteUsingL3/resources/TestBackEndWebSite/TestBackEndWebSite.bicep index c3a87e43bb8c..6922472a5c1f 100644 --- a/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/WebSiteUsingL3/resources/TestBackEndWebSite/TestBackEndWebSite.bicep +++ b/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/WebSiteUsingL3/resources/TestBackEndWebSite/TestBackEndWebSite.bicep @@ -1,16 +1,16 @@ -resource appServicePlan_rxltck14T 'Microsoft.Web/serverfarms@2021-02-01' existing = { - name: 'appServicePlan_rxltck14T' +resource appServicePlan_kjMZSF1FP 'Microsoft.Web/serverfarms@2021-02-01' existing = { + name: 'appServicePlan_kjMZSF1FP' } -resource webSite_vYvIqKCDk 'Microsoft.Web/sites@2021-02-01' = { - name: 'backEnd-mnash-cdk' +resource webSite_4pzZqR2OO 'Microsoft.Web/sites@2021-02-01' = { + name: 'backEnd-TEST' location: 'westus' identity: { } kind: 'app,linux' properties: { - serverFarmId: '/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-TEST/providers/Microsoft.Web/serverfarms/appServicePlan-mnash-cdk' + serverFarmId: '/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-TEST/providers/Microsoft.Web/serverfarms/appServicePlan-TEST' siteConfig: { linuxFxVersion: 'dotnetcore|6.0' alwaysOn: true @@ -30,8 +30,8 @@ resource webSite_vYvIqKCDk 'Microsoft.Web/sites@2021-02-01' = { } } -resource applicationSettingsResource_Ys2FlARU8 'Microsoft.Web/sites/config@2021-02-01' = { - parent: webSite_vYvIqKCDk +resource applicationSettingsResource_Pfdqa0OdT 'Microsoft.Web/sites/config@2021-02-01' = { + parent: webSite_4pzZqR2OO name: 'appsettings' properties: { SCM_DO_BUILD_DURING_DEPLOYMENT: 'False' diff --git a/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/WebSiteUsingL3/resources/TestCommonSqlDatabase/TestCommonSqlDatabase.bicep b/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/WebSiteUsingL3/resources/TestCommonSqlDatabase/TestCommonSqlDatabase.bicep index f2d661d1fa83..518a3dc10c3a 100644 --- a/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/WebSiteUsingL3/resources/TestCommonSqlDatabase/TestCommonSqlDatabase.bicep +++ b/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/WebSiteUsingL3/resources/TestCommonSqlDatabase/TestCommonSqlDatabase.bicep @@ -7,28 +7,28 @@ param sqlAdminPassword string param appUserPassword string -resource keyVault_sofGLX66Z 'Microsoft.KeyVault/vaults@2023-02-01' existing = { - name: 'keyVault_sofGLX66Z' +resource keyVault_CRoMbemLF 'Microsoft.KeyVault/vaults@2023-02-01' existing = { + name: 'keyVault_CRoMbemLF' } -resource keyVaultSecret_FJBMvLS18 'Microsoft.KeyVault/vaults/secrets@2023-02-01' = { - parent: keyVault_sofGLX66Z +resource keyVaultSecret_nMDmVNMVq 'Microsoft.KeyVault/vaults/secrets@2023-02-01' = { + parent: keyVault_CRoMbemLF name: 'sqlAdminPassword' properties: { value: '00000000-0000-0000-0000-000000000000' } } -resource keyVaultSecret_yNzymUIqj 'Microsoft.KeyVault/vaults/secrets@2023-02-01' = { - parent: keyVault_sofGLX66Z +resource keyVaultSecret_PrlUnEuAz 'Microsoft.KeyVault/vaults/secrets@2023-02-01' = { + parent: keyVault_CRoMbemLF name: 'appUserPassword' properties: { value: '00000000-0000-0000-0000-000000000000' } } -resource sqlServer_GfC780gjO 'Microsoft.Sql/servers@2022-08-01-preview' = { - name: 'sqlserver-mnash-cdk' +resource sqlServer_zjdvvB2wl 'Microsoft.Sql/servers@2022-08-01-preview' = { + name: 'sqlserver-TEST' location: 'westus' properties: { administratorLogin: 'sqladmin' @@ -39,33 +39,33 @@ resource sqlServer_GfC780gjO 'Microsoft.Sql/servers@2022-08-01-preview' = { } } -resource sqlDatabase_06pzzL812 'Microsoft.Sql/servers/databases@2022-08-01-preview' = { - parent: sqlServer_GfC780gjO - name: 'db-mnash-cdk' +resource sqlDatabase_U7NzorRJT 'Microsoft.Sql/servers/databases@2022-08-01-preview' = { + parent: sqlServer_zjdvvB2wl + name: 'db-TEST' location: 'westus' properties: { } } -resource keyVaultSecret_EcymP2r3i 'Microsoft.KeyVault/vaults/secrets@2023-02-01' = { - parent: keyVault_sofGLX66Z +resource keyVaultSecret_NP8ELZpgb 'Microsoft.KeyVault/vaults/secrets@2023-02-01' = { + parent: keyVault_CRoMbemLF name: 'connectionString' properties: { - value: 'Server=${sqlServer_GfC780gjO.properties.fullyQualifiedDomainName}; Database=${sqlDatabase_06pzzL812.name}; User=appUser; Password=${appUserPassword}' + value: 'Server=${sqlServer_zjdvvB2wl.properties.fullyQualifiedDomainName}; Database=${sqlDatabase_U7NzorRJT.name}; User=appUser; Password=${appUserPassword}' } } -resource sqlFirewallRule_uT1qFq1g9 'Microsoft.Sql/servers/firewallRules@2020-11-01-preview' = { - parent: sqlServer_GfC780gjO - name: 'firewallRule-mnash-cdk' +resource sqlFirewallRule_eS4m8st65 'Microsoft.Sql/servers/firewallRules@2020-11-01-preview' = { + parent: sqlServer_zjdvvB2wl + name: 'firewallRule-TEST' properties: { startIpAddress: '0.0.0.1' endIpAddress: '255.255.255.254' } } -resource deploymentScript_rue7c15EI 'Microsoft.Resources/deploymentScripts@2020-10-01' = { - name: 'cliScript-mnash-cdk' +resource deploymentScript_3Zq2Pl8xa 'Microsoft.Resources/deploymentScripts@2020-10-01' = { + name: 'cliScript-TEST' location: 'westus' kind: 'AzureCLI' properties: { @@ -93,11 +93,11 @@ SCRIPT_END } { name: 'DBNAME' - value: '_p_.sqlDatabase_06pzzL812.name' + value: '_p_.sqlDatabase_U7NzorRJT.name' } { name: 'DBSERVER' - value: '_p_.sqlServer_GfC780gjO.properties.fullyQualifiedDomainName' + value: '_p_.sqlServer_zjdvvB2wl.properties.fullyQualifiedDomainName' } { name: 'SQLCMDPASSWORD' diff --git a/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/WebSiteUsingL3/resources/TestFrontEndWebSite/TestFrontEndWebSite.bicep b/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/WebSiteUsingL3/resources/TestFrontEndWebSite/TestFrontEndWebSite.bicep index 0d70791d6abe..70b2a2a6da49 100644 --- a/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/WebSiteUsingL3/resources/TestFrontEndWebSite/TestFrontEndWebSite.bicep +++ b/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/WebSiteUsingL3/resources/TestFrontEndWebSite/TestFrontEndWebSite.bicep @@ -1,20 +1,20 @@ -resource appServicePlan_rxltck14T 'Microsoft.Web/serverfarms@2021-02-01' existing = { - name: 'appServicePlan_rxltck14T' +resource appServicePlan_kjMZSF1FP 'Microsoft.Web/serverfarms@2021-02-01' existing = { + name: 'appServicePlan_kjMZSF1FP' } -resource keyVault_sofGLX66Z 'Microsoft.KeyVault/vaults@2023-02-01' existing = { - name: 'keyVault_sofGLX66Z' +resource keyVault_CRoMbemLF 'Microsoft.KeyVault/vaults@2023-02-01' existing = { + name: 'keyVault_CRoMbemLF' } -resource webSite_5n5qLSHlO 'Microsoft.Web/sites@2021-02-01' = { - name: 'frontEnd-mnash-cdk' +resource webSite_W5EweSXEq 'Microsoft.Web/sites@2021-02-01' = { + name: 'frontEnd-TEST' location: 'westus' identity: { } kind: 'app,linux' properties: { - serverFarmId: '/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-TEST/providers/Microsoft.Web/serverfarms/appServicePlan-mnash-cdk' + serverFarmId: '/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-TEST/providers/Microsoft.Web/serverfarms/appServicePlan-TEST' siteConfig: { linuxFxVersion: 'node|18-lts' alwaysOn: true @@ -34,13 +34,13 @@ resource webSite_5n5qLSHlO 'Microsoft.Web/sites@2021-02-01' = { } } -resource applicationSettingsResource_0dS4jj7Cg 'Microsoft.Web/sites/config@2021-02-01' = { - parent: webSite_5n5qLSHlO +resource applicationSettingsResource_NslbdUwEt 'Microsoft.Web/sites/config@2021-02-01' = { + parent: webSite_W5EweSXEq name: 'appsettings' } -resource webSiteConfigLogs_PBLecfGMJ 'Microsoft.Web/sites/config@2021-02-01' = { - parent: webSite_5n5qLSHlO +resource webSiteConfigLogs_giqxapQs0 'Microsoft.Web/sites/config@2021-02-01' = { + parent: webSite_W5EweSXEq name: 'logs' properties: { applicationLogs: { @@ -64,4 +64,4 @@ resource webSiteConfigLogs_PBLecfGMJ 'Microsoft.Web/sites/config@2021-02-01' = { } } -output SERVICE_API_IDENTITY_PRINCIPAL_ID string = webSite_5n5qLSHlO.identity.principalId +output SERVICE_API_IDENTITY_PRINCIPAL_ID string = webSite_W5EweSXEq.identity.principalId diff --git a/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/WebSiteUsingL3/resources/TestWebSiteWithSqlBackEnd/TestWebSiteWithSqlBackEnd.bicep b/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/WebSiteUsingL3/resources/TestWebSiteWithSqlBackEnd/TestWebSiteWithSqlBackEnd.bicep index aa4406796a9d..2a750056d2b7 100644 --- a/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/WebSiteUsingL3/resources/TestWebSiteWithSqlBackEnd/TestWebSiteWithSqlBackEnd.bicep +++ b/sdk/provisioning/Azure.Provisioning/tests/Infrastructure/WebSiteUsingL3/resources/TestWebSiteWithSqlBackEnd/TestWebSiteWithSqlBackEnd.bicep @@ -7,8 +7,8 @@ param sqlAdminPassword string param appUserPassword string -resource appServicePlan_rxltck14T 'Microsoft.Web/serverfarms@2021-02-01' = { - name: 'appServicePlan-mnash-cdk' +resource appServicePlan_kjMZSF1FP 'Microsoft.Web/serverfarms@2021-02-01' = { + name: 'appServicePlan-TEST' location: 'westus' sku: { name: 'B1' @@ -18,8 +18,8 @@ resource appServicePlan_rxltck14T 'Microsoft.Web/serverfarms@2021-02-01' = { } } -resource keyVault_sofGLX66Z 'Microsoft.KeyVault/vaults@2023-02-01' = { - name: 'kv-mnash-cdk' +resource keyVault_CRoMbemLF 'Microsoft.KeyVault/vaults@2023-02-01' = { + name: 'kv-TEST' location: 'westus' tags: { key: 'value' @@ -33,13 +33,13 @@ resource keyVault_sofGLX66Z 'Microsoft.KeyVault/vaults@2023-02-01' = { } } -resource keyVaultAddAccessPolicy_k8EvVNryo 'Microsoft.KeyVault/vaults/accessPolicies@2023-02-01' = { - parent: keyVault_sofGLX66Z +resource keyVaultAddAccessPolicy_OttgS6uaT 'Microsoft.KeyVault/vaults/accessPolicies@2023-02-01' = { + parent: keyVault_CRoMbemLF name: 'add' properties: { accessPolicies: [ { - tenantId: '72f988bf-86f1-41af-91ab-2d7cd011db47' + tenantId: '00000000-0000-0000-0000-000000000000' objectId: 'TestFrontEndWebSite.outputs.SERVICE_API_IDENTITY_PRINCIPAL_ID' permissions: { secrets: [ diff --git a/sdk/provisioning/Azure.Provisioning/tests/Samples/KeyVaultOnlySample.cs b/sdk/provisioning/Azure.Provisioning/tests/Samples/KeyVaultOnlySample.cs new file mode 100644 index 000000000000..c9e6de0e8964 --- /dev/null +++ b/sdk/provisioning/Azure.Provisioning/tests/Samples/KeyVaultOnlySample.cs @@ -0,0 +1,30 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +using Azure.Provisioning.KeyVaults; + +namespace Azure.Provisioning.Tests.Samples +{ + internal class KeyVaultOnlySample + { + #region Snippet:SampleInfrastructure + public class SampleInfrastructure : Infrastructure + { + } + #endregion + + public void Sample() + { + #region Snippet:KeyVaultOnly + // Create a new infrastructure + var infrastructure = new SampleInfrastructure(); + + // Add a new key vault + var keyVault = infrastructure.AddKeyVault(); + + // You can call Build to convert the infrastructure into bicep files + infrastructure.Build(); + #endregion + } + } +} diff --git a/sdk/provisioning/ci.yml b/sdk/provisioning/ci.yml new file mode 100644 index 000000000000..dbc83f6317fe --- /dev/null +++ b/sdk/provisioning/ci.yml @@ -0,0 +1,31 @@ +# NOTE: Please refer to https://aka.ms/azsdk/engsys/ci-yaml before editing this file. + +trigger: + branches: + include: + - main + - hotfix/* + - release/* + paths: + include: + - sdk/provisioning/ + +pr: + branches: + include: + - main + - feature/* + - hotfix/* + - release/* + paths: + include: + - sdk/provisioning/ + +extends: + template: /eng/pipelines/templates/stages/archetype-sdk-client.yml + parameters: + ServiceDirectory: provisioning + ArtifactName: packages + Artifacts: + - name: Azure.Provisioning + safeName: AzureProvisioning