diff --git a/eng/versioning/version_client.txt b/eng/versioning/version_client.txt
index 14f1a970e4e30..84b34d30f5419 100644
--- a/eng/versioning/version_client.txt
+++ b/eng/versioning/version_client.txt
@@ -276,6 +276,7 @@ com.azure.resourcemanager:azure-resourcemanager-datalakestore;1.0.0-beta.1;1.0.0
com.azure.resourcemanager:azure-resourcemanager-iotcentral;1.0.0-beta.1;1.0.0-beta.2
com.azure.resourcemanager:azure-resourcemanager-labservices;1.0.0-beta.1;1.0.0-beta.2
com.azure.resourcemanager:azure-resourcemanager-vmwarecloudsimple;1.0.0-beta.1;1.0.0-beta.2
+com.azure.resourcemanager:azure-resourcemanager-testbase;1.0.0-beta.1;1.0.0-beta.1
# Unreleased dependencies: Copy the entry from above, prepend "unreleased_" and remove the current
# version. Unreleased dependencies are only valid for dependency versions.
diff --git a/pom.xml b/pom.xml
index 911b8d8d0264a..ee5802fd191f7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -760,6 +760,7 @@
sdk/synapse
sdk/tables
sdk/template
+ sdk/testbase
sdk/textanalytics
sdk/timeseriesinsights
sdk/vmwarecloudsimple
diff --git a/sdk/testbase/azure-resourcemanager-testbase/CHANGELOG.md b/sdk/testbase/azure-resourcemanager-testbase/CHANGELOG.md
new file mode 100644
index 0000000000000..677d9603d5c1c
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/CHANGELOG.md
@@ -0,0 +1,5 @@
+# Release History
+
+## 1.0.0-beta.1 (2021-04-25)
+
+- Azure Resource Manager Testbase client library for Java. This package contains Microsoft Azure SDK for Testbase Management SDK. REST API for 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 0000000000000..d74aa781988c3
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/README.md
@@ -0,0 +1,99 @@
+# 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. REST API for 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
+
+## Troubleshooting
+
+## Next steps
+
+## Contributing
+
+For details on contributing to this repository, see the [contributing guide](https://github.com/Azure/azure-sdk-for-java/blob/master/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/master/sdk/identity/azure-identity
+[azure_core_http_netty]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/core/azure-core-http-netty
+[authenticate]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/resourcemanager/docs/AUTH.md
+[design]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/resourcemanager/docs/DESIGN.md
diff --git a/sdk/testbase/azure-resourcemanager-testbase/pom.xml b/sdk/testbase/azure-resourcemanager-testbase/pom.xml
new file mode 100644
index 0000000000000..3bc33f830a97f
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/pom.xml
@@ -0,0 +1,67 @@
+
+ 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. REST API for 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
+
+
+
+
+ com.azure
+ azure-core
+ 1.15.0
+
+
+ com.azure
+ azure-core-management
+ 1.2.1
+
+
+
+
+
+ org.jacoco
+ jacoco-maven-plugin
+ 0.8.5
+
+ true
+
+
+
+
+
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 0000000000000..2f398ae475fbd
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/TestbaseManager.java
@@ -0,0 +1,500 @@
+// 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.policy.AddDatePolicy;
+import com.azure.core.http.policy.BearerTokenAuthenticationPolicy;
+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.profile.AzureProfile;
+import com.azure.core.util.Configuration;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.testbase.fluent.RestApiForTestBase;
+import com.azure.resourcemanager.testbase.implementation.AnalysisResultOperationsImpl;
+import com.azure.resourcemanager.testbase.implementation.AnalysisResultsImpl;
+import com.azure.resourcemanager.testbase.implementation.FavoriteProcessImpl;
+import com.azure.resourcemanager.testbase.implementation.FavoriteProcessesImpl;
+import com.azure.resourcemanager.testbase.implementation.OSUpdateOperationsImpl;
+import com.azure.resourcemanager.testbase.implementation.OSUpdatesImpl;
+import com.azure.resourcemanager.testbase.implementation.OperationsImpl;
+import com.azure.resourcemanager.testbase.implementation.PackageOperationsImpl;
+import com.azure.resourcemanager.testbase.implementation.PackagesImpl;
+import com.azure.resourcemanager.testbase.implementation.ResourceProvidersImpl;
+import com.azure.resourcemanager.testbase.implementation.RestApiForTestBaseBuilder;
+import com.azure.resourcemanager.testbase.implementation.SKUsImpl;
+import com.azure.resourcemanager.testbase.implementation.TestBaseAccountAvailableOSImpl;
+import com.azure.resourcemanager.testbase.implementation.TestBaseAccountAvailableOSsImpl;
+import com.azure.resourcemanager.testbase.implementation.TestBaseAccountFlightingRingOperationsImpl;
+import com.azure.resourcemanager.testbase.implementation.TestBaseAccountFlightingRingsImpl;
+import com.azure.resourcemanager.testbase.implementation.TestBaseAccountOperationsImpl;
+import com.azure.resourcemanager.testbase.implementation.TestBaseAccountTestTypeOperationsImpl;
+import com.azure.resourcemanager.testbase.implementation.TestBaseAccountTestTypesImpl;
+import com.azure.resourcemanager.testbase.implementation.TestBaseAccountUsagesImpl;
+import com.azure.resourcemanager.testbase.implementation.TestBaseAccountsImpl;
+import com.azure.resourcemanager.testbase.implementation.TestResultOperationsImpl;
+import com.azure.resourcemanager.testbase.implementation.TestResultsImpl;
+import com.azure.resourcemanager.testbase.implementation.TestSummariesImpl;
+import com.azure.resourcemanager.testbase.implementation.TestSummaryOperationsImpl;
+import com.azure.resourcemanager.testbase.models.AnalysisResultOperations;
+import com.azure.resourcemanager.testbase.models.AnalysisResults;
+import com.azure.resourcemanager.testbase.models.FavoriteProcess;
+import com.azure.resourcemanager.testbase.models.FavoriteProcesses;
+import com.azure.resourcemanager.testbase.models.OSUpdateOperations;
+import com.azure.resourcemanager.testbase.models.OSUpdates;
+import com.azure.resourcemanager.testbase.models.Operations;
+import com.azure.resourcemanager.testbase.models.PackageOperations;
+import com.azure.resourcemanager.testbase.models.Packages;
+import com.azure.resourcemanager.testbase.models.ResourceProviders;
+import com.azure.resourcemanager.testbase.models.SKUs;
+import com.azure.resourcemanager.testbase.models.TestBaseAccountAvailableOS;
+import com.azure.resourcemanager.testbase.models.TestBaseAccountAvailableOSs;
+import com.azure.resourcemanager.testbase.models.TestBaseAccountFlightingRingOperations;
+import com.azure.resourcemanager.testbase.models.TestBaseAccountFlightingRings;
+import com.azure.resourcemanager.testbase.models.TestBaseAccountOperations;
+import com.azure.resourcemanager.testbase.models.TestBaseAccountTestTypeOperations;
+import com.azure.resourcemanager.testbase.models.TestBaseAccountTestTypes;
+import com.azure.resourcemanager.testbase.models.TestBaseAccountUsages;
+import com.azure.resourcemanager.testbase.models.TestBaseAccounts;
+import com.azure.resourcemanager.testbase.models.TestResultOperations;
+import com.azure.resourcemanager.testbase.models.TestResults;
+import com.azure.resourcemanager.testbase.models.TestSummaries;
+import com.azure.resourcemanager.testbase.models.TestSummaryOperations;
+import java.time.Duration;
+import java.time.temporal.ChronoUnit;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/** Entry point to TestbaseManager. REST API for Test Base. */
+public final class TestbaseManager {
+ private SKUs sKUs;
+
+ private TestBaseAccounts testBaseAccounts;
+
+ private TestBaseAccountOperations testBaseAccountOperations;
+
+ private TestBaseAccountUsages testBaseAccountUsages;
+
+ private ResourceProviders resourceProviders;
+
+ private TestBaseAccountAvailableOSs testBaseAccountAvailableOSs;
+
+ private TestBaseAccountAvailableOS testBaseAccountAvailableOS;
+
+ private TestBaseAccountFlightingRings testBaseAccountFlightingRings;
+
+ private TestBaseAccountFlightingRingOperations testBaseAccountFlightingRingOperations;
+
+ private TestBaseAccountTestTypes testBaseAccountTestTypes;
+
+ private TestBaseAccountTestTypeOperations testBaseAccountTestTypeOperations;
+
+ private Packages packages;
+
+ private PackageOperations packageOperations;
+
+ private TestSummaries testSummaries;
+
+ private TestSummaryOperations testSummaryOperations;
+
+ private TestResults testResults;
+
+ private TestResultOperations testResultOperations;
+
+ private OSUpdates oSUpdates;
+
+ private OSUpdateOperations oSUpdateOperations;
+
+ private FavoriteProcesses favoriteProcesses;
+
+ private FavoriteProcess favoriteProcess;
+
+ private AnalysisResults analysisResults;
+
+ private AnalysisResultOperations analysisResultOperations;
+
+ private Operations operations;
+
+ private final RestApiForTestBase 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 RestApiForTestBaseBuilder()
+ .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 final ClientLogger logger = new ClientLogger(Configurable.class);
+
+ private HttpClient httpClient;
+ private HttpLogOptions httpLogOptions;
+ private final List policies = 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;
+ }
+
+ /**
+ * 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, "'retryPolicy' cannot be null.");
+ if (this.defaultPollInterval.isNegative()) {
+ throw logger.logExceptionAsError(new IllegalArgumentException("'httpPipeline' 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 (retryPolicy == null) {
+ retryPolicy = new RetryPolicy("Retry-After", ChronoUnit.SECONDS);
+ }
+ List policies = new ArrayList<>();
+ policies.add(new UserAgentPolicy(userAgentBuilder.toString()));
+ policies.add(new RequestIdPolicy());
+ HttpPolicyProviders.addBeforeRetryPolicies(policies);
+ policies.add(retryPolicy);
+ policies.add(new AddDatePolicy());
+ policies
+ .add(
+ new BearerTokenAuthenticationPolicy(
+ credential, profile.getEnvironment().getManagementEndpoint() + "/.default"));
+ policies.addAll(this.policies);
+ 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 TestBaseAccountOperations. */
+ public TestBaseAccountOperations testBaseAccountOperations() {
+ if (this.testBaseAccountOperations == null) {
+ this.testBaseAccountOperations =
+ new TestBaseAccountOperationsImpl(clientObject.getTestBaseAccountOperations(), this);
+ }
+ return testBaseAccountOperations;
+ }
+
+ /** @return Resource collection API of TestBaseAccountUsages. */
+ public TestBaseAccountUsages testBaseAccountUsages() {
+ if (this.testBaseAccountUsages == null) {
+ this.testBaseAccountUsages = new TestBaseAccountUsagesImpl(clientObject.getTestBaseAccountUsages(), this);
+ }
+ return testBaseAccountUsages;
+ }
+
+ /** @return Resource collection API of ResourceProviders. */
+ public ResourceProviders resourceProviders() {
+ if (this.resourceProviders == null) {
+ this.resourceProviders = new ResourceProvidersImpl(clientObject.getResourceProviders(), this);
+ }
+ return resourceProviders;
+ }
+
+ /** @return Resource collection API of TestBaseAccountAvailableOSs. */
+ public TestBaseAccountAvailableOSs testBaseAccountAvailableOSs() {
+ if (this.testBaseAccountAvailableOSs == null) {
+ this.testBaseAccountAvailableOSs =
+ new TestBaseAccountAvailableOSsImpl(clientObject.getTestBaseAccountAvailableOSs(), this);
+ }
+ return testBaseAccountAvailableOSs;
+ }
+
+ /** @return Resource collection API of TestBaseAccountAvailableOS. */
+ public TestBaseAccountAvailableOS testBaseAccountAvailableOS() {
+ if (this.testBaseAccountAvailableOS == null) {
+ this.testBaseAccountAvailableOS =
+ new TestBaseAccountAvailableOSImpl(clientObject.getTestBaseAccountAvailableOS(), this);
+ }
+ return testBaseAccountAvailableOS;
+ }
+
+ /** @return Resource collection API of TestBaseAccountFlightingRings. */
+ public TestBaseAccountFlightingRings testBaseAccountFlightingRings() {
+ if (this.testBaseAccountFlightingRings == null) {
+ this.testBaseAccountFlightingRings =
+ new TestBaseAccountFlightingRingsImpl(clientObject.getTestBaseAccountFlightingRings(), this);
+ }
+ return testBaseAccountFlightingRings;
+ }
+
+ /** @return Resource collection API of TestBaseAccountFlightingRingOperations. */
+ public TestBaseAccountFlightingRingOperations testBaseAccountFlightingRingOperations() {
+ if (this.testBaseAccountFlightingRingOperations == null) {
+ this.testBaseAccountFlightingRingOperations =
+ new TestBaseAccountFlightingRingOperationsImpl(
+ clientObject.getTestBaseAccountFlightingRingOperations(), this);
+ }
+ return testBaseAccountFlightingRingOperations;
+ }
+
+ /** @return Resource collection API of TestBaseAccountTestTypes. */
+ public TestBaseAccountTestTypes testBaseAccountTestTypes() {
+ if (this.testBaseAccountTestTypes == null) {
+ this.testBaseAccountTestTypes =
+ new TestBaseAccountTestTypesImpl(clientObject.getTestBaseAccountTestTypes(), this);
+ }
+ return testBaseAccountTestTypes;
+ }
+
+ /** @return Resource collection API of TestBaseAccountTestTypeOperations. */
+ public TestBaseAccountTestTypeOperations testBaseAccountTestTypeOperations() {
+ if (this.testBaseAccountTestTypeOperations == null) {
+ this.testBaseAccountTestTypeOperations =
+ new TestBaseAccountTestTypeOperationsImpl(clientObject.getTestBaseAccountTestTypeOperations(), this);
+ }
+ return testBaseAccountTestTypeOperations;
+ }
+
+ /** @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 PackageOperations. */
+ public PackageOperations packageOperations() {
+ if (this.packageOperations == null) {
+ this.packageOperations = new PackageOperationsImpl(clientObject.getPackageOperations(), this);
+ }
+ return packageOperations;
+ }
+
+ /** @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 TestSummaryOperations. */
+ public TestSummaryOperations testSummaryOperations() {
+ if (this.testSummaryOperations == null) {
+ this.testSummaryOperations = new TestSummaryOperationsImpl(clientObject.getTestSummaryOperations(), this);
+ }
+ return testSummaryOperations;
+ }
+
+ /** @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 TestResultOperations. */
+ public TestResultOperations testResultOperations() {
+ if (this.testResultOperations == null) {
+ this.testResultOperations = new TestResultOperationsImpl(clientObject.getTestResultOperations(), this);
+ }
+ return testResultOperations;
+ }
+
+ /** @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 OSUpdateOperations. */
+ public OSUpdateOperations oSUpdateOperations() {
+ if (this.oSUpdateOperations == null) {
+ this.oSUpdateOperations = new OSUpdateOperationsImpl(clientObject.getOSUpdateOperations(), this);
+ }
+ return oSUpdateOperations;
+ }
+
+ /** @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 FavoriteProcess. */
+ public FavoriteProcess favoriteProcess() {
+ if (this.favoriteProcess == null) {
+ this.favoriteProcess = new FavoriteProcessImpl(clientObject.getFavoriteProcess(), this);
+ }
+ return favoriteProcess;
+ }
+
+ /** @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 AnalysisResultOperations. */
+ public AnalysisResultOperations analysisResultOperations() {
+ if (this.analysisResultOperations == null) {
+ this.analysisResultOperations =
+ new AnalysisResultOperationsImpl(clientObject.getAnalysisResultOperations(), this);
+ }
+ return analysisResultOperations;
+ }
+
+ /** @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 RestApiForTestBase providing direct access to the underlying auto-generated API
+ * implementation, based on Azure REST API.
+ */
+ public RestApiForTestBase serviceClient() {
+ return this.clientObject;
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/AnalysisResultOperationsClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/AnalysisResultOperationsClient.java
new file mode 100644
index 0000000000000..1b98e966b6f56
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/AnalysisResultOperationsClient.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;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+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;
+
+/** An instance of this class provides access to all the operations defined in AnalysisResultOperationsClient. */
+public interface AnalysisResultOperationsClient {
+ /**
+ * 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.
+ */
+ @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/AnalysisResultsClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/AnalysisResultsClient.java
new file mode 100644
index 0000000000000..76893f792ce9d
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/AnalysisResultsClient.java
@@ -0,0 +1,61 @@
+// 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.AnalysisResultSingletonResourceInner;
+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.
+ */
+ @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.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ AnalysisResultType analysisResultType,
+ Context context);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/FavoriteProcessClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/FavoriteProcessClient.java
new file mode 100644
index 0000000000000..ed079f7745389
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/FavoriteProcessClient.java
@@ -0,0 +1,143 @@
+// 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.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 FavoriteProcessClient. */
+public interface FavoriteProcessClient {
+ /**
+ * 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.
+ */
+ @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 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.
+ */
+ @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/FavoriteProcessesClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/FavoriteProcessesClient.java
new file mode 100644
index 0000000000000..f4fc678b17812
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/FavoriteProcessesClient.java
@@ -0,0 +1,45 @@
+// 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.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.
+ */
+ @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.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String resourceGroupName, String testBaseAccountName, String packageName, Context context);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/OSUpdateOperationsClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/OSUpdateOperationsClient.java
new file mode 100644
index 0000000000000..2c5aaed12243d
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/OSUpdateOperationsClient.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;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.testbase.fluent.models.OSUpdateResourceInner;
+
+/** An instance of this class provides access to all the operations defined in OSUpdateOperationsClient. */
+public interface OSUpdateOperationsClient {
+ /**
+ * 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.
+ */
+ @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/OSUpdatesClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/OSUpdatesClient.java
new file mode 100644
index 0000000000000..42284595e7313
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/OSUpdatesClient.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;
+
+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.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.
+ */
+ @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.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ OsUpdateType osUpdateType,
+ 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 0000000000000..a8199914b9621
--- /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.
+ */
+ @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.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/PackageOperationsClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/PackageOperationsClient.java
new file mode 100644
index 0000000000000..ebb046f752c9d
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/PackageOperationsClient.java
@@ -0,0 +1,311 @@
+// 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.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.PackageResourceInner;
+import com.azure.resourcemanager.testbase.models.PackageUpdateParameters;
+
+/** An instance of this class provides access to all the operations defined in PackageOperationsClient. */
+public interface PackageOperationsClient {
+ /**
+ * 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)
+ 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 Test Base Package resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ 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 Test Base Package resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ 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 Test Base Package resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ 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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ 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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ 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.
+ */
+ @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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ 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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ 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);
+}
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 0000000000000..6b01fd114bb5f
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/PackagesClient.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.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.PackageResourceInner;
+
+/** 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.
+ */
+ @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.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByTestBaseAccount(
+ String resourceGroupName, String testBaseAccountName, Context context);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/ResourceProvidersClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/ResourceProvidersClient.java
new file mode 100644
index 0000000000000..70c4aa493acaf
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/ResourceProvidersClient.java
@@ -0,0 +1,186 @@
+// 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.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.testbase.fluent.models.CheckNameAvailabilityResultInner;
+import com.azure.resourcemanager.testbase.fluent.models.DownloadUrlResponseInner;
+import com.azure.resourcemanager.testbase.fluent.models.FileUploadUrlResponseInner;
+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 ResourceProvidersClient. */
+public interface ResourceProvidersClient {
+ /**
+ * 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 testBaseAccountGetFileUploadUrl(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.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response testBaseAccountGetFileUploadUrlWithResponse(
+ 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.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response checkPackageNameAvailabilityWithResponse(
+ String resourceGroupName,
+ String testBaseAccountName,
+ PackageCheckNameAvailabilityParameters parameters,
+ 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 packageGetDownloadUrl(
+ 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.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response packageGetDownloadUrlWithResponse(
+ String resourceGroupName, String testBaseAccountName, String packageName, Context context);
+
+ /**
+ * Gets the download URL or 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 or the test result.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DownloadUrlResponseInner testResultGetDownloadUrl(
+ String resourceGroupName, String testBaseAccountName, String packageName, String testResultName);
+
+ /**
+ * Gets the download URL or 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 or the test result.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response testResultGetDownloadUrlWithResponse(
+ 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 testResultGetVideoDownloadUrl(
+ 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.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response testResultGetVideoDownloadUrlWithResponse(
+ 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/RestApiForTestBase.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/RestApiForTestBase.java
new file mode 100644
index 0000000000000..b5f335053cb20
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/RestApiForTestBase.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.http.HttpPipeline;
+import java.time.Duration;
+
+/** The interface for RestApiForTestBase class. */
+public interface RestApiForTestBase {
+ /**
+ * 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 TestBaseAccountOperationsClient object to access its operations.
+ *
+ * @return the TestBaseAccountOperationsClient object.
+ */
+ TestBaseAccountOperationsClient getTestBaseAccountOperations();
+
+ /**
+ * Gets the TestBaseAccountUsagesClient object to access its operations.
+ *
+ * @return the TestBaseAccountUsagesClient object.
+ */
+ TestBaseAccountUsagesClient getTestBaseAccountUsages();
+
+ /**
+ * Gets the ResourceProvidersClient object to access its operations.
+ *
+ * @return the ResourceProvidersClient object.
+ */
+ ResourceProvidersClient getResourceProviders();
+
+ /**
+ * Gets the TestBaseAccountAvailableOSsClient object to access its operations.
+ *
+ * @return the TestBaseAccountAvailableOSsClient object.
+ */
+ TestBaseAccountAvailableOSsClient getTestBaseAccountAvailableOSs();
+
+ /**
+ * Gets the TestBaseAccountAvailableOSClient object to access its operations.
+ *
+ * @return the TestBaseAccountAvailableOSClient object.
+ */
+ TestBaseAccountAvailableOSClient getTestBaseAccountAvailableOS();
+
+ /**
+ * Gets the TestBaseAccountFlightingRingsClient object to access its operations.
+ *
+ * @return the TestBaseAccountFlightingRingsClient object.
+ */
+ TestBaseAccountFlightingRingsClient getTestBaseAccountFlightingRings();
+
+ /**
+ * Gets the TestBaseAccountFlightingRingOperationsClient object to access its operations.
+ *
+ * @return the TestBaseAccountFlightingRingOperationsClient object.
+ */
+ TestBaseAccountFlightingRingOperationsClient getTestBaseAccountFlightingRingOperations();
+
+ /**
+ * Gets the TestBaseAccountTestTypesClient object to access its operations.
+ *
+ * @return the TestBaseAccountTestTypesClient object.
+ */
+ TestBaseAccountTestTypesClient getTestBaseAccountTestTypes();
+
+ /**
+ * Gets the TestBaseAccountTestTypeOperationsClient object to access its operations.
+ *
+ * @return the TestBaseAccountTestTypeOperationsClient object.
+ */
+ TestBaseAccountTestTypeOperationsClient getTestBaseAccountTestTypeOperations();
+
+ /**
+ * Gets the PackagesClient object to access its operations.
+ *
+ * @return the PackagesClient object.
+ */
+ PackagesClient getPackages();
+
+ /**
+ * Gets the PackageOperationsClient object to access its operations.
+ *
+ * @return the PackageOperationsClient object.
+ */
+ PackageOperationsClient getPackageOperations();
+
+ /**
+ * Gets the TestSummariesClient object to access its operations.
+ *
+ * @return the TestSummariesClient object.
+ */
+ TestSummariesClient getTestSummaries();
+
+ /**
+ * Gets the TestSummaryOperationsClient object to access its operations.
+ *
+ * @return the TestSummaryOperationsClient object.
+ */
+ TestSummaryOperationsClient getTestSummaryOperations();
+
+ /**
+ * Gets the TestResultsClient object to access its operations.
+ *
+ * @return the TestResultsClient object.
+ */
+ TestResultsClient getTestResults();
+
+ /**
+ * Gets the TestResultOperationsClient object to access its operations.
+ *
+ * @return the TestResultOperationsClient object.
+ */
+ TestResultOperationsClient getTestResultOperations();
+
+ /**
+ * Gets the OSUpdatesClient object to access its operations.
+ *
+ * @return the OSUpdatesClient object.
+ */
+ OSUpdatesClient getOSUpdates();
+
+ /**
+ * Gets the OSUpdateOperationsClient object to access its operations.
+ *
+ * @return the OSUpdateOperationsClient object.
+ */
+ OSUpdateOperationsClient getOSUpdateOperations();
+
+ /**
+ * Gets the FavoriteProcessesClient object to access its operations.
+ *
+ * @return the FavoriteProcessesClient object.
+ */
+ FavoriteProcessesClient getFavoriteProcesses();
+
+ /**
+ * Gets the FavoriteProcessClient object to access its operations.
+ *
+ * @return the FavoriteProcessClient object.
+ */
+ FavoriteProcessClient getFavoriteProcess();
+
+ /**
+ * Gets the AnalysisResultsClient object to access its operations.
+ *
+ * @return the AnalysisResultsClient object.
+ */
+ AnalysisResultsClient getAnalysisResults();
+
+ /**
+ * Gets the AnalysisResultOperationsClient object to access its operations.
+ *
+ * @return the AnalysisResultOperationsClient object.
+ */
+ AnalysisResultOperationsClient getAnalysisResultOperations();
+
+ /**
+ * 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/SKUsClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/SKUsClient.java
new file mode 100644
index 0000000000000..699b9846fd6a4
--- /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.
+ */
+ @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.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestBaseAccountAvailableOSClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestBaseAccountAvailableOSClient.java
new file mode 100644
index 0000000000000..e2c00256bbd71
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestBaseAccountAvailableOSClient.java
@@ -0,0 +1,44 @@
+// 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.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.testbase.fluent.models.AvailableOSResourceInner;
+
+/** An instance of this class provides access to all the operations defined in TestBaseAccountAvailableOSClient. */
+public interface TestBaseAccountAvailableOSClient {
+ /**
+ * 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.
+ */
+ @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/TestBaseAccountAvailableOSsClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestBaseAccountAvailableOSsClient.java
new file mode 100644
index 0000000000000..963cfdcc8756c
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestBaseAccountAvailableOSsClient.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;
+
+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.AvailableOSResourceInner;
+import com.azure.resourcemanager.testbase.models.OsUpdateType;
+
+/** An instance of this class provides access to all the operations defined in TestBaseAccountAvailableOSsClient. */
+public interface TestBaseAccountAvailableOSsClient {
+ /**
+ * 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.
+ */
+ @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.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String resourceGroupName, String testBaseAccountName, OsUpdateType osUpdateType, Context context);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestBaseAccountFlightingRingOperationsClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestBaseAccountFlightingRingOperationsClient.java
new file mode 100644
index 0000000000000..c4641661154d3
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestBaseAccountFlightingRingOperationsClient.java
@@ -0,0 +1,48 @@
+// 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.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
+ * TestBaseAccountFlightingRingOperationsClient.
+ */
+public interface TestBaseAccountFlightingRingOperationsClient {
+ /**
+ * 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.
+ */
+ @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/TestBaseAccountFlightingRingsClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestBaseAccountFlightingRingsClient.java
new file mode 100644
index 0000000000000..ea5af1e988776
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestBaseAccountFlightingRingsClient.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.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.FlightingRingResourceInner;
+
+/** An instance of this class provides access to all the operations defined in TestBaseAccountFlightingRingsClient. */
+public interface TestBaseAccountFlightingRingsClient {
+ /**
+ * 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.
+ */
+ @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.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String resourceGroupName, String testBaseAccountName, Context context);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestBaseAccountOperationsClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestBaseAccountOperationsClient.java
new file mode 100644
index 0000000000000..f281299d76ac9
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestBaseAccountOperationsClient.java
@@ -0,0 +1,317 @@
+// 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.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.TestBaseAccountResourceInner;
+import com.azure.resourcemanager.testbase.fluent.models.TestBaseAccountUpdateParametersInner;
+
+/** An instance of this class provides access to all the operations defined in TestBaseAccountOperationsClient. */
+public interface TestBaseAccountOperationsClient {
+ /**
+ * 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)
+ 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 Test Base Account resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ 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 Test Base Account resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ 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 Test Base Account resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ 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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ 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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ 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.
+ */
+ @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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ 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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ 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);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestBaseAccountTestTypeOperationsClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestBaseAccountTestTypeOperationsClient.java
new file mode 100644
index 0000000000000..26cba75085cb2
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestBaseAccountTestTypeOperationsClient.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;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+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 TestBaseAccountTestTypeOperationsClient.
+ */
+public interface TestBaseAccountTestTypeOperationsClient {
+ /**
+ * 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.
+ */
+ @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/TestBaseAccountTestTypesClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestBaseAccountTestTypesClient.java
new file mode 100644
index 0000000000000..e455ffb3715a7
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestBaseAccountTestTypesClient.java
@@ -0,0 +1,41 @@
+// 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.TestTypeResourceInner;
+
+/** An instance of this class provides access to all the operations defined in TestBaseAccountTestTypesClient. */
+public interface TestBaseAccountTestTypesClient {
+ /**
+ * 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.
+ */
+ @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.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String testBaseAccountName, Context context);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestBaseAccountUsagesClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestBaseAccountUsagesClient.java
new file mode 100644
index 0000000000000..98686362b8e57
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestBaseAccountUsagesClient.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 TestBaseAccountUsagesClient. */
+public interface TestBaseAccountUsagesClient {
+ /**
+ * 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.
+ */
+ @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.
+ */
+ @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/TestBaseAccountsClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestBaseAccountsClient.java
new file mode 100644
index 0000000000000..0423d616d0fc3
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestBaseAccountsClient.java
@@ -0,0 +1,66 @@
+// 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.TestBaseAccountResourceInner;
+
+/** 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.
+ */
+ @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.
+ */
+ @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.
+ */
+ @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.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(
+ String resourceGroupName, Boolean getDeleted, Context context);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestResultOperationsClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestResultOperationsClient.java
new file mode 100644
index 0000000000000..ca13dff5b6573
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestResultOperationsClient.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;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.testbase.fluent.models.TestResultResourceInner;
+
+/** An instance of this class provides access to all the operations defined in TestResultOperationsClient. */
+public interface TestResultOperationsClient {
+ /**
+ * 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.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ 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/TestResultsClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestResultsClient.java
new file mode 100644
index 0000000000000..45cd3904c7816
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestResultsClient.java
@@ -0,0 +1,56 @@
+// 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.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.
+ */
+ @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.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ OsUpdateType osUpdateType,
+ String filter,
+ 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 0000000000000..8c53ec00e7a5d
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestSummariesClient.java
@@ -0,0 +1,41 @@
+// 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.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.
+ */
+ @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.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String testBaseAccountName, Context context);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestSummaryOperationsClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestSummaryOperationsClient.java
new file mode 100644
index 0000000000000..20fcdb408534b
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestSummaryOperationsClient.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;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+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 TestSummaryOperationsClient. */
+public interface TestSummaryOperationsClient {
+ /**
+ * 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.
+ */
+ @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/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 0000000000000..9681653fc8d08
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/AnalysisResultSingletonResourceInner.java
@@ -0,0 +1,70 @@
+// 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.annotation.JsonFlatten;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.testbase.models.Grade;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The Analysis Result Singleton Resource. */
+@JsonFlatten
+@Fluent
+public class AnalysisResultSingletonResourceInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(AnalysisResultSingletonResourceInner.class);
+
+ /*
+ * The system metadata relating to this resource
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * The grade of the test.
+ */
+ @JsonProperty(value = "properties.grade")
+ private Grade grade;
+
+ /**
+ * Get the systemData property: The system metadata relating to this resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * 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 AnalysisResultSingletonResourceInner object itself.
+ */
+ public AnalysisResultSingletonResourceInner 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/AvailableOSResourceInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/AvailableOSResourceInner.java
new file mode 100644
index 0000000000000..06a1269c061bf
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/AvailableOSResourceInner.java
@@ -0,0 +1,199 @@
+// 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.annotation.JsonFlatten;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The Available OS resource. */
+@JsonFlatten
+@Fluent
+public class AvailableOSResourceInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(AvailableOSResourceInner.class);
+
+ /*
+ * The system metadata relating to this resource
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * The Id of an Available OS of a Test Base Account.
+ */
+ @JsonProperty(value = "properties.osId")
+ private String osId;
+
+ /*
+ * The name of an Available OS of a Test Base Account.
+ */
+ @JsonProperty(value = "properties.osName")
+ private String osName;
+
+ /*
+ * The version of an Available OS of a Test Base Account.
+ */
+ @JsonProperty(value = "properties.osVersion")
+ private String osVersion;
+
+ /*
+ * The insider channel of an Available OS of a Test Base Account.
+ */
+ @JsonProperty(value = "properties.insiderChannel")
+ private String insiderChannel;
+
+ /*
+ * The OS update type of an Available OS of a Test Base Account.
+ */
+ @JsonProperty(value = "properties.osUpdateType")
+ private String osUpdateType;
+
+ /*
+ * The Platform of an Available OS of a Test Base Account.
+ */
+ @JsonProperty(value = "properties.osPlatform")
+ private String osPlatform;
+
+ /**
+ * Get the systemData property: The system metadata relating to this resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * 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 AvailableOSResourceInner object itself.
+ */
+ public AvailableOSResourceInner 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 AvailableOSResourceInner object itself.
+ */
+ public AvailableOSResourceInner 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 AvailableOSResourceInner object itself.
+ */
+ public AvailableOSResourceInner 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 AvailableOSResourceInner object itself.
+ */
+ public AvailableOSResourceInner 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 AvailableOSResourceInner object itself.
+ */
+ public AvailableOSResourceInner 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 AvailableOSResourceInner object itself.
+ */
+ public AvailableOSResourceInner 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/CheckNameAvailabilityResultInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/CheckNameAvailabilityResultInner.java
new file mode 100644
index 0000000000000..0e1f5a904aa77
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/CheckNameAvailabilityResultInner.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.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.testbase.models.Reason;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Description of a Check Name availability response properties. */
+@Fluent
+public final class CheckNameAvailabilityResultInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(CheckNameAvailabilityResultInner.class);
+
+ /*
+ * 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/DownloadUrlResponseInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/DownloadUrlResponseInner.java
new file mode 100644
index 0000000000000..af116ab0f51b2
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/DownloadUrlResponseInner.java
@@ -0,0 +1,55 @@
+// 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.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** The response of getting a download URL. */
+@Immutable
+public final class DownloadUrlResponseInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(DownloadUrlResponseInner.class);
+
+ /*
+ * 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/FavoriteProcessResourceInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/FavoriteProcessResourceInner.java
new file mode 100644
index 0000000000000..cd6b0a4cf208f
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/FavoriteProcessResourceInner.java
@@ -0,0 +1,73 @@
+// 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.annotation.JsonFlatten;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** A favorite process identifier. */
+@JsonFlatten
+@Fluent
+public class FavoriteProcessResourceInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(FavoriteProcessResourceInner.class);
+
+ /*
+ * The system metadata relating to this resource
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * 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 = "properties.actualProcessName")
+ private String actualProcessName;
+
+ /**
+ * Get the systemData property: The system metadata relating to this resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * 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 FavoriteProcessResourceInner object itself.
+ */
+ public FavoriteProcessResourceInner withActualProcessName(String actualProcessName) {
+ this.actualProcessName = actualProcessName;
+ 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/FileUploadUrlResponseInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/FileUploadUrlResponseInner.java
new file mode 100644
index 0000000000000..cb6bf627eff38
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/FileUploadUrlResponseInner.java
@@ -0,0 +1,56 @@
+// 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.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The URL response. */
+@Immutable
+public final class FileUploadUrlResponseInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(FileUploadUrlResponseInner.class);
+
+ /*
+ * 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/FlightingRingResourceInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/FlightingRingResourceInner.java
new file mode 100644
index 0000000000000..1d091f2e7cca3
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/FlightingRingResourceInner.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.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The flighting ring resource. */
+@JsonFlatten
+@Fluent
+public class FlightingRingResourceInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(FlightingRingResourceInner.class);
+
+ /*
+ * The system metadata relating to this resource
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * The actual name of a flighting ring of a Test Base Account.
+ */
+ @JsonProperty(value = "properties.actualFlightingRingName")
+ private String actualFlightingRingName;
+
+ /**
+ * Get the systemData property: The system metadata relating to this resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * 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 FlightingRingResourceInner object itself.
+ */
+ public FlightingRingResourceInner 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/OSUpdateResourceInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/OSUpdateResourceInner.java
new file mode 100644
index 0000000000000..da33040390a30
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/OSUpdateResourceInner.java
@@ -0,0 +1,227 @@
+// 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.annotation.JsonFlatten;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.testbase.models.Type;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** An OS Update. */
+@JsonFlatten
+@Fluent
+public class OSUpdateResourceInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(OSUpdateResourceInner.class);
+
+ /*
+ * The system metadata relating to this resource
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * The name of the OS.
+ */
+ @JsonProperty(value = "properties.osName")
+ private String osName;
+
+ /*
+ * The name of tested release.
+ */
+ @JsonProperty(value = "properties.release")
+ private String release;
+
+ /*
+ * The flighting ring, only for release of feature updates.
+ */
+ @JsonProperty(value = "properties.flightingRing")
+ private String flightingRing;
+
+ /*
+ * The build version of the tested release (OS update).
+ */
+ @JsonProperty(value = "properties.buildVersion")
+ private String buildVersion;
+
+ /*
+ * The build revision of the tested release (OS update)
+ */
+ @JsonProperty(value = "properties.buildRevision")
+ private String buildRevision;
+
+ /*
+ * The type of this release (OS update).
+ */
+ @JsonProperty(value = "properties.type")
+ private Type typePropertiesType;
+
+ /*
+ * The release version date the tested release (OS update)
+ */
+ @JsonProperty(value = "properties.releaseVersionDate")
+ private OffsetDateTime releaseVersionDate;
+
+ /**
+ * Get the systemData property: The system metadata relating to this resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * 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 OSUpdateResourceInner object itself.
+ */
+ public OSUpdateResourceInner 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 OSUpdateResourceInner object itself.
+ */
+ public OSUpdateResourceInner 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 OSUpdateResourceInner object itself.
+ */
+ public OSUpdateResourceInner 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 OSUpdateResourceInner object itself.
+ */
+ public OSUpdateResourceInner 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 OSUpdateResourceInner object itself.
+ */
+ public OSUpdateResourceInner withBuildRevision(String buildRevision) {
+ this.buildRevision = buildRevision;
+ return this;
+ }
+
+ /**
+ * Get the typePropertiesType property: The type of this release (OS update).
+ *
+ * @return the typePropertiesType value.
+ */
+ public Type typePropertiesType() {
+ return this.typePropertiesType;
+ }
+
+ /**
+ * Set the typePropertiesType property: The type of this release (OS update).
+ *
+ * @param typePropertiesType the typePropertiesType value to set.
+ * @return the OSUpdateResourceInner object itself.
+ */
+ public OSUpdateResourceInner withTypePropertiesType(Type typePropertiesType) {
+ this.typePropertiesType = typePropertiesType;
+ 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 OSUpdateResourceInner object itself.
+ */
+ public OSUpdateResourceInner 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/OperationInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/OperationInner.java
new file mode 100644
index 0000000000000..74d3b418b61ab
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/OperationInner.java
@@ -0,0 +1,125 @@
+// 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.OperationDisplay;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** REST API operation. */
+@Fluent
+public final class OperationInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(OperationInner.class);
+
+ /*
+ * 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/PackageResourceInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/PackageResourceInner.java
new file mode 100644
index 0000000000000..e116c7cd70551
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/PackageResourceInner.java
@@ -0,0 +1,340 @@
+// 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.annotation.JsonFlatten;
+import com.azure.core.management.Resource;
+import com.azure.core.management.SystemData;
+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.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+import java.util.List;
+import java.util.Map;
+
+/** The Test Base Package resource. */
+@JsonFlatten
+@Fluent
+public class PackageResourceInner extends Resource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(PackageResourceInner.class);
+
+ /*
+ * The system metadata relating to this resource
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * The provisioning state of the resource.
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private ProvisioningState provisioningState;
+
+ /*
+ * Application name
+ */
+ @JsonProperty(value = "properties.applicationName")
+ private String applicationName;
+
+ /*
+ * Application version
+ */
+ @JsonProperty(value = "properties.version")
+ private String version;
+
+ /*
+ * OOB, functional or both. Mapped to the data in 'tests' property.
+ */
+ @JsonProperty(value = "properties.testTypes", access = JsonProperty.Access.WRITE_ONLY)
+ private List testTypes;
+
+ /*
+ * Specifies the target OSs of specific OS Update types.
+ */
+ @JsonProperty(value = "properties.targetOSList")
+ private List targetOSList;
+
+ /*
+ * The status of the package.
+ */
+ @JsonProperty(value = "properties.packageStatus", access = JsonProperty.Access.WRITE_ONLY)
+ private PackageStatus packageStatus;
+
+ /*
+ * The UTC timestamp when the package was last modified.
+ */
+ @JsonProperty(value = "properties.lastModifiedTime", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime lastModifiedTime;
+
+ /*
+ * The flighting ring for feature update.
+ */
+ @JsonProperty(value = "properties.flightingRing")
+ private String flightingRing;
+
+ /*
+ * Flag showing that whether the package is enabled. It doesn't schedule
+ * test for package which is not enabled.
+ */
+ @JsonProperty(value = "properties.isEnabled", access = JsonProperty.Access.WRITE_ONLY)
+ private Boolean isEnabled;
+
+ /*
+ * The file path of the package.
+ */
+ @JsonProperty(value = "properties.blobPath")
+ private String blobPath;
+
+ /*
+ * The validation results. There's validation on package when it's created
+ * or updated.
+ */
+ @JsonProperty(value = "properties.validationResults", access = JsonProperty.Access.WRITE_ONLY)
+ private List validationResults;
+
+ /*
+ * The detailed test information.
+ */
+ @JsonProperty(value = "properties.tests")
+ private List tests;
+
+ /*
+ * 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 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 PackageResourceInner object itself.
+ */
+ public PackageResourceInner 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 PackageResourceInner object itself.
+ */
+ public PackageResourceInner 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 PackageResourceInner object itself.
+ */
+ public PackageResourceInner 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 PackageResourceInner object itself.
+ */
+ public PackageResourceInner 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 PackageResourceInner object itself.
+ */
+ public PackageResourceInner 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 PackageResourceInner object itself.
+ */
+ public PackageResourceInner withTests(List tests) {
+ this.tests = tests;
+ return this;
+ }
+
+ /**
+ * 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;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (targetOSList() != null) {
+ targetOSList().forEach(e -> e.validate());
+ }
+ if (validationResults() != null) {
+ validationResults().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 0000000000000..862b1076a60cc
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestBaseAccountResourceInner.java
@@ -0,0 +1,133 @@
+// 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.annotation.JsonFlatten;
+import com.azure.core.management.Resource;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.testbase.models.ProvisioningState;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** The Test Base Account resource. */
+@JsonFlatten
+@Fluent
+public class TestBaseAccountResourceInner extends Resource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(TestBaseAccountResourceInner.class);
+
+ /*
+ * The system metadata relating to this resource
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * The provisioning state of the resource.
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private ProvisioningState provisioningState;
+
+ /*
+ * The SKU of the Test Base Account.
+ */
+ @JsonProperty(value = "properties.sku")
+ private TestBaseAccountSkuInner sku;
+
+ /*
+ * The access level of the Test Base Account.
+ */
+ @JsonProperty(value = "properties.accessLevel", access = JsonProperty.Access.WRITE_ONLY)
+ private String accessLevel;
+
+ /*
+ * 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 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 TestBaseAccountResourceInner object itself.
+ */
+ public TestBaseAccountResourceInner 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;
+ }
+
+ /**
+ * 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;
+ }
+
+ /**
+ * 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/TestBaseAccountSkuInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestBaseAccountSkuInner.java
new file mode 100644
index 0000000000000..b0191c141a2cf
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestBaseAccountSkuInner.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.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.testbase.models.TestBaseAccountSkuCapability;
+import com.azure.resourcemanager.testbase.models.Tier;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Describes a Test Base Account SKU. */
+@Fluent
+public final class TestBaseAccountSkuInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(TestBaseAccountSkuInner.class);
+
+ /*
+ * 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());
+ }
+ }
+}
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 0000000000000..d33758869f118
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestBaseAccountUpdateParametersInner.java
@@ -0,0 +1,82 @@
+// 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.annotation.JsonFlatten;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** Parameters supplied to update a Test Base Account. */
+@JsonFlatten
+@Fluent
+public class TestBaseAccountUpdateParametersInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(TestBaseAccountUpdateParametersInner.class);
+
+ /*
+ * The tags of the Test Base Account.
+ */
+ @JsonProperty(value = "tags")
+ private Map tags;
+
+ /*
+ * The SKU of the Test Base Account.
+ */
+ @JsonProperty(value = "properties.sku")
+ private TestBaseAccountSkuInner sku;
+
+ /**
+ * 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.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) {
+ 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/TestBaseAccountUsageDataInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestBaseAccountUsageDataInner.java
new file mode 100644
index 0000000000000..b972bdf70ccc7
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestBaseAccountUsageDataInner.java
@@ -0,0 +1,164 @@
+// 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.TestBaseAccountUsageName;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The usage data of a Test Base Account. */
+@Fluent
+public final class TestBaseAccountUsageDataInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(TestBaseAccountUsageDataInner.class);
+
+ /*
+ * 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/TestResultResourceInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestResultResourceInner.java
new file mode 100644
index 0000000000000..e2446536227da
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestResultResourceInner.java
@@ -0,0 +1,545 @@
+// 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.annotation.JsonFlatten;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.testbase.models.ExecutionStatus;
+import com.azure.resourcemanager.testbase.models.Grade;
+import com.azure.resourcemanager.testbase.models.TestResultAnalysisSummary;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+import java.util.List;
+
+/** The Test Result Resource. */
+@JsonFlatten
+@Fluent
+public class TestResultResourceInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(TestResultResourceInner.class);
+
+ /*
+ * The system metadata relating to this resource
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * Azure Id of the baseline test result.
+ */
+ @JsonProperty(value = "properties.baselineTestResultId")
+ private String baselineTestResultId;
+
+ /*
+ * Resource Id of the package.
+ */
+ @JsonProperty(value = "properties.packageId")
+ private String packageId;
+
+ /*
+ * Application name.
+ */
+ @JsonProperty(value = "properties.applicationName")
+ private String applicationName;
+
+ /*
+ * Application version.
+ */
+ @JsonProperty(value = "properties.applicationVersion")
+ private String applicationVersion;
+
+ /*
+ * The operating system name, e.g. Windows 10 1809.
+ */
+ @JsonProperty(value = "properties.osName")
+ private String osName;
+
+ /*
+ * The name of the tested release (OS update).
+ */
+ @JsonProperty(value = "properties.releaseName")
+ private String releaseName;
+
+ /*
+ * The release version date of the tested release.
+ */
+ @JsonProperty(value = "properties.releaseVersionDate")
+ private OffsetDateTime releaseVersionDate;
+
+ /*
+ * The flighting ring, only for release of feature updates.
+ */
+ @JsonProperty(value = "properties.flightingRing")
+ private String flightingRing;
+
+ /*
+ * The build version of the tested release (OS update).
+ */
+ @JsonProperty(value = "properties.buildVersion")
+ private String buildVersion;
+
+ /*
+ * The build revision of the tested release (OS update).
+ */
+ @JsonProperty(value = "properties.buildRevision")
+ private String buildRevision;
+
+ /*
+ * Test type. E.g. 'Out of box test' or 'Functional test'.
+ */
+ @JsonProperty(value = "properties.testType")
+ private String testType;
+
+ /*
+ * The run time of the test.
+ */
+ @JsonProperty(value = "properties.testRunTime")
+ private String testRunTime;
+
+ /*
+ * Whether download data is available.
+ */
+ @JsonProperty(value = "properties.isDownloadDataAvailable")
+ private Boolean isDownloadDataAvailable;
+
+ /*
+ * Whether video data is available.
+ */
+ @JsonProperty(value = "properties.isVideoAvailable")
+ private Boolean isVideoAvailable;
+
+ /*
+ * The execution status of the test.
+ */
+ @JsonProperty(value = "properties.executionStatus")
+ private ExecutionStatus executionStatus;
+
+ /*
+ * The grade of the test.
+ */
+ @JsonProperty(value = "properties.grade")
+ private Grade grade;
+
+ /*
+ * KB number.
+ */
+ @JsonProperty(value = "properties.kbNumber")
+ private String kbNumber;
+
+ /*
+ * The version of the Windows update package.
+ */
+ @JsonProperty(value = "properties.packageVersion")
+ private String packageVersion;
+
+ /*
+ * List of analysis summaries.
+ */
+ @JsonProperty(value = "properties.analysisSummaries")
+ private List analysisSummaries;
+
+ /**
+ * Get the systemData property: The system metadata relating to this resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * 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 TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner 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 TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner 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 TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner 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 TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner 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 TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner 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 TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner 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 TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner 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 TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner 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 TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner 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 TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner 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 TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner 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 TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner 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 TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner 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 TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner 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 TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner withExecutionStatus(ExecutionStatus executionStatus) {
+ this.executionStatus = executionStatus;
+ 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 TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner 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 TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner 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 TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner 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 TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner 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/TestSummaryResourceInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestSummaryResourceInner.java
new file mode 100644
index 0000000000000..06922a0ac13a5
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestSummaryResourceInner.java
@@ -0,0 +1,286 @@
+// 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.annotation.JsonFlatten;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.testbase.models.ExecutionStatus;
+import com.azure.resourcemanager.testbase.models.Grade;
+import com.azure.resourcemanager.testbase.models.OSUpdatesTestSummary;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Summary of a Test. */
+@JsonFlatten
+@Fluent
+public class TestSummaryResourceInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(TestSummaryResourceInner.class);
+
+ /*
+ * The system metadata relating to this resource
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * The Id of the current Test Summary.
+ */
+ @JsonProperty(value = "properties.testSummaryId")
+ private String testSummaryId;
+
+ /*
+ * The Azure resource Id of package.
+ */
+ @JsonProperty(value = "properties.packageId")
+ private String packageId;
+
+ /*
+ * Application name.
+ */
+ @JsonProperty(value = "properties.applicationName")
+ private String applicationName;
+
+ /*
+ * Application version.
+ */
+ @JsonProperty(value = "properties.applicationVersion")
+ private String applicationVersion;
+
+ /*
+ * The execution status of last test.
+ */
+ @JsonProperty(value = "properties.executionStatus")
+ private ExecutionStatus executionStatus;
+
+ /*
+ * The grade of the test.
+ */
+ @JsonProperty(value = "properties.grade")
+ private Grade grade;
+
+ /*
+ * The run time of the last test.
+ */
+ @JsonProperty(value = "properties.testRunTime")
+ private String testRunTime;
+
+ /*
+ * The result summary of tests triggered by feature updates
+ */
+ @JsonProperty(value = "properties.featureUpdatesTestSummary")
+ private OSUpdatesTestSummary featureUpdatesTestSummary;
+
+ /*
+ * The result summary of tests triggered by security updates
+ */
+ @JsonProperty(value = "properties.securityUpdatesTestSummary")
+ private OSUpdatesTestSummary securityUpdatesTestSummary;
+
+ /**
+ * Get the systemData property: The system metadata relating to this resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * 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 TestSummaryResourceInner object itself.
+ */
+ public TestSummaryResourceInner 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 TestSummaryResourceInner object itself.
+ */
+ public TestSummaryResourceInner 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 TestSummaryResourceInner object itself.
+ */
+ public TestSummaryResourceInner 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 TestSummaryResourceInner object itself.
+ */
+ public TestSummaryResourceInner 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 TestSummaryResourceInner object itself.
+ */
+ public TestSummaryResourceInner withExecutionStatus(ExecutionStatus executionStatus) {
+ this.executionStatus = executionStatus;
+ 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 TestSummaryResourceInner object itself.
+ */
+ public TestSummaryResourceInner 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 TestSummaryResourceInner object itself.
+ */
+ public TestSummaryResourceInner 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 TestSummaryResourceInner object itself.
+ */
+ public TestSummaryResourceInner 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 TestSummaryResourceInner object itself.
+ */
+ public TestSummaryResourceInner 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/TestTypeResourceInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestTypeResourceInner.java
new file mode 100644
index 0000000000000..462590d26fa8c
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestTypeResourceInner.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.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The test type resource. */
+@JsonFlatten
+@Fluent
+public class TestTypeResourceInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(TestTypeResourceInner.class);
+
+ /*
+ * The system metadata relating to this resource
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * The actual name of a test type of a Test Base Account.
+ */
+ @JsonProperty(value = "properties.actualTestTypeName")
+ private String actualTestTypeName;
+
+ /**
+ * Get the systemData property: The system metadata relating to this resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * 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 TestTypeResourceInner object itself.
+ */
+ public TestTypeResourceInner 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/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 0000000000000..6d89f8de1ebf4
--- /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 RestApiForTestBase. REST API for 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 0000000000000..e02a15a634e33
--- /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 RestApiForTestBase. REST API for Test Base. */
+package com.azure.resourcemanager.testbase.fluent;
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AnalysisResultOperationsClientImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AnalysisResultOperationsClientImpl.java
new file mode 100644
index 0000000000000..dc8a7f31b82b3
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AnalysisResultOperationsClientImpl.java
@@ -0,0 +1,298 @@
+// 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.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.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.testbase.fluent.AnalysisResultOperationsClient;
+import com.azure.resourcemanager.testbase.fluent.models.AnalysisResultSingletonResourceInner;
+import com.azure.resourcemanager.testbase.models.AnalysisResultName;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in AnalysisResultOperationsClient. */
+public final class AnalysisResultOperationsClientImpl implements AnalysisResultOperationsClient {
+ private final ClientLogger logger = new ClientLogger(AnalysisResultOperationsClientImpl.class);
+
+ /** The proxy service used to perform REST calls. */
+ private final AnalysisResultOperationsService service;
+
+ /** The service client containing this operation class. */
+ private final RestApiForTestBaseImpl client;
+
+ /**
+ * Initializes an instance of AnalysisResultOperationsClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ AnalysisResultOperationsClientImpl(RestApiForTestBaseImpl client) {
+ this.service =
+ RestProxy
+ .create(AnalysisResultOperationsService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for RestApiForTestBaseAnalysisResultOperations to be used by the proxy
+ * service to perform REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "RestApiForTestBaseAn")
+ private interface AnalysisResultOperationsService {
+ @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);
+ }
+
+ /**
+ * 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)
+ 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.
+ */
+ @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.
+ */
+ @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.
+ */
+ @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/AnalysisResultOperationsImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AnalysisResultOperationsImpl.java
new file mode 100644
index 0000000000000..08865d34e1fad
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AnalysisResultOperationsImpl.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.implementation;
+
+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.AnalysisResultOperationsClient;
+import com.azure.resourcemanager.testbase.fluent.models.AnalysisResultSingletonResourceInner;
+import com.azure.resourcemanager.testbase.models.AnalysisResultName;
+import com.azure.resourcemanager.testbase.models.AnalysisResultOperations;
+import com.azure.resourcemanager.testbase.models.AnalysisResultSingletonResource;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
+public final class AnalysisResultOperationsImpl implements AnalysisResultOperations {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(AnalysisResultOperationsImpl.class);
+
+ private final AnalysisResultOperationsClient innerClient;
+
+ private final com.azure.resourcemanager.testbase.TestbaseManager serviceManager;
+
+ public AnalysisResultOperationsImpl(
+ AnalysisResultOperationsClient innerClient, com.azure.resourcemanager.testbase.TestbaseManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ 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 AnalysisResultOperationsClient 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/AnalysisResultSingletonResourceImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AnalysisResultSingletonResourceImpl.java
new file mode 100644
index 0000000000000..6fe32e374b29e
--- /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 0000000000000..032c8de9d6398
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AnalysisResultsClientImpl.java
@@ -0,0 +1,338 @@
+// 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.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.AnalysisResultListResult;
+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 {
+ private final ClientLogger logger = new ClientLogger(AnalysisResultsClientImpl.class);
+
+ /** The proxy service used to perform REST calls. */
+ private final AnalysisResultsService service;
+
+ /** The service client containing this operation class. */
+ private final RestApiForTestBaseImpl client;
+
+ /**
+ * Initializes an instance of AnalysisResultsClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ AnalysisResultsClientImpl(RestApiForTestBaseImpl client) {
+ this.service =
+ RestProxy.create(AnalysisResultsService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for RestApiForTestBaseAnalysisResults to be used by the proxy service to
+ * perform REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "RestApiForTestBaseAn")
+ 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);
+ }
+
+ /**
+ * 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.
+ */
+ @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.
+ */
+ @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.
+ */
+ @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.
+ */
+ @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.
+ */
+ @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.
+ */
+ @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));
+ }
+}
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 0000000000000..494095611e42b
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AnalysisResultsImpl.java
@@ -0,0 +1,64 @@
+// 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.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.AnalysisResultSingletonResource;
+import com.azure.resourcemanager.testbase.models.AnalysisResultType;
+import com.azure.resourcemanager.testbase.models.AnalysisResults;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
+public final class AnalysisResultsImpl implements AnalysisResults {
+ @JsonIgnore private 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()));
+ }
+
+ 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/AvailableOSResourceImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AvailableOSResourceImpl.java
new file mode 100644
index 0000000000000..77a8d0f1d9ab8
--- /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 0000000000000..2863a695dd9bd
--- /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/DownloadUrlResponseImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/DownloadUrlResponseImpl.java
new file mode 100644
index 0000000000000..800364396d62a
--- /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/FavoriteProcessClientImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/FavoriteProcessClientImpl.java
new file mode 100644
index 0000000000000..e15d24eb79e3f
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/FavoriteProcessClientImpl.java
@@ -0,0 +1,755 @@
+// 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.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.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.testbase.fluent.FavoriteProcessClient;
+import com.azure.resourcemanager.testbase.fluent.models.FavoriteProcessResourceInner;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in FavoriteProcessClient. */
+public final class FavoriteProcessClientImpl implements FavoriteProcessClient {
+ private final ClientLogger logger = new ClientLogger(FavoriteProcessClientImpl.class);
+
+ /** The proxy service used to perform REST calls. */
+ private final FavoriteProcessService service;
+
+ /** The service client containing this operation class. */
+ private final RestApiForTestBaseImpl client;
+
+ /**
+ * Initializes an instance of FavoriteProcessClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ FavoriteProcessClientImpl(RestApiForTestBaseImpl client) {
+ this.service =
+ RestProxy.create(FavoriteProcessService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for RestApiForTestBaseFavoriteProcess to be used by the proxy service to
+ * perform REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "RestApiForTestBaseFa")
+ private interface FavoriteProcessService {
+ @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);
+ }
+
+ /**
+ * 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 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)
+ private Mono> createWithResponseAsync(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String favoriteProcessResourceName,
+ FavoriteProcessResourceInner 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 (packageName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter packageName is required and cannot be null."));
+ }
+ if (favoriteProcessResourceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter favoriteProcessResourceName 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,
+ packageName,
+ favoriteProcessResourceName,
+ this.client.getApiVersion(),
+ parameters,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * 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 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)
+ private Mono> createWithResponseAsync(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String favoriteProcessResourceName,
+ FavoriteProcessResourceInner 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 (packageName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter packageName is required and cannot be null."));
+ }
+ if (favoriteProcessResourceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter favoriteProcessResourceName 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,
+ packageName,
+ favoriteProcessResourceName,
+ this.client.getApiVersion(),
+ parameters,
+ accept,
+ 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 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)
+ private Mono createAsync(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String favoriteProcessResourceName,
+ FavoriteProcessResourceInner parameters) {
+ return createWithResponseAsync(
+ resourceGroupName, testBaseAccountName, packageName, favoriteProcessResourceName, parameters)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * 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 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)
+ public FavoriteProcessResourceInner create(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String favoriteProcessResourceName,
+ FavoriteProcessResourceInner parameters) {
+ return createAsync(resourceGroupName, testBaseAccountName, packageName, favoriteProcessResourceName, parameters)
+ .block();
+ }
+
+ /**
+ * 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 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)
+ public Response createWithResponse(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String favoriteProcessResourceName,
+ FavoriteProcessResourceInner parameters,
+ Context context) {
+ return createWithResponseAsync(
+ resourceGroupName, testBaseAccountName, packageName, favoriteProcessResourceName, parameters, context)
+ .block();
+ }
+
+ /**
+ * 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 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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> deleteWithResponseAsync(
+ String resourceGroupName, String testBaseAccountName, String packageName, String favoriteProcessResourceName) {
+ 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 (favoriteProcessResourceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter favoriteProcessResourceName 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,
+ packageName,
+ favoriteProcessResourceName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * 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 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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> deleteWithResponseAsync(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String favoriteProcessResourceName,
+ 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 (favoriteProcessResourceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter favoriteProcessResourceName 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,
+ packageName,
+ favoriteProcessResourceName,
+ this.client.getApiVersion(),
+ accept,
+ 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 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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono deleteAsync(
+ String resourceGroupName, String testBaseAccountName, String packageName, String favoriteProcessResourceName) {
+ return deleteWithResponseAsync(resourceGroupName, testBaseAccountName, packageName, favoriteProcessResourceName)
+ .flatMap((Response res) -> Mono.empty());
+ }
+
+ /**
+ * 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 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 packageName, String favoriteProcessResourceName) {
+ deleteAsync(resourceGroupName, testBaseAccountName, packageName, favoriteProcessResourceName).block();
+ }
+
+ /**
+ * 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 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 response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response deleteWithResponse(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String favoriteProcessResourceName,
+ Context context) {
+ return deleteWithResponseAsync(
+ resourceGroupName, testBaseAccountName, packageName, favoriteProcessResourceName, context)
+ .block();
+ }
+
+ /**
+ * 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 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)
+ private Mono> getWithResponseAsync(
+ String resourceGroupName, String testBaseAccountName, String packageName, String favoriteProcessResourceName) {
+ 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 (favoriteProcessResourceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter favoriteProcessResourceName 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,
+ favoriteProcessResourceName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * 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 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)
+ private Mono> getWithResponseAsync(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String favoriteProcessResourceName,
+ 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 (favoriteProcessResourceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter favoriteProcessResourceName 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,
+ favoriteProcessResourceName,
+ this.client.getApiVersion(),
+ accept,
+ 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 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)
+ private Mono getAsync(
+ String resourceGroupName, String testBaseAccountName, String packageName, String favoriteProcessResourceName) {
+ return getWithResponseAsync(resourceGroupName, testBaseAccountName, packageName, favoriteProcessResourceName)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * 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 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)
+ public FavoriteProcessResourceInner get(
+ String resourceGroupName, String testBaseAccountName, String packageName, String favoriteProcessResourceName) {
+ return getAsync(resourceGroupName, testBaseAccountName, packageName, favoriteProcessResourceName).block();
+ }
+
+ /**
+ * 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 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)
+ public Response getWithResponse(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String favoriteProcessResourceName,
+ Context context) {
+ return getWithResponseAsync(
+ resourceGroupName, testBaseAccountName, packageName, favoriteProcessResourceName, context)
+ .block();
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/FavoriteProcessImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/FavoriteProcessImpl.java
new file mode 100644
index 0000000000000..fe24e2830775d
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/FavoriteProcessImpl.java
@@ -0,0 +1,248 @@
+// 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.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.FavoriteProcessClient;
+import com.azure.resourcemanager.testbase.fluent.models.FavoriteProcessResourceInner;
+import com.azure.resourcemanager.testbase.models.FavoriteProcess;
+import com.azure.resourcemanager.testbase.models.FavoriteProcessResource;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
+public final class FavoriteProcessImpl implements FavoriteProcess {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(FavoriteProcessImpl.class);
+
+ private final FavoriteProcessClient innerClient;
+
+ private final com.azure.resourcemanager.testbase.TestbaseManager serviceManager;
+
+ public FavoriteProcessImpl(
+ FavoriteProcessClient innerClient, com.azure.resourcemanager.testbase.TestbaseManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public void delete(
+ String resourceGroupName, String testBaseAccountName, String packageName, String favoriteProcessResourceName) {
+ this.serviceClient().delete(resourceGroupName, testBaseAccountName, packageName, favoriteProcessResourceName);
+ }
+
+ public Response deleteWithResponse(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String favoriteProcessResourceName,
+ Context context) {
+ return this
+ .serviceClient()
+ .deleteWithResponse(
+ resourceGroupName, testBaseAccountName, packageName, favoriteProcessResourceName, context);
+ }
+
+ public FavoriteProcessResource get(
+ String resourceGroupName, String testBaseAccountName, String packageName, String favoriteProcessResourceName) {
+ FavoriteProcessResourceInner inner =
+ this.serviceClient().get(resourceGroupName, testBaseAccountName, packageName, favoriteProcessResourceName);
+ if (inner != null) {
+ return new FavoriteProcessResourceImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response getWithResponse(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String favoriteProcessResourceName,
+ Context context) {
+ Response inner =
+ this
+ .serviceClient()
+ .getWithResponse(
+ resourceGroupName, testBaseAccountName, packageName, favoriteProcessResourceName, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new FavoriteProcessResourceImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ public FavoriteProcessResource 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 packageName = Utils.getValueFromIdByName(id, "packages");
+ if (packageName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String.format("The resource ID '%s' is not valid. Missing path segment 'packages'.", id)));
+ }
+ String favoriteProcessResourceName = Utils.getValueFromIdByName(id, "favoriteProcesses");
+ if (favoriteProcessResourceName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'favoriteProcesses'.", id)));
+ }
+ return this
+ .getWithResponse(
+ resourceGroupName, testBaseAccountName, packageName, favoriteProcessResourceName, 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 packageName = Utils.getValueFromIdByName(id, "packages");
+ if (packageName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String.format("The resource ID '%s' is not valid. Missing path segment 'packages'.", id)));
+ }
+ String favoriteProcessResourceName = Utils.getValueFromIdByName(id, "favoriteProcesses");
+ if (favoriteProcessResourceName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'favoriteProcesses'.", id)));
+ }
+ return this
+ .getWithResponse(resourceGroupName, testBaseAccountName, packageName, favoriteProcessResourceName, 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 packageName = Utils.getValueFromIdByName(id, "packages");
+ if (packageName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String.format("The resource ID '%s' is not valid. Missing path segment 'packages'.", id)));
+ }
+ String favoriteProcessResourceName = Utils.getValueFromIdByName(id, "favoriteProcesses");
+ if (favoriteProcessResourceName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'favoriteProcesses'.", id)));
+ }
+ this
+ .deleteWithResponse(
+ resourceGroupName, testBaseAccountName, packageName, favoriteProcessResourceName, Context.NONE)
+ .getValue();
+ }
+
+ public Response 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 packageName = Utils.getValueFromIdByName(id, "packages");
+ if (packageName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String.format("The resource ID '%s' is not valid. Missing path segment 'packages'.", id)));
+ }
+ String favoriteProcessResourceName = Utils.getValueFromIdByName(id, "favoriteProcesses");
+ if (favoriteProcessResourceName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'favoriteProcesses'.", id)));
+ }
+ return this
+ .deleteWithResponse(
+ resourceGroupName, testBaseAccountName, packageName, favoriteProcessResourceName, context);
+ }
+
+ private FavoriteProcessClient serviceClient() {
+ return this.innerClient;
+ }
+
+ private com.azure.resourcemanager.testbase.TestbaseManager manager() {
+ return this.serviceManager;
+ }
+
+ public FavoriteProcessResourceImpl define(String name) {
+ return new FavoriteProcessResourceImpl(name, this.manager());
+ }
+}
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 0000000000000..9d774ae62a5bf
--- /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()
+ .getFavoriteProcess()
+ .createWithResponse(
+ resourceGroupName,
+ testBaseAccountName,
+ packageName,
+ favoriteProcessResourceName,
+ this.innerModel(),
+ Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public FavoriteProcessResource create(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getFavoriteProcess()
+ .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()
+ .getFavoriteProcess()
+ .getWithResponse(
+ resourceGroupName, testBaseAccountName, packageName, favoriteProcessResourceName, Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public FavoriteProcessResource refresh(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getFavoriteProcess()
+ .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 0000000000000..9acb298c13c01
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/FavoriteProcessesClientImpl.java
@@ -0,0 +1,358 @@
+// 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.core.util.logging.ClientLogger;
+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 {
+ private final ClientLogger logger = new ClientLogger(FavoriteProcessesClientImpl.class);
+
+ /** The proxy service used to perform REST calls. */
+ private final FavoriteProcessesService service;
+
+ /** The service client containing this operation class. */
+ private final RestApiForTestBaseImpl client;
+
+ /**
+ * Initializes an instance of FavoriteProcessesClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ FavoriteProcessesClientImpl(RestApiForTestBaseImpl client) {
+ this.service =
+ RestProxy.create(FavoriteProcessesService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for RestApiForTestBaseFavoriteProcesses to be used by the proxy service
+ * to perform REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "RestApiForTestBaseFa")
+ 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"})
+ @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.
+ */
+ @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.
+ */
+ @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.
+ */
+ @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.
+ */
+ @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.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(
+ String resourceGroupName, String testBaseAccountName, String packageName) {
+ return new PagedIterable<>(listAsync(resourceGroupName, testBaseAccountName, 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 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.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(
+ String resourceGroupName, String testBaseAccountName, String packageName, Context context) {
+ return new PagedIterable<>(listAsync(resourceGroupName, testBaseAccountName, packageName, context));
+ }
+
+ /**
+ * 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 favorite processes for a package.
+ */
+ @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 favorite processes for a package.
+ */
+ @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/FavoriteProcessesImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/FavoriteProcessesImpl.java
new file mode 100644
index 0000000000000..883ac070d355b
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/FavoriteProcessesImpl.java
@@ -0,0 +1,50 @@
+// 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.util.Context;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.testbase.fluent.FavoriteProcessesClient;
+import com.azure.resourcemanager.testbase.fluent.models.FavoriteProcessResourceInner;
+import com.azure.resourcemanager.testbase.models.FavoriteProcessResource;
+import com.azure.resourcemanager.testbase.models.FavoriteProcesses;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
+public final class FavoriteProcessesImpl implements FavoriteProcesses {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(FavoriteProcessesImpl.class);
+
+ private final FavoriteProcessesClient innerClient;
+
+ private final com.azure.resourcemanager.testbase.TestbaseManager serviceManager;
+
+ public FavoriteProcessesImpl(
+ FavoriteProcessesClient innerClient, com.azure.resourcemanager.testbase.TestbaseManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public PagedIterable list(
+ String resourceGroupName, String testBaseAccountName, String packageName) {
+ PagedIterable inner =
+ this.serviceClient().list(resourceGroupName, testBaseAccountName, packageName);
+ return Utils.mapPage(inner, inner1 -> new FavoriteProcessResourceImpl(inner1, this.manager()));
+ }
+
+ public PagedIterable list(
+ String resourceGroupName, String testBaseAccountName, String packageName, Context context) {
+ PagedIterable inner =
+ this.serviceClient().list(resourceGroupName, testBaseAccountName, packageName, context);
+ return Utils.mapPage(inner, inner1 -> new FavoriteProcessResourceImpl(inner1, this.manager()));
+ }
+
+ private FavoriteProcessesClient 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/FileUploadUrlResponseImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/FileUploadUrlResponseImpl.java
new file mode 100644
index 0000000000000..16ad90e2dc786
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/FileUploadUrlResponseImpl.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.implementation;
+
+import com.azure.resourcemanager.testbase.fluent.models.FileUploadUrlResponseInner;
+import com.azure.resourcemanager.testbase.models.FileUploadUrlResponse;
+
+public final class FileUploadUrlResponseImpl implements FileUploadUrlResponse {
+ private FileUploadUrlResponseInner innerObject;
+
+ private final com.azure.resourcemanager.testbase.TestbaseManager serviceManager;
+
+ FileUploadUrlResponseImpl(
+ FileUploadUrlResponseInner innerObject, com.azure.resourcemanager.testbase.TestbaseManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ }
+
+ public String uploadUrl() {
+ return this.innerModel().uploadUrl();
+ }
+
+ public String blobPath() {
+ return this.innerModel().blobPath();
+ }
+
+ public FileUploadUrlResponseInner 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/FlightingRingResourceImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/FlightingRingResourceImpl.java
new file mode 100644
index 0000000000000..5a8f32f4832aa
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/FlightingRingResourceImpl.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.implementation;
+
+import com.azure.core.management.SystemData;
+import com.azure.resourcemanager.testbase.fluent.models.FlightingRingResourceInner;
+import com.azure.resourcemanager.testbase.models.FlightingRingResource;
+
+public final class FlightingRingResourceImpl implements FlightingRingResource {
+ private FlightingRingResourceInner innerObject;
+
+ private final com.azure.resourcemanager.testbase.TestbaseManager serviceManager;
+
+ FlightingRingResourceImpl(
+ FlightingRingResourceInner 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 actualFlightingRingName() {
+ return this.innerModel().actualFlightingRingName();
+ }
+
+ public FlightingRingResourceInner 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/OSUpdateOperationsClientImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/OSUpdateOperationsClientImpl.java
new file mode 100644
index 0000000000000..a400050396c92
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/OSUpdateOperationsClientImpl.java
@@ -0,0 +1,264 @@
+// 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.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.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.testbase.fluent.OSUpdateOperationsClient;
+import com.azure.resourcemanager.testbase.fluent.models.OSUpdateResourceInner;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in OSUpdateOperationsClient. */
+public final class OSUpdateOperationsClientImpl implements OSUpdateOperationsClient {
+ private final ClientLogger logger = new ClientLogger(OSUpdateOperationsClientImpl.class);
+
+ /** The proxy service used to perform REST calls. */
+ private final OSUpdateOperationsService service;
+
+ /** The service client containing this operation class. */
+ private final RestApiForTestBaseImpl client;
+
+ /**
+ * Initializes an instance of OSUpdateOperationsClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ OSUpdateOperationsClientImpl(RestApiForTestBaseImpl client) {
+ this.service =
+ RestProxy.create(OSUpdateOperationsService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for RestApiForTestBaseOSUpdateOperations to be used by the proxy service
+ * to perform REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "RestApiForTestBaseOS")
+ private interface OSUpdateOperationsService {
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase"
+ + "/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/osUpdates/{osUpdateResourceName}")
+ @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("osUpdateResourceName") String osUpdateResourceName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ 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 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)
+ private Mono> getWithResponseAsync(
+ String resourceGroupName, String testBaseAccountName, String packageName, String osUpdateResourceName) {
+ 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 (osUpdateResourceName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter osUpdateResourceName 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,
+ osUpdateResourceName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * 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 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)
+ private Mono> getWithResponseAsync(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String osUpdateResourceName,
+ 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 (osUpdateResourceName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter osUpdateResourceName 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,
+ osUpdateResourceName,
+ this.client.getApiVersion(),
+ accept,
+ 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 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)
+ private Mono getAsync(
+ String resourceGroupName, String testBaseAccountName, String packageName, String osUpdateResourceName) {
+ return getWithResponseAsync(resourceGroupName, testBaseAccountName, packageName, osUpdateResourceName)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * 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 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)
+ public OSUpdateResourceInner get(
+ String resourceGroupName, String testBaseAccountName, String packageName, String osUpdateResourceName) {
+ return getAsync(resourceGroupName, testBaseAccountName, packageName, osUpdateResourceName).block();
+ }
+
+ /**
+ * 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 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)
+ public Response getWithResponse(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String osUpdateResourceName,
+ Context context) {
+ return getWithResponseAsync(resourceGroupName, testBaseAccountName, packageName, osUpdateResourceName, context)
+ .block();
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/OSUpdateOperationsImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/OSUpdateOperationsImpl.java
new file mode 100644
index 0000000000000..6a6ca4cdeda5e
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/OSUpdateOperationsImpl.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.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.OSUpdateOperationsClient;
+import com.azure.resourcemanager.testbase.fluent.models.OSUpdateResourceInner;
+import com.azure.resourcemanager.testbase.models.OSUpdateOperations;
+import com.azure.resourcemanager.testbase.models.OSUpdateResource;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
+public final class OSUpdateOperationsImpl implements OSUpdateOperations {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(OSUpdateOperationsImpl.class);
+
+ private final OSUpdateOperationsClient innerClient;
+
+ private final com.azure.resourcemanager.testbase.TestbaseManager serviceManager;
+
+ public OSUpdateOperationsImpl(
+ OSUpdateOperationsClient innerClient, com.azure.resourcemanager.testbase.TestbaseManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public OSUpdateResource get(
+ String resourceGroupName, String testBaseAccountName, String packageName, String osUpdateResourceName) {
+ OSUpdateResourceInner inner =
+ this.serviceClient().get(resourceGroupName, testBaseAccountName, packageName, osUpdateResourceName);
+ if (inner != null) {
+ return new OSUpdateResourceImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response getWithResponse(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String osUpdateResourceName,
+ Context context) {
+ Response inner =
+ this
+ .serviceClient()
+ .getWithResponse(resourceGroupName, testBaseAccountName, packageName, osUpdateResourceName, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new OSUpdateResourceImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ private OSUpdateOperationsClient 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/OSUpdateResourceImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/OSUpdateResourceImpl.java
new file mode 100644
index 0000000000000..ec03fc44cbb5b
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/OSUpdateResourceImpl.java
@@ -0,0 +1,75 @@
+// 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.OSUpdateResourceInner;
+import com.azure.resourcemanager.testbase.models.OSUpdateResource;
+import com.azure.resourcemanager.testbase.models.Type;
+import java.time.OffsetDateTime;
+
+public final class OSUpdateResourceImpl implements OSUpdateResource {
+ private OSUpdateResourceInner innerObject;
+
+ private final com.azure.resourcemanager.testbase.TestbaseManager serviceManager;
+
+ OSUpdateResourceImpl(
+ OSUpdateResourceInner 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 osName() {
+ return this.innerModel().osName();
+ }
+
+ public String release() {
+ return this.innerModel().release();
+ }
+
+ public String flightingRing() {
+ return this.innerModel().flightingRing();
+ }
+
+ public String buildVersion() {
+ return this.innerModel().buildVersion();
+ }
+
+ public String buildRevision() {
+ return this.innerModel().buildRevision();
+ }
+
+ public Type typePropertiesType() {
+ return this.innerModel().typePropertiesType();
+ }
+
+ public OffsetDateTime releaseVersionDate() {
+ return this.innerModel().releaseVersionDate();
+ }
+
+ public OSUpdateResourceInner 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/OSUpdatesClientImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/OSUpdatesClientImpl.java
new file mode 100644
index 0000000000000..2ef8b379ac296
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/OSUpdatesClientImpl.java
@@ -0,0 +1,386 @@
+// 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.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.testbase.fluent.OSUpdatesClient;
+import com.azure.resourcemanager.testbase.fluent.models.OSUpdateResourceInner;
+import com.azure.resourcemanager.testbase.models.OSUpdateListResult;
+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 OSUpdatesClient. */
+public final class OSUpdatesClientImpl implements OSUpdatesClient {
+ private final ClientLogger logger = new ClientLogger(OSUpdatesClientImpl.class);
+
+ /** The proxy service used to perform REST calls. */
+ private final OSUpdatesService service;
+
+ /** The service client containing this operation class. */
+ private final RestApiForTestBaseImpl client;
+
+ /**
+ * Initializes an instance of OSUpdatesClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ OSUpdatesClientImpl(RestApiForTestBaseImpl client) {
+ this.service =
+ RestProxy.create(OSUpdatesService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for RestApiForTestBaseOSUpdates to be used by the proxy service to
+ * perform REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "RestApiForTestBaseOS")
+ private interface OSUpdatesService {
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase"
+ + "/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/osUpdates")
+ @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("osUpdateType") OsUpdateType osUpdateType,
+ @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 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 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.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(
+ String resourceGroupName, String testBaseAccountName, String packageName, 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 (packageName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter packageName 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,
+ packageName,
+ 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 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 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.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ 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 (packageName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter packageName 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,
+ packageName,
+ osUpdateType,
+ this.client.getApiVersion(),
+ accept,
+ context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * 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 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.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(
+ String resourceGroupName, String testBaseAccountName, String packageName, OsUpdateType osUpdateType) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(resourceGroupName, testBaseAccountName, packageName, osUpdateType),
+ nextLink -> listNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * 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 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.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ OsUpdateType osUpdateType,
+ Context context) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(resourceGroupName, testBaseAccountName, packageName, osUpdateType, context),
+ nextLink -> listNextSinglePageAsync(nextLink, context));
+ }
+
+ /**
+ * 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 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.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(
+ String resourceGroupName, String testBaseAccountName, String packageName, OsUpdateType osUpdateType) {
+ return new PagedIterable<>(listAsync(resourceGroupName, testBaseAccountName, packageName, 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 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.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ OsUpdateType osUpdateType,
+ Context context) {
+ return new PagedIterable<>(
+ listAsync(resourceGroupName, testBaseAccountName, packageName, osUpdateType, context));
+ }
+
+ /**
+ * 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 OS Updates.
+ */
+ @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 OS Updates.
+ */
+ @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/OSUpdatesImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/OSUpdatesImpl.java
new file mode 100644
index 0000000000000..4458dffc020fc
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/OSUpdatesImpl.java
@@ -0,0 +1,55 @@
+// 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.util.Context;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.testbase.fluent.OSUpdatesClient;
+import com.azure.resourcemanager.testbase.fluent.models.OSUpdateResourceInner;
+import com.azure.resourcemanager.testbase.models.OSUpdateResource;
+import com.azure.resourcemanager.testbase.models.OSUpdates;
+import com.azure.resourcemanager.testbase.models.OsUpdateType;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
+public final class OSUpdatesImpl implements OSUpdates {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(OSUpdatesImpl.class);
+
+ private final OSUpdatesClient innerClient;
+
+ private final com.azure.resourcemanager.testbase.TestbaseManager serviceManager;
+
+ public OSUpdatesImpl(
+ OSUpdatesClient innerClient, com.azure.resourcemanager.testbase.TestbaseManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public PagedIterable list(
+ String resourceGroupName, String testBaseAccountName, String packageName, OsUpdateType osUpdateType) {
+ PagedIterable inner =
+ this.serviceClient().list(resourceGroupName, testBaseAccountName, packageName, osUpdateType);
+ return Utils.mapPage(inner, inner1 -> new OSUpdateResourceImpl(inner1, this.manager()));
+ }
+
+ public PagedIterable list(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ OsUpdateType osUpdateType,
+ Context context) {
+ PagedIterable inner =
+ this.serviceClient().list(resourceGroupName, testBaseAccountName, packageName, osUpdateType, context);
+ return Utils.mapPage(inner, inner1 -> new OSUpdateResourceImpl(inner1, this.manager()));
+ }
+
+ private OSUpdatesClient 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/OperationImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/OperationImpl.java
new file mode 100644
index 0000000000000..caa9e5a2808d7
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/OperationImpl.java
@@ -0,0 +1,48 @@
+// 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.OperationInner;
+import com.azure.resourcemanager.testbase.models.Operation;
+import com.azure.resourcemanager.testbase.models.OperationDisplay;
+
+public final class OperationImpl implements Operation {
+ private OperationInner innerObject;
+
+ private final com.azure.resourcemanager.testbase.TestbaseManager serviceManager;
+
+ OperationImpl(OperationInner innerObject, com.azure.resourcemanager.testbase.TestbaseManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ }
+
+ public String name() {
+ return this.innerModel().name();
+ }
+
+ public Boolean isDataAction() {
+ return this.innerModel().isDataAction();
+ }
+
+ public String origin() {
+ return this.innerModel().origin();
+ }
+
+ public OperationDisplay display() {
+ return this.innerModel().display();
+ }
+
+ public Object properties() {
+ return this.innerModel().properties();
+ }
+
+ public OperationInner 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/OperationsClientImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/OperationsClientImpl.java
new file mode 100644
index 0000000000000..14556a7b0f904
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/OperationsClientImpl.java
@@ -0,0 +1,269 @@
+// 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.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.testbase.fluent.OperationsClient;
+import com.azure.resourcemanager.testbase.fluent.models.OperationInner;
+import com.azure.resourcemanager.testbase.models.OperationListResult;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in OperationsClient. */
+public final class OperationsClientImpl implements OperationsClient {
+ private final ClientLogger logger = new ClientLogger(OperationsClientImpl.class);
+
+ /** The proxy service used to perform REST calls. */
+ private final OperationsService service;
+
+ /** The service client containing this operation class. */
+ private final RestApiForTestBaseImpl client;
+
+ /**
+ * Initializes an instance of OperationsClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ OperationsClientImpl(RestApiForTestBaseImpl client) {
+ this.service =
+ RestProxy.create(OperationsService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for RestApiForTestBaseOperations to be used by the proxy service to
+ * perform REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "RestApiForTestBaseOp")
+ private interface OperationsService {
+ @Headers({"Content-Type: application/json"})
+ @Get("/providers/Microsoft.TestBase/operations")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> list(
+ @HostParam("$host") String endpoint,
+ @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 of the available REST API operations of the Microsoft.TestBase provider.
+ *
+ * @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 operations supported by the resource provider.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync() {
+ 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.list(this.client.getEndpoint(), 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 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 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.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(Context context) {
+ 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
+ .list(this.client.getEndpoint(), this.client.getApiVersion(), accept, context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * Lists all of the available REST API operations of the Microsoft.TestBase provider.
+ *
+ * @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 operations supported by the resource provider.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync() {
+ return new PagedFlux<>(() -> listSinglePageAsync(), nextLink -> listNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * 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 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.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(Context context) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(context), nextLink -> listNextSinglePageAsync(nextLink, context));
+ }
+
+ /**
+ * Lists all of the available REST API operations of the Microsoft.TestBase provider.
+ *
+ * @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 operations supported by the resource provider.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list() {
+ return new PagedIterable<>(listAsync());
+ }
+
+ /**
+ * 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 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.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(Context context) {
+ return new PagedIterable<>(listAsync(context));
+ }
+
+ /**
+ * 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 operations supported by the resource provider.
+ */
+ @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 operations supported by the resource provider.
+ */
+ @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/OperationsImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/OperationsImpl.java
new file mode 100644
index 0000000000000..bb8fd3cfe7d9e
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/OperationsImpl.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.implementation;
+
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.testbase.fluent.OperationsClient;
+import com.azure.resourcemanager.testbase.fluent.models.OperationInner;
+import com.azure.resourcemanager.testbase.models.Operation;
+import com.azure.resourcemanager.testbase.models.Operations;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
+public final class OperationsImpl implements Operations {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(OperationsImpl.class);
+
+ private final OperationsClient innerClient;
+
+ private final com.azure.resourcemanager.testbase.TestbaseManager serviceManager;
+
+ public OperationsImpl(
+ OperationsClient innerClient, com.azure.resourcemanager.testbase.TestbaseManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public PagedIterable list() {
+ PagedIterable inner = this.serviceClient().list();
+ return Utils.mapPage(inner, inner1 -> new OperationImpl(inner1, this.manager()));
+ }
+
+ public PagedIterable list(Context context) {
+ PagedIterable inner = this.serviceClient().list(context);
+ return Utils.mapPage(inner, inner1 -> new OperationImpl(inner1, this.manager()));
+ }
+
+ private OperationsClient 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/PackageOperationsClientImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/PackageOperationsClientImpl.java
new file mode 100644
index 0000000000000..c0a9cb3221fa6
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/PackageOperationsClientImpl.java
@@ -0,0 +1,1439 @@
+// 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.Patch;
+import com.azure.core.annotation.PathParam;
+import com.azure.core.annotation.Post;
+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.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.logging.ClientLogger;
+import com.azure.core.util.polling.PollerFlux;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.testbase.fluent.PackageOperationsClient;
+import com.azure.resourcemanager.testbase.fluent.models.PackageResourceInner;
+import com.azure.resourcemanager.testbase.models.PackageUpdateParameters;
+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 PackageOperationsClient. */
+public final class PackageOperationsClientImpl implements PackageOperationsClient {
+ private final ClientLogger logger = new ClientLogger(PackageOperationsClientImpl.class);
+
+ /** The proxy service used to perform REST calls. */
+ private final PackageOperationsService service;
+
+ /** The service client containing this operation class. */
+ private final RestApiForTestBaseImpl client;
+
+ /**
+ * Initializes an instance of PackageOperationsClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ PackageOperationsClientImpl(RestApiForTestBaseImpl client) {
+ this.service =
+ RestProxy.create(PackageOperationsService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for RestApiForTestBasePackageOperations to be used by the proxy service
+ * to perform REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "RestApiForTestBasePa")
+ private interface PackageOperationsService {
+ @Headers({"Content-Type: application/json"})
+ @Put(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase"
+ + "/testBaseAccounts/{testBaseAccountName}/packages/{packageName}")
+ @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("packageName") String packageName,
+ @QueryParam("api-version") String apiVersion,
+ @BodyParam("application/json") PackageResourceInner parameters,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Patch(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase"
+ + "/testBaseAccounts/{testBaseAccountName}/packages/{packageName}")
+ @ExpectedResponses({200, 201, 202})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> update(
+ @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,
+ @BodyParam("application/json") PackageUpdateParameters parameters,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Delete(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase"
+ + "/testBaseAccounts/{testBaseAccountName}/packages/{packageName}")
+ @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("packageName") String packageName,
+ @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}")
+ @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,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Post(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase"
+ + "/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/hardDelete")
+ @ExpectedResponses({200, 202, 204})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> hardDelete(
+ @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);
+ }
+
+ /**
+ * 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 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)
+ private Mono>> createWithResponseAsync(
+ String resourceGroupName, String testBaseAccountName, String packageName, PackageResourceInner 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 (packageName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter packageName 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,
+ packageName,
+ this.client.getApiVersion(),
+ parameters,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * 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 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)
+ private Mono>> createWithResponseAsync(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ PackageResourceInner 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 (packageName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter packageName 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,
+ packageName,
+ this.client.getApiVersion(),
+ parameters,
+ accept,
+ 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 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)
+ private PollerFlux, PackageResourceInner> beginCreateAsync(
+ String resourceGroupName, String testBaseAccountName, String packageName, PackageResourceInner parameters) {
+ Mono>> mono =
+ createWithResponseAsync(resourceGroupName, testBaseAccountName, packageName, parameters);
+ return this
+ .client
+ .getLroResult(
+ mono,
+ this.client.getHttpPipeline(),
+ PackageResourceInner.class,
+ PackageResourceInner.class,
+ Context.NONE);
+ }
+
+ /**
+ * 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 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)
+ private PollerFlux, PackageResourceInner> beginCreateAsync(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ PackageResourceInner parameters,
+ Context context) {
+ context = this.client.mergeContext(context);
+ Mono>> mono =
+ createWithResponseAsync(resourceGroupName, testBaseAccountName, packageName, parameters, context);
+ return this
+ .client
+ .getLroResult(
+ mono, this.client.getHttpPipeline(), PackageResourceInner.class, PackageResourceInner.class, 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 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)
+ public SyncPoller, PackageResourceInner> beginCreate(
+ String resourceGroupName, String testBaseAccountName, String packageName, PackageResourceInner parameters) {
+ return beginCreateAsync(resourceGroupName, testBaseAccountName, packageName, parameters).getSyncPoller();
+ }
+
+ /**
+ * 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 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)
+ public SyncPoller, PackageResourceInner> beginCreate(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ PackageResourceInner parameters,
+ Context context) {
+ return beginCreateAsync(resourceGroupName, testBaseAccountName, packageName, parameters, context)
+ .getSyncPoller();
+ }
+
+ /**
+ * 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 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)
+ private Mono createAsync(
+ String resourceGroupName, String testBaseAccountName, String packageName, PackageResourceInner parameters) {
+ return beginCreateAsync(resourceGroupName, testBaseAccountName, packageName, parameters)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * 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 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)
+ private Mono createAsync(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ PackageResourceInner parameters,
+ Context context) {
+ return beginCreateAsync(resourceGroupName, testBaseAccountName, packageName, parameters, context)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * 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 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)
+ public PackageResourceInner create(
+ String resourceGroupName, String testBaseAccountName, String packageName, PackageResourceInner parameters) {
+ return createAsync(resourceGroupName, testBaseAccountName, packageName, parameters).block();
+ }
+
+ /**
+ * 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 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)
+ public PackageResourceInner create(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ PackageResourceInner parameters,
+ Context context) {
+ return createAsync(resourceGroupName, testBaseAccountName, packageName, parameters, context).block();
+ }
+
+ /**
+ * 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 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)
+ private Mono>> updateWithResponseAsync(
+ String resourceGroupName, String testBaseAccountName, String packageName, PackageUpdateParameters 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 (packageName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter packageName 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
+ .update(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ packageName,
+ this.client.getApiVersion(),
+ parameters,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * 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 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)
+ private Mono>> updateWithResponseAsync(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ PackageUpdateParameters 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 (packageName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter packageName 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
+ .update(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ packageName,
+ this.client.getApiVersion(),
+ parameters,
+ accept,
+ 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 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)
+ private PollerFlux, PackageResourceInner> beginUpdateAsync(
+ String resourceGroupName, String testBaseAccountName, String packageName, PackageUpdateParameters parameters) {
+ Mono>> mono =
+ updateWithResponseAsync(resourceGroupName, testBaseAccountName, packageName, parameters);
+ return this
+ .client
+ .getLroResult(
+ mono,
+ this.client.getHttpPipeline(),
+ PackageResourceInner.class,
+ PackageResourceInner.class,
+ Context.NONE);
+ }
+
+ /**
+ * 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 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)
+ private PollerFlux, PackageResourceInner> beginUpdateAsync(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ PackageUpdateParameters parameters,
+ Context context) {
+ context = this.client.mergeContext(context);
+ Mono>> mono =
+ updateWithResponseAsync(resourceGroupName, testBaseAccountName, packageName, parameters, context);
+ return this
+ .client
+ .getLroResult(
+ mono, this.client.getHttpPipeline(), PackageResourceInner.class, PackageResourceInner.class, 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 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)
+ public SyncPoller, PackageResourceInner> beginUpdate(
+ String resourceGroupName, String testBaseAccountName, String packageName, PackageUpdateParameters parameters) {
+ return beginUpdateAsync(resourceGroupName, testBaseAccountName, packageName, parameters).getSyncPoller();
+ }
+
+ /**
+ * 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 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)
+ public SyncPoller, PackageResourceInner> beginUpdate(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ PackageUpdateParameters parameters,
+ Context context) {
+ return beginUpdateAsync(resourceGroupName, testBaseAccountName, packageName, parameters, context)
+ .getSyncPoller();
+ }
+
+ /**
+ * 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 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)
+ private Mono updateAsync(
+ String resourceGroupName, String testBaseAccountName, String packageName, PackageUpdateParameters parameters) {
+ return beginUpdateAsync(resourceGroupName, testBaseAccountName, packageName, parameters)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * 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 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)
+ private Mono updateAsync(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ PackageUpdateParameters parameters,
+ Context context) {
+ return beginUpdateAsync(resourceGroupName, testBaseAccountName, packageName, parameters, context)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * 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 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)
+ public PackageResourceInner update(
+ String resourceGroupName, String testBaseAccountName, String packageName, PackageUpdateParameters parameters) {
+ return updateAsync(resourceGroupName, testBaseAccountName, packageName, parameters).block();
+ }
+
+ /**
+ * 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 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)
+ public PackageResourceInner update(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ PackageUpdateParameters parameters,
+ Context context) {
+ return updateAsync(resourceGroupName, testBaseAccountName, packageName, parameters, context).block();
+ }
+
+ /**
+ * 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 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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> deleteWithResponseAsync(
+ 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
+ .delete(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ packageName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * 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 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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> deleteWithResponseAsync(
+ 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
+ .delete(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ packageName,
+ this.client.getApiVersion(),
+ accept,
+ 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 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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private PollerFlux, Void> beginDeleteAsync(
+ String resourceGroupName, String testBaseAccountName, String packageName) {
+ Mono>> mono =
+ deleteWithResponseAsync(resourceGroupName, testBaseAccountName, packageName);
+ return this
+ .client
+ .getLroResult(mono, this.client.getHttpPipeline(), Void.class, Void.class, Context.NONE);
+ }
+
+ /**
+ * 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 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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private PollerFlux, Void> beginDeleteAsync(
+ String resourceGroupName, String testBaseAccountName, String packageName, Context context) {
+ context = this.client.mergeContext(context);
+ Mono>> mono =
+ deleteWithResponseAsync(resourceGroupName, testBaseAccountName, packageName, context);
+ return this
+ .client
+ .getLroResult(mono, this.client.getHttpPipeline(), Void.class, Void.class, 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 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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public SyncPoller, Void> beginDelete(
+ String resourceGroupName, String testBaseAccountName, String packageName) {
+ return beginDeleteAsync(resourceGroupName, testBaseAccountName, packageName).getSyncPoller();
+ }
+
+ /**
+ * 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 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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public SyncPoller, Void> beginDelete(
+ String resourceGroupName, String testBaseAccountName, String packageName, Context context) {
+ return beginDeleteAsync(resourceGroupName, testBaseAccountName, packageName, context).getSyncPoller();
+ }
+
+ /**
+ * 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 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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono deleteAsync(String resourceGroupName, String testBaseAccountName, String packageName) {
+ return beginDeleteAsync(resourceGroupName, testBaseAccountName, packageName)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * 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 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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono deleteAsync(
+ String resourceGroupName, String testBaseAccountName, String packageName, Context context) {
+ return beginDeleteAsync(resourceGroupName, testBaseAccountName, packageName, context)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * 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 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 packageName) {
+ deleteAsync(resourceGroupName, testBaseAccountName, packageName).block();
+ }
+
+ /**
+ * 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 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 packageName, Context context) {
+ deleteAsync(resourceGroupName, testBaseAccountName, packageName, context).block();
+ }
+
+ /**
+ * 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 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)
+ private Mono> getWithResponseAsync(
+ 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
+ .get(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ packageName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * 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 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)
+ private Mono> getWithResponseAsync(
+ 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
+ .get(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ packageName,
+ this.client.getApiVersion(),
+ accept,
+ 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 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)
+ private Mono getAsync(
+ String resourceGroupName, String testBaseAccountName, String packageName) {
+ return getWithResponseAsync(resourceGroupName, testBaseAccountName, packageName)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * 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 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)
+ public PackageResourceInner get(String resourceGroupName, String testBaseAccountName, String packageName) {
+ return getAsync(resourceGroupName, testBaseAccountName, packageName).block();
+ }
+
+ /**
+ * 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 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)
+ public Response getWithResponse(
+ String resourceGroupName, String testBaseAccountName, String packageName, Context context) {
+ return getWithResponseAsync(resourceGroupName, testBaseAccountName, packageName, context).block();
+ }
+
+ /**
+ * 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 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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> hardDeleteWithResponseAsync(
+ 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
+ .hardDelete(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ packageName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * 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 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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> hardDeleteWithResponseAsync(
+ 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
+ .hardDelete(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ packageName,
+ this.client.getApiVersion(),
+ accept,
+ 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 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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private PollerFlux, Void> beginHardDeleteAsync(
+ String resourceGroupName, String testBaseAccountName, String packageName) {
+ Mono>> mono =
+ hardDeleteWithResponseAsync(resourceGroupName, testBaseAccountName, packageName);
+ return this
+ .client
+ .getLroResult(mono, this.client.getHttpPipeline(), Void.class, Void.class, Context.NONE);
+ }
+
+ /**
+ * 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 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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private PollerFlux, Void> beginHardDeleteAsync(
+ String resourceGroupName, String testBaseAccountName, String packageName, Context context) {
+ context = this.client.mergeContext(context);
+ Mono>> mono =
+ hardDeleteWithResponseAsync(resourceGroupName, testBaseAccountName, packageName, context);
+ return this
+ .client
+ .getLroResult(mono, this.client.getHttpPipeline(), Void.class, Void.class, 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 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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public SyncPoller, Void> beginHardDelete(
+ String resourceGroupName, String testBaseAccountName, String packageName) {
+ return beginHardDeleteAsync(resourceGroupName, testBaseAccountName, packageName).getSyncPoller();
+ }
+
+ /**
+ * 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 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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public SyncPoller, Void> beginHardDelete(
+ String resourceGroupName, String testBaseAccountName, String packageName, Context context) {
+ return beginHardDeleteAsync(resourceGroupName, testBaseAccountName, packageName, context).getSyncPoller();
+ }
+
+ /**
+ * 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 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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono hardDeleteAsync(String resourceGroupName, String testBaseAccountName, String packageName) {
+ return beginHardDeleteAsync(resourceGroupName, testBaseAccountName, packageName)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * 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 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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono hardDeleteAsync(
+ String resourceGroupName, String testBaseAccountName, String packageName, Context context) {
+ return beginHardDeleteAsync(resourceGroupName, testBaseAccountName, packageName, context)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * 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 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 hardDelete(String resourceGroupName, String testBaseAccountName, String packageName) {
+ hardDeleteAsync(resourceGroupName, testBaseAccountName, packageName).block();
+ }
+
+ /**
+ * 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 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 hardDelete(String resourceGroupName, String testBaseAccountName, String packageName, Context context) {
+ hardDeleteAsync(resourceGroupName, testBaseAccountName, packageName, context).block();
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/PackageOperationsImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/PackageOperationsImpl.java
new file mode 100644
index 0000000000000..f07cd463f6322
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/PackageOperationsImpl.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.implementation;
+
+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.PackageOperationsClient;
+import com.azure.resourcemanager.testbase.fluent.models.PackageResourceInner;
+import com.azure.resourcemanager.testbase.models.PackageOperations;
+import com.azure.resourcemanager.testbase.models.PackageResource;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
+public final class PackageOperationsImpl implements PackageOperations {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(PackageOperationsImpl.class);
+
+ private final PackageOperationsClient innerClient;
+
+ private final com.azure.resourcemanager.testbase.TestbaseManager serviceManager;
+
+ public PackageOperationsImpl(
+ PackageOperationsClient innerClient, com.azure.resourcemanager.testbase.TestbaseManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public void delete(String resourceGroupName, String testBaseAccountName, String packageName) {
+ this.serviceClient().delete(resourceGroupName, testBaseAccountName, packageName);
+ }
+
+ public void delete(String resourceGroupName, String testBaseAccountName, String packageName, Context context) {
+ this.serviceClient().delete(resourceGroupName, testBaseAccountName, packageName, context);
+ }
+
+ public PackageResource get(String resourceGroupName, String testBaseAccountName, String packageName) {
+ PackageResourceInner inner = this.serviceClient().get(resourceGroupName, testBaseAccountName, packageName);
+ if (inner != null) {
+ return new PackageResourceImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response getWithResponse(
+ String resourceGroupName, String testBaseAccountName, String packageName, Context context) {
+ Response inner =
+ this.serviceClient().getWithResponse(resourceGroupName, testBaseAccountName, packageName, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new PackageResourceImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ public void hardDelete(String resourceGroupName, String testBaseAccountName, String packageName) {
+ this.serviceClient().hardDelete(resourceGroupName, testBaseAccountName, packageName);
+ }
+
+ public void hardDelete(String resourceGroupName, String testBaseAccountName, String packageName, Context context) {
+ this.serviceClient().hardDelete(resourceGroupName, testBaseAccountName, packageName, context);
+ }
+
+ public PackageResource 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 packageName = Utils.getValueFromIdByName(id, "packages");
+ if (packageName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String.format("The resource ID '%s' is not valid. Missing path segment 'packages'.", id)));
+ }
+ return this.getWithResponse(resourceGroupName, testBaseAccountName, packageName, 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 packageName = Utils.getValueFromIdByName(id, "packages");
+ if (packageName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String.format("The resource ID '%s' is not valid. Missing path segment 'packages'.", id)));
+ }
+ return this.getWithResponse(resourceGroupName, testBaseAccountName, packageName, 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 packageName = Utils.getValueFromIdByName(id, "packages");
+ if (packageName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String.format("The resource ID '%s' is not valid. Missing path segment 'packages'.", id)));
+ }
+ this.delete(resourceGroupName, testBaseAccountName, packageName, 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 packageName = Utils.getValueFromIdByName(id, "packages");
+ if (packageName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String.format("The resource ID '%s' is not valid. Missing path segment 'packages'.", id)));
+ }
+ this.delete(resourceGroupName, testBaseAccountName, packageName, context);
+ }
+
+ private PackageOperationsClient serviceClient() {
+ return this.innerClient;
+ }
+
+ private com.azure.resourcemanager.testbase.TestbaseManager manager() {
+ return this.serviceManager;
+ }
+
+ public PackageResourceImpl define(String name) {
+ return new PackageResourceImpl(name, this.manager());
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/PackageResourceImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/PackageResourceImpl.java
new file mode 100644
index 0000000000000..249a66953402f
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/PackageResourceImpl.java
@@ -0,0 +1,322 @@
+// 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.Region;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.testbase.fluent.models.PackageResourceInner;
+import com.azure.resourcemanager.testbase.models.PackageResource;
+import com.azure.resourcemanager.testbase.models.PackageStatus;
+import com.azure.resourcemanager.testbase.models.PackageUpdateParameters;
+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 java.time.OffsetDateTime;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+public final class PackageResourceImpl implements PackageResource, PackageResource.Definition, PackageResource.Update {
+ private PackageResourceInner innerObject;
+
+ private final com.azure.resourcemanager.testbase.TestbaseManager serviceManager;
+
+ public String id() {
+ return this.innerModel().id();
+ }
+
+ public String name() {
+ return this.innerModel().name();
+ }
+
+ public String type() {
+ return this.innerModel().type();
+ }
+
+ public String location() {
+ return this.innerModel().location();
+ }
+
+ public Map tags() {
+ Map inner = this.innerModel().tags();
+ if (inner != null) {
+ return Collections.unmodifiableMap(inner);
+ } else {
+ return Collections.emptyMap();
+ }
+ }
+
+ public SystemData systemData() {
+ return this.innerModel().systemData();
+ }
+
+ public ProvisioningState provisioningState() {
+ return this.innerModel().provisioningState();
+ }
+
+ public String applicationName() {
+ return this.innerModel().applicationName();
+ }
+
+ public String version() {
+ return this.innerModel().version();
+ }
+
+ public List testTypes() {
+ List inner = this.innerModel().testTypes();
+ if (inner != null) {
+ return Collections.unmodifiableList(inner);
+ } else {
+ return Collections.emptyList();
+ }
+ }
+
+ public List targetOSList() {
+ List inner = this.innerModel().targetOSList();
+ if (inner != null) {
+ return Collections.unmodifiableList(inner);
+ } else {
+ return Collections.emptyList();
+ }
+ }
+
+ public PackageStatus packageStatus() {
+ return this.innerModel().packageStatus();
+ }
+
+ public OffsetDateTime lastModifiedTime() {
+ return this.innerModel().lastModifiedTime();
+ }
+
+ public String flightingRing() {
+ return this.innerModel().flightingRing();
+ }
+
+ public Boolean isEnabled() {
+ return this.innerModel().isEnabled();
+ }
+
+ public String blobPath() {
+ return this.innerModel().blobPath();
+ }
+
+ public List validationResults() {
+ List inner = this.innerModel().validationResults();
+ if (inner != null) {
+ return Collections.unmodifiableList(inner);
+ } else {
+ return Collections.emptyList();
+ }
+ }
+
+ public List