Skip to content

Initial release for Azure.ResourceManager.Resources.Bicep #50751

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .vscode/cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@
"cpus",
"cref",
"Dapr",
"decompile",
"deduplication",
"deletesas",
"deserializable",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.30309.148
MinimumVisualStudioVersion = 10.0.40219.1
Project("{C4398841-2364-4283-9193-6436A82922AA}") = "Azure.ResourceManager.Resources.Bicep", "src\Azure.ResourceManager.Resources.Bicep.csproj", "{67A00D95-333C-481C-8F00-C5E096E6AEB2}"
EndProject
Project("{C4398841-2364-4283-9193-6436A82922AA}") = "Azure.ResourceManager.Resources.Bicep.Tests", "tests\Azure.ResourceManager.Resources.Bicep.Tests.csproj", "{FFDAD11E-3374-405A-878A-853F23D8C501}"
EndProject
Project("{C4398841-2364-4283-9193-6436A82922AA}") = "Azure.ResourceManager.Resources.Bicep.Samples", "samples\Azure.ResourceManager.Resources.Bicep.Samples.csproj", "{597D41E8-3180-41D3-9B87-B16908E85E15}"
EndProject
Global
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {3E85CC71-2C11-4582-95B4-1363982FBC1E}
EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{67A00D95-333C-481C-8F00-C5E096E6AEB2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{67A00D95-333C-481C-8F00-C5E096E6AEB2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{67A00D95-333C-481C-8F00-C5E096E6AEB2}.Debug|x64.ActiveCfg = Debug|Any CPU
{67A00D95-333C-481C-8F00-C5E096E6AEB2}.Debug|x64.Build.0 = Debug|Any CPU
{67A00D95-333C-481C-8F00-C5E096E6AEB2}.Debug|x86.ActiveCfg = Debug|Any CPU
{67A00D95-333C-481C-8F00-C5E096E6AEB2}.Debug|x86.Build.0 = Debug|Any CPU
{67A00D95-333C-481C-8F00-C5E096E6AEB2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{67A00D95-333C-481C-8F00-C5E096E6AEB2}.Release|Any CPU.Build.0 = Release|Any CPU
{67A00D95-333C-481C-8F00-C5E096E6AEB2}.Release|x64.ActiveCfg = Release|Any CPU
{67A00D95-333C-481C-8F00-C5E096E6AEB2}.Release|x64.Build.0 = Release|Any CPU
{67A00D95-333C-481C-8F00-C5E096E6AEB2}.Release|x86.ActiveCfg = Release|Any CPU
{67A00D95-333C-481C-8F00-C5E096E6AEB2}.Release|x86.Build.0 = Release|Any CPU
{FFDAD11E-3374-405A-878A-853F23D8C501}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FFDAD11E-3374-405A-878A-853F23D8C501}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FFDAD11E-3374-405A-878A-853F23D8C501}.Debug|x64.ActiveCfg = Debug|Any CPU
{FFDAD11E-3374-405A-878A-853F23D8C501}.Debug|x64.Build.0 = Debug|Any CPU
{FFDAD11E-3374-405A-878A-853F23D8C501}.Debug|x86.ActiveCfg = Debug|Any CPU
{FFDAD11E-3374-405A-878A-853F23D8C501}.Debug|x86.Build.0 = Debug|Any CPU
{FFDAD11E-3374-405A-878A-853F23D8C501}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FFDAD11E-3374-405A-878A-853F23D8C501}.Release|Any CPU.Build.0 = Release|Any CPU
{FFDAD11E-3374-405A-878A-853F23D8C501}.Release|x64.ActiveCfg = Release|Any CPU
{FFDAD11E-3374-405A-878A-853F23D8C501}.Release|x64.Build.0 = Release|Any CPU
{FFDAD11E-3374-405A-878A-853F23D8C501}.Release|x86.ActiveCfg = Release|Any CPU
{FFDAD11E-3374-405A-878A-853F23D8C501}.Release|x86.Build.0 = Release|Any CPU
{597D41E8-3180-41D3-9B87-B16908E85E15}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{597D41E8-3180-41D3-9B87-B16908E85E15}.Debug|Any CPU.Build.0 = Debug|Any CPU
{597D41E8-3180-41D3-9B87-B16908E85E15}.Debug|x64.ActiveCfg = Debug|Any CPU
{597D41E8-3180-41D3-9B87-B16908E85E15}.Debug|x64.Build.0 = Debug|Any CPU
{597D41E8-3180-41D3-9B87-B16908E85E15}.Debug|x86.ActiveCfg = Debug|Any CPU
{597D41E8-3180-41D3-9B87-B16908E85E15}.Debug|x86.Build.0 = Debug|Any CPU
{597D41E8-3180-41D3-9B87-B16908E85E15}.Release|Any CPU.ActiveCfg = Release|Any CPU
{597D41E8-3180-41D3-9B87-B16908E85E15}.Release|Any CPU.Build.0 = Release|Any CPU
{597D41E8-3180-41D3-9B87-B16908E85E15}.Release|x64.ActiveCfg = Release|Any CPU
{597D41E8-3180-41D3-9B87-B16908E85E15}.Release|x64.Build.0 = Release|Any CPU
{597D41E8-3180-41D3-9B87-B16908E85E15}.Release|x86.ActiveCfg = Release|Any CPU
{597D41E8-3180-41D3-9B87-B16908E85E15}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Release History

## 1.0.0-beta.1 (Unreleased)



### Features Added

This package follows the [new Azure SDK guidelines](https://azure.github.io/azure-sdk/general_introduction.html), and provides many core capabilities:

- Support MSAL.NET, Azure.Identity is out of box for supporting MSAL.NET.
- Support [OpenTelemetry](https://opentelemetry.io/) for distributed tracing.
- HTTP pipeline with custom policies.
- Better error-handling.
- Support uniform telemetry across all languages.

This package is a Public Preview version, so expect incompatible changes in subsequent releases as we improve the product. To provide feedback, submit an issue in our [Azure SDK for .NET GitHub repo](https://github.com/Azure/azure-sdk-for-net/issues).

> NOTE: For more information about unified authentication, please refer to [Microsoft Azure Identity documentation for .NET](https://docs.microsoft.com//dotnet/api/overview/azure/identity-readme?view=azure-dotnet).
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!--
Add any shared properties you want for the projects under this package directory that need to be set before the auto imported Directory.Build.props
-->
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory).., Directory.Build.props))\Directory.Build.props" />
</Project>
80 changes: 80 additions & 0 deletions sdk/resources/Azure.ResourceManager.Resources.Bicep/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# Microsoft Azure Bicep management client library for .NET

**[Describe the service briefly first.]**

This library follows the [new Azure SDK guidelines](https://azure.github.io/azure-sdk/general_introduction.html), and provides many core capabilities:

- Support MSAL.NET, Azure.Identity is out of box for supporting MSAL.NET.
- Support [OpenTelemetry](https://opentelemetry.io/) for distributed tracing.
- HTTP pipeline with custom policies.
- Better error-handling.
- Support uniform telemetry across all languages.

## Getting started

### Install the package

Install the Microsoft Azure Bicep management library for .NET with [NuGet](https://www.nuget.org/):

```dotnetcli
dotnet add package Azure.ResourceManager.Resources.Bicep --prerelease
```

### Prerequisites

* You must have an [Microsoft Azure subscription](https://azure.microsoft.com/free/dotnet/).

### Authenticate the Client

To create an authenticated client and start interacting with Microsoft Azure resources, see the [quickstart guide here](https://github.com/Azure/azure-sdk-for-net/blob/main/doc/dev/mgmt_quickstart.md).

## Key concepts

Key concepts of the Microsoft Azure SDK for .NET can be found [here](https://azure.github.io/azure-sdk/dotnet_introduction.html)

## Documentation

Documentation is available to help you learn how to use this package:

- [Quickstart](https://github.com/Azure/azure-sdk-for-net/blob/main/doc/dev/mgmt_quickstart.md).
- [API References](https://docs.microsoft.com/dotnet/api/?view=azure-dotnet).
- [Authentication](https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/identity/Azure.Identity/README.md).

## Examples

Code samples for using the management library for .NET can be found in the following locations
- [.NET Management Library Code Samples](https://aka.ms/azuresdk-net-mgmt-samples)

## 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

For more information about Microsoft Azure SDK, see [this website](https://azure.github.io/azure-sdk/).

## 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 <https://cla.microsoft.com>.

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
<opencode@microsoft.com> with any other questions or comments.

<!-- LINKS -->
[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/
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
namespace Azure.ResourceManager.Resources.Bicep
{
public partial class AzureResourceManagerResourcesBicepContext : System.ClientModel.Primitives.ModelReaderWriterContext
{
internal AzureResourceManagerResourcesBicepContext() { }
public static Azure.ResourceManager.Resources.Bicep.AzureResourceManagerResourcesBicepContext Default { get { throw null; } }
protected override bool TryGetTypeBuilderCore(System.Type type, out System.ClientModel.Primitives.ModelReaderWriterTypeBuilder builder) { throw null; }
}
public static partial class ResourcesBicepExtensions
{
public static Azure.Response<Azure.ResourceManager.Resources.Bicep.Models.DecompileOperationSuccessResponse> BicepDecompileOperationGroup(this Azure.ResourceManager.Resources.SubscriptionResource subscriptionResource, Azure.ResourceManager.Resources.Bicep.Models.DecompileOperationContent content, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it would be more reasonable if we rename this to DecompileBicep.

public static System.Threading.Tasks.Task<Azure.Response<Azure.ResourceManager.Resources.Bicep.Models.DecompileOperationSuccessResponse>> BicepDecompileOperationGroupAsync(this Azure.ResourceManager.Resources.SubscriptionResource subscriptionResource, Azure.ResourceManager.Resources.Bicep.Models.DecompileOperationContent content, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
}
}
namespace Azure.ResourceManager.Resources.Bicep.Mocking
{
public partial class MockableResourcesBicepSubscriptionResource : Azure.ResourceManager.ArmResource
{
protected MockableResourcesBicepSubscriptionResource() { }
public virtual Azure.Response<Azure.ResourceManager.Resources.Bicep.Models.DecompileOperationSuccessResponse> BicepDecompileOperationGroup(Azure.ResourceManager.Resources.Bicep.Models.DecompileOperationContent content, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
public virtual System.Threading.Tasks.Task<Azure.Response<Azure.ResourceManager.Resources.Bicep.Models.DecompileOperationSuccessResponse>> BicepDecompileOperationGroupAsync(Azure.ResourceManager.Resources.Bicep.Models.DecompileOperationContent content, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
}
}
namespace Azure.ResourceManager.Resources.Bicep.Models
{
public static partial class ArmResourcesBicepModelFactory
{
public static Azure.ResourceManager.Resources.Bicep.Models.DecompileOperationSuccessResponse DecompileOperationSuccessResponse(System.Collections.Generic.IEnumerable<Azure.ResourceManager.Resources.Bicep.Models.FileDefinition> files = null, string entryPoint = null) { throw null; }
public static Azure.ResourceManager.Resources.Bicep.Models.FileDefinition FileDefinition(string path = null, string contents = null) { throw null; }
}
public partial class DecompileOperationContent : System.ClientModel.Primitives.IJsonModel<Azure.ResourceManager.Resources.Bicep.Models.DecompileOperationContent>, System.ClientModel.Primitives.IPersistableModel<Azure.ResourceManager.Resources.Bicep.Models.DecompileOperationContent>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it would be more reasonable if we rename this to DecompileBicepContent.

{
public DecompileOperationContent(string template) { }
public string Template { get { throw null; } }
protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { }
Azure.ResourceManager.Resources.Bicep.Models.DecompileOperationContent System.ClientModel.Primitives.IJsonModel<Azure.ResourceManager.Resources.Bicep.Models.DecompileOperationContent>.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; }
void System.ClientModel.Primitives.IJsonModel<Azure.ResourceManager.Resources.Bicep.Models.DecompileOperationContent>.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { }
Azure.ResourceManager.Resources.Bicep.Models.DecompileOperationContent System.ClientModel.Primitives.IPersistableModel<Azure.ResourceManager.Resources.Bicep.Models.DecompileOperationContent>.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; }
string System.ClientModel.Primitives.IPersistableModel<Azure.ResourceManager.Resources.Bicep.Models.DecompileOperationContent>.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; }
System.BinaryData System.ClientModel.Primitives.IPersistableModel<Azure.ResourceManager.Resources.Bicep.Models.DecompileOperationContent>.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; }
}
public partial class DecompileOperationSuccessResponse : System.ClientModel.Primitives.IJsonModel<Azure.ResourceManager.Resources.Bicep.Models.DecompileOperationSuccessResponse>, System.ClientModel.Primitives.IPersistableModel<Azure.ResourceManager.Resources.Bicep.Models.DecompileOperationSuccessResponse>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Usually types in .net SDK should not end with Response. Could we rename this to DecompileBicepSuccessResult?

{
internal DecompileOperationSuccessResponse() { }
public string EntryPoint { get { throw null; } }
public System.Collections.Generic.IReadOnlyList<Azure.ResourceManager.Resources.Bicep.Models.FileDefinition> Files { get { throw null; } }
protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { }
Azure.ResourceManager.Resources.Bicep.Models.DecompileOperationSuccessResponse System.ClientModel.Primitives.IJsonModel<Azure.ResourceManager.Resources.Bicep.Models.DecompileOperationSuccessResponse>.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; }
void System.ClientModel.Primitives.IJsonModel<Azure.ResourceManager.Resources.Bicep.Models.DecompileOperationSuccessResponse>.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { }
Azure.ResourceManager.Resources.Bicep.Models.DecompileOperationSuccessResponse System.ClientModel.Primitives.IPersistableModel<Azure.ResourceManager.Resources.Bicep.Models.DecompileOperationSuccessResponse>.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; }
string System.ClientModel.Primitives.IPersistableModel<Azure.ResourceManager.Resources.Bicep.Models.DecompileOperationSuccessResponse>.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; }
System.BinaryData System.ClientModel.Primitives.IPersistableModel<Azure.ResourceManager.Resources.Bicep.Models.DecompileOperationSuccessResponse>.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; }
}
public partial class FileDefinition : System.ClientModel.Primitives.IJsonModel<Azure.ResourceManager.Resources.Bicep.Models.FileDefinition>, System.ClientModel.Primitives.IPersistableModel<Azure.ResourceManager.Resources.Bicep.Models.FileDefinition>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shall we rename this to BicepFileDefinition?

{
internal FileDefinition() { }
public string Contents { get { throw null; } }
public string Path { get { throw null; } }
protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { }
Azure.ResourceManager.Resources.Bicep.Models.FileDefinition System.ClientModel.Primitives.IJsonModel<Azure.ResourceManager.Resources.Bicep.Models.FileDefinition>.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; }
void System.ClientModel.Primitives.IJsonModel<Azure.ResourceManager.Resources.Bicep.Models.FileDefinition>.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { }
Azure.ResourceManager.Resources.Bicep.Models.FileDefinition System.ClientModel.Primitives.IPersistableModel<Azure.ResourceManager.Resources.Bicep.Models.FileDefinition>.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; }
string System.ClientModel.Primitives.IPersistableModel<Azure.ResourceManager.Resources.Bicep.Models.FileDefinition>.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; }
System.BinaryData System.ClientModel.Primitives.IPersistableModel<Azure.ResourceManager.Resources.Bicep.Models.FileDefinition>.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; }
}
}
Loading