diff --git a/eng/versioning/version_client.txt b/eng/versioning/version_client.txt
index 29cf79b0db6f..790c1ad7c83e 100644
--- a/eng/versioning/version_client.txt
+++ b/eng/versioning/version_client.txt
@@ -340,6 +340,7 @@ com.azure.resourcemanager:azure-resourcemanager-securityinsights;1.0.0-beta.2;1.
com.azure.resourcemanager:azure-resourcemanager-oep;1.0.0-beta.1;1.0.0-beta.2
com.azure.resourcemanager:azure-resourcemanager-dnsresolver;1.0.0-beta.1;1.0.0-beta.2
com.azure.resourcemanager:azure-resourcemanager-mobilenetwork;1.0.0-beta.2;1.0.0-beta.3
+com.azure.resourcemanager:azure-resourcemanager-testbase;1.0.0-beta.1;1.0.0-beta.1
com.azure.tools:azure-sdk-archetype;1.0.0;1.0.0
com.azure.tools:azure-sdk-build-tool;1.0.0-beta.1;1.0.0-beta.2
diff --git a/pom.xml b/pom.xml
index f3ba561857a5..7ed295f5822b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -971,6 +971,7 @@
sdk/synapse
sdk/tables
sdk/template
+ sdk/testbase
sdk/textanalytics
sdk/timeseriesinsights
sdk/tools
diff --git a/sdk/testbase/azure-resourcemanager-testbase/CHANGELOG.md b/sdk/testbase/azure-resourcemanager-testbase/CHANGELOG.md
new file mode 100644
index 000000000000..440c88d39d76
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/CHANGELOG.md
@@ -0,0 +1,5 @@
+# Release History
+
+## 1.0.0-beta.1 (2022-03-25)
+
+- Azure Resource Manager TestBase client library for Java. This package contains Microsoft Azure SDK for TestBase Management SDK. Test Base. Package tag package-2020-12-16-preview. For documentation on how to use this package, please see [Azure Management Libraries for Java](https://aka.ms/azsdk/java/mgmt).
diff --git a/sdk/testbase/azure-resourcemanager-testbase/README.md b/sdk/testbase/azure-resourcemanager-testbase/README.md
new file mode 100644
index 000000000000..9ef2adbd87c3
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/README.md
@@ -0,0 +1,102 @@
+# Azure Resource Manager TestBase client library for Java
+
+Azure Resource Manager TestBase client library for Java.
+
+This package contains Microsoft Azure SDK for TestBase Management SDK. Test Base. Package tag package-2020-12-16-preview. For documentation on how to use this package, please see [Azure Management Libraries for Java](https://aka.ms/azsdk/java/mgmt).
+
+## We'd love to hear your feedback
+
+We're always working on improving our products and the way we communicate with our users. So we'd love to learn what's working and how we can do better.
+
+If you haven't already, please take a few minutes to [complete this short survey][survey] we have put together.
+
+Thank you in advance for your collaboration. We really appreciate your time!
+
+## Documentation
+
+Various documentation is available to help you get started
+
+- [API reference documentation][docs]
+
+## Getting started
+
+### Prerequisites
+
+- [Java Development Kit (JDK)][jdk] with version 8 or above
+- [Azure Subscription][azure_subscription]
+
+### Adding the package to your product
+
+[//]: # ({x-version-update-start;com.azure.resourcemanager:azure-resourcemanager-testbase;current})
+```xml
+
+ com.azure.resourcemanager
+ azure-resourcemanager-testbase
+ 1.0.0-beta.1
+
+```
+[//]: # ({x-version-update-end})
+
+### Include the recommended packages
+
+Azure Management Libraries require a `TokenCredential` implementation for authentication and an `HttpClient` implementation for HTTP client.
+
+[Azure Identity][azure_identity] package and [Azure Core Netty HTTP][azure_core_http_netty] package provide the default implementation.
+
+### Authentication
+
+By default, Azure Active Directory token authentication depends on correct configure of following environment variables.
+
+- `AZURE_CLIENT_ID` for Azure client ID.
+- `AZURE_TENANT_ID` for Azure tenant ID.
+- `AZURE_CLIENT_SECRET` or `AZURE_CLIENT_CERTIFICATE_PATH` for client secret or client certificate.
+
+In addition, Azure subscription ID can be configured via environment variable `AZURE_SUBSCRIPTION_ID`.
+
+With above configuration, `azure` client can be authenticated by following code:
+
+```java
+AzureProfile profile = new AzureProfile(AzureEnvironment.AZURE);
+TokenCredential credential = new DefaultAzureCredentialBuilder()
+ .authorityHost(profile.getEnvironment().getActiveDirectoryEndpoint())
+ .build();
+TestBaseManager manager = TestBaseManager
+ .authenticate(credential, profile);
+```
+
+The sample code assumes global Azure. Please change `AzureEnvironment.AZURE` variable if otherwise.
+
+See [Authentication][authenticate] for more options.
+
+## Key concepts
+
+See [API design][design] for general introduction on design and key concepts on Azure Management Libraries.
+
+## Examples
+
+[Code snippets and samples](https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/testbase/azure-resourcemanager-testbase/SAMPLE.md)
+
+
+## Troubleshooting
+
+## Next steps
+
+## Contributing
+
+For details on contributing to this repository, see the [contributing guide](https://github.com/Azure/azure-sdk-for-java/blob/main/CONTRIBUTING.md).
+
+1. Fork it
+1. Create your feature branch (`git checkout -b my-new-feature`)
+1. Commit your changes (`git commit -am 'Add some feature'`)
+1. Push to the branch (`git push origin my-new-feature`)
+1. Create new Pull Request
+
+
+[survey]: https://microsoft.qualtrics.com/jfe/form/SV_ehN0lIk2FKEBkwd?Q_CHL=DOCS
+[docs]: https://azure.github.io/azure-sdk-for-java/
+[jdk]: https://docs.microsoft.com/java/azure/jdk/
+[azure_subscription]: https://azure.microsoft.com/free/
+[azure_identity]: https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/identity/azure-identity
+[azure_core_http_netty]: https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/core/azure-core-http-netty
+[authenticate]: https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/resourcemanager/docs/AUTH.md
+[design]: https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/resourcemanager/docs/DESIGN.md
diff --git a/sdk/testbase/azure-resourcemanager-testbase/SAMPLE.md b/sdk/testbase/azure-resourcemanager-testbase/SAMPLE.md
new file mode 100644
index 000000000000..48ed4be9f2f3
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/SAMPLE.md
@@ -0,0 +1,1483 @@
+# Code snippets and samples
+
+
+## AnalysisResults
+
+- [Get](#analysisresults_get)
+- [List](#analysisresults_list)
+
+## AvailableOS
+
+- [Get](#availableos_get)
+- [List](#availableos_list)
+
+## CustomerEvents
+
+- [Create](#customerevents_create)
+- [Delete](#customerevents_delete)
+- [Get](#customerevents_get)
+- [ListByTestBaseAccount](#customerevents_listbytestbaseaccount)
+
+## EmailEvents
+
+- [Get](#emailevents_get)
+- [List](#emailevents_list)
+
+## FavoriteProcesses
+
+- [Create](#favoriteprocesses_create)
+- [Delete](#favoriteprocesses_delete)
+- [Get](#favoriteprocesses_get)
+- [List](#favoriteprocesses_list)
+
+## FlightingRings
+
+- [Get](#flightingrings_get)
+- [List](#flightingrings_list)
+
+## OSUpdates
+
+- [Get](#osupdates_get)
+- [List](#osupdates_list)
+
+## Operations
+
+- [List](#operations_list)
+
+## Packages
+
+- [Create](#packages_create)
+- [Delete](#packages_delete)
+- [Get](#packages_get)
+- [GetDownloadUrl](#packages_getdownloadurl)
+- [HardDelete](#packages_harddelete)
+- [ListByTestBaseAccount](#packages_listbytestbaseaccount)
+- [Update](#packages_update)
+
+## Skus
+
+- [List](#skus_list)
+
+## TestBaseAccounts
+
+- [CheckPackageNameAvailability](#testbaseaccounts_checkpackagenameavailability)
+- [Create](#testbaseaccounts_create)
+- [Delete](#testbaseaccounts_delete)
+- [GetByResourceGroup](#testbaseaccounts_getbyresourcegroup)
+- [GetFileUploadUrl](#testbaseaccounts_getfileuploadurl)
+- [List](#testbaseaccounts_list)
+- [ListByResourceGroup](#testbaseaccounts_listbyresourcegroup)
+- [Offboard](#testbaseaccounts_offboard)
+- [Update](#testbaseaccounts_update)
+
+## TestResults
+
+- [Get](#testresults_get)
+- [GetDownloadUrl](#testresults_getdownloadurl)
+- [GetVideoDownloadUrl](#testresults_getvideodownloadurl)
+- [List](#testresults_list)
+
+## TestSummaries
+
+- [Get](#testsummaries_get)
+- [List](#testsummaries_list)
+
+## TestTypes
+
+- [Get](#testtypes_get)
+- [List](#testtypes_list)
+
+## Usage
+
+- [List](#usage_list)
+### AnalysisResults_Get
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.testbase.models.AnalysisResultName;
+
+/** Samples for AnalysisResults Get. */
+public final class AnalysisResultsGetSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/MemoryUtilizationAnalysisResultGet.json
+ */
+ /**
+ * Sample code: MemoryUtilizationAnalysisResultGet.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void memoryUtilizationAnalysisResultGet(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager
+ .analysisResults()
+ .getWithResponse(
+ "contoso-rg1",
+ "contoso-testBaseAccount1",
+ "contoso-package2",
+ "Windows-10-1909-Test-Id",
+ AnalysisResultName.MEMORY_UTILIZATION,
+ Context.NONE);
+ }
+
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/CPURegressionAnalysisResultGet.json
+ */
+ /**
+ * Sample code: CPURegressionAnalysisResultGet.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void cPURegressionAnalysisResultGet(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager
+ .analysisResults()
+ .getWithResponse(
+ "contoso-rg1",
+ "contoso-testBaseAccount1",
+ "contoso-package2",
+ "Windows-10-1909-Test-Id",
+ AnalysisResultName.CPU_REGRESSION,
+ Context.NONE);
+ }
+
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/CPUUtilizationAnalysisResultGet.json
+ */
+ /**
+ * Sample code: CPUUtilizationAnalysisResultGet.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void cPUUtilizationAnalysisResultGet(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager
+ .analysisResults()
+ .getWithResponse(
+ "contoso-rg1",
+ "contoso-testBaseAccount1",
+ "contoso-package2",
+ "Windows-10-1909-Test-Id",
+ AnalysisResultName.CPU_UTILIZATION,
+ Context.NONE);
+ }
+
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/MemoryRegressionAnalysisResultGet.json
+ */
+ /**
+ * Sample code: MemoryRegressionAnalysisResultGet.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void memoryRegressionAnalysisResultGet(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager
+ .analysisResults()
+ .getWithResponse(
+ "contoso-rg1",
+ "contoso-testBaseAccount1",
+ "contoso-package2",
+ "Windows-10-1909-Test-Id",
+ AnalysisResultName.MEMORY_REGRESSION,
+ Context.NONE);
+ }
+}
+```
+
+### AnalysisResults_List
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.testbase.models.AnalysisResultType;
+
+/** Samples for AnalysisResults List. */
+public final class AnalysisResultsListSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/MemoryRegressionAnalysisResultsList.json
+ */
+ /**
+ * Sample code: MemoryRegressionAnalysisResultsList.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void memoryRegressionAnalysisResultsList(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager
+ .analysisResults()
+ .list(
+ "contoso-rg1",
+ "contoso-testBaseAccount1",
+ "contoso-package2",
+ "Windows-10-1909-Test-Id",
+ AnalysisResultType.MEMORY_REGRESSION,
+ Context.NONE);
+ }
+
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/CPUUtilizationAnalysisResultsList.json
+ */
+ /**
+ * Sample code: CPUUtilizationAnalysisResultsList.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void cPUUtilizationAnalysisResultsList(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager
+ .analysisResults()
+ .list(
+ "contoso-rg1",
+ "contoso-testBaseAccount1",
+ "contoso-package2",
+ "Windows-10-1909-Test-Id",
+ AnalysisResultType.CPUUTILIZATION,
+ Context.NONE);
+ }
+
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/MemoryUtilizationAnalysisResultsList.json
+ */
+ /**
+ * Sample code: MemoryUtilizationAnalysisResultsList.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void memoryUtilizationAnalysisResultsList(
+ com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager
+ .analysisResults()
+ .list(
+ "contoso-rg1",
+ "contoso-testBaseAccount1",
+ "contoso-package2",
+ "Windows-10-1909-Test-Id",
+ AnalysisResultType.MEMORY_UTILIZATION,
+ Context.NONE);
+ }
+
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/CPURegressionAnalysisResultsList.json
+ */
+ /**
+ * Sample code: CPURegressionAnalysisResultsList.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void cPURegressionAnalysisResultsList(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager
+ .analysisResults()
+ .list(
+ "contoso-rg1",
+ "contoso-testBaseAccount1",
+ "contoso-package2",
+ "Windows-10-1909-Test-Id",
+ AnalysisResultType.CPUREGRESSION,
+ Context.NONE);
+ }
+}
+```
+
+### AvailableOS_Get
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for AvailableOS Get. */
+public final class AvailableOSGetSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/AvailableOSGet.json
+ */
+ /**
+ * Sample code: AvailableOSGet.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void availableOSGet(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager.availableOS().getWithResponse("contoso-rg", "contoso-testBaseAccount", "Windows-10-2004", Context.NONE);
+ }
+}
+```
+
+### AvailableOS_List
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.testbase.models.OsUpdateType;
+
+/** Samples for AvailableOS List. */
+public final class AvailableOSListSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/AvailableOSsList.json
+ */
+ /**
+ * Sample code: AvailableOSsList.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void availableOSsList(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager.availableOS().list("contoso-rg", "contoso-testBaseAccount", OsUpdateType.SECURITY_UPDATE, Context.NONE);
+ }
+}
+```
+
+### CustomerEvents_Create
+
+```java
+import com.azure.resourcemanager.testbase.models.DistributionGroupListReceiverValue;
+import com.azure.resourcemanager.testbase.models.NotificationEventReceiver;
+import com.azure.resourcemanager.testbase.models.NotificationReceiverValue;
+import com.azure.resourcemanager.testbase.models.UserObjectReceiverValue;
+import java.util.Arrays;
+
+/** Samples for CustomerEvents Create. */
+public final class CustomerEventsCreateSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/CustomerEventCreate.json
+ */
+ /**
+ * Sample code: CustomerEventCreate.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void customerEventCreate(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager
+ .customerEvents()
+ .define("WeeklySummary")
+ .withExistingTestBaseAccount("contoso-rg1", "contoso-testBaseAccount1")
+ .withEventName("WeeklySummary")
+ .withReceivers(
+ Arrays
+ .asList(
+ new NotificationEventReceiver()
+ .withReceiverType("UserObjects")
+ .withReceiverValue(
+ new NotificationReceiverValue()
+ .withUserObjectReceiverValue(
+ new UserObjectReceiverValue()
+ .withUserObjectIds(Arrays.asList("245245245245325", "365365365363565")))),
+ new NotificationEventReceiver()
+ .withReceiverType("DistributionGroup")
+ .withReceiverValue(
+ new NotificationReceiverValue()
+ .withDistributionGroupListReceiverValue(
+ new DistributionGroupListReceiverValue()
+ .withDistributionGroups(Arrays.asList("test@microsoft.com"))))))
+ .create();
+ }
+}
+```
+
+### CustomerEvents_Delete
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for CustomerEvents Delete. */
+public final class CustomerEventsDeleteSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/CustomerEventDelete.json
+ */
+ /**
+ * Sample code: CustomerEventDelete.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void customerEventDelete(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager.customerEvents().delete("contoso-rg1", "contoso-testBaseAccount1", "WeeklySummary", Context.NONE);
+ }
+}
+```
+
+### CustomerEvents_Get
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for CustomerEvents Get. */
+public final class CustomerEventsGetSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/CustomerEventGet.json
+ */
+ /**
+ * Sample code: CustomerEventGet.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void customerEventGet(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager
+ .customerEvents()
+ .getWithResponse("contoso-rg1", "contoso-testBaseAccount1", "WeeklySummary", Context.NONE);
+ }
+}
+```
+
+### CustomerEvents_ListByTestBaseAccount
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for CustomerEvents ListByTestBaseAccount. */
+public final class CustomerEventsListByTestBaseAccountSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/CustomerEventsList.json
+ */
+ /**
+ * Sample code: CustomerEventsList.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void customerEventsList(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager.customerEvents().listByTestBaseAccount("contoso-rg1", "contoso-testBaseAccount1", Context.NONE);
+ }
+}
+```
+
+### EmailEvents_Get
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for EmailEvents Get. */
+public final class EmailEventsGetSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/EmailEventGet.json
+ */
+ /**
+ * Sample code: EmailEventGet.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void emailEventGet(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager.emailEvents().getWithResponse("contoso-rg", "contoso-testBaseAccount", "weekly-summary", Context.NONE);
+ }
+}
+```
+
+### EmailEvents_List
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for EmailEvents List. */
+public final class EmailEventsListSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/EmailEventsList.json
+ */
+ /**
+ * Sample code: EmailEventsList.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void emailEventsList(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager.emailEvents().list("contoso-rg", "contoso-testBaseAccount", Context.NONE);
+ }
+}
+```
+
+### FavoriteProcesses_Create
+
+```java
+/** Samples for FavoriteProcesses Create. */
+public final class FavoriteProcessesCreateSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/FavoriteProcessCreate.json
+ */
+ /**
+ * Sample code: FavoriteProcessCreate.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void favoriteProcessCreate(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager
+ .favoriteProcesses()
+ .define("testAppProcess")
+ .withExistingPackage("contoso-rg1", "contoso-testBaseAccount1", "contoso-package2")
+ .withActualProcessName("testApp&.exe")
+ .create();
+ }
+}
+```
+
+### FavoriteProcesses_Delete
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for FavoriteProcesses Delete. */
+public final class FavoriteProcessesDeleteSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/FavoriteProcessDelete.json
+ */
+ /**
+ * Sample code: FavoriteProcessDelete.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void favoriteProcessDelete(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager
+ .favoriteProcesses()
+ .deleteWithResponse(
+ "contoso-rg1", "contoso-testBaseAccount1", "contoso-package2", "testAppProcess", Context.NONE);
+ }
+}
+```
+
+### FavoriteProcesses_Get
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for FavoriteProcesses Get. */
+public final class FavoriteProcessesGetSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/FavoriteProcessGet.json
+ */
+ /**
+ * Sample code: FavoriteProcessGet.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void favoriteProcessGet(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager
+ .favoriteProcesses()
+ .getWithResponse(
+ "contoso-rg1", "contoso-testBaseAccount1", "contoso-package2", "testAppProcess", Context.NONE);
+ }
+}
+```
+
+### FavoriteProcesses_List
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for FavoriteProcesses List. */
+public final class FavoriteProcessesListSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/FavoriteProcessesList.json
+ */
+ /**
+ * Sample code: FavoriteProcessesList.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void favoriteProcessesList(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager.favoriteProcesses().list("contoso-rg1", "contoso-testBaseAccount1", "contoso-package2", Context.NONE);
+ }
+}
+```
+
+### FlightingRings_Get
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for FlightingRings Get. */
+public final class FlightingRingsGetSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/FlightingRingGet.json
+ */
+ /**
+ * Sample code: FlightingRingGet.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void flightingRingGet(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager
+ .flightingRings()
+ .getWithResponse("contoso-rg", "contoso-testBaseAccount", "Insider-Beta-Channel", Context.NONE);
+ }
+}
+```
+
+### FlightingRings_List
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for FlightingRings List. */
+public final class FlightingRingsListSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/FlightingRingsList.json
+ */
+ /**
+ * Sample code: FlightingRingsList.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void flightingRingsList(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager.flightingRings().list("contoso-rg", "contoso-testBaseAccount", Context.NONE);
+ }
+}
+```
+
+### OSUpdates_Get
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for OSUpdates Get. */
+public final class OSUpdatesGetSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/OSUpdateGet.json
+ */
+ /**
+ * Sample code: OSUpdateGet.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void oSUpdateGet(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager
+ .oSUpdates()
+ .getWithResponse(
+ "contoso-rg1",
+ "contoso-testBaseAccount1",
+ "contoso-package2",
+ "Windows-10-2004-2020-12-B-505",
+ Context.NONE);
+ }
+}
+```
+
+### OSUpdates_List
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.testbase.models.OsUpdateType;
+
+/** Samples for OSUpdates List. */
+public final class OSUpdatesListSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/OSUpdatesList.json
+ */
+ /**
+ * Sample code: OSUpdatesList.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void oSUpdatesList(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager
+ .oSUpdates()
+ .list(
+ "contoso-rg1",
+ "contoso-testBaseAccount1",
+ "contoso-package2",
+ OsUpdateType.SECURITY_UPDATE,
+ Context.NONE);
+ }
+}
+```
+
+### Operations_List
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for Operations List. */
+public final class OperationsListSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/OperationsList.json
+ */
+ /**
+ * Sample code: OperationsList.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void operationsList(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager.operations().list(Context.NONE);
+ }
+}
+```
+
+### Packages_Create
+
+```java
+import com.azure.resourcemanager.testbase.models.Action;
+import com.azure.resourcemanager.testbase.models.Command;
+import com.azure.resourcemanager.testbase.models.ContentType;
+import com.azure.resourcemanager.testbase.models.TargetOSInfo;
+import com.azure.resourcemanager.testbase.models.Test;
+import com.azure.resourcemanager.testbase.models.TestType;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+
+/** Samples for Packages Create. */
+public final class PackagesCreateSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/PackageCreate.json
+ */
+ /**
+ * Sample code: PackageCreate.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void packageCreate(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager
+ .packages()
+ .define("contoso-package2")
+ .withRegion("westus")
+ .withExistingTestBaseAccount("contoso-rg1", "contoso-testBaseAccount1")
+ .withTags(mapOf())
+ .withApplicationName("contoso-package2")
+ .withVersion("1.0.0")
+ .withTargetOSList(
+ Arrays
+ .asList(
+ new TargetOSInfo()
+ .withOsUpdateType("Security updates")
+ .withTargetOSs(Arrays.asList("Windows 10 2004", "Windows 10 1903"))))
+ .withFlightingRing("Insider Beta Channel")
+ .withBlobPath("storageAccountPath/package.zip")
+ .withTests(
+ Arrays
+ .asList(
+ new Test()
+ .withTestType(TestType.OUT_OF_BOX_TEST)
+ .withIsActive(true)
+ .withCommands(
+ Arrays
+ .asList(
+ new Command()
+ .withName("Install")
+ .withAction(Action.INSTALL)
+ .withContentType(ContentType.PATH)
+ .withContent("app/scripts/install/job.ps1")
+ .withRunElevated(true)
+ .withRestartAfter(true)
+ .withMaxRunTime(1800)
+ .withRunAsInteractive(true)
+ .withAlwaysRun(true)
+ .withApplyUpdateBefore(false),
+ new Command()
+ .withName("Launch")
+ .withAction(Action.LAUNCH)
+ .withContentType(ContentType.PATH)
+ .withContent("app/scripts/launch/job.ps1")
+ .withRunElevated(true)
+ .withRestartAfter(false)
+ .withMaxRunTime(1800)
+ .withRunAsInteractive(true)
+ .withAlwaysRun(false)
+ .withApplyUpdateBefore(true),
+ new Command()
+ .withName("Close")
+ .withAction(Action.CLOSE)
+ .withContentType(ContentType.PATH)
+ .withContent("app/scripts/close/job.ps1")
+ .withRunElevated(true)
+ .withRestartAfter(false)
+ .withMaxRunTime(1800)
+ .withRunAsInteractive(true)
+ .withAlwaysRun(false)
+ .withApplyUpdateBefore(false),
+ new Command()
+ .withName("Uninstall")
+ .withAction(Action.UNINSTALL)
+ .withContentType(ContentType.PATH)
+ .withContent("app/scripts/uninstall/job.ps1")
+ .withRunElevated(true)
+ .withRestartAfter(false)
+ .withMaxRunTime(1800)
+ .withRunAsInteractive(true)
+ .withAlwaysRun(true)
+ .withApplyUpdateBefore(false)))))
+ .create();
+ }
+
+ @SuppressWarnings("unchecked")
+ private static Map mapOf(Object... inputs) {
+ Map map = new HashMap<>();
+ for (int i = 0; i < inputs.length; i += 2) {
+ String key = (String) inputs[i];
+ T value = (T) inputs[i + 1];
+ map.put(key, value);
+ }
+ return map;
+ }
+}
+```
+
+### Packages_Delete
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for Packages Delete. */
+public final class PackagesDeleteSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/PackageDelete.json
+ */
+ /**
+ * Sample code: PackageDelete.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void packageDelete(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager.packages().delete("contoso-rg1", "contoso-testBaseAccount1", "contoso-package2", Context.NONE);
+ }
+}
+```
+
+### Packages_Get
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for Packages Get. */
+public final class PackagesGetSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/PackageGet.json
+ */
+ /**
+ * Sample code: PackageGet.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void packageGet(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager.packages().getWithResponse("contoso-rg1", "contoso-testBaseAccount1", "contoso-package2", Context.NONE);
+ }
+}
+```
+
+### Packages_GetDownloadUrl
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for Packages GetDownloadUrl. */
+public final class PackagesGetDownloadUrlSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/PackageGetDownloadURL.json
+ */
+ /**
+ * Sample code: PackageGetDownloadURL.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void packageGetDownloadURL(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager
+ .packages()
+ .getDownloadUrlWithResponse("contoso-rg1", "contoso-testBaseAccount1", "contoso-package2", Context.NONE);
+ }
+}
+```
+
+### Packages_HardDelete
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for Packages HardDelete. */
+public final class PackagesHardDeleteSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/PackageHardDelete.json
+ */
+ /**
+ * Sample code: PackageHardDelete.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void packageHardDelete(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager.packages().hardDelete("contoso-rg1", "contoso-testBaseAccount1", "contoso-package2", Context.NONE);
+ }
+}
+```
+
+### Packages_ListByTestBaseAccount
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for Packages ListByTestBaseAccount. */
+public final class PackagesListByTestBaseAccountSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/PackagesList.json
+ */
+ /**
+ * Sample code: PackagesList.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void packagesList(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager.packages().listByTestBaseAccount("contoso-rg1", "contoso-testBaseAccount1", Context.NONE);
+ }
+}
+```
+
+### Packages_Update
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.testbase.models.Action;
+import com.azure.resourcemanager.testbase.models.Command;
+import com.azure.resourcemanager.testbase.models.ContentType;
+import com.azure.resourcemanager.testbase.models.PackageResource;
+import com.azure.resourcemanager.testbase.models.TargetOSInfo;
+import com.azure.resourcemanager.testbase.models.Test;
+import com.azure.resourcemanager.testbase.models.TestType;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+
+/** Samples for Packages Update. */
+public final class PackagesUpdateSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/PackageUpdate.json
+ */
+ /**
+ * Sample code: PackageUpdate.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void packageUpdate(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ PackageResource resource =
+ manager
+ .packages()
+ .getWithResponse("contoso-rg1", "contoso-testBaseAccount1", "contoso-package2", Context.NONE)
+ .getValue();
+ resource
+ .update()
+ .withTags(mapOf())
+ .withTargetOSList(
+ Arrays
+ .asList(
+ new TargetOSInfo()
+ .withOsUpdateType("Security updates")
+ .withTargetOSs(Arrays.asList("Windows 10 2004", "Windows 10 1903"))))
+ .withFlightingRing("Insider Beta Channel")
+ .withIsEnabled(false)
+ .withBlobPath("storageAccountPath/package.zip")
+ .withTests(
+ Arrays
+ .asList(
+ new Test()
+ .withTestType(TestType.OUT_OF_BOX_TEST)
+ .withIsActive(true)
+ .withCommands(
+ Arrays
+ .asList(
+ new Command()
+ .withName("Install")
+ .withAction(Action.INSTALL)
+ .withContentType(ContentType.PATH)
+ .withContent("app/scripts/install/job.ps1")
+ .withRunElevated(true)
+ .withRestartAfter(true)
+ .withMaxRunTime(1800)
+ .withRunAsInteractive(true)
+ .withAlwaysRun(true)
+ .withApplyUpdateBefore(false),
+ new Command()
+ .withName("Launch")
+ .withAction(Action.LAUNCH)
+ .withContentType(ContentType.PATH)
+ .withContent("app/scripts/launch/job.ps1")
+ .withRunElevated(true)
+ .withRestartAfter(false)
+ .withMaxRunTime(1800)
+ .withRunAsInteractive(true)
+ .withAlwaysRun(false)
+ .withApplyUpdateBefore(true),
+ new Command()
+ .withName("Close")
+ .withAction(Action.CLOSE)
+ .withContentType(ContentType.PATH)
+ .withContent("app/scripts/close/job.ps1")
+ .withRunElevated(true)
+ .withRestartAfter(false)
+ .withMaxRunTime(1800)
+ .withRunAsInteractive(true)
+ .withAlwaysRun(false)
+ .withApplyUpdateBefore(false),
+ new Command()
+ .withName("Uninstall")
+ .withAction(Action.UNINSTALL)
+ .withContentType(ContentType.PATH)
+ .withContent("app/scripts/uninstall/job.ps1")
+ .withRunElevated(true)
+ .withRestartAfter(false)
+ .withMaxRunTime(1800)
+ .withRunAsInteractive(true)
+ .withAlwaysRun(true)
+ .withApplyUpdateBefore(false)))))
+ .apply();
+ }
+
+ @SuppressWarnings("unchecked")
+ private static Map mapOf(Object... inputs) {
+ Map map = new HashMap<>();
+ for (int i = 0; i < inputs.length; i += 2) {
+ String key = (String) inputs[i];
+ T value = (T) inputs[i + 1];
+ map.put(key, value);
+ }
+ return map;
+ }
+}
+```
+
+### Skus_List
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for Skus List. */
+public final class SkusListSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/TestBaseAccountSKUsList.json
+ */
+ /**
+ * Sample code: TestBaseAccountSKUsList.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void testBaseAccountSKUsList(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager.skus().list(Context.NONE);
+ }
+}
+```
+
+### TestBaseAccounts_CheckPackageNameAvailability
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.testbase.models.PackageCheckNameAvailabilityParameters;
+
+/** Samples for TestBaseAccounts CheckPackageNameAvailability. */
+public final class TestBaseAccountsCheckPackageNameAvailabilitySamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/CheckPackageNameAvailability.json
+ */
+ /**
+ * Sample code: CheckPackageNameAvailability.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void checkPackageNameAvailability(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager
+ .testBaseAccounts()
+ .checkPackageNameAvailabilityWithResponse(
+ "contoso-rg1",
+ "contoso-testBaseAccount1",
+ new PackageCheckNameAvailabilityParameters()
+ .withName("testApp")
+ .withApplicationName("testApp")
+ .withVersion("1.0.0")
+ .withType("Microsoft.TestBase/testBaseAccounts/packages"),
+ Context.NONE);
+ }
+}
+```
+
+### TestBaseAccounts_Create
+
+```java
+import com.azure.resourcemanager.testbase.fluent.models.TestBaseAccountSkuInner;
+import com.azure.resourcemanager.testbase.models.Tier;
+
+/** Samples for TestBaseAccounts Create. */
+public final class TestBaseAccountsCreateSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/TestBaseAccountCreate.json
+ */
+ /**
+ * Sample code: TestBaseAccountCreate.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void testBaseAccountCreate(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager
+ .testBaseAccounts()
+ .define("contoso-testBaseAccount1")
+ .withRegion("westus")
+ .withExistingResourceGroup("contoso-rg1")
+ .withSku(new TestBaseAccountSkuInner().withName("S0").withTier(Tier.STANDARD))
+ .create();
+ }
+}
+```
+
+### TestBaseAccounts_Delete
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for TestBaseAccounts Delete. */
+public final class TestBaseAccountsDeleteSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/TestBaseAccountDelete.json
+ */
+ /**
+ * Sample code: TestBaseAccountDelete.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void testBaseAccountDelete(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager.testBaseAccounts().delete("contoso-rg1", "contoso-testBaseAccount1", Context.NONE);
+ }
+}
+```
+
+### TestBaseAccounts_GetByResourceGroup
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for TestBaseAccounts GetByResourceGroup. */
+public final class TestBaseAccountsGetByResourceGroupSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/TestBaseAccountGet.json
+ */
+ /**
+ * Sample code: TestBaseAccountGet.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void testBaseAccountGet(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager
+ .testBaseAccounts()
+ .getByResourceGroupWithResponse("contoso-rg1", "contoso-testBaseAccount1", Context.NONE);
+ }
+}
+```
+
+### TestBaseAccounts_GetFileUploadUrl
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.testbase.models.GetFileUploadUrlParameters;
+
+/** Samples for TestBaseAccounts GetFileUploadUrl. */
+public final class TestBaseAccountsGetFileUploadUrlSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/TestBaseAccountGetFileUploadUrl.json
+ */
+ /**
+ * Sample code: TestBaseAccountGetFileUploadUrl.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void testBaseAccountGetFileUploadUrl(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager
+ .testBaseAccounts()
+ .getFileUploadUrlWithResponse(
+ "contoso-rg1",
+ "contoso-testBaseAccount1",
+ new GetFileUploadUrlParameters().withBlobName("package.zip"),
+ Context.NONE);
+ }
+}
+```
+
+### TestBaseAccounts_List
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for TestBaseAccounts List. */
+public final class TestBaseAccountsListSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/TestBaseAccountsListBySubscription.json
+ */
+ /**
+ * Sample code: TestBaseAccountsListBySubscription.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void testBaseAccountsListBySubscription(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager.testBaseAccounts().list(null, Context.NONE);
+ }
+}
+```
+
+### TestBaseAccounts_ListByResourceGroup
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for TestBaseAccounts ListByResourceGroup. */
+public final class TestBaseAccountsListByResourceGroupSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/TestBaseAccountsList.json
+ */
+ /**
+ * Sample code: TestBaseAccountsList.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void testBaseAccountsList(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager.testBaseAccounts().listByResourceGroup("contoso-rg1", null, Context.NONE);
+ }
+}
+```
+
+### TestBaseAccounts_Offboard
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for TestBaseAccounts Offboard. */
+public final class TestBaseAccountsOffboardSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/TestBaseAccountOffboard.json
+ */
+ /**
+ * Sample code: TestBaseAccountOffboard.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void testBaseAccountOffboard(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager.testBaseAccounts().offboard("contoso-rg1", "contoso-testBaseAccount1", Context.NONE);
+ }
+}
+```
+
+### TestBaseAccounts_Update
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.testbase.fluent.models.TestBaseAccountSkuInner;
+import com.azure.resourcemanager.testbase.models.TestBaseAccountResource;
+import com.azure.resourcemanager.testbase.models.Tier;
+
+/** Samples for TestBaseAccounts Update. */
+public final class TestBaseAccountsUpdateSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/TestBaseAccountUpdate.json
+ */
+ /**
+ * Sample code: TestBaseAccountUpdate.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void testBaseAccountUpdate(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ TestBaseAccountResource resource =
+ manager
+ .testBaseAccounts()
+ .getByResourceGroupWithResponse("contoso-rg1", "contoso-testBaseAccount1", Context.NONE)
+ .getValue();
+ resource.update().withSku(new TestBaseAccountSkuInner().withName("S0").withTier(Tier.STANDARD)).apply();
+ }
+}
+```
+
+### TestResults_Get
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for TestResults Get. */
+public final class TestResultsGetSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/TestResultGet.json
+ */
+ /**
+ * Sample code: TestResultGet.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void testResultGet(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager
+ .testResults()
+ .getWithResponse(
+ "contoso-rg1",
+ "contoso-testBaseAccount1",
+ "contoso-package2",
+ "Windows-10-1909-99b1f80d-03a9-4148-997f-806ba5bac8e0",
+ Context.NONE);
+ }
+}
+```
+
+### TestResults_GetDownloadUrl
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for TestResults GetDownloadUrl. */
+public final class TestResultsGetDownloadUrlSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/TestResultGetDownloadURL.json
+ */
+ /**
+ * Sample code: TestResultGetDownloadURL.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void testResultGetDownloadURL(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager
+ .testResults()
+ .getDownloadUrlWithResponse(
+ "contoso-rg1",
+ "contoso-testBaseAccount1",
+ "contoso-package2",
+ "Windows-10-1909-99b1f80d-03a9-4148-997f-806ba5bac8e0",
+ Context.NONE);
+ }
+}
+```
+
+### TestResults_GetVideoDownloadUrl
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for TestResults GetVideoDownloadUrl. */
+public final class TestResultsGetVideoDownloadUrlSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/TestResultGetVideoDownloadURL.json
+ */
+ /**
+ * Sample code: TestResultGetVideoDownloadURL.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void testResultGetVideoDownloadURL(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager
+ .testResults()
+ .getVideoDownloadUrlWithResponse(
+ "contoso-rg1",
+ "contoso-testBaseAccount1",
+ "contoso-package2",
+ "Windows-10-1909-99b1f80d-03a9-4148-997f-806ba5bac8e0",
+ Context.NONE);
+ }
+}
+```
+
+### TestResults_List
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.testbase.models.OsUpdateType;
+
+/** Samples for TestResults List. */
+public final class TestResultsListSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/TestResultsList.json
+ */
+ /**
+ * Sample code: TestResultsList.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void testResultsList(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager
+ .testResults()
+ .list(
+ "contoso-rg1",
+ "contoso-testBaseAccount1",
+ "contoso-package2",
+ OsUpdateType.SECURITY_UPDATE,
+ "osName eq 'Windows 10 2004' and releaseName eq '2020.11B'",
+ Context.NONE);
+ }
+}
+```
+
+### TestSummaries_Get
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for TestSummaries Get. */
+public final class TestSummariesGetSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/TestSummaryGet.json
+ */
+ /**
+ * Sample code: TestSummaryGet.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void testSummaryGet(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager
+ .testSummaries()
+ .getWithResponse(
+ "contoso-rg1",
+ "contoso-testBaseAccount1",
+ "contoso-package2-096bffb5-5d3d-4305-a66a-953372ed6e88",
+ Context.NONE);
+ }
+}
+```
+
+### TestSummaries_List
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for TestSummaries List. */
+public final class TestSummariesListSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/TestSummariesList.json
+ */
+ /**
+ * Sample code: TestSummariesList.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void testSummariesList(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager.testSummaries().list("contoso-rg1", "contoso-testBaseAccount1", Context.NONE);
+ }
+}
+```
+
+### TestTypes_Get
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for TestTypes Get. */
+public final class TestTypesGetSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/TestTypeGet.json
+ */
+ /**
+ * Sample code: TestTypeGet.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void testTypeGet(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager.testTypes().getWithResponse("contoso-rg", "contoso-testBaseAccount", "Functional-Test", Context.NONE);
+ }
+}
+```
+
+### TestTypes_List
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for TestTypes List. */
+public final class TestTypesListSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/TestTypesList.json
+ */
+ /**
+ * Sample code: TestTypesList.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void testTypesList(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager.testTypes().list("contoso-rg", "contoso-testBaseAccount", Context.NONE);
+ }
+}
+```
+
+### Usage_List
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for Usage List. */
+public final class UsageListSamples {
+ /*
+ * x-ms-original-file: specification/testbase/resource-manager/Microsoft.TestBase/preview/2020-12-16-preview/examples/TestBaseAccountUsagesList.json
+ */
+ /**
+ * Sample code: TestBaseAccountUsagesList.
+ *
+ * @param manager Entry point to TestBaseManager.
+ */
+ public static void testBaseAccountUsagesList(com.azure.resourcemanager.testbase.TestBaseManager manager) {
+ manager.usages().list("contoso-rg1", "contoso-testBaseAccount1", null, Context.NONE);
+ }
+}
+```
+
diff --git a/sdk/testbase/azure-resourcemanager-testbase/pom.xml b/sdk/testbase/azure-resourcemanager-testbase/pom.xml
new file mode 100644
index 000000000000..11dca7ed0f4b
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/pom.xml
@@ -0,0 +1,55 @@
+
+ 4.0.0
+
+ com.azure
+ azure-client-sdk-parent
+ 1.7.0
+ ../../parents/azure-client-sdk-parent
+
+
+ com.azure.resourcemanager
+ azure-resourcemanager-testbase
+ 1.0.0-beta.1
+ jar
+
+ Microsoft Azure SDK for TestBase Management
+ This package contains Microsoft Azure SDK for TestBase Management SDK. For documentation on how to use this package, please see https://aka.ms/azsdk/java/mgmt. Test Base. Package tag package-2020-12-16-preview.
+ https://github.com/Azure/azure-sdk-for-java
+
+
+
+ The MIT License (MIT)
+ http://opensource.org/licenses/MIT
+ repo
+
+
+
+
+ https://github.com/Azure/azure-sdk-for-java
+ scm:git:git@github.com:Azure/azure-sdk-for-java.git
+ scm:git:git@github.com:Azure/azure-sdk-for-java.git
+ HEAD
+
+
+
+ microsoft
+ Microsoft
+
+
+
+ UTF-8
+ true
+
+
+
+ com.azure
+ azure-core
+ 1.26.0
+
+
+ com.azure
+ azure-core-management
+ 1.5.3
+
+
+
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/TestBaseManager.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/TestBaseManager.java
new file mode 100644
index 000000000000..c2a288a53acb
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/TestBaseManager.java
@@ -0,0 +1,412 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase;
+
+import com.azure.core.credential.TokenCredential;
+import com.azure.core.http.HttpClient;
+import com.azure.core.http.HttpPipeline;
+import com.azure.core.http.HttpPipelineBuilder;
+import com.azure.core.http.HttpPipelinePosition;
+import com.azure.core.http.policy.AddDatePolicy;
+import com.azure.core.http.policy.HttpLogOptions;
+import com.azure.core.http.policy.HttpLoggingPolicy;
+import com.azure.core.http.policy.HttpPipelinePolicy;
+import com.azure.core.http.policy.HttpPolicyProviders;
+import com.azure.core.http.policy.RequestIdPolicy;
+import com.azure.core.http.policy.RetryPolicy;
+import com.azure.core.http.policy.UserAgentPolicy;
+import com.azure.core.management.http.policy.ArmChallengeAuthenticationPolicy;
+import com.azure.core.management.profile.AzureProfile;
+import com.azure.core.util.Configuration;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.testbase.fluent.TestBase;
+import com.azure.resourcemanager.testbase.implementation.AnalysisResultsImpl;
+import com.azure.resourcemanager.testbase.implementation.AvailableOSImpl;
+import com.azure.resourcemanager.testbase.implementation.CustomerEventsImpl;
+import com.azure.resourcemanager.testbase.implementation.EmailEventsImpl;
+import com.azure.resourcemanager.testbase.implementation.FavoriteProcessesImpl;
+import com.azure.resourcemanager.testbase.implementation.FlightingRingsImpl;
+import com.azure.resourcemanager.testbase.implementation.OSUpdatesImpl;
+import com.azure.resourcemanager.testbase.implementation.OperationsImpl;
+import com.azure.resourcemanager.testbase.implementation.PackagesImpl;
+import com.azure.resourcemanager.testbase.implementation.SkusImpl;
+import com.azure.resourcemanager.testbase.implementation.TestBaseAccountsImpl;
+import com.azure.resourcemanager.testbase.implementation.TestBaseBuilder;
+import com.azure.resourcemanager.testbase.implementation.TestResultsImpl;
+import com.azure.resourcemanager.testbase.implementation.TestSummariesImpl;
+import com.azure.resourcemanager.testbase.implementation.TestTypesImpl;
+import com.azure.resourcemanager.testbase.implementation.UsagesImpl;
+import com.azure.resourcemanager.testbase.models.AnalysisResults;
+import com.azure.resourcemanager.testbase.models.AvailableOS;
+import com.azure.resourcemanager.testbase.models.CustomerEvents;
+import com.azure.resourcemanager.testbase.models.EmailEvents;
+import com.azure.resourcemanager.testbase.models.FavoriteProcesses;
+import com.azure.resourcemanager.testbase.models.FlightingRings;
+import com.azure.resourcemanager.testbase.models.OSUpdates;
+import com.azure.resourcemanager.testbase.models.Operations;
+import com.azure.resourcemanager.testbase.models.Packages;
+import com.azure.resourcemanager.testbase.models.Skus;
+import com.azure.resourcemanager.testbase.models.TestBaseAccounts;
+import com.azure.resourcemanager.testbase.models.TestResults;
+import com.azure.resourcemanager.testbase.models.TestSummaries;
+import com.azure.resourcemanager.testbase.models.TestTypes;
+import com.azure.resourcemanager.testbase.models.Usages;
+import java.time.Duration;
+import java.time.temporal.ChronoUnit;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+/** Entry point to TestBaseManager. Test Base. */
+public final class TestBaseManager {
+ private Skus skus;
+
+ private TestBaseAccounts testBaseAccounts;
+
+ private Usages usages;
+
+ private AvailableOS availableOS;
+
+ private FlightingRings flightingRings;
+
+ private TestTypes testTypes;
+
+ private Packages packages;
+
+ private TestSummaries testSummaries;
+
+ private TestResults testResults;
+
+ private OSUpdates oSUpdates;
+
+ private FavoriteProcesses favoriteProcesses;
+
+ private AnalysisResults analysisResults;
+
+ private EmailEvents emailEvents;
+
+ private CustomerEvents customerEvents;
+
+ private Operations operations;
+
+ private final TestBase clientObject;
+
+ private TestBaseManager(HttpPipeline httpPipeline, AzureProfile profile, Duration defaultPollInterval) {
+ Objects.requireNonNull(httpPipeline, "'httpPipeline' cannot be null.");
+ Objects.requireNonNull(profile, "'profile' cannot be null.");
+ this.clientObject =
+ new TestBaseBuilder()
+ .pipeline(httpPipeline)
+ .endpoint(profile.getEnvironment().getResourceManagerEndpoint())
+ .subscriptionId(profile.getSubscriptionId())
+ .defaultPollInterval(defaultPollInterval)
+ .buildClient();
+ }
+
+ /**
+ * Creates an instance of TestBase service API entry point.
+ *
+ * @param credential the credential to use.
+ * @param profile the Azure profile for client.
+ * @return the TestBase service API instance.
+ */
+ public static TestBaseManager authenticate(TokenCredential credential, AzureProfile profile) {
+ Objects.requireNonNull(credential, "'credential' cannot be null.");
+ Objects.requireNonNull(profile, "'profile' cannot be null.");
+ return configure().authenticate(credential, profile);
+ }
+
+ /**
+ * Gets a Configurable instance that can be used to create TestBaseManager with optional configuration.
+ *
+ * @return the Configurable instance allowing configurations.
+ */
+ public static Configurable configure() {
+ return new TestBaseManager.Configurable();
+ }
+
+ /** The Configurable allowing configurations to be set. */
+ public static final class Configurable {
+ private static final ClientLogger LOGGER = new ClientLogger(Configurable.class);
+
+ private HttpClient httpClient;
+ private HttpLogOptions httpLogOptions;
+ private final List policies = new ArrayList<>();
+ private final List scopes = new ArrayList<>();
+ private RetryPolicy retryPolicy;
+ private Duration defaultPollInterval;
+
+ private Configurable() {
+ }
+
+ /**
+ * Sets the http client.
+ *
+ * @param httpClient the HTTP client.
+ * @return the configurable object itself.
+ */
+ public Configurable withHttpClient(HttpClient httpClient) {
+ this.httpClient = Objects.requireNonNull(httpClient, "'httpClient' cannot be null.");
+ return this;
+ }
+
+ /**
+ * Sets the logging options to the HTTP pipeline.
+ *
+ * @param httpLogOptions the HTTP log options.
+ * @return the configurable object itself.
+ */
+ public Configurable withLogOptions(HttpLogOptions httpLogOptions) {
+ this.httpLogOptions = Objects.requireNonNull(httpLogOptions, "'httpLogOptions' cannot be null.");
+ return this;
+ }
+
+ /**
+ * Adds the pipeline policy to the HTTP pipeline.
+ *
+ * @param policy the HTTP pipeline policy.
+ * @return the configurable object itself.
+ */
+ public Configurable withPolicy(HttpPipelinePolicy policy) {
+ this.policies.add(Objects.requireNonNull(policy, "'policy' cannot be null."));
+ return this;
+ }
+
+ /**
+ * Adds the scope to permission sets.
+ *
+ * @param scope the scope.
+ * @return the configurable object itself.
+ */
+ public Configurable withScope(String scope) {
+ this.scopes.add(Objects.requireNonNull(scope, "'scope' cannot be null."));
+ return this;
+ }
+
+ /**
+ * Sets the retry policy to the HTTP pipeline.
+ *
+ * @param retryPolicy the HTTP pipeline retry policy.
+ * @return the configurable object itself.
+ */
+ public Configurable withRetryPolicy(RetryPolicy retryPolicy) {
+ this.retryPolicy = Objects.requireNonNull(retryPolicy, "'retryPolicy' cannot be null.");
+ return this;
+ }
+
+ /**
+ * Sets the default poll interval, used when service does not provide "Retry-After" header.
+ *
+ * @param defaultPollInterval the default poll interval.
+ * @return the configurable object itself.
+ */
+ public Configurable withDefaultPollInterval(Duration defaultPollInterval) {
+ this.defaultPollInterval =
+ Objects.requireNonNull(defaultPollInterval, "'defaultPollInterval' cannot be null.");
+ if (this.defaultPollInterval.isNegative()) {
+ throw LOGGER
+ .logExceptionAsError(new IllegalArgumentException("'defaultPollInterval' cannot be negative"));
+ }
+ return this;
+ }
+
+ /**
+ * Creates an instance of TestBase service API entry point.
+ *
+ * @param credential the credential to use.
+ * @param profile the Azure profile for client.
+ * @return the TestBase service API instance.
+ */
+ public TestBaseManager authenticate(TokenCredential credential, AzureProfile profile) {
+ Objects.requireNonNull(credential, "'credential' cannot be null.");
+ Objects.requireNonNull(profile, "'profile' cannot be null.");
+
+ StringBuilder userAgentBuilder = new StringBuilder();
+ userAgentBuilder
+ .append("azsdk-java")
+ .append("-")
+ .append("com.azure.resourcemanager.testbase")
+ .append("/")
+ .append("1.0.0-beta.1");
+ if (!Configuration.getGlobalConfiguration().get("AZURE_TELEMETRY_DISABLED", false)) {
+ userAgentBuilder
+ .append(" (")
+ .append(Configuration.getGlobalConfiguration().get("java.version"))
+ .append("; ")
+ .append(Configuration.getGlobalConfiguration().get("os.name"))
+ .append("; ")
+ .append(Configuration.getGlobalConfiguration().get("os.version"))
+ .append("; auto-generated)");
+ } else {
+ userAgentBuilder.append(" (auto-generated)");
+ }
+
+ if (scopes.isEmpty()) {
+ scopes.add(profile.getEnvironment().getManagementEndpoint() + "/.default");
+ }
+ if (retryPolicy == null) {
+ retryPolicy = new RetryPolicy("Retry-After", ChronoUnit.SECONDS);
+ }
+ List policies = new ArrayList<>();
+ policies.add(new UserAgentPolicy(userAgentBuilder.toString()));
+ policies.add(new RequestIdPolicy());
+ policies
+ .addAll(
+ this
+ .policies
+ .stream()
+ .filter(p -> p.getPipelinePosition() == HttpPipelinePosition.PER_CALL)
+ .collect(Collectors.toList()));
+ HttpPolicyProviders.addBeforeRetryPolicies(policies);
+ policies.add(retryPolicy);
+ policies.add(new AddDatePolicy());
+ policies.add(new ArmChallengeAuthenticationPolicy(credential, scopes.toArray(new String[0])));
+ policies
+ .addAll(
+ this
+ .policies
+ .stream()
+ .filter(p -> p.getPipelinePosition() == HttpPipelinePosition.PER_RETRY)
+ .collect(Collectors.toList()));
+ HttpPolicyProviders.addAfterRetryPolicies(policies);
+ policies.add(new HttpLoggingPolicy(httpLogOptions));
+ HttpPipeline httpPipeline =
+ new HttpPipelineBuilder()
+ .httpClient(httpClient)
+ .policies(policies.toArray(new HttpPipelinePolicy[0]))
+ .build();
+ return new TestBaseManager(httpPipeline, profile, defaultPollInterval);
+ }
+ }
+
+ /** @return Resource collection API of Skus. */
+ public Skus skus() {
+ if (this.skus == null) {
+ this.skus = new SkusImpl(clientObject.getSkus(), this);
+ }
+ return skus;
+ }
+
+ /** @return Resource collection API of TestBaseAccounts. */
+ public TestBaseAccounts testBaseAccounts() {
+ if (this.testBaseAccounts == null) {
+ this.testBaseAccounts = new TestBaseAccountsImpl(clientObject.getTestBaseAccounts(), this);
+ }
+ return testBaseAccounts;
+ }
+
+ /** @return Resource collection API of Usages. */
+ public Usages usages() {
+ if (this.usages == null) {
+ this.usages = new UsagesImpl(clientObject.getUsages(), this);
+ }
+ return usages;
+ }
+
+ /** @return Resource collection API of AvailableOS. */
+ public AvailableOS availableOS() {
+ if (this.availableOS == null) {
+ this.availableOS = new AvailableOSImpl(clientObject.getAvailableOS(), this);
+ }
+ return availableOS;
+ }
+
+ /** @return Resource collection API of FlightingRings. */
+ public FlightingRings flightingRings() {
+ if (this.flightingRings == null) {
+ this.flightingRings = new FlightingRingsImpl(clientObject.getFlightingRings(), this);
+ }
+ return flightingRings;
+ }
+
+ /** @return Resource collection API of TestTypes. */
+ public TestTypes testTypes() {
+ if (this.testTypes == null) {
+ this.testTypes = new TestTypesImpl(clientObject.getTestTypes(), this);
+ }
+ return testTypes;
+ }
+
+ /** @return Resource collection API of Packages. */
+ public Packages packages() {
+ if (this.packages == null) {
+ this.packages = new PackagesImpl(clientObject.getPackages(), this);
+ }
+ return packages;
+ }
+
+ /** @return Resource collection API of TestSummaries. */
+ public TestSummaries testSummaries() {
+ if (this.testSummaries == null) {
+ this.testSummaries = new TestSummariesImpl(clientObject.getTestSummaries(), this);
+ }
+ return testSummaries;
+ }
+
+ /** @return Resource collection API of TestResults. */
+ public TestResults testResults() {
+ if (this.testResults == null) {
+ this.testResults = new TestResultsImpl(clientObject.getTestResults(), this);
+ }
+ return testResults;
+ }
+
+ /** @return Resource collection API of OSUpdates. */
+ public OSUpdates oSUpdates() {
+ if (this.oSUpdates == null) {
+ this.oSUpdates = new OSUpdatesImpl(clientObject.getOSUpdates(), this);
+ }
+ return oSUpdates;
+ }
+
+ /** @return Resource collection API of FavoriteProcesses. */
+ public FavoriteProcesses favoriteProcesses() {
+ if (this.favoriteProcesses == null) {
+ this.favoriteProcesses = new FavoriteProcessesImpl(clientObject.getFavoriteProcesses(), this);
+ }
+ return favoriteProcesses;
+ }
+
+ /** @return Resource collection API of AnalysisResults. */
+ public AnalysisResults analysisResults() {
+ if (this.analysisResults == null) {
+ this.analysisResults = new AnalysisResultsImpl(clientObject.getAnalysisResults(), this);
+ }
+ return analysisResults;
+ }
+
+ /** @return Resource collection API of EmailEvents. */
+ public EmailEvents emailEvents() {
+ if (this.emailEvents == null) {
+ this.emailEvents = new EmailEventsImpl(clientObject.getEmailEvents(), this);
+ }
+ return emailEvents;
+ }
+
+ /** @return Resource collection API of CustomerEvents. */
+ public CustomerEvents customerEvents() {
+ if (this.customerEvents == null) {
+ this.customerEvents = new CustomerEventsImpl(clientObject.getCustomerEvents(), this);
+ }
+ return customerEvents;
+ }
+
+ /** @return Resource collection API of Operations. */
+ public Operations operations() {
+ if (this.operations == null) {
+ this.operations = new OperationsImpl(clientObject.getOperations(), this);
+ }
+ return operations;
+ }
+
+ /**
+ * @return Wrapped service client TestBase providing direct access to the underlying auto-generated API
+ * implementation, based on Azure REST API.
+ */
+ public TestBase serviceClient() {
+ return this.clientObject;
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/AnalysisResultsClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/AnalysisResultsClient.java
new file mode 100644
index 000000000000..27538e05c359
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/AnalysisResultsClient.java
@@ -0,0 +1,107 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.testbase.fluent.models.AnalysisResultSingletonResourceInner;
+import com.azure.resourcemanager.testbase.models.AnalysisResultName;
+import com.azure.resourcemanager.testbase.models.AnalysisResultType;
+
+/** An instance of this class provides access to all the operations defined in AnalysisResultsClient. */
+public interface AnalysisResultsClient {
+ /**
+ * Lists the Analysis Results of a Test Result. The result collection will only contain one element as all the data
+ * will be nested in a singleton object.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param testResultName The Test Result Name. It equals to {osName}-{TestResultId} string.
+ * @param analysisResultType The type of the Analysis Result of a Test Result.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Analysis Results as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ AnalysisResultType analysisResultType);
+
+ /**
+ * Lists the Analysis Results of a Test Result. The result collection will only contain one element as all the data
+ * will be nested in a singleton object.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param testResultName The Test Result Name. It equals to {osName}-{TestResultId} string.
+ * @param analysisResultType The type of the Analysis Result of a Test Result.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Analysis Results as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ AnalysisResultType analysisResultType,
+ Context context);
+
+ /**
+ * Gets an Analysis Result of a Test Result by name.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param testResultName The Test Result Name. It equals to {osName}-{TestResultId} string.
+ * @param analysisResultName The name of the Analysis Result of a Test Result.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an Analysis Result of a Test Result by name.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AnalysisResultSingletonResourceInner get(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ AnalysisResultName analysisResultName);
+
+ /**
+ * Gets an Analysis Result of a Test Result by name.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param testResultName The Test Result Name. It equals to {osName}-{TestResultId} string.
+ * @param analysisResultName The name of the Analysis Result of a Test Result.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an Analysis Result of a Test Result by name along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ AnalysisResultName analysisResultName,
+ Context context);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/AvailableOSClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/AvailableOSClient.java
new file mode 100644
index 000000000000..2da75074f9d6
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/AvailableOSClient.java
@@ -0,0 +1,77 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.testbase.fluent.models.AvailableOSResourceInner;
+import com.azure.resourcemanager.testbase.models.OsUpdateType;
+
+/** An instance of this class provides access to all the operations defined in AvailableOSClient. */
+public interface AvailableOSClient {
+ /**
+ * Lists all the available OSs to run a package under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param osUpdateType The type of the OS Update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of available OSs as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String resourceGroupName, String testBaseAccountName, OsUpdateType osUpdateType);
+
+ /**
+ * Lists all the available OSs to run a package under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param osUpdateType The type of the OS Update.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of available OSs as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String resourceGroupName, String testBaseAccountName, OsUpdateType osUpdateType, Context context);
+
+ /**
+ * Gets an available OS to run a package under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param availableOSResourceName The resource name of an Available OS.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an available OS to run a package under a Test Base Account.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AvailableOSResourceInner get(String resourceGroupName, String testBaseAccountName, String availableOSResourceName);
+
+ /**
+ * Gets an available OS to run a package under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param availableOSResourceName The resource name of an Available OS.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an available OS to run a package under a Test Base Account along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String testBaseAccountName, String availableOSResourceName, Context context);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/CustomerEventsClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/CustomerEventsClient.java
new file mode 100644
index 000000000000..6566485a16e2
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/CustomerEventsClient.java
@@ -0,0 +1,214 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.testbase.fluent.models.CustomerEventResourceInner;
+
+/** An instance of this class provides access to all the operations defined in CustomerEventsClient. */
+public interface CustomerEventsClient {
+ /**
+ * Lists all notification events subscribed under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Base Customer Events as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByTestBaseAccount(
+ String resourceGroupName, String testBaseAccountName);
+
+ /**
+ * Lists all notification events subscribed under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Base Customer Events as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByTestBaseAccount(
+ String resourceGroupName, String testBaseAccountName, Context context);
+
+ /**
+ * Create or replace a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param parameters Parameters supplied to create a Test Base CustomerEvent.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of the Customer Notification Event resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, CustomerEventResourceInner> beginCreate(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String customerEventName,
+ CustomerEventResourceInner parameters);
+
+ /**
+ * Create or replace a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param parameters Parameters supplied to create a Test Base CustomerEvent.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of the Customer Notification Event resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, CustomerEventResourceInner> beginCreate(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String customerEventName,
+ CustomerEventResourceInner parameters,
+ Context context);
+
+ /**
+ * Create or replace a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param parameters Parameters supplied to create a Test Base CustomerEvent.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Customer Notification Event resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CustomerEventResourceInner create(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String customerEventName,
+ CustomerEventResourceInner parameters);
+
+ /**
+ * Create or replace a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param parameters Parameters supplied to create a Test Base CustomerEvent.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Customer Notification Event resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CustomerEventResourceInner create(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String customerEventName,
+ CustomerEventResourceInner parameters,
+ Context context);
+
+ /**
+ * Deletes a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(
+ String resourceGroupName, String testBaseAccountName, String customerEventName);
+
+ /**
+ * Deletes a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(
+ String resourceGroupName, String testBaseAccountName, String customerEventName, Context context);
+
+ /**
+ * Deletes a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String testBaseAccountName, String customerEventName);
+
+ /**
+ * Deletes a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String testBaseAccountName, String customerEventName, Context context);
+
+ /**
+ * Gets a Test Base CustomerEvent.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a Test Base CustomerEvent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CustomerEventResourceInner get(String resourceGroupName, String testBaseAccountName, String customerEventName);
+
+ /**
+ * Gets a Test Base CustomerEvent.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a Test Base CustomerEvent along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String testBaseAccountName, String customerEventName, Context context);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/EmailEventsClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/EmailEventsClient.java
new file mode 100644
index 000000000000..62e304d8198f
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/EmailEventsClient.java
@@ -0,0 +1,72 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.testbase.fluent.models.EmailEventResourceInner;
+
+/** An instance of this class provides access to all the operations defined in EmailEventsClient. */
+public interface EmailEventsClient {
+ /**
+ * Lists all the email events of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of email events as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String testBaseAccountName);
+
+ /**
+ * Lists all the email events of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of email events as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String testBaseAccountName, Context context);
+
+ /**
+ * Gets a email event of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param emailEventResourceName The resource name of an email event.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a email event of a Test Base Account.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ EmailEventResourceInner get(String resourceGroupName, String testBaseAccountName, String emailEventResourceName);
+
+ /**
+ * Gets a email event of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param emailEventResourceName The resource name of an email event.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a email event of a Test Base Account along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String testBaseAccountName, String emailEventResourceName, Context context);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/FavoriteProcessesClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/FavoriteProcessesClient.java
new file mode 100644
index 000000000000..cc1d9c2be043
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/FavoriteProcessesClient.java
@@ -0,0 +1,175 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.testbase.fluent.models.FavoriteProcessResourceInner;
+
+/** An instance of this class provides access to all the operations defined in FavoriteProcessesClient. */
+public interface FavoriteProcessesClient {
+ /**
+ * Lists the favorite processes for a specific package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of favorite processes for a package as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String resourceGroupName, String testBaseAccountName, String packageName);
+
+ /**
+ * Lists the favorite processes for a specific package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of favorite processes for a package as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String resourceGroupName, String testBaseAccountName, String packageName, Context context);
+
+ /**
+ * Create or replace a favorite process for a Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param favoriteProcessResourceName The resource name of a favorite process in a package. If the process name
+ * contains characters that are not allowed in Azure Resource Name, we use 'actualProcessName' in request body
+ * to submit the name.
+ * @param parameters Parameters supplied to create a favorite process in a package.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a favorite process identifier.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ FavoriteProcessResourceInner create(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String favoriteProcessResourceName,
+ FavoriteProcessResourceInner parameters);
+
+ /**
+ * Create or replace a favorite process for a Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param favoriteProcessResourceName The resource name of a favorite process in a package. If the process name
+ * contains characters that are not allowed in Azure Resource Name, we use 'actualProcessName' in request body
+ * to submit the name.
+ * @param parameters Parameters supplied to create a favorite process in a package.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a favorite process identifier along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createWithResponse(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String favoriteProcessResourceName,
+ FavoriteProcessResourceInner parameters,
+ Context context);
+
+ /**
+ * Deletes a favorite process for a specific package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param favoriteProcessResourceName The resource name of a favorite process in a package. If the process name
+ * contains characters that are not allowed in Azure Resource Name, we use 'actualProcessName' in request body
+ * to submit the name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(
+ String resourceGroupName, String testBaseAccountName, String packageName, String favoriteProcessResourceName);
+
+ /**
+ * Deletes a favorite process for a specific package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param favoriteProcessResourceName The resource name of a favorite process in a package. If the process name
+ * contains characters that are not allowed in Azure Resource Name, we use 'actualProcessName' in request body
+ * to submit the name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response deleteWithResponse(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String favoriteProcessResourceName,
+ Context context);
+
+ /**
+ * Gets a favorite process for a Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param favoriteProcessResourceName The resource name of a favorite process in a package. If the process name
+ * contains characters that are not allowed in Azure Resource Name, we use 'actualProcessName' in request body
+ * to submit the name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a favorite process for a Test Base Package.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ FavoriteProcessResourceInner get(
+ String resourceGroupName, String testBaseAccountName, String packageName, String favoriteProcessResourceName);
+
+ /**
+ * Gets a favorite process for a Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param favoriteProcessResourceName The resource name of a favorite process in a package. If the process name
+ * contains characters that are not allowed in Azure Resource Name, we use 'actualProcessName' in request body
+ * to submit the name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a favorite process for a Test Base Package along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String favoriteProcessResourceName,
+ Context context);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/FlightingRingsClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/FlightingRingsClient.java
new file mode 100644
index 000000000000..98133f053883
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/FlightingRingsClient.java
@@ -0,0 +1,74 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.testbase.fluent.models.FlightingRingResourceInner;
+
+/** An instance of this class provides access to all the operations defined in FlightingRingsClient. */
+public interface FlightingRingsClient {
+ /**
+ * Lists all the flighting rings of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of flighting rings as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String testBaseAccountName);
+
+ /**
+ * Lists all the flighting rings of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of flighting rings as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String resourceGroupName, String testBaseAccountName, Context context);
+
+ /**
+ * Gets a flighting ring of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param flightingRingResourceName The resource name of a flighting ring.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a flighting ring of a Test Base Account.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ FlightingRingResourceInner get(
+ String resourceGroupName, String testBaseAccountName, String flightingRingResourceName);
+
+ /**
+ * Gets a flighting ring of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param flightingRingResourceName The resource name of a flighting ring.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a flighting ring of a Test Base Account along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String testBaseAccountName, String flightingRingResourceName, Context context);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/OSUpdatesClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/OSUpdatesClient.java
new file mode 100644
index 000000000000..e2ad05769861
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/OSUpdatesClient.java
@@ -0,0 +1,90 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.testbase.fluent.models.OSUpdateResourceInner;
+import com.azure.resourcemanager.testbase.models.OsUpdateType;
+
+/** An instance of this class provides access to all the operations defined in OSUpdatesClient. */
+public interface OSUpdatesClient {
+ /**
+ * Lists the OS Updates in which the package were tested before.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param osUpdateType The type of the OS Update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of OS Updates as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String resourceGroupName, String testBaseAccountName, String packageName, OsUpdateType osUpdateType);
+
+ /**
+ * Lists the OS Updates in which the package were tested before.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param osUpdateType The type of the OS Update.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of OS Updates as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ OsUpdateType osUpdateType,
+ Context context);
+
+ /**
+ * Gets an OS Update by name in which the package was tested before.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param osUpdateResourceName The resource name of an OS Update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an OS Update by name in which the package was tested before.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OSUpdateResourceInner get(
+ String resourceGroupName, String testBaseAccountName, String packageName, String osUpdateResourceName);
+
+ /**
+ * Gets an OS Update by name in which the package was tested before.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param osUpdateResourceName The resource name of an OS Update.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an OS Update by name in which the package was tested before along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String osUpdateResourceName,
+ Context context);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/OperationsClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/OperationsClient.java
new file mode 100644
index 000000000000..6c27e8fad25c
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/OperationsClient.java
@@ -0,0 +1,36 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.testbase.fluent.models.OperationInner;
+
+/** An instance of this class provides access to all the operations defined in OperationsClient. */
+public interface OperationsClient {
+ /**
+ * Lists all of the available REST API operations of the Microsoft.TestBase provider.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of operations supported by the resource provider as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Lists all of the available REST API operations of the Microsoft.TestBase provider.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of operations supported by the resource provider as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/PackagesClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/PackagesClient.java
new file mode 100644
index 000000000000..f8176eaa5c0d
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/PackagesClient.java
@@ -0,0 +1,371 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.testbase.fluent.models.DownloadUrlResponseInner;
+import com.azure.resourcemanager.testbase.fluent.models.PackageResourceInner;
+import com.azure.resourcemanager.testbase.models.PackageUpdateParameters;
+
+/** An instance of this class provides access to all the operations defined in PackagesClient. */
+public interface PackagesClient {
+ /**
+ * Lists all the packages under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Base Packages as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByTestBaseAccount(String resourceGroupName, String testBaseAccountName);
+
+ /**
+ * Lists all the packages under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Base Packages as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByTestBaseAccount(
+ String resourceGroupName, String testBaseAccountName, Context context);
+
+ /**
+ * Create or replace (overwrite/recreate, with potential downtime) a Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param parameters Parameters supplied to create a Test Base Package.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of the Test Base Package resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, PackageResourceInner> beginCreate(
+ String resourceGroupName, String testBaseAccountName, String packageName, PackageResourceInner parameters);
+
+ /**
+ * Create or replace (overwrite/recreate, with potential downtime) a Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param parameters Parameters supplied to create a Test Base Package.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of the Test Base Package resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, PackageResourceInner> beginCreate(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ PackageResourceInner parameters,
+ Context context);
+
+ /**
+ * Create or replace (overwrite/recreate, with potential downtime) a Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param parameters Parameters supplied to create a Test Base Package.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Test Base Package resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PackageResourceInner create(
+ String resourceGroupName, String testBaseAccountName, String packageName, PackageResourceInner parameters);
+
+ /**
+ * Create or replace (overwrite/recreate, with potential downtime) a Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param parameters Parameters supplied to create a Test Base Package.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Test Base Package resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PackageResourceInner create(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ PackageResourceInner parameters,
+ Context context);
+
+ /**
+ * Update an existing Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param parameters Parameters supplied to update a Test Base Package.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of the Test Base Package resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, PackageResourceInner> beginUpdate(
+ String resourceGroupName, String testBaseAccountName, String packageName, PackageUpdateParameters parameters);
+
+ /**
+ * Update an existing Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param parameters Parameters supplied to update a Test Base Package.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of the Test Base Package resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, PackageResourceInner> beginUpdate(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ PackageUpdateParameters parameters,
+ Context context);
+
+ /**
+ * Update an existing Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param parameters Parameters supplied to update a Test Base Package.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Test Base Package resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PackageResourceInner update(
+ String resourceGroupName, String testBaseAccountName, String packageName, PackageUpdateParameters parameters);
+
+ /**
+ * Update an existing Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param parameters Parameters supplied to update a Test Base Package.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Test Base Package resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PackageResourceInner update(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ PackageUpdateParameters parameters,
+ Context context);
+
+ /**
+ * Deletes a Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(
+ String resourceGroupName, String testBaseAccountName, String packageName);
+
+ /**
+ * Deletes a Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(
+ String resourceGroupName, String testBaseAccountName, String packageName, Context context);
+
+ /**
+ * Deletes a Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String testBaseAccountName, String packageName);
+
+ /**
+ * Deletes a Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String testBaseAccountName, String packageName, Context context);
+
+ /**
+ * Gets a Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a Test Base Package.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PackageResourceInner get(String resourceGroupName, String testBaseAccountName, String packageName);
+
+ /**
+ * Gets a Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a Test Base Package along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String testBaseAccountName, String packageName, Context context);
+
+ /**
+ * Hard Delete a Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginHardDelete(
+ String resourceGroupName, String testBaseAccountName, String packageName);
+
+ /**
+ * Hard Delete a Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginHardDelete(
+ String resourceGroupName, String testBaseAccountName, String packageName, Context context);
+
+ /**
+ * Hard Delete a Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void hardDelete(String resourceGroupName, String testBaseAccountName, String packageName);
+
+ /**
+ * Hard Delete a Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void hardDelete(String resourceGroupName, String testBaseAccountName, String packageName, Context context);
+
+ /**
+ * Gets the download URL of a package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the download URL of a package.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DownloadUrlResponseInner getDownloadUrl(String resourceGroupName, String testBaseAccountName, String packageName);
+
+ /**
+ * Gets the download URL of a package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the download URL of a package along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getDownloadUrlWithResponse(
+ String resourceGroupName, String testBaseAccountName, String packageName, Context context);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/SkusClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/SkusClient.java
new file mode 100644
index 000000000000..85317a8bf2f9
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/SkusClient.java
@@ -0,0 +1,36 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.testbase.fluent.models.TestBaseAccountSkuInner;
+
+/** An instance of this class provides access to all the operations defined in SkusClient. */
+public interface SkusClient {
+ /**
+ * Lists the available SKUs of Test Base Account in a subscription.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Base Account SKUs as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Lists the available SKUs of Test Base Account in a subscription.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Base Account SKUs as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestBase.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestBase.java
new file mode 100644
index 000000000000..48ca74c55bb5
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestBase.java
@@ -0,0 +1,151 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent;
+
+import com.azure.core.http.HttpPipeline;
+import java.time.Duration;
+
+/** The interface for TestBase class. */
+public interface TestBase {
+ /**
+ * Gets The Azure subscription ID. This is a GUID-formatted string.
+ *
+ * @return the subscriptionId value.
+ */
+ String getSubscriptionId();
+
+ /**
+ * Gets server parameter.
+ *
+ * @return the endpoint value.
+ */
+ String getEndpoint();
+
+ /**
+ * Gets Api Version.
+ *
+ * @return the apiVersion value.
+ */
+ String getApiVersion();
+
+ /**
+ * Gets The HTTP pipeline to send requests through.
+ *
+ * @return the httpPipeline value.
+ */
+ HttpPipeline getHttpPipeline();
+
+ /**
+ * Gets The default poll interval for long-running operation.
+ *
+ * @return the defaultPollInterval value.
+ */
+ Duration getDefaultPollInterval();
+
+ /**
+ * Gets the SkusClient object to access its operations.
+ *
+ * @return the SkusClient object.
+ */
+ SkusClient getSkus();
+
+ /**
+ * Gets the TestBaseAccountsClient object to access its operations.
+ *
+ * @return the TestBaseAccountsClient object.
+ */
+ TestBaseAccountsClient getTestBaseAccounts();
+
+ /**
+ * Gets the UsagesClient object to access its operations.
+ *
+ * @return the UsagesClient object.
+ */
+ UsagesClient getUsages();
+
+ /**
+ * Gets the AvailableOSClient object to access its operations.
+ *
+ * @return the AvailableOSClient object.
+ */
+ AvailableOSClient getAvailableOS();
+
+ /**
+ * Gets the FlightingRingsClient object to access its operations.
+ *
+ * @return the FlightingRingsClient object.
+ */
+ FlightingRingsClient getFlightingRings();
+
+ /**
+ * Gets the TestTypesClient object to access its operations.
+ *
+ * @return the TestTypesClient object.
+ */
+ TestTypesClient getTestTypes();
+
+ /**
+ * Gets the PackagesClient object to access its operations.
+ *
+ * @return the PackagesClient object.
+ */
+ PackagesClient getPackages();
+
+ /**
+ * Gets the TestSummariesClient object to access its operations.
+ *
+ * @return the TestSummariesClient object.
+ */
+ TestSummariesClient getTestSummaries();
+
+ /**
+ * Gets the TestResultsClient object to access its operations.
+ *
+ * @return the TestResultsClient object.
+ */
+ TestResultsClient getTestResults();
+
+ /**
+ * Gets the OSUpdatesClient object to access its operations.
+ *
+ * @return the OSUpdatesClient object.
+ */
+ OSUpdatesClient getOSUpdates();
+
+ /**
+ * Gets the FavoriteProcessesClient object to access its operations.
+ *
+ * @return the FavoriteProcessesClient object.
+ */
+ FavoriteProcessesClient getFavoriteProcesses();
+
+ /**
+ * Gets the AnalysisResultsClient object to access its operations.
+ *
+ * @return the AnalysisResultsClient object.
+ */
+ AnalysisResultsClient getAnalysisResults();
+
+ /**
+ * Gets the EmailEventsClient object to access its operations.
+ *
+ * @return the EmailEventsClient object.
+ */
+ EmailEventsClient getEmailEvents();
+
+ /**
+ * Gets the CustomerEventsClient object to access its operations.
+ *
+ * @return the CustomerEventsClient object.
+ */
+ CustomerEventsClient getCustomerEvents();
+
+ /**
+ * Gets the OperationsClient object to access its operations.
+ *
+ * @return the OperationsClient object.
+ */
+ OperationsClient getOperations();
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestBaseAccountsClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestBaseAccountsClient.java
new file mode 100644
index 000000000000..ad58034ee8ea
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestBaseAccountsClient.java
@@ -0,0 +1,437 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.testbase.fluent.models.CheckNameAvailabilityResultInner;
+import com.azure.resourcemanager.testbase.fluent.models.FileUploadUrlResponseInner;
+import com.azure.resourcemanager.testbase.fluent.models.TestBaseAccountResourceInner;
+import com.azure.resourcemanager.testbase.fluent.models.TestBaseAccountUpdateParametersInner;
+import com.azure.resourcemanager.testbase.models.GetFileUploadUrlParameters;
+import com.azure.resourcemanager.testbase.models.PackageCheckNameAvailabilityParameters;
+
+/** An instance of this class provides access to all the operations defined in TestBaseAccountsClient. */
+public interface TestBaseAccountsClient {
+ /**
+ * Lists all the Test Base Accounts in a subscription. This API is required by ARM guidelines.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Base Accounts as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Lists all the Test Base Accounts in a subscription. This API is required by ARM guidelines.
+ *
+ * @param getDeleted The flag indicating if we need to include the Test Base Accounts which were soft deleted
+ * before.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Base Accounts as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Boolean getDeleted, Context context);
+
+ /**
+ * Lists all the Test Base Accounts in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Base Accounts as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * Lists all the Test Base Accounts in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param getDeleted The flag indicating if we need to include the Test Base Accounts which were soft deleted
+ * before.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Base Accounts as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(
+ String resourceGroupName, Boolean getDeleted, Context context);
+
+ /**
+ * Create or replace (overwrite/recreate, with potential downtime) a Test Base Account in the specified
+ * subscription.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param parameters Parameters supplied to create a Test Base Account.
+ * @param restore The flag indicating if we would like to restore the Test Base Accounts which were soft deleted
+ * before.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of the Test Base Account resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, TestBaseAccountResourceInner> beginCreate(
+ String resourceGroupName, String testBaseAccountName, TestBaseAccountResourceInner parameters, Boolean restore);
+
+ /**
+ * Create or replace (overwrite/recreate, with potential downtime) a Test Base Account in the specified
+ * subscription.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param parameters Parameters supplied to create a Test Base Account.
+ * @param restore The flag indicating if we would like to restore the Test Base Accounts which were soft deleted
+ * before.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of the Test Base Account resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, TestBaseAccountResourceInner> beginCreate(
+ String resourceGroupName,
+ String testBaseAccountName,
+ TestBaseAccountResourceInner parameters,
+ Boolean restore,
+ Context context);
+
+ /**
+ * Create or replace (overwrite/recreate, with potential downtime) a Test Base Account in the specified
+ * subscription.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param parameters Parameters supplied to create a Test Base Account.
+ * @param restore The flag indicating if we would like to restore the Test Base Accounts which were soft deleted
+ * before.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Test Base Account resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ TestBaseAccountResourceInner create(
+ String resourceGroupName, String testBaseAccountName, TestBaseAccountResourceInner parameters, Boolean restore);
+
+ /**
+ * Create or replace (overwrite/recreate, with potential downtime) a Test Base Account in the specified
+ * subscription.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param parameters Parameters supplied to create a Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Test Base Account resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ TestBaseAccountResourceInner create(
+ String resourceGroupName, String testBaseAccountName, TestBaseAccountResourceInner parameters);
+
+ /**
+ * Create or replace (overwrite/recreate, with potential downtime) a Test Base Account in the specified
+ * subscription.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param parameters Parameters supplied to create a Test Base Account.
+ * @param restore The flag indicating if we would like to restore the Test Base Accounts which were soft deleted
+ * before.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Test Base Account resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ TestBaseAccountResourceInner create(
+ String resourceGroupName,
+ String testBaseAccountName,
+ TestBaseAccountResourceInner parameters,
+ Boolean restore,
+ Context context);
+
+ /**
+ * Update an existing Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param parameters Parameters supplied to update a Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of the Test Base Account resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, TestBaseAccountResourceInner> beginUpdate(
+ String resourceGroupName, String testBaseAccountName, TestBaseAccountUpdateParametersInner parameters);
+
+ /**
+ * Update an existing Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param parameters Parameters supplied to update a Test Base Account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of the Test Base Account resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, TestBaseAccountResourceInner> beginUpdate(
+ String resourceGroupName,
+ String testBaseAccountName,
+ TestBaseAccountUpdateParametersInner parameters,
+ Context context);
+
+ /**
+ * Update an existing Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param parameters Parameters supplied to update a Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Test Base Account resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ TestBaseAccountResourceInner update(
+ String resourceGroupName, String testBaseAccountName, TestBaseAccountUpdateParametersInner parameters);
+
+ /**
+ * Update an existing Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param parameters Parameters supplied to update a Test Base Account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Test Base Account resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ TestBaseAccountResourceInner update(
+ String resourceGroupName,
+ String testBaseAccountName,
+ TestBaseAccountUpdateParametersInner parameters,
+ Context context);
+
+ /**
+ * Deletes a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String testBaseAccountName);
+
+ /**
+ * Deletes a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(
+ String resourceGroupName, String testBaseAccountName, Context context);
+
+ /**
+ * Deletes a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String testBaseAccountName);
+
+ /**
+ * Deletes a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String testBaseAccountName, Context context);
+
+ /**
+ * Gets a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a Test Base Account.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ TestBaseAccountResourceInner getByResourceGroup(String resourceGroupName, String testBaseAccountName);
+
+ /**
+ * Gets a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a Test Base Account along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(
+ String resourceGroupName, String testBaseAccountName, Context context);
+
+ /**
+ * Offboard a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginOffboard(String resourceGroupName, String testBaseAccountName);
+
+ /**
+ * Offboard a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginOffboard(
+ String resourceGroupName, String testBaseAccountName, Context context);
+
+ /**
+ * Offboard a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void offboard(String resourceGroupName, String testBaseAccountName);
+
+ /**
+ * Offboard a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void offboard(String resourceGroupName, String testBaseAccountName, Context context);
+
+ /**
+ * Gets the file upload URL of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the file upload URL of a Test Base Account.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ FileUploadUrlResponseInner getFileUploadUrl(String resourceGroupName, String testBaseAccountName);
+
+ /**
+ * Gets the file upload URL of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param parameters Parameters supplied to the Test Base Account GetFileUploadURL operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the file upload URL of a Test Base Account along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getFileUploadUrlWithResponse(
+ String resourceGroupName, String testBaseAccountName, GetFileUploadUrlParameters parameters, Context context);
+
+ /**
+ * Checks that the Test Base Package name and version is valid and is not already in use.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param parameters Parameters supplied to the Test Base Package CheckNameAvailability operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return description of a Check Name availability response properties.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CheckNameAvailabilityResultInner checkPackageNameAvailability(
+ String resourceGroupName, String testBaseAccountName, PackageCheckNameAvailabilityParameters parameters);
+
+ /**
+ * Checks that the Test Base Package name and version is valid and is not already in use.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param parameters Parameters supplied to the Test Base Package CheckNameAvailability operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return description of a Check Name availability response properties along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response checkPackageNameAvailabilityWithResponse(
+ String resourceGroupName,
+ String testBaseAccountName,
+ PackageCheckNameAvailabilityParameters parameters,
+ Context context);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestResultsClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestResultsClient.java
new file mode 100644
index 000000000000..ccd16a63b4f5
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestResultsClient.java
@@ -0,0 +1,169 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.testbase.fluent.models.DownloadUrlResponseInner;
+import com.azure.resourcemanager.testbase.fluent.models.TestResultResourceInner;
+import com.azure.resourcemanager.testbase.models.OsUpdateType;
+
+/** An instance of this class provides access to all the operations defined in TestResultsClient. */
+public interface TestResultsClient {
+ /**
+ * Lists all the Test Results with specified OS Update type for a Test Base Package. Can be filtered by osName,
+ * releaseName, flightingRing, buildVersion, buildRevision.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param osUpdateType The type of the OS Update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Results as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String resourceGroupName, String testBaseAccountName, String packageName, OsUpdateType osUpdateType);
+
+ /**
+ * Lists all the Test Results with specified OS Update type for a Test Base Package. Can be filtered by osName,
+ * releaseName, flightingRing, buildVersion, buildRevision.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param osUpdateType The type of the OS Update.
+ * @param filter Odata filter.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Results as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ OsUpdateType osUpdateType,
+ String filter,
+ Context context);
+
+ /**
+ * Get the Test Result by Id with specified OS Update type for a Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param testResultName The Test Result Name. It equals to {osName}-{TestResultId} string.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Test Result by Id with specified OS Update type for a Test Base Package.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ TestResultResourceInner get(
+ String resourceGroupName, String testBaseAccountName, String packageName, String testResultName);
+
+ /**
+ * Get the Test Result by Id with specified OS Update type for a Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param testResultName The Test Result Name. It equals to {osName}-{TestResultId} string.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Test Result by Id with specified OS Update type for a Test Base Package along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ Context context);
+
+ /**
+ * Gets the download URL of the test result.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param testResultName The Test Result Name. It equals to {osName}-{TestResultId} string.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the download URL of the test result.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DownloadUrlResponseInner getDownloadUrl(
+ String resourceGroupName, String testBaseAccountName, String packageName, String testResultName);
+
+ /**
+ * Gets the download URL of the test result.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param testResultName The Test Result Name. It equals to {osName}-{TestResultId} string.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the download URL of the test result along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getDownloadUrlWithResponse(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ Context context);
+
+ /**
+ * Gets the download URL of the test execution screen recording.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param testResultName The Test Result Name. It equals to {osName}-{TestResultId} string.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the download URL of the test execution screen recording.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DownloadUrlResponseInner getVideoDownloadUrl(
+ String resourceGroupName, String testBaseAccountName, String packageName, String testResultName);
+
+ /**
+ * Gets the download URL of the test execution screen recording.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param testResultName The Test Result Name. It equals to {osName}-{TestResultId} string.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the download URL of the test execution screen recording along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getVideoDownloadUrlWithResponse(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ Context context);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestSummariesClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestSummariesClient.java
new file mode 100644
index 000000000000..0ed6bd4beec3
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestSummariesClient.java
@@ -0,0 +1,74 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.testbase.fluent.models.TestSummaryResourceInner;
+
+/** An instance of this class provides access to all the operations defined in TestSummariesClient. */
+public interface TestSummariesClient {
+ /**
+ * Lists the Test Summaries of all the packages under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Summaries as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String testBaseAccountName);
+
+ /**
+ * Lists the Test Summaries of all the packages under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Summaries as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String testBaseAccountName, Context context);
+
+ /**
+ * Gets a Test Summary with specific name from all the Test Summaries of all the packages under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param testSummaryName The name of the Test Summary.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a Test Summary with specific name from all the Test Summaries of all the packages under a Test Base
+ * Account.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ TestSummaryResourceInner get(String resourceGroupName, String testBaseAccountName, String testSummaryName);
+
+ /**
+ * Gets a Test Summary with specific name from all the Test Summaries of all the packages under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param testSummaryName The name of the Test Summary.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a Test Summary with specific name from all the Test Summaries of all the packages under a Test Base
+ * Account along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String testBaseAccountName, String testSummaryName, Context context);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestTypesClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestTypesClient.java
new file mode 100644
index 000000000000..2b415cf442ca
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestTypesClient.java
@@ -0,0 +1,72 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.testbase.fluent.models.TestTypeResourceInner;
+
+/** An instance of this class provides access to all the operations defined in TestTypesClient. */
+public interface TestTypesClient {
+ /**
+ * Lists all the test types of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of test types as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String testBaseAccountName);
+
+ /**
+ * Lists all the test types of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of test types as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String testBaseAccountName, Context context);
+
+ /**
+ * Gets a test type of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param testTypeResourceName The resource name of a test type.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a test type of a Test Base Account.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ TestTypeResourceInner get(String resourceGroupName, String testBaseAccountName, String testTypeResourceName);
+
+ /**
+ * Gets a test type of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param testTypeResourceName The resource name of a test type.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a test type of a Test Base Account along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String testBaseAccountName, String testTypeResourceName, Context context);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/UsagesClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/UsagesClient.java
new file mode 100644
index 000000000000..7a93b5e360ff
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/UsagesClient.java
@@ -0,0 +1,43 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.testbase.fluent.models.TestBaseAccountUsageDataInner;
+
+/** An instance of this class provides access to all the operations defined in UsagesClient. */
+public interface UsagesClient {
+ /**
+ * Lists the usage data of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Base Account usage data as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String testBaseAccountName);
+
+ /**
+ * Lists the usage data of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param filter Odata filter.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Base Account usage data as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String resourceGroupName, String testBaseAccountName, String filter, Context context);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/AnalysisResultSingletonResourceInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/AnalysisResultSingletonResourceInner.java
new file mode 100644
index 000000000000..b0409b6cc27d
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/AnalysisResultSingletonResourceInner.java
@@ -0,0 +1,79 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.resourcemanager.testbase.models.Grade;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The Analysis Result Singleton Resource. */
+@Fluent
+public final class AnalysisResultSingletonResourceInner extends ProxyResource {
+ /*
+ * The system metadata relating to this resource
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * Properties of an Analysis Result.
+ */
+ @JsonProperty(value = "properties")
+ private AnalysisResultSingletonResourceProperties innerProperties;
+
+ /**
+ * Get the systemData property: The system metadata relating to this resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the innerProperties property: Properties of an Analysis Result.
+ *
+ * @return the innerProperties value.
+ */
+ private AnalysisResultSingletonResourceProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the grade property: The grade of the test.
+ *
+ * @return the grade value.
+ */
+ public Grade grade() {
+ return this.innerProperties() == null ? null : this.innerProperties().grade();
+ }
+
+ /**
+ * Set the grade property: The grade of the test.
+ *
+ * @param grade the grade value to set.
+ * @return the AnalysisResultSingletonResourceInner object itself.
+ */
+ public AnalysisResultSingletonResourceInner withGrade(Grade grade) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AnalysisResultSingletonResourceProperties();
+ }
+ this.innerProperties().withGrade(grade);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/AnalysisResultSingletonResourceProperties.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/AnalysisResultSingletonResourceProperties.java
new file mode 100644
index 000000000000..402afc356466
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/AnalysisResultSingletonResourceProperties.java
@@ -0,0 +1,72 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.testbase.models.CpuRegressionResultSingletonResourceProperties;
+import com.azure.resourcemanager.testbase.models.CpuUtilizationResultSingletonResourceProperties;
+import com.azure.resourcemanager.testbase.models.Grade;
+import com.azure.resourcemanager.testbase.models.MemoryRegressionResultSingletonResourceProperties;
+import com.azure.resourcemanager.testbase.models.MemoryUtilizationResultSingletonResourceProperties;
+import com.azure.resourcemanager.testbase.models.ReliabilityResultSingletonResourceProperties;
+import com.azure.resourcemanager.testbase.models.ScriptExecutionResultSingletonResourceProperties;
+import com.azure.resourcemanager.testbase.models.TestAnalysisResultSingletonResourceProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/** The properties of Analysis Result resource. */
+@JsonTypeInfo(
+ use = JsonTypeInfo.Id.NAME,
+ include = JsonTypeInfo.As.PROPERTY,
+ property = "analysisResultType",
+ defaultImpl = AnalysisResultSingletonResourceProperties.class)
+@JsonTypeName("AnalysisResultSingletonResourceProperties")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "ScriptExecution", value = ScriptExecutionResultSingletonResourceProperties.class),
+ @JsonSubTypes.Type(name = "Reliability", value = ReliabilityResultSingletonResourceProperties.class),
+ @JsonSubTypes.Type(name = "CPUUtilization", value = CpuUtilizationResultSingletonResourceProperties.class),
+ @JsonSubTypes.Type(name = "MemoryUtilization", value = MemoryUtilizationResultSingletonResourceProperties.class),
+ @JsonSubTypes.Type(name = "CPURegression", value = CpuRegressionResultSingletonResourceProperties.class),
+ @JsonSubTypes.Type(name = "MemoryRegression", value = MemoryRegressionResultSingletonResourceProperties.class),
+ @JsonSubTypes.Type(name = "TestAnalysis", value = TestAnalysisResultSingletonResourceProperties.class)
+})
+@Fluent
+public class AnalysisResultSingletonResourceProperties {
+ /*
+ * The grade of the test.
+ */
+ @JsonProperty(value = "grade")
+ private Grade grade;
+
+ /**
+ * Get the grade property: The grade of the test.
+ *
+ * @return the grade value.
+ */
+ public Grade grade() {
+ return this.grade;
+ }
+
+ /**
+ * Set the grade property: The grade of the test.
+ *
+ * @param grade the grade value to set.
+ * @return the AnalysisResultSingletonResourceProperties object itself.
+ */
+ public AnalysisResultSingletonResourceProperties withGrade(Grade grade) {
+ this.grade = grade;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/AvailableOSProperties.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/AvailableOSProperties.java
new file mode 100644
index 000000000000..2a83a4f3c441
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/AvailableOSProperties.java
@@ -0,0 +1,176 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The Available OS properties. */
+@Fluent
+public final class AvailableOSProperties {
+ /*
+ * The Id of an Available OS of a Test Base Account.
+ */
+ @JsonProperty(value = "osId")
+ private String osId;
+
+ /*
+ * The name of an Available OS of a Test Base Account.
+ */
+ @JsonProperty(value = "osName")
+ private String osName;
+
+ /*
+ * The version of an Available OS of a Test Base Account.
+ */
+ @JsonProperty(value = "osVersion")
+ private String osVersion;
+
+ /*
+ * The insider channel of an Available OS of a Test Base Account.
+ */
+ @JsonProperty(value = "insiderChannel")
+ private String insiderChannel;
+
+ /*
+ * The OS update type of an Available OS of a Test Base Account.
+ */
+ @JsonProperty(value = "osUpdateType")
+ private String osUpdateType;
+
+ /*
+ * The Platform of an Available OS of a Test Base Account.
+ */
+ @JsonProperty(value = "osPlatform")
+ private String osPlatform;
+
+ /**
+ * Get the osId property: The Id of an Available OS of a Test Base Account.
+ *
+ * @return the osId value.
+ */
+ public String osId() {
+ return this.osId;
+ }
+
+ /**
+ * Set the osId property: The Id of an Available OS of a Test Base Account.
+ *
+ * @param osId the osId value to set.
+ * @return the AvailableOSProperties object itself.
+ */
+ public AvailableOSProperties withOsId(String osId) {
+ this.osId = osId;
+ return this;
+ }
+
+ /**
+ * Get the osName property: The name of an Available OS of a Test Base Account.
+ *
+ * @return the osName value.
+ */
+ public String osName() {
+ return this.osName;
+ }
+
+ /**
+ * Set the osName property: The name of an Available OS of a Test Base Account.
+ *
+ * @param osName the osName value to set.
+ * @return the AvailableOSProperties object itself.
+ */
+ public AvailableOSProperties withOsName(String osName) {
+ this.osName = osName;
+ return this;
+ }
+
+ /**
+ * Get the osVersion property: The version of an Available OS of a Test Base Account.
+ *
+ * @return the osVersion value.
+ */
+ public String osVersion() {
+ return this.osVersion;
+ }
+
+ /**
+ * Set the osVersion property: The version of an Available OS of a Test Base Account.
+ *
+ * @param osVersion the osVersion value to set.
+ * @return the AvailableOSProperties object itself.
+ */
+ public AvailableOSProperties withOsVersion(String osVersion) {
+ this.osVersion = osVersion;
+ return this;
+ }
+
+ /**
+ * Get the insiderChannel property: The insider channel of an Available OS of a Test Base Account.
+ *
+ * @return the insiderChannel value.
+ */
+ public String insiderChannel() {
+ return this.insiderChannel;
+ }
+
+ /**
+ * Set the insiderChannel property: The insider channel of an Available OS of a Test Base Account.
+ *
+ * @param insiderChannel the insiderChannel value to set.
+ * @return the AvailableOSProperties object itself.
+ */
+ public AvailableOSProperties withInsiderChannel(String insiderChannel) {
+ this.insiderChannel = insiderChannel;
+ return this;
+ }
+
+ /**
+ * Get the osUpdateType property: The OS update type of an Available OS of a Test Base Account.
+ *
+ * @return the osUpdateType value.
+ */
+ public String osUpdateType() {
+ return this.osUpdateType;
+ }
+
+ /**
+ * Set the osUpdateType property: The OS update type of an Available OS of a Test Base Account.
+ *
+ * @param osUpdateType the osUpdateType value to set.
+ * @return the AvailableOSProperties object itself.
+ */
+ public AvailableOSProperties withOsUpdateType(String osUpdateType) {
+ this.osUpdateType = osUpdateType;
+ return this;
+ }
+
+ /**
+ * Get the osPlatform property: The Platform of an Available OS of a Test Base Account.
+ *
+ * @return the osPlatform value.
+ */
+ public String osPlatform() {
+ return this.osPlatform;
+ }
+
+ /**
+ * Set the osPlatform property: The Platform of an Available OS of a Test Base Account.
+ *
+ * @param osPlatform the osPlatform value to set.
+ * @return the AvailableOSProperties object itself.
+ */
+ public AvailableOSProperties withOsPlatform(String osPlatform) {
+ this.osPlatform = osPlatform;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/AvailableOSResourceInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/AvailableOSResourceInner.java
new file mode 100644
index 000000000000..b6a156dbbd79
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/AvailableOSResourceInner.java
@@ -0,0 +1,193 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The Available OS resource. */
+@Fluent
+public final class AvailableOSResourceInner extends ProxyResource {
+ /*
+ * The system metadata relating to this resource
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * Available OS properties.
+ */
+ @JsonProperty(value = "properties")
+ private AvailableOSProperties innerProperties;
+
+ /**
+ * Get the systemData property: The system metadata relating to this resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the innerProperties property: Available OS properties.
+ *
+ * @return the innerProperties value.
+ */
+ private AvailableOSProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the osId property: The Id of an Available OS of a Test Base Account.
+ *
+ * @return the osId value.
+ */
+ public String osId() {
+ return this.innerProperties() == null ? null : this.innerProperties().osId();
+ }
+
+ /**
+ * Set the osId property: The Id of an Available OS of a Test Base Account.
+ *
+ * @param osId the osId value to set.
+ * @return the AvailableOSResourceInner object itself.
+ */
+ public AvailableOSResourceInner withOsId(String osId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AvailableOSProperties();
+ }
+ this.innerProperties().withOsId(osId);
+ return this;
+ }
+
+ /**
+ * Get the osName property: The name of an Available OS of a Test Base Account.
+ *
+ * @return the osName value.
+ */
+ public String osName() {
+ return this.innerProperties() == null ? null : this.innerProperties().osName();
+ }
+
+ /**
+ * Set the osName property: The name of an Available OS of a Test Base Account.
+ *
+ * @param osName the osName value to set.
+ * @return the AvailableOSResourceInner object itself.
+ */
+ public AvailableOSResourceInner withOsName(String osName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AvailableOSProperties();
+ }
+ this.innerProperties().withOsName(osName);
+ return this;
+ }
+
+ /**
+ * Get the osVersion property: The version of an Available OS of a Test Base Account.
+ *
+ * @return the osVersion value.
+ */
+ public String osVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().osVersion();
+ }
+
+ /**
+ * Set the osVersion property: The version of an Available OS of a Test Base Account.
+ *
+ * @param osVersion the osVersion value to set.
+ * @return the AvailableOSResourceInner object itself.
+ */
+ public AvailableOSResourceInner withOsVersion(String osVersion) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AvailableOSProperties();
+ }
+ this.innerProperties().withOsVersion(osVersion);
+ return this;
+ }
+
+ /**
+ * Get the insiderChannel property: The insider channel of an Available OS of a Test Base Account.
+ *
+ * @return the insiderChannel value.
+ */
+ public String insiderChannel() {
+ return this.innerProperties() == null ? null : this.innerProperties().insiderChannel();
+ }
+
+ /**
+ * Set the insiderChannel property: The insider channel of an Available OS of a Test Base Account.
+ *
+ * @param insiderChannel the insiderChannel value to set.
+ * @return the AvailableOSResourceInner object itself.
+ */
+ public AvailableOSResourceInner withInsiderChannel(String insiderChannel) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AvailableOSProperties();
+ }
+ this.innerProperties().withInsiderChannel(insiderChannel);
+ return this;
+ }
+
+ /**
+ * Get the osUpdateType property: The OS update type of an Available OS of a Test Base Account.
+ *
+ * @return the osUpdateType value.
+ */
+ public String osUpdateType() {
+ return this.innerProperties() == null ? null : this.innerProperties().osUpdateType();
+ }
+
+ /**
+ * Set the osUpdateType property: The OS update type of an Available OS of a Test Base Account.
+ *
+ * @param osUpdateType the osUpdateType value to set.
+ * @return the AvailableOSResourceInner object itself.
+ */
+ public AvailableOSResourceInner withOsUpdateType(String osUpdateType) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AvailableOSProperties();
+ }
+ this.innerProperties().withOsUpdateType(osUpdateType);
+ return this;
+ }
+
+ /**
+ * Get the osPlatform property: The Platform of an Available OS of a Test Base Account.
+ *
+ * @return the osPlatform value.
+ */
+ public String osPlatform() {
+ return this.innerProperties() == null ? null : this.innerProperties().osPlatform();
+ }
+
+ /**
+ * Set the osPlatform property: The Platform of an Available OS of a Test Base Account.
+ *
+ * @param osPlatform the osPlatform value to set.
+ * @return the AvailableOSResourceInner object itself.
+ */
+ public AvailableOSResourceInner withOsPlatform(String osPlatform) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AvailableOSProperties();
+ }
+ this.innerProperties().withOsPlatform(osPlatform);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/CheckNameAvailabilityResultInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/CheckNameAvailabilityResultInner.java
new file mode 100644
index 000000000000..dd2dc3098f68
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/CheckNameAvailabilityResultInner.java
@@ -0,0 +1,94 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.testbase.models.Reason;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Description of a Check Name availability response properties. */
+@Fluent
+public final class CheckNameAvailabilityResultInner {
+ /*
+ * Value indicating the availability of the name: true if the name is
+ * available; otherwise, false.
+ */
+ @JsonProperty(value = "nameAvailable")
+ private Boolean nameAvailable;
+
+ /*
+ * The reason for unavailability of a name. Required if nameAvailable ==
+ * false.
+ */
+ @JsonProperty(value = "reason")
+ private Reason reason;
+
+ /*
+ * The detailed info regarding the reason associated with the name.
+ * Required if nameAvailable == false.
+ */
+ @JsonProperty(value = "message", access = JsonProperty.Access.WRITE_ONLY)
+ private String message;
+
+ /**
+ * Get the nameAvailable property: Value indicating the availability of the name: true if the name is available;
+ * otherwise, false.
+ *
+ * @return the nameAvailable value.
+ */
+ public Boolean nameAvailable() {
+ return this.nameAvailable;
+ }
+
+ /**
+ * Set the nameAvailable property: Value indicating the availability of the name: true if the name is available;
+ * otherwise, false.
+ *
+ * @param nameAvailable the nameAvailable value to set.
+ * @return the CheckNameAvailabilityResultInner object itself.
+ */
+ public CheckNameAvailabilityResultInner withNameAvailable(Boolean nameAvailable) {
+ this.nameAvailable = nameAvailable;
+ return this;
+ }
+
+ /**
+ * Get the reason property: The reason for unavailability of a name. Required if nameAvailable == false.
+ *
+ * @return the reason value.
+ */
+ public Reason reason() {
+ return this.reason;
+ }
+
+ /**
+ * Set the reason property: The reason for unavailability of a name. Required if nameAvailable == false.
+ *
+ * @param reason the reason value to set.
+ * @return the CheckNameAvailabilityResultInner object itself.
+ */
+ public CheckNameAvailabilityResultInner withReason(Reason reason) {
+ this.reason = reason;
+ return this;
+ }
+
+ /**
+ * Get the message property: The detailed info regarding the reason associated with the name. Required if
+ * nameAvailable == false.
+ *
+ * @return the message value.
+ */
+ public String message() {
+ return this.message;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/CustomerEventProperties.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/CustomerEventProperties.java
new file mode 100644
index 000000000000..e648a5662e45
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/CustomerEventProperties.java
@@ -0,0 +1,91 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.testbase.models.NotificationEventReceiver;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** A notification events subscribed to be received by customer. */
+@Fluent
+public final class CustomerEventProperties {
+ /*
+ * The name of the event subscribed to.
+ */
+ @JsonProperty(value = "eventName", required = true)
+ private String eventName;
+
+ /*
+ * The notification event receivers.
+ */
+ @JsonProperty(value = "receivers", required = true)
+ private List receivers;
+
+ /**
+ * Get the eventName property: The name of the event subscribed to.
+ *
+ * @return the eventName value.
+ */
+ public String eventName() {
+ return this.eventName;
+ }
+
+ /**
+ * Set the eventName property: The name of the event subscribed to.
+ *
+ * @param eventName the eventName value to set.
+ * @return the CustomerEventProperties object itself.
+ */
+ public CustomerEventProperties withEventName(String eventName) {
+ this.eventName = eventName;
+ return this;
+ }
+
+ /**
+ * Get the receivers property: The notification event receivers.
+ *
+ * @return the receivers value.
+ */
+ public List receivers() {
+ return this.receivers;
+ }
+
+ /**
+ * Set the receivers property: The notification event receivers.
+ *
+ * @param receivers the receivers value to set.
+ * @return the CustomerEventProperties object itself.
+ */
+ public CustomerEventProperties withReceivers(List receivers) {
+ this.receivers = receivers;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (eventName() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property eventName in model CustomerEventProperties"));
+ }
+ if (receivers() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property receivers in model CustomerEventProperties"));
+ } else {
+ receivers().forEach(e -> e.validate());
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(CustomerEventProperties.class);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/CustomerEventResourceInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/CustomerEventResourceInner.java
new file mode 100644
index 000000000000..6861961da423
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/CustomerEventResourceInner.java
@@ -0,0 +1,103 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.resourcemanager.testbase.models.NotificationEventReceiver;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** The Customer Notification Event resource. */
+@Fluent
+public final class CustomerEventResourceInner extends ProxyResource {
+ /*
+ * The system metadata relating to this resource
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * Customer Notification Event properties.
+ */
+ @JsonProperty(value = "properties")
+ private CustomerEventProperties innerProperties;
+
+ /**
+ * Get the systemData property: The system metadata relating to this resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the innerProperties property: Customer Notification Event properties.
+ *
+ * @return the innerProperties value.
+ */
+ private CustomerEventProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the eventName property: The name of the event subscribed to.
+ *
+ * @return the eventName value.
+ */
+ public String eventName() {
+ return this.innerProperties() == null ? null : this.innerProperties().eventName();
+ }
+
+ /**
+ * Set the eventName property: The name of the event subscribed to.
+ *
+ * @param eventName the eventName value to set.
+ * @return the CustomerEventResourceInner object itself.
+ */
+ public CustomerEventResourceInner withEventName(String eventName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new CustomerEventProperties();
+ }
+ this.innerProperties().withEventName(eventName);
+ return this;
+ }
+
+ /**
+ * Get the receivers property: The notification event receivers.
+ *
+ * @return the receivers value.
+ */
+ public List receivers() {
+ return this.innerProperties() == null ? null : this.innerProperties().receivers();
+ }
+
+ /**
+ * Set the receivers property: The notification event receivers.
+ *
+ * @param receivers the receivers value to set.
+ * @return the CustomerEventResourceInner object itself.
+ */
+ public CustomerEventResourceInner withReceivers(List receivers) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new CustomerEventProperties();
+ }
+ this.innerProperties().withReceivers(receivers);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/DownloadUrlResponseInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/DownloadUrlResponseInner.java
new file mode 100644
index 000000000000..f80e867e7c19
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/DownloadUrlResponseInner.java
@@ -0,0 +1,51 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** The response of getting a download URL. */
+@Immutable
+public final class DownloadUrlResponseInner {
+ /*
+ * The download URL.
+ */
+ @JsonProperty(value = "downloadUrl", access = JsonProperty.Access.WRITE_ONLY)
+ private String downloadUrl;
+
+ /*
+ * Expiry date of the download URL.
+ */
+ @JsonProperty(value = "expirationTime", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime expirationTime;
+
+ /**
+ * Get the downloadUrl property: The download URL.
+ *
+ * @return the downloadUrl value.
+ */
+ public String downloadUrl() {
+ return this.downloadUrl;
+ }
+
+ /**
+ * Get the expirationTime property: Expiry date of the download URL.
+ *
+ * @return the expirationTime value.
+ */
+ public OffsetDateTime expirationTime() {
+ return this.expirationTime;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/EmailEventProperties.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/EmailEventProperties.java
new file mode 100644
index 000000000000..72434598d0f9
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/EmailEventProperties.java
@@ -0,0 +1,98 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The Email Event properties. */
+@Fluent
+public final class EmailEventProperties {
+ /*
+ * The identifier of the email event.
+ */
+ @JsonProperty(value = "eventId")
+ private String eventId;
+
+ /*
+ * The name of the email event.
+ */
+ @JsonProperty(value = "eventName")
+ private String eventName;
+
+ /*
+ * The display name of the email event.
+ */
+ @JsonProperty(value = "displayName")
+ private String displayName;
+
+ /**
+ * Get the eventId property: The identifier of the email event.
+ *
+ * @return the eventId value.
+ */
+ public String eventId() {
+ return this.eventId;
+ }
+
+ /**
+ * Set the eventId property: The identifier of the email event.
+ *
+ * @param eventId the eventId value to set.
+ * @return the EmailEventProperties object itself.
+ */
+ public EmailEventProperties withEventId(String eventId) {
+ this.eventId = eventId;
+ return this;
+ }
+
+ /**
+ * Get the eventName property: The name of the email event.
+ *
+ * @return the eventName value.
+ */
+ public String eventName() {
+ return this.eventName;
+ }
+
+ /**
+ * Set the eventName property: The name of the email event.
+ *
+ * @param eventName the eventName value to set.
+ * @return the EmailEventProperties object itself.
+ */
+ public EmailEventProperties withEventName(String eventName) {
+ this.eventName = eventName;
+ return this;
+ }
+
+ /**
+ * Get the displayName property: The display name of the email event.
+ *
+ * @return the displayName value.
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Set the displayName property: The display name of the email event.
+ *
+ * @param displayName the displayName value to set.
+ * @return the EmailEventProperties object itself.
+ */
+ public EmailEventProperties withDisplayName(String displayName) {
+ this.displayName = displayName;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/EmailEventResourceInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/EmailEventResourceInner.java
new file mode 100644
index 000000000000..4e09dd97bfa1
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/EmailEventResourceInner.java
@@ -0,0 +1,124 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The email event resource. */
+@Fluent
+public final class EmailEventResourceInner extends ProxyResource {
+ /*
+ * The system metadata relating to this resource
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * Email Event properties.
+ */
+ @JsonProperty(value = "properties")
+ private EmailEventProperties innerProperties;
+
+ /**
+ * Get the systemData property: The system metadata relating to this resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the innerProperties property: Email Event properties.
+ *
+ * @return the innerProperties value.
+ */
+ private EmailEventProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the eventId property: The identifier of the email event.
+ *
+ * @return the eventId value.
+ */
+ public String eventId() {
+ return this.innerProperties() == null ? null : this.innerProperties().eventId();
+ }
+
+ /**
+ * Set the eventId property: The identifier of the email event.
+ *
+ * @param eventId the eventId value to set.
+ * @return the EmailEventResourceInner object itself.
+ */
+ public EmailEventResourceInner withEventId(String eventId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new EmailEventProperties();
+ }
+ this.innerProperties().withEventId(eventId);
+ return this;
+ }
+
+ /**
+ * Get the eventName property: The name of the email event.
+ *
+ * @return the eventName value.
+ */
+ public String eventName() {
+ return this.innerProperties() == null ? null : this.innerProperties().eventName();
+ }
+
+ /**
+ * Set the eventName property: The name of the email event.
+ *
+ * @param eventName the eventName value to set.
+ * @return the EmailEventResourceInner object itself.
+ */
+ public EmailEventResourceInner withEventName(String eventName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new EmailEventProperties();
+ }
+ this.innerProperties().withEventName(eventName);
+ return this;
+ }
+
+ /**
+ * Get the displayName property: The display name of the email event.
+ *
+ * @return the displayName value.
+ */
+ public String displayName() {
+ return this.innerProperties() == null ? null : this.innerProperties().displayName();
+ }
+
+ /**
+ * Set the displayName property: The display name of the email event.
+ *
+ * @param displayName the displayName value to set.
+ * @return the EmailEventResourceInner object itself.
+ */
+ public EmailEventResourceInner withDisplayName(String displayName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new EmailEventProperties();
+ }
+ this.innerProperties().withDisplayName(displayName);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/FavoriteProcessProperties.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/FavoriteProcessProperties.java
new file mode 100644
index 000000000000..d0aec5e76783
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/FavoriteProcessProperties.java
@@ -0,0 +1,59 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Properties of a favorite process identifier. */
+@Fluent
+public final class FavoriteProcessProperties {
+ /*
+ * The actual name of the favorite process. It will be equal to resource
+ * name except for the scenario that the process name contains characters
+ * that are not allowed in the resource name.
+ */
+ @JsonProperty(value = "actualProcessName", required = true)
+ private String actualProcessName;
+
+ /**
+ * Get the actualProcessName property: The actual name of the favorite process. It will be equal to resource name
+ * except for the scenario that the process name contains characters that are not allowed in the resource name.
+ *
+ * @return the actualProcessName value.
+ */
+ public String actualProcessName() {
+ return this.actualProcessName;
+ }
+
+ /**
+ * Set the actualProcessName property: The actual name of the favorite process. It will be equal to resource name
+ * except for the scenario that the process name contains characters that are not allowed in the resource name.
+ *
+ * @param actualProcessName the actualProcessName value to set.
+ * @return the FavoriteProcessProperties object itself.
+ */
+ public FavoriteProcessProperties withActualProcessName(String actualProcessName) {
+ this.actualProcessName = actualProcessName;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (actualProcessName() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property actualProcessName in model FavoriteProcessProperties"));
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(FavoriteProcessProperties.class);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/FavoriteProcessResourceInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/FavoriteProcessResourceInner.java
new file mode 100644
index 000000000000..f9d8fce7b1c1
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/FavoriteProcessResourceInner.java
@@ -0,0 +1,80 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** A favorite process identifier. */
+@Fluent
+public final class FavoriteProcessResourceInner extends ProxyResource {
+ /*
+ * The system metadata relating to this resource
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * Properties of a favorite process identifier.
+ */
+ @JsonProperty(value = "properties")
+ private FavoriteProcessProperties innerProperties;
+
+ /**
+ * Get the systemData property: The system metadata relating to this resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the innerProperties property: Properties of a favorite process identifier.
+ *
+ * @return the innerProperties value.
+ */
+ private FavoriteProcessProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the actualProcessName property: The actual name of the favorite process. It will be equal to resource name
+ * except for the scenario that the process name contains characters that are not allowed in the resource name.
+ *
+ * @return the actualProcessName value.
+ */
+ public String actualProcessName() {
+ return this.innerProperties() == null ? null : this.innerProperties().actualProcessName();
+ }
+
+ /**
+ * Set the actualProcessName property: The actual name of the favorite process. It will be equal to resource name
+ * except for the scenario that the process name contains characters that are not allowed in the resource name.
+ *
+ * @param actualProcessName the actualProcessName value to set.
+ * @return the FavoriteProcessResourceInner object itself.
+ */
+ public FavoriteProcessResourceInner withActualProcessName(String actualProcessName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new FavoriteProcessProperties();
+ }
+ this.innerProperties().withActualProcessName(actualProcessName);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/FileUploadUrlResponseInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/FileUploadUrlResponseInner.java
new file mode 100644
index 000000000000..71dec950c236
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/FileUploadUrlResponseInner.java
@@ -0,0 +1,52 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The URL response. */
+@Immutable
+public final class FileUploadUrlResponseInner {
+ /*
+ * The URL used for uploading the package.
+ */
+ @JsonProperty(value = "uploadUrl", access = JsonProperty.Access.WRITE_ONLY)
+ private String uploadUrl;
+
+ /*
+ * The blob path of the uploaded package. It will be used as the 'blobPath'
+ * property of PackageResource.
+ */
+ @JsonProperty(value = "blobPath", access = JsonProperty.Access.WRITE_ONLY)
+ private String blobPath;
+
+ /**
+ * Get the uploadUrl property: The URL used for uploading the package.
+ *
+ * @return the uploadUrl value.
+ */
+ public String uploadUrl() {
+ return this.uploadUrl;
+ }
+
+ /**
+ * Get the blobPath property: The blob path of the uploaded package. It will be used as the 'blobPath' property of
+ * PackageResource.
+ *
+ * @return the blobPath value.
+ */
+ public String blobPath() {
+ return this.blobPath;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/FlightingRingProperties.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/FlightingRingProperties.java
new file mode 100644
index 000000000000..d17cb7c5f2c4
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/FlightingRingProperties.java
@@ -0,0 +1,46 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The Flighting Ring properties. */
+@Fluent
+public final class FlightingRingProperties {
+ /*
+ * The actual name of a flighting ring of a Test Base Account.
+ */
+ @JsonProperty(value = "actualFlightingRingName")
+ private String actualFlightingRingName;
+
+ /**
+ * Get the actualFlightingRingName property: The actual name of a flighting ring of a Test Base Account.
+ *
+ * @return the actualFlightingRingName value.
+ */
+ public String actualFlightingRingName() {
+ return this.actualFlightingRingName;
+ }
+
+ /**
+ * Set the actualFlightingRingName property: The actual name of a flighting ring of a Test Base Account.
+ *
+ * @param actualFlightingRingName the actualFlightingRingName value to set.
+ * @return the FlightingRingProperties object itself.
+ */
+ public FlightingRingProperties withActualFlightingRingName(String actualFlightingRingName) {
+ this.actualFlightingRingName = actualFlightingRingName;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/FlightingRingResourceInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/FlightingRingResourceInner.java
new file mode 100644
index 000000000000..a41495baad80
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/FlightingRingResourceInner.java
@@ -0,0 +1,78 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The flighting ring resource. */
+@Fluent
+public final class FlightingRingResourceInner extends ProxyResource {
+ /*
+ * The system metadata relating to this resource
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * Flighting Ring properties.
+ */
+ @JsonProperty(value = "properties")
+ private FlightingRingProperties innerProperties;
+
+ /**
+ * Get the systemData property: The system metadata relating to this resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the innerProperties property: Flighting Ring properties.
+ *
+ * @return the innerProperties value.
+ */
+ private FlightingRingProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the actualFlightingRingName property: The actual name of a flighting ring of a Test Base Account.
+ *
+ * @return the actualFlightingRingName value.
+ */
+ public String actualFlightingRingName() {
+ return this.innerProperties() == null ? null : this.innerProperties().actualFlightingRingName();
+ }
+
+ /**
+ * Set the actualFlightingRingName property: The actual name of a flighting ring of a Test Base Account.
+ *
+ * @param actualFlightingRingName the actualFlightingRingName value to set.
+ * @return the FlightingRingResourceInner object itself.
+ */
+ public FlightingRingResourceInner withActualFlightingRingName(String actualFlightingRingName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new FlightingRingProperties();
+ }
+ this.innerProperties().withActualFlightingRingName(actualFlightingRingName);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/OSUpdateProperties.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/OSUpdateProperties.java
new file mode 100644
index 000000000000..a921df9ceeda
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/OSUpdateProperties.java
@@ -0,0 +1,204 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.testbase.models.Type;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** Properties of an OS Update. */
+@Fluent
+public final class OSUpdateProperties {
+ /*
+ * The name of the OS.
+ */
+ @JsonProperty(value = "osName")
+ private String osName;
+
+ /*
+ * The name of tested release.
+ */
+ @JsonProperty(value = "release")
+ private String release;
+
+ /*
+ * The flighting ring, only for release of feature updates.
+ */
+ @JsonProperty(value = "flightingRing")
+ private String flightingRing;
+
+ /*
+ * The build version of the tested release (OS update).
+ */
+ @JsonProperty(value = "buildVersion")
+ private String buildVersion;
+
+ /*
+ * The build revision of the tested release (OS update)
+ */
+ @JsonProperty(value = "buildRevision")
+ private String buildRevision;
+
+ /*
+ * The type of this release (OS update).
+ */
+ @JsonProperty(value = "type")
+ private Type type;
+
+ /*
+ * The release version date the tested release (OS update)
+ */
+ @JsonProperty(value = "releaseVersionDate")
+ private OffsetDateTime releaseVersionDate;
+
+ /**
+ * Get the osName property: The name of the OS.
+ *
+ * @return the osName value.
+ */
+ public String osName() {
+ return this.osName;
+ }
+
+ /**
+ * Set the osName property: The name of the OS.
+ *
+ * @param osName the osName value to set.
+ * @return the OSUpdateProperties object itself.
+ */
+ public OSUpdateProperties withOsName(String osName) {
+ this.osName = osName;
+ return this;
+ }
+
+ /**
+ * Get the release property: The name of tested release.
+ *
+ * @return the release value.
+ */
+ public String release() {
+ return this.release;
+ }
+
+ /**
+ * Set the release property: The name of tested release.
+ *
+ * @param release the release value to set.
+ * @return the OSUpdateProperties object itself.
+ */
+ public OSUpdateProperties withRelease(String release) {
+ this.release = release;
+ return this;
+ }
+
+ /**
+ * Get the flightingRing property: The flighting ring, only for release of feature updates.
+ *
+ * @return the flightingRing value.
+ */
+ public String flightingRing() {
+ return this.flightingRing;
+ }
+
+ /**
+ * Set the flightingRing property: The flighting ring, only for release of feature updates.
+ *
+ * @param flightingRing the flightingRing value to set.
+ * @return the OSUpdateProperties object itself.
+ */
+ public OSUpdateProperties withFlightingRing(String flightingRing) {
+ this.flightingRing = flightingRing;
+ return this;
+ }
+
+ /**
+ * Get the buildVersion property: The build version of the tested release (OS update).
+ *
+ * @return the buildVersion value.
+ */
+ public String buildVersion() {
+ return this.buildVersion;
+ }
+
+ /**
+ * Set the buildVersion property: The build version of the tested release (OS update).
+ *
+ * @param buildVersion the buildVersion value to set.
+ * @return the OSUpdateProperties object itself.
+ */
+ public OSUpdateProperties withBuildVersion(String buildVersion) {
+ this.buildVersion = buildVersion;
+ return this;
+ }
+
+ /**
+ * Get the buildRevision property: The build revision of the tested release (OS update).
+ *
+ * @return the buildRevision value.
+ */
+ public String buildRevision() {
+ return this.buildRevision;
+ }
+
+ /**
+ * Set the buildRevision property: The build revision of the tested release (OS update).
+ *
+ * @param buildRevision the buildRevision value to set.
+ * @return the OSUpdateProperties object itself.
+ */
+ public OSUpdateProperties withBuildRevision(String buildRevision) {
+ this.buildRevision = buildRevision;
+ return this;
+ }
+
+ /**
+ * Get the type property: The type of this release (OS update).
+ *
+ * @return the type value.
+ */
+ public Type type() {
+ return this.type;
+ }
+
+ /**
+ * Set the type property: The type of this release (OS update).
+ *
+ * @param type the type value to set.
+ * @return the OSUpdateProperties object itself.
+ */
+ public OSUpdateProperties withType(Type type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get the releaseVersionDate property: The release version date the tested release (OS update).
+ *
+ * @return the releaseVersionDate value.
+ */
+ public OffsetDateTime releaseVersionDate() {
+ return this.releaseVersionDate;
+ }
+
+ /**
+ * Set the releaseVersionDate property: The release version date the tested release (OS update).
+ *
+ * @param releaseVersionDate the releaseVersionDate value to set.
+ * @return the OSUpdateProperties object itself.
+ */
+ public OSUpdateProperties withReleaseVersionDate(OffsetDateTime releaseVersionDate) {
+ this.releaseVersionDate = releaseVersionDate;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/OSUpdateResourceInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/OSUpdateResourceInner.java
new file mode 100644
index 000000000000..4810cf898e6a
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/OSUpdateResourceInner.java
@@ -0,0 +1,218 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.resourcemanager.testbase.models.Type;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** An OS Update. */
+@Fluent
+public final class OSUpdateResourceInner extends ProxyResource {
+ /*
+ * The system metadata relating to this resource
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * Properties of an OS Update.
+ */
+ @JsonProperty(value = "properties")
+ private OSUpdateProperties innerProperties;
+
+ /**
+ * Get the systemData property: The system metadata relating to this resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the innerProperties property: Properties of an OS Update.
+ *
+ * @return the innerProperties value.
+ */
+ private OSUpdateProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the osName property: The name of the OS.
+ *
+ * @return the osName value.
+ */
+ public String osName() {
+ return this.innerProperties() == null ? null : this.innerProperties().osName();
+ }
+
+ /**
+ * Set the osName property: The name of the OS.
+ *
+ * @param osName the osName value to set.
+ * @return the OSUpdateResourceInner object itself.
+ */
+ public OSUpdateResourceInner withOsName(String osName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new OSUpdateProperties();
+ }
+ this.innerProperties().withOsName(osName);
+ return this;
+ }
+
+ /**
+ * Get the release property: The name of tested release.
+ *
+ * @return the release value.
+ */
+ public String release() {
+ return this.innerProperties() == null ? null : this.innerProperties().release();
+ }
+
+ /**
+ * Set the release property: The name of tested release.
+ *
+ * @param release the release value to set.
+ * @return the OSUpdateResourceInner object itself.
+ */
+ public OSUpdateResourceInner withRelease(String release) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new OSUpdateProperties();
+ }
+ this.innerProperties().withRelease(release);
+ return this;
+ }
+
+ /**
+ * Get the flightingRing property: The flighting ring, only for release of feature updates.
+ *
+ * @return the flightingRing value.
+ */
+ public String flightingRing() {
+ return this.innerProperties() == null ? null : this.innerProperties().flightingRing();
+ }
+
+ /**
+ * Set the flightingRing property: The flighting ring, only for release of feature updates.
+ *
+ * @param flightingRing the flightingRing value to set.
+ * @return the OSUpdateResourceInner object itself.
+ */
+ public OSUpdateResourceInner withFlightingRing(String flightingRing) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new OSUpdateProperties();
+ }
+ this.innerProperties().withFlightingRing(flightingRing);
+ return this;
+ }
+
+ /**
+ * Get the buildVersion property: The build version of the tested release (OS update).
+ *
+ * @return the buildVersion value.
+ */
+ public String buildVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().buildVersion();
+ }
+
+ /**
+ * Set the buildVersion property: The build version of the tested release (OS update).
+ *
+ * @param buildVersion the buildVersion value to set.
+ * @return the OSUpdateResourceInner object itself.
+ */
+ public OSUpdateResourceInner withBuildVersion(String buildVersion) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new OSUpdateProperties();
+ }
+ this.innerProperties().withBuildVersion(buildVersion);
+ return this;
+ }
+
+ /**
+ * Get the buildRevision property: The build revision of the tested release (OS update).
+ *
+ * @return the buildRevision value.
+ */
+ public String buildRevision() {
+ return this.innerProperties() == null ? null : this.innerProperties().buildRevision();
+ }
+
+ /**
+ * Set the buildRevision property: The build revision of the tested release (OS update).
+ *
+ * @param buildRevision the buildRevision value to set.
+ * @return the OSUpdateResourceInner object itself.
+ */
+ public OSUpdateResourceInner withBuildRevision(String buildRevision) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new OSUpdateProperties();
+ }
+ this.innerProperties().withBuildRevision(buildRevision);
+ return this;
+ }
+
+ /**
+ * Get the type property: The type of this release (OS update).
+ *
+ * @return the type value.
+ */
+ public Type typePropertiesType() {
+ return this.innerProperties() == null ? null : this.innerProperties().type();
+ }
+
+ /**
+ * Set the type property: The type of this release (OS update).
+ *
+ * @param type the type value to set.
+ * @return the OSUpdateResourceInner object itself.
+ */
+ public OSUpdateResourceInner withTypePropertiesType(Type type) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new OSUpdateProperties();
+ }
+ this.innerProperties().withType(type);
+ return this;
+ }
+
+ /**
+ * Get the releaseVersionDate property: The release version date the tested release (OS update).
+ *
+ * @return the releaseVersionDate value.
+ */
+ public OffsetDateTime releaseVersionDate() {
+ return this.innerProperties() == null ? null : this.innerProperties().releaseVersionDate();
+ }
+
+ /**
+ * Set the releaseVersionDate property: The release version date the tested release (OS update).
+ *
+ * @param releaseVersionDate the releaseVersionDate value to set.
+ * @return the OSUpdateResourceInner object itself.
+ */
+ public OSUpdateResourceInner withReleaseVersionDate(OffsetDateTime releaseVersionDate) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new OSUpdateProperties();
+ }
+ this.innerProperties().withReleaseVersionDate(releaseVersionDate);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/OperationInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/OperationInner.java
new file mode 100644
index 000000000000..c5c862f42c4a
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/OperationInner.java
@@ -0,0 +1,121 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.testbase.models.OperationDisplay;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** REST API operation. */
+@Fluent
+public final class OperationInner {
+ /*
+ * Operation name: {provider}/{resource}/{operation}.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /*
+ * Indicates whether the operation is a data action
+ */
+ @JsonProperty(value = "isDataAction", access = JsonProperty.Access.WRITE_ONLY)
+ private Boolean isDataAction;
+
+ /*
+ * Origin of the operation
+ */
+ @JsonProperty(value = "origin", access = JsonProperty.Access.WRITE_ONLY)
+ private String origin;
+
+ /*
+ * The object that describes the operation.
+ */
+ @JsonProperty(value = "display")
+ private OperationDisplay display;
+
+ /*
+ * Extra properties of the operation.
+ */
+ @JsonProperty(value = "properties")
+ private Object properties;
+
+ /**
+ * Get the name property: Operation name: {provider}/{resource}/{operation}.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the isDataAction property: Indicates whether the operation is a data action.
+ *
+ * @return the isDataAction value.
+ */
+ public Boolean isDataAction() {
+ return this.isDataAction;
+ }
+
+ /**
+ * Get the origin property: Origin of the operation.
+ *
+ * @return the origin value.
+ */
+ public String origin() {
+ return this.origin;
+ }
+
+ /**
+ * Get the display property: The object that describes the operation.
+ *
+ * @return the display value.
+ */
+ public OperationDisplay display() {
+ return this.display;
+ }
+
+ /**
+ * Set the display property: The object that describes the operation.
+ *
+ * @param display the display value to set.
+ * @return the OperationInner object itself.
+ */
+ public OperationInner withDisplay(OperationDisplay display) {
+ this.display = display;
+ return this;
+ }
+
+ /**
+ * Get the properties property: Extra properties of the operation.
+ *
+ * @return the properties value.
+ */
+ public Object properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: Extra properties of the operation.
+ *
+ * @param properties the properties value to set.
+ * @return the OperationInner object itself.
+ */
+ public OperationInner withProperties(Object properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (display() != null) {
+ display().validate();
+ }
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/PackageProperties.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/PackageProperties.java
new file mode 100644
index 000000000000..1480e21f10b0
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/PackageProperties.java
@@ -0,0 +1,319 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.testbase.models.PackageStatus;
+import com.azure.resourcemanager.testbase.models.PackageValidationResult;
+import com.azure.resourcemanager.testbase.models.ProvisioningState;
+import com.azure.resourcemanager.testbase.models.TargetOSInfo;
+import com.azure.resourcemanager.testbase.models.Test;
+import com.azure.resourcemanager.testbase.models.TestType;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+import java.util.List;
+
+/** The properties of the Test Base Package. */
+@Fluent
+public final class PackageProperties {
+ /*
+ * The provisioning state of the resource.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private ProvisioningState provisioningState;
+
+ /*
+ * Application name
+ */
+ @JsonProperty(value = "applicationName", required = true)
+ private String applicationName;
+
+ /*
+ * Application version
+ */
+ @JsonProperty(value = "version", required = true)
+ private String version;
+
+ /*
+ * OOB, functional or both. Mapped to the data in 'tests' property.
+ */
+ @JsonProperty(value = "testTypes", access = JsonProperty.Access.WRITE_ONLY)
+ private List testTypes;
+
+ /*
+ * Specifies the target OSs of specific OS Update types.
+ */
+ @JsonProperty(value = "targetOSList", required = true)
+ private List targetOSList;
+
+ /*
+ * The status of the package.
+ */
+ @JsonProperty(value = "packageStatus", access = JsonProperty.Access.WRITE_ONLY)
+ private PackageStatus packageStatus;
+
+ /*
+ * The UTC timestamp when the package was last modified.
+ */
+ @JsonProperty(value = "lastModifiedTime", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime lastModifiedTime;
+
+ /*
+ * The flighting ring for feature update.
+ */
+ @JsonProperty(value = "flightingRing", required = true)
+ private String flightingRing;
+
+ /*
+ * Flag showing that whether the package is enabled. It doesn't schedule
+ * test for package which is not enabled.
+ */
+ @JsonProperty(value = "isEnabled", access = JsonProperty.Access.WRITE_ONLY)
+ private Boolean isEnabled;
+
+ /*
+ * The file path of the package.
+ */
+ @JsonProperty(value = "blobPath", required = true)
+ private String blobPath;
+
+ /*
+ * The validation results. There's validation on package when it's created
+ * or updated.
+ */
+ @JsonProperty(value = "validationResults", access = JsonProperty.Access.WRITE_ONLY)
+ private List validationResults;
+
+ /*
+ * The detailed test information.
+ */
+ @JsonProperty(value = "tests", required = true)
+ private List tests;
+
+ /**
+ * Get the provisioningState property: The provisioning state of the resource.
+ *
+ * @return the provisioningState value.
+ */
+ public ProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the applicationName property: Application name.
+ *
+ * @return the applicationName value.
+ */
+ public String applicationName() {
+ return this.applicationName;
+ }
+
+ /**
+ * Set the applicationName property: Application name.
+ *
+ * @param applicationName the applicationName value to set.
+ * @return the PackageProperties object itself.
+ */
+ public PackageProperties withApplicationName(String applicationName) {
+ this.applicationName = applicationName;
+ return this;
+ }
+
+ /**
+ * Get the version property: Application version.
+ *
+ * @return the version value.
+ */
+ public String version() {
+ return this.version;
+ }
+
+ /**
+ * Set the version property: Application version.
+ *
+ * @param version the version value to set.
+ * @return the PackageProperties object itself.
+ */
+ public PackageProperties withVersion(String version) {
+ this.version = version;
+ return this;
+ }
+
+ /**
+ * Get the testTypes property: OOB, functional or both. Mapped to the data in 'tests' property.
+ *
+ * @return the testTypes value.
+ */
+ public List testTypes() {
+ return this.testTypes;
+ }
+
+ /**
+ * Get the targetOSList property: Specifies the target OSs of specific OS Update types.
+ *
+ * @return the targetOSList value.
+ */
+ public List targetOSList() {
+ return this.targetOSList;
+ }
+
+ /**
+ * Set the targetOSList property: Specifies the target OSs of specific OS Update types.
+ *
+ * @param targetOSList the targetOSList value to set.
+ * @return the PackageProperties object itself.
+ */
+ public PackageProperties withTargetOSList(List targetOSList) {
+ this.targetOSList = targetOSList;
+ return this;
+ }
+
+ /**
+ * Get the packageStatus property: The status of the package.
+ *
+ * @return the packageStatus value.
+ */
+ public PackageStatus packageStatus() {
+ return this.packageStatus;
+ }
+
+ /**
+ * Get the lastModifiedTime property: The UTC timestamp when the package was last modified.
+ *
+ * @return the lastModifiedTime value.
+ */
+ public OffsetDateTime lastModifiedTime() {
+ return this.lastModifiedTime;
+ }
+
+ /**
+ * Get the flightingRing property: The flighting ring for feature update.
+ *
+ * @return the flightingRing value.
+ */
+ public String flightingRing() {
+ return this.flightingRing;
+ }
+
+ /**
+ * Set the flightingRing property: The flighting ring for feature update.
+ *
+ * @param flightingRing the flightingRing value to set.
+ * @return the PackageProperties object itself.
+ */
+ public PackageProperties withFlightingRing(String flightingRing) {
+ this.flightingRing = flightingRing;
+ return this;
+ }
+
+ /**
+ * Get the isEnabled property: Flag showing that whether the package is enabled. It doesn't schedule test for
+ * package which is not enabled.
+ *
+ * @return the isEnabled value.
+ */
+ public Boolean isEnabled() {
+ return this.isEnabled;
+ }
+
+ /**
+ * Get the blobPath property: The file path of the package.
+ *
+ * @return the blobPath value.
+ */
+ public String blobPath() {
+ return this.blobPath;
+ }
+
+ /**
+ * Set the blobPath property: The file path of the package.
+ *
+ * @param blobPath the blobPath value to set.
+ * @return the PackageProperties object itself.
+ */
+ public PackageProperties withBlobPath(String blobPath) {
+ this.blobPath = blobPath;
+ return this;
+ }
+
+ /**
+ * Get the validationResults property: The validation results. There's validation on package when it's created or
+ * updated.
+ *
+ * @return the validationResults value.
+ */
+ public List validationResults() {
+ return this.validationResults;
+ }
+
+ /**
+ * Get the tests property: The detailed test information.
+ *
+ * @return the tests value.
+ */
+ public List tests() {
+ return this.tests;
+ }
+
+ /**
+ * Set the tests property: The detailed test information.
+ *
+ * @param tests the tests value to set.
+ * @return the PackageProperties object itself.
+ */
+ public PackageProperties withTests(List tests) {
+ this.tests = tests;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (applicationName() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property applicationName in model PackageProperties"));
+ }
+ if (version() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property version in model PackageProperties"));
+ }
+ if (targetOSList() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property targetOSList in model PackageProperties"));
+ } else {
+ targetOSList().forEach(e -> e.validate());
+ }
+ if (flightingRing() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property flightingRing in model PackageProperties"));
+ }
+ if (blobPath() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property blobPath in model PackageProperties"));
+ }
+ if (validationResults() != null) {
+ validationResults().forEach(e -> e.validate());
+ }
+ if (tests() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property tests in model PackageProperties"));
+ } else {
+ tests().forEach(e -> e.validate());
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(PackageProperties.class);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/PackageResourceInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/PackageResourceInner.java
new file mode 100644
index 000000000000..a9fa15fec266
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/PackageResourceInner.java
@@ -0,0 +1,287 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.core.management.SystemData;
+import com.azure.resourcemanager.testbase.models.PackageStatus;
+import com.azure.resourcemanager.testbase.models.PackageValidationResult;
+import com.azure.resourcemanager.testbase.models.ProvisioningState;
+import com.azure.resourcemanager.testbase.models.TargetOSInfo;
+import com.azure.resourcemanager.testbase.models.Test;
+import com.azure.resourcemanager.testbase.models.TestType;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+import java.util.List;
+import java.util.Map;
+
+/** The Test Base Package resource. */
+@Fluent
+public final class PackageResourceInner extends Resource {
+ /*
+ * The system metadata relating to this resource
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * Test Base Package properties.
+ */
+ @JsonProperty(value = "properties")
+ private PackageProperties innerProperties;
+
+ /*
+ * Resource Etag.
+ */
+ @JsonProperty(value = "etag", access = JsonProperty.Access.WRITE_ONLY)
+ private String etag;
+
+ /**
+ * Get the systemData property: The system metadata relating to this resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the innerProperties property: Test Base Package properties.
+ *
+ * @return the innerProperties value.
+ */
+ private PackageProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the etag property: Resource Etag.
+ *
+ * @return the etag value.
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public PackageResourceInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public PackageResourceInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the provisioningState property: The provisioning state of the resource.
+ *
+ * @return the provisioningState value.
+ */
+ public ProvisioningState provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Get the applicationName property: Application name.
+ *
+ * @return the applicationName value.
+ */
+ public String applicationName() {
+ return this.innerProperties() == null ? null : this.innerProperties().applicationName();
+ }
+
+ /**
+ * Set the applicationName property: Application name.
+ *
+ * @param applicationName the applicationName value to set.
+ * @return the PackageResourceInner object itself.
+ */
+ public PackageResourceInner withApplicationName(String applicationName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new PackageProperties();
+ }
+ this.innerProperties().withApplicationName(applicationName);
+ return this;
+ }
+
+ /**
+ * Get the version property: Application version.
+ *
+ * @return the version value.
+ */
+ public String version() {
+ return this.innerProperties() == null ? null : this.innerProperties().version();
+ }
+
+ /**
+ * Set the version property: Application version.
+ *
+ * @param version the version value to set.
+ * @return the PackageResourceInner object itself.
+ */
+ public PackageResourceInner withVersion(String version) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new PackageProperties();
+ }
+ this.innerProperties().withVersion(version);
+ return this;
+ }
+
+ /**
+ * Get the testTypes property: OOB, functional or both. Mapped to the data in 'tests' property.
+ *
+ * @return the testTypes value.
+ */
+ public List testTypes() {
+ return this.innerProperties() == null ? null : this.innerProperties().testTypes();
+ }
+
+ /**
+ * Get the targetOSList property: Specifies the target OSs of specific OS Update types.
+ *
+ * @return the targetOSList value.
+ */
+ public List targetOSList() {
+ return this.innerProperties() == null ? null : this.innerProperties().targetOSList();
+ }
+
+ /**
+ * Set the targetOSList property: Specifies the target OSs of specific OS Update types.
+ *
+ * @param targetOSList the targetOSList value to set.
+ * @return the PackageResourceInner object itself.
+ */
+ public PackageResourceInner withTargetOSList(List targetOSList) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new PackageProperties();
+ }
+ this.innerProperties().withTargetOSList(targetOSList);
+ return this;
+ }
+
+ /**
+ * Get the packageStatus property: The status of the package.
+ *
+ * @return the packageStatus value.
+ */
+ public PackageStatus packageStatus() {
+ return this.innerProperties() == null ? null : this.innerProperties().packageStatus();
+ }
+
+ /**
+ * Get the lastModifiedTime property: The UTC timestamp when the package was last modified.
+ *
+ * @return the lastModifiedTime value.
+ */
+ public OffsetDateTime lastModifiedTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().lastModifiedTime();
+ }
+
+ /**
+ * Get the flightingRing property: The flighting ring for feature update.
+ *
+ * @return the flightingRing value.
+ */
+ public String flightingRing() {
+ return this.innerProperties() == null ? null : this.innerProperties().flightingRing();
+ }
+
+ /**
+ * Set the flightingRing property: The flighting ring for feature update.
+ *
+ * @param flightingRing the flightingRing value to set.
+ * @return the PackageResourceInner object itself.
+ */
+ public PackageResourceInner withFlightingRing(String flightingRing) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new PackageProperties();
+ }
+ this.innerProperties().withFlightingRing(flightingRing);
+ return this;
+ }
+
+ /**
+ * Get the isEnabled property: Flag showing that whether the package is enabled. It doesn't schedule test for
+ * package which is not enabled.
+ *
+ * @return the isEnabled value.
+ */
+ public Boolean isEnabled() {
+ return this.innerProperties() == null ? null : this.innerProperties().isEnabled();
+ }
+
+ /**
+ * Get the blobPath property: The file path of the package.
+ *
+ * @return the blobPath value.
+ */
+ public String blobPath() {
+ return this.innerProperties() == null ? null : this.innerProperties().blobPath();
+ }
+
+ /**
+ * Set the blobPath property: The file path of the package.
+ *
+ * @param blobPath the blobPath value to set.
+ * @return the PackageResourceInner object itself.
+ */
+ public PackageResourceInner withBlobPath(String blobPath) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new PackageProperties();
+ }
+ this.innerProperties().withBlobPath(blobPath);
+ return this;
+ }
+
+ /**
+ * Get the validationResults property: The validation results. There's validation on package when it's created or
+ * updated.
+ *
+ * @return the validationResults value.
+ */
+ public List validationResults() {
+ return this.innerProperties() == null ? null : this.innerProperties().validationResults();
+ }
+
+ /**
+ * Get the tests property: The detailed test information.
+ *
+ * @return the tests value.
+ */
+ public List tests() {
+ return this.innerProperties() == null ? null : this.innerProperties().tests();
+ }
+
+ /**
+ * Set the tests property: The detailed test information.
+ *
+ * @param tests the tests value to set.
+ * @return the PackageResourceInner object itself.
+ */
+ public PackageResourceInner withTests(List tests) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new PackageProperties();
+ }
+ this.innerProperties().withTests(tests);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/PackageUpdateParameterProperties.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/PackageUpdateParameterProperties.java
new file mode 100644
index 000000000000..b422983470bc
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/PackageUpdateParameterProperties.java
@@ -0,0 +1,162 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.testbase.models.TargetOSInfo;
+import com.azure.resourcemanager.testbase.models.Test;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Parameters supplied to update a Test Base Package. */
+@Fluent
+public final class PackageUpdateParameterProperties {
+ /*
+ * Specifies the target OSs of specific OS Update types.
+ */
+ @JsonProperty(value = "targetOSList")
+ private List targetOSList;
+
+ /*
+ * The flighting ring for feature update.
+ */
+ @JsonProperty(value = "flightingRing")
+ private String flightingRing;
+
+ /*
+ * Specifies whether the package is enabled. It doesn't schedule test for
+ * package which is not enabled.
+ */
+ @JsonProperty(value = "isEnabled")
+ private Boolean isEnabled;
+
+ /*
+ * The file name of the package.
+ */
+ @JsonProperty(value = "blobPath")
+ private String blobPath;
+
+ /*
+ * The detailed test information.
+ */
+ @JsonProperty(value = "tests")
+ private List tests;
+
+ /**
+ * Get the targetOSList property: Specifies the target OSs of specific OS Update types.
+ *
+ * @return the targetOSList value.
+ */
+ public List targetOSList() {
+ return this.targetOSList;
+ }
+
+ /**
+ * Set the targetOSList property: Specifies the target OSs of specific OS Update types.
+ *
+ * @param targetOSList the targetOSList value to set.
+ * @return the PackageUpdateParameterProperties object itself.
+ */
+ public PackageUpdateParameterProperties withTargetOSList(List targetOSList) {
+ this.targetOSList = targetOSList;
+ return this;
+ }
+
+ /**
+ * Get the flightingRing property: The flighting ring for feature update.
+ *
+ * @return the flightingRing value.
+ */
+ public String flightingRing() {
+ return this.flightingRing;
+ }
+
+ /**
+ * Set the flightingRing property: The flighting ring for feature update.
+ *
+ * @param flightingRing the flightingRing value to set.
+ * @return the PackageUpdateParameterProperties object itself.
+ */
+ public PackageUpdateParameterProperties withFlightingRing(String flightingRing) {
+ this.flightingRing = flightingRing;
+ return this;
+ }
+
+ /**
+ * Get the isEnabled property: Specifies whether the package is enabled. It doesn't schedule test for package which
+ * is not enabled.
+ *
+ * @return the isEnabled value.
+ */
+ public Boolean isEnabled() {
+ return this.isEnabled;
+ }
+
+ /**
+ * Set the isEnabled property: Specifies whether the package is enabled. It doesn't schedule test for package which
+ * is not enabled.
+ *
+ * @param isEnabled the isEnabled value to set.
+ * @return the PackageUpdateParameterProperties object itself.
+ */
+ public PackageUpdateParameterProperties withIsEnabled(Boolean isEnabled) {
+ this.isEnabled = isEnabled;
+ return this;
+ }
+
+ /**
+ * Get the blobPath property: The file name of the package.
+ *
+ * @return the blobPath value.
+ */
+ public String blobPath() {
+ return this.blobPath;
+ }
+
+ /**
+ * Set the blobPath property: The file name of the package.
+ *
+ * @param blobPath the blobPath value to set.
+ * @return the PackageUpdateParameterProperties object itself.
+ */
+ public PackageUpdateParameterProperties withBlobPath(String blobPath) {
+ this.blobPath = blobPath;
+ return this;
+ }
+
+ /**
+ * Get the tests property: The detailed test information.
+ *
+ * @return the tests value.
+ */
+ public List tests() {
+ return this.tests;
+ }
+
+ /**
+ * Set the tests property: The detailed test information.
+ *
+ * @param tests the tests value to set.
+ * @return the PackageUpdateParameterProperties object itself.
+ */
+ public PackageUpdateParameterProperties withTests(List tests) {
+ this.tests = tests;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (targetOSList() != null) {
+ targetOSList().forEach(e -> e.validate());
+ }
+ if (tests() != null) {
+ tests().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestBaseAccountResourceInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestBaseAccountResourceInner.java
new file mode 100644
index 000000000000..e326956a1ed7
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestBaseAccountResourceInner.java
@@ -0,0 +1,127 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.core.management.SystemData;
+import com.azure.resourcemanager.testbase.models.ProvisioningState;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** The Test Base Account resource. */
+@Fluent
+public final class TestBaseAccountResourceInner extends Resource {
+ /*
+ * The system metadata relating to this resource
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * Properties of a Test Base Account.
+ */
+ @JsonProperty(value = "properties")
+ private TestBaseAccountResourcePropertiesInner innerProperties;
+
+ /*
+ * Resource Etag.
+ */
+ @JsonProperty(value = "etag", access = JsonProperty.Access.WRITE_ONLY)
+ private String etag;
+
+ /**
+ * Get the systemData property: The system metadata relating to this resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the innerProperties property: Properties of a Test Base Account.
+ *
+ * @return the innerProperties value.
+ */
+ private TestBaseAccountResourcePropertiesInner innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the etag property: Resource Etag.
+ *
+ * @return the etag value.
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public TestBaseAccountResourceInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public TestBaseAccountResourceInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the provisioningState property: The provisioning state of the resource.
+ *
+ * @return the provisioningState value.
+ */
+ public ProvisioningState provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Get the sku property: The SKU of the Test Base Account.
+ *
+ * @return the sku value.
+ */
+ public TestBaseAccountSkuInner sku() {
+ return this.innerProperties() == null ? null : this.innerProperties().sku();
+ }
+
+ /**
+ * Set the sku property: The SKU of the Test Base Account.
+ *
+ * @param sku the sku value to set.
+ * @return the TestBaseAccountResourceInner object itself.
+ */
+ public TestBaseAccountResourceInner withSku(TestBaseAccountSkuInner sku) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestBaseAccountResourcePropertiesInner();
+ }
+ this.innerProperties().withSku(sku);
+ return this;
+ }
+
+ /**
+ * Get the accessLevel property: The access level of the Test Base Account.
+ *
+ * @return the accessLevel value.
+ */
+ public String accessLevel() {
+ return this.innerProperties() == null ? null : this.innerProperties().accessLevel();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestBaseAccountResourcePropertiesInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestBaseAccountResourcePropertiesInner.java
new file mode 100644
index 000000000000..426747532775
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestBaseAccountResourcePropertiesInner.java
@@ -0,0 +1,88 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.testbase.models.ProvisioningState;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The properties of a Test Base Account resource. */
+@Fluent
+public final class TestBaseAccountResourcePropertiesInner {
+ /*
+ * The provisioning state of the resource.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private ProvisioningState provisioningState;
+
+ /*
+ * The SKU of the Test Base Account.
+ */
+ @JsonProperty(value = "sku", required = true)
+ private TestBaseAccountSkuInner sku;
+
+ /*
+ * The access level of the Test Base Account.
+ */
+ @JsonProperty(value = "accessLevel", access = JsonProperty.Access.WRITE_ONLY)
+ private String accessLevel;
+
+ /**
+ * Get the provisioningState property: The provisioning state of the resource.
+ *
+ * @return the provisioningState value.
+ */
+ public ProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the sku property: The SKU of the Test Base Account.
+ *
+ * @return the sku value.
+ */
+ public TestBaseAccountSkuInner sku() {
+ return this.sku;
+ }
+
+ /**
+ * Set the sku property: The SKU of the Test Base Account.
+ *
+ * @param sku the sku value to set.
+ * @return the TestBaseAccountResourcePropertiesInner object itself.
+ */
+ public TestBaseAccountResourcePropertiesInner withSku(TestBaseAccountSkuInner sku) {
+ this.sku = sku;
+ return this;
+ }
+
+ /**
+ * Get the accessLevel property: The access level of the Test Base Account.
+ *
+ * @return the accessLevel value.
+ */
+ public String accessLevel() {
+ return this.accessLevel;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (sku() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property sku in model TestBaseAccountResourcePropertiesInner"));
+ } else {
+ sku().validate();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(TestBaseAccountResourcePropertiesInner.class);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestBaseAccountSkuInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestBaseAccountSkuInner.java
new file mode 100644
index 000000000000..3b587265744b
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestBaseAccountSkuInner.java
@@ -0,0 +1,159 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.testbase.models.TestBaseAccountSkuCapability;
+import com.azure.resourcemanager.testbase.models.Tier;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Describes a Test Base Account SKU. */
+@Fluent
+public final class TestBaseAccountSkuInner {
+ /*
+ * The type of resource the SKU applies to.
+ */
+ @JsonProperty(value = "resourceType")
+ private String resourceType;
+
+ /*
+ * The name of the SKU. This is typically a letter + number code, such as
+ * B0 or S0.
+ */
+ @JsonProperty(value = "name", required = true)
+ private String name;
+
+ /*
+ * The tier of this particular SKU.
+ */
+ @JsonProperty(value = "tier", required = true)
+ private Tier tier;
+
+ /*
+ * The capabilities of a SKU.
+ */
+ @JsonProperty(value = "capabilities", access = JsonProperty.Access.WRITE_ONLY)
+ private List capabilities;
+
+ /*
+ * The locations that the SKU is available.
+ */
+ @JsonProperty(value = "locations")
+ private List locations;
+
+ /**
+ * Get the resourceType property: The type of resource the SKU applies to.
+ *
+ * @return the resourceType value.
+ */
+ public String resourceType() {
+ return this.resourceType;
+ }
+
+ /**
+ * Set the resourceType property: The type of resource the SKU applies to.
+ *
+ * @param resourceType the resourceType value to set.
+ * @return the TestBaseAccountSkuInner object itself.
+ */
+ public TestBaseAccountSkuInner withResourceType(String resourceType) {
+ this.resourceType = resourceType;
+ return this;
+ }
+
+ /**
+ * Get the name property: The name of the SKU. This is typically a letter + number code, such as B0 or S0.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name property: The name of the SKU. This is typically a letter + number code, such as B0 or S0.
+ *
+ * @param name the name value to set.
+ * @return the TestBaseAccountSkuInner object itself.
+ */
+ public TestBaseAccountSkuInner withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the tier property: The tier of this particular SKU.
+ *
+ * @return the tier value.
+ */
+ public Tier tier() {
+ return this.tier;
+ }
+
+ /**
+ * Set the tier property: The tier of this particular SKU.
+ *
+ * @param tier the tier value to set.
+ * @return the TestBaseAccountSkuInner object itself.
+ */
+ public TestBaseAccountSkuInner withTier(Tier tier) {
+ this.tier = tier;
+ return this;
+ }
+
+ /**
+ * Get the capabilities property: The capabilities of a SKU.
+ *
+ * @return the capabilities value.
+ */
+ public List capabilities() {
+ return this.capabilities;
+ }
+
+ /**
+ * Get the locations property: The locations that the SKU is available.
+ *
+ * @return the locations value.
+ */
+ public List locations() {
+ return this.locations;
+ }
+
+ /**
+ * Set the locations property: The locations that the SKU is available.
+ *
+ * @param locations the locations value to set.
+ * @return the TestBaseAccountSkuInner object itself.
+ */
+ public TestBaseAccountSkuInner withLocations(List locations) {
+ this.locations = locations;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (name() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property name in model TestBaseAccountSkuInner"));
+ }
+ if (tier() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property tier in model TestBaseAccountSkuInner"));
+ }
+ if (capabilities() != null) {
+ capabilities().forEach(e -> e.validate());
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(TestBaseAccountSkuInner.class);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestBaseAccountUpdateParameterPropertiesInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestBaseAccountUpdateParameterPropertiesInner.java
new file mode 100644
index 000000000000..1fb56f297468
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestBaseAccountUpdateParameterPropertiesInner.java
@@ -0,0 +1,49 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Parameters supplied to update a Test Base Account. */
+@Fluent
+public final class TestBaseAccountUpdateParameterPropertiesInner {
+ /*
+ * The SKU of the Test Base Account.
+ */
+ @JsonProperty(value = "sku")
+ private TestBaseAccountSkuInner sku;
+
+ /**
+ * Get the sku property: The SKU of the Test Base Account.
+ *
+ * @return the sku value.
+ */
+ public TestBaseAccountSkuInner sku() {
+ return this.sku;
+ }
+
+ /**
+ * Set the sku property: The SKU of the Test Base Account.
+ *
+ * @param sku the sku value to set.
+ * @return the TestBaseAccountUpdateParameterPropertiesInner object itself.
+ */
+ public TestBaseAccountUpdateParameterPropertiesInner withSku(TestBaseAccountSkuInner sku) {
+ this.sku = sku;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (sku() != null) {
+ sku().validate();
+ }
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestBaseAccountUpdateParametersInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestBaseAccountUpdateParametersInner.java
new file mode 100644
index 000000000000..7f4daa8f72f1
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestBaseAccountUpdateParametersInner.java
@@ -0,0 +1,90 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** Parameters supplied to update a Test Base Account. */
+@Fluent
+public final class TestBaseAccountUpdateParametersInner {
+ /*
+ * Test Base Account update parameters.
+ */
+ @JsonProperty(value = "properties")
+ private TestBaseAccountUpdateParameterPropertiesInner innerProperties;
+
+ /*
+ * The tags of the Test Base Account.
+ */
+ @JsonProperty(value = "tags")
+ @JsonInclude(value = JsonInclude.Include.NON_NULL, content = JsonInclude.Include.ALWAYS)
+ private Map tags;
+
+ /**
+ * Get the innerProperties property: Test Base Account update parameters.
+ *
+ * @return the innerProperties value.
+ */
+ private TestBaseAccountUpdateParameterPropertiesInner innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the tags property: The tags of the Test Base Account.
+ *
+ * @return the tags value.
+ */
+ public Map tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set the tags property: The tags of the Test Base Account.
+ *
+ * @param tags the tags value to set.
+ * @return the TestBaseAccountUpdateParametersInner object itself.
+ */
+ public TestBaseAccountUpdateParametersInner withTags(Map tags) {
+ this.tags = tags;
+ return this;
+ }
+
+ /**
+ * Get the sku property: The SKU of the Test Base Account.
+ *
+ * @return the sku value.
+ */
+ public TestBaseAccountSkuInner sku() {
+ return this.innerProperties() == null ? null : this.innerProperties().sku();
+ }
+
+ /**
+ * Set the sku property: The SKU of the Test Base Account.
+ *
+ * @param sku the sku value to set.
+ * @return the TestBaseAccountUpdateParametersInner object itself.
+ */
+ public TestBaseAccountUpdateParametersInner withSku(TestBaseAccountSkuInner sku) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestBaseAccountUpdateParameterPropertiesInner();
+ }
+ this.innerProperties().withSku(sku);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestBaseAccountUsageDataInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestBaseAccountUsageDataInner.java
new file mode 100644
index 000000000000..238619af0a6b
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestBaseAccountUsageDataInner.java
@@ -0,0 +1,160 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.testbase.models.TestBaseAccountUsageName;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The usage data of a Test Base Account. */
+@Fluent
+public final class TestBaseAccountUsageDataInner {
+ /*
+ * Fully qualified ARM resource id
+ */
+ @JsonProperty(value = "id")
+ private String id;
+
+ /*
+ * Localizable String object containing the name and a localized value.
+ */
+ @JsonProperty(value = "name")
+ private TestBaseAccountUsageName name;
+
+ /*
+ * Representing the units of the usage quota. Possible values are: Count,
+ * Bytes, Seconds, Percent, CountPerSecond, BytesPerSecond.
+ */
+ @JsonProperty(value = "unit")
+ private String unit;
+
+ /*
+ * The maximum permitted value for the usage quota. If there is no limit,
+ * this value will be -1.
+ */
+ @JsonProperty(value = "limit")
+ private Long limit;
+
+ /*
+ * Current value for the usage quota.
+ */
+ @JsonProperty(value = "currentValue")
+ private Long currentValue;
+
+ /**
+ * Get the id property: Fully qualified ARM resource id.
+ *
+ * @return the id value.
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set the id property: Fully qualified ARM resource id.
+ *
+ * @param id the id value to set.
+ * @return the TestBaseAccountUsageDataInner object itself.
+ */
+ public TestBaseAccountUsageDataInner withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Get the name property: Localizable String object containing the name and a localized value.
+ *
+ * @return the name value.
+ */
+ public TestBaseAccountUsageName name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name property: Localizable String object containing the name and a localized value.
+ *
+ * @param name the name value to set.
+ * @return the TestBaseAccountUsageDataInner object itself.
+ */
+ public TestBaseAccountUsageDataInner withName(TestBaseAccountUsageName name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the unit property: Representing the units of the usage quota. Possible values are: Count, Bytes, Seconds,
+ * Percent, CountPerSecond, BytesPerSecond.
+ *
+ * @return the unit value.
+ */
+ public String unit() {
+ return this.unit;
+ }
+
+ /**
+ * Set the unit property: Representing the units of the usage quota. Possible values are: Count, Bytes, Seconds,
+ * Percent, CountPerSecond, BytesPerSecond.
+ *
+ * @param unit the unit value to set.
+ * @return the TestBaseAccountUsageDataInner object itself.
+ */
+ public TestBaseAccountUsageDataInner withUnit(String unit) {
+ this.unit = unit;
+ return this;
+ }
+
+ /**
+ * Get the limit property: The maximum permitted value for the usage quota. If there is no limit, this value will be
+ * -1.
+ *
+ * @return the limit value.
+ */
+ public Long limit() {
+ return this.limit;
+ }
+
+ /**
+ * Set the limit property: The maximum permitted value for the usage quota. If there is no limit, this value will be
+ * -1.
+ *
+ * @param limit the limit value to set.
+ * @return the TestBaseAccountUsageDataInner object itself.
+ */
+ public TestBaseAccountUsageDataInner withLimit(Long limit) {
+ this.limit = limit;
+ return this;
+ }
+
+ /**
+ * Get the currentValue property: Current value for the usage quota.
+ *
+ * @return the currentValue value.
+ */
+ public Long currentValue() {
+ return this.currentValue;
+ }
+
+ /**
+ * Set the currentValue property: Current value for the usage quota.
+ *
+ * @param currentValue the currentValue value to set.
+ * @return the TestBaseAccountUsageDataInner object itself.
+ */
+ public TestBaseAccountUsageDataInner withCurrentValue(Long currentValue) {
+ this.currentValue = currentValue;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (name() != null) {
+ name().validate();
+ }
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestResultProperties.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestResultProperties.java
new file mode 100644
index 000000000000..91da88eead33
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestResultProperties.java
@@ -0,0 +1,549 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.testbase.models.ExecutionStatus;
+import com.azure.resourcemanager.testbase.models.Grade;
+import com.azure.resourcemanager.testbase.models.TestResultAnalysisSummary;
+import com.azure.resourcemanager.testbase.models.TestStatus;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+import java.util.List;
+
+/** The properties of a Test Result. */
+@Fluent
+public final class TestResultProperties {
+ /*
+ * Azure Id of the baseline test result.
+ */
+ @JsonProperty(value = "baselineTestResultId")
+ private String baselineTestResultId;
+
+ /*
+ * Resource Id of the package.
+ */
+ @JsonProperty(value = "packageId")
+ private String packageId;
+
+ /*
+ * Application name.
+ */
+ @JsonProperty(value = "applicationName")
+ private String applicationName;
+
+ /*
+ * Application version.
+ */
+ @JsonProperty(value = "applicationVersion")
+ private String applicationVersion;
+
+ /*
+ * The operating system name, e.g. Windows 10 1809.
+ */
+ @JsonProperty(value = "osName")
+ private String osName;
+
+ /*
+ * The name of the tested release (OS update).
+ */
+ @JsonProperty(value = "releaseName")
+ private String releaseName;
+
+ /*
+ * The release version date of the tested release.
+ */
+ @JsonProperty(value = "releaseVersionDate")
+ private OffsetDateTime releaseVersionDate;
+
+ /*
+ * The flighting ring, only for release of feature updates.
+ */
+ @JsonProperty(value = "flightingRing")
+ private String flightingRing;
+
+ /*
+ * The build version of the tested release (OS update).
+ */
+ @JsonProperty(value = "buildVersion")
+ private String buildVersion;
+
+ /*
+ * The build revision of the tested release (OS update).
+ */
+ @JsonProperty(value = "buildRevision")
+ private String buildRevision;
+
+ /*
+ * Test type. E.g. 'Out of box test' or 'Functional test'.
+ */
+ @JsonProperty(value = "testType")
+ private String testType;
+
+ /*
+ * The run time of the test.
+ */
+ @JsonProperty(value = "testRunTime")
+ private String testRunTime;
+
+ /*
+ * Whether download data is available.
+ */
+ @JsonProperty(value = "isDownloadDataAvailable")
+ private Boolean isDownloadDataAvailable;
+
+ /*
+ * Whether video data is available.
+ */
+ @JsonProperty(value = "isVideoAvailable")
+ private Boolean isVideoAvailable;
+
+ /*
+ * The execution status of the test.
+ */
+ @JsonProperty(value = "executionStatus")
+ private ExecutionStatus executionStatus;
+
+ /*
+ * The status of the test.
+ */
+ @JsonProperty(value = "testStatus")
+ private TestStatus testStatus;
+
+ /*
+ * The grade of the test.
+ */
+ @JsonProperty(value = "grade")
+ private Grade grade;
+
+ /*
+ * KB number.
+ */
+ @JsonProperty(value = "kbNumber")
+ private String kbNumber;
+
+ /*
+ * The version of the Windows update package.
+ */
+ @JsonProperty(value = "packageVersion")
+ private String packageVersion;
+
+ /*
+ * List of analysis summaries.
+ */
+ @JsonProperty(value = "analysisSummaries")
+ private List analysisSummaries;
+
+ /**
+ * Get the baselineTestResultId property: Azure Id of the baseline test result.
+ *
+ * @return the baselineTestResultId value.
+ */
+ public String baselineTestResultId() {
+ return this.baselineTestResultId;
+ }
+
+ /**
+ * Set the baselineTestResultId property: Azure Id of the baseline test result.
+ *
+ * @param baselineTestResultId the baselineTestResultId value to set.
+ * @return the TestResultProperties object itself.
+ */
+ public TestResultProperties withBaselineTestResultId(String baselineTestResultId) {
+ this.baselineTestResultId = baselineTestResultId;
+ return this;
+ }
+
+ /**
+ * Get the packageId property: Resource Id of the package.
+ *
+ * @return the packageId value.
+ */
+ public String packageId() {
+ return this.packageId;
+ }
+
+ /**
+ * Set the packageId property: Resource Id of the package.
+ *
+ * @param packageId the packageId value to set.
+ * @return the TestResultProperties object itself.
+ */
+ public TestResultProperties withPackageId(String packageId) {
+ this.packageId = packageId;
+ return this;
+ }
+
+ /**
+ * Get the applicationName property: Application name.
+ *
+ * @return the applicationName value.
+ */
+ public String applicationName() {
+ return this.applicationName;
+ }
+
+ /**
+ * Set the applicationName property: Application name.
+ *
+ * @param applicationName the applicationName value to set.
+ * @return the TestResultProperties object itself.
+ */
+ public TestResultProperties withApplicationName(String applicationName) {
+ this.applicationName = applicationName;
+ return this;
+ }
+
+ /**
+ * Get the applicationVersion property: Application version.
+ *
+ * @return the applicationVersion value.
+ */
+ public String applicationVersion() {
+ return this.applicationVersion;
+ }
+
+ /**
+ * Set the applicationVersion property: Application version.
+ *
+ * @param applicationVersion the applicationVersion value to set.
+ * @return the TestResultProperties object itself.
+ */
+ public TestResultProperties withApplicationVersion(String applicationVersion) {
+ this.applicationVersion = applicationVersion;
+ return this;
+ }
+
+ /**
+ * Get the osName property: The operating system name, e.g. Windows 10 1809.
+ *
+ * @return the osName value.
+ */
+ public String osName() {
+ return this.osName;
+ }
+
+ /**
+ * Set the osName property: The operating system name, e.g. Windows 10 1809.
+ *
+ * @param osName the osName value to set.
+ * @return the TestResultProperties object itself.
+ */
+ public TestResultProperties withOsName(String osName) {
+ this.osName = osName;
+ return this;
+ }
+
+ /**
+ * Get the releaseName property: The name of the tested release (OS update).
+ *
+ * @return the releaseName value.
+ */
+ public String releaseName() {
+ return this.releaseName;
+ }
+
+ /**
+ * Set the releaseName property: The name of the tested release (OS update).
+ *
+ * @param releaseName the releaseName value to set.
+ * @return the TestResultProperties object itself.
+ */
+ public TestResultProperties withReleaseName(String releaseName) {
+ this.releaseName = releaseName;
+ return this;
+ }
+
+ /**
+ * Get the releaseVersionDate property: The release version date of the tested release.
+ *
+ * @return the releaseVersionDate value.
+ */
+ public OffsetDateTime releaseVersionDate() {
+ return this.releaseVersionDate;
+ }
+
+ /**
+ * Set the releaseVersionDate property: The release version date of the tested release.
+ *
+ * @param releaseVersionDate the releaseVersionDate value to set.
+ * @return the TestResultProperties object itself.
+ */
+ public TestResultProperties withReleaseVersionDate(OffsetDateTime releaseVersionDate) {
+ this.releaseVersionDate = releaseVersionDate;
+ return this;
+ }
+
+ /**
+ * Get the flightingRing property: The flighting ring, only for release of feature updates.
+ *
+ * @return the flightingRing value.
+ */
+ public String flightingRing() {
+ return this.flightingRing;
+ }
+
+ /**
+ * Set the flightingRing property: The flighting ring, only for release of feature updates.
+ *
+ * @param flightingRing the flightingRing value to set.
+ * @return the TestResultProperties object itself.
+ */
+ public TestResultProperties withFlightingRing(String flightingRing) {
+ this.flightingRing = flightingRing;
+ return this;
+ }
+
+ /**
+ * Get the buildVersion property: The build version of the tested release (OS update).
+ *
+ * @return the buildVersion value.
+ */
+ public String buildVersion() {
+ return this.buildVersion;
+ }
+
+ /**
+ * Set the buildVersion property: The build version of the tested release (OS update).
+ *
+ * @param buildVersion the buildVersion value to set.
+ * @return the TestResultProperties object itself.
+ */
+ public TestResultProperties withBuildVersion(String buildVersion) {
+ this.buildVersion = buildVersion;
+ return this;
+ }
+
+ /**
+ * Get the buildRevision property: The build revision of the tested release (OS update).
+ *
+ * @return the buildRevision value.
+ */
+ public String buildRevision() {
+ return this.buildRevision;
+ }
+
+ /**
+ * Set the buildRevision property: The build revision of the tested release (OS update).
+ *
+ * @param buildRevision the buildRevision value to set.
+ * @return the TestResultProperties object itself.
+ */
+ public TestResultProperties withBuildRevision(String buildRevision) {
+ this.buildRevision = buildRevision;
+ return this;
+ }
+
+ /**
+ * Get the testType property: Test type. E.g. 'Out of box test' or 'Functional test'.
+ *
+ * @return the testType value.
+ */
+ public String testType() {
+ return this.testType;
+ }
+
+ /**
+ * Set the testType property: Test type. E.g. 'Out of box test' or 'Functional test'.
+ *
+ * @param testType the testType value to set.
+ * @return the TestResultProperties object itself.
+ */
+ public TestResultProperties withTestType(String testType) {
+ this.testType = testType;
+ return this;
+ }
+
+ /**
+ * Get the testRunTime property: The run time of the test.
+ *
+ * @return the testRunTime value.
+ */
+ public String testRunTime() {
+ return this.testRunTime;
+ }
+
+ /**
+ * Set the testRunTime property: The run time of the test.
+ *
+ * @param testRunTime the testRunTime value to set.
+ * @return the TestResultProperties object itself.
+ */
+ public TestResultProperties withTestRunTime(String testRunTime) {
+ this.testRunTime = testRunTime;
+ return this;
+ }
+
+ /**
+ * Get the isDownloadDataAvailable property: Whether download data is available.
+ *
+ * @return the isDownloadDataAvailable value.
+ */
+ public Boolean isDownloadDataAvailable() {
+ return this.isDownloadDataAvailable;
+ }
+
+ /**
+ * Set the isDownloadDataAvailable property: Whether download data is available.
+ *
+ * @param isDownloadDataAvailable the isDownloadDataAvailable value to set.
+ * @return the TestResultProperties object itself.
+ */
+ public TestResultProperties withIsDownloadDataAvailable(Boolean isDownloadDataAvailable) {
+ this.isDownloadDataAvailable = isDownloadDataAvailable;
+ return this;
+ }
+
+ /**
+ * Get the isVideoAvailable property: Whether video data is available.
+ *
+ * @return the isVideoAvailable value.
+ */
+ public Boolean isVideoAvailable() {
+ return this.isVideoAvailable;
+ }
+
+ /**
+ * Set the isVideoAvailable property: Whether video data is available.
+ *
+ * @param isVideoAvailable the isVideoAvailable value to set.
+ * @return the TestResultProperties object itself.
+ */
+ public TestResultProperties withIsVideoAvailable(Boolean isVideoAvailable) {
+ this.isVideoAvailable = isVideoAvailable;
+ return this;
+ }
+
+ /**
+ * Get the executionStatus property: The execution status of the test.
+ *
+ * @return the executionStatus value.
+ */
+ public ExecutionStatus executionStatus() {
+ return this.executionStatus;
+ }
+
+ /**
+ * Set the executionStatus property: The execution status of the test.
+ *
+ * @param executionStatus the executionStatus value to set.
+ * @return the TestResultProperties object itself.
+ */
+ public TestResultProperties withExecutionStatus(ExecutionStatus executionStatus) {
+ this.executionStatus = executionStatus;
+ return this;
+ }
+
+ /**
+ * Get the testStatus property: The status of the test.
+ *
+ * @return the testStatus value.
+ */
+ public TestStatus testStatus() {
+ return this.testStatus;
+ }
+
+ /**
+ * Set the testStatus property: The status of the test.
+ *
+ * @param testStatus the testStatus value to set.
+ * @return the TestResultProperties object itself.
+ */
+ public TestResultProperties withTestStatus(TestStatus testStatus) {
+ this.testStatus = testStatus;
+ return this;
+ }
+
+ /**
+ * Get the grade property: The grade of the test.
+ *
+ * @return the grade value.
+ */
+ public Grade grade() {
+ return this.grade;
+ }
+
+ /**
+ * Set the grade property: The grade of the test.
+ *
+ * @param grade the grade value to set.
+ * @return the TestResultProperties object itself.
+ */
+ public TestResultProperties withGrade(Grade grade) {
+ this.grade = grade;
+ return this;
+ }
+
+ /**
+ * Get the kbNumber property: KB number.
+ *
+ * @return the kbNumber value.
+ */
+ public String kbNumber() {
+ return this.kbNumber;
+ }
+
+ /**
+ * Set the kbNumber property: KB number.
+ *
+ * @param kbNumber the kbNumber value to set.
+ * @return the TestResultProperties object itself.
+ */
+ public TestResultProperties withKbNumber(String kbNumber) {
+ this.kbNumber = kbNumber;
+ return this;
+ }
+
+ /**
+ * Get the packageVersion property: The version of the Windows update package.
+ *
+ * @return the packageVersion value.
+ */
+ public String packageVersion() {
+ return this.packageVersion;
+ }
+
+ /**
+ * Set the packageVersion property: The version of the Windows update package.
+ *
+ * @param packageVersion the packageVersion value to set.
+ * @return the TestResultProperties object itself.
+ */
+ public TestResultProperties withPackageVersion(String packageVersion) {
+ this.packageVersion = packageVersion;
+ return this;
+ }
+
+ /**
+ * Get the analysisSummaries property: List of analysis summaries.
+ *
+ * @return the analysisSummaries value.
+ */
+ public List analysisSummaries() {
+ return this.analysisSummaries;
+ }
+
+ /**
+ * Set the analysisSummaries property: List of analysis summaries.
+ *
+ * @param analysisSummaries the analysisSummaries value to set.
+ * @return the TestResultProperties object itself.
+ */
+ public TestResultProperties withAnalysisSummaries(List analysisSummaries) {
+ this.analysisSummaries = analysisSummaries;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (analysisSummaries() != null) {
+ analysisSummaries().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestResultResourceInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestResultResourceInner.java
new file mode 100644
index 000000000000..e129b67d4418
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestResultResourceInner.java
@@ -0,0 +1,521 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.resourcemanager.testbase.models.ExecutionStatus;
+import com.azure.resourcemanager.testbase.models.Grade;
+import com.azure.resourcemanager.testbase.models.TestResultAnalysisSummary;
+import com.azure.resourcemanager.testbase.models.TestStatus;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+import java.util.List;
+
+/** The Test Result Resource. */
+@Fluent
+public final class TestResultResourceInner extends ProxyResource {
+ /*
+ * The system metadata relating to this resource
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * The properties of a Test Result.
+ */
+ @JsonProperty(value = "properties")
+ private TestResultProperties innerProperties;
+
+ /**
+ * Get the systemData property: The system metadata relating to this resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the innerProperties property: The properties of a Test Result.
+ *
+ * @return the innerProperties value.
+ */
+ private TestResultProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the baselineTestResultId property: Azure Id of the baseline test result.
+ *
+ * @return the baselineTestResultId value.
+ */
+ public String baselineTestResultId() {
+ return this.innerProperties() == null ? null : this.innerProperties().baselineTestResultId();
+ }
+
+ /**
+ * Set the baselineTestResultId property: Azure Id of the baseline test result.
+ *
+ * @param baselineTestResultId the baselineTestResultId value to set.
+ * @return the TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner withBaselineTestResultId(String baselineTestResultId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestResultProperties();
+ }
+ this.innerProperties().withBaselineTestResultId(baselineTestResultId);
+ return this;
+ }
+
+ /**
+ * Get the packageId property: Resource Id of the package.
+ *
+ * @return the packageId value.
+ */
+ public String packageId() {
+ return this.innerProperties() == null ? null : this.innerProperties().packageId();
+ }
+
+ /**
+ * Set the packageId property: Resource Id of the package.
+ *
+ * @param packageId the packageId value to set.
+ * @return the TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner withPackageId(String packageId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestResultProperties();
+ }
+ this.innerProperties().withPackageId(packageId);
+ return this;
+ }
+
+ /**
+ * Get the applicationName property: Application name.
+ *
+ * @return the applicationName value.
+ */
+ public String applicationName() {
+ return this.innerProperties() == null ? null : this.innerProperties().applicationName();
+ }
+
+ /**
+ * Set the applicationName property: Application name.
+ *
+ * @param applicationName the applicationName value to set.
+ * @return the TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner withApplicationName(String applicationName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestResultProperties();
+ }
+ this.innerProperties().withApplicationName(applicationName);
+ return this;
+ }
+
+ /**
+ * Get the applicationVersion property: Application version.
+ *
+ * @return the applicationVersion value.
+ */
+ public String applicationVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().applicationVersion();
+ }
+
+ /**
+ * Set the applicationVersion property: Application version.
+ *
+ * @param applicationVersion the applicationVersion value to set.
+ * @return the TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner withApplicationVersion(String applicationVersion) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestResultProperties();
+ }
+ this.innerProperties().withApplicationVersion(applicationVersion);
+ return this;
+ }
+
+ /**
+ * Get the osName property: The operating system name, e.g. Windows 10 1809.
+ *
+ * @return the osName value.
+ */
+ public String osName() {
+ return this.innerProperties() == null ? null : this.innerProperties().osName();
+ }
+
+ /**
+ * Set the osName property: The operating system name, e.g. Windows 10 1809.
+ *
+ * @param osName the osName value to set.
+ * @return the TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner withOsName(String osName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestResultProperties();
+ }
+ this.innerProperties().withOsName(osName);
+ return this;
+ }
+
+ /**
+ * Get the releaseName property: The name of the tested release (OS update).
+ *
+ * @return the releaseName value.
+ */
+ public String releaseName() {
+ return this.innerProperties() == null ? null : this.innerProperties().releaseName();
+ }
+
+ /**
+ * Set the releaseName property: The name of the tested release (OS update).
+ *
+ * @param releaseName the releaseName value to set.
+ * @return the TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner withReleaseName(String releaseName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestResultProperties();
+ }
+ this.innerProperties().withReleaseName(releaseName);
+ return this;
+ }
+
+ /**
+ * Get the releaseVersionDate property: The release version date of the tested release.
+ *
+ * @return the releaseVersionDate value.
+ */
+ public OffsetDateTime releaseVersionDate() {
+ return this.innerProperties() == null ? null : this.innerProperties().releaseVersionDate();
+ }
+
+ /**
+ * Set the releaseVersionDate property: The release version date of the tested release.
+ *
+ * @param releaseVersionDate the releaseVersionDate value to set.
+ * @return the TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner withReleaseVersionDate(OffsetDateTime releaseVersionDate) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestResultProperties();
+ }
+ this.innerProperties().withReleaseVersionDate(releaseVersionDate);
+ return this;
+ }
+
+ /**
+ * Get the flightingRing property: The flighting ring, only for release of feature updates.
+ *
+ * @return the flightingRing value.
+ */
+ public String flightingRing() {
+ return this.innerProperties() == null ? null : this.innerProperties().flightingRing();
+ }
+
+ /**
+ * Set the flightingRing property: The flighting ring, only for release of feature updates.
+ *
+ * @param flightingRing the flightingRing value to set.
+ * @return the TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner withFlightingRing(String flightingRing) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestResultProperties();
+ }
+ this.innerProperties().withFlightingRing(flightingRing);
+ return this;
+ }
+
+ /**
+ * Get the buildVersion property: The build version of the tested release (OS update).
+ *
+ * @return the buildVersion value.
+ */
+ public String buildVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().buildVersion();
+ }
+
+ /**
+ * Set the buildVersion property: The build version of the tested release (OS update).
+ *
+ * @param buildVersion the buildVersion value to set.
+ * @return the TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner withBuildVersion(String buildVersion) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestResultProperties();
+ }
+ this.innerProperties().withBuildVersion(buildVersion);
+ return this;
+ }
+
+ /**
+ * Get the buildRevision property: The build revision of the tested release (OS update).
+ *
+ * @return the buildRevision value.
+ */
+ public String buildRevision() {
+ return this.innerProperties() == null ? null : this.innerProperties().buildRevision();
+ }
+
+ /**
+ * Set the buildRevision property: The build revision of the tested release (OS update).
+ *
+ * @param buildRevision the buildRevision value to set.
+ * @return the TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner withBuildRevision(String buildRevision) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestResultProperties();
+ }
+ this.innerProperties().withBuildRevision(buildRevision);
+ return this;
+ }
+
+ /**
+ * Get the testType property: Test type. E.g. 'Out of box test' or 'Functional test'.
+ *
+ * @return the testType value.
+ */
+ public String testType() {
+ return this.innerProperties() == null ? null : this.innerProperties().testType();
+ }
+
+ /**
+ * Set the testType property: Test type. E.g. 'Out of box test' or 'Functional test'.
+ *
+ * @param testType the testType value to set.
+ * @return the TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner withTestType(String testType) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestResultProperties();
+ }
+ this.innerProperties().withTestType(testType);
+ return this;
+ }
+
+ /**
+ * Get the testRunTime property: The run time of the test.
+ *
+ * @return the testRunTime value.
+ */
+ public String testRunTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().testRunTime();
+ }
+
+ /**
+ * Set the testRunTime property: The run time of the test.
+ *
+ * @param testRunTime the testRunTime value to set.
+ * @return the TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner withTestRunTime(String testRunTime) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestResultProperties();
+ }
+ this.innerProperties().withTestRunTime(testRunTime);
+ return this;
+ }
+
+ /**
+ * Get the isDownloadDataAvailable property: Whether download data is available.
+ *
+ * @return the isDownloadDataAvailable value.
+ */
+ public Boolean isDownloadDataAvailable() {
+ return this.innerProperties() == null ? null : this.innerProperties().isDownloadDataAvailable();
+ }
+
+ /**
+ * Set the isDownloadDataAvailable property: Whether download data is available.
+ *
+ * @param isDownloadDataAvailable the isDownloadDataAvailable value to set.
+ * @return the TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner withIsDownloadDataAvailable(Boolean isDownloadDataAvailable) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestResultProperties();
+ }
+ this.innerProperties().withIsDownloadDataAvailable(isDownloadDataAvailable);
+ return this;
+ }
+
+ /**
+ * Get the isVideoAvailable property: Whether video data is available.
+ *
+ * @return the isVideoAvailable value.
+ */
+ public Boolean isVideoAvailable() {
+ return this.innerProperties() == null ? null : this.innerProperties().isVideoAvailable();
+ }
+
+ /**
+ * Set the isVideoAvailable property: Whether video data is available.
+ *
+ * @param isVideoAvailable the isVideoAvailable value to set.
+ * @return the TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner withIsVideoAvailable(Boolean isVideoAvailable) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestResultProperties();
+ }
+ this.innerProperties().withIsVideoAvailable(isVideoAvailable);
+ return this;
+ }
+
+ /**
+ * Get the executionStatus property: The execution status of the test.
+ *
+ * @return the executionStatus value.
+ */
+ public ExecutionStatus executionStatus() {
+ return this.innerProperties() == null ? null : this.innerProperties().executionStatus();
+ }
+
+ /**
+ * Set the executionStatus property: The execution status of the test.
+ *
+ * @param executionStatus the executionStatus value to set.
+ * @return the TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner withExecutionStatus(ExecutionStatus executionStatus) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestResultProperties();
+ }
+ this.innerProperties().withExecutionStatus(executionStatus);
+ return this;
+ }
+
+ /**
+ * Get the testStatus property: The status of the test.
+ *
+ * @return the testStatus value.
+ */
+ public TestStatus testStatus() {
+ return this.innerProperties() == null ? null : this.innerProperties().testStatus();
+ }
+
+ /**
+ * Set the testStatus property: The status of the test.
+ *
+ * @param testStatus the testStatus value to set.
+ * @return the TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner withTestStatus(TestStatus testStatus) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestResultProperties();
+ }
+ this.innerProperties().withTestStatus(testStatus);
+ return this;
+ }
+
+ /**
+ * Get the grade property: The grade of the test.
+ *
+ * @return the grade value.
+ */
+ public Grade grade() {
+ return this.innerProperties() == null ? null : this.innerProperties().grade();
+ }
+
+ /**
+ * Set the grade property: The grade of the test.
+ *
+ * @param grade the grade value to set.
+ * @return the TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner withGrade(Grade grade) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestResultProperties();
+ }
+ this.innerProperties().withGrade(grade);
+ return this;
+ }
+
+ /**
+ * Get the kbNumber property: KB number.
+ *
+ * @return the kbNumber value.
+ */
+ public String kbNumber() {
+ return this.innerProperties() == null ? null : this.innerProperties().kbNumber();
+ }
+
+ /**
+ * Set the kbNumber property: KB number.
+ *
+ * @param kbNumber the kbNumber value to set.
+ * @return the TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner withKbNumber(String kbNumber) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestResultProperties();
+ }
+ this.innerProperties().withKbNumber(kbNumber);
+ return this;
+ }
+
+ /**
+ * Get the packageVersion property: The version of the Windows update package.
+ *
+ * @return the packageVersion value.
+ */
+ public String packageVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().packageVersion();
+ }
+
+ /**
+ * Set the packageVersion property: The version of the Windows update package.
+ *
+ * @param packageVersion the packageVersion value to set.
+ * @return the TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner withPackageVersion(String packageVersion) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestResultProperties();
+ }
+ this.innerProperties().withPackageVersion(packageVersion);
+ return this;
+ }
+
+ /**
+ * Get the analysisSummaries property: List of analysis summaries.
+ *
+ * @return the analysisSummaries value.
+ */
+ public List analysisSummaries() {
+ return this.innerProperties() == null ? null : this.innerProperties().analysisSummaries();
+ }
+
+ /**
+ * Set the analysisSummaries property: List of analysis summaries.
+ *
+ * @param analysisSummaries the analysisSummaries value to set.
+ * @return the TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner withAnalysisSummaries(List analysisSummaries) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestResultProperties();
+ }
+ this.innerProperties().withAnalysisSummaries(analysisSummaries);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestSummaryProperties.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestSummaryProperties.java
new file mode 100644
index 000000000000..597cba6fdad1
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestSummaryProperties.java
@@ -0,0 +1,290 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.testbase.models.ExecutionStatus;
+import com.azure.resourcemanager.testbase.models.Grade;
+import com.azure.resourcemanager.testbase.models.OSUpdatesTestSummary;
+import com.azure.resourcemanager.testbase.models.TestStatus;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Properties of a Test Summary. */
+@Fluent
+public final class TestSummaryProperties {
+ /*
+ * The Id of the current Test Summary.
+ */
+ @JsonProperty(value = "testSummaryId")
+ private String testSummaryId;
+
+ /*
+ * The Azure resource Id of package.
+ */
+ @JsonProperty(value = "packageId")
+ private String packageId;
+
+ /*
+ * Application name.
+ */
+ @JsonProperty(value = "applicationName")
+ private String applicationName;
+
+ /*
+ * Application version.
+ */
+ @JsonProperty(value = "applicationVersion")
+ private String applicationVersion;
+
+ /*
+ * The execution status of last test.
+ */
+ @JsonProperty(value = "executionStatus")
+ private ExecutionStatus executionStatus;
+
+ /*
+ * The status of last test.
+ */
+ @JsonProperty(value = "testStatus")
+ private TestStatus testStatus;
+
+ /*
+ * The grade of the test.
+ */
+ @JsonProperty(value = "grade")
+ private Grade grade;
+
+ /*
+ * The run time of the last test.
+ */
+ @JsonProperty(value = "testRunTime")
+ private String testRunTime;
+
+ /*
+ * The result summary of tests triggered by feature updates
+ */
+ @JsonProperty(value = "featureUpdatesTestSummary")
+ private OSUpdatesTestSummary featureUpdatesTestSummary;
+
+ /*
+ * The result summary of tests triggered by security updates
+ */
+ @JsonProperty(value = "securityUpdatesTestSummary")
+ private OSUpdatesTestSummary securityUpdatesTestSummary;
+
+ /**
+ * Get the testSummaryId property: The Id of the current Test Summary.
+ *
+ * @return the testSummaryId value.
+ */
+ public String testSummaryId() {
+ return this.testSummaryId;
+ }
+
+ /**
+ * Set the testSummaryId property: The Id of the current Test Summary.
+ *
+ * @param testSummaryId the testSummaryId value to set.
+ * @return the TestSummaryProperties object itself.
+ */
+ public TestSummaryProperties withTestSummaryId(String testSummaryId) {
+ this.testSummaryId = testSummaryId;
+ return this;
+ }
+
+ /**
+ * Get the packageId property: The Azure resource Id of package.
+ *
+ * @return the packageId value.
+ */
+ public String packageId() {
+ return this.packageId;
+ }
+
+ /**
+ * Set the packageId property: The Azure resource Id of package.
+ *
+ * @param packageId the packageId value to set.
+ * @return the TestSummaryProperties object itself.
+ */
+ public TestSummaryProperties withPackageId(String packageId) {
+ this.packageId = packageId;
+ return this;
+ }
+
+ /**
+ * Get the applicationName property: Application name.
+ *
+ * @return the applicationName value.
+ */
+ public String applicationName() {
+ return this.applicationName;
+ }
+
+ /**
+ * Set the applicationName property: Application name.
+ *
+ * @param applicationName the applicationName value to set.
+ * @return the TestSummaryProperties object itself.
+ */
+ public TestSummaryProperties withApplicationName(String applicationName) {
+ this.applicationName = applicationName;
+ return this;
+ }
+
+ /**
+ * Get the applicationVersion property: Application version.
+ *
+ * @return the applicationVersion value.
+ */
+ public String applicationVersion() {
+ return this.applicationVersion;
+ }
+
+ /**
+ * Set the applicationVersion property: Application version.
+ *
+ * @param applicationVersion the applicationVersion value to set.
+ * @return the TestSummaryProperties object itself.
+ */
+ public TestSummaryProperties withApplicationVersion(String applicationVersion) {
+ this.applicationVersion = applicationVersion;
+ return this;
+ }
+
+ /**
+ * Get the executionStatus property: The execution status of last test.
+ *
+ * @return the executionStatus value.
+ */
+ public ExecutionStatus executionStatus() {
+ return this.executionStatus;
+ }
+
+ /**
+ * Set the executionStatus property: The execution status of last test.
+ *
+ * @param executionStatus the executionStatus value to set.
+ * @return the TestSummaryProperties object itself.
+ */
+ public TestSummaryProperties withExecutionStatus(ExecutionStatus executionStatus) {
+ this.executionStatus = executionStatus;
+ return this;
+ }
+
+ /**
+ * Get the testStatus property: The status of last test.
+ *
+ * @return the testStatus value.
+ */
+ public TestStatus testStatus() {
+ return this.testStatus;
+ }
+
+ /**
+ * Set the testStatus property: The status of last test.
+ *
+ * @param testStatus the testStatus value to set.
+ * @return the TestSummaryProperties object itself.
+ */
+ public TestSummaryProperties withTestStatus(TestStatus testStatus) {
+ this.testStatus = testStatus;
+ return this;
+ }
+
+ /**
+ * Get the grade property: The grade of the test.
+ *
+ * @return the grade value.
+ */
+ public Grade grade() {
+ return this.grade;
+ }
+
+ /**
+ * Set the grade property: The grade of the test.
+ *
+ * @param grade the grade value to set.
+ * @return the TestSummaryProperties object itself.
+ */
+ public TestSummaryProperties withGrade(Grade grade) {
+ this.grade = grade;
+ return this;
+ }
+
+ /**
+ * Get the testRunTime property: The run time of the last test.
+ *
+ * @return the testRunTime value.
+ */
+ public String testRunTime() {
+ return this.testRunTime;
+ }
+
+ /**
+ * Set the testRunTime property: The run time of the last test.
+ *
+ * @param testRunTime the testRunTime value to set.
+ * @return the TestSummaryProperties object itself.
+ */
+ public TestSummaryProperties withTestRunTime(String testRunTime) {
+ this.testRunTime = testRunTime;
+ return this;
+ }
+
+ /**
+ * Get the featureUpdatesTestSummary property: The result summary of tests triggered by feature updates.
+ *
+ * @return the featureUpdatesTestSummary value.
+ */
+ public OSUpdatesTestSummary featureUpdatesTestSummary() {
+ return this.featureUpdatesTestSummary;
+ }
+
+ /**
+ * Set the featureUpdatesTestSummary property: The result summary of tests triggered by feature updates.
+ *
+ * @param featureUpdatesTestSummary the featureUpdatesTestSummary value to set.
+ * @return the TestSummaryProperties object itself.
+ */
+ public TestSummaryProperties withFeatureUpdatesTestSummary(OSUpdatesTestSummary featureUpdatesTestSummary) {
+ this.featureUpdatesTestSummary = featureUpdatesTestSummary;
+ return this;
+ }
+
+ /**
+ * Get the securityUpdatesTestSummary property: The result summary of tests triggered by security updates.
+ *
+ * @return the securityUpdatesTestSummary value.
+ */
+ public OSUpdatesTestSummary securityUpdatesTestSummary() {
+ return this.securityUpdatesTestSummary;
+ }
+
+ /**
+ * Set the securityUpdatesTestSummary property: The result summary of tests triggered by security updates.
+ *
+ * @param securityUpdatesTestSummary the securityUpdatesTestSummary value to set.
+ * @return the TestSummaryProperties object itself.
+ */
+ public TestSummaryProperties withSecurityUpdatesTestSummary(OSUpdatesTestSummary securityUpdatesTestSummary) {
+ this.securityUpdatesTestSummary = securityUpdatesTestSummary;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (featureUpdatesTestSummary() != null) {
+ featureUpdatesTestSummary().validate();
+ }
+ if (securityUpdatesTestSummary() != null) {
+ securityUpdatesTestSummary().validate();
+ }
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestSummaryResourceInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestSummaryResourceInner.java
new file mode 100644
index 000000000000..1b64ca5925e5
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestSummaryResourceInner.java
@@ -0,0 +1,289 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.resourcemanager.testbase.models.ExecutionStatus;
+import com.azure.resourcemanager.testbase.models.Grade;
+import com.azure.resourcemanager.testbase.models.OSUpdatesTestSummary;
+import com.azure.resourcemanager.testbase.models.TestStatus;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Summary of a Test. */
+@Fluent
+public final class TestSummaryResourceInner extends ProxyResource {
+ /*
+ * The system metadata relating to this resource
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * Properties of a Test Summary.
+ */
+ @JsonProperty(value = "properties")
+ private TestSummaryProperties innerProperties;
+
+ /**
+ * Get the systemData property: The system metadata relating to this resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the innerProperties property: Properties of a Test Summary.
+ *
+ * @return the innerProperties value.
+ */
+ private TestSummaryProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the testSummaryId property: The Id of the current Test Summary.
+ *
+ * @return the testSummaryId value.
+ */
+ public String testSummaryId() {
+ return this.innerProperties() == null ? null : this.innerProperties().testSummaryId();
+ }
+
+ /**
+ * Set the testSummaryId property: The Id of the current Test Summary.
+ *
+ * @param testSummaryId the testSummaryId value to set.
+ * @return the TestSummaryResourceInner object itself.
+ */
+ public TestSummaryResourceInner withTestSummaryId(String testSummaryId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestSummaryProperties();
+ }
+ this.innerProperties().withTestSummaryId(testSummaryId);
+ return this;
+ }
+
+ /**
+ * Get the packageId property: The Azure resource Id of package.
+ *
+ * @return the packageId value.
+ */
+ public String packageId() {
+ return this.innerProperties() == null ? null : this.innerProperties().packageId();
+ }
+
+ /**
+ * Set the packageId property: The Azure resource Id of package.
+ *
+ * @param packageId the packageId value to set.
+ * @return the TestSummaryResourceInner object itself.
+ */
+ public TestSummaryResourceInner withPackageId(String packageId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestSummaryProperties();
+ }
+ this.innerProperties().withPackageId(packageId);
+ return this;
+ }
+
+ /**
+ * Get the applicationName property: Application name.
+ *
+ * @return the applicationName value.
+ */
+ public String applicationName() {
+ return this.innerProperties() == null ? null : this.innerProperties().applicationName();
+ }
+
+ /**
+ * Set the applicationName property: Application name.
+ *
+ * @param applicationName the applicationName value to set.
+ * @return the TestSummaryResourceInner object itself.
+ */
+ public TestSummaryResourceInner withApplicationName(String applicationName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestSummaryProperties();
+ }
+ this.innerProperties().withApplicationName(applicationName);
+ return this;
+ }
+
+ /**
+ * Get the applicationVersion property: Application version.
+ *
+ * @return the applicationVersion value.
+ */
+ public String applicationVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().applicationVersion();
+ }
+
+ /**
+ * Set the applicationVersion property: Application version.
+ *
+ * @param applicationVersion the applicationVersion value to set.
+ * @return the TestSummaryResourceInner object itself.
+ */
+ public TestSummaryResourceInner withApplicationVersion(String applicationVersion) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestSummaryProperties();
+ }
+ this.innerProperties().withApplicationVersion(applicationVersion);
+ return this;
+ }
+
+ /**
+ * Get the executionStatus property: The execution status of last test.
+ *
+ * @return the executionStatus value.
+ */
+ public ExecutionStatus executionStatus() {
+ return this.innerProperties() == null ? null : this.innerProperties().executionStatus();
+ }
+
+ /**
+ * Set the executionStatus property: The execution status of last test.
+ *
+ * @param executionStatus the executionStatus value to set.
+ * @return the TestSummaryResourceInner object itself.
+ */
+ public TestSummaryResourceInner withExecutionStatus(ExecutionStatus executionStatus) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestSummaryProperties();
+ }
+ this.innerProperties().withExecutionStatus(executionStatus);
+ return this;
+ }
+
+ /**
+ * Get the testStatus property: The status of last test.
+ *
+ * @return the testStatus value.
+ */
+ public TestStatus testStatus() {
+ return this.innerProperties() == null ? null : this.innerProperties().testStatus();
+ }
+
+ /**
+ * Set the testStatus property: The status of last test.
+ *
+ * @param testStatus the testStatus value to set.
+ * @return the TestSummaryResourceInner object itself.
+ */
+ public TestSummaryResourceInner withTestStatus(TestStatus testStatus) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestSummaryProperties();
+ }
+ this.innerProperties().withTestStatus(testStatus);
+ return this;
+ }
+
+ /**
+ * Get the grade property: The grade of the test.
+ *
+ * @return the grade value.
+ */
+ public Grade grade() {
+ return this.innerProperties() == null ? null : this.innerProperties().grade();
+ }
+
+ /**
+ * Set the grade property: The grade of the test.
+ *
+ * @param grade the grade value to set.
+ * @return the TestSummaryResourceInner object itself.
+ */
+ public TestSummaryResourceInner withGrade(Grade grade) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestSummaryProperties();
+ }
+ this.innerProperties().withGrade(grade);
+ return this;
+ }
+
+ /**
+ * Get the testRunTime property: The run time of the last test.
+ *
+ * @return the testRunTime value.
+ */
+ public String testRunTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().testRunTime();
+ }
+
+ /**
+ * Set the testRunTime property: The run time of the last test.
+ *
+ * @param testRunTime the testRunTime value to set.
+ * @return the TestSummaryResourceInner object itself.
+ */
+ public TestSummaryResourceInner withTestRunTime(String testRunTime) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestSummaryProperties();
+ }
+ this.innerProperties().withTestRunTime(testRunTime);
+ return this;
+ }
+
+ /**
+ * Get the featureUpdatesTestSummary property: The result summary of tests triggered by feature updates.
+ *
+ * @return the featureUpdatesTestSummary value.
+ */
+ public OSUpdatesTestSummary featureUpdatesTestSummary() {
+ return this.innerProperties() == null ? null : this.innerProperties().featureUpdatesTestSummary();
+ }
+
+ /**
+ * Set the featureUpdatesTestSummary property: The result summary of tests triggered by feature updates.
+ *
+ * @param featureUpdatesTestSummary the featureUpdatesTestSummary value to set.
+ * @return the TestSummaryResourceInner object itself.
+ */
+ public TestSummaryResourceInner withFeatureUpdatesTestSummary(OSUpdatesTestSummary featureUpdatesTestSummary) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestSummaryProperties();
+ }
+ this.innerProperties().withFeatureUpdatesTestSummary(featureUpdatesTestSummary);
+ return this;
+ }
+
+ /**
+ * Get the securityUpdatesTestSummary property: The result summary of tests triggered by security updates.
+ *
+ * @return the securityUpdatesTestSummary value.
+ */
+ public OSUpdatesTestSummary securityUpdatesTestSummary() {
+ return this.innerProperties() == null ? null : this.innerProperties().securityUpdatesTestSummary();
+ }
+
+ /**
+ * Set the securityUpdatesTestSummary property: The result summary of tests triggered by security updates.
+ *
+ * @param securityUpdatesTestSummary the securityUpdatesTestSummary value to set.
+ * @return the TestSummaryResourceInner object itself.
+ */
+ public TestSummaryResourceInner withSecurityUpdatesTestSummary(OSUpdatesTestSummary securityUpdatesTestSummary) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestSummaryProperties();
+ }
+ this.innerProperties().withSecurityUpdatesTestSummary(securityUpdatesTestSummary);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestTypeProperties.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestTypeProperties.java
new file mode 100644
index 000000000000..49dd73f11dca
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestTypeProperties.java
@@ -0,0 +1,46 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The Test Type properties. */
+@Fluent
+public final class TestTypeProperties {
+ /*
+ * The actual name of a test type of a Test Base Account.
+ */
+ @JsonProperty(value = "actualTestTypeName")
+ private String actualTestTypeName;
+
+ /**
+ * Get the actualTestTypeName property: The actual name of a test type of a Test Base Account.
+ *
+ * @return the actualTestTypeName value.
+ */
+ public String actualTestTypeName() {
+ return this.actualTestTypeName;
+ }
+
+ /**
+ * Set the actualTestTypeName property: The actual name of a test type of a Test Base Account.
+ *
+ * @param actualTestTypeName the actualTestTypeName value to set.
+ * @return the TestTypeProperties object itself.
+ */
+ public TestTypeProperties withActualTestTypeName(String actualTestTypeName) {
+ this.actualTestTypeName = actualTestTypeName;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestTypeResourceInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestTypeResourceInner.java
new file mode 100644
index 000000000000..5723c615624e
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestTypeResourceInner.java
@@ -0,0 +1,78 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The test type resource. */
+@Fluent
+public final class TestTypeResourceInner extends ProxyResource {
+ /*
+ * The system metadata relating to this resource
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * Test Type properties.
+ */
+ @JsonProperty(value = "properties")
+ private TestTypeProperties innerProperties;
+
+ /**
+ * Get the systemData property: The system metadata relating to this resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the innerProperties property: Test Type properties.
+ *
+ * @return the innerProperties value.
+ */
+ private TestTypeProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the actualTestTypeName property: The actual name of a test type of a Test Base Account.
+ *
+ * @return the actualTestTypeName value.
+ */
+ public String actualTestTypeName() {
+ return this.innerProperties() == null ? null : this.innerProperties().actualTestTypeName();
+ }
+
+ /**
+ * Set the actualTestTypeName property: The actual name of a test type of a Test Base Account.
+ *
+ * @param actualTestTypeName the actualTestTypeName value to set.
+ * @return the TestTypeResourceInner object itself.
+ */
+ public TestTypeResourceInner withActualTestTypeName(String actualTestTypeName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestTypeProperties();
+ }
+ this.innerProperties().withActualTestTypeName(actualTestTypeName);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/package-info.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/package-info.java
new file mode 100644
index 000000000000..f0d20e743c07
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/package-info.java
@@ -0,0 +1,6 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+/** Package containing the inner data models for TestBase. Test Base. */
+package com.azure.resourcemanager.testbase.fluent.models;
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/package-info.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/package-info.java
new file mode 100644
index 000000000000..efe6af017bcd
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/package-info.java
@@ -0,0 +1,6 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+/** Package containing the service clients for TestBase. Test Base. */
+package com.azure.resourcemanager.testbase.fluent;
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AnalysisResultSingletonResourceImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AnalysisResultSingletonResourceImpl.java
new file mode 100644
index 000000000000..486ff9d0b9ed
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AnalysisResultSingletonResourceImpl.java
@@ -0,0 +1,51 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.implementation;
+
+import com.azure.core.management.SystemData;
+import com.azure.resourcemanager.testbase.fluent.models.AnalysisResultSingletonResourceInner;
+import com.azure.resourcemanager.testbase.models.AnalysisResultSingletonResource;
+import com.azure.resourcemanager.testbase.models.Grade;
+
+public final class AnalysisResultSingletonResourceImpl implements AnalysisResultSingletonResource {
+ private AnalysisResultSingletonResourceInner innerObject;
+
+ private final com.azure.resourcemanager.testbase.TestBaseManager serviceManager;
+
+ AnalysisResultSingletonResourceImpl(
+ AnalysisResultSingletonResourceInner innerObject,
+ com.azure.resourcemanager.testbase.TestBaseManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ }
+
+ public String id() {
+ return this.innerModel().id();
+ }
+
+ public String name() {
+ return this.innerModel().name();
+ }
+
+ public String type() {
+ return this.innerModel().type();
+ }
+
+ public SystemData systemData() {
+ return this.innerModel().systemData();
+ }
+
+ public Grade grade() {
+ return this.innerModel().grade();
+ }
+
+ public AnalysisResultSingletonResourceInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.testbase.TestBaseManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AnalysisResultsClientImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AnalysisResultsClientImpl.java
new file mode 100644
index 000000000000..4ffecf405fc1
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AnalysisResultsClientImpl.java
@@ -0,0 +1,577 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.implementation;
+
+import com.azure.core.annotation.ExpectedResponses;
+import com.azure.core.annotation.Get;
+import com.azure.core.annotation.HeaderParam;
+import com.azure.core.annotation.Headers;
+import com.azure.core.annotation.Host;
+import com.azure.core.annotation.HostParam;
+import com.azure.core.annotation.PathParam;
+import com.azure.core.annotation.QueryParam;
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceInterface;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.annotation.UnexpectedResponseExceptionType;
+import com.azure.core.http.rest.PagedFlux;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.PagedResponse;
+import com.azure.core.http.rest.PagedResponseBase;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.RestProxy;
+import com.azure.core.management.exception.ManagementException;
+import com.azure.core.util.Context;
+import com.azure.core.util.FluxUtil;
+import com.azure.resourcemanager.testbase.fluent.AnalysisResultsClient;
+import com.azure.resourcemanager.testbase.fluent.models.AnalysisResultSingletonResourceInner;
+import com.azure.resourcemanager.testbase.models.AnalysisResultListResult;
+import com.azure.resourcemanager.testbase.models.AnalysisResultName;
+import com.azure.resourcemanager.testbase.models.AnalysisResultType;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in AnalysisResultsClient. */
+public final class AnalysisResultsClientImpl implements AnalysisResultsClient {
+ /** The proxy service used to perform REST calls. */
+ private final AnalysisResultsService service;
+
+ /** The service client containing this operation class. */
+ private final TestBaseImpl client;
+
+ /**
+ * Initializes an instance of AnalysisResultsClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ AnalysisResultsClientImpl(TestBaseImpl client) {
+ this.service =
+ RestProxy.create(AnalysisResultsService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for TestBaseAnalysisResults to be used by the proxy service to perform
+ * REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "TestBaseAnalysisResu")
+ private interface AnalysisResultsService {
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase"
+ + "/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/testResults/{testResultName}"
+ + "/analysisResults")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> list(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("testBaseAccountName") String testBaseAccountName,
+ @PathParam("packageName") String packageName,
+ @PathParam("testResultName") String testResultName,
+ @QueryParam("analysisResultType") AnalysisResultType analysisResultType,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase"
+ + "/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/testResults/{testResultName}"
+ + "/analysisResults/{analysisResultName}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> get(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("testBaseAccountName") String testBaseAccountName,
+ @PathParam("packageName") String packageName,
+ @PathParam("testResultName") String testResultName,
+ @PathParam("analysisResultName") AnalysisResultName analysisResultName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Lists the Analysis Results of a Test Result. The result collection will only contain one element as all the data
+ * will be nested in a singleton object.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param testResultName The Test Result Name. It equals to {osName}-{TestResultId} string.
+ * @param analysisResultType The type of the Analysis Result of a Test Result.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Analysis Results along with {@link PagedResponse} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ AnalysisResultType analysisResultType) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (testBaseAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter testBaseAccountName is required and cannot be null."));
+ }
+ if (packageName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter packageName is required and cannot be null."));
+ }
+ if (testResultName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter testResultName is required and cannot be null."));
+ }
+ if (analysisResultType == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter analysisResultType is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .list(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ packageName,
+ testResultName,
+ analysisResultType,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(), res.getStatusCode(), res.getHeaders(), res.getValue().value(), null, null))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Lists the Analysis Results of a Test Result. The result collection will only contain one element as all the data
+ * will be nested in a singleton object.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param testResultName The Test Result Name. It equals to {osName}-{TestResultId} string.
+ * @param analysisResultType The type of the Analysis Result of a Test Result.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Analysis Results along with {@link PagedResponse} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ AnalysisResultType analysisResultType,
+ Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (testBaseAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter testBaseAccountName is required and cannot be null."));
+ }
+ if (packageName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter packageName is required and cannot be null."));
+ }
+ if (testResultName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter testResultName is required and cannot be null."));
+ }
+ if (analysisResultType == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter analysisResultType is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .list(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ packageName,
+ testResultName,
+ analysisResultType,
+ this.client.getApiVersion(),
+ accept,
+ context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(), res.getStatusCode(), res.getHeaders(), res.getValue().value(), null, null));
+ }
+
+ /**
+ * Lists the Analysis Results of a Test Result. The result collection will only contain one element as all the data
+ * will be nested in a singleton object.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param testResultName The Test Result Name. It equals to {osName}-{TestResultId} string.
+ * @param analysisResultType The type of the Analysis Result of a Test Result.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Analysis Results as paginated response with {@link PagedFlux}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ AnalysisResultType analysisResultType) {
+ return new PagedFlux<>(
+ () ->
+ listSinglePageAsync(
+ resourceGroupName, testBaseAccountName, packageName, testResultName, analysisResultType));
+ }
+
+ /**
+ * Lists the Analysis Results of a Test Result. The result collection will only contain one element as all the data
+ * will be nested in a singleton object.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param testResultName The Test Result Name. It equals to {osName}-{TestResultId} string.
+ * @param analysisResultType The type of the Analysis Result of a Test Result.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Analysis Results as paginated response with {@link PagedFlux}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ AnalysisResultType analysisResultType,
+ Context context) {
+ return new PagedFlux<>(
+ () ->
+ listSinglePageAsync(
+ resourceGroupName, testBaseAccountName, packageName, testResultName, analysisResultType, context));
+ }
+
+ /**
+ * Lists the Analysis Results of a Test Result. The result collection will only contain one element as all the data
+ * will be nested in a singleton object.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param testResultName The Test Result Name. It equals to {osName}-{TestResultId} string.
+ * @param analysisResultType The type of the Analysis Result of a Test Result.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Analysis Results as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ AnalysisResultType analysisResultType) {
+ return new PagedIterable<>(
+ listAsync(resourceGroupName, testBaseAccountName, packageName, testResultName, analysisResultType));
+ }
+
+ /**
+ * Lists the Analysis Results of a Test Result. The result collection will only contain one element as all the data
+ * will be nested in a singleton object.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param testResultName The Test Result Name. It equals to {osName}-{TestResultId} string.
+ * @param analysisResultType The type of the Analysis Result of a Test Result.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Analysis Results as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ AnalysisResultType analysisResultType,
+ Context context) {
+ return new PagedIterable<>(
+ listAsync(
+ resourceGroupName, testBaseAccountName, packageName, testResultName, analysisResultType, context));
+ }
+
+ /**
+ * Gets an Analysis Result of a Test Result by name.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param testResultName The Test Result Name. It equals to {osName}-{TestResultId} string.
+ * @param analysisResultName The name of the Analysis Result of a Test Result.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an Analysis Result of a Test Result by name along with {@link Response} on successful completion of
+ * {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ AnalysisResultName analysisResultName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (testBaseAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter testBaseAccountName is required and cannot be null."));
+ }
+ if (packageName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter packageName is required and cannot be null."));
+ }
+ if (testResultName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter testResultName is required and cannot be null."));
+ }
+ if (analysisResultName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter analysisResultName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .get(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ packageName,
+ testResultName,
+ analysisResultName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Gets an Analysis Result of a Test Result by name.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param testResultName The Test Result Name. It equals to {osName}-{TestResultId} string.
+ * @param analysisResultName The name of the Analysis Result of a Test Result.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an Analysis Result of a Test Result by name along with {@link Response} on successful completion of
+ * {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ AnalysisResultName analysisResultName,
+ Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (testBaseAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter testBaseAccountName is required and cannot be null."));
+ }
+ if (packageName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter packageName is required and cannot be null."));
+ }
+ if (testResultName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter testResultName is required and cannot be null."));
+ }
+ if (analysisResultName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter analysisResultName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .get(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ packageName,
+ testResultName,
+ analysisResultName,
+ this.client.getApiVersion(),
+ accept,
+ context);
+ }
+
+ /**
+ * Gets an Analysis Result of a Test Result by name.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param testResultName The Test Result Name. It equals to {osName}-{TestResultId} string.
+ * @param analysisResultName The name of the Analysis Result of a Test Result.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an Analysis Result of a Test Result by name on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono getAsync(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ AnalysisResultName analysisResultName) {
+ return getWithResponseAsync(
+ resourceGroupName, testBaseAccountName, packageName, testResultName, analysisResultName)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Gets an Analysis Result of a Test Result by name.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param testResultName The Test Result Name. It equals to {osName}-{TestResultId} string.
+ * @param analysisResultName The name of the Analysis Result of a Test Result.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an Analysis Result of a Test Result by name.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public AnalysisResultSingletonResourceInner get(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ AnalysisResultName analysisResultName) {
+ return getAsync(resourceGroupName, testBaseAccountName, packageName, testResultName, analysisResultName)
+ .block();
+ }
+
+ /**
+ * Gets an Analysis Result of a Test Result by name.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param testResultName The Test Result Name. It equals to {osName}-{TestResultId} string.
+ * @param analysisResultName The name of the Analysis Result of a Test Result.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an Analysis Result of a Test Result by name along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response getWithResponse(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ AnalysisResultName analysisResultName,
+ Context context) {
+ return getWithResponseAsync(
+ resourceGroupName, testBaseAccountName, packageName, testResultName, analysisResultName, context)
+ .block();
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AnalysisResultsImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AnalysisResultsImpl.java
new file mode 100644
index 000000000000..9c00bf41b5d8
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AnalysisResultsImpl.java
@@ -0,0 +1,106 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.implementation;
+
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.SimpleResponse;
+import com.azure.core.util.Context;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.testbase.fluent.AnalysisResultsClient;
+import com.azure.resourcemanager.testbase.fluent.models.AnalysisResultSingletonResourceInner;
+import com.azure.resourcemanager.testbase.models.AnalysisResultName;
+import com.azure.resourcemanager.testbase.models.AnalysisResultSingletonResource;
+import com.azure.resourcemanager.testbase.models.AnalysisResultType;
+import com.azure.resourcemanager.testbase.models.AnalysisResults;
+
+public final class AnalysisResultsImpl implements AnalysisResults {
+ private static final ClientLogger LOGGER = new ClientLogger(AnalysisResultsImpl.class);
+
+ private final AnalysisResultsClient innerClient;
+
+ private final com.azure.resourcemanager.testbase.TestBaseManager serviceManager;
+
+ public AnalysisResultsImpl(
+ AnalysisResultsClient innerClient, com.azure.resourcemanager.testbase.TestBaseManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public PagedIterable list(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ AnalysisResultType analysisResultType) {
+ PagedIterable inner =
+ this
+ .serviceClient()
+ .list(resourceGroupName, testBaseAccountName, packageName, testResultName, analysisResultType);
+ return Utils.mapPage(inner, inner1 -> new AnalysisResultSingletonResourceImpl(inner1, this.manager()));
+ }
+
+ public PagedIterable list(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ AnalysisResultType analysisResultType,
+ Context context) {
+ PagedIterable inner =
+ this
+ .serviceClient()
+ .list(resourceGroupName, testBaseAccountName, packageName, testResultName, analysisResultType, context);
+ return Utils.mapPage(inner, inner1 -> new AnalysisResultSingletonResourceImpl(inner1, this.manager()));
+ }
+
+ public AnalysisResultSingletonResource get(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ AnalysisResultName analysisResultName) {
+ AnalysisResultSingletonResourceInner inner =
+ this
+ .serviceClient()
+ .get(resourceGroupName, testBaseAccountName, packageName, testResultName, analysisResultName);
+ if (inner != null) {
+ return new AnalysisResultSingletonResourceImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response getWithResponse(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ AnalysisResultName analysisResultName,
+ Context context) {
+ Response inner =
+ this
+ .serviceClient()
+ .getWithResponse(
+ resourceGroupName, testBaseAccountName, packageName, testResultName, analysisResultName, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new AnalysisResultSingletonResourceImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ private AnalysisResultsClient serviceClient() {
+ return this.innerClient;
+ }
+
+ private com.azure.resourcemanager.testbase.TestBaseManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AvailableOSClientImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AvailableOSClientImpl.java
new file mode 100644
index 000000000000..fb54207a6dc9
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AvailableOSClientImpl.java
@@ -0,0 +1,543 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.implementation;
+
+import com.azure.core.annotation.ExpectedResponses;
+import com.azure.core.annotation.Get;
+import com.azure.core.annotation.HeaderParam;
+import com.azure.core.annotation.Headers;
+import com.azure.core.annotation.Host;
+import com.azure.core.annotation.HostParam;
+import com.azure.core.annotation.PathParam;
+import com.azure.core.annotation.QueryParam;
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceInterface;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.annotation.UnexpectedResponseExceptionType;
+import com.azure.core.http.rest.PagedFlux;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.PagedResponse;
+import com.azure.core.http.rest.PagedResponseBase;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.RestProxy;
+import com.azure.core.management.exception.ManagementException;
+import com.azure.core.util.Context;
+import com.azure.core.util.FluxUtil;
+import com.azure.resourcemanager.testbase.fluent.AvailableOSClient;
+import com.azure.resourcemanager.testbase.fluent.models.AvailableOSResourceInner;
+import com.azure.resourcemanager.testbase.models.AvailableOSListResult;
+import com.azure.resourcemanager.testbase.models.OsUpdateType;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in AvailableOSClient. */
+public final class AvailableOSClientImpl implements AvailableOSClient {
+ /** The proxy service used to perform REST calls. */
+ private final AvailableOSService service;
+
+ /** The service client containing this operation class. */
+ private final TestBaseImpl client;
+
+ /**
+ * Initializes an instance of AvailableOSClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ AvailableOSClientImpl(TestBaseImpl client) {
+ this.service =
+ RestProxy.create(AvailableOSService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for TestBaseAvailableOS to be used by the proxy service to perform REST
+ * calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "TestBaseAvailableOS")
+ private interface AvailableOSService {
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase"
+ + "/testBaseAccounts/{testBaseAccountName}/availableOSs")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> list(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("testBaseAccountName") String testBaseAccountName,
+ @QueryParam("osUpdateType") OsUpdateType osUpdateType,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase"
+ + "/testBaseAccounts/{testBaseAccountName}/availableOSs/{availableOSResourceName}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> get(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("testBaseAccountName") String testBaseAccountName,
+ @PathParam("availableOSResourceName") String availableOSResourceName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("{nextLink}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listNext(
+ @PathParam(value = "nextLink", encoded = true) String nextLink,
+ @HostParam("$host") String endpoint,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Lists all the available OSs to run a package under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param osUpdateType The type of the OS Update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of available OSs along with {@link PagedResponse} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(
+ String resourceGroupName, String testBaseAccountName, OsUpdateType osUpdateType) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (testBaseAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter testBaseAccountName is required and cannot be null."));
+ }
+ if (osUpdateType == null) {
+ return Mono.error(new IllegalArgumentException("Parameter osUpdateType is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .list(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ osUpdateType,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Lists all the available OSs to run a package under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param osUpdateType The type of the OS Update.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of available OSs along with {@link PagedResponse} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(
+ String resourceGroupName, String testBaseAccountName, OsUpdateType osUpdateType, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (testBaseAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter testBaseAccountName is required and cannot be null."));
+ }
+ if (osUpdateType == null) {
+ return Mono.error(new IllegalArgumentException("Parameter osUpdateType is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .list(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ osUpdateType,
+ this.client.getApiVersion(),
+ accept,
+ context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * Lists all the available OSs to run a package under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param osUpdateType The type of the OS Update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of available OSs as paginated response with {@link PagedFlux}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(
+ String resourceGroupName, String testBaseAccountName, OsUpdateType osUpdateType) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(resourceGroupName, testBaseAccountName, osUpdateType),
+ nextLink -> listNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * Lists all the available OSs to run a package under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param osUpdateType The type of the OS Update.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of available OSs as paginated response with {@link PagedFlux}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(
+ String resourceGroupName, String testBaseAccountName, OsUpdateType osUpdateType, Context context) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(resourceGroupName, testBaseAccountName, osUpdateType, context),
+ nextLink -> listNextSinglePageAsync(nextLink, context));
+ }
+
+ /**
+ * Lists all the available OSs to run a package under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param osUpdateType The type of the OS Update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of available OSs as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(
+ String resourceGroupName, String testBaseAccountName, OsUpdateType osUpdateType) {
+ return new PagedIterable<>(listAsync(resourceGroupName, testBaseAccountName, osUpdateType));
+ }
+
+ /**
+ * Lists all the available OSs to run a package under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param osUpdateType The type of the OS Update.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of available OSs as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(
+ String resourceGroupName, String testBaseAccountName, OsUpdateType osUpdateType, Context context) {
+ return new PagedIterable<>(listAsync(resourceGroupName, testBaseAccountName, osUpdateType, context));
+ }
+
+ /**
+ * Gets an available OS to run a package under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param availableOSResourceName The resource name of an Available OS.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an available OS to run a package under a Test Base Account along with {@link Response} on successful
+ * completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(
+ String resourceGroupName, String testBaseAccountName, String availableOSResourceName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (testBaseAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter testBaseAccountName is required and cannot be null."));
+ }
+ if (availableOSResourceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter availableOSResourceName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .get(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ availableOSResourceName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Gets an available OS to run a package under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param availableOSResourceName The resource name of an Available OS.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an available OS to run a package under a Test Base Account along with {@link Response} on successful
+ * completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(
+ String resourceGroupName, String testBaseAccountName, String availableOSResourceName, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (testBaseAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter testBaseAccountName is required and cannot be null."));
+ }
+ if (availableOSResourceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter availableOSResourceName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .get(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ availableOSResourceName,
+ this.client.getApiVersion(),
+ accept,
+ context);
+ }
+
+ /**
+ * Gets an available OS to run a package under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param availableOSResourceName The resource name of an Available OS.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an available OS to run a package under a Test Base Account on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono getAsync(
+ String resourceGroupName, String testBaseAccountName, String availableOSResourceName) {
+ return getWithResponseAsync(resourceGroupName, testBaseAccountName, availableOSResourceName)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Gets an available OS to run a package under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param availableOSResourceName The resource name of an Available OS.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an available OS to run a package under a Test Base Account.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public AvailableOSResourceInner get(
+ String resourceGroupName, String testBaseAccountName, String availableOSResourceName) {
+ return getAsync(resourceGroupName, testBaseAccountName, availableOSResourceName).block();
+ }
+
+ /**
+ * Gets an available OS to run a package under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param availableOSResourceName The resource name of an Available OS.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an available OS to run a package under a Test Base Account along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response getWithResponse(
+ String resourceGroupName, String testBaseAccountName, String availableOSResourceName, Context context) {
+ return getWithResponseAsync(resourceGroupName, testBaseAccountName, availableOSResourceName, context).block();
+ }
+
+ /**
+ * Get the next page of items.
+ *
+ * @param nextLink The nextLink parameter.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of available OSs along with {@link PagedResponse} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listNextSinglePageAsync(String nextLink) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(context -> service.listNext(nextLink, this.client.getEndpoint(), accept, context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Get the next page of items.
+ *
+ * @param nextLink The nextLink parameter.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of available OSs along with {@link PagedResponse} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listNextSinglePageAsync(String nextLink, Context context) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .listNext(nextLink, this.client.getEndpoint(), accept, context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AvailableOSImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AvailableOSImpl.java
new file mode 100644
index 000000000000..cec14ada1542
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AvailableOSImpl.java
@@ -0,0 +1,80 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.implementation;
+
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.SimpleResponse;
+import com.azure.core.util.Context;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.testbase.fluent.AvailableOSClient;
+import com.azure.resourcemanager.testbase.fluent.models.AvailableOSResourceInner;
+import com.azure.resourcemanager.testbase.models.AvailableOS;
+import com.azure.resourcemanager.testbase.models.AvailableOSResource;
+import com.azure.resourcemanager.testbase.models.OsUpdateType;
+
+public final class AvailableOSImpl implements AvailableOS {
+ private static final ClientLogger LOGGER = new ClientLogger(AvailableOSImpl.class);
+
+ private final AvailableOSClient innerClient;
+
+ private final com.azure.resourcemanager.testbase.TestBaseManager serviceManager;
+
+ public AvailableOSImpl(
+ AvailableOSClient innerClient, com.azure.resourcemanager.testbase.TestBaseManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public PagedIterable list(
+ String resourceGroupName, String testBaseAccountName, OsUpdateType osUpdateType) {
+ PagedIterable inner =
+ this.serviceClient().list(resourceGroupName, testBaseAccountName, osUpdateType);
+ return Utils.mapPage(inner, inner1 -> new AvailableOSResourceImpl(inner1, this.manager()));
+ }
+
+ public PagedIterable list(
+ String resourceGroupName, String testBaseAccountName, OsUpdateType osUpdateType, Context context) {
+ PagedIterable inner =
+ this.serviceClient().list(resourceGroupName, testBaseAccountName, osUpdateType, context);
+ return Utils.mapPage(inner, inner1 -> new AvailableOSResourceImpl(inner1, this.manager()));
+ }
+
+ public AvailableOSResource get(
+ String resourceGroupName, String testBaseAccountName, String availableOSResourceName) {
+ AvailableOSResourceInner inner =
+ this.serviceClient().get(resourceGroupName, testBaseAccountName, availableOSResourceName);
+ if (inner != null) {
+ return new AvailableOSResourceImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response getWithResponse(
+ String resourceGroupName, String testBaseAccountName, String availableOSResourceName, Context context) {
+ Response inner =
+ this
+ .serviceClient()
+ .getWithResponse(resourceGroupName, testBaseAccountName, availableOSResourceName, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new AvailableOSResourceImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ private AvailableOSClient serviceClient() {
+ return this.innerClient;
+ }
+
+ private com.azure.resourcemanager.testbase.TestBaseManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AvailableOSResourceImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AvailableOSResourceImpl.java
new file mode 100644
index 000000000000..ba22f7a0f3ba
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AvailableOSResourceImpl.java
@@ -0,0 +1,69 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.implementation;
+
+import com.azure.core.management.SystemData;
+import com.azure.resourcemanager.testbase.fluent.models.AvailableOSResourceInner;
+import com.azure.resourcemanager.testbase.models.AvailableOSResource;
+
+public final class AvailableOSResourceImpl implements AvailableOSResource {
+ private AvailableOSResourceInner innerObject;
+
+ private final com.azure.resourcemanager.testbase.TestBaseManager serviceManager;
+
+ AvailableOSResourceImpl(
+ AvailableOSResourceInner innerObject, com.azure.resourcemanager.testbase.TestBaseManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ }
+
+ public String id() {
+ return this.innerModel().id();
+ }
+
+ public String name() {
+ return this.innerModel().name();
+ }
+
+ public String type() {
+ return this.innerModel().type();
+ }
+
+ public SystemData systemData() {
+ return this.innerModel().systemData();
+ }
+
+ public String osId() {
+ return this.innerModel().osId();
+ }
+
+ public String osName() {
+ return this.innerModel().osName();
+ }
+
+ public String osVersion() {
+ return this.innerModel().osVersion();
+ }
+
+ public String insiderChannel() {
+ return this.innerModel().insiderChannel();
+ }
+
+ public String osUpdateType() {
+ return this.innerModel().osUpdateType();
+ }
+
+ public String osPlatform() {
+ return this.innerModel().osPlatform();
+ }
+
+ public AvailableOSResourceInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.testbase.TestBaseManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/CheckNameAvailabilityResultImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/CheckNameAvailabilityResultImpl.java
new file mode 100644
index 000000000000..9d8d566d3676
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/CheckNameAvailabilityResultImpl.java
@@ -0,0 +1,42 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.implementation;
+
+import com.azure.resourcemanager.testbase.fluent.models.CheckNameAvailabilityResultInner;
+import com.azure.resourcemanager.testbase.models.CheckNameAvailabilityResult;
+import com.azure.resourcemanager.testbase.models.Reason;
+
+public final class CheckNameAvailabilityResultImpl implements CheckNameAvailabilityResult {
+ private CheckNameAvailabilityResultInner innerObject;
+
+ private final com.azure.resourcemanager.testbase.TestBaseManager serviceManager;
+
+ CheckNameAvailabilityResultImpl(
+ CheckNameAvailabilityResultInner innerObject,
+ com.azure.resourcemanager.testbase.TestBaseManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ }
+
+ public Boolean nameAvailable() {
+ return this.innerModel().nameAvailable();
+ }
+
+ public Reason reason() {
+ return this.innerModel().reason();
+ }
+
+ public String message() {
+ return this.innerModel().message();
+ }
+
+ public CheckNameAvailabilityResultInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.testbase.TestBaseManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/CustomerEventResourceImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/CustomerEventResourceImpl.java
new file mode 100644
index 000000000000..4ac45c5efb18
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/CustomerEventResourceImpl.java
@@ -0,0 +1,128 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.implementation;
+
+import com.azure.core.management.SystemData;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.testbase.fluent.models.CustomerEventResourceInner;
+import com.azure.resourcemanager.testbase.models.CustomerEventResource;
+import com.azure.resourcemanager.testbase.models.NotificationEventReceiver;
+import java.util.Collections;
+import java.util.List;
+
+public final class CustomerEventResourceImpl implements CustomerEventResource, CustomerEventResource.Definition {
+ private CustomerEventResourceInner innerObject;
+
+ private final com.azure.resourcemanager.testbase.TestBaseManager serviceManager;
+
+ CustomerEventResourceImpl(
+ CustomerEventResourceInner innerObject, com.azure.resourcemanager.testbase.TestBaseManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ }
+
+ public String id() {
+ return this.innerModel().id();
+ }
+
+ public String name() {
+ return this.innerModel().name();
+ }
+
+ public String type() {
+ return this.innerModel().type();
+ }
+
+ public SystemData systemData() {
+ return this.innerModel().systemData();
+ }
+
+ public String eventName() {
+ return this.innerModel().eventName();
+ }
+
+ public List receivers() {
+ List inner = this.innerModel().receivers();
+ if (inner != null) {
+ return Collections.unmodifiableList(inner);
+ } else {
+ return Collections.emptyList();
+ }
+ }
+
+ public CustomerEventResourceInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.testbase.TestBaseManager manager() {
+ return this.serviceManager;
+ }
+
+ private String resourceGroupName;
+
+ private String testBaseAccountName;
+
+ private String customerEventName;
+
+ public CustomerEventResourceImpl withExistingTestBaseAccount(String resourceGroupName, String testBaseAccountName) {
+ this.resourceGroupName = resourceGroupName;
+ this.testBaseAccountName = testBaseAccountName;
+ return this;
+ }
+
+ public CustomerEventResource create() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getCustomerEvents()
+ .create(resourceGroupName, testBaseAccountName, customerEventName, this.innerModel(), Context.NONE);
+ return this;
+ }
+
+ public CustomerEventResource create(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getCustomerEvents()
+ .create(resourceGroupName, testBaseAccountName, customerEventName, this.innerModel(), context);
+ return this;
+ }
+
+ CustomerEventResourceImpl(String name, com.azure.resourcemanager.testbase.TestBaseManager serviceManager) {
+ this.innerObject = new CustomerEventResourceInner();
+ this.serviceManager = serviceManager;
+ this.customerEventName = name;
+ }
+
+ public CustomerEventResource refresh() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getCustomerEvents()
+ .getWithResponse(resourceGroupName, testBaseAccountName, customerEventName, Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public CustomerEventResource refresh(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getCustomerEvents()
+ .getWithResponse(resourceGroupName, testBaseAccountName, customerEventName, context)
+ .getValue();
+ return this;
+ }
+
+ public CustomerEventResourceImpl withEventName(String eventName) {
+ this.innerModel().withEventName(eventName);
+ return this;
+ }
+
+ public CustomerEventResourceImpl withReceivers(List receivers) {
+ this.innerModel().withReceivers(receivers);
+ return this;
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/CustomerEventsClientImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/CustomerEventsClientImpl.java
new file mode 100644
index 000000000000..5dd573c90b35
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/CustomerEventsClientImpl.java
@@ -0,0 +1,1159 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.implementation;
+
+import com.azure.core.annotation.BodyParam;
+import com.azure.core.annotation.Delete;
+import com.azure.core.annotation.ExpectedResponses;
+import com.azure.core.annotation.Get;
+import com.azure.core.annotation.HeaderParam;
+import com.azure.core.annotation.Headers;
+import com.azure.core.annotation.Host;
+import com.azure.core.annotation.HostParam;
+import com.azure.core.annotation.PathParam;
+import com.azure.core.annotation.Put;
+import com.azure.core.annotation.QueryParam;
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceInterface;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.annotation.UnexpectedResponseExceptionType;
+import com.azure.core.http.rest.PagedFlux;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.PagedResponse;
+import com.azure.core.http.rest.PagedResponseBase;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.RestProxy;
+import com.azure.core.management.exception.ManagementException;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.FluxUtil;
+import com.azure.core.util.polling.PollerFlux;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.testbase.fluent.CustomerEventsClient;
+import com.azure.resourcemanager.testbase.fluent.models.CustomerEventResourceInner;
+import com.azure.resourcemanager.testbase.models.CustomerEventListResult;
+import java.nio.ByteBuffer;
+import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in CustomerEventsClient. */
+public final class CustomerEventsClientImpl implements CustomerEventsClient {
+ /** The proxy service used to perform REST calls. */
+ private final CustomerEventsService service;
+
+ /** The service client containing this operation class. */
+ private final TestBaseImpl client;
+
+ /**
+ * Initializes an instance of CustomerEventsClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ CustomerEventsClientImpl(TestBaseImpl client) {
+ this.service =
+ RestProxy.create(CustomerEventsService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for TestBaseCustomerEvents to be used by the proxy service to perform
+ * REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "TestBaseCustomerEven")
+ private interface CustomerEventsService {
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase"
+ + "/testBaseAccounts/{testBaseAccountName}/customerEvents")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listByTestBaseAccount(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("testBaseAccountName") String testBaseAccountName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Put(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase"
+ + "/testBaseAccounts/{testBaseAccountName}/customerEvents/{customerEventName}")
+ @ExpectedResponses({200, 201})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> create(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("testBaseAccountName") String testBaseAccountName,
+ @PathParam("customerEventName") String customerEventName,
+ @QueryParam("api-version") String apiVersion,
+ @BodyParam("application/json") CustomerEventResourceInner parameters,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Delete(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase"
+ + "/testBaseAccounts/{testBaseAccountName}/customerEvents/{customerEventName}")
+ @ExpectedResponses({200, 202, 204})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> delete(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("testBaseAccountName") String testBaseAccountName,
+ @PathParam("customerEventName") String customerEventName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase"
+ + "/testBaseAccounts/{testBaseAccountName}/customerEvents/{customerEventName}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> get(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("testBaseAccountName") String testBaseAccountName,
+ @PathParam("customerEventName") String customerEventName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("{nextLink}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listByTestBaseAccountNext(
+ @PathParam(value = "nextLink", encoded = true) String nextLink,
+ @HostParam("$host") String endpoint,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Lists all notification events subscribed under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Base Customer Events along with {@link PagedResponse} on successful completion of {@link
+ * Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByTestBaseAccountSinglePageAsync(
+ String resourceGroupName, String testBaseAccountName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (testBaseAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter testBaseAccountName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .listByTestBaseAccount(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Lists all notification events subscribed under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Base Customer Events along with {@link PagedResponse} on successful completion of {@link
+ * Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByTestBaseAccountSinglePageAsync(
+ String resourceGroupName, String testBaseAccountName, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (testBaseAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter testBaseAccountName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .listByTestBaseAccount(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ this.client.getApiVersion(),
+ accept,
+ context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * Lists all notification events subscribed under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Base Customer Events as paginated response with {@link PagedFlux}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listByTestBaseAccountAsync(
+ String resourceGroupName, String testBaseAccountName) {
+ return new PagedFlux<>(
+ () -> listByTestBaseAccountSinglePageAsync(resourceGroupName, testBaseAccountName),
+ nextLink -> listByTestBaseAccountNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * Lists all notification events subscribed under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Base Customer Events as paginated response with {@link PagedFlux}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listByTestBaseAccountAsync(
+ String resourceGroupName, String testBaseAccountName, Context context) {
+ return new PagedFlux<>(
+ () -> listByTestBaseAccountSinglePageAsync(resourceGroupName, testBaseAccountName, context),
+ nextLink -> listByTestBaseAccountNextSinglePageAsync(nextLink, context));
+ }
+
+ /**
+ * Lists all notification events subscribed under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Base Customer Events as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable listByTestBaseAccount(
+ String resourceGroupName, String testBaseAccountName) {
+ return new PagedIterable<>(listByTestBaseAccountAsync(resourceGroupName, testBaseAccountName));
+ }
+
+ /**
+ * Lists all notification events subscribed under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Base Customer Events as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable listByTestBaseAccount(
+ String resourceGroupName, String testBaseAccountName, Context context) {
+ return new PagedIterable<>(listByTestBaseAccountAsync(resourceGroupName, testBaseAccountName, context));
+ }
+
+ /**
+ * Create or replace a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param parameters Parameters supplied to create a Test Base CustomerEvent.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Customer Notification Event resource along with {@link Response} on successful completion of {@link
+ * Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> createWithResponseAsync(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String customerEventName,
+ CustomerEventResourceInner parameters) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (testBaseAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter testBaseAccountName is required and cannot be null."));
+ }
+ if (customerEventName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter customerEventName is required and cannot be null."));
+ }
+ if (parameters == null) {
+ return Mono.error(new IllegalArgumentException("Parameter parameters is required and cannot be null."));
+ } else {
+ parameters.validate();
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .create(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ customerEventName,
+ this.client.getApiVersion(),
+ parameters,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Create or replace a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param parameters Parameters supplied to create a Test Base CustomerEvent.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Customer Notification Event resource along with {@link Response} on successful completion of {@link
+ * Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> createWithResponseAsync(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String customerEventName,
+ CustomerEventResourceInner parameters,
+ Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (testBaseAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter testBaseAccountName is required and cannot be null."));
+ }
+ if (customerEventName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter customerEventName is required and cannot be null."));
+ }
+ if (parameters == null) {
+ return Mono.error(new IllegalArgumentException("Parameter parameters is required and cannot be null."));
+ } else {
+ parameters.validate();
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .create(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ customerEventName,
+ this.client.getApiVersion(),
+ parameters,
+ accept,
+ context);
+ }
+
+ /**
+ * Create or replace a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param parameters Parameters supplied to create a Test Base CustomerEvent.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link PollerFlux} for polling of the Customer Notification Event resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, CustomerEventResourceInner> beginCreateAsync(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String customerEventName,
+ CustomerEventResourceInner parameters) {
+ Mono>> mono =
+ createWithResponseAsync(resourceGroupName, testBaseAccountName, customerEventName, parameters);
+ return this
+ .client
+ .getLroResult(
+ mono,
+ this.client.getHttpPipeline(),
+ CustomerEventResourceInner.class,
+ CustomerEventResourceInner.class,
+ this.client.getContext());
+ }
+
+ /**
+ * Create or replace a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param parameters Parameters supplied to create a Test Base CustomerEvent.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link PollerFlux} for polling of the Customer Notification Event resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, CustomerEventResourceInner> beginCreateAsync(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String customerEventName,
+ CustomerEventResourceInner parameters,
+ Context context) {
+ context = this.client.mergeContext(context);
+ Mono>> mono =
+ createWithResponseAsync(resourceGroupName, testBaseAccountName, customerEventName, parameters, context);
+ return this
+ .client
+ .getLroResult(
+ mono,
+ this.client.getHttpPipeline(),
+ CustomerEventResourceInner.class,
+ CustomerEventResourceInner.class,
+ context);
+ }
+
+ /**
+ * Create or replace a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param parameters Parameters supplied to create a Test Base CustomerEvent.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of the Customer Notification Event resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, CustomerEventResourceInner> beginCreate(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String customerEventName,
+ CustomerEventResourceInner parameters) {
+ return beginCreateAsync(resourceGroupName, testBaseAccountName, customerEventName, parameters).getSyncPoller();
+ }
+
+ /**
+ * Create or replace a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param parameters Parameters supplied to create a Test Base CustomerEvent.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of the Customer Notification Event resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, CustomerEventResourceInner> beginCreate(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String customerEventName,
+ CustomerEventResourceInner parameters,
+ Context context) {
+ return beginCreateAsync(resourceGroupName, testBaseAccountName, customerEventName, parameters, context)
+ .getSyncPoller();
+ }
+
+ /**
+ * Create or replace a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param parameters Parameters supplied to create a Test Base CustomerEvent.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Customer Notification Event resource on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono createAsync(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String customerEventName,
+ CustomerEventResourceInner parameters) {
+ return beginCreateAsync(resourceGroupName, testBaseAccountName, customerEventName, parameters)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Create or replace a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param parameters Parameters supplied to create a Test Base CustomerEvent.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Customer Notification Event resource on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono createAsync(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String customerEventName,
+ CustomerEventResourceInner parameters,
+ Context context) {
+ return beginCreateAsync(resourceGroupName, testBaseAccountName, customerEventName, parameters, context)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Create or replace a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param parameters Parameters supplied to create a Test Base CustomerEvent.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Customer Notification Event resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public CustomerEventResourceInner create(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String customerEventName,
+ CustomerEventResourceInner parameters) {
+ return createAsync(resourceGroupName, testBaseAccountName, customerEventName, parameters).block();
+ }
+
+ /**
+ * Create or replace a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param parameters Parameters supplied to create a Test Base CustomerEvent.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Customer Notification Event resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public CustomerEventResourceInner create(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String customerEventName,
+ CustomerEventResourceInner parameters,
+ Context context) {
+ return createAsync(resourceGroupName, testBaseAccountName, customerEventName, parameters, context).block();
+ }
+
+ /**
+ * Deletes a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> deleteWithResponseAsync(
+ String resourceGroupName, String testBaseAccountName, String customerEventName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (testBaseAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter testBaseAccountName is required and cannot be null."));
+ }
+ if (customerEventName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter customerEventName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .delete(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ customerEventName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Deletes a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> deleteWithResponseAsync(
+ String resourceGroupName, String testBaseAccountName, String customerEventName, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (testBaseAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter testBaseAccountName is required and cannot be null."));
+ }
+ if (customerEventName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter customerEventName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .delete(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ customerEventName,
+ this.client.getApiVersion(),
+ accept,
+ context);
+ }
+
+ /**
+ * Deletes a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link PollerFlux} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, Void> beginDeleteAsync(
+ String resourceGroupName, String testBaseAccountName, String customerEventName) {
+ Mono>> mono =
+ deleteWithResponseAsync(resourceGroupName, testBaseAccountName, customerEventName);
+ return this
+ .client
+ .getLroResult(
+ mono, this.client.getHttpPipeline(), Void.class, Void.class, this.client.getContext());
+ }
+
+ /**
+ * Deletes a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link PollerFlux} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, Void> beginDeleteAsync(
+ String resourceGroupName, String testBaseAccountName, String customerEventName, Context context) {
+ context = this.client.mergeContext(context);
+ Mono>> mono =
+ deleteWithResponseAsync(resourceGroupName, testBaseAccountName, customerEventName, context);
+ return this
+ .client
+ .getLroResult(mono, this.client.getHttpPipeline(), Void.class, Void.class, context);
+ }
+
+ /**
+ * Deletes a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, Void> beginDelete(
+ String resourceGroupName, String testBaseAccountName, String customerEventName) {
+ return beginDeleteAsync(resourceGroupName, testBaseAccountName, customerEventName).getSyncPoller();
+ }
+
+ /**
+ * Deletes a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, Void> beginDelete(
+ String resourceGroupName, String testBaseAccountName, String customerEventName, Context context) {
+ return beginDeleteAsync(resourceGroupName, testBaseAccountName, customerEventName, context).getSyncPoller();
+ }
+
+ /**
+ * Deletes a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return A {@link Mono} that completes when a successful response is received.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono deleteAsync(String resourceGroupName, String testBaseAccountName, String customerEventName) {
+ return beginDeleteAsync(resourceGroupName, testBaseAccountName, customerEventName)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Deletes a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return A {@link Mono} that completes when a successful response is received.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono deleteAsync(
+ String resourceGroupName, String testBaseAccountName, String customerEventName, Context context) {
+ return beginDeleteAsync(resourceGroupName, testBaseAccountName, customerEventName, context)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Deletes a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public void delete(String resourceGroupName, String testBaseAccountName, String customerEventName) {
+ deleteAsync(resourceGroupName, testBaseAccountName, customerEventName).block();
+ }
+
+ /**
+ * Deletes a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public void delete(
+ String resourceGroupName, String testBaseAccountName, String customerEventName, Context context) {
+ deleteAsync(resourceGroupName, testBaseAccountName, customerEventName, context).block();
+ }
+
+ /**
+ * Gets a Test Base CustomerEvent.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a Test Base CustomerEvent along with {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(
+ String resourceGroupName, String testBaseAccountName, String customerEventName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (testBaseAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter testBaseAccountName is required and cannot be null."));
+ }
+ if (customerEventName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter customerEventName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .get(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ customerEventName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Gets a Test Base CustomerEvent.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a Test Base CustomerEvent along with {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(
+ String resourceGroupName, String testBaseAccountName, String customerEventName, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (testBaseAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter testBaseAccountName is required and cannot be null."));
+ }
+ if (customerEventName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter customerEventName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .get(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ customerEventName,
+ this.client.getApiVersion(),
+ accept,
+ context);
+ }
+
+ /**
+ * Gets a Test Base CustomerEvent.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a Test Base CustomerEvent on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono getAsync(
+ String resourceGroupName, String testBaseAccountName, String customerEventName) {
+ return getWithResponseAsync(resourceGroupName, testBaseAccountName, customerEventName)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Gets a Test Base CustomerEvent.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a Test Base CustomerEvent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public CustomerEventResourceInner get(
+ String resourceGroupName, String testBaseAccountName, String customerEventName) {
+ return getAsync(resourceGroupName, testBaseAccountName, customerEventName).block();
+ }
+
+ /**
+ * Gets a Test Base CustomerEvent.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a Test Base CustomerEvent along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response getWithResponse(
+ String resourceGroupName, String testBaseAccountName, String customerEventName, Context context) {
+ return getWithResponseAsync(resourceGroupName, testBaseAccountName, customerEventName, context).block();
+ }
+
+ /**
+ * Get the next page of items.
+ *
+ * @param nextLink The nextLink parameter.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Base Customer Events along with {@link PagedResponse} on successful completion of {@link
+ * Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByTestBaseAccountNextSinglePageAsync(String nextLink) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context -> service.listByTestBaseAccountNext(nextLink, this.client.getEndpoint(), accept, context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Get the next page of items.
+ *
+ * @param nextLink The nextLink parameter.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Base Customer Events along with {@link PagedResponse} on successful completion of {@link
+ * Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByTestBaseAccountNextSinglePageAsync(
+ String nextLink, Context context) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .listByTestBaseAccountNext(nextLink, this.client.getEndpoint(), accept, context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/CustomerEventsImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/CustomerEventsImpl.java
new file mode 100644
index 000000000000..c877690dea95
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/CustomerEventsImpl.java
@@ -0,0 +1,205 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.implementation;
+
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.SimpleResponse;
+import com.azure.core.util.Context;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.testbase.fluent.CustomerEventsClient;
+import com.azure.resourcemanager.testbase.fluent.models.CustomerEventResourceInner;
+import com.azure.resourcemanager.testbase.models.CustomerEventResource;
+import com.azure.resourcemanager.testbase.models.CustomerEvents;
+
+public final class CustomerEventsImpl implements CustomerEvents {
+ private static final ClientLogger LOGGER = new ClientLogger(CustomerEventsImpl.class);
+
+ private final CustomerEventsClient innerClient;
+
+ private final com.azure.resourcemanager.testbase.TestBaseManager serviceManager;
+
+ public CustomerEventsImpl(
+ CustomerEventsClient innerClient, com.azure.resourcemanager.testbase.TestBaseManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public PagedIterable listByTestBaseAccount(
+ String resourceGroupName, String testBaseAccountName) {
+ PagedIterable inner =
+ this.serviceClient().listByTestBaseAccount(resourceGroupName, testBaseAccountName);
+ return Utils.mapPage(inner, inner1 -> new CustomerEventResourceImpl(inner1, this.manager()));
+ }
+
+ public PagedIterable listByTestBaseAccount(
+ String resourceGroupName, String testBaseAccountName, Context context) {
+ PagedIterable inner =
+ this.serviceClient().listByTestBaseAccount(resourceGroupName, testBaseAccountName, context);
+ return Utils.mapPage(inner, inner1 -> new CustomerEventResourceImpl(inner1, this.manager()));
+ }
+
+ public void delete(String resourceGroupName, String testBaseAccountName, String customerEventName) {
+ this.serviceClient().delete(resourceGroupName, testBaseAccountName, customerEventName);
+ }
+
+ public void delete(
+ String resourceGroupName, String testBaseAccountName, String customerEventName, Context context) {
+ this.serviceClient().delete(resourceGroupName, testBaseAccountName, customerEventName, context);
+ }
+
+ public CustomerEventResource get(String resourceGroupName, String testBaseAccountName, String customerEventName) {
+ CustomerEventResourceInner inner =
+ this.serviceClient().get(resourceGroupName, testBaseAccountName, customerEventName);
+ if (inner != null) {
+ return new CustomerEventResourceImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response getWithResponse(
+ String resourceGroupName, String testBaseAccountName, String customerEventName, Context context) {
+ Response inner =
+ this.serviceClient().getWithResponse(resourceGroupName, testBaseAccountName, customerEventName, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new CustomerEventResourceImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ public CustomerEventResource getById(String id) {
+ String resourceGroupName = Utils.getValueFromIdByName(id, "resourceGroups");
+ if (resourceGroupName == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'resourceGroups'.", id)));
+ }
+ String testBaseAccountName = Utils.getValueFromIdByName(id, "testBaseAccounts");
+ if (testBaseAccountName == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'testBaseAccounts'.", id)));
+ }
+ String customerEventName = Utils.getValueFromIdByName(id, "customerEvents");
+ if (customerEventName == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'customerEvents'.", id)));
+ }
+ return this.getWithResponse(resourceGroupName, testBaseAccountName, customerEventName, Context.NONE).getValue();
+ }
+
+ public Response getByIdWithResponse(String id, Context context) {
+ String resourceGroupName = Utils.getValueFromIdByName(id, "resourceGroups");
+ if (resourceGroupName == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'resourceGroups'.", id)));
+ }
+ String testBaseAccountName = Utils.getValueFromIdByName(id, "testBaseAccounts");
+ if (testBaseAccountName == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'testBaseAccounts'.", id)));
+ }
+ String customerEventName = Utils.getValueFromIdByName(id, "customerEvents");
+ if (customerEventName == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'customerEvents'.", id)));
+ }
+ return this.getWithResponse(resourceGroupName, testBaseAccountName, customerEventName, context);
+ }
+
+ public void deleteById(String id) {
+ String resourceGroupName = Utils.getValueFromIdByName(id, "resourceGroups");
+ if (resourceGroupName == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'resourceGroups'.", id)));
+ }
+ String testBaseAccountName = Utils.getValueFromIdByName(id, "testBaseAccounts");
+ if (testBaseAccountName == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'testBaseAccounts'.", id)));
+ }
+ String customerEventName = Utils.getValueFromIdByName(id, "customerEvents");
+ if (customerEventName == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'customerEvents'.", id)));
+ }
+ this.delete(resourceGroupName, testBaseAccountName, customerEventName, Context.NONE);
+ }
+
+ public void deleteByIdWithResponse(String id, Context context) {
+ String resourceGroupName = Utils.getValueFromIdByName(id, "resourceGroups");
+ if (resourceGroupName == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'resourceGroups'.", id)));
+ }
+ String testBaseAccountName = Utils.getValueFromIdByName(id, "testBaseAccounts");
+ if (testBaseAccountName == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'testBaseAccounts'.", id)));
+ }
+ String customerEventName = Utils.getValueFromIdByName(id, "customerEvents");
+ if (customerEventName == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'customerEvents'.", id)));
+ }
+ this.delete(resourceGroupName, testBaseAccountName, customerEventName, context);
+ }
+
+ private CustomerEventsClient serviceClient() {
+ return this.innerClient;
+ }
+
+ private com.azure.resourcemanager.testbase.TestBaseManager manager() {
+ return this.serviceManager;
+ }
+
+ public CustomerEventResourceImpl define(String name) {
+ return new CustomerEventResourceImpl(name, this.manager());
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/DownloadUrlResponseImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/DownloadUrlResponseImpl.java
new file mode 100644
index 000000000000..2cf6c91680a3
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/DownloadUrlResponseImpl.java
@@ -0,0 +1,37 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.implementation;
+
+import com.azure.resourcemanager.testbase.fluent.models.DownloadUrlResponseInner;
+import com.azure.resourcemanager.testbase.models.DownloadUrlResponse;
+import java.time.OffsetDateTime;
+
+public final class DownloadUrlResponseImpl implements DownloadUrlResponse {
+ private DownloadUrlResponseInner innerObject;
+
+ private final com.azure.resourcemanager.testbase.TestBaseManager serviceManager;
+
+ DownloadUrlResponseImpl(
+ DownloadUrlResponseInner innerObject, com.azure.resourcemanager.testbase.TestBaseManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ }
+
+ public String downloadUrl() {
+ return this.innerModel().downloadUrl();
+ }
+
+ public OffsetDateTime expirationTime() {
+ return this.innerModel().expirationTime();
+ }
+
+ public DownloadUrlResponseInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.testbase.TestBaseManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/EmailEventResourceImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/EmailEventResourceImpl.java
new file mode 100644
index 000000000000..f597cb5dd50d
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/EmailEventResourceImpl.java
@@ -0,0 +1,57 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.implementation;
+
+import com.azure.core.management.SystemData;
+import com.azure.resourcemanager.testbase.fluent.models.EmailEventResourceInner;
+import com.azure.resourcemanager.testbase.models.EmailEventResource;
+
+public final class EmailEventResourceImpl implements EmailEventResource {
+ private EmailEventResourceInner innerObject;
+
+ private final com.azure.resourcemanager.testbase.TestBaseManager serviceManager;
+
+ EmailEventResourceImpl(
+ EmailEventResourceInner innerObject, com.azure.resourcemanager.testbase.TestBaseManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ }
+
+ public String id() {
+ return this.innerModel().id();
+ }
+
+ public String name() {
+ return this.innerModel().name();
+ }
+
+ public String type() {
+ return this.innerModel().type();
+ }
+
+ public SystemData systemData() {
+ return this.innerModel().systemData();
+ }
+
+ public String eventId() {
+ return this.innerModel().eventId();
+ }
+
+ public String eventName() {
+ return this.innerModel().eventName();
+ }
+
+ public String displayName() {
+ return this.innerModel().displayName();
+ }
+
+ public EmailEventResourceInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.testbase.TestBaseManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/EmailEventsClientImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/EmailEventsClientImpl.java
new file mode 100644
index 000000000000..f02977317ca9
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/EmailEventsClientImpl.java
@@ -0,0 +1,525 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.implementation;
+
+import com.azure.core.annotation.ExpectedResponses;
+import com.azure.core.annotation.Get;
+import com.azure.core.annotation.HeaderParam;
+import com.azure.core.annotation.Headers;
+import com.azure.core.annotation.Host;
+import com.azure.core.annotation.HostParam;
+import com.azure.core.annotation.PathParam;
+import com.azure.core.annotation.QueryParam;
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceInterface;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.annotation.UnexpectedResponseExceptionType;
+import com.azure.core.http.rest.PagedFlux;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.PagedResponse;
+import com.azure.core.http.rest.PagedResponseBase;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.RestProxy;
+import com.azure.core.management.exception.ManagementException;
+import com.azure.core.util.Context;
+import com.azure.core.util.FluxUtil;
+import com.azure.resourcemanager.testbase.fluent.EmailEventsClient;
+import com.azure.resourcemanager.testbase.fluent.models.EmailEventResourceInner;
+import com.azure.resourcemanager.testbase.models.EmailEventListResult;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in EmailEventsClient. */
+public final class EmailEventsClientImpl implements EmailEventsClient {
+ /** The proxy service used to perform REST calls. */
+ private final EmailEventsService service;
+
+ /** The service client containing this operation class. */
+ private final TestBaseImpl client;
+
+ /**
+ * Initializes an instance of EmailEventsClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ EmailEventsClientImpl(TestBaseImpl client) {
+ this.service =
+ RestProxy.create(EmailEventsService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for TestBaseEmailEvents to be used by the proxy service to perform REST
+ * calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "TestBaseEmailEvents")
+ private interface EmailEventsService {
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase"
+ + "/testBaseAccounts/{testBaseAccountName}/emailEvents")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> list(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("testBaseAccountName") String testBaseAccountName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase"
+ + "/testBaseAccounts/{testBaseAccountName}/emailEvents/{emailEventResourceName}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> get(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("testBaseAccountName") String testBaseAccountName,
+ @PathParam("emailEventResourceName") String emailEventResourceName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("{nextLink}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listNext(
+ @PathParam(value = "nextLink", encoded = true) String nextLink,
+ @HostParam("$host") String endpoint,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Lists all the email events of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of email events along with {@link PagedResponse} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(
+ String resourceGroupName, String testBaseAccountName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (testBaseAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter testBaseAccountName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .list(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Lists all the email events of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of email events along with {@link PagedResponse} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(
+ String resourceGroupName, String testBaseAccountName, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (testBaseAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter testBaseAccountName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .list(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ this.client.getApiVersion(),
+ accept,
+ context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * Lists all the email events of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of email events as paginated response with {@link PagedFlux}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(String resourceGroupName, String testBaseAccountName) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(resourceGroupName, testBaseAccountName),
+ nextLink -> listNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * Lists all the email events of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of email events as paginated response with {@link PagedFlux}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(
+ String resourceGroupName, String testBaseAccountName, Context context) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(resourceGroupName, testBaseAccountName, context),
+ nextLink -> listNextSinglePageAsync(nextLink, context));
+ }
+
+ /**
+ * Lists all the email events of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of email events as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(String resourceGroupName, String testBaseAccountName) {
+ return new PagedIterable<>(listAsync(resourceGroupName, testBaseAccountName));
+ }
+
+ /**
+ * Lists all the email events of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of email events as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(
+ String resourceGroupName, String testBaseAccountName, Context context) {
+ return new PagedIterable<>(listAsync(resourceGroupName, testBaseAccountName, context));
+ }
+
+ /**
+ * Gets a email event of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param emailEventResourceName The resource name of an email event.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a email event of a Test Base Account along with {@link Response} on successful completion of {@link
+ * Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(
+ String resourceGroupName, String testBaseAccountName, String emailEventResourceName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (testBaseAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter testBaseAccountName is required and cannot be null."));
+ }
+ if (emailEventResourceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter emailEventResourceName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .get(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ emailEventResourceName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Gets a email event of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param emailEventResourceName The resource name of an email event.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a email event of a Test Base Account along with {@link Response} on successful completion of {@link
+ * Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(
+ String resourceGroupName, String testBaseAccountName, String emailEventResourceName, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (testBaseAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter testBaseAccountName is required and cannot be null."));
+ }
+ if (emailEventResourceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter emailEventResourceName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .get(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ emailEventResourceName,
+ this.client.getApiVersion(),
+ accept,
+ context);
+ }
+
+ /**
+ * Gets a email event of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param emailEventResourceName The resource name of an email event.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a email event of a Test Base Account on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono getAsync(
+ String resourceGroupName, String testBaseAccountName, String emailEventResourceName) {
+ return getWithResponseAsync(resourceGroupName, testBaseAccountName, emailEventResourceName)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Gets a email event of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param emailEventResourceName The resource name of an email event.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a email event of a Test Base Account.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public EmailEventResourceInner get(
+ String resourceGroupName, String testBaseAccountName, String emailEventResourceName) {
+ return getAsync(resourceGroupName, testBaseAccountName, emailEventResourceName).block();
+ }
+
+ /**
+ * Gets a email event of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param emailEventResourceName The resource name of an email event.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a email event of a Test Base Account along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response getWithResponse(
+ String resourceGroupName, String testBaseAccountName, String emailEventResourceName, Context context) {
+ return getWithResponseAsync(resourceGroupName, testBaseAccountName, emailEventResourceName, context).block();
+ }
+
+ /**
+ * Get the next page of items.
+ *
+ * @param nextLink The nextLink parameter.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of email events along with {@link PagedResponse} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listNextSinglePageAsync(String nextLink) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(context -> service.listNext(nextLink, this.client.getEndpoint(), accept, context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Get the next page of items.
+ *
+ * @param nextLink The nextLink parameter.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of email events along with {@link PagedResponse} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listNextSinglePageAsync(String nextLink, Context context) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .listNext(nextLink, this.client.getEndpoint(), accept, context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/EmailEventsImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/EmailEventsImpl.java
new file mode 100644
index 000000000000..20ee26119869
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/EmailEventsImpl.java
@@ -0,0 +1,77 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.implementation;
+
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.SimpleResponse;
+import com.azure.core.util.Context;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.testbase.fluent.EmailEventsClient;
+import com.azure.resourcemanager.testbase.fluent.models.EmailEventResourceInner;
+import com.azure.resourcemanager.testbase.models.EmailEventResource;
+import com.azure.resourcemanager.testbase.models.EmailEvents;
+
+public final class EmailEventsImpl implements EmailEvents {
+ private static final ClientLogger LOGGER = new ClientLogger(EmailEventsImpl.class);
+
+ private final EmailEventsClient innerClient;
+
+ private final com.azure.resourcemanager.testbase.TestBaseManager serviceManager;
+
+ public EmailEventsImpl(
+ EmailEventsClient innerClient, com.azure.resourcemanager.testbase.TestBaseManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public PagedIterable list(String resourceGroupName, String testBaseAccountName) {
+ PagedIterable inner =
+ this.serviceClient().list(resourceGroupName, testBaseAccountName);
+ return Utils.mapPage(inner, inner1 -> new EmailEventResourceImpl(inner1, this.manager()));
+ }
+
+ public PagedIterable list(
+ String resourceGroupName, String testBaseAccountName, Context context) {
+ PagedIterable inner =
+ this.serviceClient().list(resourceGroupName, testBaseAccountName, context);
+ return Utils.mapPage(inner, inner1 -> new EmailEventResourceImpl(inner1, this.manager()));
+ }
+
+ public EmailEventResource get(String resourceGroupName, String testBaseAccountName, String emailEventResourceName) {
+ EmailEventResourceInner inner =
+ this.serviceClient().get(resourceGroupName, testBaseAccountName, emailEventResourceName);
+ if (inner != null) {
+ return new EmailEventResourceImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response getWithResponse(
+ String resourceGroupName, String testBaseAccountName, String emailEventResourceName, Context context) {
+ Response inner =
+ this
+ .serviceClient()
+ .getWithResponse(resourceGroupName, testBaseAccountName, emailEventResourceName, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new EmailEventResourceImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ private EmailEventsClient serviceClient() {
+ return this.innerClient;
+ }
+
+ private com.azure.resourcemanager.testbase.TestBaseManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/FavoriteProcessResourceImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/FavoriteProcessResourceImpl.java
new file mode 100644
index 000000000000..85349088eaa3
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/FavoriteProcessResourceImpl.java
@@ -0,0 +1,131 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.implementation;
+
+import com.azure.core.management.SystemData;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.testbase.fluent.models.FavoriteProcessResourceInner;
+import com.azure.resourcemanager.testbase.models.FavoriteProcessResource;
+
+public final class FavoriteProcessResourceImpl implements FavoriteProcessResource, FavoriteProcessResource.Definition {
+ private FavoriteProcessResourceInner innerObject;
+
+ private final com.azure.resourcemanager.testbase.TestBaseManager serviceManager;
+
+ FavoriteProcessResourceImpl(
+ FavoriteProcessResourceInner innerObject, com.azure.resourcemanager.testbase.TestBaseManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ }
+
+ public String id() {
+ return this.innerModel().id();
+ }
+
+ public String name() {
+ return this.innerModel().name();
+ }
+
+ public String type() {
+ return this.innerModel().type();
+ }
+
+ public SystemData systemData() {
+ return this.innerModel().systemData();
+ }
+
+ public String actualProcessName() {
+ return this.innerModel().actualProcessName();
+ }
+
+ public FavoriteProcessResourceInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.testbase.TestBaseManager manager() {
+ return this.serviceManager;
+ }
+
+ private String resourceGroupName;
+
+ private String testBaseAccountName;
+
+ private String packageName;
+
+ private String favoriteProcessResourceName;
+
+ public FavoriteProcessResourceImpl withExistingPackage(
+ String resourceGroupName, String testBaseAccountName, String packageName) {
+ this.resourceGroupName = resourceGroupName;
+ this.testBaseAccountName = testBaseAccountName;
+ this.packageName = packageName;
+ return this;
+ }
+
+ public FavoriteProcessResource create() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getFavoriteProcesses()
+ .createWithResponse(
+ resourceGroupName,
+ testBaseAccountName,
+ packageName,
+ favoriteProcessResourceName,
+ this.innerModel(),
+ Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public FavoriteProcessResource create(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getFavoriteProcesses()
+ .createWithResponse(
+ resourceGroupName,
+ testBaseAccountName,
+ packageName,
+ favoriteProcessResourceName,
+ this.innerModel(),
+ context)
+ .getValue();
+ return this;
+ }
+
+ FavoriteProcessResourceImpl(String name, com.azure.resourcemanager.testbase.TestBaseManager serviceManager) {
+ this.innerObject = new FavoriteProcessResourceInner();
+ this.serviceManager = serviceManager;
+ this.favoriteProcessResourceName = name;
+ }
+
+ public FavoriteProcessResource refresh() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getFavoriteProcesses()
+ .getWithResponse(
+ resourceGroupName, testBaseAccountName, packageName, favoriteProcessResourceName, Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public FavoriteProcessResource refresh(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getFavoriteProcesses()
+ .getWithResponse(
+ resourceGroupName, testBaseAccountName, packageName, favoriteProcessResourceName, context)
+ .getValue();
+ return this;
+ }
+
+ public FavoriteProcessResourceImpl withActualProcessName(String actualProcessName) {
+ this.innerModel().withActualProcessName(actualProcessName);
+ return this;
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/FavoriteProcessesClientImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/FavoriteProcessesClientImpl.java
new file mode 100644
index 000000000000..5ada2085e489
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/FavoriteProcessesClientImpl.java
@@ -0,0 +1,1059 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.implementation;
+
+import com.azure.core.annotation.BodyParam;
+import com.azure.core.annotation.Delete;
+import com.azure.core.annotation.ExpectedResponses;
+import com.azure.core.annotation.Get;
+import com.azure.core.annotation.HeaderParam;
+import com.azure.core.annotation.Headers;
+import com.azure.core.annotation.Host;
+import com.azure.core.annotation.HostParam;
+import com.azure.core.annotation.PathParam;
+import com.azure.core.annotation.Put;
+import com.azure.core.annotation.QueryParam;
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceInterface;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.annotation.UnexpectedResponseExceptionType;
+import com.azure.core.http.rest.PagedFlux;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.PagedResponse;
+import com.azure.core.http.rest.PagedResponseBase;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.RestProxy;
+import com.azure.core.management.exception.ManagementException;
+import com.azure.core.util.Context;
+import com.azure.core.util.FluxUtil;
+import com.azure.resourcemanager.testbase.fluent.FavoriteProcessesClient;
+import com.azure.resourcemanager.testbase.fluent.models.FavoriteProcessResourceInner;
+import com.azure.resourcemanager.testbase.models.FavoriteProcessListResult;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in FavoriteProcessesClient. */
+public final class FavoriteProcessesClientImpl implements FavoriteProcessesClient {
+ /** The proxy service used to perform REST calls. */
+ private final FavoriteProcessesService service;
+
+ /** The service client containing this operation class. */
+ private final TestBaseImpl client;
+
+ /**
+ * Initializes an instance of FavoriteProcessesClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ FavoriteProcessesClientImpl(TestBaseImpl client) {
+ this.service =
+ RestProxy.create(FavoriteProcessesService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for TestBaseFavoriteProcesses to be used by the proxy service to perform
+ * REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "TestBaseFavoriteProc")
+ private interface FavoriteProcessesService {
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase"
+ + "/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/favoriteProcesses")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> list(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("testBaseAccountName") String testBaseAccountName,
+ @PathParam("packageName") String packageName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Put(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase"
+ + "/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/favoriteProcesses"
+ + "/{favoriteProcessResourceName}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> create(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("testBaseAccountName") String testBaseAccountName,
+ @PathParam("packageName") String packageName,
+ @PathParam("favoriteProcessResourceName") String favoriteProcessResourceName,
+ @QueryParam("api-version") String apiVersion,
+ @BodyParam("application/json") FavoriteProcessResourceInner parameters,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Delete(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase"
+ + "/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/favoriteProcesses"
+ + "/{favoriteProcessResourceName}")
+ @ExpectedResponses({200, 204})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> delete(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("testBaseAccountName") String testBaseAccountName,
+ @PathParam("packageName") String packageName,
+ @PathParam("favoriteProcessResourceName") String favoriteProcessResourceName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase"
+ + "/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/favoriteProcesses"
+ + "/{favoriteProcessResourceName}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> get(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("testBaseAccountName") String testBaseAccountName,
+ @PathParam("packageName") String packageName,
+ @PathParam("favoriteProcessResourceName") String favoriteProcessResourceName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("{nextLink}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listNext(
+ @PathParam(value = "nextLink", encoded = true) String nextLink,
+ @HostParam("$host") String endpoint,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Lists the favorite processes for a specific package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of favorite processes for a package along with {@link PagedResponse} on successful completion of
+ * {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(
+ String resourceGroupName, String testBaseAccountName, String packageName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (testBaseAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter testBaseAccountName is required and cannot be null."));
+ }
+ if (packageName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter packageName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .list(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ packageName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Lists the favorite processes for a specific package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of favorite processes for a package along with {@link PagedResponse} on successful completion of
+ * {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(
+ String resourceGroupName, String testBaseAccountName, String packageName, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (testBaseAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter testBaseAccountName is required and cannot be null."));
+ }
+ if (packageName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter packageName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .list(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ packageName,
+ this.client.getApiVersion(),
+ accept,
+ context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * Lists the favorite processes for a specific package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of favorite processes for a package as paginated response with {@link PagedFlux}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(
+ String resourceGroupName, String testBaseAccountName, String packageName) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(resourceGroupName, testBaseAccountName, packageName),
+ nextLink -> listNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * Lists the favorite processes for a specific package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of favorite processes for a package as paginated response with {@link PagedFlux}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(
+ String resourceGroupName, String testBaseAccountName, String packageName, Context context) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(resourceGroupName, testBaseAccountName, packageName, context),
+ nextLink -> listNextSinglePageAsync(nextLink, context));
+ }
+
+ /**
+ * Lists the favorite processes for a specific package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of favorite processes for a package as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable