diff --git a/sdk/cost-management/Azure.ResourceManager.Cost-Management/Azure.ResourceManager.Cost-Management.sln b/sdk/cost-management/Azure.ResourceManager.Cost-Management/Azure.ResourceManager.Cost-Management.sln new file mode 100644 index 0000000000000..e21c571ff4d36 --- /dev/null +++ b/sdk/cost-management/Azure.ResourceManager.Cost-Management/Azure.ResourceManager.Cost-Management.sln @@ -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("{5A136D67-A567-4008-A3F5-148F631D6543}") = "Azure.ResourceManager.Cost_Management", "src\Azure.ResourceManager.Cost_Management.csproj", "{D013CFF9-01F3-4A55-BFA6-F88E732E40CB}" +EndProject +Project("{5A136D67-A567-4008-A3F5-148F631D6543}") = "Azure.ResourceManager.Cost_Management.Tests", "tests\Azure.ResourceManager.Cost_Management.Tests.csproj", "{E5DE55DB-7499-4A16-8F00-F0FBC616F62F}" +EndProject +Project("{5A136D67-A567-4008-A3F5-148F631D6543}") = "Azure.ResourceManager.Cost_Management.Samples", "samples\Azure.ResourceManager.Cost_Management.Samples.csproj", "{F5A8ECBD-CE1E-4113-BA40-A49F85AB2391}" +EndProject +Global + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {142A1CBF-339C-4264-94F4-C3FEFDAEF83F} + 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 + {D013CFF9-01F3-4A55-BFA6-F88E732E40CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D013CFF9-01F3-4A55-BFA6-F88E732E40CB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D013CFF9-01F3-4A55-BFA6-F88E732E40CB}.Debug|x64.ActiveCfg = Debug|Any CPU + {D013CFF9-01F3-4A55-BFA6-F88E732E40CB}.Debug|x64.Build.0 = Debug|Any CPU + {D013CFF9-01F3-4A55-BFA6-F88E732E40CB}.Debug|x86.ActiveCfg = Debug|Any CPU + {D013CFF9-01F3-4A55-BFA6-F88E732E40CB}.Debug|x86.Build.0 = Debug|Any CPU + {D013CFF9-01F3-4A55-BFA6-F88E732E40CB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D013CFF9-01F3-4A55-BFA6-F88E732E40CB}.Release|Any CPU.Build.0 = Release|Any CPU + {D013CFF9-01F3-4A55-BFA6-F88E732E40CB}.Release|x64.ActiveCfg = Release|Any CPU + {D013CFF9-01F3-4A55-BFA6-F88E732E40CB}.Release|x64.Build.0 = Release|Any CPU + {D013CFF9-01F3-4A55-BFA6-F88E732E40CB}.Release|x86.ActiveCfg = Release|Any CPU + {D013CFF9-01F3-4A55-BFA6-F88E732E40CB}.Release|x86.Build.0 = Release|Any CPU + {E5DE55DB-7499-4A16-8F00-F0FBC616F62F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E5DE55DB-7499-4A16-8F00-F0FBC616F62F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E5DE55DB-7499-4A16-8F00-F0FBC616F62F}.Debug|x64.ActiveCfg = Debug|Any CPU + {E5DE55DB-7499-4A16-8F00-F0FBC616F62F}.Debug|x64.Build.0 = Debug|Any CPU + {E5DE55DB-7499-4A16-8F00-F0FBC616F62F}.Debug|x86.ActiveCfg = Debug|Any CPU + {E5DE55DB-7499-4A16-8F00-F0FBC616F62F}.Debug|x86.Build.0 = Debug|Any CPU + {E5DE55DB-7499-4A16-8F00-F0FBC616F62F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E5DE55DB-7499-4A16-8F00-F0FBC616F62F}.Release|Any CPU.Build.0 = Release|Any CPU + {E5DE55DB-7499-4A16-8F00-F0FBC616F62F}.Release|x64.ActiveCfg = Release|Any CPU + {E5DE55DB-7499-4A16-8F00-F0FBC616F62F}.Release|x64.Build.0 = Release|Any CPU + {E5DE55DB-7499-4A16-8F00-F0FBC616F62F}.Release|x86.ActiveCfg = Release|Any CPU + {E5DE55DB-7499-4A16-8F00-F0FBC616F62F}.Release|x86.Build.0 = Release|Any CPU + {F5A8ECBD-CE1E-4113-BA40-A49F85AB2391}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F5A8ECBD-CE1E-4113-BA40-A49F85AB2391}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F5A8ECBD-CE1E-4113-BA40-A49F85AB2391}.Debug|x64.ActiveCfg = Debug|Any CPU + {F5A8ECBD-CE1E-4113-BA40-A49F85AB2391}.Debug|x64.Build.0 = Debug|Any CPU + {F5A8ECBD-CE1E-4113-BA40-A49F85AB2391}.Debug|x86.ActiveCfg = Debug|Any CPU + {F5A8ECBD-CE1E-4113-BA40-A49F85AB2391}.Debug|x86.Build.0 = Debug|Any CPU + {F5A8ECBD-CE1E-4113-BA40-A49F85AB2391}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F5A8ECBD-CE1E-4113-BA40-A49F85AB2391}.Release|Any CPU.Build.0 = Release|Any CPU + {F5A8ECBD-CE1E-4113-BA40-A49F85AB2391}.Release|x64.ActiveCfg = Release|Any CPU + {F5A8ECBD-CE1E-4113-BA40-A49F85AB2391}.Release|x64.Build.0 = Release|Any CPU + {F5A8ECBD-CE1E-4113-BA40-A49F85AB2391}.Release|x86.ActiveCfg = Release|Any CPU + {F5A8ECBD-CE1E-4113-BA40-A49F85AB2391}.Release|x86.Build.0 = Release|Any CPU + EndGlobalSection +EndGlobal diff --git a/sdk/cost-management/Azure.ResourceManager.Cost-Management/CHANGELOG.md b/sdk/cost-management/Azure.ResourceManager.Cost-Management/CHANGELOG.md new file mode 100644 index 0000000000000..23f86d1e896ee --- /dev/null +++ b/sdk/cost-management/Azure.ResourceManager.Cost-Management/CHANGELOG.md @@ -0,0 +1,17 @@ +# Release History + +## 1.0.0-beta.1 (Unreleased) + +### General New Features + +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). \ No newline at end of file diff --git a/sdk/cost-management/Azure.ResourceManager.Cost-Management/Directory.Build.props b/sdk/cost-management/Azure.ResourceManager.Cost-Management/Directory.Build.props new file mode 100644 index 0000000000000..1a9611bd49242 --- /dev/null +++ b/sdk/cost-management/Azure.ResourceManager.Cost-Management/Directory.Build.props @@ -0,0 +1,6 @@ + + + + diff --git a/sdk/cost-management/Azure.ResourceManager.Cost-Management/README.md b/sdk/cost-management/Azure.ResourceManager.Cost-Management/README.md new file mode 100644 index 0000000000000..4d21eaefa9247 --- /dev/null +++ b/sdk/cost-management/Azure.ResourceManager.Cost-Management/README.md @@ -0,0 +1,80 @@ +# Microsoft Azure cost-management 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 cost-management management library for .NET with [NuGet](https://www.nuget.org/): + +```dotnetcli +dotnet add package Azure.ResourceManager.Cost_Management --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 . + +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/ \ No newline at end of file diff --git a/sdk/cost-management/Azure.ResourceManager.Cost-Management/samples/Azure.ResourceManager.Cost-Management.Samples.csproj b/sdk/cost-management/Azure.ResourceManager.Cost-Management/samples/Azure.ResourceManager.Cost-Management.Samples.csproj new file mode 100644 index 0000000000000..3148fc6da266a --- /dev/null +++ b/sdk/cost-management/Azure.ResourceManager.Cost-Management/samples/Azure.ResourceManager.Cost-Management.Samples.csproj @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/sdk/cost-management/Azure.ResourceManager.Cost-Management/samples/autorest.tests.md b/sdk/cost-management/Azure.ResourceManager.Cost-Management/samples/autorest.tests.md new file mode 100644 index 0000000000000..b334fcb630486 --- /dev/null +++ b/sdk/cost-management/Azure.ResourceManager.Cost-Management/samples/autorest.tests.md @@ -0,0 +1,13 @@ +# Generated code configuration + +Run `dotnet build /t:GenerateTests` to generate code. + +# Azure.ResourceManager.cost-management.Tests + +> see https://aka.ms/autorest +``` yaml +require: ../src/autorest.md +include-x-ms-examples-original-file: true +testgen: + sample: true +``` \ No newline at end of file diff --git a/sdk/cost-management/Azure.ResourceManager.Cost-Management/src/Azure.ResourceManager.Cost-Management.csproj b/sdk/cost-management/Azure.ResourceManager.Cost-Management/src/Azure.ResourceManager.Cost-Management.csproj new file mode 100644 index 0000000000000..eaa6546ccd9fb --- /dev/null +++ b/sdk/cost-management/Azure.ResourceManager.Cost-Management/src/Azure.ResourceManager.Cost-Management.csproj @@ -0,0 +1,8 @@ + + + 1.0.0-beta.1 + Azure.ResourceManager.Cost_Management + Azure Resource Manager client SDK for Azure resource provider cost-management. + azure;management;arm;resource manager;cost-management + + diff --git a/sdk/cost-management/Azure.ResourceManager.Cost-Management/src/Properties/AssemblyInfo.cs b/sdk/cost-management/Azure.ResourceManager.Cost-Management/src/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000000..2a70af645c868 --- /dev/null +++ b/sdk/cost-management/Azure.ResourceManager.Cost-Management/src/Properties/AssemblyInfo.cs @@ -0,0 +1,9 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +using System.Runtime.CompilerServices; + +[assembly: Azure.Core.AzureResourceProviderNamespace("cost-management")] + +[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")] +[assembly: InternalsVisibleTo("Azure.ResourceManager.Cost_Management.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100d15ddcb29688295338af4b7686603fe614abd555e09efba8fb88ee09e1f7b1ccaeed2e8f823fa9eef3fdd60217fc012ea67d2479751a0b8c087a4185541b851bd8b16f8d91b840e51b1cb0ba6fe647997e57429265e85ef62d565db50a69ae1647d54d7bd855e4db3d8a91510e5bcbd0edfbbecaa20a7bd9ae74593daa7b11b4")] diff --git a/sdk/cost-management/Azure.ResourceManager.Cost-Management/src/autorest.md b/sdk/cost-management/Azure.ResourceManager.Cost-Management/src/autorest.md new file mode 100644 index 0000000000000..f0110fcfe55c7 --- /dev/null +++ b/sdk/cost-management/Azure.ResourceManager.Cost-Management/src/autorest.md @@ -0,0 +1,49 @@ +# Generated code configuration + +Run `dotnet build /t:GenerateCode` to generate code. + +``` yaml +azure-arm: true +csharp: true +library-name: cost-management +namespace: Azure.ResourceManager.cost-management +require: /mnt/vss/_work/1/s/azure-rest-api-specs/specification/cost-management/resource-manager/readme.md +output-folder: $(this-folder)/Generated +clear-output-folder: true +skip-csproj: true +modelerfour: + flatten-payloads: false + + + +format-by-name-rules: + 'tenantId': 'uuid' + 'ETag': 'etag' + 'location': 'azure-location' + '*Uri': 'Uri' + '*Uris': 'Uri' + +rename-rules: + CPU: Cpu + CPUs: Cpus + Os: OS + Ip: IP + Ips: IPs|ips + ID: Id + IDs: Ids + VM: Vm + VMs: Vms + Vmos: VmOS + VMScaleSet: VmScaleSet + DNS: Dns + VPN: Vpn + NAT: Nat + WAN: Wan + Ipv4: IPv4|ipv4 + Ipv6: IPv6|ipv6 + Ipsec: IPsec|ipsec + SSO: Sso + URI: Uri + Etag: ETag|etag + +``` diff --git a/sdk/cost-management/Azure.ResourceManager.Cost-Management/tests/Azure.ResourceManager.Cost-Management.Tests.csproj b/sdk/cost-management/Azure.ResourceManager.Cost-Management/tests/Azure.ResourceManager.Cost-Management.Tests.csproj new file mode 100644 index 0000000000000..aaa3a0687254e --- /dev/null +++ b/sdk/cost-management/Azure.ResourceManager.Cost-Management/tests/Azure.ResourceManager.Cost-Management.Tests.csproj @@ -0,0 +1,5 @@ + + + + + diff --git a/sdk/cost-management/Azure.ResourceManager.Cost-Management/tests/cost-managementManagementTestBase.cs b/sdk/cost-management/Azure.ResourceManager.Cost-Management/tests/cost-managementManagementTestBase.cs new file mode 100644 index 0000000000000..c5ea217e6907f --- /dev/null +++ b/sdk/cost-management/Azure.ResourceManager.Cost-Management/tests/cost-managementManagementTestBase.cs @@ -0,0 +1,43 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +using Azure.Core; +using Azure.Core.TestFramework; +using Azure.ResourceManager.Resources; +using Azure.ResourceManager.TestFramework; +using NUnit.Framework; +using System.Threading.Tasks; + +namespace Azure.ResourceManager.Cost_Management.Tests +{ + public class cost-managementManagementTestBase : ManagementRecordedTestBase + { + protected ArmClient Client { get; private set; } + protected SubscriptionResource DefaultSubscription { get; private set; } + + protected cost-managementManagementTestBase(bool isAsync, RecordedTestMode mode) + : base(isAsync, mode) + { + } + + protected cost-managementManagementTestBase(bool isAsync) + : base(isAsync) + { + } + + [SetUp] + public async Task CreateCommonClient() + { + Client = GetArmClient(); + DefaultSubscription = await Client.GetDefaultSubscriptionAsync().ConfigureAwait(false); + } + + protected async Task CreateResourceGroup(SubscriptionResource subscription, string rgNamePrefix, AzureLocation location) + { + string rgName = Recording.GenerateAssetName(rgNamePrefix); + ResourceGroupData input = new ResourceGroupData(location); + var lro = await subscription.GetResourceGroups().CreateOrUpdateAsync(WaitUntil.Completed, rgName, input); + return lro.Value; + } + } +} diff --git a/sdk/cost-management/Azure.ResourceManager.Cost-Management/tests/cost-managementManagementTestEnvironment.cs b/sdk/cost-management/Azure.ResourceManager.Cost-Management/tests/cost-managementManagementTestEnvironment.cs new file mode 100644 index 0000000000000..edcd8a4474f4e --- /dev/null +++ b/sdk/cost-management/Azure.ResourceManager.Cost-Management/tests/cost-managementManagementTestEnvironment.cs @@ -0,0 +1,11 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +using Azure.Core.TestFramework; + +namespace Azure.ResourceManager.Cost_Management.Tests +{ + public class cost-managementManagementTestEnvironment : TestEnvironment + { + } +} \ No newline at end of file diff --git a/sdk/cost-management/ci.mgmt.yml b/sdk/cost-management/ci.mgmt.yml new file mode 100644 index 0000000000000..50a6c3beb5433 --- /dev/null +++ b/sdk/cost-management/ci.mgmt.yml @@ -0,0 +1,24 @@ +# NOTE: Please refer to https://aka.ms/azsdk/engsys/ci-yaml before editing this file. + +trigger: none + +pr: + branches: + include: + - main + - feature/* + - hotfix/* + - release/* + paths: + include: + - sdk/cost-management/ci.mgmt.yml + - sdk/cost-management/Azure.ResourceManager.Cost_Management/ + +extends: + template: /eng/pipelines/templates/stages/archetype-sdk-client.yml + parameters: + ServiceDirectory: cost-management + LimitForPullRequest: true + Artifacts: + - name: Azure.ResourceManager.Cost_Management + safeName: AzureResourceManagerCost-Management