From a5177ae6f44512ad6d5bd5d6e3fe8e9f3d44c6cd Mon Sep 17 00:00:00 2001
From: almasak <162407742+almasak@users.noreply.github.com>
Date: Wed, 13 Nov 2024 23:54:13 +0530
Subject: [PATCH 1/5] NeonPostgres .NET SDK
* Initial Commit
---
.github/CODEOWNERS | 6 +
.../Azure.ResourceManager.NeonPostgres.sln | 65 ++
.../CHANGELOG.md | 19 +
.../Directory.Build.props | 6 +
.../README.md | 84 ++
.../assets.json | 6 +
...esourceManager.NeonPostgres.Samples.csproj | 10 +
.../Azure.ResourceManager.NeonPostgres.csproj | 8 +
.../Generated/ArmNeonPostgresModelFactory.cs | 61 ++
.../MockableNeonPostgresArmClient.cs | 49 ++
...ckableNeonPostgresResourceGroupResource.cs | 105 +++
...ockableNeonPostgresSubscriptionResource.cs | 102 +++
.../Extensions/NeonPostgresExtensions.cs | 219 ++++++
.../src/Generated/Internal/Argument.cs | 129 ++++
.../Internal/ChangeTrackingDictionary.cs | 167 ++++
.../Generated/Internal/ChangeTrackingList.cs | 153 ++++
.../Internal/ModelSerializationExtensions.cs | 398 ++++++++++
.../src/Generated/Internal/Optional.cs | 51 ++
.../Internal/Utf8JsonRequestContent.cs | 55 ++
.../NeonOrganizationOperationSource.cs | 38 +
.../NeonPostgresArmOperation.cs | 94 +++
.../NeonPostgresArmOperationOfT.cs | 100 +++
.../Models/MarketplaceSubscriptionStatus.cs | 57 ++
.../NeonCompanyDetails.Serialization.cs | 195 +++++
.../Generated/Models/NeonCompanyDetails.cs | 85 ++
.../NeonMarketplaceDetails.Serialization.cs | 152 ++++
.../Models/NeonMarketplaceDetails.cs | 83 ++
.../Models/NeonOfferDetails.Serialization.cs | 182 +++++
.../src/Generated/Models/NeonOfferDetails.cs | 101 +++
...NeonOrganizationPropertes.Serialization.cs | 178 +++++
.../Models/NeonOrganizationPropertes.cs | 97 +++
.../Models/NeonResourceProvisioningState.cs | 54 ++
...eonSingleSignOnProperties.Serialization.cs | 180 +++++
.../Models/NeonSingleSignOnProperties.cs | 78 ++
.../Generated/Models/NeonSingleSignOnState.cs | 54 ++
.../Models/NeonUserDetails.Serialization.cs | 179 +++++
.../src/Generated/Models/NeonUserDetails.cs | 81 ++
...izationResourceListResult.Serialization.cs | 151 ++++
.../Models/OrganizationResourceListResult.cs | 80 ++
...nerOrganizationProperties.Serialization.cs | 152 ++++
.../Models/PartnerOrganizationProperties.cs | 83 ++
.../Generated/NeonOrganizationCollection.cs | 494 ++++++++++++
.../NeonOrganizationData.Serialization.cs | 178 +++++
.../src/Generated/NeonOrganizationData.cs | 83 ++
.../NeonOrganizationResource.Serialization.cs | 26 +
.../src/Generated/NeonOrganizationResource.cs | 706 +++++++++++++++++
.../src/Generated/ProviderConstants.cs | 16 +
.../OrganizationsRestOperations.cs | 723 ++++++++++++++++++
.../src/Properties/AssemblyInfo.cs | 9 +
....ResourceManager.NeonPostgres.Tests.csproj | 5 +
.../tests/NeonPostgresManagementTestBase.cs | 43 ++
.../NeonPostgresManagementTestEnvironment.cs | 11 +
.../tsp-location.yaml | 3 +
sdk/neonpostgres/ci.mgmt.yml | 24 +
54 files changed, 6468 insertions(+)
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/Azure.ResourceManager.NeonPostgres.sln
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/CHANGELOG.md
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/Directory.Build.props
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/README.md
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/assets.json
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/samples/Azure.ResourceManager.NeonPostgres.Samples.csproj
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Azure.ResourceManager.NeonPostgres.csproj
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/ArmNeonPostgresModelFactory.cs
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Extensions/MockableNeonPostgresArmClient.cs
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Extensions/MockableNeonPostgresResourceGroupResource.cs
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Extensions/MockableNeonPostgresSubscriptionResource.cs
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Extensions/NeonPostgresExtensions.cs
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Internal/Argument.cs
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Internal/ChangeTrackingDictionary.cs
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Internal/ChangeTrackingList.cs
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Internal/ModelSerializationExtensions.cs
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Internal/Optional.cs
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Internal/Utf8JsonRequestContent.cs
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/LongRunningOperation/NeonOrganizationOperationSource.cs
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/LongRunningOperation/NeonPostgresArmOperation.cs
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/LongRunningOperation/NeonPostgresArmOperationOfT.cs
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Models/MarketplaceSubscriptionStatus.cs
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Models/NeonCompanyDetails.Serialization.cs
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Models/NeonCompanyDetails.cs
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Models/NeonMarketplaceDetails.Serialization.cs
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Models/NeonMarketplaceDetails.cs
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Models/NeonOfferDetails.Serialization.cs
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Models/NeonOfferDetails.cs
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Models/NeonOrganizationPropertes.Serialization.cs
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Models/NeonOrganizationPropertes.cs
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Models/NeonResourceProvisioningState.cs
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Models/NeonSingleSignOnProperties.Serialization.cs
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Models/NeonSingleSignOnProperties.cs
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Models/NeonSingleSignOnState.cs
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Models/NeonUserDetails.Serialization.cs
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Models/NeonUserDetails.cs
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Models/OrganizationResourceListResult.Serialization.cs
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Models/OrganizationResourceListResult.cs
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Models/PartnerOrganizationProperties.Serialization.cs
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Models/PartnerOrganizationProperties.cs
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/NeonOrganizationCollection.cs
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/NeonOrganizationData.Serialization.cs
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/NeonOrganizationData.cs
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/NeonOrganizationResource.Serialization.cs
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/NeonOrganizationResource.cs
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/ProviderConstants.cs
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/RestOperations/OrganizationsRestOperations.cs
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Properties/AssemblyInfo.cs
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/tests/Azure.ResourceManager.NeonPostgres.Tests.csproj
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/tests/NeonPostgresManagementTestBase.cs
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/tests/NeonPostgresManagementTestEnvironment.cs
create mode 100644 sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/tsp-location.yaml
create mode 100644 sdk/neonpostgres/ci.mgmt.yml
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index a0f851f68e0b..c512fc42e011 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -1003,6 +1003,12 @@
# ServiceLabel: %Large Instance %Mgmt
# ServiceOwners: @8Gitbrix
+# PRLabel: %Neon Postgres
+/sdk/neonpostgres/Azure.ResourceManager.*/ @almasak
+
+# ServiceLabel: %Neon Postgres %Mgmt
+# ServiceOwners: @almasak
+
# PRLabel: %Network - CDN
/sdk/cdn/Azure.ResourceManager.*/ @ptnan7
diff --git a/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/Azure.ResourceManager.NeonPostgres.sln b/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/Azure.ResourceManager.NeonPostgres.sln
new file mode 100644
index 000000000000..e023f7cc3093
--- /dev/null
+++ b/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/Azure.ResourceManager.NeonPostgres.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("{B572BAAD-0D4F-4AD9-8B3A-505A171C7A37}") = "Azure.ResourceManager.NeonPostgres", "src\Azure.ResourceManager.NeonPostgres.csproj", "{82F01D64-CB06-4F3A-ADE3-F0A1B82EF068}"
+EndProject
+Project("{B572BAAD-0D4F-4AD9-8B3A-505A171C7A37}") = "Azure.ResourceManager.NeonPostgres.Tests", "tests\Azure.ResourceManager.NeonPostgres.Tests.csproj", "{307BCD2D-A761-4156-8284-B821130D18D1}"
+EndProject
+Project("{B572BAAD-0D4F-4AD9-8B3A-505A171C7A37}") = "Azure.ResourceManager.NeonPostgres.Samples", "samples\Azure.ResourceManager.NeonPostgres.Samples.csproj", "{2F3CC342-8ECE-4C5F-B3E8-EA7E157ED20F}"
+EndProject
+Global
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {9E3460F6-1887-4CE9-BCF8-C22E1D6DB9A6}
+ 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
+ {82F01D64-CB06-4F3A-ADE3-F0A1B82EF068}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {82F01D64-CB06-4F3A-ADE3-F0A1B82EF068}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {82F01D64-CB06-4F3A-ADE3-F0A1B82EF068}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {82F01D64-CB06-4F3A-ADE3-F0A1B82EF068}.Debug|x64.Build.0 = Debug|Any CPU
+ {82F01D64-CB06-4F3A-ADE3-F0A1B82EF068}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {82F01D64-CB06-4F3A-ADE3-F0A1B82EF068}.Debug|x86.Build.0 = Debug|Any CPU
+ {82F01D64-CB06-4F3A-ADE3-F0A1B82EF068}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {82F01D64-CB06-4F3A-ADE3-F0A1B82EF068}.Release|Any CPU.Build.0 = Release|Any CPU
+ {82F01D64-CB06-4F3A-ADE3-F0A1B82EF068}.Release|x64.ActiveCfg = Release|Any CPU
+ {82F01D64-CB06-4F3A-ADE3-F0A1B82EF068}.Release|x64.Build.0 = Release|Any CPU
+ {82F01D64-CB06-4F3A-ADE3-F0A1B82EF068}.Release|x86.ActiveCfg = Release|Any CPU
+ {82F01D64-CB06-4F3A-ADE3-F0A1B82EF068}.Release|x86.Build.0 = Release|Any CPU
+ {307BCD2D-A761-4156-8284-B821130D18D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {307BCD2D-A761-4156-8284-B821130D18D1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {307BCD2D-A761-4156-8284-B821130D18D1}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {307BCD2D-A761-4156-8284-B821130D18D1}.Debug|x64.Build.0 = Debug|Any CPU
+ {307BCD2D-A761-4156-8284-B821130D18D1}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {307BCD2D-A761-4156-8284-B821130D18D1}.Debug|x86.Build.0 = Debug|Any CPU
+ {307BCD2D-A761-4156-8284-B821130D18D1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {307BCD2D-A761-4156-8284-B821130D18D1}.Release|Any CPU.Build.0 = Release|Any CPU
+ {307BCD2D-A761-4156-8284-B821130D18D1}.Release|x64.ActiveCfg = Release|Any CPU
+ {307BCD2D-A761-4156-8284-B821130D18D1}.Release|x64.Build.0 = Release|Any CPU
+ {307BCD2D-A761-4156-8284-B821130D18D1}.Release|x86.ActiveCfg = Release|Any CPU
+ {307BCD2D-A761-4156-8284-B821130D18D1}.Release|x86.Build.0 = Release|Any CPU
+ {2F3CC342-8ECE-4C5F-B3E8-EA7E157ED20F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2F3CC342-8ECE-4C5F-B3E8-EA7E157ED20F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2F3CC342-8ECE-4C5F-B3E8-EA7E157ED20F}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {2F3CC342-8ECE-4C5F-B3E8-EA7E157ED20F}.Debug|x64.Build.0 = Debug|Any CPU
+ {2F3CC342-8ECE-4C5F-B3E8-EA7E157ED20F}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {2F3CC342-8ECE-4C5F-B3E8-EA7E157ED20F}.Debug|x86.Build.0 = Debug|Any CPU
+ {2F3CC342-8ECE-4C5F-B3E8-EA7E157ED20F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2F3CC342-8ECE-4C5F-B3E8-EA7E157ED20F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2F3CC342-8ECE-4C5F-B3E8-EA7E157ED20F}.Release|x64.ActiveCfg = Release|Any CPU
+ {2F3CC342-8ECE-4C5F-B3E8-EA7E157ED20F}.Release|x64.Build.0 = Release|Any CPU
+ {2F3CC342-8ECE-4C5F-B3E8-EA7E157ED20F}.Release|x86.ActiveCfg = Release|Any CPU
+ {2F3CC342-8ECE-4C5F-B3E8-EA7E157ED20F}.Release|x86.Build.0 = Release|Any CPU
+ EndGlobalSection
+EndGlobal
diff --git a/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/CHANGELOG.md b/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/CHANGELOG.md
new file mode 100644
index 000000000000..9fb488d738c8
--- /dev/null
+++ b/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/CHANGELOG.md
@@ -0,0 +1,19 @@
+# Release History
+
+## 1.0.0-beta.1 (2024-11-22)
+
+
+
+### 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).
diff --git a/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/Directory.Build.props b/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/Directory.Build.props
new file mode 100644
index 000000000000..1a9611bd4924
--- /dev/null
+++ b/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/Directory.Build.props
@@ -0,0 +1,6 @@
+
+
+
+
diff --git a/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/README.md b/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/README.md
new file mode 100644
index 000000000000..9dc2f33b462f
--- /dev/null
+++ b/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/README.md
@@ -0,0 +1,84 @@
+# Microsoft Azure NeonPostgres management client library for .NET
+
+Neon is a modern Postgres database service that takes the world’s most-loved database and delivers it as a serverless platform designed to optimize both performance and cost. It eliminates the need for manual server resizing by offering compute and storage autoscaling, including scale-to-zero for inactive databases to save costs. Additionally, Neon supports database branching, enabling iterative CI/CD workflows and instant point-in-time recovery.
+
+Efficient autoscaling for Postgres. Neon’s autoscaling adjusts resources dynamically based on actual usage, boosting performance during traffic spikes.
+Faster developer workflows. Via database branching, developers can instantly create database copies for testing, feature development, and schema migrations.
+Perfect for AI apps and agents. With pgvector for vector embeddings, serverless speed for agentic infrastructure, and optimal price performance due to scale-to-zero.
+
+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 NeonPostgres management library for .NET with [NuGet](https://www.nuget.org/):
+
+```dotnetcli
+dotnet add package Azure.ResourceManager.NeonPostgres --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/
diff --git a/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/assets.json b/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/assets.json
new file mode 100644
index 000000000000..746a60d8a4f1
--- /dev/null
+++ b/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/assets.json
@@ -0,0 +1,6 @@
+{
+ "AssetsRepo": "Azure/azure-sdk-assets",
+ "AssetsRepoPrefixPath": "net",
+ "TagPrefix": "net/neonpostgres/Azure.ResourceManager.NeonPostgres",
+ "Tag": ""
+}
diff --git a/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/samples/Azure.ResourceManager.NeonPostgres.Samples.csproj b/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/samples/Azure.ResourceManager.NeonPostgres.Samples.csproj
new file mode 100644
index 000000000000..2572bae02b16
--- /dev/null
+++ b/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/samples/Azure.ResourceManager.NeonPostgres.Samples.csproj
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Azure.ResourceManager.NeonPostgres.csproj b/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Azure.ResourceManager.NeonPostgres.csproj
new file mode 100644
index 000000000000..0ed45a5c8181
--- /dev/null
+++ b/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Azure.ResourceManager.NeonPostgres.csproj
@@ -0,0 +1,8 @@
+
+
+ 1.0.0-beta.1
+ Azure.ResourceManager.NeonPostgres
+ Azure Resource Manager client SDK for Azure resource provider NeonPostgres.
+ azure;management;arm;resource manager;neonpostgres
+
+
diff --git a/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/ArmNeonPostgresModelFactory.cs b/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/ArmNeonPostgresModelFactory.cs
new file mode 100644
index 000000000000..2f104ec08d05
--- /dev/null
+++ b/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/ArmNeonPostgresModelFactory.cs
@@ -0,0 +1,61 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+
+//
+
+#nullable disable
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using Azure.Core;
+using Azure.ResourceManager.Models;
+
+namespace Azure.ResourceManager.NeonPostgres.Models
+{
+ /// Model factory for models.
+ public static partial class ArmNeonPostgresModelFactory
+ {
+ /// Initializes a new instance of .
+ /// The id.
+ /// The name.
+ /// The resourceType.
+ /// The systemData.
+ /// The tags.
+ /// The location.
+ /// The resource-specific properties for this resource.
+ /// A new instance for mocking.
+ public static NeonOrganizationData NeonOrganizationData(ResourceIdentifier id = null, string name = null, ResourceType resourceType = default, SystemData systemData = null, IDictionary tags = null, AzureLocation location = default, NeonOrganizationPropertes properties = null)
+ {
+ tags ??= new Dictionary();
+
+ return new NeonOrganizationData(
+ id,
+ name,
+ resourceType,
+ systemData,
+ tags,
+ location,
+ properties,
+ serializedAdditionalRawData: null);
+ }
+
+ /// Initializes a new instance of .
+ /// Marketplace details of the resource.
+ /// Details of the user.
+ /// Details of the company.
+ /// Provisioning state of the resource.
+ /// Organization properties.
+ /// A new instance for mocking.
+ public static NeonOrganizationPropertes NeonOrganizationPropertes(NeonMarketplaceDetails marketplaceDetails = null, NeonUserDetails userDetails = null, NeonCompanyDetails companyDetails = null, NeonResourceProvisioningState? provisioningState = null, PartnerOrganizationProperties partnerOrganizationProperties = null)
+ {
+ return new NeonOrganizationPropertes(
+ marketplaceDetails,
+ userDetails,
+ companyDetails,
+ provisioningState,
+ partnerOrganizationProperties,
+ serializedAdditionalRawData: null);
+ }
+ }
+}
diff --git a/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Extensions/MockableNeonPostgresArmClient.cs b/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Extensions/MockableNeonPostgresArmClient.cs
new file mode 100644
index 000000000000..5a92c8fc6b3a
--- /dev/null
+++ b/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Extensions/MockableNeonPostgresArmClient.cs
@@ -0,0 +1,49 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+
+//
+
+#nullable disable
+
+using Azure.Core;
+
+namespace Azure.ResourceManager.NeonPostgres.Mocking
+{
+ /// A class to add extension methods to ArmClient.
+ public partial class MockableNeonPostgresArmClient : ArmResource
+ {
+ /// Initializes a new instance of the class for mocking.
+ protected MockableNeonPostgresArmClient()
+ {
+ }
+
+ /// Initializes a new instance of the class.
+ /// The client parameters to use in these operations.
+ /// The identifier of the resource that is the target of operations.
+ internal MockableNeonPostgresArmClient(ArmClient client, ResourceIdentifier id) : base(client, id)
+ {
+ }
+
+ internal MockableNeonPostgresArmClient(ArmClient client) : this(client, ResourceIdentifier.Root)
+ {
+ }
+
+ private string GetApiVersionOrNull(ResourceType resourceType)
+ {
+ TryGetApiVersion(resourceType, out string apiVersion);
+ return apiVersion;
+ }
+
+ ///
+ /// Gets an object representing a along with the instance operations that can be performed on it but with no data.
+ /// You can use to create a from its components.
+ ///
+ /// The resource ID of the resource to get.
+ /// Returns a object.
+ public virtual NeonOrganizationResource GetNeonOrganizationResource(ResourceIdentifier id)
+ {
+ NeonOrganizationResource.ValidateResourceId(id);
+ return new NeonOrganizationResource(Client, id);
+ }
+ }
+}
diff --git a/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Extensions/MockableNeonPostgresResourceGroupResource.cs b/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Extensions/MockableNeonPostgresResourceGroupResource.cs
new file mode 100644
index 000000000000..54b0de3692f3
--- /dev/null
+++ b/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Extensions/MockableNeonPostgresResourceGroupResource.cs
@@ -0,0 +1,105 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+
+//
+
+#nullable disable
+
+using System;
+using System.Threading;
+using System.Threading.Tasks;
+using Azure.Core;
+
+namespace Azure.ResourceManager.NeonPostgres.Mocking
+{
+ /// A class to add extension methods to ResourceGroupResource.
+ public partial class MockableNeonPostgresResourceGroupResource : ArmResource
+ {
+ /// Initializes a new instance of the class for mocking.
+ protected MockableNeonPostgresResourceGroupResource()
+ {
+ }
+
+ /// Initializes a new instance of the class.
+ /// The client parameters to use in these operations.
+ /// The identifier of the resource that is the target of operations.
+ internal MockableNeonPostgresResourceGroupResource(ArmClient client, ResourceIdentifier id) : base(client, id)
+ {
+ }
+
+ private string GetApiVersionOrNull(ResourceType resourceType)
+ {
+ TryGetApiVersion(resourceType, out string apiVersion);
+ return apiVersion;
+ }
+
+ /// Gets a collection of NeonOrganizationResources in the ResourceGroupResource.
+ /// An object representing collection of NeonOrganizationResources and their operations over a NeonOrganizationResource.
+ public virtual NeonOrganizationCollection GetNeonOrganizations()
+ {
+ return GetCachedClient(client => new NeonOrganizationCollection(client, Id));
+ }
+
+ ///
+ /// Get a OrganizationResource
+ ///
+ /// -
+ /// Request Path
+ /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Neon.Postgres/organizations/{organizationName}
+ ///
+ /// -
+ /// Operation Id
+ /// OrganizationResource_Get
+ ///
+ /// -
+ /// Default Api Version
+ /// 2024-08-01-preview
+ ///
+ /// -
+ /// Resource
+ ///
+ ///
+ ///
+ ///
+ /// Name of the Neon Organizations resource.
+ /// The cancellation token to use.
+ /// is null.
+ /// is an empty string, and was expected to be non-empty.
+ [ForwardsClientCalls]
+ public virtual async Task> GetNeonOrganizationAsync(string organizationName, CancellationToken cancellationToken = default)
+ {
+ return await GetNeonOrganizations().GetAsync(organizationName, cancellationToken).ConfigureAwait(false);
+ }
+
+ ///
+ /// Get a OrganizationResource
+ ///
+ /// -
+ /// Request Path
+ /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Neon.Postgres/organizations/{organizationName}
+ ///
+ /// -
+ /// Operation Id
+ /// OrganizationResource_Get
+ ///
+ /// -
+ /// Default Api Version
+ /// 2024-08-01-preview
+ ///
+ /// -
+ /// Resource
+ ///
+ ///
+ ///
+ ///
+ /// Name of the Neon Organizations resource.
+ /// The cancellation token to use.
+ /// is null.
+ /// is an empty string, and was expected to be non-empty.
+ [ForwardsClientCalls]
+ public virtual Response GetNeonOrganization(string organizationName, CancellationToken cancellationToken = default)
+ {
+ return GetNeonOrganizations().Get(organizationName, cancellationToken);
+ }
+ }
+}
diff --git a/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Extensions/MockableNeonPostgresSubscriptionResource.cs b/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Extensions/MockableNeonPostgresSubscriptionResource.cs
new file mode 100644
index 000000000000..abc57a2d6f31
--- /dev/null
+++ b/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Extensions/MockableNeonPostgresSubscriptionResource.cs
@@ -0,0 +1,102 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+
+//
+
+#nullable disable
+
+using System.Threading;
+using Autorest.CSharp.Core;
+using Azure.Core;
+using Azure.Core.Pipeline;
+
+namespace Azure.ResourceManager.NeonPostgres.Mocking
+{
+ /// A class to add extension methods to SubscriptionResource.
+ public partial class MockableNeonPostgresSubscriptionResource : ArmResource
+ {
+ private ClientDiagnostics _neonOrganizationOrganizationsClientDiagnostics;
+ private OrganizationsRestOperations _neonOrganizationOrganizationsRestClient;
+
+ /// Initializes a new instance of the class for mocking.
+ protected MockableNeonPostgresSubscriptionResource()
+ {
+ }
+
+ /// Initializes a new instance of the class.
+ /// The client parameters to use in these operations.
+ /// The identifier of the resource that is the target of operations.
+ internal MockableNeonPostgresSubscriptionResource(ArmClient client, ResourceIdentifier id) : base(client, id)
+ {
+ }
+
+ private ClientDiagnostics NeonOrganizationOrganizationsClientDiagnostics => _neonOrganizationOrganizationsClientDiagnostics ??= new ClientDiagnostics("Azure.ResourceManager.NeonPostgres", NeonOrganizationResource.ResourceType.Namespace, Diagnostics);
+ private OrganizationsRestOperations NeonOrganizationOrganizationsRestClient => _neonOrganizationOrganizationsRestClient ??= new OrganizationsRestOperations(Pipeline, Diagnostics.ApplicationId, Endpoint, GetApiVersionOrNull(NeonOrganizationResource.ResourceType));
+
+ private string GetApiVersionOrNull(ResourceType resourceType)
+ {
+ TryGetApiVersion(resourceType, out string apiVersion);
+ return apiVersion;
+ }
+
+ ///
+ /// List OrganizationResource resources by subscription ID
+ ///
+ /// -
+ /// Request Path
+ /// /subscriptions/{subscriptionId}/providers/Neon.Postgres/organizations
+ ///
+ /// -
+ /// Operation Id
+ /// OrganizationResource_ListBySubscription
+ ///
+ /// -
+ /// Default Api Version
+ /// 2024-08-01-preview
+ ///
+ /// -
+ /// Resource
+ ///
+ ///
+ ///
+ ///
+ /// The cancellation token to use.
+ /// An async collection of that may take multiple service requests to iterate over.
+ public virtual AsyncPageable GetNeonOrganizationsAsync(CancellationToken cancellationToken = default)
+ {
+ HttpMessage FirstPageRequest(int? pageSizeHint) => NeonOrganizationOrganizationsRestClient.CreateListBySubscriptionRequest(Id.SubscriptionId);
+ HttpMessage NextPageRequest(int? pageSizeHint, string nextLink) => NeonOrganizationOrganizationsRestClient.CreateListBySubscriptionNextPageRequest(nextLink, Id.SubscriptionId);
+ return GeneratorPageableHelpers.CreateAsyncPageable(FirstPageRequest, NextPageRequest, e => new NeonOrganizationResource(Client, NeonOrganizationData.DeserializeNeonOrganizationData(e)), NeonOrganizationOrganizationsClientDiagnostics, Pipeline, "MockableNeonPostgresSubscriptionResource.GetNeonOrganizations", "value", "nextLink", cancellationToken);
+ }
+
+ ///
+ /// List OrganizationResource resources by subscription ID
+ ///
+ /// -
+ /// Request Path
+ /// /subscriptions/{subscriptionId}/providers/Neon.Postgres/organizations
+ ///
+ /// -
+ /// Operation Id
+ /// OrganizationResource_ListBySubscription
+ ///
+ /// -
+ /// Default Api Version
+ /// 2024-08-01-preview
+ ///
+ /// -
+ /// Resource
+ ///
+ ///
+ ///
+ ///
+ /// The cancellation token to use.
+ /// A collection of that may take multiple service requests to iterate over.
+ public virtual Pageable GetNeonOrganizations(CancellationToken cancellationToken = default)
+ {
+ HttpMessage FirstPageRequest(int? pageSizeHint) => NeonOrganizationOrganizationsRestClient.CreateListBySubscriptionRequest(Id.SubscriptionId);
+ HttpMessage NextPageRequest(int? pageSizeHint, string nextLink) => NeonOrganizationOrganizationsRestClient.CreateListBySubscriptionNextPageRequest(nextLink, Id.SubscriptionId);
+ return GeneratorPageableHelpers.CreatePageable(FirstPageRequest, NextPageRequest, e => new NeonOrganizationResource(Client, NeonOrganizationData.DeserializeNeonOrganizationData(e)), NeonOrganizationOrganizationsClientDiagnostics, Pipeline, "MockableNeonPostgresSubscriptionResource.GetNeonOrganizations", "value", "nextLink", cancellationToken);
+ }
+ }
+}
diff --git a/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Extensions/NeonPostgresExtensions.cs b/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Extensions/NeonPostgresExtensions.cs
new file mode 100644
index 000000000000..9037e7c839eb
--- /dev/null
+++ b/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Extensions/NeonPostgresExtensions.cs
@@ -0,0 +1,219 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+
+//
+
+#nullable disable
+
+using System;
+using System.Threading;
+using System.Threading.Tasks;
+using Azure.Core;
+using Azure.ResourceManager.NeonPostgres.Mocking;
+using Azure.ResourceManager.Resources;
+
+namespace Azure.ResourceManager.NeonPostgres
+{
+ /// A class to add extension methods to Azure.ResourceManager.NeonPostgres.
+ public static partial class NeonPostgresExtensions
+ {
+ private static MockableNeonPostgresArmClient GetMockableNeonPostgresArmClient(ArmClient client)
+ {
+ return client.GetCachedClient(client0 => new MockableNeonPostgresArmClient(client0));
+ }
+
+ private static MockableNeonPostgresResourceGroupResource GetMockableNeonPostgresResourceGroupResource(ArmResource resource)
+ {
+ return resource.GetCachedClient(client => new MockableNeonPostgresResourceGroupResource(client, resource.Id));
+ }
+
+ private static MockableNeonPostgresSubscriptionResource GetMockableNeonPostgresSubscriptionResource(ArmResource resource)
+ {
+ return resource.GetCachedClient(client => new MockableNeonPostgresSubscriptionResource(client, resource.Id));
+ }
+
+ ///
+ /// Gets an object representing a along with the instance operations that can be performed on it but with no data.
+ /// You can use to create a from its components.
+ /// -
+ /// Mocking
+ /// To mock this method, please mock instead.
+ ///
+ ///
+ /// The instance the method will execute against.
+ /// The resource ID of the resource to get.
+ /// is null.
+ /// Returns a object.
+ public static NeonOrganizationResource GetNeonOrganizationResource(this ArmClient client, ResourceIdentifier id)
+ {
+ Argument.AssertNotNull(client, nameof(client));
+
+ return GetMockableNeonPostgresArmClient(client).GetNeonOrganizationResource(id);
+ }
+
+ ///
+ /// Gets a collection of NeonOrganizationResources in the ResourceGroupResource.
+ /// -
+ /// Mocking
+ /// To mock this method, please mock instead.
+ ///
+ ///
+ /// The instance the method will execute against.
+ /// is null.
+ /// An object representing collection of NeonOrganizationResources and their operations over a NeonOrganizationResource.
+ public static NeonOrganizationCollection GetNeonOrganizations(this ResourceGroupResource resourceGroupResource)
+ {
+ Argument.AssertNotNull(resourceGroupResource, nameof(resourceGroupResource));
+
+ return GetMockableNeonPostgresResourceGroupResource(resourceGroupResource).GetNeonOrganizations();
+ }
+
+ ///
+ /// Get a OrganizationResource
+ ///
+ /// -
+ /// Request Path
+ /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Neon.Postgres/organizations/{organizationName}
+ ///
+ /// -
+ /// Operation Id
+ /// OrganizationResource_Get
+ ///
+ /// -
+ /// Default Api Version
+ /// 2024-08-01-preview
+ ///
+ /// -
+ /// Resource
+ ///
+ ///
+ ///
+ /// -
+ /// Mocking
+ /// To mock this method, please mock instead.
+ ///
+ ///
+ /// The instance the method will execute against.
+ /// Name of the Neon Organizations resource.
+ /// The cancellation token to use.
+ /// or is null.
+ /// is an empty string, and was expected to be non-empty.
+ [ForwardsClientCalls]
+ public static async Task> GetNeonOrganizationAsync(this ResourceGroupResource resourceGroupResource, string organizationName, CancellationToken cancellationToken = default)
+ {
+ Argument.AssertNotNull(resourceGroupResource, nameof(resourceGroupResource));
+
+ return await GetMockableNeonPostgresResourceGroupResource(resourceGroupResource).GetNeonOrganizationAsync(organizationName, cancellationToken).ConfigureAwait(false);
+ }
+
+ ///
+ /// Get a OrganizationResource
+ ///
+ /// -
+ /// Request Path
+ /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Neon.Postgres/organizations/{organizationName}
+ ///
+ /// -
+ /// Operation Id
+ /// OrganizationResource_Get
+ ///
+ /// -
+ /// Default Api Version
+ /// 2024-08-01-preview
+ ///
+ /// -
+ /// Resource
+ ///
+ ///
+ ///
+ /// -
+ /// Mocking
+ /// To mock this method, please mock instead.
+ ///
+ ///
+ /// The instance the method will execute against.
+ /// Name of the Neon Organizations resource.
+ /// The cancellation token to use.
+ /// or is null.
+ /// is an empty string, and was expected to be non-empty.
+ [ForwardsClientCalls]
+ public static Response GetNeonOrganization(this ResourceGroupResource resourceGroupResource, string organizationName, CancellationToken cancellationToken = default)
+ {
+ Argument.AssertNotNull(resourceGroupResource, nameof(resourceGroupResource));
+
+ return GetMockableNeonPostgresResourceGroupResource(resourceGroupResource).GetNeonOrganization(organizationName, cancellationToken);
+ }
+
+ ///
+ /// List OrganizationResource resources by subscription ID
+ ///
+ /// -
+ /// Request Path
+ /// /subscriptions/{subscriptionId}/providers/Neon.Postgres/organizations
+ ///
+ /// -
+ /// Operation Id
+ /// OrganizationResource_ListBySubscription
+ ///
+ /// -
+ /// Default Api Version
+ /// 2024-08-01-preview
+ ///
+ /// -
+ /// Resource
+ ///
+ ///
+ ///
+ /// -
+ /// Mocking
+ /// To mock this method, please mock instead.
+ ///
+ ///
+ /// The instance the method will execute against.
+ /// The cancellation token to use.
+ /// is null.
+ /// An async collection of that may take multiple service requests to iterate over.
+ public static AsyncPageable GetNeonOrganizationsAsync(this SubscriptionResource subscriptionResource, CancellationToken cancellationToken = default)
+ {
+ Argument.AssertNotNull(subscriptionResource, nameof(subscriptionResource));
+
+ return GetMockableNeonPostgresSubscriptionResource(subscriptionResource).GetNeonOrganizationsAsync(cancellationToken);
+ }
+
+ ///
+ /// List OrganizationResource resources by subscription ID
+ ///
+ /// -
+ /// Request Path
+ /// /subscriptions/{subscriptionId}/providers/Neon.Postgres/organizations
+ ///
+ /// -
+ /// Operation Id
+ /// OrganizationResource_ListBySubscription
+ ///
+ /// -
+ /// Default Api Version
+ /// 2024-08-01-preview
+ ///
+ /// -
+ /// Resource
+ ///
+ ///
+ ///
+ /// -
+ /// Mocking
+ /// To mock this method, please mock instead.
+ ///
+ ///
+ /// The instance the method will execute against.
+ /// The cancellation token to use.
+ /// is null.
+ /// A collection of that may take multiple service requests to iterate over.
+ public static Pageable GetNeonOrganizations(this SubscriptionResource subscriptionResource, CancellationToken cancellationToken = default)
+ {
+ Argument.AssertNotNull(subscriptionResource, nameof(subscriptionResource));
+
+ return GetMockableNeonPostgresSubscriptionResource(subscriptionResource).GetNeonOrganizations(cancellationToken);
+ }
+ }
+}
diff --git a/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Internal/Argument.cs b/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Internal/Argument.cs
new file mode 100644
index 000000000000..606ae902a9c6
--- /dev/null
+++ b/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Internal/Argument.cs
@@ -0,0 +1,129 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+
+//
+
+#nullable disable
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+
+namespace Azure.ResourceManager.NeonPostgres
+{
+ internal static class Argument
+ {
+ public static void AssertNotNull(T value, string name)
+ {
+ if (value is null)
+ {
+ throw new ArgumentNullException(name);
+ }
+ }
+
+ public static void AssertNotNull(T? value, string name)
+ where T : struct
+ {
+ if (!value.HasValue)
+ {
+ throw new ArgumentNullException(name);
+ }
+ }
+
+ public static void AssertNotNullOrEmpty(IEnumerable value, string name)
+ {
+ if (value is null)
+ {
+ throw new ArgumentNullException(name);
+ }
+ if (value is ICollection collectionOfT && collectionOfT.Count == 0)
+ {
+ throw new ArgumentException("Value cannot be an empty collection.", name);
+ }
+ if (value is ICollection collection && collection.Count == 0)
+ {
+ throw new ArgumentException("Value cannot be an empty collection.", name);
+ }
+ using IEnumerator e = value.GetEnumerator();
+ if (!e.MoveNext())
+ {
+ throw new ArgumentException("Value cannot be an empty collection.", name);
+ }
+ }
+
+ public static void AssertNotNullOrEmpty(string value, string name)
+ {
+ if (value is null)
+ {
+ throw new ArgumentNullException(name);
+ }
+ if (value.Length == 0)
+ {
+ throw new ArgumentException("Value cannot be an empty string.", name);
+ }
+ }
+
+ public static void AssertNotNullOrWhiteSpace(string value, string name)
+ {
+ if (value is null)
+ {
+ throw new ArgumentNullException(name);
+ }
+ if (string.IsNullOrWhiteSpace(value))
+ {
+ throw new ArgumentException("Value cannot be empty or contain only white-space characters.", name);
+ }
+ }
+
+ public static void AssertNotDefault(ref T value, string name)
+ where T : struct, IEquatable
+ {
+ if (value.Equals(default))
+ {
+ throw new ArgumentException("Value cannot be empty.", name);
+ }
+ }
+
+ public static void AssertInRange(T value, T minimum, T maximum, string name)
+ where T : notnull, IComparable
+ {
+ if (minimum.CompareTo(value) > 0)
+ {
+ throw new ArgumentOutOfRangeException(name, "Value is less than the minimum allowed.");
+ }
+ if (maximum.CompareTo(value) < 0)
+ {
+ throw new ArgumentOutOfRangeException(name, "Value is greater than the maximum allowed.");
+ }
+ }
+
+ public static void AssertEnumDefined(Type enumType, object value, string name)
+ {
+ if (!Enum.IsDefined(enumType, value))
+ {
+ throw new ArgumentException($"Value not defined for {enumType.FullName}.", name);
+ }
+ }
+
+ public static T CheckNotNull(T value, string name)
+ where T : class
+ {
+ AssertNotNull(value, name);
+ return value;
+ }
+
+ public static string CheckNotNullOrEmpty(string value, string name)
+ {
+ AssertNotNullOrEmpty(value, name);
+ return value;
+ }
+
+ public static void AssertNull(T value, string name, string message = null)
+ {
+ if (value != null)
+ {
+ throw new ArgumentException(message ?? "Value must be null.", name);
+ }
+ }
+ }
+}
diff --git a/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Internal/ChangeTrackingDictionary.cs b/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Internal/ChangeTrackingDictionary.cs
new file mode 100644
index 000000000000..8ba9395be5bb
--- /dev/null
+++ b/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Internal/ChangeTrackingDictionary.cs
@@ -0,0 +1,167 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+
+//
+
+#nullable disable
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+
+namespace Azure.ResourceManager.NeonPostgres
+{
+ internal class ChangeTrackingDictionary : IDictionary, IReadOnlyDictionary where TKey : notnull
+ {
+ private IDictionary _innerDictionary;
+
+ public ChangeTrackingDictionary()
+ {
+ }
+
+ public ChangeTrackingDictionary(IDictionary dictionary)
+ {
+ if (dictionary == null)
+ {
+ return;
+ }
+ _innerDictionary = new Dictionary(dictionary);
+ }
+
+ public ChangeTrackingDictionary(IReadOnlyDictionary dictionary)
+ {
+ if (dictionary == null)
+ {
+ return;
+ }
+ _innerDictionary = new Dictionary();
+ foreach (var pair in dictionary)
+ {
+ _innerDictionary.Add(pair);
+ }
+ }
+
+ public bool IsUndefined => _innerDictionary == null;
+
+ public int Count => IsUndefined ? 0 : EnsureDictionary().Count;
+
+ public bool IsReadOnly => IsUndefined ? false : EnsureDictionary().IsReadOnly;
+
+ public ICollection Keys => IsUndefined ? Array.Empty() : EnsureDictionary().Keys;
+
+ public ICollection Values => IsUndefined ? Array.Empty() : EnsureDictionary().Values;
+
+ public TValue this[TKey key]
+ {
+ get
+ {
+ if (IsUndefined)
+ {
+ throw new KeyNotFoundException(nameof(key));
+ }
+ return EnsureDictionary()[key];
+ }
+ set
+ {
+ EnsureDictionary()[key] = value;
+ }
+ }
+
+ IEnumerable IReadOnlyDictionary.Keys => Keys;
+
+ IEnumerable IReadOnlyDictionary.Values => Values;
+
+ public IEnumerator> GetEnumerator()
+ {
+ if (IsUndefined)
+ {
+ IEnumerator> enumerateEmpty()
+ {
+ yield break;
+ }
+ return enumerateEmpty();
+ }
+ return EnsureDictionary().GetEnumerator();
+ }
+
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ return GetEnumerator();
+ }
+
+ public void Add(KeyValuePair item)
+ {
+ EnsureDictionary().Add(item);
+ }
+
+ public void Clear()
+ {
+ EnsureDictionary().Clear();
+ }
+
+ public bool Contains(KeyValuePair item)
+ {
+ if (IsUndefined)
+ {
+ return false;
+ }
+ return EnsureDictionary().Contains(item);
+ }
+
+ public void CopyTo(KeyValuePair[] array, int index)
+ {
+ if (IsUndefined)
+ {
+ return;
+ }
+ EnsureDictionary().CopyTo(array, index);
+ }
+
+ public bool Remove(KeyValuePair item)
+ {
+ if (IsUndefined)
+ {
+ return false;
+ }
+ return EnsureDictionary().Remove(item);
+ }
+
+ public void Add(TKey key, TValue value)
+ {
+ EnsureDictionary().Add(key, value);
+ }
+
+ public bool ContainsKey(TKey key)
+ {
+ if (IsUndefined)
+ {
+ return false;
+ }
+ return EnsureDictionary().ContainsKey(key);
+ }
+
+ public bool Remove(TKey key)
+ {
+ if (IsUndefined)
+ {
+ return false;
+ }
+ return EnsureDictionary().Remove(key);
+ }
+
+ public bool TryGetValue(TKey key, out TValue value)
+ {
+ if (IsUndefined)
+ {
+ value = default;
+ return false;
+ }
+ return EnsureDictionary().TryGetValue(key, out value);
+ }
+
+ public IDictionary EnsureDictionary()
+ {
+ return _innerDictionary ??= new Dictionary();
+ }
+ }
+}
diff --git a/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Internal/ChangeTrackingList.cs b/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Internal/ChangeTrackingList.cs
new file mode 100644
index 000000000000..7460c1da0ba8
--- /dev/null
+++ b/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Internal/ChangeTrackingList.cs
@@ -0,0 +1,153 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+
+//
+
+#nullable disable
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace Azure.ResourceManager.NeonPostgres
+{
+ internal class ChangeTrackingList : IList, IReadOnlyList
+ {
+ private IList _innerList;
+
+ public ChangeTrackingList()
+ {
+ }
+
+ public ChangeTrackingList(IList innerList)
+ {
+ if (innerList != null)
+ {
+ _innerList = innerList;
+ }
+ }
+
+ public ChangeTrackingList(IReadOnlyList innerList)
+ {
+ if (innerList != null)
+ {
+ _innerList = innerList.ToList();
+ }
+ }
+
+ public bool IsUndefined => _innerList == null;
+
+ public int Count => IsUndefined ? 0 : EnsureList().Count;
+
+ public bool IsReadOnly => IsUndefined ? false : EnsureList().IsReadOnly;
+
+ public T this[int index]
+ {
+ get
+ {
+ if (IsUndefined)
+ {
+ throw new ArgumentOutOfRangeException(nameof(index));
+ }
+ return EnsureList()[index];
+ }
+ set
+ {
+ if (IsUndefined)
+ {
+ throw new ArgumentOutOfRangeException(nameof(index));
+ }
+ EnsureList()[index] = value;
+ }
+ }
+
+ public void Reset()
+ {
+ _innerList = null;
+ }
+
+ public IEnumerator GetEnumerator()
+ {
+ if (IsUndefined)
+ {
+ IEnumerator enumerateEmpty()
+ {
+ yield break;
+ }
+ return enumerateEmpty();
+ }
+ return EnsureList().GetEnumerator();
+ }
+
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ return GetEnumerator();
+ }
+
+ public void Add(T item)
+ {
+ EnsureList().Add(item);
+ }
+
+ public void Clear()
+ {
+ EnsureList().Clear();
+ }
+
+ public bool Contains(T item)
+ {
+ if (IsUndefined)
+ {
+ return false;
+ }
+ return EnsureList().Contains(item);
+ }
+
+ public void CopyTo(T[] array, int arrayIndex)
+ {
+ if (IsUndefined)
+ {
+ return;
+ }
+ EnsureList().CopyTo(array, arrayIndex);
+ }
+
+ public bool Remove(T item)
+ {
+ if (IsUndefined)
+ {
+ return false;
+ }
+ return EnsureList().Remove(item);
+ }
+
+ public int IndexOf(T item)
+ {
+ if (IsUndefined)
+ {
+ return -1;
+ }
+ return EnsureList().IndexOf(item);
+ }
+
+ public void Insert(int index, T item)
+ {
+ EnsureList().Insert(index, item);
+ }
+
+ public void RemoveAt(int index)
+ {
+ if (IsUndefined)
+ {
+ throw new ArgumentOutOfRangeException(nameof(index));
+ }
+ EnsureList().RemoveAt(index);
+ }
+
+ public IList EnsureList()
+ {
+ return _innerList ??= new List();
+ }
+ }
+}
diff --git a/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Internal/ModelSerializationExtensions.cs b/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Internal/ModelSerializationExtensions.cs
new file mode 100644
index 000000000000..aafb973a8389
--- /dev/null
+++ b/sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/src/Generated/Internal/ModelSerializationExtensions.cs
@@ -0,0 +1,398 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+
+//
+
+#nullable disable
+
+using System;
+using System.ClientModel.Primitives;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Globalization;
+using System.Text.Json;
+using System.Xml;
+using Azure.Core;
+
+namespace Azure.ResourceManager.NeonPostgres
+{
+ internal static class ModelSerializationExtensions
+ {
+ internal static readonly ModelReaderWriterOptions WireOptions = new ModelReaderWriterOptions("W");
+
+ public static object GetObject(this JsonElement element)
+ {
+ switch (element.ValueKind)
+ {
+ case JsonValueKind.String:
+ return element.GetString();
+ case JsonValueKind.Number:
+ if (element.TryGetInt32(out int intValue))
+ {
+ return intValue;
+ }
+ if (element.TryGetInt64(out long longValue))
+ {
+ return longValue;
+ }
+ return element.GetDouble();
+ case JsonValueKind.True:
+ return true;
+ case JsonValueKind.False:
+ return false;
+ case JsonValueKind.Undefined:
+ case JsonValueKind.Null:
+ return null;
+ case JsonValueKind.Object:
+ var dictionary = new Dictionary();
+ foreach (var jsonProperty in element.EnumerateObject())
+ {
+ dictionary.Add(jsonProperty.Name, jsonProperty.Value.GetObject());
+ }
+ return dictionary;
+ case JsonValueKind.Array:
+ var list = new List