scopes = new ArrayList<>();
+ private RetryPolicy retryPolicy;
+ private RetryOptions retryOptions;
+ private Duration defaultPollInterval;
+
+ private Configurable() {
+ }
+
+ /**
+ * Sets the http client.
+ *
+ * @param httpClient the HTTP client.
+ * @return the configurable object itself.
+ */
+ public Configurable withHttpClient(HttpClient httpClient) {
+ this.httpClient = Objects.requireNonNull(httpClient, "'httpClient' cannot be null.");
+ return this;
+ }
+
+ /**
+ * Sets the logging options to the HTTP pipeline.
+ *
+ * @param httpLogOptions the HTTP log options.
+ * @return the configurable object itself.
+ */
+ public Configurable withLogOptions(HttpLogOptions httpLogOptions) {
+ this.httpLogOptions = Objects.requireNonNull(httpLogOptions, "'httpLogOptions' cannot be null.");
+ return this;
+ }
+
+ /**
+ * Adds the pipeline policy to the HTTP pipeline.
+ *
+ * @param policy the HTTP pipeline policy.
+ * @return the configurable object itself.
+ */
+ public Configurable withPolicy(HttpPipelinePolicy policy) {
+ this.policies.add(Objects.requireNonNull(policy, "'policy' cannot be null."));
+ return this;
+ }
+
+ /**
+ * Adds the scope to permission sets.
+ *
+ * @param scope the scope.
+ * @return the configurable object itself.
+ */
+ public Configurable withScope(String scope) {
+ this.scopes.add(Objects.requireNonNull(scope, "'scope' cannot be null."));
+ return this;
+ }
+
+ /**
+ * Sets the retry policy to the HTTP pipeline.
+ *
+ * @param retryPolicy the HTTP pipeline retry policy.
+ * @return the configurable object itself.
+ */
+ public Configurable withRetryPolicy(RetryPolicy retryPolicy) {
+ this.retryPolicy = Objects.requireNonNull(retryPolicy, "'retryPolicy' cannot be null.");
+ return this;
+ }
+
+ /**
+ * Sets the retry options for the HTTP pipeline retry policy.
+ *
+ * This setting has no effect, if retry policy is set via {@link #withRetryPolicy(RetryPolicy)}.
+ *
+ * @param retryOptions the retry options for the HTTP pipeline retry policy.
+ * @return the configurable object itself.
+ */
+ public Configurable withRetryOptions(RetryOptions retryOptions) {
+ this.retryOptions = Objects.requireNonNull(retryOptions, "'retryOptions' cannot be null.");
+ return this;
+ }
+
+ /**
+ * Sets the default poll interval, used when service does not provide "Retry-After" header.
+ *
+ * @param defaultPollInterval the default poll interval.
+ * @return the configurable object itself.
+ */
+ public Configurable withDefaultPollInterval(Duration defaultPollInterval) {
+ this.defaultPollInterval =
+ Objects.requireNonNull(defaultPollInterval, "'defaultPollInterval' cannot be null.");
+ if (this.defaultPollInterval.isNegative()) {
+ throw LOGGER
+ .logExceptionAsError(new IllegalArgumentException("'defaultPollInterval' cannot be negative"));
+ }
+ return this;
+ }
+
+ /**
+ * Creates an instance of TestBase service API entry point.
+ *
+ * @param credential the credential to use.
+ * @param profile the Azure profile for client.
+ * @return the TestBase service API instance.
+ */
+ public TestBaseManager authenticate(TokenCredential credential, AzureProfile profile) {
+ Objects.requireNonNull(credential, "'credential' cannot be null.");
+ Objects.requireNonNull(profile, "'profile' cannot be null.");
+
+ StringBuilder userAgentBuilder = new StringBuilder();
+ userAgentBuilder
+ .append("azsdk-java")
+ .append("-")
+ .append("com.azure.resourcemanager.testbase")
+ .append("/")
+ .append("1.0.0-beta.1");
+ if (!Configuration.getGlobalConfiguration().get("AZURE_TELEMETRY_DISABLED", false)) {
+ userAgentBuilder
+ .append(" (")
+ .append(Configuration.getGlobalConfiguration().get("java.version"))
+ .append("; ")
+ .append(Configuration.getGlobalConfiguration().get("os.name"))
+ .append("; ")
+ .append(Configuration.getGlobalConfiguration().get("os.version"))
+ .append("; auto-generated)");
+ } else {
+ userAgentBuilder.append(" (auto-generated)");
+ }
+
+ if (scopes.isEmpty()) {
+ scopes.add(profile.getEnvironment().getManagementEndpoint() + "/.default");
+ }
+ if (retryPolicy == null) {
+ if (retryOptions != null) {
+ retryPolicy = new RetryPolicy(retryOptions);
+ } else {
+ retryPolicy = new RetryPolicy("Retry-After", ChronoUnit.SECONDS);
+ }
+ }
+ List policies = new ArrayList<>();
+ policies.add(new UserAgentPolicy(userAgentBuilder.toString()));
+ policies.add(new AddHeadersFromContextPolicy());
+ policies.add(new RequestIdPolicy());
+ policies
+ .addAll(
+ this
+ .policies
+ .stream()
+ .filter(p -> p.getPipelinePosition() == HttpPipelinePosition.PER_CALL)
+ .collect(Collectors.toList()));
+ HttpPolicyProviders.addBeforeRetryPolicies(policies);
+ policies.add(retryPolicy);
+ policies.add(new AddDatePolicy());
+ policies.add(new ArmChallengeAuthenticationPolicy(credential, scopes.toArray(new String[0])));
+ policies
+ .addAll(
+ this
+ .policies
+ .stream()
+ .filter(p -> p.getPipelinePosition() == HttpPipelinePosition.PER_RETRY)
+ .collect(Collectors.toList()));
+ HttpPolicyProviders.addAfterRetryPolicies(policies);
+ policies.add(new HttpLoggingPolicy(httpLogOptions));
+ HttpPipeline httpPipeline =
+ new HttpPipelineBuilder()
+ .httpClient(httpClient)
+ .policies(policies.toArray(new HttpPipelinePolicy[0]))
+ .build();
+ return new TestBaseManager(httpPipeline, profile, defaultPollInterval);
+ }
+ }
+
+ /**
+ * Gets the resource collection API of Skus.
+ *
+ * @return Resource collection API of Skus.
+ */
+ public Skus skus() {
+ if (this.skus == null) {
+ this.skus = new SkusImpl(clientObject.getSkus(), this);
+ }
+ return skus;
+ }
+
+ /**
+ * Gets the resource collection API of TestBaseAccounts. It manages TestBaseAccountResource.
+ *
+ * @return Resource collection API of TestBaseAccounts.
+ */
+ public TestBaseAccounts testBaseAccounts() {
+ if (this.testBaseAccounts == null) {
+ this.testBaseAccounts = new TestBaseAccountsImpl(clientObject.getTestBaseAccounts(), this);
+ }
+ return testBaseAccounts;
+ }
+
+ /**
+ * Gets the resource collection API of Usages.
+ *
+ * @return Resource collection API of Usages.
+ */
+ public Usages usages() {
+ if (this.usages == null) {
+ this.usages = new UsagesImpl(clientObject.getUsages(), this);
+ }
+ return usages;
+ }
+
+ /**
+ * Gets the resource collection API of AvailableOS.
+ *
+ * @return Resource collection API of AvailableOS.
+ */
+ public AvailableOS availableOS() {
+ if (this.availableOS == null) {
+ this.availableOS = new AvailableOSImpl(clientObject.getAvailableOS(), this);
+ }
+ return availableOS;
+ }
+
+ /**
+ * Gets the resource collection API of FlightingRings.
+ *
+ * @return Resource collection API of FlightingRings.
+ */
+ public FlightingRings flightingRings() {
+ if (this.flightingRings == null) {
+ this.flightingRings = new FlightingRingsImpl(clientObject.getFlightingRings(), this);
+ }
+ return flightingRings;
+ }
+
+ /**
+ * Gets the resource collection API of TestTypes.
+ *
+ * @return Resource collection API of TestTypes.
+ */
+ public TestTypes testTypes() {
+ if (this.testTypes == null) {
+ this.testTypes = new TestTypesImpl(clientObject.getTestTypes(), this);
+ }
+ return testTypes;
+ }
+
+ /**
+ * Gets the resource collection API of Packages. It manages PackageResource.
+ *
+ * @return Resource collection API of Packages.
+ */
+ public Packages packages() {
+ if (this.packages == null) {
+ this.packages = new PackagesImpl(clientObject.getPackages(), this);
+ }
+ return packages;
+ }
+
+ /**
+ * Gets the resource collection API of TestSummaries.
+ *
+ * @return Resource collection API of TestSummaries.
+ */
+ public TestSummaries testSummaries() {
+ if (this.testSummaries == null) {
+ this.testSummaries = new TestSummariesImpl(clientObject.getTestSummaries(), this);
+ }
+ return testSummaries;
+ }
+
+ /**
+ * Gets the resource collection API of TestResults.
+ *
+ * @return Resource collection API of TestResults.
+ */
+ public TestResults testResults() {
+ if (this.testResults == null) {
+ this.testResults = new TestResultsImpl(clientObject.getTestResults(), this);
+ }
+ return testResults;
+ }
+
+ /**
+ * Gets the resource collection API of OSUpdates.
+ *
+ * @return Resource collection API of OSUpdates.
+ */
+ public OSUpdates oSUpdates() {
+ if (this.oSUpdates == null) {
+ this.oSUpdates = new OSUpdatesImpl(clientObject.getOSUpdates(), this);
+ }
+ return oSUpdates;
+ }
+
+ /**
+ * Gets the resource collection API of FavoriteProcesses. It manages FavoriteProcessResource.
+ *
+ * @return Resource collection API of FavoriteProcesses.
+ */
+ public FavoriteProcesses favoriteProcesses() {
+ if (this.favoriteProcesses == null) {
+ this.favoriteProcesses = new FavoriteProcessesImpl(clientObject.getFavoriteProcesses(), this);
+ }
+ return favoriteProcesses;
+ }
+
+ /**
+ * Gets the resource collection API of AnalysisResults.
+ *
+ * @return Resource collection API of AnalysisResults.
+ */
+ public AnalysisResults analysisResults() {
+ if (this.analysisResults == null) {
+ this.analysisResults = new AnalysisResultsImpl(clientObject.getAnalysisResults(), this);
+ }
+ return analysisResults;
+ }
+
+ /**
+ * Gets the resource collection API of EmailEvents.
+ *
+ * @return Resource collection API of EmailEvents.
+ */
+ public EmailEvents emailEvents() {
+ if (this.emailEvents == null) {
+ this.emailEvents = new EmailEventsImpl(clientObject.getEmailEvents(), this);
+ }
+ return emailEvents;
+ }
+
+ /**
+ * Gets the resource collection API of CustomerEvents. It manages CustomerEventResource.
+ *
+ * @return Resource collection API of CustomerEvents.
+ */
+ public CustomerEvents customerEvents() {
+ if (this.customerEvents == null) {
+ this.customerEvents = new CustomerEventsImpl(clientObject.getCustomerEvents(), this);
+ }
+ return customerEvents;
+ }
+
+ /**
+ * Gets the resource collection API of Operations.
+ *
+ * @return Resource collection API of Operations.
+ */
+ public Operations operations() {
+ if (this.operations == null) {
+ this.operations = new OperationsImpl(clientObject.getOperations(), this);
+ }
+ return operations;
+ }
+
+ /**
+ * Gets the resource collection API of BillingHubServices.
+ *
+ * @return Resource collection API of BillingHubServices.
+ */
+ public BillingHubServices billingHubServices() {
+ if (this.billingHubServices == null) {
+ this.billingHubServices = new BillingHubServicesImpl(clientObject.getBillingHubServices(), this);
+ }
+ return billingHubServices;
+ }
+
+ /**
+ * @return Wrapped service client TestBase providing direct access to the underlying auto-generated API
+ * implementation, based on Azure REST API.
+ */
+ public TestBase serviceClient() {
+ return this.clientObject;
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/AnalysisResultsClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/AnalysisResultsClient.java
new file mode 100644
index 000000000000..bcdee44abf88
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/AnalysisResultsClient.java
@@ -0,0 +1,107 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.testbase.fluent.models.AnalysisResultSingletonResourceInner;
+import com.azure.resourcemanager.testbase.models.AnalysisResultName;
+import com.azure.resourcemanager.testbase.models.AnalysisResultType;
+
+/** An instance of this class provides access to all the operations defined in AnalysisResultsClient. */
+public interface AnalysisResultsClient {
+ /**
+ * Lists the Analysis Results of a Test Result. The result collection will only contain one element as all the data
+ * will be nested in a singleton object.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param testResultName The Test Result Name. It equals to TestResult-{TestResultId} string.
+ * @param analysisResultType The type of the Analysis Result of a Test Result.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Analysis Results as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ AnalysisResultType analysisResultType);
+
+ /**
+ * Lists the Analysis Results of a Test Result. The result collection will only contain one element as all the data
+ * will be nested in a singleton object.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param testResultName The Test Result Name. It equals to TestResult-{TestResultId} string.
+ * @param analysisResultType The type of the Analysis Result of a Test Result.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Analysis Results as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ AnalysisResultType analysisResultType,
+ Context context);
+
+ /**
+ * Gets an Analysis Result of a Test Result by name.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param testResultName The Test Result Name. It equals to TestResult-{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 TestResult-{TestResultId} string.
+ * @param analysisResultName The name of the Analysis Result of a Test Result.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an Analysis Result of a Test Result by name along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ AnalysisResultName analysisResultName,
+ Context context);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/AvailableOSClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/AvailableOSClient.java
new file mode 100644
index 000000000000..2da75074f9d6
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/AvailableOSClient.java
@@ -0,0 +1,77 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.testbase.fluent.models.AvailableOSResourceInner;
+import com.azure.resourcemanager.testbase.models.OsUpdateType;
+
+/** An instance of this class provides access to all the operations defined in AvailableOSClient. */
+public interface AvailableOSClient {
+ /**
+ * Lists all the available OSs to run a package under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param osUpdateType The type of the OS Update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of available OSs as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String resourceGroupName, String testBaseAccountName, OsUpdateType osUpdateType);
+
+ /**
+ * Lists all the available OSs to run a package under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param osUpdateType The type of the OS Update.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of available OSs as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String resourceGroupName, String testBaseAccountName, OsUpdateType osUpdateType, Context context);
+
+ /**
+ * Gets an available OS to run a package under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param availableOSResourceName The resource name of an Available OS.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an available OS to run a package under a Test Base Account.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AvailableOSResourceInner get(String resourceGroupName, String testBaseAccountName, String availableOSResourceName);
+
+ /**
+ * Gets an available OS to run a package under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param availableOSResourceName The resource name of an Available OS.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an available OS to run a package under a Test Base Account along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String testBaseAccountName, String availableOSResourceName, Context context);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/BillingHubServicesClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/BillingHubServicesClient.java
new file mode 100644
index 000000000000..11f03a4a0283
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/BillingHubServicesClient.java
@@ -0,0 +1,68 @@
+// 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.BillingHubGetFreeHourBalanceResponseInner;
+import com.azure.resourcemanager.testbase.fluent.models.BillingHubGetUsageResponseInner;
+import com.azure.resourcemanager.testbase.models.BillingHubGetUsageRequest;
+
+/** An instance of this class provides access to all the operations defined in BillingHubServicesClient. */
+public interface BillingHubServicesClient {
+ /**
+ * @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 response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ BillingHubGetFreeHourBalanceResponseInner getFreeHourBalance(String resourceGroupName, String testBaseAccountName);
+
+ /**
+ * @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 response body along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getFreeHourBalanceWithResponse(
+ String resourceGroupName, String testBaseAccountName, Context context);
+
+ /**
+ * @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 response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ BillingHubGetUsageResponseInner getUsage(String resourceGroupName, String testBaseAccountName);
+
+ /**
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param getUsageRequest The getUsageRequest parameter.
+ * @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 body along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getUsageWithResponse(
+ String resourceGroupName,
+ String testBaseAccountName,
+ BillingHubGetUsageRequest getUsageRequest,
+ Context context);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/CustomerEventsClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/CustomerEventsClient.java
new file mode 100644
index 000000000000..6566485a16e2
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/CustomerEventsClient.java
@@ -0,0 +1,214 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.testbase.fluent.models.CustomerEventResourceInner;
+
+/** An instance of this class provides access to all the operations defined in CustomerEventsClient. */
+public interface CustomerEventsClient {
+ /**
+ * Lists all notification events subscribed under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Base Customer Events as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByTestBaseAccount(
+ String resourceGroupName, String testBaseAccountName);
+
+ /**
+ * Lists all notification events subscribed under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Base Customer Events as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByTestBaseAccount(
+ String resourceGroupName, String testBaseAccountName, Context context);
+
+ /**
+ * Create or replace a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param parameters Parameters supplied to create a Test Base CustomerEvent.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of the Customer Notification Event resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, CustomerEventResourceInner> beginCreate(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String customerEventName,
+ CustomerEventResourceInner parameters);
+
+ /**
+ * Create or replace a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param parameters Parameters supplied to create a Test Base CustomerEvent.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of the Customer Notification Event resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, CustomerEventResourceInner> beginCreate(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String customerEventName,
+ CustomerEventResourceInner parameters,
+ Context context);
+
+ /**
+ * Create or replace a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param parameters Parameters supplied to create a Test Base CustomerEvent.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Customer Notification Event resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CustomerEventResourceInner create(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String customerEventName,
+ CustomerEventResourceInner parameters);
+
+ /**
+ * Create or replace a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param parameters Parameters supplied to create a Test Base CustomerEvent.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Customer Notification Event resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CustomerEventResourceInner create(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String customerEventName,
+ CustomerEventResourceInner parameters,
+ Context context);
+
+ /**
+ * Deletes a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(
+ String resourceGroupName, String testBaseAccountName, String customerEventName);
+
+ /**
+ * Deletes a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(
+ String resourceGroupName, String testBaseAccountName, String customerEventName, Context context);
+
+ /**
+ * Deletes a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String testBaseAccountName, String customerEventName);
+
+ /**
+ * Deletes a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String testBaseAccountName, String customerEventName, Context context);
+
+ /**
+ * Gets a Test Base CustomerEvent.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a Test Base CustomerEvent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CustomerEventResourceInner get(String resourceGroupName, String testBaseAccountName, String customerEventName);
+
+ /**
+ * Gets a Test Base CustomerEvent.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a Test Base CustomerEvent along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String testBaseAccountName, String customerEventName, Context context);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/EmailEventsClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/EmailEventsClient.java
new file mode 100644
index 000000000000..62e304d8198f
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/EmailEventsClient.java
@@ -0,0 +1,72 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.testbase.fluent.models.EmailEventResourceInner;
+
+/** An instance of this class provides access to all the operations defined in EmailEventsClient. */
+public interface EmailEventsClient {
+ /**
+ * Lists all the email events of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of email events as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String testBaseAccountName);
+
+ /**
+ * Lists all the email events of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of email events as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String testBaseAccountName, Context context);
+
+ /**
+ * Gets a email event of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param emailEventResourceName The resource name of an email event.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a email event of a Test Base Account.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ EmailEventResourceInner get(String resourceGroupName, String testBaseAccountName, String emailEventResourceName);
+
+ /**
+ * Gets a email event of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param emailEventResourceName The resource name of an email event.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a email event of a Test Base Account along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String testBaseAccountName, String emailEventResourceName, Context context);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/FavoriteProcessesClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/FavoriteProcessesClient.java
new file mode 100644
index 000000000000..cc1d9c2be043
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/FavoriteProcessesClient.java
@@ -0,0 +1,175 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.testbase.fluent.models.FavoriteProcessResourceInner;
+
+/** An instance of this class provides access to all the operations defined in FavoriteProcessesClient. */
+public interface FavoriteProcessesClient {
+ /**
+ * Lists the favorite processes for a specific package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of favorite processes for a package as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String resourceGroupName, String testBaseAccountName, String packageName);
+
+ /**
+ * Lists the favorite processes for a specific package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of favorite processes for a package as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String resourceGroupName, String testBaseAccountName, String packageName, Context context);
+
+ /**
+ * Create or replace a favorite process for a Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param favoriteProcessResourceName The resource name of a favorite process in a package. If the process name
+ * contains characters that are not allowed in Azure Resource Name, we use 'actualProcessName' in request body
+ * to submit the name.
+ * @param parameters Parameters supplied to create a favorite process in a package.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a favorite process identifier.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ FavoriteProcessResourceInner create(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String favoriteProcessResourceName,
+ FavoriteProcessResourceInner parameters);
+
+ /**
+ * Create or replace a favorite process for a Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param favoriteProcessResourceName The resource name of a favorite process in a package. If the process name
+ * contains characters that are not allowed in Azure Resource Name, we use 'actualProcessName' in request body
+ * to submit the name.
+ * @param parameters Parameters supplied to create a favorite process in a package.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a favorite process identifier along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createWithResponse(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String favoriteProcessResourceName,
+ FavoriteProcessResourceInner parameters,
+ Context context);
+
+ /**
+ * Deletes a favorite process for a specific package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param favoriteProcessResourceName The resource name of a favorite process in a package. If the process name
+ * contains characters that are not allowed in Azure Resource Name, we use 'actualProcessName' in request body
+ * to submit the name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(
+ String resourceGroupName, String testBaseAccountName, String packageName, String favoriteProcessResourceName);
+
+ /**
+ * Deletes a favorite process for a specific package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param favoriteProcessResourceName The resource name of a favorite process in a package. If the process name
+ * contains characters that are not allowed in Azure Resource Name, we use 'actualProcessName' in request body
+ * to submit the name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response deleteWithResponse(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String favoriteProcessResourceName,
+ Context context);
+
+ /**
+ * Gets a favorite process for a Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param favoriteProcessResourceName The resource name of a favorite process in a package. If the process name
+ * contains characters that are not allowed in Azure Resource Name, we use 'actualProcessName' in request body
+ * to submit the name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a favorite process for a Test Base Package.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ FavoriteProcessResourceInner get(
+ String resourceGroupName, String testBaseAccountName, String packageName, String favoriteProcessResourceName);
+
+ /**
+ * Gets a favorite process for a Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param favoriteProcessResourceName The resource name of a favorite process in a package. If the process name
+ * contains characters that are not allowed in Azure Resource Name, we use 'actualProcessName' in request body
+ * to submit the name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a favorite process for a Test Base Package along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String favoriteProcessResourceName,
+ Context context);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/FlightingRingsClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/FlightingRingsClient.java
new file mode 100644
index 000000000000..98133f053883
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/FlightingRingsClient.java
@@ -0,0 +1,74 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.testbase.fluent.models.FlightingRingResourceInner;
+
+/** An instance of this class provides access to all the operations defined in FlightingRingsClient. */
+public interface FlightingRingsClient {
+ /**
+ * Lists all the flighting rings of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of flighting rings as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String testBaseAccountName);
+
+ /**
+ * Lists all the flighting rings of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of flighting rings as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String resourceGroupName, String testBaseAccountName, Context context);
+
+ /**
+ * Gets a flighting ring of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param flightingRingResourceName The resource name of a flighting ring.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a flighting ring of a Test Base Account.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ FlightingRingResourceInner get(
+ String resourceGroupName, String testBaseAccountName, String flightingRingResourceName);
+
+ /**
+ * Gets a flighting ring of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param flightingRingResourceName The resource name of a flighting ring.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a flighting ring of a Test Base Account along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String testBaseAccountName, String flightingRingResourceName, Context context);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/OSUpdatesClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/OSUpdatesClient.java
new file mode 100644
index 000000000000..e2ad05769861
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/OSUpdatesClient.java
@@ -0,0 +1,90 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.testbase.fluent.models.OSUpdateResourceInner;
+import com.azure.resourcemanager.testbase.models.OsUpdateType;
+
+/** An instance of this class provides access to all the operations defined in OSUpdatesClient. */
+public interface OSUpdatesClient {
+ /**
+ * Lists the OS Updates in which the package were tested before.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param osUpdateType The type of the OS Update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of OS Updates as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String resourceGroupName, String testBaseAccountName, String packageName, OsUpdateType osUpdateType);
+
+ /**
+ * Lists the OS Updates in which the package were tested before.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param osUpdateType The type of the OS Update.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of OS Updates as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ OsUpdateType osUpdateType,
+ Context context);
+
+ /**
+ * Gets an OS Update by name in which the package was tested before.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param osUpdateResourceName The resource name of an OS Update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an OS Update by name in which the package was tested before.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OSUpdateResourceInner get(
+ String resourceGroupName, String testBaseAccountName, String packageName, String osUpdateResourceName);
+
+ /**
+ * Gets an OS Update by name in which the package was tested before.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param osUpdateResourceName The resource name of an OS Update.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an OS Update by name in which the package was tested before along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String osUpdateResourceName,
+ Context context);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/OperationsClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/OperationsClient.java
new file mode 100644
index 000000000000..6c27e8fad25c
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/OperationsClient.java
@@ -0,0 +1,36 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.testbase.fluent.models.OperationInner;
+
+/** An instance of this class provides access to all the operations defined in OperationsClient. */
+public interface OperationsClient {
+ /**
+ * Lists all of the available REST API operations of the Microsoft.TestBase provider.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of operations supported by the resource provider as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Lists all of the available REST API operations of the Microsoft.TestBase provider.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of operations supported by the resource provider as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/PackagesClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/PackagesClient.java
new file mode 100644
index 000000000000..6c14a20f8948
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/PackagesClient.java
@@ -0,0 +1,407 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.testbase.fluent.models.DownloadUrlResponseInner;
+import com.azure.resourcemanager.testbase.fluent.models.PackageResourceInner;
+import com.azure.resourcemanager.testbase.models.PackageRunTestParameters;
+import com.azure.resourcemanager.testbase.models.PackageUpdateParameters;
+import com.azure.resourcemanager.testbase.models.PackagesRunTestResponse;
+
+/** An instance of this class provides access to all the operations defined in PackagesClient. */
+public interface PackagesClient {
+ /**
+ * Lists all the packages under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Base Packages as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByTestBaseAccount(String resourceGroupName, String testBaseAccountName);
+
+ /**
+ * Lists all the packages under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Base Packages as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByTestBaseAccount(
+ String resourceGroupName, String testBaseAccountName, Context context);
+
+ /**
+ * Create or replace (overwrite/recreate, with potential downtime) a Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param parameters Parameters supplied to create a Test Base Package.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of the Test Base Package resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, PackageResourceInner> beginCreate(
+ String resourceGroupName, String testBaseAccountName, String packageName, PackageResourceInner parameters);
+
+ /**
+ * Create or replace (overwrite/recreate, with potential downtime) a Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param parameters Parameters supplied to create a Test Base Package.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of the Test Base Package resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, PackageResourceInner> beginCreate(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ PackageResourceInner parameters,
+ Context context);
+
+ /**
+ * Create or replace (overwrite/recreate, with potential downtime) a Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param parameters Parameters supplied to create a Test Base Package.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Test Base Package resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PackageResourceInner create(
+ String resourceGroupName, String testBaseAccountName, String packageName, PackageResourceInner parameters);
+
+ /**
+ * Create or replace (overwrite/recreate, with potential downtime) a Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param parameters Parameters supplied to create a Test Base Package.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Test Base Package resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PackageResourceInner create(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ PackageResourceInner parameters,
+ Context context);
+
+ /**
+ * Update an existing Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param parameters Parameters supplied to update a Test Base Package.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of the Test Base Package resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, PackageResourceInner> beginUpdate(
+ String resourceGroupName, String testBaseAccountName, String packageName, PackageUpdateParameters parameters);
+
+ /**
+ * Update an existing Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param parameters Parameters supplied to update a Test Base Package.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of the Test Base Package resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, PackageResourceInner> beginUpdate(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ PackageUpdateParameters parameters,
+ Context context);
+
+ /**
+ * Update an existing Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param parameters Parameters supplied to update a Test Base Package.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Test Base Package resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PackageResourceInner update(
+ String resourceGroupName, String testBaseAccountName, String packageName, PackageUpdateParameters parameters);
+
+ /**
+ * Update an existing Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param parameters Parameters supplied to update a Test Base Package.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Test Base Package resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PackageResourceInner update(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ PackageUpdateParameters parameters,
+ Context context);
+
+ /**
+ * Deletes a Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(
+ String resourceGroupName, String testBaseAccountName, String packageName);
+
+ /**
+ * Deletes a Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(
+ String resourceGroupName, String testBaseAccountName, String packageName, Context context);
+
+ /**
+ * Deletes a Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String testBaseAccountName, String packageName);
+
+ /**
+ * Deletes a Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String testBaseAccountName, String packageName, Context context);
+
+ /**
+ * Gets a Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a Test Base Package.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PackageResourceInner get(String resourceGroupName, String testBaseAccountName, String packageName);
+
+ /**
+ * Gets a Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a Test Base Package along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String testBaseAccountName, String packageName, Context context);
+
+ /**
+ * Hard Delete a Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginHardDelete(
+ String resourceGroupName, String testBaseAccountName, String packageName);
+
+ /**
+ * Hard Delete a Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginHardDelete(
+ String resourceGroupName, String testBaseAccountName, String packageName, Context context);
+
+ /**
+ * Hard Delete a Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void hardDelete(String resourceGroupName, String testBaseAccountName, String packageName);
+
+ /**
+ * Hard Delete a Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void hardDelete(String resourceGroupName, String testBaseAccountName, String packageName, Context context);
+
+ /**
+ * Gets the download URL of a package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the download URL of a package.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DownloadUrlResponseInner getDownloadUrl(String resourceGroupName, String testBaseAccountName, String packageName);
+
+ /**
+ * Gets the download URL of a package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the download URL of a package along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getDownloadUrlWithResponse(
+ String resourceGroupName, String testBaseAccountName, String packageName, Context context);
+
+ /**
+ * Trigger a test run on the 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 runTest(String resourceGroupName, String testBaseAccountName, String packageName);
+
+ /**
+ * Trigger a test run on the 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 The parameters supplied to the Test Base Package to start a Test Run.
+ * @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)
+ PackagesRunTestResponse runTestWithResponse(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ PackageRunTestParameters parameters,
+ Context context);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/SkusClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/SkusClient.java
new file mode 100644
index 000000000000..85317a8bf2f9
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/SkusClient.java
@@ -0,0 +1,36 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.testbase.fluent.models.TestBaseAccountSkuInner;
+
+/** An instance of this class provides access to all the operations defined in SkusClient. */
+public interface SkusClient {
+ /**
+ * Lists the available SKUs of Test Base Account in a subscription.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Base Account SKUs as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Lists the available SKUs of Test Base Account in a subscription.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Base Account SKUs as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestBase.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestBase.java
new file mode 100644
index 000000000000..e6258f49be8a
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestBase.java
@@ -0,0 +1,158 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent;
+
+import com.azure.core.http.HttpPipeline;
+import java.time.Duration;
+
+/** The interface for TestBase class. */
+public interface TestBase {
+ /**
+ * Gets The Azure subscription ID. This is a GUID-formatted string.
+ *
+ * @return the subscriptionId value.
+ */
+ String getSubscriptionId();
+
+ /**
+ * Gets server parameter.
+ *
+ * @return the endpoint value.
+ */
+ String getEndpoint();
+
+ /**
+ * Gets Api Version.
+ *
+ * @return the apiVersion value.
+ */
+ String getApiVersion();
+
+ /**
+ * Gets The HTTP pipeline to send requests through.
+ *
+ * @return the httpPipeline value.
+ */
+ HttpPipeline getHttpPipeline();
+
+ /**
+ * Gets The default poll interval for long-running operation.
+ *
+ * @return the defaultPollInterval value.
+ */
+ Duration getDefaultPollInterval();
+
+ /**
+ * Gets the SkusClient object to access its operations.
+ *
+ * @return the SkusClient object.
+ */
+ SkusClient getSkus();
+
+ /**
+ * Gets the TestBaseAccountsClient object to access its operations.
+ *
+ * @return the TestBaseAccountsClient object.
+ */
+ TestBaseAccountsClient getTestBaseAccounts();
+
+ /**
+ * Gets the UsagesClient object to access its operations.
+ *
+ * @return the UsagesClient object.
+ */
+ UsagesClient getUsages();
+
+ /**
+ * Gets the AvailableOSClient object to access its operations.
+ *
+ * @return the AvailableOSClient object.
+ */
+ AvailableOSClient getAvailableOS();
+
+ /**
+ * Gets the FlightingRingsClient object to access its operations.
+ *
+ * @return the FlightingRingsClient object.
+ */
+ FlightingRingsClient getFlightingRings();
+
+ /**
+ * Gets the TestTypesClient object to access its operations.
+ *
+ * @return the TestTypesClient object.
+ */
+ TestTypesClient getTestTypes();
+
+ /**
+ * Gets the PackagesClient object to access its operations.
+ *
+ * @return the PackagesClient object.
+ */
+ PackagesClient getPackages();
+
+ /**
+ * Gets the TestSummariesClient object to access its operations.
+ *
+ * @return the TestSummariesClient object.
+ */
+ TestSummariesClient getTestSummaries();
+
+ /**
+ * Gets the TestResultsClient object to access its operations.
+ *
+ * @return the TestResultsClient object.
+ */
+ TestResultsClient getTestResults();
+
+ /**
+ * Gets the OSUpdatesClient object to access its operations.
+ *
+ * @return the OSUpdatesClient object.
+ */
+ OSUpdatesClient getOSUpdates();
+
+ /**
+ * Gets the FavoriteProcessesClient object to access its operations.
+ *
+ * @return the FavoriteProcessesClient object.
+ */
+ FavoriteProcessesClient getFavoriteProcesses();
+
+ /**
+ * Gets the AnalysisResultsClient object to access its operations.
+ *
+ * @return the AnalysisResultsClient object.
+ */
+ AnalysisResultsClient getAnalysisResults();
+
+ /**
+ * Gets the EmailEventsClient object to access its operations.
+ *
+ * @return the EmailEventsClient object.
+ */
+ EmailEventsClient getEmailEvents();
+
+ /**
+ * Gets the CustomerEventsClient object to access its operations.
+ *
+ * @return the CustomerEventsClient object.
+ */
+ CustomerEventsClient getCustomerEvents();
+
+ /**
+ * Gets the OperationsClient object to access its operations.
+ *
+ * @return the OperationsClient object.
+ */
+ OperationsClient getOperations();
+
+ /**
+ * Gets the BillingHubServicesClient object to access its operations.
+ *
+ * @return the BillingHubServicesClient object.
+ */
+ BillingHubServicesClient getBillingHubServices();
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestBaseAccountsClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestBaseAccountsClient.java
new file mode 100644
index 000000000000..ad58034ee8ea
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestBaseAccountsClient.java
@@ -0,0 +1,437 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.testbase.fluent.models.CheckNameAvailabilityResultInner;
+import com.azure.resourcemanager.testbase.fluent.models.FileUploadUrlResponseInner;
+import com.azure.resourcemanager.testbase.fluent.models.TestBaseAccountResourceInner;
+import com.azure.resourcemanager.testbase.fluent.models.TestBaseAccountUpdateParametersInner;
+import com.azure.resourcemanager.testbase.models.GetFileUploadUrlParameters;
+import com.azure.resourcemanager.testbase.models.PackageCheckNameAvailabilityParameters;
+
+/** An instance of this class provides access to all the operations defined in TestBaseAccountsClient. */
+public interface TestBaseAccountsClient {
+ /**
+ * Lists all the Test Base Accounts in a subscription. This API is required by ARM guidelines.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Base Accounts as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Lists all the Test Base Accounts in a subscription. This API is required by ARM guidelines.
+ *
+ * @param getDeleted The flag indicating if we need to include the Test Base Accounts which were soft deleted
+ * before.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Base Accounts as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Boolean getDeleted, Context context);
+
+ /**
+ * Lists all the Test Base Accounts in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Base Accounts as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * Lists all the Test Base Accounts in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param getDeleted The flag indicating if we need to include the Test Base Accounts which were soft deleted
+ * before.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Base Accounts as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(
+ String resourceGroupName, Boolean getDeleted, Context context);
+
+ /**
+ * Create or replace (overwrite/recreate, with potential downtime) a Test Base Account in the specified
+ * subscription.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param parameters Parameters supplied to create a Test Base Account.
+ * @param restore The flag indicating if we would like to restore the Test Base Accounts which were soft deleted
+ * before.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of the Test Base Account resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, TestBaseAccountResourceInner> beginCreate(
+ String resourceGroupName, String testBaseAccountName, TestBaseAccountResourceInner parameters, Boolean restore);
+
+ /**
+ * Create or replace (overwrite/recreate, with potential downtime) a Test Base Account in the specified
+ * subscription.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param parameters Parameters supplied to create a Test Base Account.
+ * @param restore The flag indicating if we would like to restore the Test Base Accounts which were soft deleted
+ * before.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of the Test Base Account resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, TestBaseAccountResourceInner> beginCreate(
+ String resourceGroupName,
+ String testBaseAccountName,
+ TestBaseAccountResourceInner parameters,
+ Boolean restore,
+ Context context);
+
+ /**
+ * Create or replace (overwrite/recreate, with potential downtime) a Test Base Account in the specified
+ * subscription.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param parameters Parameters supplied to create a Test Base Account.
+ * @param restore The flag indicating if we would like to restore the Test Base Accounts which were soft deleted
+ * before.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Test Base Account resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ TestBaseAccountResourceInner create(
+ String resourceGroupName, String testBaseAccountName, TestBaseAccountResourceInner parameters, Boolean restore);
+
+ /**
+ * Create or replace (overwrite/recreate, with potential downtime) a Test Base Account in the specified
+ * subscription.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param parameters Parameters supplied to create a Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Test Base Account resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ TestBaseAccountResourceInner create(
+ String resourceGroupName, String testBaseAccountName, TestBaseAccountResourceInner parameters);
+
+ /**
+ * Create or replace (overwrite/recreate, with potential downtime) a Test Base Account in the specified
+ * subscription.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param parameters Parameters supplied to create a Test Base Account.
+ * @param restore The flag indicating if we would like to restore the Test Base Accounts which were soft deleted
+ * before.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Test Base Account resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ TestBaseAccountResourceInner create(
+ String resourceGroupName,
+ String testBaseAccountName,
+ TestBaseAccountResourceInner parameters,
+ Boolean restore,
+ Context context);
+
+ /**
+ * Update an existing Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param parameters Parameters supplied to update a Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of the Test Base Account resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, TestBaseAccountResourceInner> beginUpdate(
+ String resourceGroupName, String testBaseAccountName, TestBaseAccountUpdateParametersInner parameters);
+
+ /**
+ * Update an existing Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param parameters Parameters supplied to update a Test Base Account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of the Test Base Account resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, TestBaseAccountResourceInner> beginUpdate(
+ String resourceGroupName,
+ String testBaseAccountName,
+ TestBaseAccountUpdateParametersInner parameters,
+ Context context);
+
+ /**
+ * Update an existing Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param parameters Parameters supplied to update a Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Test Base Account resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ TestBaseAccountResourceInner update(
+ String resourceGroupName, String testBaseAccountName, TestBaseAccountUpdateParametersInner parameters);
+
+ /**
+ * Update an existing Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param parameters Parameters supplied to update a Test Base Account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Test Base Account resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ TestBaseAccountResourceInner update(
+ String resourceGroupName,
+ String testBaseAccountName,
+ TestBaseAccountUpdateParametersInner parameters,
+ Context context);
+
+ /**
+ * Deletes a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String testBaseAccountName);
+
+ /**
+ * Deletes a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(
+ String resourceGroupName, String testBaseAccountName, Context context);
+
+ /**
+ * Deletes a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String testBaseAccountName);
+
+ /**
+ * Deletes a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String testBaseAccountName, Context context);
+
+ /**
+ * Gets a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a Test Base Account.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ TestBaseAccountResourceInner getByResourceGroup(String resourceGroupName, String testBaseAccountName);
+
+ /**
+ * Gets a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a Test Base Account along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(
+ String resourceGroupName, String testBaseAccountName, Context context);
+
+ /**
+ * Offboard a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginOffboard(String resourceGroupName, String testBaseAccountName);
+
+ /**
+ * Offboard a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginOffboard(
+ String resourceGroupName, String testBaseAccountName, Context context);
+
+ /**
+ * Offboard a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void offboard(String resourceGroupName, String testBaseAccountName);
+
+ /**
+ * Offboard a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void offboard(String resourceGroupName, String testBaseAccountName, Context context);
+
+ /**
+ * Gets the file upload URL of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the file upload URL of a Test Base Account.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ FileUploadUrlResponseInner getFileUploadUrl(String resourceGroupName, String testBaseAccountName);
+
+ /**
+ * Gets the file upload URL of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param parameters Parameters supplied to the Test Base Account GetFileUploadURL operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the file upload URL of a Test Base Account along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getFileUploadUrlWithResponse(
+ String resourceGroupName, String testBaseAccountName, GetFileUploadUrlParameters parameters, Context context);
+
+ /**
+ * Checks that the Test Base Package name and version is valid and is not already in use.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param parameters Parameters supplied to the Test Base Package CheckNameAvailability operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return description of a Check Name availability response properties.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CheckNameAvailabilityResultInner checkPackageNameAvailability(
+ String resourceGroupName, String testBaseAccountName, PackageCheckNameAvailabilityParameters parameters);
+
+ /**
+ * Checks that the Test Base Package name and version is valid and is not already in use.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param parameters Parameters supplied to the Test Base Package CheckNameAvailability operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return description of a Check Name availability response properties along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response checkPackageNameAvailabilityWithResponse(
+ String resourceGroupName,
+ String testBaseAccountName,
+ PackageCheckNameAvailabilityParameters parameters,
+ Context context);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestResultsClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestResultsClient.java
new file mode 100644
index 000000000000..9dcc483bd4a6
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestResultsClient.java
@@ -0,0 +1,214 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.testbase.fluent.models.DownloadUrlResponseInner;
+import com.azure.resourcemanager.testbase.fluent.models.TestResultResourceInner;
+import com.azure.resourcemanager.testbase.models.OsUpdateType;
+import com.azure.resourcemanager.testbase.models.TestResultConsoleLogDownloadUrlParameters;
+
+/** An instance of this class provides access to all the operations defined in TestResultsClient. */
+public interface TestResultsClient {
+ /**
+ * Lists all the Test Results with specified OS Update type for a Test Base Package. Can be filtered by osName,
+ * releaseName, flightingRing, buildVersion, buildRevision.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param osUpdateType The type of the OS Update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Results as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String resourceGroupName, String testBaseAccountName, String packageName, OsUpdateType osUpdateType);
+
+ /**
+ * Lists all the Test Results with specified OS Update type for a Test Base Package. Can be filtered by osName,
+ * releaseName, flightingRing, buildVersion, buildRevision.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param osUpdateType The type of the OS Update.
+ * @param filter Odata filter.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Results as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ OsUpdateType osUpdateType,
+ String filter,
+ Context context);
+
+ /**
+ * Get the Test Result by Id with specified OS Update type for a Test Base Package.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param testResultName The Test Result Name. It equals to TestResult-{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 TestResult-{TestResultId} string.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Test Result by Id with specified OS Update type for a Test Base Package along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ Context context);
+
+ /**
+ * Gets the download URL of the test result.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param testResultName The Test Result Name. It equals to TestResult-{TestResultId} string.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the download URL of the test result.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DownloadUrlResponseInner getDownloadUrl(
+ String resourceGroupName, String testBaseAccountName, String packageName, String testResultName);
+
+ /**
+ * Gets the download URL of the test result.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param testResultName The Test Result Name. It equals to TestResult-{TestResultId} string.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the download URL of the test result along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getDownloadUrlWithResponse(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ Context context);
+
+ /**
+ * Gets the download URL of the test execution screen recording.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param testResultName The Test Result Name. It equals to TestResult-{TestResultId} string.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the download URL of the test execution screen recording.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DownloadUrlResponseInner getVideoDownloadUrl(
+ String resourceGroupName, String testBaseAccountName, String packageName, String testResultName);
+
+ /**
+ * Gets the download URL of the test execution screen recording.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param testResultName The Test Result Name. It equals to TestResult-{TestResultId} string.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the download URL of the test execution screen recording along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getVideoDownloadUrlWithResponse(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ Context context);
+
+ /**
+ * Gets the download URL of the test execution console log file.
+ *
+ * @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 TestResult-{TestResultId} string.
+ * @param parameters Parameters supplied to the Test Result GetConsoleLogDownloadUrl 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 console log file.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DownloadUrlResponseInner getConsoleLogDownloadUrl(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ TestResultConsoleLogDownloadUrlParameters parameters);
+
+ /**
+ * Gets the download URL of the test execution console log file.
+ *
+ * @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 TestResult-{TestResultId} string.
+ * @param parameters Parameters supplied to the Test Result GetConsoleLogDownloadUrl 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 download URL of the test execution console log file along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getConsoleLogDownloadUrlWithResponse(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ TestResultConsoleLogDownloadUrlParameters parameters,
+ Context context);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestSummariesClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestSummariesClient.java
new file mode 100644
index 000000000000..0ed6bd4beec3
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestSummariesClient.java
@@ -0,0 +1,74 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.testbase.fluent.models.TestSummaryResourceInner;
+
+/** An instance of this class provides access to all the operations defined in TestSummariesClient. */
+public interface TestSummariesClient {
+ /**
+ * Lists the Test Summaries of all the packages under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Summaries as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String testBaseAccountName);
+
+ /**
+ * Lists the Test Summaries of all the packages under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Summaries as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String testBaseAccountName, Context context);
+
+ /**
+ * Gets a Test Summary with specific name from all the Test Summaries of all the packages under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param testSummaryName The name of the Test Summary.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a Test Summary with specific name from all the Test Summaries of all the packages under a Test Base
+ * Account.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ TestSummaryResourceInner get(String resourceGroupName, String testBaseAccountName, String testSummaryName);
+
+ /**
+ * Gets a Test Summary with specific name from all the Test Summaries of all the packages under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param testSummaryName The name of the Test Summary.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a Test Summary with specific name from all the Test Summaries of all the packages under a Test Base
+ * Account along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String testBaseAccountName, String testSummaryName, Context context);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestTypesClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestTypesClient.java
new file mode 100644
index 000000000000..2b415cf442ca
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/TestTypesClient.java
@@ -0,0 +1,72 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.testbase.fluent.models.TestTypeResourceInner;
+
+/** An instance of this class provides access to all the operations defined in TestTypesClient. */
+public interface TestTypesClient {
+ /**
+ * Lists all the test types of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of test types as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String testBaseAccountName);
+
+ /**
+ * Lists all the test types of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of test types as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String testBaseAccountName, Context context);
+
+ /**
+ * Gets a test type of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param testTypeResourceName The resource name of a test type.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a test type of a Test Base Account.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ TestTypeResourceInner get(String resourceGroupName, String testBaseAccountName, String testTypeResourceName);
+
+ /**
+ * Gets a test type of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param testTypeResourceName The resource name of a test type.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a test type of a Test Base Account along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String testBaseAccountName, String testTypeResourceName, Context context);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/UsagesClient.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/UsagesClient.java
new file mode 100644
index 000000000000..7a93b5e360ff
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/UsagesClient.java
@@ -0,0 +1,43 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.testbase.fluent.models.TestBaseAccountUsageDataInner;
+
+/** An instance of this class provides access to all the operations defined in UsagesClient. */
+public interface UsagesClient {
+ /**
+ * Lists the usage data of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Base Account usage data as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String testBaseAccountName);
+
+ /**
+ * Lists the usage data of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param filter Odata filter.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Base Account usage data as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String resourceGroupName, String testBaseAccountName, String filter, Context context);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/AnalysisResultSingletonResourceInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/AnalysisResultSingletonResourceInner.java
new file mode 100644
index 000000000000..b0409b6cc27d
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/AnalysisResultSingletonResourceInner.java
@@ -0,0 +1,79 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.resourcemanager.testbase.models.Grade;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The Analysis Result Singleton Resource. */
+@Fluent
+public final class AnalysisResultSingletonResourceInner extends ProxyResource {
+ /*
+ * The system metadata relating to this resource
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * Properties of an Analysis Result.
+ */
+ @JsonProperty(value = "properties")
+ private AnalysisResultSingletonResourceProperties innerProperties;
+
+ /**
+ * Get the systemData property: The system metadata relating to this resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the innerProperties property: Properties of an Analysis Result.
+ *
+ * @return the innerProperties value.
+ */
+ private AnalysisResultSingletonResourceProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the grade property: The grade of the test.
+ *
+ * @return the grade value.
+ */
+ public Grade grade() {
+ return this.innerProperties() == null ? null : this.innerProperties().grade();
+ }
+
+ /**
+ * Set the grade property: The grade of the test.
+ *
+ * @param grade the grade value to set.
+ * @return the AnalysisResultSingletonResourceInner object itself.
+ */
+ public AnalysisResultSingletonResourceInner withGrade(Grade grade) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AnalysisResultSingletonResourceProperties();
+ }
+ this.innerProperties().withGrade(grade);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/AnalysisResultSingletonResourceProperties.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/AnalysisResultSingletonResourceProperties.java
new file mode 100644
index 000000000000..402afc356466
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/AnalysisResultSingletonResourceProperties.java
@@ -0,0 +1,72 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.testbase.models.CpuRegressionResultSingletonResourceProperties;
+import com.azure.resourcemanager.testbase.models.CpuUtilizationResultSingletonResourceProperties;
+import com.azure.resourcemanager.testbase.models.Grade;
+import com.azure.resourcemanager.testbase.models.MemoryRegressionResultSingletonResourceProperties;
+import com.azure.resourcemanager.testbase.models.MemoryUtilizationResultSingletonResourceProperties;
+import com.azure.resourcemanager.testbase.models.ReliabilityResultSingletonResourceProperties;
+import com.azure.resourcemanager.testbase.models.ScriptExecutionResultSingletonResourceProperties;
+import com.azure.resourcemanager.testbase.models.TestAnalysisResultSingletonResourceProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/** The properties of Analysis Result resource. */
+@JsonTypeInfo(
+ use = JsonTypeInfo.Id.NAME,
+ include = JsonTypeInfo.As.PROPERTY,
+ property = "analysisResultType",
+ defaultImpl = AnalysisResultSingletonResourceProperties.class)
+@JsonTypeName("AnalysisResultSingletonResourceProperties")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "ScriptExecution", value = ScriptExecutionResultSingletonResourceProperties.class),
+ @JsonSubTypes.Type(name = "Reliability", value = ReliabilityResultSingletonResourceProperties.class),
+ @JsonSubTypes.Type(name = "CPUUtilization", value = CpuUtilizationResultSingletonResourceProperties.class),
+ @JsonSubTypes.Type(name = "MemoryUtilization", value = MemoryUtilizationResultSingletonResourceProperties.class),
+ @JsonSubTypes.Type(name = "CPURegression", value = CpuRegressionResultSingletonResourceProperties.class),
+ @JsonSubTypes.Type(name = "MemoryRegression", value = MemoryRegressionResultSingletonResourceProperties.class),
+ @JsonSubTypes.Type(name = "TestAnalysis", value = TestAnalysisResultSingletonResourceProperties.class)
+})
+@Fluent
+public class AnalysisResultSingletonResourceProperties {
+ /*
+ * The grade of the test.
+ */
+ @JsonProperty(value = "grade")
+ private Grade grade;
+
+ /**
+ * Get the grade property: The grade of the test.
+ *
+ * @return the grade value.
+ */
+ public Grade grade() {
+ return this.grade;
+ }
+
+ /**
+ * Set the grade property: The grade of the test.
+ *
+ * @param grade the grade value to set.
+ * @return the AnalysisResultSingletonResourceProperties object itself.
+ */
+ public AnalysisResultSingletonResourceProperties withGrade(Grade grade) {
+ this.grade = grade;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/AvailableOSProperties.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/AvailableOSProperties.java
new file mode 100644
index 000000000000..2a83a4f3c441
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/AvailableOSProperties.java
@@ -0,0 +1,176 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The Available OS properties. */
+@Fluent
+public final class AvailableOSProperties {
+ /*
+ * The Id of an Available OS of a Test Base Account.
+ */
+ @JsonProperty(value = "osId")
+ private String osId;
+
+ /*
+ * The name of an Available OS of a Test Base Account.
+ */
+ @JsonProperty(value = "osName")
+ private String osName;
+
+ /*
+ * The version of an Available OS of a Test Base Account.
+ */
+ @JsonProperty(value = "osVersion")
+ private String osVersion;
+
+ /*
+ * The insider channel of an Available OS of a Test Base Account.
+ */
+ @JsonProperty(value = "insiderChannel")
+ private String insiderChannel;
+
+ /*
+ * The OS update type of an Available OS of a Test Base Account.
+ */
+ @JsonProperty(value = "osUpdateType")
+ private String osUpdateType;
+
+ /*
+ * The Platform of an Available OS of a Test Base Account.
+ */
+ @JsonProperty(value = "osPlatform")
+ private String osPlatform;
+
+ /**
+ * Get the osId property: The Id of an Available OS of a Test Base Account.
+ *
+ * @return the osId value.
+ */
+ public String osId() {
+ return this.osId;
+ }
+
+ /**
+ * Set the osId property: The Id of an Available OS of a Test Base Account.
+ *
+ * @param osId the osId value to set.
+ * @return the AvailableOSProperties object itself.
+ */
+ public AvailableOSProperties withOsId(String osId) {
+ this.osId = osId;
+ return this;
+ }
+
+ /**
+ * Get the osName property: The name of an Available OS of a Test Base Account.
+ *
+ * @return the osName value.
+ */
+ public String osName() {
+ return this.osName;
+ }
+
+ /**
+ * Set the osName property: The name of an Available OS of a Test Base Account.
+ *
+ * @param osName the osName value to set.
+ * @return the AvailableOSProperties object itself.
+ */
+ public AvailableOSProperties withOsName(String osName) {
+ this.osName = osName;
+ return this;
+ }
+
+ /**
+ * Get the osVersion property: The version of an Available OS of a Test Base Account.
+ *
+ * @return the osVersion value.
+ */
+ public String osVersion() {
+ return this.osVersion;
+ }
+
+ /**
+ * Set the osVersion property: The version of an Available OS of a Test Base Account.
+ *
+ * @param osVersion the osVersion value to set.
+ * @return the AvailableOSProperties object itself.
+ */
+ public AvailableOSProperties withOsVersion(String osVersion) {
+ this.osVersion = osVersion;
+ return this;
+ }
+
+ /**
+ * Get the insiderChannel property: The insider channel of an Available OS of a Test Base Account.
+ *
+ * @return the insiderChannel value.
+ */
+ public String insiderChannel() {
+ return this.insiderChannel;
+ }
+
+ /**
+ * Set the insiderChannel property: The insider channel of an Available OS of a Test Base Account.
+ *
+ * @param insiderChannel the insiderChannel value to set.
+ * @return the AvailableOSProperties object itself.
+ */
+ public AvailableOSProperties withInsiderChannel(String insiderChannel) {
+ this.insiderChannel = insiderChannel;
+ return this;
+ }
+
+ /**
+ * Get the osUpdateType property: The OS update type of an Available OS of a Test Base Account.
+ *
+ * @return the osUpdateType value.
+ */
+ public String osUpdateType() {
+ return this.osUpdateType;
+ }
+
+ /**
+ * Set the osUpdateType property: The OS update type of an Available OS of a Test Base Account.
+ *
+ * @param osUpdateType the osUpdateType value to set.
+ * @return the AvailableOSProperties object itself.
+ */
+ public AvailableOSProperties withOsUpdateType(String osUpdateType) {
+ this.osUpdateType = osUpdateType;
+ return this;
+ }
+
+ /**
+ * Get the osPlatform property: The Platform of an Available OS of a Test Base Account.
+ *
+ * @return the osPlatform value.
+ */
+ public String osPlatform() {
+ return this.osPlatform;
+ }
+
+ /**
+ * Set the osPlatform property: The Platform of an Available OS of a Test Base Account.
+ *
+ * @param osPlatform the osPlatform value to set.
+ * @return the AvailableOSProperties object itself.
+ */
+ public AvailableOSProperties withOsPlatform(String osPlatform) {
+ this.osPlatform = osPlatform;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/AvailableOSResourceInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/AvailableOSResourceInner.java
new file mode 100644
index 000000000000..b6a156dbbd79
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/AvailableOSResourceInner.java
@@ -0,0 +1,193 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The Available OS resource. */
+@Fluent
+public final class AvailableOSResourceInner extends ProxyResource {
+ /*
+ * The system metadata relating to this resource
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * Available OS properties.
+ */
+ @JsonProperty(value = "properties")
+ private AvailableOSProperties innerProperties;
+
+ /**
+ * Get the systemData property: The system metadata relating to this resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the innerProperties property: Available OS properties.
+ *
+ * @return the innerProperties value.
+ */
+ private AvailableOSProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the osId property: The Id of an Available OS of a Test Base Account.
+ *
+ * @return the osId value.
+ */
+ public String osId() {
+ return this.innerProperties() == null ? null : this.innerProperties().osId();
+ }
+
+ /**
+ * Set the osId property: The Id of an Available OS of a Test Base Account.
+ *
+ * @param osId the osId value to set.
+ * @return the AvailableOSResourceInner object itself.
+ */
+ public AvailableOSResourceInner withOsId(String osId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AvailableOSProperties();
+ }
+ this.innerProperties().withOsId(osId);
+ return this;
+ }
+
+ /**
+ * Get the osName property: The name of an Available OS of a Test Base Account.
+ *
+ * @return the osName value.
+ */
+ public String osName() {
+ return this.innerProperties() == null ? null : this.innerProperties().osName();
+ }
+
+ /**
+ * Set the osName property: The name of an Available OS of a Test Base Account.
+ *
+ * @param osName the osName value to set.
+ * @return the AvailableOSResourceInner object itself.
+ */
+ public AvailableOSResourceInner withOsName(String osName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AvailableOSProperties();
+ }
+ this.innerProperties().withOsName(osName);
+ return this;
+ }
+
+ /**
+ * Get the osVersion property: The version of an Available OS of a Test Base Account.
+ *
+ * @return the osVersion value.
+ */
+ public String osVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().osVersion();
+ }
+
+ /**
+ * Set the osVersion property: The version of an Available OS of a Test Base Account.
+ *
+ * @param osVersion the osVersion value to set.
+ * @return the AvailableOSResourceInner object itself.
+ */
+ public AvailableOSResourceInner withOsVersion(String osVersion) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AvailableOSProperties();
+ }
+ this.innerProperties().withOsVersion(osVersion);
+ return this;
+ }
+
+ /**
+ * Get the insiderChannel property: The insider channel of an Available OS of a Test Base Account.
+ *
+ * @return the insiderChannel value.
+ */
+ public String insiderChannel() {
+ return this.innerProperties() == null ? null : this.innerProperties().insiderChannel();
+ }
+
+ /**
+ * Set the insiderChannel property: The insider channel of an Available OS of a Test Base Account.
+ *
+ * @param insiderChannel the insiderChannel value to set.
+ * @return the AvailableOSResourceInner object itself.
+ */
+ public AvailableOSResourceInner withInsiderChannel(String insiderChannel) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AvailableOSProperties();
+ }
+ this.innerProperties().withInsiderChannel(insiderChannel);
+ return this;
+ }
+
+ /**
+ * Get the osUpdateType property: The OS update type of an Available OS of a Test Base Account.
+ *
+ * @return the osUpdateType value.
+ */
+ public String osUpdateType() {
+ return this.innerProperties() == null ? null : this.innerProperties().osUpdateType();
+ }
+
+ /**
+ * Set the osUpdateType property: The OS update type of an Available OS of a Test Base Account.
+ *
+ * @param osUpdateType the osUpdateType value to set.
+ * @return the AvailableOSResourceInner object itself.
+ */
+ public AvailableOSResourceInner withOsUpdateType(String osUpdateType) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AvailableOSProperties();
+ }
+ this.innerProperties().withOsUpdateType(osUpdateType);
+ return this;
+ }
+
+ /**
+ * Get the osPlatform property: The Platform of an Available OS of a Test Base Account.
+ *
+ * @return the osPlatform value.
+ */
+ public String osPlatform() {
+ return this.innerProperties() == null ? null : this.innerProperties().osPlatform();
+ }
+
+ /**
+ * Set the osPlatform property: The Platform of an Available OS of a Test Base Account.
+ *
+ * @param osPlatform the osPlatform value to set.
+ * @return the AvailableOSResourceInner object itself.
+ */
+ public AvailableOSResourceInner withOsPlatform(String osPlatform) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AvailableOSProperties();
+ }
+ this.innerProperties().withOsPlatform(osPlatform);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/BillingHubGetFreeHourBalanceResponseInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/BillingHubGetFreeHourBalanceResponseInner.java
new file mode 100644
index 000000000000..cee94f3ac7e9
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/BillingHubGetFreeHourBalanceResponseInner.java
@@ -0,0 +1,78 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.testbase.models.BillingHubFreeHourIncrementEntry;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** The BillingHubGetFreeHourBalanceResponse model. */
+@Fluent
+public final class BillingHubGetFreeHourBalanceResponseInner {
+ /*
+ * The totalRemainingFreeHours property.
+ */
+ @JsonProperty(value = "totalRemainingFreeHours")
+ private Double totalRemainingFreeHours;
+
+ /*
+ * The incrementEntries property.
+ */
+ @JsonProperty(value = "incrementEntries")
+ private List incrementEntries;
+
+ /**
+ * Get the totalRemainingFreeHours property: The totalRemainingFreeHours property.
+ *
+ * @return the totalRemainingFreeHours value.
+ */
+ public Double totalRemainingFreeHours() {
+ return this.totalRemainingFreeHours;
+ }
+
+ /**
+ * Set the totalRemainingFreeHours property: The totalRemainingFreeHours property.
+ *
+ * @param totalRemainingFreeHours the totalRemainingFreeHours value to set.
+ * @return the BillingHubGetFreeHourBalanceResponseInner object itself.
+ */
+ public BillingHubGetFreeHourBalanceResponseInner withTotalRemainingFreeHours(Double totalRemainingFreeHours) {
+ this.totalRemainingFreeHours = totalRemainingFreeHours;
+ return this;
+ }
+
+ /**
+ * Get the incrementEntries property: The incrementEntries property.
+ *
+ * @return the incrementEntries value.
+ */
+ public List incrementEntries() {
+ return this.incrementEntries;
+ }
+
+ /**
+ * Set the incrementEntries property: The incrementEntries property.
+ *
+ * @param incrementEntries the incrementEntries value to set.
+ * @return the BillingHubGetFreeHourBalanceResponseInner object itself.
+ */
+ public BillingHubGetFreeHourBalanceResponseInner withIncrementEntries(
+ List incrementEntries) {
+ this.incrementEntries = incrementEntries;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (incrementEntries() != null) {
+ incrementEntries().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/BillingHubGetUsageResponseInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/BillingHubGetUsageResponseInner.java
new file mode 100644
index 000000000000..4a2cc2f869b2
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/BillingHubGetUsageResponseInner.java
@@ -0,0 +1,159 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.testbase.models.BillingHubGetUsageRequest;
+import com.azure.resourcemanager.testbase.models.BillingHubPackageUsage;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** The BillingHubGetUsageResponse model. */
+@Fluent
+public final class BillingHubGetUsageResponseInner {
+ /*
+ * The totalUsedFreeHours property.
+ */
+ @JsonProperty(value = "totalUsedFreeHours")
+ private Double totalUsedFreeHours;
+
+ /*
+ * The totalUsedBillableHours property.
+ */
+ @JsonProperty(value = "totalUsedBillableHours")
+ private Double totalUsedBillableHours;
+
+ /*
+ * The totalCharges property.
+ */
+ @JsonProperty(value = "totalCharges")
+ private Double totalCharges;
+
+ /*
+ * The packageUsageEntries property.
+ */
+ @JsonProperty(value = "packageUsageEntries")
+ private List packageUsageEntries;
+
+ /*
+ * The nextRequest property.
+ */
+ @JsonProperty(value = "nextRequest")
+ private BillingHubGetUsageRequest nextRequest;
+
+ /**
+ * Get the totalUsedFreeHours property: The totalUsedFreeHours property.
+ *
+ * @return the totalUsedFreeHours value.
+ */
+ public Double totalUsedFreeHours() {
+ return this.totalUsedFreeHours;
+ }
+
+ /**
+ * Set the totalUsedFreeHours property: The totalUsedFreeHours property.
+ *
+ * @param totalUsedFreeHours the totalUsedFreeHours value to set.
+ * @return the BillingHubGetUsageResponseInner object itself.
+ */
+ public BillingHubGetUsageResponseInner withTotalUsedFreeHours(Double totalUsedFreeHours) {
+ this.totalUsedFreeHours = totalUsedFreeHours;
+ return this;
+ }
+
+ /**
+ * Get the totalUsedBillableHours property: The totalUsedBillableHours property.
+ *
+ * @return the totalUsedBillableHours value.
+ */
+ public Double totalUsedBillableHours() {
+ return this.totalUsedBillableHours;
+ }
+
+ /**
+ * Set the totalUsedBillableHours property: The totalUsedBillableHours property.
+ *
+ * @param totalUsedBillableHours the totalUsedBillableHours value to set.
+ * @return the BillingHubGetUsageResponseInner object itself.
+ */
+ public BillingHubGetUsageResponseInner withTotalUsedBillableHours(Double totalUsedBillableHours) {
+ this.totalUsedBillableHours = totalUsedBillableHours;
+ return this;
+ }
+
+ /**
+ * Get the totalCharges property: The totalCharges property.
+ *
+ * @return the totalCharges value.
+ */
+ public Double totalCharges() {
+ return this.totalCharges;
+ }
+
+ /**
+ * Set the totalCharges property: The totalCharges property.
+ *
+ * @param totalCharges the totalCharges value to set.
+ * @return the BillingHubGetUsageResponseInner object itself.
+ */
+ public BillingHubGetUsageResponseInner withTotalCharges(Double totalCharges) {
+ this.totalCharges = totalCharges;
+ return this;
+ }
+
+ /**
+ * Get the packageUsageEntries property: The packageUsageEntries property.
+ *
+ * @return the packageUsageEntries value.
+ */
+ public List packageUsageEntries() {
+ return this.packageUsageEntries;
+ }
+
+ /**
+ * Set the packageUsageEntries property: The packageUsageEntries property.
+ *
+ * @param packageUsageEntries the packageUsageEntries value to set.
+ * @return the BillingHubGetUsageResponseInner object itself.
+ */
+ public BillingHubGetUsageResponseInner withPackageUsageEntries(List packageUsageEntries) {
+ this.packageUsageEntries = packageUsageEntries;
+ return this;
+ }
+
+ /**
+ * Get the nextRequest property: The nextRequest property.
+ *
+ * @return the nextRequest value.
+ */
+ public BillingHubGetUsageRequest nextRequest() {
+ return this.nextRequest;
+ }
+
+ /**
+ * Set the nextRequest property: The nextRequest property.
+ *
+ * @param nextRequest the nextRequest value to set.
+ * @return the BillingHubGetUsageResponseInner object itself.
+ */
+ public BillingHubGetUsageResponseInner withNextRequest(BillingHubGetUsageRequest nextRequest) {
+ this.nextRequest = nextRequest;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (packageUsageEntries() != null) {
+ packageUsageEntries().forEach(e -> e.validate());
+ }
+ if (nextRequest() != null) {
+ nextRequest().validate();
+ }
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/CheckNameAvailabilityResultInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/CheckNameAvailabilityResultInner.java
new file mode 100644
index 000000000000..dd2dc3098f68
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/CheckNameAvailabilityResultInner.java
@@ -0,0 +1,94 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.testbase.models.Reason;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Description of a Check Name availability response properties. */
+@Fluent
+public final class CheckNameAvailabilityResultInner {
+ /*
+ * Value indicating the availability of the name: true if the name is
+ * available; otherwise, false.
+ */
+ @JsonProperty(value = "nameAvailable")
+ private Boolean nameAvailable;
+
+ /*
+ * The reason for unavailability of a name. Required if nameAvailable ==
+ * false.
+ */
+ @JsonProperty(value = "reason")
+ private Reason reason;
+
+ /*
+ * The detailed info regarding the reason associated with the name.
+ * Required if nameAvailable == false.
+ */
+ @JsonProperty(value = "message", access = JsonProperty.Access.WRITE_ONLY)
+ private String message;
+
+ /**
+ * Get the nameAvailable property: Value indicating the availability of the name: true if the name is available;
+ * otherwise, false.
+ *
+ * @return the nameAvailable value.
+ */
+ public Boolean nameAvailable() {
+ return this.nameAvailable;
+ }
+
+ /**
+ * Set the nameAvailable property: Value indicating the availability of the name: true if the name is available;
+ * otherwise, false.
+ *
+ * @param nameAvailable the nameAvailable value to set.
+ * @return the CheckNameAvailabilityResultInner object itself.
+ */
+ public CheckNameAvailabilityResultInner withNameAvailable(Boolean nameAvailable) {
+ this.nameAvailable = nameAvailable;
+ return this;
+ }
+
+ /**
+ * Get the reason property: The reason for unavailability of a name. Required if nameAvailable == false.
+ *
+ * @return the reason value.
+ */
+ public Reason reason() {
+ return this.reason;
+ }
+
+ /**
+ * Set the reason property: The reason for unavailability of a name. Required if nameAvailable == false.
+ *
+ * @param reason the reason value to set.
+ * @return the CheckNameAvailabilityResultInner object itself.
+ */
+ public CheckNameAvailabilityResultInner withReason(Reason reason) {
+ this.reason = reason;
+ return this;
+ }
+
+ /**
+ * Get the message property: The detailed info regarding the reason associated with the name. Required if
+ * nameAvailable == false.
+ *
+ * @return the message value.
+ */
+ public String message() {
+ return this.message;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/CustomerEventProperties.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/CustomerEventProperties.java
new file mode 100644
index 000000000000..e648a5662e45
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/CustomerEventProperties.java
@@ -0,0 +1,91 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.testbase.models.NotificationEventReceiver;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** A notification events subscribed to be received by customer. */
+@Fluent
+public final class CustomerEventProperties {
+ /*
+ * The name of the event subscribed to.
+ */
+ @JsonProperty(value = "eventName", required = true)
+ private String eventName;
+
+ /*
+ * The notification event receivers.
+ */
+ @JsonProperty(value = "receivers", required = true)
+ private List receivers;
+
+ /**
+ * Get the eventName property: The name of the event subscribed to.
+ *
+ * @return the eventName value.
+ */
+ public String eventName() {
+ return this.eventName;
+ }
+
+ /**
+ * Set the eventName property: The name of the event subscribed to.
+ *
+ * @param eventName the eventName value to set.
+ * @return the CustomerEventProperties object itself.
+ */
+ public CustomerEventProperties withEventName(String eventName) {
+ this.eventName = eventName;
+ return this;
+ }
+
+ /**
+ * Get the receivers property: The notification event receivers.
+ *
+ * @return the receivers value.
+ */
+ public List receivers() {
+ return this.receivers;
+ }
+
+ /**
+ * Set the receivers property: The notification event receivers.
+ *
+ * @param receivers the receivers value to set.
+ * @return the CustomerEventProperties object itself.
+ */
+ public CustomerEventProperties withReceivers(List receivers) {
+ this.receivers = receivers;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (eventName() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property eventName in model CustomerEventProperties"));
+ }
+ if (receivers() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property receivers in model CustomerEventProperties"));
+ } else {
+ receivers().forEach(e -> e.validate());
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(CustomerEventProperties.class);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/CustomerEventResourceInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/CustomerEventResourceInner.java
new file mode 100644
index 000000000000..6861961da423
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/CustomerEventResourceInner.java
@@ -0,0 +1,103 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.resourcemanager.testbase.models.NotificationEventReceiver;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** The Customer Notification Event resource. */
+@Fluent
+public final class CustomerEventResourceInner extends ProxyResource {
+ /*
+ * The system metadata relating to this resource
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * Customer Notification Event properties.
+ */
+ @JsonProperty(value = "properties")
+ private CustomerEventProperties innerProperties;
+
+ /**
+ * Get the systemData property: The system metadata relating to this resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the innerProperties property: Customer Notification Event properties.
+ *
+ * @return the innerProperties value.
+ */
+ private CustomerEventProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the eventName property: The name of the event subscribed to.
+ *
+ * @return the eventName value.
+ */
+ public String eventName() {
+ return this.innerProperties() == null ? null : this.innerProperties().eventName();
+ }
+
+ /**
+ * Set the eventName property: The name of the event subscribed to.
+ *
+ * @param eventName the eventName value to set.
+ * @return the CustomerEventResourceInner object itself.
+ */
+ public CustomerEventResourceInner withEventName(String eventName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new CustomerEventProperties();
+ }
+ this.innerProperties().withEventName(eventName);
+ return this;
+ }
+
+ /**
+ * Get the receivers property: The notification event receivers.
+ *
+ * @return the receivers value.
+ */
+ public List receivers() {
+ return this.innerProperties() == null ? null : this.innerProperties().receivers();
+ }
+
+ /**
+ * Set the receivers property: The notification event receivers.
+ *
+ * @param receivers the receivers value to set.
+ * @return the CustomerEventResourceInner object itself.
+ */
+ public CustomerEventResourceInner withReceivers(List receivers) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new CustomerEventProperties();
+ }
+ this.innerProperties().withReceivers(receivers);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/DownloadUrlResponseInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/DownloadUrlResponseInner.java
new file mode 100644
index 000000000000..f80e867e7c19
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/DownloadUrlResponseInner.java
@@ -0,0 +1,51 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** The response of getting a download URL. */
+@Immutable
+public final class DownloadUrlResponseInner {
+ /*
+ * The download URL.
+ */
+ @JsonProperty(value = "downloadUrl", access = JsonProperty.Access.WRITE_ONLY)
+ private String downloadUrl;
+
+ /*
+ * Expiry date of the download URL.
+ */
+ @JsonProperty(value = "expirationTime", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime expirationTime;
+
+ /**
+ * Get the downloadUrl property: The download URL.
+ *
+ * @return the downloadUrl value.
+ */
+ public String downloadUrl() {
+ return this.downloadUrl;
+ }
+
+ /**
+ * Get the expirationTime property: Expiry date of the download URL.
+ *
+ * @return the expirationTime value.
+ */
+ public OffsetDateTime expirationTime() {
+ return this.expirationTime;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/EmailEventProperties.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/EmailEventProperties.java
new file mode 100644
index 000000000000..72434598d0f9
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/EmailEventProperties.java
@@ -0,0 +1,98 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The Email Event properties. */
+@Fluent
+public final class EmailEventProperties {
+ /*
+ * The identifier of the email event.
+ */
+ @JsonProperty(value = "eventId")
+ private String eventId;
+
+ /*
+ * The name of the email event.
+ */
+ @JsonProperty(value = "eventName")
+ private String eventName;
+
+ /*
+ * The display name of the email event.
+ */
+ @JsonProperty(value = "displayName")
+ private String displayName;
+
+ /**
+ * Get the eventId property: The identifier of the email event.
+ *
+ * @return the eventId value.
+ */
+ public String eventId() {
+ return this.eventId;
+ }
+
+ /**
+ * Set the eventId property: The identifier of the email event.
+ *
+ * @param eventId the eventId value to set.
+ * @return the EmailEventProperties object itself.
+ */
+ public EmailEventProperties withEventId(String eventId) {
+ this.eventId = eventId;
+ return this;
+ }
+
+ /**
+ * Get the eventName property: The name of the email event.
+ *
+ * @return the eventName value.
+ */
+ public String eventName() {
+ return this.eventName;
+ }
+
+ /**
+ * Set the eventName property: The name of the email event.
+ *
+ * @param eventName the eventName value to set.
+ * @return the EmailEventProperties object itself.
+ */
+ public EmailEventProperties withEventName(String eventName) {
+ this.eventName = eventName;
+ return this;
+ }
+
+ /**
+ * Get the displayName property: The display name of the email event.
+ *
+ * @return the displayName value.
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Set the displayName property: The display name of the email event.
+ *
+ * @param displayName the displayName value to set.
+ * @return the EmailEventProperties object itself.
+ */
+ public EmailEventProperties withDisplayName(String displayName) {
+ this.displayName = displayName;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/EmailEventResourceInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/EmailEventResourceInner.java
new file mode 100644
index 000000000000..4e09dd97bfa1
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/EmailEventResourceInner.java
@@ -0,0 +1,124 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The email event resource. */
+@Fluent
+public final class EmailEventResourceInner extends ProxyResource {
+ /*
+ * The system metadata relating to this resource
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * Email Event properties.
+ */
+ @JsonProperty(value = "properties")
+ private EmailEventProperties innerProperties;
+
+ /**
+ * Get the systemData property: The system metadata relating to this resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the innerProperties property: Email Event properties.
+ *
+ * @return the innerProperties value.
+ */
+ private EmailEventProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the eventId property: The identifier of the email event.
+ *
+ * @return the eventId value.
+ */
+ public String eventId() {
+ return this.innerProperties() == null ? null : this.innerProperties().eventId();
+ }
+
+ /**
+ * Set the eventId property: The identifier of the email event.
+ *
+ * @param eventId the eventId value to set.
+ * @return the EmailEventResourceInner object itself.
+ */
+ public EmailEventResourceInner withEventId(String eventId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new EmailEventProperties();
+ }
+ this.innerProperties().withEventId(eventId);
+ return this;
+ }
+
+ /**
+ * Get the eventName property: The name of the email event.
+ *
+ * @return the eventName value.
+ */
+ public String eventName() {
+ return this.innerProperties() == null ? null : this.innerProperties().eventName();
+ }
+
+ /**
+ * Set the eventName property: The name of the email event.
+ *
+ * @param eventName the eventName value to set.
+ * @return the EmailEventResourceInner object itself.
+ */
+ public EmailEventResourceInner withEventName(String eventName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new EmailEventProperties();
+ }
+ this.innerProperties().withEventName(eventName);
+ return this;
+ }
+
+ /**
+ * Get the displayName property: The display name of the email event.
+ *
+ * @return the displayName value.
+ */
+ public String displayName() {
+ return this.innerProperties() == null ? null : this.innerProperties().displayName();
+ }
+
+ /**
+ * Set the displayName property: The display name of the email event.
+ *
+ * @param displayName the displayName value to set.
+ * @return the EmailEventResourceInner object itself.
+ */
+ public EmailEventResourceInner withDisplayName(String displayName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new EmailEventProperties();
+ }
+ this.innerProperties().withDisplayName(displayName);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/FavoriteProcessProperties.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/FavoriteProcessProperties.java
new file mode 100644
index 000000000000..d0aec5e76783
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/FavoriteProcessProperties.java
@@ -0,0 +1,59 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Properties of a favorite process identifier. */
+@Fluent
+public final class FavoriteProcessProperties {
+ /*
+ * The actual name of the favorite process. It will be equal to resource
+ * name except for the scenario that the process name contains characters
+ * that are not allowed in the resource name.
+ */
+ @JsonProperty(value = "actualProcessName", required = true)
+ private String actualProcessName;
+
+ /**
+ * Get the actualProcessName property: The actual name of the favorite process. It will be equal to resource name
+ * except for the scenario that the process name contains characters that are not allowed in the resource name.
+ *
+ * @return the actualProcessName value.
+ */
+ public String actualProcessName() {
+ return this.actualProcessName;
+ }
+
+ /**
+ * Set the actualProcessName property: The actual name of the favorite process. It will be equal to resource name
+ * except for the scenario that the process name contains characters that are not allowed in the resource name.
+ *
+ * @param actualProcessName the actualProcessName value to set.
+ * @return the FavoriteProcessProperties object itself.
+ */
+ public FavoriteProcessProperties withActualProcessName(String actualProcessName) {
+ this.actualProcessName = actualProcessName;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (actualProcessName() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property actualProcessName in model FavoriteProcessProperties"));
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(FavoriteProcessProperties.class);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/FavoriteProcessResourceInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/FavoriteProcessResourceInner.java
new file mode 100644
index 000000000000..f9d8fce7b1c1
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/FavoriteProcessResourceInner.java
@@ -0,0 +1,80 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** A favorite process identifier. */
+@Fluent
+public final class FavoriteProcessResourceInner extends ProxyResource {
+ /*
+ * The system metadata relating to this resource
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * Properties of a favorite process identifier.
+ */
+ @JsonProperty(value = "properties")
+ private FavoriteProcessProperties innerProperties;
+
+ /**
+ * Get the systemData property: The system metadata relating to this resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the innerProperties property: Properties of a favorite process identifier.
+ *
+ * @return the innerProperties value.
+ */
+ private FavoriteProcessProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the actualProcessName property: The actual name of the favorite process. It will be equal to resource name
+ * except for the scenario that the process name contains characters that are not allowed in the resource name.
+ *
+ * @return the actualProcessName value.
+ */
+ public String actualProcessName() {
+ return this.innerProperties() == null ? null : this.innerProperties().actualProcessName();
+ }
+
+ /**
+ * Set the actualProcessName property: The actual name of the favorite process. It will be equal to resource name
+ * except for the scenario that the process name contains characters that are not allowed in the resource name.
+ *
+ * @param actualProcessName the actualProcessName value to set.
+ * @return the FavoriteProcessResourceInner object itself.
+ */
+ public FavoriteProcessResourceInner withActualProcessName(String actualProcessName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new FavoriteProcessProperties();
+ }
+ this.innerProperties().withActualProcessName(actualProcessName);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/FileUploadUrlResponseInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/FileUploadUrlResponseInner.java
new file mode 100644
index 000000000000..71dec950c236
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/FileUploadUrlResponseInner.java
@@ -0,0 +1,52 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The URL response. */
+@Immutable
+public final class FileUploadUrlResponseInner {
+ /*
+ * The URL used for uploading the package.
+ */
+ @JsonProperty(value = "uploadUrl", access = JsonProperty.Access.WRITE_ONLY)
+ private String uploadUrl;
+
+ /*
+ * The blob path of the uploaded package. It will be used as the 'blobPath'
+ * property of PackageResource.
+ */
+ @JsonProperty(value = "blobPath", access = JsonProperty.Access.WRITE_ONLY)
+ private String blobPath;
+
+ /**
+ * Get the uploadUrl property: The URL used for uploading the package.
+ *
+ * @return the uploadUrl value.
+ */
+ public String uploadUrl() {
+ return this.uploadUrl;
+ }
+
+ /**
+ * Get the blobPath property: The blob path of the uploaded package. It will be used as the 'blobPath' property of
+ * PackageResource.
+ *
+ * @return the blobPath value.
+ */
+ public String blobPath() {
+ return this.blobPath;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/FlightingRingProperties.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/FlightingRingProperties.java
new file mode 100644
index 000000000000..d17cb7c5f2c4
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/FlightingRingProperties.java
@@ -0,0 +1,46 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The Flighting Ring properties. */
+@Fluent
+public final class FlightingRingProperties {
+ /*
+ * The actual name of a flighting ring of a Test Base Account.
+ */
+ @JsonProperty(value = "actualFlightingRingName")
+ private String actualFlightingRingName;
+
+ /**
+ * Get the actualFlightingRingName property: The actual name of a flighting ring of a Test Base Account.
+ *
+ * @return the actualFlightingRingName value.
+ */
+ public String actualFlightingRingName() {
+ return this.actualFlightingRingName;
+ }
+
+ /**
+ * Set the actualFlightingRingName property: The actual name of a flighting ring of a Test Base Account.
+ *
+ * @param actualFlightingRingName the actualFlightingRingName value to set.
+ * @return the FlightingRingProperties object itself.
+ */
+ public FlightingRingProperties withActualFlightingRingName(String actualFlightingRingName) {
+ this.actualFlightingRingName = actualFlightingRingName;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/FlightingRingResourceInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/FlightingRingResourceInner.java
new file mode 100644
index 000000000000..a41495baad80
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/FlightingRingResourceInner.java
@@ -0,0 +1,78 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The flighting ring resource. */
+@Fluent
+public final class FlightingRingResourceInner extends ProxyResource {
+ /*
+ * The system metadata relating to this resource
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * Flighting Ring properties.
+ */
+ @JsonProperty(value = "properties")
+ private FlightingRingProperties innerProperties;
+
+ /**
+ * Get the systemData property: The system metadata relating to this resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the innerProperties property: Flighting Ring properties.
+ *
+ * @return the innerProperties value.
+ */
+ private FlightingRingProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the actualFlightingRingName property: The actual name of a flighting ring of a Test Base Account.
+ *
+ * @return the actualFlightingRingName value.
+ */
+ public String actualFlightingRingName() {
+ return this.innerProperties() == null ? null : this.innerProperties().actualFlightingRingName();
+ }
+
+ /**
+ * Set the actualFlightingRingName property: The actual name of a flighting ring of a Test Base Account.
+ *
+ * @param actualFlightingRingName the actualFlightingRingName value to set.
+ * @return the FlightingRingResourceInner object itself.
+ */
+ public FlightingRingResourceInner withActualFlightingRingName(String actualFlightingRingName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new FlightingRingProperties();
+ }
+ this.innerProperties().withActualFlightingRingName(actualFlightingRingName);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/OSUpdateProperties.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/OSUpdateProperties.java
new file mode 100644
index 000000000000..a921df9ceeda
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/OSUpdateProperties.java
@@ -0,0 +1,204 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.testbase.models.Type;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** Properties of an OS Update. */
+@Fluent
+public final class OSUpdateProperties {
+ /*
+ * The name of the OS.
+ */
+ @JsonProperty(value = "osName")
+ private String osName;
+
+ /*
+ * The name of tested release.
+ */
+ @JsonProperty(value = "release")
+ private String release;
+
+ /*
+ * The flighting ring, only for release of feature updates.
+ */
+ @JsonProperty(value = "flightingRing")
+ private String flightingRing;
+
+ /*
+ * The build version of the tested release (OS update).
+ */
+ @JsonProperty(value = "buildVersion")
+ private String buildVersion;
+
+ /*
+ * The build revision of the tested release (OS update)
+ */
+ @JsonProperty(value = "buildRevision")
+ private String buildRevision;
+
+ /*
+ * The type of this release (OS update).
+ */
+ @JsonProperty(value = "type")
+ private Type type;
+
+ /*
+ * The release version date the tested release (OS update)
+ */
+ @JsonProperty(value = "releaseVersionDate")
+ private OffsetDateTime releaseVersionDate;
+
+ /**
+ * Get the osName property: The name of the OS.
+ *
+ * @return the osName value.
+ */
+ public String osName() {
+ return this.osName;
+ }
+
+ /**
+ * Set the osName property: The name of the OS.
+ *
+ * @param osName the osName value to set.
+ * @return the OSUpdateProperties object itself.
+ */
+ public OSUpdateProperties withOsName(String osName) {
+ this.osName = osName;
+ return this;
+ }
+
+ /**
+ * Get the release property: The name of tested release.
+ *
+ * @return the release value.
+ */
+ public String release() {
+ return this.release;
+ }
+
+ /**
+ * Set the release property: The name of tested release.
+ *
+ * @param release the release value to set.
+ * @return the OSUpdateProperties object itself.
+ */
+ public OSUpdateProperties withRelease(String release) {
+ this.release = release;
+ return this;
+ }
+
+ /**
+ * Get the flightingRing property: The flighting ring, only for release of feature updates.
+ *
+ * @return the flightingRing value.
+ */
+ public String flightingRing() {
+ return this.flightingRing;
+ }
+
+ /**
+ * Set the flightingRing property: The flighting ring, only for release of feature updates.
+ *
+ * @param flightingRing the flightingRing value to set.
+ * @return the OSUpdateProperties object itself.
+ */
+ public OSUpdateProperties withFlightingRing(String flightingRing) {
+ this.flightingRing = flightingRing;
+ return this;
+ }
+
+ /**
+ * Get the buildVersion property: The build version of the tested release (OS update).
+ *
+ * @return the buildVersion value.
+ */
+ public String buildVersion() {
+ return this.buildVersion;
+ }
+
+ /**
+ * Set the buildVersion property: The build version of the tested release (OS update).
+ *
+ * @param buildVersion the buildVersion value to set.
+ * @return the OSUpdateProperties object itself.
+ */
+ public OSUpdateProperties withBuildVersion(String buildVersion) {
+ this.buildVersion = buildVersion;
+ return this;
+ }
+
+ /**
+ * Get the buildRevision property: The build revision of the tested release (OS update).
+ *
+ * @return the buildRevision value.
+ */
+ public String buildRevision() {
+ return this.buildRevision;
+ }
+
+ /**
+ * Set the buildRevision property: The build revision of the tested release (OS update).
+ *
+ * @param buildRevision the buildRevision value to set.
+ * @return the OSUpdateProperties object itself.
+ */
+ public OSUpdateProperties withBuildRevision(String buildRevision) {
+ this.buildRevision = buildRevision;
+ return this;
+ }
+
+ /**
+ * Get the type property: The type of this release (OS update).
+ *
+ * @return the type value.
+ */
+ public Type type() {
+ return this.type;
+ }
+
+ /**
+ * Set the type property: The type of this release (OS update).
+ *
+ * @param type the type value to set.
+ * @return the OSUpdateProperties object itself.
+ */
+ public OSUpdateProperties withType(Type type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get the releaseVersionDate property: The release version date the tested release (OS update).
+ *
+ * @return the releaseVersionDate value.
+ */
+ public OffsetDateTime releaseVersionDate() {
+ return this.releaseVersionDate;
+ }
+
+ /**
+ * Set the releaseVersionDate property: The release version date the tested release (OS update).
+ *
+ * @param releaseVersionDate the releaseVersionDate value to set.
+ * @return the OSUpdateProperties object itself.
+ */
+ public OSUpdateProperties withReleaseVersionDate(OffsetDateTime releaseVersionDate) {
+ this.releaseVersionDate = releaseVersionDate;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/OSUpdateResourceInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/OSUpdateResourceInner.java
new file mode 100644
index 000000000000..4810cf898e6a
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/OSUpdateResourceInner.java
@@ -0,0 +1,218 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.resourcemanager.testbase.models.Type;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** An OS Update. */
+@Fluent
+public final class OSUpdateResourceInner extends ProxyResource {
+ /*
+ * The system metadata relating to this resource
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * Properties of an OS Update.
+ */
+ @JsonProperty(value = "properties")
+ private OSUpdateProperties innerProperties;
+
+ /**
+ * Get the systemData property: The system metadata relating to this resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the innerProperties property: Properties of an OS Update.
+ *
+ * @return the innerProperties value.
+ */
+ private OSUpdateProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the osName property: The name of the OS.
+ *
+ * @return the osName value.
+ */
+ public String osName() {
+ return this.innerProperties() == null ? null : this.innerProperties().osName();
+ }
+
+ /**
+ * Set the osName property: The name of the OS.
+ *
+ * @param osName the osName value to set.
+ * @return the OSUpdateResourceInner object itself.
+ */
+ public OSUpdateResourceInner withOsName(String osName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new OSUpdateProperties();
+ }
+ this.innerProperties().withOsName(osName);
+ return this;
+ }
+
+ /**
+ * Get the release property: The name of tested release.
+ *
+ * @return the release value.
+ */
+ public String release() {
+ return this.innerProperties() == null ? null : this.innerProperties().release();
+ }
+
+ /**
+ * Set the release property: The name of tested release.
+ *
+ * @param release the release value to set.
+ * @return the OSUpdateResourceInner object itself.
+ */
+ public OSUpdateResourceInner withRelease(String release) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new OSUpdateProperties();
+ }
+ this.innerProperties().withRelease(release);
+ return this;
+ }
+
+ /**
+ * Get the flightingRing property: The flighting ring, only for release of feature updates.
+ *
+ * @return the flightingRing value.
+ */
+ public String flightingRing() {
+ return this.innerProperties() == null ? null : this.innerProperties().flightingRing();
+ }
+
+ /**
+ * Set the flightingRing property: The flighting ring, only for release of feature updates.
+ *
+ * @param flightingRing the flightingRing value to set.
+ * @return the OSUpdateResourceInner object itself.
+ */
+ public OSUpdateResourceInner withFlightingRing(String flightingRing) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new OSUpdateProperties();
+ }
+ this.innerProperties().withFlightingRing(flightingRing);
+ return this;
+ }
+
+ /**
+ * Get the buildVersion property: The build version of the tested release (OS update).
+ *
+ * @return the buildVersion value.
+ */
+ public String buildVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().buildVersion();
+ }
+
+ /**
+ * Set the buildVersion property: The build version of the tested release (OS update).
+ *
+ * @param buildVersion the buildVersion value to set.
+ * @return the OSUpdateResourceInner object itself.
+ */
+ public OSUpdateResourceInner withBuildVersion(String buildVersion) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new OSUpdateProperties();
+ }
+ this.innerProperties().withBuildVersion(buildVersion);
+ return this;
+ }
+
+ /**
+ * Get the buildRevision property: The build revision of the tested release (OS update).
+ *
+ * @return the buildRevision value.
+ */
+ public String buildRevision() {
+ return this.innerProperties() == null ? null : this.innerProperties().buildRevision();
+ }
+
+ /**
+ * Set the buildRevision property: The build revision of the tested release (OS update).
+ *
+ * @param buildRevision the buildRevision value to set.
+ * @return the OSUpdateResourceInner object itself.
+ */
+ public OSUpdateResourceInner withBuildRevision(String buildRevision) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new OSUpdateProperties();
+ }
+ this.innerProperties().withBuildRevision(buildRevision);
+ return this;
+ }
+
+ /**
+ * Get the type property: The type of this release (OS update).
+ *
+ * @return the type value.
+ */
+ public Type typePropertiesType() {
+ return this.innerProperties() == null ? null : this.innerProperties().type();
+ }
+
+ /**
+ * Set the type property: The type of this release (OS update).
+ *
+ * @param type the type value to set.
+ * @return the OSUpdateResourceInner object itself.
+ */
+ public OSUpdateResourceInner withTypePropertiesType(Type type) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new OSUpdateProperties();
+ }
+ this.innerProperties().withType(type);
+ return this;
+ }
+
+ /**
+ * Get the releaseVersionDate property: The release version date the tested release (OS update).
+ *
+ * @return the releaseVersionDate value.
+ */
+ public OffsetDateTime releaseVersionDate() {
+ return this.innerProperties() == null ? null : this.innerProperties().releaseVersionDate();
+ }
+
+ /**
+ * Set the releaseVersionDate property: The release version date the tested release (OS update).
+ *
+ * @param releaseVersionDate the releaseVersionDate value to set.
+ * @return the OSUpdateResourceInner object itself.
+ */
+ public OSUpdateResourceInner withReleaseVersionDate(OffsetDateTime releaseVersionDate) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new OSUpdateProperties();
+ }
+ this.innerProperties().withReleaseVersionDate(releaseVersionDate);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/OperationInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/OperationInner.java
new file mode 100644
index 000000000000..c5c862f42c4a
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/OperationInner.java
@@ -0,0 +1,121 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.testbase.models.OperationDisplay;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** REST API operation. */
+@Fluent
+public final class OperationInner {
+ /*
+ * Operation name: {provider}/{resource}/{operation}.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /*
+ * Indicates whether the operation is a data action
+ */
+ @JsonProperty(value = "isDataAction", access = JsonProperty.Access.WRITE_ONLY)
+ private Boolean isDataAction;
+
+ /*
+ * Origin of the operation
+ */
+ @JsonProperty(value = "origin", access = JsonProperty.Access.WRITE_ONLY)
+ private String origin;
+
+ /*
+ * The object that describes the operation.
+ */
+ @JsonProperty(value = "display")
+ private OperationDisplay display;
+
+ /*
+ * Extra properties of the operation.
+ */
+ @JsonProperty(value = "properties")
+ private Object properties;
+
+ /**
+ * Get the name property: Operation name: {provider}/{resource}/{operation}.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the isDataAction property: Indicates whether the operation is a data action.
+ *
+ * @return the isDataAction value.
+ */
+ public Boolean isDataAction() {
+ return this.isDataAction;
+ }
+
+ /**
+ * Get the origin property: Origin of the operation.
+ *
+ * @return the origin value.
+ */
+ public String origin() {
+ return this.origin;
+ }
+
+ /**
+ * Get the display property: The object that describes the operation.
+ *
+ * @return the display value.
+ */
+ public OperationDisplay display() {
+ return this.display;
+ }
+
+ /**
+ * Set the display property: The object that describes the operation.
+ *
+ * @param display the display value to set.
+ * @return the OperationInner object itself.
+ */
+ public OperationInner withDisplay(OperationDisplay display) {
+ this.display = display;
+ return this;
+ }
+
+ /**
+ * Get the properties property: Extra properties of the operation.
+ *
+ * @return the properties value.
+ */
+ public Object properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: Extra properties of the operation.
+ *
+ * @param properties the properties value to set.
+ * @return the OperationInner object itself.
+ */
+ public OperationInner withProperties(Object properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (display() != null) {
+ display().validate();
+ }
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/PackageProperties.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/PackageProperties.java
new file mode 100644
index 000000000000..1480e21f10b0
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/PackageProperties.java
@@ -0,0 +1,319 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.testbase.models.PackageStatus;
+import com.azure.resourcemanager.testbase.models.PackageValidationResult;
+import com.azure.resourcemanager.testbase.models.ProvisioningState;
+import com.azure.resourcemanager.testbase.models.TargetOSInfo;
+import com.azure.resourcemanager.testbase.models.Test;
+import com.azure.resourcemanager.testbase.models.TestType;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+import java.util.List;
+
+/** The properties of the Test Base Package. */
+@Fluent
+public final class PackageProperties {
+ /*
+ * The provisioning state of the resource.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private ProvisioningState provisioningState;
+
+ /*
+ * Application name
+ */
+ @JsonProperty(value = "applicationName", required = true)
+ private String applicationName;
+
+ /*
+ * Application version
+ */
+ @JsonProperty(value = "version", required = true)
+ private String version;
+
+ /*
+ * OOB, functional or both. Mapped to the data in 'tests' property.
+ */
+ @JsonProperty(value = "testTypes", access = JsonProperty.Access.WRITE_ONLY)
+ private List testTypes;
+
+ /*
+ * Specifies the target OSs of specific OS Update types.
+ */
+ @JsonProperty(value = "targetOSList", required = true)
+ private List targetOSList;
+
+ /*
+ * The status of the package.
+ */
+ @JsonProperty(value = "packageStatus", access = JsonProperty.Access.WRITE_ONLY)
+ private PackageStatus packageStatus;
+
+ /*
+ * The UTC timestamp when the package was last modified.
+ */
+ @JsonProperty(value = "lastModifiedTime", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime lastModifiedTime;
+
+ /*
+ * The flighting ring for feature update.
+ */
+ @JsonProperty(value = "flightingRing", required = true)
+ private String flightingRing;
+
+ /*
+ * Flag showing that whether the package is enabled. It doesn't schedule
+ * test for package which is not enabled.
+ */
+ @JsonProperty(value = "isEnabled", access = JsonProperty.Access.WRITE_ONLY)
+ private Boolean isEnabled;
+
+ /*
+ * The file path of the package.
+ */
+ @JsonProperty(value = "blobPath", required = true)
+ private String blobPath;
+
+ /*
+ * The validation results. There's validation on package when it's created
+ * or updated.
+ */
+ @JsonProperty(value = "validationResults", access = JsonProperty.Access.WRITE_ONLY)
+ private List validationResults;
+
+ /*
+ * The detailed test information.
+ */
+ @JsonProperty(value = "tests", required = true)
+ private List tests;
+
+ /**
+ * Get the provisioningState property: The provisioning state of the resource.
+ *
+ * @return the provisioningState value.
+ */
+ public ProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the applicationName property: Application name.
+ *
+ * @return the applicationName value.
+ */
+ public String applicationName() {
+ return this.applicationName;
+ }
+
+ /**
+ * Set the applicationName property: Application name.
+ *
+ * @param applicationName the applicationName value to set.
+ * @return the PackageProperties object itself.
+ */
+ public PackageProperties withApplicationName(String applicationName) {
+ this.applicationName = applicationName;
+ return this;
+ }
+
+ /**
+ * Get the version property: Application version.
+ *
+ * @return the version value.
+ */
+ public String version() {
+ return this.version;
+ }
+
+ /**
+ * Set the version property: Application version.
+ *
+ * @param version the version value to set.
+ * @return the PackageProperties object itself.
+ */
+ public PackageProperties withVersion(String version) {
+ this.version = version;
+ return this;
+ }
+
+ /**
+ * Get the testTypes property: OOB, functional or both. Mapped to the data in 'tests' property.
+ *
+ * @return the testTypes value.
+ */
+ public List testTypes() {
+ return this.testTypes;
+ }
+
+ /**
+ * Get the targetOSList property: Specifies the target OSs of specific OS Update types.
+ *
+ * @return the targetOSList value.
+ */
+ public List targetOSList() {
+ return this.targetOSList;
+ }
+
+ /**
+ * Set the targetOSList property: Specifies the target OSs of specific OS Update types.
+ *
+ * @param targetOSList the targetOSList value to set.
+ * @return the PackageProperties object itself.
+ */
+ public PackageProperties withTargetOSList(List targetOSList) {
+ this.targetOSList = targetOSList;
+ return this;
+ }
+
+ /**
+ * Get the packageStatus property: The status of the package.
+ *
+ * @return the packageStatus value.
+ */
+ public PackageStatus packageStatus() {
+ return this.packageStatus;
+ }
+
+ /**
+ * Get the lastModifiedTime property: The UTC timestamp when the package was last modified.
+ *
+ * @return the lastModifiedTime value.
+ */
+ public OffsetDateTime lastModifiedTime() {
+ return this.lastModifiedTime;
+ }
+
+ /**
+ * Get the flightingRing property: The flighting ring for feature update.
+ *
+ * @return the flightingRing value.
+ */
+ public String flightingRing() {
+ return this.flightingRing;
+ }
+
+ /**
+ * Set the flightingRing property: The flighting ring for feature update.
+ *
+ * @param flightingRing the flightingRing value to set.
+ * @return the PackageProperties object itself.
+ */
+ public PackageProperties withFlightingRing(String flightingRing) {
+ this.flightingRing = flightingRing;
+ return this;
+ }
+
+ /**
+ * Get the isEnabled property: Flag showing that whether the package is enabled. It doesn't schedule test for
+ * package which is not enabled.
+ *
+ * @return the isEnabled value.
+ */
+ public Boolean isEnabled() {
+ return this.isEnabled;
+ }
+
+ /**
+ * Get the blobPath property: The file path of the package.
+ *
+ * @return the blobPath value.
+ */
+ public String blobPath() {
+ return this.blobPath;
+ }
+
+ /**
+ * Set the blobPath property: The file path of the package.
+ *
+ * @param blobPath the blobPath value to set.
+ * @return the PackageProperties object itself.
+ */
+ public PackageProperties withBlobPath(String blobPath) {
+ this.blobPath = blobPath;
+ return this;
+ }
+
+ /**
+ * Get the validationResults property: The validation results. There's validation on package when it's created or
+ * updated.
+ *
+ * @return the validationResults value.
+ */
+ public List validationResults() {
+ return this.validationResults;
+ }
+
+ /**
+ * Get the tests property: The detailed test information.
+ *
+ * @return the tests value.
+ */
+ public List tests() {
+ return this.tests;
+ }
+
+ /**
+ * Set the tests property: The detailed test information.
+ *
+ * @param tests the tests value to set.
+ * @return the PackageProperties object itself.
+ */
+ public PackageProperties withTests(List tests) {
+ this.tests = tests;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (applicationName() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property applicationName in model PackageProperties"));
+ }
+ if (version() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property version in model PackageProperties"));
+ }
+ if (targetOSList() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property targetOSList in model PackageProperties"));
+ } else {
+ targetOSList().forEach(e -> e.validate());
+ }
+ if (flightingRing() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property flightingRing in model PackageProperties"));
+ }
+ if (blobPath() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property blobPath in model PackageProperties"));
+ }
+ if (validationResults() != null) {
+ validationResults().forEach(e -> e.validate());
+ }
+ if (tests() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property tests in model PackageProperties"));
+ } else {
+ tests().forEach(e -> e.validate());
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(PackageProperties.class);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/PackageResourceInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/PackageResourceInner.java
new file mode 100644
index 000000000000..a9fa15fec266
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/PackageResourceInner.java
@@ -0,0 +1,287 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.core.management.SystemData;
+import com.azure.resourcemanager.testbase.models.PackageStatus;
+import com.azure.resourcemanager.testbase.models.PackageValidationResult;
+import com.azure.resourcemanager.testbase.models.ProvisioningState;
+import com.azure.resourcemanager.testbase.models.TargetOSInfo;
+import com.azure.resourcemanager.testbase.models.Test;
+import com.azure.resourcemanager.testbase.models.TestType;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+import java.util.List;
+import java.util.Map;
+
+/** The Test Base Package resource. */
+@Fluent
+public final class PackageResourceInner extends Resource {
+ /*
+ * The system metadata relating to this resource
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * Test Base Package properties.
+ */
+ @JsonProperty(value = "properties")
+ private PackageProperties innerProperties;
+
+ /*
+ * Resource Etag.
+ */
+ @JsonProperty(value = "etag", access = JsonProperty.Access.WRITE_ONLY)
+ private String etag;
+
+ /**
+ * Get the systemData property: The system metadata relating to this resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the innerProperties property: Test Base Package properties.
+ *
+ * @return the innerProperties value.
+ */
+ private PackageProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the etag property: Resource Etag.
+ *
+ * @return the etag value.
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public PackageResourceInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public PackageResourceInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the provisioningState property: The provisioning state of the resource.
+ *
+ * @return the provisioningState value.
+ */
+ public ProvisioningState provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Get the applicationName property: Application name.
+ *
+ * @return the applicationName value.
+ */
+ public String applicationName() {
+ return this.innerProperties() == null ? null : this.innerProperties().applicationName();
+ }
+
+ /**
+ * Set the applicationName property: Application name.
+ *
+ * @param applicationName the applicationName value to set.
+ * @return the PackageResourceInner object itself.
+ */
+ public PackageResourceInner withApplicationName(String applicationName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new PackageProperties();
+ }
+ this.innerProperties().withApplicationName(applicationName);
+ return this;
+ }
+
+ /**
+ * Get the version property: Application version.
+ *
+ * @return the version value.
+ */
+ public String version() {
+ return this.innerProperties() == null ? null : this.innerProperties().version();
+ }
+
+ /**
+ * Set the version property: Application version.
+ *
+ * @param version the version value to set.
+ * @return the PackageResourceInner object itself.
+ */
+ public PackageResourceInner withVersion(String version) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new PackageProperties();
+ }
+ this.innerProperties().withVersion(version);
+ return this;
+ }
+
+ /**
+ * Get the testTypes property: OOB, functional or both. Mapped to the data in 'tests' property.
+ *
+ * @return the testTypes value.
+ */
+ public List testTypes() {
+ return this.innerProperties() == null ? null : this.innerProperties().testTypes();
+ }
+
+ /**
+ * Get the targetOSList property: Specifies the target OSs of specific OS Update types.
+ *
+ * @return the targetOSList value.
+ */
+ public List targetOSList() {
+ return this.innerProperties() == null ? null : this.innerProperties().targetOSList();
+ }
+
+ /**
+ * Set the targetOSList property: Specifies the target OSs of specific OS Update types.
+ *
+ * @param targetOSList the targetOSList value to set.
+ * @return the PackageResourceInner object itself.
+ */
+ public PackageResourceInner withTargetOSList(List targetOSList) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new PackageProperties();
+ }
+ this.innerProperties().withTargetOSList(targetOSList);
+ return this;
+ }
+
+ /**
+ * Get the packageStatus property: The status of the package.
+ *
+ * @return the packageStatus value.
+ */
+ public PackageStatus packageStatus() {
+ return this.innerProperties() == null ? null : this.innerProperties().packageStatus();
+ }
+
+ /**
+ * Get the lastModifiedTime property: The UTC timestamp when the package was last modified.
+ *
+ * @return the lastModifiedTime value.
+ */
+ public OffsetDateTime lastModifiedTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().lastModifiedTime();
+ }
+
+ /**
+ * Get the flightingRing property: The flighting ring for feature update.
+ *
+ * @return the flightingRing value.
+ */
+ public String flightingRing() {
+ return this.innerProperties() == null ? null : this.innerProperties().flightingRing();
+ }
+
+ /**
+ * Set the flightingRing property: The flighting ring for feature update.
+ *
+ * @param flightingRing the flightingRing value to set.
+ * @return the PackageResourceInner object itself.
+ */
+ public PackageResourceInner withFlightingRing(String flightingRing) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new PackageProperties();
+ }
+ this.innerProperties().withFlightingRing(flightingRing);
+ return this;
+ }
+
+ /**
+ * Get the isEnabled property: Flag showing that whether the package is enabled. It doesn't schedule test for
+ * package which is not enabled.
+ *
+ * @return the isEnabled value.
+ */
+ public Boolean isEnabled() {
+ return this.innerProperties() == null ? null : this.innerProperties().isEnabled();
+ }
+
+ /**
+ * Get the blobPath property: The file path of the package.
+ *
+ * @return the blobPath value.
+ */
+ public String blobPath() {
+ return this.innerProperties() == null ? null : this.innerProperties().blobPath();
+ }
+
+ /**
+ * Set the blobPath property: The file path of the package.
+ *
+ * @param blobPath the blobPath value to set.
+ * @return the PackageResourceInner object itself.
+ */
+ public PackageResourceInner withBlobPath(String blobPath) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new PackageProperties();
+ }
+ this.innerProperties().withBlobPath(blobPath);
+ return this;
+ }
+
+ /**
+ * Get the validationResults property: The validation results. There's validation on package when it's created or
+ * updated.
+ *
+ * @return the validationResults value.
+ */
+ public List validationResults() {
+ return this.innerProperties() == null ? null : this.innerProperties().validationResults();
+ }
+
+ /**
+ * Get the tests property: The detailed test information.
+ *
+ * @return the tests value.
+ */
+ public List tests() {
+ return this.innerProperties() == null ? null : this.innerProperties().tests();
+ }
+
+ /**
+ * Set the tests property: The detailed test information.
+ *
+ * @param tests the tests value to set.
+ * @return the PackageResourceInner object itself.
+ */
+ public PackageResourceInner withTests(List tests) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new PackageProperties();
+ }
+ this.innerProperties().withTests(tests);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/PackageUpdateParameterProperties.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/PackageUpdateParameterProperties.java
new file mode 100644
index 000000000000..b422983470bc
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/PackageUpdateParameterProperties.java
@@ -0,0 +1,162 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.testbase.models.TargetOSInfo;
+import com.azure.resourcemanager.testbase.models.Test;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Parameters supplied to update a Test Base Package. */
+@Fluent
+public final class PackageUpdateParameterProperties {
+ /*
+ * Specifies the target OSs of specific OS Update types.
+ */
+ @JsonProperty(value = "targetOSList")
+ private List targetOSList;
+
+ /*
+ * The flighting ring for feature update.
+ */
+ @JsonProperty(value = "flightingRing")
+ private String flightingRing;
+
+ /*
+ * Specifies whether the package is enabled. It doesn't schedule test for
+ * package which is not enabled.
+ */
+ @JsonProperty(value = "isEnabled")
+ private Boolean isEnabled;
+
+ /*
+ * The file name of the package.
+ */
+ @JsonProperty(value = "blobPath")
+ private String blobPath;
+
+ /*
+ * The detailed test information.
+ */
+ @JsonProperty(value = "tests")
+ private List tests;
+
+ /**
+ * Get the targetOSList property: Specifies the target OSs of specific OS Update types.
+ *
+ * @return the targetOSList value.
+ */
+ public List targetOSList() {
+ return this.targetOSList;
+ }
+
+ /**
+ * Set the targetOSList property: Specifies the target OSs of specific OS Update types.
+ *
+ * @param targetOSList the targetOSList value to set.
+ * @return the PackageUpdateParameterProperties object itself.
+ */
+ public PackageUpdateParameterProperties withTargetOSList(List targetOSList) {
+ this.targetOSList = targetOSList;
+ return this;
+ }
+
+ /**
+ * Get the flightingRing property: The flighting ring for feature update.
+ *
+ * @return the flightingRing value.
+ */
+ public String flightingRing() {
+ return this.flightingRing;
+ }
+
+ /**
+ * Set the flightingRing property: The flighting ring for feature update.
+ *
+ * @param flightingRing the flightingRing value to set.
+ * @return the PackageUpdateParameterProperties object itself.
+ */
+ public PackageUpdateParameterProperties withFlightingRing(String flightingRing) {
+ this.flightingRing = flightingRing;
+ return this;
+ }
+
+ /**
+ * Get the isEnabled property: Specifies whether the package is enabled. It doesn't schedule test for package which
+ * is not enabled.
+ *
+ * @return the isEnabled value.
+ */
+ public Boolean isEnabled() {
+ return this.isEnabled;
+ }
+
+ /**
+ * Set the isEnabled property: Specifies whether the package is enabled. It doesn't schedule test for package which
+ * is not enabled.
+ *
+ * @param isEnabled the isEnabled value to set.
+ * @return the PackageUpdateParameterProperties object itself.
+ */
+ public PackageUpdateParameterProperties withIsEnabled(Boolean isEnabled) {
+ this.isEnabled = isEnabled;
+ return this;
+ }
+
+ /**
+ * Get the blobPath property: The file name of the package.
+ *
+ * @return the blobPath value.
+ */
+ public String blobPath() {
+ return this.blobPath;
+ }
+
+ /**
+ * Set the blobPath property: The file name of the package.
+ *
+ * @param blobPath the blobPath value to set.
+ * @return the PackageUpdateParameterProperties object itself.
+ */
+ public PackageUpdateParameterProperties withBlobPath(String blobPath) {
+ this.blobPath = blobPath;
+ return this;
+ }
+
+ /**
+ * Get the tests property: The detailed test information.
+ *
+ * @return the tests value.
+ */
+ public List tests() {
+ return this.tests;
+ }
+
+ /**
+ * Set the tests property: The detailed test information.
+ *
+ * @param tests the tests value to set.
+ * @return the PackageUpdateParameterProperties object itself.
+ */
+ public PackageUpdateParameterProperties withTests(List tests) {
+ this.tests = tests;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (targetOSList() != null) {
+ targetOSList().forEach(e -> e.validate());
+ }
+ if (tests() != null) {
+ tests().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestBaseAccountResourceInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestBaseAccountResourceInner.java
new file mode 100644
index 000000000000..e326956a1ed7
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestBaseAccountResourceInner.java
@@ -0,0 +1,127 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.core.management.SystemData;
+import com.azure.resourcemanager.testbase.models.ProvisioningState;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** The Test Base Account resource. */
+@Fluent
+public final class TestBaseAccountResourceInner extends Resource {
+ /*
+ * The system metadata relating to this resource
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * Properties of a Test Base Account.
+ */
+ @JsonProperty(value = "properties")
+ private TestBaseAccountResourcePropertiesInner innerProperties;
+
+ /*
+ * Resource Etag.
+ */
+ @JsonProperty(value = "etag", access = JsonProperty.Access.WRITE_ONLY)
+ private String etag;
+
+ /**
+ * Get the systemData property: The system metadata relating to this resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the innerProperties property: Properties of a Test Base Account.
+ *
+ * @return the innerProperties value.
+ */
+ private TestBaseAccountResourcePropertiesInner innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the etag property: Resource Etag.
+ *
+ * @return the etag value.
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public TestBaseAccountResourceInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public TestBaseAccountResourceInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the provisioningState property: The provisioning state of the resource.
+ *
+ * @return the provisioningState value.
+ */
+ public ProvisioningState provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Get the sku property: The SKU of the Test Base Account.
+ *
+ * @return the sku value.
+ */
+ public TestBaseAccountSkuInner sku() {
+ return this.innerProperties() == null ? null : this.innerProperties().sku();
+ }
+
+ /**
+ * Set the sku property: The SKU of the Test Base Account.
+ *
+ * @param sku the sku value to set.
+ * @return the TestBaseAccountResourceInner object itself.
+ */
+ public TestBaseAccountResourceInner withSku(TestBaseAccountSkuInner sku) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestBaseAccountResourcePropertiesInner();
+ }
+ this.innerProperties().withSku(sku);
+ return this;
+ }
+
+ /**
+ * Get the accessLevel property: The access level of the Test Base Account.
+ *
+ * @return the accessLevel value.
+ */
+ public String accessLevel() {
+ return this.innerProperties() == null ? null : this.innerProperties().accessLevel();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestBaseAccountResourcePropertiesInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestBaseAccountResourcePropertiesInner.java
new file mode 100644
index 000000000000..426747532775
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestBaseAccountResourcePropertiesInner.java
@@ -0,0 +1,88 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.testbase.models.ProvisioningState;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The properties of a Test Base Account resource. */
+@Fluent
+public final class TestBaseAccountResourcePropertiesInner {
+ /*
+ * The provisioning state of the resource.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private ProvisioningState provisioningState;
+
+ /*
+ * The SKU of the Test Base Account.
+ */
+ @JsonProperty(value = "sku", required = true)
+ private TestBaseAccountSkuInner sku;
+
+ /*
+ * The access level of the Test Base Account.
+ */
+ @JsonProperty(value = "accessLevel", access = JsonProperty.Access.WRITE_ONLY)
+ private String accessLevel;
+
+ /**
+ * Get the provisioningState property: The provisioning state of the resource.
+ *
+ * @return the provisioningState value.
+ */
+ public ProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the sku property: The SKU of the Test Base Account.
+ *
+ * @return the sku value.
+ */
+ public TestBaseAccountSkuInner sku() {
+ return this.sku;
+ }
+
+ /**
+ * Set the sku property: The SKU of the Test Base Account.
+ *
+ * @param sku the sku value to set.
+ * @return the TestBaseAccountResourcePropertiesInner object itself.
+ */
+ public TestBaseAccountResourcePropertiesInner withSku(TestBaseAccountSkuInner sku) {
+ this.sku = sku;
+ return this;
+ }
+
+ /**
+ * Get the accessLevel property: The access level of the Test Base Account.
+ *
+ * @return the accessLevel value.
+ */
+ public String accessLevel() {
+ return this.accessLevel;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (sku() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property sku in model TestBaseAccountResourcePropertiesInner"));
+ } else {
+ sku().validate();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(TestBaseAccountResourcePropertiesInner.class);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestBaseAccountSkuInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestBaseAccountSkuInner.java
new file mode 100644
index 000000000000..3b587265744b
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestBaseAccountSkuInner.java
@@ -0,0 +1,159 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.testbase.models.TestBaseAccountSkuCapability;
+import com.azure.resourcemanager.testbase.models.Tier;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Describes a Test Base Account SKU. */
+@Fluent
+public final class TestBaseAccountSkuInner {
+ /*
+ * The type of resource the SKU applies to.
+ */
+ @JsonProperty(value = "resourceType")
+ private String resourceType;
+
+ /*
+ * The name of the SKU. This is typically a letter + number code, such as
+ * B0 or S0.
+ */
+ @JsonProperty(value = "name", required = true)
+ private String name;
+
+ /*
+ * The tier of this particular SKU.
+ */
+ @JsonProperty(value = "tier", required = true)
+ private Tier tier;
+
+ /*
+ * The capabilities of a SKU.
+ */
+ @JsonProperty(value = "capabilities", access = JsonProperty.Access.WRITE_ONLY)
+ private List capabilities;
+
+ /*
+ * The locations that the SKU is available.
+ */
+ @JsonProperty(value = "locations")
+ private List locations;
+
+ /**
+ * Get the resourceType property: The type of resource the SKU applies to.
+ *
+ * @return the resourceType value.
+ */
+ public String resourceType() {
+ return this.resourceType;
+ }
+
+ /**
+ * Set the resourceType property: The type of resource the SKU applies to.
+ *
+ * @param resourceType the resourceType value to set.
+ * @return the TestBaseAccountSkuInner object itself.
+ */
+ public TestBaseAccountSkuInner withResourceType(String resourceType) {
+ this.resourceType = resourceType;
+ return this;
+ }
+
+ /**
+ * Get the name property: The name of the SKU. This is typically a letter + number code, such as B0 or S0.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name property: The name of the SKU. This is typically a letter + number code, such as B0 or S0.
+ *
+ * @param name the name value to set.
+ * @return the TestBaseAccountSkuInner object itself.
+ */
+ public TestBaseAccountSkuInner withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the tier property: The tier of this particular SKU.
+ *
+ * @return the tier value.
+ */
+ public Tier tier() {
+ return this.tier;
+ }
+
+ /**
+ * Set the tier property: The tier of this particular SKU.
+ *
+ * @param tier the tier value to set.
+ * @return the TestBaseAccountSkuInner object itself.
+ */
+ public TestBaseAccountSkuInner withTier(Tier tier) {
+ this.tier = tier;
+ return this;
+ }
+
+ /**
+ * Get the capabilities property: The capabilities of a SKU.
+ *
+ * @return the capabilities value.
+ */
+ public List capabilities() {
+ return this.capabilities;
+ }
+
+ /**
+ * Get the locations property: The locations that the SKU is available.
+ *
+ * @return the locations value.
+ */
+ public List locations() {
+ return this.locations;
+ }
+
+ /**
+ * Set the locations property: The locations that the SKU is available.
+ *
+ * @param locations the locations value to set.
+ * @return the TestBaseAccountSkuInner object itself.
+ */
+ public TestBaseAccountSkuInner withLocations(List locations) {
+ this.locations = locations;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (name() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property name in model TestBaseAccountSkuInner"));
+ }
+ if (tier() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property tier in model TestBaseAccountSkuInner"));
+ }
+ if (capabilities() != null) {
+ capabilities().forEach(e -> e.validate());
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(TestBaseAccountSkuInner.class);
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestBaseAccountUpdateParameterPropertiesInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestBaseAccountUpdateParameterPropertiesInner.java
new file mode 100644
index 000000000000..1fb56f297468
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestBaseAccountUpdateParameterPropertiesInner.java
@@ -0,0 +1,49 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Parameters supplied to update a Test Base Account. */
+@Fluent
+public final class TestBaseAccountUpdateParameterPropertiesInner {
+ /*
+ * The SKU of the Test Base Account.
+ */
+ @JsonProperty(value = "sku")
+ private TestBaseAccountSkuInner sku;
+
+ /**
+ * Get the sku property: The SKU of the Test Base Account.
+ *
+ * @return the sku value.
+ */
+ public TestBaseAccountSkuInner sku() {
+ return this.sku;
+ }
+
+ /**
+ * Set the sku property: The SKU of the Test Base Account.
+ *
+ * @param sku the sku value to set.
+ * @return the TestBaseAccountUpdateParameterPropertiesInner object itself.
+ */
+ public TestBaseAccountUpdateParameterPropertiesInner withSku(TestBaseAccountSkuInner sku) {
+ this.sku = sku;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (sku() != null) {
+ sku().validate();
+ }
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestBaseAccountUpdateParametersInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestBaseAccountUpdateParametersInner.java
new file mode 100644
index 000000000000..7f4daa8f72f1
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestBaseAccountUpdateParametersInner.java
@@ -0,0 +1,90 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** Parameters supplied to update a Test Base Account. */
+@Fluent
+public final class TestBaseAccountUpdateParametersInner {
+ /*
+ * Test Base Account update parameters.
+ */
+ @JsonProperty(value = "properties")
+ private TestBaseAccountUpdateParameterPropertiesInner innerProperties;
+
+ /*
+ * The tags of the Test Base Account.
+ */
+ @JsonProperty(value = "tags")
+ @JsonInclude(value = JsonInclude.Include.NON_NULL, content = JsonInclude.Include.ALWAYS)
+ private Map tags;
+
+ /**
+ * Get the innerProperties property: Test Base Account update parameters.
+ *
+ * @return the innerProperties value.
+ */
+ private TestBaseAccountUpdateParameterPropertiesInner innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the tags property: The tags of the Test Base Account.
+ *
+ * @return the tags value.
+ */
+ public Map tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set the tags property: The tags of the Test Base Account.
+ *
+ * @param tags the tags value to set.
+ * @return the TestBaseAccountUpdateParametersInner object itself.
+ */
+ public TestBaseAccountUpdateParametersInner withTags(Map tags) {
+ this.tags = tags;
+ return this;
+ }
+
+ /**
+ * Get the sku property: The SKU of the Test Base Account.
+ *
+ * @return the sku value.
+ */
+ public TestBaseAccountSkuInner sku() {
+ return this.innerProperties() == null ? null : this.innerProperties().sku();
+ }
+
+ /**
+ * Set the sku property: The SKU of the Test Base Account.
+ *
+ * @param sku the sku value to set.
+ * @return the TestBaseAccountUpdateParametersInner object itself.
+ */
+ public TestBaseAccountUpdateParametersInner withSku(TestBaseAccountSkuInner sku) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestBaseAccountUpdateParameterPropertiesInner();
+ }
+ this.innerProperties().withSku(sku);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestBaseAccountUsageDataInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestBaseAccountUsageDataInner.java
new file mode 100644
index 000000000000..238619af0a6b
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestBaseAccountUsageDataInner.java
@@ -0,0 +1,160 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.testbase.models.TestBaseAccountUsageName;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The usage data of a Test Base Account. */
+@Fluent
+public final class TestBaseAccountUsageDataInner {
+ /*
+ * Fully qualified ARM resource id
+ */
+ @JsonProperty(value = "id")
+ private String id;
+
+ /*
+ * Localizable String object containing the name and a localized value.
+ */
+ @JsonProperty(value = "name")
+ private TestBaseAccountUsageName name;
+
+ /*
+ * Representing the units of the usage quota. Possible values are: Count,
+ * Bytes, Seconds, Percent, CountPerSecond, BytesPerSecond.
+ */
+ @JsonProperty(value = "unit")
+ private String unit;
+
+ /*
+ * The maximum permitted value for the usage quota. If there is no limit,
+ * this value will be -1.
+ */
+ @JsonProperty(value = "limit")
+ private Long limit;
+
+ /*
+ * Current value for the usage quota.
+ */
+ @JsonProperty(value = "currentValue")
+ private Long currentValue;
+
+ /**
+ * Get the id property: Fully qualified ARM resource id.
+ *
+ * @return the id value.
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set the id property: Fully qualified ARM resource id.
+ *
+ * @param id the id value to set.
+ * @return the TestBaseAccountUsageDataInner object itself.
+ */
+ public TestBaseAccountUsageDataInner withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Get the name property: Localizable String object containing the name and a localized value.
+ *
+ * @return the name value.
+ */
+ public TestBaseAccountUsageName name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name property: Localizable String object containing the name and a localized value.
+ *
+ * @param name the name value to set.
+ * @return the TestBaseAccountUsageDataInner object itself.
+ */
+ public TestBaseAccountUsageDataInner withName(TestBaseAccountUsageName name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the unit property: Representing the units of the usage quota. Possible values are: Count, Bytes, Seconds,
+ * Percent, CountPerSecond, BytesPerSecond.
+ *
+ * @return the unit value.
+ */
+ public String unit() {
+ return this.unit;
+ }
+
+ /**
+ * Set the unit property: Representing the units of the usage quota. Possible values are: Count, Bytes, Seconds,
+ * Percent, CountPerSecond, BytesPerSecond.
+ *
+ * @param unit the unit value to set.
+ * @return the TestBaseAccountUsageDataInner object itself.
+ */
+ public TestBaseAccountUsageDataInner withUnit(String unit) {
+ this.unit = unit;
+ return this;
+ }
+
+ /**
+ * Get the limit property: The maximum permitted value for the usage quota. If there is no limit, this value will be
+ * -1.
+ *
+ * @return the limit value.
+ */
+ public Long limit() {
+ return this.limit;
+ }
+
+ /**
+ * Set the limit property: The maximum permitted value for the usage quota. If there is no limit, this value will be
+ * -1.
+ *
+ * @param limit the limit value to set.
+ * @return the TestBaseAccountUsageDataInner object itself.
+ */
+ public TestBaseAccountUsageDataInner withLimit(Long limit) {
+ this.limit = limit;
+ return this;
+ }
+
+ /**
+ * Get the currentValue property: Current value for the usage quota.
+ *
+ * @return the currentValue value.
+ */
+ public Long currentValue() {
+ return this.currentValue;
+ }
+
+ /**
+ * Set the currentValue property: Current value for the usage quota.
+ *
+ * @param currentValue the currentValue value to set.
+ * @return the TestBaseAccountUsageDataInner object itself.
+ */
+ public TestBaseAccountUsageDataInner withCurrentValue(Long currentValue) {
+ this.currentValue = currentValue;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (name() != null) {
+ name().validate();
+ }
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestResultProperties.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestResultProperties.java
new file mode 100644
index 000000000000..392409038bb9
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestResultProperties.java
@@ -0,0 +1,601 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.testbase.models.ExecutionStatus;
+import com.azure.resourcemanager.testbase.models.Grade;
+import com.azure.resourcemanager.testbase.models.TestResultAnalysisSummary;
+import com.azure.resourcemanager.testbase.models.TestStatus;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+import java.util.List;
+
+/** The properties of a Test Result. */
+@Fluent
+public final class TestResultProperties {
+ /*
+ * Azure Id of the baseline test result.
+ */
+ @JsonProperty(value = "baselineTestResultId")
+ private String baselineTestResultId;
+
+ /*
+ * Resource Id of the package.
+ */
+ @JsonProperty(value = "packageId")
+ private String packageId;
+
+ /*
+ * Application name.
+ */
+ @JsonProperty(value = "applicationName")
+ private String applicationName;
+
+ /*
+ * Application version.
+ */
+ @JsonProperty(value = "applicationVersion")
+ private String applicationVersion;
+
+ /*
+ * The operating system name, e.g. Windows 10 1809.
+ */
+ @JsonProperty(value = "osName")
+ private String osName;
+
+ /*
+ * The name of the tested release (OS update).
+ */
+ @JsonProperty(value = "releaseName")
+ private String releaseName;
+
+ /*
+ * The release version date of the tested release.
+ */
+ @JsonProperty(value = "releaseVersionDate")
+ private OffsetDateTime releaseVersionDate;
+
+ /*
+ * The flighting ring, only for release of feature updates.
+ */
+ @JsonProperty(value = "flightingRing")
+ private String flightingRing;
+
+ /*
+ * The build version of the tested release (OS update).
+ */
+ @JsonProperty(value = "buildVersion")
+ private String buildVersion;
+
+ /*
+ * The build revision of the tested release (OS update).
+ */
+ @JsonProperty(value = "buildRevision")
+ private String buildRevision;
+
+ /*
+ * Test type. E.g. 'Out of box test' or 'Functional test'.
+ */
+ @JsonProperty(value = "testType")
+ private String testType;
+
+ /*
+ * The run time of the test.
+ */
+ @JsonProperty(value = "testRunTime")
+ private String testRunTime;
+
+ /*
+ * Whether download data is available.
+ */
+ @JsonProperty(value = "isDownloadDataAvailable")
+ private Boolean isDownloadDataAvailable;
+
+ /*
+ * Whether video data is available.
+ */
+ @JsonProperty(value = "isVideoAvailable")
+ private Boolean isVideoAvailable;
+
+ /*
+ * The execution status of the test.
+ */
+ @JsonProperty(value = "executionStatus")
+ private ExecutionStatus executionStatus;
+
+ /*
+ * The status of the test.
+ */
+ @JsonProperty(value = "testStatus")
+ private TestStatus testStatus;
+
+ /*
+ * The grade of the test.
+ */
+ @JsonProperty(value = "grade")
+ private Grade grade;
+
+ /*
+ * KB number.
+ */
+ @JsonProperty(value = "kbNumber")
+ private String kbNumber;
+
+ /*
+ * Interop media type.
+ */
+ @JsonProperty(value = "interopMediaType")
+ private String interopMediaType;
+
+ /*
+ * Interop media version.
+ */
+ @JsonProperty(value = "interopMediaVersion")
+ private String interopMediaVersion;
+
+ /*
+ * The version of the Windows update package.
+ */
+ @JsonProperty(value = "packageVersion")
+ private String packageVersion;
+
+ /*
+ * List of analysis summaries.
+ */
+ @JsonProperty(value = "analysisSummaries")
+ private List analysisSummaries;
+
+ /**
+ * Get the baselineTestResultId property: Azure Id of the baseline test result.
+ *
+ * @return the baselineTestResultId value.
+ */
+ public String baselineTestResultId() {
+ return this.baselineTestResultId;
+ }
+
+ /**
+ * Set the baselineTestResultId property: Azure Id of the baseline test result.
+ *
+ * @param baselineTestResultId the baselineTestResultId value to set.
+ * @return the TestResultProperties object itself.
+ */
+ public TestResultProperties withBaselineTestResultId(String baselineTestResultId) {
+ this.baselineTestResultId = baselineTestResultId;
+ return this;
+ }
+
+ /**
+ * Get the packageId property: Resource Id of the package.
+ *
+ * @return the packageId value.
+ */
+ public String packageId() {
+ return this.packageId;
+ }
+
+ /**
+ * Set the packageId property: Resource Id of the package.
+ *
+ * @param packageId the packageId value to set.
+ * @return the TestResultProperties object itself.
+ */
+ public TestResultProperties withPackageId(String packageId) {
+ this.packageId = packageId;
+ return this;
+ }
+
+ /**
+ * Get the applicationName property: Application name.
+ *
+ * @return the applicationName value.
+ */
+ public String applicationName() {
+ return this.applicationName;
+ }
+
+ /**
+ * Set the applicationName property: Application name.
+ *
+ * @param applicationName the applicationName value to set.
+ * @return the TestResultProperties object itself.
+ */
+ public TestResultProperties withApplicationName(String applicationName) {
+ this.applicationName = applicationName;
+ return this;
+ }
+
+ /**
+ * Get the applicationVersion property: Application version.
+ *
+ * @return the applicationVersion value.
+ */
+ public String applicationVersion() {
+ return this.applicationVersion;
+ }
+
+ /**
+ * Set the applicationVersion property: Application version.
+ *
+ * @param applicationVersion the applicationVersion value to set.
+ * @return the TestResultProperties object itself.
+ */
+ public TestResultProperties withApplicationVersion(String applicationVersion) {
+ this.applicationVersion = applicationVersion;
+ return this;
+ }
+
+ /**
+ * Get the osName property: The operating system name, e.g. Windows 10 1809.
+ *
+ * @return the osName value.
+ */
+ public String osName() {
+ return this.osName;
+ }
+
+ /**
+ * Set the osName property: The operating system name, e.g. Windows 10 1809.
+ *
+ * @param osName the osName value to set.
+ * @return the TestResultProperties object itself.
+ */
+ public TestResultProperties withOsName(String osName) {
+ this.osName = osName;
+ return this;
+ }
+
+ /**
+ * Get the releaseName property: The name of the tested release (OS update).
+ *
+ * @return the releaseName value.
+ */
+ public String releaseName() {
+ return this.releaseName;
+ }
+
+ /**
+ * Set the releaseName property: The name of the tested release (OS update).
+ *
+ * @param releaseName the releaseName value to set.
+ * @return the TestResultProperties object itself.
+ */
+ public TestResultProperties withReleaseName(String releaseName) {
+ this.releaseName = releaseName;
+ return this;
+ }
+
+ /**
+ * Get the releaseVersionDate property: The release version date of the tested release.
+ *
+ * @return the releaseVersionDate value.
+ */
+ public OffsetDateTime releaseVersionDate() {
+ return this.releaseVersionDate;
+ }
+
+ /**
+ * Set the releaseVersionDate property: The release version date of the tested release.
+ *
+ * @param releaseVersionDate the releaseVersionDate value to set.
+ * @return the TestResultProperties object itself.
+ */
+ public TestResultProperties withReleaseVersionDate(OffsetDateTime releaseVersionDate) {
+ this.releaseVersionDate = releaseVersionDate;
+ return this;
+ }
+
+ /**
+ * Get the flightingRing property: The flighting ring, only for release of feature updates.
+ *
+ * @return the flightingRing value.
+ */
+ public String flightingRing() {
+ return this.flightingRing;
+ }
+
+ /**
+ * Set the flightingRing property: The flighting ring, only for release of feature updates.
+ *
+ * @param flightingRing the flightingRing value to set.
+ * @return the TestResultProperties object itself.
+ */
+ public TestResultProperties withFlightingRing(String flightingRing) {
+ this.flightingRing = flightingRing;
+ return this;
+ }
+
+ /**
+ * Get the buildVersion property: The build version of the tested release (OS update).
+ *
+ * @return the buildVersion value.
+ */
+ public String buildVersion() {
+ return this.buildVersion;
+ }
+
+ /**
+ * Set the buildVersion property: The build version of the tested release (OS update).
+ *
+ * @param buildVersion the buildVersion value to set.
+ * @return the TestResultProperties object itself.
+ */
+ public TestResultProperties withBuildVersion(String buildVersion) {
+ this.buildVersion = buildVersion;
+ return this;
+ }
+
+ /**
+ * Get the buildRevision property: The build revision of the tested release (OS update).
+ *
+ * @return the buildRevision value.
+ */
+ public String buildRevision() {
+ return this.buildRevision;
+ }
+
+ /**
+ * Set the buildRevision property: The build revision of the tested release (OS update).
+ *
+ * @param buildRevision the buildRevision value to set.
+ * @return the TestResultProperties object itself.
+ */
+ public TestResultProperties withBuildRevision(String buildRevision) {
+ this.buildRevision = buildRevision;
+ return this;
+ }
+
+ /**
+ * Get the testType property: Test type. E.g. 'Out of box test' or 'Functional test'.
+ *
+ * @return the testType value.
+ */
+ public String testType() {
+ return this.testType;
+ }
+
+ /**
+ * Set the testType property: Test type. E.g. 'Out of box test' or 'Functional test'.
+ *
+ * @param testType the testType value to set.
+ * @return the TestResultProperties object itself.
+ */
+ public TestResultProperties withTestType(String testType) {
+ this.testType = testType;
+ return this;
+ }
+
+ /**
+ * Get the testRunTime property: The run time of the test.
+ *
+ * @return the testRunTime value.
+ */
+ public String testRunTime() {
+ return this.testRunTime;
+ }
+
+ /**
+ * Set the testRunTime property: The run time of the test.
+ *
+ * @param testRunTime the testRunTime value to set.
+ * @return the TestResultProperties object itself.
+ */
+ public TestResultProperties withTestRunTime(String testRunTime) {
+ this.testRunTime = testRunTime;
+ return this;
+ }
+
+ /**
+ * Get the isDownloadDataAvailable property: Whether download data is available.
+ *
+ * @return the isDownloadDataAvailable value.
+ */
+ public Boolean isDownloadDataAvailable() {
+ return this.isDownloadDataAvailable;
+ }
+
+ /**
+ * Set the isDownloadDataAvailable property: Whether download data is available.
+ *
+ * @param isDownloadDataAvailable the isDownloadDataAvailable value to set.
+ * @return the TestResultProperties object itself.
+ */
+ public TestResultProperties withIsDownloadDataAvailable(Boolean isDownloadDataAvailable) {
+ this.isDownloadDataAvailable = isDownloadDataAvailable;
+ return this;
+ }
+
+ /**
+ * Get the isVideoAvailable property: Whether video data is available.
+ *
+ * @return the isVideoAvailable value.
+ */
+ public Boolean isVideoAvailable() {
+ return this.isVideoAvailable;
+ }
+
+ /**
+ * Set the isVideoAvailable property: Whether video data is available.
+ *
+ * @param isVideoAvailable the isVideoAvailable value to set.
+ * @return the TestResultProperties object itself.
+ */
+ public TestResultProperties withIsVideoAvailable(Boolean isVideoAvailable) {
+ this.isVideoAvailable = isVideoAvailable;
+ return this;
+ }
+
+ /**
+ * Get the executionStatus property: The execution status of the test.
+ *
+ * @return the executionStatus value.
+ */
+ public ExecutionStatus executionStatus() {
+ return this.executionStatus;
+ }
+
+ /**
+ * Set the executionStatus property: The execution status of the test.
+ *
+ * @param executionStatus the executionStatus value to set.
+ * @return the TestResultProperties object itself.
+ */
+ public TestResultProperties withExecutionStatus(ExecutionStatus executionStatus) {
+ this.executionStatus = executionStatus;
+ return this;
+ }
+
+ /**
+ * Get the testStatus property: The status of the test.
+ *
+ * @return the testStatus value.
+ */
+ public TestStatus testStatus() {
+ return this.testStatus;
+ }
+
+ /**
+ * Set the testStatus property: The status of the test.
+ *
+ * @param testStatus the testStatus value to set.
+ * @return the TestResultProperties object itself.
+ */
+ public TestResultProperties withTestStatus(TestStatus testStatus) {
+ this.testStatus = testStatus;
+ return this;
+ }
+
+ /**
+ * Get the grade property: The grade of the test.
+ *
+ * @return the grade value.
+ */
+ public Grade grade() {
+ return this.grade;
+ }
+
+ /**
+ * Set the grade property: The grade of the test.
+ *
+ * @param grade the grade value to set.
+ * @return the TestResultProperties object itself.
+ */
+ public TestResultProperties withGrade(Grade grade) {
+ this.grade = grade;
+ return this;
+ }
+
+ /**
+ * Get the kbNumber property: KB number.
+ *
+ * @return the kbNumber value.
+ */
+ public String kbNumber() {
+ return this.kbNumber;
+ }
+
+ /**
+ * Set the kbNumber property: KB number.
+ *
+ * @param kbNumber the kbNumber value to set.
+ * @return the TestResultProperties object itself.
+ */
+ public TestResultProperties withKbNumber(String kbNumber) {
+ this.kbNumber = kbNumber;
+ return this;
+ }
+
+ /**
+ * Get the interopMediaType property: Interop media type.
+ *
+ * @return the interopMediaType value.
+ */
+ public String interopMediaType() {
+ return this.interopMediaType;
+ }
+
+ /**
+ * Set the interopMediaType property: Interop media type.
+ *
+ * @param interopMediaType the interopMediaType value to set.
+ * @return the TestResultProperties object itself.
+ */
+ public TestResultProperties withInteropMediaType(String interopMediaType) {
+ this.interopMediaType = interopMediaType;
+ return this;
+ }
+
+ /**
+ * Get the interopMediaVersion property: Interop media version.
+ *
+ * @return the interopMediaVersion value.
+ */
+ public String interopMediaVersion() {
+ return this.interopMediaVersion;
+ }
+
+ /**
+ * Set the interopMediaVersion property: Interop media version.
+ *
+ * @param interopMediaVersion the interopMediaVersion value to set.
+ * @return the TestResultProperties object itself.
+ */
+ public TestResultProperties withInteropMediaVersion(String interopMediaVersion) {
+ this.interopMediaVersion = interopMediaVersion;
+ return this;
+ }
+
+ /**
+ * Get the packageVersion property: The version of the Windows update package.
+ *
+ * @return the packageVersion value.
+ */
+ public String packageVersion() {
+ return this.packageVersion;
+ }
+
+ /**
+ * Set the packageVersion property: The version of the Windows update package.
+ *
+ * @param packageVersion the packageVersion value to set.
+ * @return the TestResultProperties object itself.
+ */
+ public TestResultProperties withPackageVersion(String packageVersion) {
+ this.packageVersion = packageVersion;
+ return this;
+ }
+
+ /**
+ * Get the analysisSummaries property: List of analysis summaries.
+ *
+ * @return the analysisSummaries value.
+ */
+ public List analysisSummaries() {
+ return this.analysisSummaries;
+ }
+
+ /**
+ * Set the analysisSummaries property: List of analysis summaries.
+ *
+ * @param analysisSummaries the analysisSummaries value to set.
+ * @return the TestResultProperties object itself.
+ */
+ public TestResultProperties withAnalysisSummaries(List analysisSummaries) {
+ this.analysisSummaries = analysisSummaries;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (analysisSummaries() != null) {
+ analysisSummaries().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestResultResourceInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestResultResourceInner.java
new file mode 100644
index 000000000000..e9cd2cdc890c
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestResultResourceInner.java
@@ -0,0 +1,567 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.resourcemanager.testbase.models.ExecutionStatus;
+import com.azure.resourcemanager.testbase.models.Grade;
+import com.azure.resourcemanager.testbase.models.TestResultAnalysisSummary;
+import com.azure.resourcemanager.testbase.models.TestStatus;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+import java.util.List;
+
+/** The Test Result Resource. */
+@Fluent
+public final class TestResultResourceInner extends ProxyResource {
+ /*
+ * The system metadata relating to this resource
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * The properties of a Test Result.
+ */
+ @JsonProperty(value = "properties")
+ private TestResultProperties innerProperties;
+
+ /**
+ * Get the systemData property: The system metadata relating to this resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the innerProperties property: The properties of a Test Result.
+ *
+ * @return the innerProperties value.
+ */
+ private TestResultProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the baselineTestResultId property: Azure Id of the baseline test result.
+ *
+ * @return the baselineTestResultId value.
+ */
+ public String baselineTestResultId() {
+ return this.innerProperties() == null ? null : this.innerProperties().baselineTestResultId();
+ }
+
+ /**
+ * Set the baselineTestResultId property: Azure Id of the baseline test result.
+ *
+ * @param baselineTestResultId the baselineTestResultId value to set.
+ * @return the TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner withBaselineTestResultId(String baselineTestResultId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestResultProperties();
+ }
+ this.innerProperties().withBaselineTestResultId(baselineTestResultId);
+ return this;
+ }
+
+ /**
+ * Get the packageId property: Resource Id of the package.
+ *
+ * @return the packageId value.
+ */
+ public String packageId() {
+ return this.innerProperties() == null ? null : this.innerProperties().packageId();
+ }
+
+ /**
+ * Set the packageId property: Resource Id of the package.
+ *
+ * @param packageId the packageId value to set.
+ * @return the TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner withPackageId(String packageId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestResultProperties();
+ }
+ this.innerProperties().withPackageId(packageId);
+ return this;
+ }
+
+ /**
+ * Get the applicationName property: Application name.
+ *
+ * @return the applicationName value.
+ */
+ public String applicationName() {
+ return this.innerProperties() == null ? null : this.innerProperties().applicationName();
+ }
+
+ /**
+ * Set the applicationName property: Application name.
+ *
+ * @param applicationName the applicationName value to set.
+ * @return the TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner withApplicationName(String applicationName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestResultProperties();
+ }
+ this.innerProperties().withApplicationName(applicationName);
+ return this;
+ }
+
+ /**
+ * Get the applicationVersion property: Application version.
+ *
+ * @return the applicationVersion value.
+ */
+ public String applicationVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().applicationVersion();
+ }
+
+ /**
+ * Set the applicationVersion property: Application version.
+ *
+ * @param applicationVersion the applicationVersion value to set.
+ * @return the TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner withApplicationVersion(String applicationVersion) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestResultProperties();
+ }
+ this.innerProperties().withApplicationVersion(applicationVersion);
+ return this;
+ }
+
+ /**
+ * Get the osName property: The operating system name, e.g. Windows 10 1809.
+ *
+ * @return the osName value.
+ */
+ public String osName() {
+ return this.innerProperties() == null ? null : this.innerProperties().osName();
+ }
+
+ /**
+ * Set the osName property: The operating system name, e.g. Windows 10 1809.
+ *
+ * @param osName the osName value to set.
+ * @return the TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner withOsName(String osName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestResultProperties();
+ }
+ this.innerProperties().withOsName(osName);
+ return this;
+ }
+
+ /**
+ * Get the releaseName property: The name of the tested release (OS update).
+ *
+ * @return the releaseName value.
+ */
+ public String releaseName() {
+ return this.innerProperties() == null ? null : this.innerProperties().releaseName();
+ }
+
+ /**
+ * Set the releaseName property: The name of the tested release (OS update).
+ *
+ * @param releaseName the releaseName value to set.
+ * @return the TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner withReleaseName(String releaseName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestResultProperties();
+ }
+ this.innerProperties().withReleaseName(releaseName);
+ return this;
+ }
+
+ /**
+ * Get the releaseVersionDate property: The release version date of the tested release.
+ *
+ * @return the releaseVersionDate value.
+ */
+ public OffsetDateTime releaseVersionDate() {
+ return this.innerProperties() == null ? null : this.innerProperties().releaseVersionDate();
+ }
+
+ /**
+ * Set the releaseVersionDate property: The release version date of the tested release.
+ *
+ * @param releaseVersionDate the releaseVersionDate value to set.
+ * @return the TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner withReleaseVersionDate(OffsetDateTime releaseVersionDate) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestResultProperties();
+ }
+ this.innerProperties().withReleaseVersionDate(releaseVersionDate);
+ return this;
+ }
+
+ /**
+ * Get the flightingRing property: The flighting ring, only for release of feature updates.
+ *
+ * @return the flightingRing value.
+ */
+ public String flightingRing() {
+ return this.innerProperties() == null ? null : this.innerProperties().flightingRing();
+ }
+
+ /**
+ * Set the flightingRing property: The flighting ring, only for release of feature updates.
+ *
+ * @param flightingRing the flightingRing value to set.
+ * @return the TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner withFlightingRing(String flightingRing) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestResultProperties();
+ }
+ this.innerProperties().withFlightingRing(flightingRing);
+ return this;
+ }
+
+ /**
+ * Get the buildVersion property: The build version of the tested release (OS update).
+ *
+ * @return the buildVersion value.
+ */
+ public String buildVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().buildVersion();
+ }
+
+ /**
+ * Set the buildVersion property: The build version of the tested release (OS update).
+ *
+ * @param buildVersion the buildVersion value to set.
+ * @return the TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner withBuildVersion(String buildVersion) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestResultProperties();
+ }
+ this.innerProperties().withBuildVersion(buildVersion);
+ return this;
+ }
+
+ /**
+ * Get the buildRevision property: The build revision of the tested release (OS update).
+ *
+ * @return the buildRevision value.
+ */
+ public String buildRevision() {
+ return this.innerProperties() == null ? null : this.innerProperties().buildRevision();
+ }
+
+ /**
+ * Set the buildRevision property: The build revision of the tested release (OS update).
+ *
+ * @param buildRevision the buildRevision value to set.
+ * @return the TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner withBuildRevision(String buildRevision) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestResultProperties();
+ }
+ this.innerProperties().withBuildRevision(buildRevision);
+ return this;
+ }
+
+ /**
+ * Get the testType property: Test type. E.g. 'Out of box test' or 'Functional test'.
+ *
+ * @return the testType value.
+ */
+ public String testType() {
+ return this.innerProperties() == null ? null : this.innerProperties().testType();
+ }
+
+ /**
+ * Set the testType property: Test type. E.g. 'Out of box test' or 'Functional test'.
+ *
+ * @param testType the testType value to set.
+ * @return the TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner withTestType(String testType) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestResultProperties();
+ }
+ this.innerProperties().withTestType(testType);
+ return this;
+ }
+
+ /**
+ * Get the testRunTime property: The run time of the test.
+ *
+ * @return the testRunTime value.
+ */
+ public String testRunTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().testRunTime();
+ }
+
+ /**
+ * Set the testRunTime property: The run time of the test.
+ *
+ * @param testRunTime the testRunTime value to set.
+ * @return the TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner withTestRunTime(String testRunTime) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestResultProperties();
+ }
+ this.innerProperties().withTestRunTime(testRunTime);
+ return this;
+ }
+
+ /**
+ * Get the isDownloadDataAvailable property: Whether download data is available.
+ *
+ * @return the isDownloadDataAvailable value.
+ */
+ public Boolean isDownloadDataAvailable() {
+ return this.innerProperties() == null ? null : this.innerProperties().isDownloadDataAvailable();
+ }
+
+ /**
+ * Set the isDownloadDataAvailable property: Whether download data is available.
+ *
+ * @param isDownloadDataAvailable the isDownloadDataAvailable value to set.
+ * @return the TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner withIsDownloadDataAvailable(Boolean isDownloadDataAvailable) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestResultProperties();
+ }
+ this.innerProperties().withIsDownloadDataAvailable(isDownloadDataAvailable);
+ return this;
+ }
+
+ /**
+ * Get the isVideoAvailable property: Whether video data is available.
+ *
+ * @return the isVideoAvailable value.
+ */
+ public Boolean isVideoAvailable() {
+ return this.innerProperties() == null ? null : this.innerProperties().isVideoAvailable();
+ }
+
+ /**
+ * Set the isVideoAvailable property: Whether video data is available.
+ *
+ * @param isVideoAvailable the isVideoAvailable value to set.
+ * @return the TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner withIsVideoAvailable(Boolean isVideoAvailable) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestResultProperties();
+ }
+ this.innerProperties().withIsVideoAvailable(isVideoAvailable);
+ return this;
+ }
+
+ /**
+ * Get the executionStatus property: The execution status of the test.
+ *
+ * @return the executionStatus value.
+ */
+ public ExecutionStatus executionStatus() {
+ return this.innerProperties() == null ? null : this.innerProperties().executionStatus();
+ }
+
+ /**
+ * Set the executionStatus property: The execution status of the test.
+ *
+ * @param executionStatus the executionStatus value to set.
+ * @return the TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner withExecutionStatus(ExecutionStatus executionStatus) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestResultProperties();
+ }
+ this.innerProperties().withExecutionStatus(executionStatus);
+ return this;
+ }
+
+ /**
+ * Get the testStatus property: The status of the test.
+ *
+ * @return the testStatus value.
+ */
+ public TestStatus testStatus() {
+ return this.innerProperties() == null ? null : this.innerProperties().testStatus();
+ }
+
+ /**
+ * Set the testStatus property: The status of the test.
+ *
+ * @param testStatus the testStatus value to set.
+ * @return the TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner withTestStatus(TestStatus testStatus) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestResultProperties();
+ }
+ this.innerProperties().withTestStatus(testStatus);
+ return this;
+ }
+
+ /**
+ * Get the grade property: The grade of the test.
+ *
+ * @return the grade value.
+ */
+ public Grade grade() {
+ return this.innerProperties() == null ? null : this.innerProperties().grade();
+ }
+
+ /**
+ * Set the grade property: The grade of the test.
+ *
+ * @param grade the grade value to set.
+ * @return the TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner withGrade(Grade grade) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestResultProperties();
+ }
+ this.innerProperties().withGrade(grade);
+ return this;
+ }
+
+ /**
+ * Get the kbNumber property: KB number.
+ *
+ * @return the kbNumber value.
+ */
+ public String kbNumber() {
+ return this.innerProperties() == null ? null : this.innerProperties().kbNumber();
+ }
+
+ /**
+ * Set the kbNumber property: KB number.
+ *
+ * @param kbNumber the kbNumber value to set.
+ * @return the TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner withKbNumber(String kbNumber) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestResultProperties();
+ }
+ this.innerProperties().withKbNumber(kbNumber);
+ return this;
+ }
+
+ /**
+ * Get the interopMediaType property: Interop media type.
+ *
+ * @return the interopMediaType value.
+ */
+ public String interopMediaType() {
+ return this.innerProperties() == null ? null : this.innerProperties().interopMediaType();
+ }
+
+ /**
+ * Set the interopMediaType property: Interop media type.
+ *
+ * @param interopMediaType the interopMediaType value to set.
+ * @return the TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner withInteropMediaType(String interopMediaType) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestResultProperties();
+ }
+ this.innerProperties().withInteropMediaType(interopMediaType);
+ return this;
+ }
+
+ /**
+ * Get the interopMediaVersion property: Interop media version.
+ *
+ * @return the interopMediaVersion value.
+ */
+ public String interopMediaVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().interopMediaVersion();
+ }
+
+ /**
+ * Set the interopMediaVersion property: Interop media version.
+ *
+ * @param interopMediaVersion the interopMediaVersion value to set.
+ * @return the TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner withInteropMediaVersion(String interopMediaVersion) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestResultProperties();
+ }
+ this.innerProperties().withInteropMediaVersion(interopMediaVersion);
+ return this;
+ }
+
+ /**
+ * Get the packageVersion property: The version of the Windows update package.
+ *
+ * @return the packageVersion value.
+ */
+ public String packageVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().packageVersion();
+ }
+
+ /**
+ * Set the packageVersion property: The version of the Windows update package.
+ *
+ * @param packageVersion the packageVersion value to set.
+ * @return the TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner withPackageVersion(String packageVersion) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestResultProperties();
+ }
+ this.innerProperties().withPackageVersion(packageVersion);
+ return this;
+ }
+
+ /**
+ * Get the analysisSummaries property: List of analysis summaries.
+ *
+ * @return the analysisSummaries value.
+ */
+ public List analysisSummaries() {
+ return this.innerProperties() == null ? null : this.innerProperties().analysisSummaries();
+ }
+
+ /**
+ * Set the analysisSummaries property: List of analysis summaries.
+ *
+ * @param analysisSummaries the analysisSummaries value to set.
+ * @return the TestResultResourceInner object itself.
+ */
+ public TestResultResourceInner withAnalysisSummaries(List analysisSummaries) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestResultProperties();
+ }
+ this.innerProperties().withAnalysisSummaries(analysisSummaries);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestSummaryProperties.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestSummaryProperties.java
new file mode 100644
index 000000000000..16546f9e1e15
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestSummaryProperties.java
@@ -0,0 +1,319 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.testbase.models.ExecutionStatus;
+import com.azure.resourcemanager.testbase.models.Grade;
+import com.azure.resourcemanager.testbase.models.OSUpdatesTestSummary;
+import com.azure.resourcemanager.testbase.models.TestStatus;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** Properties of a Test Summary. */
+@Fluent
+public final class TestSummaryProperties {
+ /*
+ * The Id of the current Test Summary.
+ */
+ @JsonProperty(value = "testSummaryId")
+ private String testSummaryId;
+
+ /*
+ * The Azure resource Id of package.
+ */
+ @JsonProperty(value = "packageId")
+ private String packageId;
+
+ /*
+ * Application name.
+ */
+ @JsonProperty(value = "applicationName")
+ private String applicationName;
+
+ /*
+ * Application version.
+ */
+ @JsonProperty(value = "applicationVersion")
+ private String applicationVersion;
+
+ /*
+ * The execution status of last test.
+ */
+ @JsonProperty(value = "executionStatus")
+ private ExecutionStatus executionStatus;
+
+ /*
+ * The status of last test.
+ */
+ @JsonProperty(value = "testStatus")
+ private TestStatus testStatus;
+
+ /*
+ * The grade of the test.
+ */
+ @JsonProperty(value = "grade")
+ private Grade grade;
+
+ /*
+ * The run time of the last test.
+ */
+ @JsonProperty(value = "testRunTime")
+ private String testRunTime;
+
+ /*
+ * The result summary of tests triggered by feature updates
+ */
+ @JsonProperty(value = "featureUpdatesTestSummary")
+ private OSUpdatesTestSummary featureUpdatesTestSummary;
+
+ /*
+ * The result summary of tests triggered by security updates
+ */
+ @JsonProperty(value = "securityUpdatesTestSummary")
+ private OSUpdatesTestSummary securityUpdatesTestSummary;
+
+ /*
+ * The tags of Package resource that are associated with the testSummary
+ */
+ @JsonProperty(value = "packageTags")
+ @JsonInclude(value = JsonInclude.Include.NON_NULL, content = JsonInclude.Include.ALWAYS)
+ private Map packageTags;
+
+ /**
+ * Get the testSummaryId property: The Id of the current Test Summary.
+ *
+ * @return the testSummaryId value.
+ */
+ public String testSummaryId() {
+ return this.testSummaryId;
+ }
+
+ /**
+ * Set the testSummaryId property: The Id of the current Test Summary.
+ *
+ * @param testSummaryId the testSummaryId value to set.
+ * @return the TestSummaryProperties object itself.
+ */
+ public TestSummaryProperties withTestSummaryId(String testSummaryId) {
+ this.testSummaryId = testSummaryId;
+ return this;
+ }
+
+ /**
+ * Get the packageId property: The Azure resource Id of package.
+ *
+ * @return the packageId value.
+ */
+ public String packageId() {
+ return this.packageId;
+ }
+
+ /**
+ * Set the packageId property: The Azure resource Id of package.
+ *
+ * @param packageId the packageId value to set.
+ * @return the TestSummaryProperties object itself.
+ */
+ public TestSummaryProperties withPackageId(String packageId) {
+ this.packageId = packageId;
+ return this;
+ }
+
+ /**
+ * Get the applicationName property: Application name.
+ *
+ * @return the applicationName value.
+ */
+ public String applicationName() {
+ return this.applicationName;
+ }
+
+ /**
+ * Set the applicationName property: Application name.
+ *
+ * @param applicationName the applicationName value to set.
+ * @return the TestSummaryProperties object itself.
+ */
+ public TestSummaryProperties withApplicationName(String applicationName) {
+ this.applicationName = applicationName;
+ return this;
+ }
+
+ /**
+ * Get the applicationVersion property: Application version.
+ *
+ * @return the applicationVersion value.
+ */
+ public String applicationVersion() {
+ return this.applicationVersion;
+ }
+
+ /**
+ * Set the applicationVersion property: Application version.
+ *
+ * @param applicationVersion the applicationVersion value to set.
+ * @return the TestSummaryProperties object itself.
+ */
+ public TestSummaryProperties withApplicationVersion(String applicationVersion) {
+ this.applicationVersion = applicationVersion;
+ return this;
+ }
+
+ /**
+ * Get the executionStatus property: The execution status of last test.
+ *
+ * @return the executionStatus value.
+ */
+ public ExecutionStatus executionStatus() {
+ return this.executionStatus;
+ }
+
+ /**
+ * Set the executionStatus property: The execution status of last test.
+ *
+ * @param executionStatus the executionStatus value to set.
+ * @return the TestSummaryProperties object itself.
+ */
+ public TestSummaryProperties withExecutionStatus(ExecutionStatus executionStatus) {
+ this.executionStatus = executionStatus;
+ return this;
+ }
+
+ /**
+ * Get the testStatus property: The status of last test.
+ *
+ * @return the testStatus value.
+ */
+ public TestStatus testStatus() {
+ return this.testStatus;
+ }
+
+ /**
+ * Set the testStatus property: The status of last test.
+ *
+ * @param testStatus the testStatus value to set.
+ * @return the TestSummaryProperties object itself.
+ */
+ public TestSummaryProperties withTestStatus(TestStatus testStatus) {
+ this.testStatus = testStatus;
+ return this;
+ }
+
+ /**
+ * Get the grade property: The grade of the test.
+ *
+ * @return the grade value.
+ */
+ public Grade grade() {
+ return this.grade;
+ }
+
+ /**
+ * Set the grade property: The grade of the test.
+ *
+ * @param grade the grade value to set.
+ * @return the TestSummaryProperties object itself.
+ */
+ public TestSummaryProperties withGrade(Grade grade) {
+ this.grade = grade;
+ return this;
+ }
+
+ /**
+ * Get the testRunTime property: The run time of the last test.
+ *
+ * @return the testRunTime value.
+ */
+ public String testRunTime() {
+ return this.testRunTime;
+ }
+
+ /**
+ * Set the testRunTime property: The run time of the last test.
+ *
+ * @param testRunTime the testRunTime value to set.
+ * @return the TestSummaryProperties object itself.
+ */
+ public TestSummaryProperties withTestRunTime(String testRunTime) {
+ this.testRunTime = testRunTime;
+ return this;
+ }
+
+ /**
+ * Get the featureUpdatesTestSummary property: The result summary of tests triggered by feature updates.
+ *
+ * @return the featureUpdatesTestSummary value.
+ */
+ public OSUpdatesTestSummary featureUpdatesTestSummary() {
+ return this.featureUpdatesTestSummary;
+ }
+
+ /**
+ * Set the featureUpdatesTestSummary property: The result summary of tests triggered by feature updates.
+ *
+ * @param featureUpdatesTestSummary the featureUpdatesTestSummary value to set.
+ * @return the TestSummaryProperties object itself.
+ */
+ public TestSummaryProperties withFeatureUpdatesTestSummary(OSUpdatesTestSummary featureUpdatesTestSummary) {
+ this.featureUpdatesTestSummary = featureUpdatesTestSummary;
+ return this;
+ }
+
+ /**
+ * Get the securityUpdatesTestSummary property: The result summary of tests triggered by security updates.
+ *
+ * @return the securityUpdatesTestSummary value.
+ */
+ public OSUpdatesTestSummary securityUpdatesTestSummary() {
+ return this.securityUpdatesTestSummary;
+ }
+
+ /**
+ * Set the securityUpdatesTestSummary property: The result summary of tests triggered by security updates.
+ *
+ * @param securityUpdatesTestSummary the securityUpdatesTestSummary value to set.
+ * @return the TestSummaryProperties object itself.
+ */
+ public TestSummaryProperties withSecurityUpdatesTestSummary(OSUpdatesTestSummary securityUpdatesTestSummary) {
+ this.securityUpdatesTestSummary = securityUpdatesTestSummary;
+ return this;
+ }
+
+ /**
+ * Get the packageTags property: The tags of Package resource that are associated with the testSummary.
+ *
+ * @return the packageTags value.
+ */
+ public Map packageTags() {
+ return this.packageTags;
+ }
+
+ /**
+ * Set the packageTags property: The tags of Package resource that are associated with the testSummary.
+ *
+ * @param packageTags the packageTags value to set.
+ * @return the TestSummaryProperties object itself.
+ */
+ public TestSummaryProperties withPackageTags(Map packageTags) {
+ this.packageTags = packageTags;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (featureUpdatesTestSummary() != null) {
+ featureUpdatesTestSummary().validate();
+ }
+ if (securityUpdatesTestSummary() != null) {
+ securityUpdatesTestSummary().validate();
+ }
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestSummaryResourceInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestSummaryResourceInner.java
new file mode 100644
index 000000000000..925ac9fb914e
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestSummaryResourceInner.java
@@ -0,0 +1,313 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.resourcemanager.testbase.models.ExecutionStatus;
+import com.azure.resourcemanager.testbase.models.Grade;
+import com.azure.resourcemanager.testbase.models.OSUpdatesTestSummary;
+import com.azure.resourcemanager.testbase.models.TestStatus;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** Summary of a Test. */
+@Fluent
+public final class TestSummaryResourceInner extends ProxyResource {
+ /*
+ * The system metadata relating to this resource
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * Properties of a Test Summary.
+ */
+ @JsonProperty(value = "properties")
+ private TestSummaryProperties innerProperties;
+
+ /**
+ * Get the systemData property: The system metadata relating to this resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the innerProperties property: Properties of a Test Summary.
+ *
+ * @return the innerProperties value.
+ */
+ private TestSummaryProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the testSummaryId property: The Id of the current Test Summary.
+ *
+ * @return the testSummaryId value.
+ */
+ public String testSummaryId() {
+ return this.innerProperties() == null ? null : this.innerProperties().testSummaryId();
+ }
+
+ /**
+ * Set the testSummaryId property: The Id of the current Test Summary.
+ *
+ * @param testSummaryId the testSummaryId value to set.
+ * @return the TestSummaryResourceInner object itself.
+ */
+ public TestSummaryResourceInner withTestSummaryId(String testSummaryId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestSummaryProperties();
+ }
+ this.innerProperties().withTestSummaryId(testSummaryId);
+ return this;
+ }
+
+ /**
+ * Get the packageId property: The Azure resource Id of package.
+ *
+ * @return the packageId value.
+ */
+ public String packageId() {
+ return this.innerProperties() == null ? null : this.innerProperties().packageId();
+ }
+
+ /**
+ * Set the packageId property: The Azure resource Id of package.
+ *
+ * @param packageId the packageId value to set.
+ * @return the TestSummaryResourceInner object itself.
+ */
+ public TestSummaryResourceInner withPackageId(String packageId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestSummaryProperties();
+ }
+ this.innerProperties().withPackageId(packageId);
+ return this;
+ }
+
+ /**
+ * Get the applicationName property: Application name.
+ *
+ * @return the applicationName value.
+ */
+ public String applicationName() {
+ return this.innerProperties() == null ? null : this.innerProperties().applicationName();
+ }
+
+ /**
+ * Set the applicationName property: Application name.
+ *
+ * @param applicationName the applicationName value to set.
+ * @return the TestSummaryResourceInner object itself.
+ */
+ public TestSummaryResourceInner withApplicationName(String applicationName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestSummaryProperties();
+ }
+ this.innerProperties().withApplicationName(applicationName);
+ return this;
+ }
+
+ /**
+ * Get the applicationVersion property: Application version.
+ *
+ * @return the applicationVersion value.
+ */
+ public String applicationVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().applicationVersion();
+ }
+
+ /**
+ * Set the applicationVersion property: Application version.
+ *
+ * @param applicationVersion the applicationVersion value to set.
+ * @return the TestSummaryResourceInner object itself.
+ */
+ public TestSummaryResourceInner withApplicationVersion(String applicationVersion) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestSummaryProperties();
+ }
+ this.innerProperties().withApplicationVersion(applicationVersion);
+ return this;
+ }
+
+ /**
+ * Get the executionStatus property: The execution status of last test.
+ *
+ * @return the executionStatus value.
+ */
+ public ExecutionStatus executionStatus() {
+ return this.innerProperties() == null ? null : this.innerProperties().executionStatus();
+ }
+
+ /**
+ * Set the executionStatus property: The execution status of last test.
+ *
+ * @param executionStatus the executionStatus value to set.
+ * @return the TestSummaryResourceInner object itself.
+ */
+ public TestSummaryResourceInner withExecutionStatus(ExecutionStatus executionStatus) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestSummaryProperties();
+ }
+ this.innerProperties().withExecutionStatus(executionStatus);
+ return this;
+ }
+
+ /**
+ * Get the testStatus property: The status of last test.
+ *
+ * @return the testStatus value.
+ */
+ public TestStatus testStatus() {
+ return this.innerProperties() == null ? null : this.innerProperties().testStatus();
+ }
+
+ /**
+ * Set the testStatus property: The status of last test.
+ *
+ * @param testStatus the testStatus value to set.
+ * @return the TestSummaryResourceInner object itself.
+ */
+ public TestSummaryResourceInner withTestStatus(TestStatus testStatus) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestSummaryProperties();
+ }
+ this.innerProperties().withTestStatus(testStatus);
+ return this;
+ }
+
+ /**
+ * Get the grade property: The grade of the test.
+ *
+ * @return the grade value.
+ */
+ public Grade grade() {
+ return this.innerProperties() == null ? null : this.innerProperties().grade();
+ }
+
+ /**
+ * Set the grade property: The grade of the test.
+ *
+ * @param grade the grade value to set.
+ * @return the TestSummaryResourceInner object itself.
+ */
+ public TestSummaryResourceInner withGrade(Grade grade) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestSummaryProperties();
+ }
+ this.innerProperties().withGrade(grade);
+ return this;
+ }
+
+ /**
+ * Get the testRunTime property: The run time of the last test.
+ *
+ * @return the testRunTime value.
+ */
+ public String testRunTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().testRunTime();
+ }
+
+ /**
+ * Set the testRunTime property: The run time of the last test.
+ *
+ * @param testRunTime the testRunTime value to set.
+ * @return the TestSummaryResourceInner object itself.
+ */
+ public TestSummaryResourceInner withTestRunTime(String testRunTime) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestSummaryProperties();
+ }
+ this.innerProperties().withTestRunTime(testRunTime);
+ return this;
+ }
+
+ /**
+ * Get the featureUpdatesTestSummary property: The result summary of tests triggered by feature updates.
+ *
+ * @return the featureUpdatesTestSummary value.
+ */
+ public OSUpdatesTestSummary featureUpdatesTestSummary() {
+ return this.innerProperties() == null ? null : this.innerProperties().featureUpdatesTestSummary();
+ }
+
+ /**
+ * Set the featureUpdatesTestSummary property: The result summary of tests triggered by feature updates.
+ *
+ * @param featureUpdatesTestSummary the featureUpdatesTestSummary value to set.
+ * @return the TestSummaryResourceInner object itself.
+ */
+ public TestSummaryResourceInner withFeatureUpdatesTestSummary(OSUpdatesTestSummary featureUpdatesTestSummary) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestSummaryProperties();
+ }
+ this.innerProperties().withFeatureUpdatesTestSummary(featureUpdatesTestSummary);
+ return this;
+ }
+
+ /**
+ * Get the securityUpdatesTestSummary property: The result summary of tests triggered by security updates.
+ *
+ * @return the securityUpdatesTestSummary value.
+ */
+ public OSUpdatesTestSummary securityUpdatesTestSummary() {
+ return this.innerProperties() == null ? null : this.innerProperties().securityUpdatesTestSummary();
+ }
+
+ /**
+ * Set the securityUpdatesTestSummary property: The result summary of tests triggered by security updates.
+ *
+ * @param securityUpdatesTestSummary the securityUpdatesTestSummary value to set.
+ * @return the TestSummaryResourceInner object itself.
+ */
+ public TestSummaryResourceInner withSecurityUpdatesTestSummary(OSUpdatesTestSummary securityUpdatesTestSummary) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestSummaryProperties();
+ }
+ this.innerProperties().withSecurityUpdatesTestSummary(securityUpdatesTestSummary);
+ return this;
+ }
+
+ /**
+ * Get the packageTags property: The tags of Package resource that are associated with the testSummary.
+ *
+ * @return the packageTags value.
+ */
+ public Map packageTags() {
+ return this.innerProperties() == null ? null : this.innerProperties().packageTags();
+ }
+
+ /**
+ * Set the packageTags property: The tags of Package resource that are associated with the testSummary.
+ *
+ * @param packageTags the packageTags value to set.
+ * @return the TestSummaryResourceInner object itself.
+ */
+ public TestSummaryResourceInner withPackageTags(Map packageTags) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestSummaryProperties();
+ }
+ this.innerProperties().withPackageTags(packageTags);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestTypeProperties.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestTypeProperties.java
new file mode 100644
index 000000000000..49dd73f11dca
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestTypeProperties.java
@@ -0,0 +1,46 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The Test Type properties. */
+@Fluent
+public final class TestTypeProperties {
+ /*
+ * The actual name of a test type of a Test Base Account.
+ */
+ @JsonProperty(value = "actualTestTypeName")
+ private String actualTestTypeName;
+
+ /**
+ * Get the actualTestTypeName property: The actual name of a test type of a Test Base Account.
+ *
+ * @return the actualTestTypeName value.
+ */
+ public String actualTestTypeName() {
+ return this.actualTestTypeName;
+ }
+
+ /**
+ * Set the actualTestTypeName property: The actual name of a test type of a Test Base Account.
+ *
+ * @param actualTestTypeName the actualTestTypeName value to set.
+ * @return the TestTypeProperties object itself.
+ */
+ public TestTypeProperties withActualTestTypeName(String actualTestTypeName) {
+ this.actualTestTypeName = actualTestTypeName;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestTypeResourceInner.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestTypeResourceInner.java
new file mode 100644
index 000000000000..5723c615624e
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/TestTypeResourceInner.java
@@ -0,0 +1,78 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The test type resource. */
+@Fluent
+public final class TestTypeResourceInner extends ProxyResource {
+ /*
+ * The system metadata relating to this resource
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * Test Type properties.
+ */
+ @JsonProperty(value = "properties")
+ private TestTypeProperties innerProperties;
+
+ /**
+ * Get the systemData property: The system metadata relating to this resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the innerProperties property: Test Type properties.
+ *
+ * @return the innerProperties value.
+ */
+ private TestTypeProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the actualTestTypeName property: The actual name of a test type of a Test Base Account.
+ *
+ * @return the actualTestTypeName value.
+ */
+ public String actualTestTypeName() {
+ return this.innerProperties() == null ? null : this.innerProperties().actualTestTypeName();
+ }
+
+ /**
+ * Set the actualTestTypeName property: The actual name of a test type of a Test Base Account.
+ *
+ * @param actualTestTypeName the actualTestTypeName value to set.
+ * @return the TestTypeResourceInner object itself.
+ */
+ public TestTypeResourceInner withActualTestTypeName(String actualTestTypeName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new TestTypeProperties();
+ }
+ this.innerProperties().withActualTestTypeName(actualTestTypeName);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/package-info.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/package-info.java
new file mode 100644
index 000000000000..f0d20e743c07
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/models/package-info.java
@@ -0,0 +1,6 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+/** Package containing the inner data models for TestBase. Test Base. */
+package com.azure.resourcemanager.testbase.fluent.models;
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/package-info.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/package-info.java
new file mode 100644
index 000000000000..efe6af017bcd
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/fluent/package-info.java
@@ -0,0 +1,6 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+/** Package containing the service clients for TestBase. Test Base. */
+package com.azure.resourcemanager.testbase.fluent;
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AnalysisResultSingletonResourceImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AnalysisResultSingletonResourceImpl.java
new file mode 100644
index 000000000000..486ff9d0b9ed
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AnalysisResultSingletonResourceImpl.java
@@ -0,0 +1,51 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.implementation;
+
+import com.azure.core.management.SystemData;
+import com.azure.resourcemanager.testbase.fluent.models.AnalysisResultSingletonResourceInner;
+import com.azure.resourcemanager.testbase.models.AnalysisResultSingletonResource;
+import com.azure.resourcemanager.testbase.models.Grade;
+
+public final class AnalysisResultSingletonResourceImpl implements AnalysisResultSingletonResource {
+ private AnalysisResultSingletonResourceInner innerObject;
+
+ private final com.azure.resourcemanager.testbase.TestBaseManager serviceManager;
+
+ AnalysisResultSingletonResourceImpl(
+ AnalysisResultSingletonResourceInner innerObject,
+ com.azure.resourcemanager.testbase.TestBaseManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ }
+
+ public String id() {
+ return this.innerModel().id();
+ }
+
+ public String name() {
+ return this.innerModel().name();
+ }
+
+ public String type() {
+ return this.innerModel().type();
+ }
+
+ public SystemData systemData() {
+ return this.innerModel().systemData();
+ }
+
+ public Grade grade() {
+ return this.innerModel().grade();
+ }
+
+ public AnalysisResultSingletonResourceInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.testbase.TestBaseManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AnalysisResultsClientImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AnalysisResultsClientImpl.java
new file mode 100644
index 000000000000..54e647a51483
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AnalysisResultsClientImpl.java
@@ -0,0 +1,570 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.implementation;
+
+import com.azure.core.annotation.ExpectedResponses;
+import com.azure.core.annotation.Get;
+import com.azure.core.annotation.HeaderParam;
+import com.azure.core.annotation.Headers;
+import com.azure.core.annotation.Host;
+import com.azure.core.annotation.HostParam;
+import com.azure.core.annotation.PathParam;
+import com.azure.core.annotation.QueryParam;
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceInterface;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.annotation.UnexpectedResponseExceptionType;
+import com.azure.core.http.rest.PagedFlux;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.PagedResponse;
+import com.azure.core.http.rest.PagedResponseBase;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.RestProxy;
+import com.azure.core.management.exception.ManagementException;
+import com.azure.core.util.Context;
+import com.azure.core.util.FluxUtil;
+import com.azure.resourcemanager.testbase.fluent.AnalysisResultsClient;
+import com.azure.resourcemanager.testbase.fluent.models.AnalysisResultSingletonResourceInner;
+import com.azure.resourcemanager.testbase.models.AnalysisResultListResult;
+import com.azure.resourcemanager.testbase.models.AnalysisResultName;
+import com.azure.resourcemanager.testbase.models.AnalysisResultType;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in AnalysisResultsClient. */
+public final class AnalysisResultsClientImpl implements AnalysisResultsClient {
+ /** The proxy service used to perform REST calls. */
+ private final AnalysisResultsService service;
+
+ /** The service client containing this operation class. */
+ private final TestBaseImpl client;
+
+ /**
+ * Initializes an instance of AnalysisResultsClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ AnalysisResultsClientImpl(TestBaseImpl client) {
+ this.service =
+ RestProxy.create(AnalysisResultsService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for TestBaseAnalysisResults to be used by the proxy service to perform
+ * REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "TestBaseAnalysisResu")
+ private interface AnalysisResultsService {
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase"
+ + "/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/testResults/{testResultName}"
+ + "/analysisResults")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> list(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("testBaseAccountName") String testBaseAccountName,
+ @PathParam("packageName") String packageName,
+ @PathParam("testResultName") String testResultName,
+ @QueryParam("analysisResultType") AnalysisResultType analysisResultType,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase"
+ + "/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/testResults/{testResultName}"
+ + "/analysisResults/{analysisResultName}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> get(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("testBaseAccountName") String testBaseAccountName,
+ @PathParam("packageName") String packageName,
+ @PathParam("testResultName") String testResultName,
+ @PathParam("analysisResultName") AnalysisResultName analysisResultName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Lists the Analysis Results of a Test Result. The result collection will only contain one element as all the data
+ * will be nested in a singleton object.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param testResultName The Test Result Name. It equals to TestResult-{TestResultId} string.
+ * @param analysisResultType The type of the Analysis Result of a Test Result.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Analysis Results along with {@link PagedResponse} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ AnalysisResultType analysisResultType) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (testBaseAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter testBaseAccountName is required and cannot be null."));
+ }
+ if (packageName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter packageName is required and cannot be null."));
+ }
+ if (testResultName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter testResultName is required and cannot be null."));
+ }
+ if (analysisResultType == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter analysisResultType is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .list(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ packageName,
+ testResultName,
+ analysisResultType,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(), res.getStatusCode(), res.getHeaders(), res.getValue().value(), null, null))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Lists the Analysis Results of a Test Result. The result collection will only contain one element as all the data
+ * will be nested in a singleton object.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param testResultName The Test Result Name. It equals to TestResult-{TestResultId} string.
+ * @param analysisResultType The type of the Analysis Result of a Test Result.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Analysis Results along with {@link PagedResponse} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ AnalysisResultType analysisResultType,
+ Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (testBaseAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter testBaseAccountName is required and cannot be null."));
+ }
+ if (packageName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter packageName is required and cannot be null."));
+ }
+ if (testResultName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter testResultName is required and cannot be null."));
+ }
+ if (analysisResultType == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter analysisResultType is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .list(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ packageName,
+ testResultName,
+ analysisResultType,
+ this.client.getApiVersion(),
+ accept,
+ context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(), res.getStatusCode(), res.getHeaders(), res.getValue().value(), null, null));
+ }
+
+ /**
+ * Lists the Analysis Results of a Test Result. The result collection will only contain one element as all the data
+ * will be nested in a singleton object.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param testResultName The Test Result Name. It equals to TestResult-{TestResultId} string.
+ * @param analysisResultType The type of the Analysis Result of a Test Result.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Analysis Results as paginated response with {@link PagedFlux}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ AnalysisResultType analysisResultType) {
+ return new PagedFlux<>(
+ () ->
+ listSinglePageAsync(
+ resourceGroupName, testBaseAccountName, packageName, testResultName, analysisResultType));
+ }
+
+ /**
+ * Lists the Analysis Results of a Test Result. The result collection will only contain one element as all the data
+ * will be nested in a singleton object.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param testResultName The Test Result Name. It equals to TestResult-{TestResultId} string.
+ * @param analysisResultType The type of the Analysis Result of a Test Result.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Analysis Results as paginated response with {@link PagedFlux}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ AnalysisResultType analysisResultType,
+ Context context) {
+ return new PagedFlux<>(
+ () ->
+ listSinglePageAsync(
+ resourceGroupName, testBaseAccountName, packageName, testResultName, analysisResultType, context));
+ }
+
+ /**
+ * Lists the Analysis Results of a Test Result. The result collection will only contain one element as all the data
+ * will be nested in a singleton object.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param testResultName The Test Result Name. It equals to TestResult-{TestResultId} string.
+ * @param analysisResultType The type of the Analysis Result of a Test Result.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Analysis Results as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ AnalysisResultType analysisResultType) {
+ return new PagedIterable<>(
+ listAsync(resourceGroupName, testBaseAccountName, packageName, testResultName, analysisResultType));
+ }
+
+ /**
+ * Lists the Analysis Results of a Test Result. The result collection will only contain one element as all the data
+ * will be nested in a singleton object.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param testResultName The Test Result Name. It equals to TestResult-{TestResultId} string.
+ * @param analysisResultType The type of the Analysis Result of a Test Result.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Analysis Results as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ AnalysisResultType analysisResultType,
+ Context context) {
+ return new PagedIterable<>(
+ listAsync(
+ resourceGroupName, testBaseAccountName, packageName, testResultName, analysisResultType, context));
+ }
+
+ /**
+ * Gets an Analysis Result of a Test Result by name.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param testResultName The Test Result Name. It equals to TestResult-{TestResultId} string.
+ * @param analysisResultName The name of the Analysis Result of a Test Result.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an Analysis Result of a Test Result by name along with {@link Response} on successful completion of
+ * {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ AnalysisResultName analysisResultName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (testBaseAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter testBaseAccountName is required and cannot be null."));
+ }
+ if (packageName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter packageName is required and cannot be null."));
+ }
+ if (testResultName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter testResultName is required and cannot be null."));
+ }
+ if (analysisResultName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter analysisResultName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .get(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ packageName,
+ testResultName,
+ analysisResultName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Gets an Analysis Result of a Test Result by name.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param testResultName The Test Result Name. It equals to TestResult-{TestResultId} string.
+ * @param analysisResultName The name of the Analysis Result of a Test Result.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an Analysis Result of a Test Result by name along with {@link Response} on successful completion of
+ * {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ AnalysisResultName analysisResultName,
+ Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (testBaseAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter testBaseAccountName is required and cannot be null."));
+ }
+ if (packageName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter packageName is required and cannot be null."));
+ }
+ if (testResultName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter testResultName is required and cannot be null."));
+ }
+ if (analysisResultName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter analysisResultName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .get(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ packageName,
+ testResultName,
+ analysisResultName,
+ this.client.getApiVersion(),
+ accept,
+ context);
+ }
+
+ /**
+ * Gets an Analysis Result of a Test Result by name.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param packageName The resource name of the Test Base Package.
+ * @param testResultName The Test Result Name. It equals to TestResult-{TestResultId} string.
+ * @param analysisResultName The name of the Analysis Result of a Test Result.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an Analysis Result of a Test Result by name on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono getAsync(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ AnalysisResultName analysisResultName) {
+ return getWithResponseAsync(
+ resourceGroupName, testBaseAccountName, packageName, testResultName, analysisResultName)
+ .flatMap(res -> Mono.justOrEmpty(res.getValue()));
+ }
+
+ /**
+ * 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 TestResult-{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 TestResult-{TestResultId} string.
+ * @param analysisResultName The name of the Analysis Result of a Test Result.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an Analysis Result of a Test Result by name along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response getWithResponse(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ AnalysisResultName analysisResultName,
+ Context context) {
+ return getWithResponseAsync(
+ resourceGroupName, testBaseAccountName, packageName, testResultName, analysisResultName, context)
+ .block();
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AnalysisResultsImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AnalysisResultsImpl.java
new file mode 100644
index 000000000000..9c00bf41b5d8
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AnalysisResultsImpl.java
@@ -0,0 +1,106 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.implementation;
+
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.SimpleResponse;
+import com.azure.core.util.Context;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.testbase.fluent.AnalysisResultsClient;
+import com.azure.resourcemanager.testbase.fluent.models.AnalysisResultSingletonResourceInner;
+import com.azure.resourcemanager.testbase.models.AnalysisResultName;
+import com.azure.resourcemanager.testbase.models.AnalysisResultSingletonResource;
+import com.azure.resourcemanager.testbase.models.AnalysisResultType;
+import com.azure.resourcemanager.testbase.models.AnalysisResults;
+
+public final class AnalysisResultsImpl implements AnalysisResults {
+ private static final ClientLogger LOGGER = new ClientLogger(AnalysisResultsImpl.class);
+
+ private final AnalysisResultsClient innerClient;
+
+ private final com.azure.resourcemanager.testbase.TestBaseManager serviceManager;
+
+ public AnalysisResultsImpl(
+ AnalysisResultsClient innerClient, com.azure.resourcemanager.testbase.TestBaseManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public PagedIterable list(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ AnalysisResultType analysisResultType) {
+ PagedIterable inner =
+ this
+ .serviceClient()
+ .list(resourceGroupName, testBaseAccountName, packageName, testResultName, analysisResultType);
+ return Utils.mapPage(inner, inner1 -> new AnalysisResultSingletonResourceImpl(inner1, this.manager()));
+ }
+
+ public PagedIterable list(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ AnalysisResultType analysisResultType,
+ Context context) {
+ PagedIterable inner =
+ this
+ .serviceClient()
+ .list(resourceGroupName, testBaseAccountName, packageName, testResultName, analysisResultType, context);
+ return Utils.mapPage(inner, inner1 -> new AnalysisResultSingletonResourceImpl(inner1, this.manager()));
+ }
+
+ public AnalysisResultSingletonResource get(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ AnalysisResultName analysisResultName) {
+ AnalysisResultSingletonResourceInner inner =
+ this
+ .serviceClient()
+ .get(resourceGroupName, testBaseAccountName, packageName, testResultName, analysisResultName);
+ if (inner != null) {
+ return new AnalysisResultSingletonResourceImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response getWithResponse(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String packageName,
+ String testResultName,
+ AnalysisResultName analysisResultName,
+ Context context) {
+ Response inner =
+ this
+ .serviceClient()
+ .getWithResponse(
+ resourceGroupName, testBaseAccountName, packageName, testResultName, analysisResultName, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new AnalysisResultSingletonResourceImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ private AnalysisResultsClient serviceClient() {
+ return this.innerClient;
+ }
+
+ private com.azure.resourcemanager.testbase.TestBaseManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AvailableOSClientImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AvailableOSClientImpl.java
new file mode 100644
index 000000000000..7b7888025b31
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AvailableOSClientImpl.java
@@ -0,0 +1,536 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.implementation;
+
+import com.azure.core.annotation.ExpectedResponses;
+import com.azure.core.annotation.Get;
+import com.azure.core.annotation.HeaderParam;
+import com.azure.core.annotation.Headers;
+import com.azure.core.annotation.Host;
+import com.azure.core.annotation.HostParam;
+import com.azure.core.annotation.PathParam;
+import com.azure.core.annotation.QueryParam;
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceInterface;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.annotation.UnexpectedResponseExceptionType;
+import com.azure.core.http.rest.PagedFlux;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.PagedResponse;
+import com.azure.core.http.rest.PagedResponseBase;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.RestProxy;
+import com.azure.core.management.exception.ManagementException;
+import com.azure.core.util.Context;
+import com.azure.core.util.FluxUtil;
+import com.azure.resourcemanager.testbase.fluent.AvailableOSClient;
+import com.azure.resourcemanager.testbase.fluent.models.AvailableOSResourceInner;
+import com.azure.resourcemanager.testbase.models.AvailableOSListResult;
+import com.azure.resourcemanager.testbase.models.OsUpdateType;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in AvailableOSClient. */
+public final class AvailableOSClientImpl implements AvailableOSClient {
+ /** The proxy service used to perform REST calls. */
+ private final AvailableOSService service;
+
+ /** The service client containing this operation class. */
+ private final TestBaseImpl client;
+
+ /**
+ * Initializes an instance of AvailableOSClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ AvailableOSClientImpl(TestBaseImpl client) {
+ this.service =
+ RestProxy.create(AvailableOSService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for TestBaseAvailableOS to be used by the proxy service to perform REST
+ * calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "TestBaseAvailableOS")
+ private interface AvailableOSService {
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase"
+ + "/testBaseAccounts/{testBaseAccountName}/availableOSs")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> list(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("testBaseAccountName") String testBaseAccountName,
+ @QueryParam("osUpdateType") OsUpdateType osUpdateType,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase"
+ + "/testBaseAccounts/{testBaseAccountName}/availableOSs/{availableOSResourceName}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> get(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("testBaseAccountName") String testBaseAccountName,
+ @PathParam("availableOSResourceName") String availableOSResourceName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("{nextLink}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listNext(
+ @PathParam(value = "nextLink", encoded = true) String nextLink,
+ @HostParam("$host") String endpoint,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Lists all the available OSs to run a package under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param osUpdateType The type of the OS Update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of available OSs along with {@link PagedResponse} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(
+ String resourceGroupName, String testBaseAccountName, OsUpdateType osUpdateType) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (testBaseAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter testBaseAccountName is required and cannot be null."));
+ }
+ if (osUpdateType == null) {
+ return Mono.error(new IllegalArgumentException("Parameter osUpdateType is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .list(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ osUpdateType,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Lists all the available OSs to run a package under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param osUpdateType The type of the OS Update.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of available OSs along with {@link PagedResponse} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(
+ String resourceGroupName, String testBaseAccountName, OsUpdateType osUpdateType, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (testBaseAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter testBaseAccountName is required and cannot be null."));
+ }
+ if (osUpdateType == null) {
+ return Mono.error(new IllegalArgumentException("Parameter osUpdateType is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .list(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ osUpdateType,
+ this.client.getApiVersion(),
+ accept,
+ context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * Lists all the available OSs to run a package under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param osUpdateType The type of the OS Update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of available OSs as paginated response with {@link PagedFlux}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(
+ String resourceGroupName, String testBaseAccountName, OsUpdateType osUpdateType) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(resourceGroupName, testBaseAccountName, osUpdateType),
+ nextLink -> listNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * Lists all the available OSs to run a package under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param osUpdateType The type of the OS Update.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of available OSs as paginated response with {@link PagedFlux}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(
+ String resourceGroupName, String testBaseAccountName, OsUpdateType osUpdateType, Context context) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(resourceGroupName, testBaseAccountName, osUpdateType, context),
+ nextLink -> listNextSinglePageAsync(nextLink, context));
+ }
+
+ /**
+ * Lists all the available OSs to run a package under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param osUpdateType The type of the OS Update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of available OSs as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(
+ String resourceGroupName, String testBaseAccountName, OsUpdateType osUpdateType) {
+ return new PagedIterable<>(listAsync(resourceGroupName, testBaseAccountName, osUpdateType));
+ }
+
+ /**
+ * Lists all the available OSs to run a package under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param osUpdateType The type of the OS Update.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of available OSs as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(
+ String resourceGroupName, String testBaseAccountName, OsUpdateType osUpdateType, Context context) {
+ return new PagedIterable<>(listAsync(resourceGroupName, testBaseAccountName, osUpdateType, context));
+ }
+
+ /**
+ * Gets an available OS to run a package under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param availableOSResourceName The resource name of an Available OS.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an available OS to run a package under a Test Base Account along with {@link Response} on successful
+ * completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(
+ String resourceGroupName, String testBaseAccountName, String availableOSResourceName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (testBaseAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter testBaseAccountName is required and cannot be null."));
+ }
+ if (availableOSResourceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter availableOSResourceName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .get(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ availableOSResourceName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Gets an available OS to run a package under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param availableOSResourceName The resource name of an Available OS.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an available OS to run a package under a Test Base Account along with {@link Response} on successful
+ * completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(
+ String resourceGroupName, String testBaseAccountName, String availableOSResourceName, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (testBaseAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter testBaseAccountName is required and cannot be null."));
+ }
+ if (availableOSResourceName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException("Parameter availableOSResourceName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .get(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ availableOSResourceName,
+ this.client.getApiVersion(),
+ accept,
+ context);
+ }
+
+ /**
+ * Gets an available OS to run a package under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param availableOSResourceName The resource name of an Available OS.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an available OS to run a package under a Test Base Account on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono getAsync(
+ String resourceGroupName, String testBaseAccountName, String availableOSResourceName) {
+ return getWithResponseAsync(resourceGroupName, testBaseAccountName, availableOSResourceName)
+ .flatMap(res -> Mono.justOrEmpty(res.getValue()));
+ }
+
+ /**
+ * Gets an available OS to run a package under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param availableOSResourceName The resource name of an Available OS.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an available OS to run a package under a Test Base Account.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public AvailableOSResourceInner get(
+ String resourceGroupName, String testBaseAccountName, String availableOSResourceName) {
+ return getAsync(resourceGroupName, testBaseAccountName, availableOSResourceName).block();
+ }
+
+ /**
+ * Gets an available OS to run a package under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param availableOSResourceName The resource name of an Available OS.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an available OS to run a package under a Test Base Account along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response getWithResponse(
+ String resourceGroupName, String testBaseAccountName, String availableOSResourceName, Context context) {
+ return getWithResponseAsync(resourceGroupName, testBaseAccountName, availableOSResourceName, context).block();
+ }
+
+ /**
+ * Get the next page of items.
+ *
+ * @param nextLink The nextLink parameter.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of available OSs along with {@link PagedResponse} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listNextSinglePageAsync(String nextLink) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(context -> service.listNext(nextLink, this.client.getEndpoint(), accept, context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Get the next page of items.
+ *
+ * @param nextLink The nextLink parameter.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of available OSs along with {@link PagedResponse} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listNextSinglePageAsync(String nextLink, Context context) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .listNext(nextLink, this.client.getEndpoint(), accept, context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AvailableOSImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AvailableOSImpl.java
new file mode 100644
index 000000000000..cec14ada1542
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AvailableOSImpl.java
@@ -0,0 +1,80 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.implementation;
+
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.SimpleResponse;
+import com.azure.core.util.Context;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.testbase.fluent.AvailableOSClient;
+import com.azure.resourcemanager.testbase.fluent.models.AvailableOSResourceInner;
+import com.azure.resourcemanager.testbase.models.AvailableOS;
+import com.azure.resourcemanager.testbase.models.AvailableOSResource;
+import com.azure.resourcemanager.testbase.models.OsUpdateType;
+
+public final class AvailableOSImpl implements AvailableOS {
+ private static final ClientLogger LOGGER = new ClientLogger(AvailableOSImpl.class);
+
+ private final AvailableOSClient innerClient;
+
+ private final com.azure.resourcemanager.testbase.TestBaseManager serviceManager;
+
+ public AvailableOSImpl(
+ AvailableOSClient innerClient, com.azure.resourcemanager.testbase.TestBaseManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public PagedIterable list(
+ String resourceGroupName, String testBaseAccountName, OsUpdateType osUpdateType) {
+ PagedIterable inner =
+ this.serviceClient().list(resourceGroupName, testBaseAccountName, osUpdateType);
+ return Utils.mapPage(inner, inner1 -> new AvailableOSResourceImpl(inner1, this.manager()));
+ }
+
+ public PagedIterable list(
+ String resourceGroupName, String testBaseAccountName, OsUpdateType osUpdateType, Context context) {
+ PagedIterable inner =
+ this.serviceClient().list(resourceGroupName, testBaseAccountName, osUpdateType, context);
+ return Utils.mapPage(inner, inner1 -> new AvailableOSResourceImpl(inner1, this.manager()));
+ }
+
+ public AvailableOSResource get(
+ String resourceGroupName, String testBaseAccountName, String availableOSResourceName) {
+ AvailableOSResourceInner inner =
+ this.serviceClient().get(resourceGroupName, testBaseAccountName, availableOSResourceName);
+ if (inner != null) {
+ return new AvailableOSResourceImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response getWithResponse(
+ String resourceGroupName, String testBaseAccountName, String availableOSResourceName, Context context) {
+ Response inner =
+ this
+ .serviceClient()
+ .getWithResponse(resourceGroupName, testBaseAccountName, availableOSResourceName, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new AvailableOSResourceImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ private AvailableOSClient serviceClient() {
+ return this.innerClient;
+ }
+
+ private com.azure.resourcemanager.testbase.TestBaseManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AvailableOSResourceImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AvailableOSResourceImpl.java
new file mode 100644
index 000000000000..ba22f7a0f3ba
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/AvailableOSResourceImpl.java
@@ -0,0 +1,69 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.implementation;
+
+import com.azure.core.management.SystemData;
+import com.azure.resourcemanager.testbase.fluent.models.AvailableOSResourceInner;
+import com.azure.resourcemanager.testbase.models.AvailableOSResource;
+
+public final class AvailableOSResourceImpl implements AvailableOSResource {
+ private AvailableOSResourceInner innerObject;
+
+ private final com.azure.resourcemanager.testbase.TestBaseManager serviceManager;
+
+ AvailableOSResourceImpl(
+ AvailableOSResourceInner innerObject, com.azure.resourcemanager.testbase.TestBaseManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ }
+
+ public String id() {
+ return this.innerModel().id();
+ }
+
+ public String name() {
+ return this.innerModel().name();
+ }
+
+ public String type() {
+ return this.innerModel().type();
+ }
+
+ public SystemData systemData() {
+ return this.innerModel().systemData();
+ }
+
+ public String osId() {
+ return this.innerModel().osId();
+ }
+
+ public String osName() {
+ return this.innerModel().osName();
+ }
+
+ public String osVersion() {
+ return this.innerModel().osVersion();
+ }
+
+ public String insiderChannel() {
+ return this.innerModel().insiderChannel();
+ }
+
+ public String osUpdateType() {
+ return this.innerModel().osUpdateType();
+ }
+
+ public String osPlatform() {
+ return this.innerModel().osPlatform();
+ }
+
+ public AvailableOSResourceInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.testbase.TestBaseManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/BillingHubGetFreeHourBalanceResponseImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/BillingHubGetFreeHourBalanceResponseImpl.java
new file mode 100644
index 000000000000..ff530a62d63f
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/BillingHubGetFreeHourBalanceResponseImpl.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.implementation;
+
+import com.azure.resourcemanager.testbase.fluent.models.BillingHubGetFreeHourBalanceResponseInner;
+import com.azure.resourcemanager.testbase.models.BillingHubFreeHourIncrementEntry;
+import com.azure.resourcemanager.testbase.models.BillingHubGetFreeHourBalanceResponse;
+import java.util.Collections;
+import java.util.List;
+
+public final class BillingHubGetFreeHourBalanceResponseImpl implements BillingHubGetFreeHourBalanceResponse {
+ private BillingHubGetFreeHourBalanceResponseInner innerObject;
+
+ private final com.azure.resourcemanager.testbase.TestBaseManager serviceManager;
+
+ BillingHubGetFreeHourBalanceResponseImpl(
+ BillingHubGetFreeHourBalanceResponseInner innerObject,
+ com.azure.resourcemanager.testbase.TestBaseManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ }
+
+ public Double totalRemainingFreeHours() {
+ return this.innerModel().totalRemainingFreeHours();
+ }
+
+ public List incrementEntries() {
+ List inner = this.innerModel().incrementEntries();
+ if (inner != null) {
+ return Collections.unmodifiableList(inner);
+ } else {
+ return Collections.emptyList();
+ }
+ }
+
+ public BillingHubGetFreeHourBalanceResponseInner 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/BillingHubGetUsageResponseImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/BillingHubGetUsageResponseImpl.java
new file mode 100644
index 000000000000..ec0af0a1cfd8
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/BillingHubGetUsageResponseImpl.java
@@ -0,0 +1,58 @@
+// 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.BillingHubGetUsageResponseInner;
+import com.azure.resourcemanager.testbase.models.BillingHubGetUsageRequest;
+import com.azure.resourcemanager.testbase.models.BillingHubGetUsageResponse;
+import com.azure.resourcemanager.testbase.models.BillingHubPackageUsage;
+import java.util.Collections;
+import java.util.List;
+
+public final class BillingHubGetUsageResponseImpl implements BillingHubGetUsageResponse {
+ private BillingHubGetUsageResponseInner innerObject;
+
+ private final com.azure.resourcemanager.testbase.TestBaseManager serviceManager;
+
+ BillingHubGetUsageResponseImpl(
+ BillingHubGetUsageResponseInner innerObject,
+ com.azure.resourcemanager.testbase.TestBaseManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ }
+
+ public Double totalUsedFreeHours() {
+ return this.innerModel().totalUsedFreeHours();
+ }
+
+ public Double totalUsedBillableHours() {
+ return this.innerModel().totalUsedBillableHours();
+ }
+
+ public Double totalCharges() {
+ return this.innerModel().totalCharges();
+ }
+
+ public List packageUsageEntries() {
+ List inner = this.innerModel().packageUsageEntries();
+ if (inner != null) {
+ return Collections.unmodifiableList(inner);
+ } else {
+ return Collections.emptyList();
+ }
+ }
+
+ public BillingHubGetUsageRequest nextRequest() {
+ return this.innerModel().nextRequest();
+ }
+
+ public BillingHubGetUsageResponseInner 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/BillingHubServicesClientImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/BillingHubServicesClientImpl.java
new file mode 100644
index 000000000000..a545c57b9107
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/BillingHubServicesClientImpl.java
@@ -0,0 +1,393 @@
+// 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.ExpectedResponses;
+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.Post;
+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.resourcemanager.testbase.fluent.BillingHubServicesClient;
+import com.azure.resourcemanager.testbase.fluent.models.BillingHubGetFreeHourBalanceResponseInner;
+import com.azure.resourcemanager.testbase.fluent.models.BillingHubGetUsageResponseInner;
+import com.azure.resourcemanager.testbase.models.BillingHubGetUsageRequest;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in BillingHubServicesClient. */
+public final class BillingHubServicesClientImpl implements BillingHubServicesClient {
+ /** The proxy service used to perform REST calls. */
+ private final BillingHubServicesService service;
+
+ /** The service client containing this operation class. */
+ private final TestBaseImpl client;
+
+ /**
+ * Initializes an instance of BillingHubServicesClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ BillingHubServicesClientImpl(TestBaseImpl client) {
+ this.service =
+ RestProxy.create(BillingHubServicesService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for TestBaseBillingHubServices to be used by the proxy service to perform
+ * REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "TestBaseBillingHubSe")
+ private interface BillingHubServicesService {
+ @Headers({"Content-Type: application/json"})
+ @Post(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase"
+ + "/testBaseAccounts/{testBaseAccountName}/getFreeHourBalance")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> getFreeHourBalance(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("testBaseAccountName") String testBaseAccountName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Post(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase"
+ + "/testBaseAccounts/{testBaseAccountName}/getUsage")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> getUsage(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("testBaseAccountName") String testBaseAccountName,
+ @QueryParam("api-version") String apiVersion,
+ @BodyParam("application/json") BillingHubGetUsageRequest getUsageRequest,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response body along with {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getFreeHourBalanceWithResponseAsync(
+ String resourceGroupName, String testBaseAccountName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (testBaseAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter testBaseAccountName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .getFreeHourBalance(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response body along with {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getFreeHourBalanceWithResponseAsync(
+ String resourceGroupName, String testBaseAccountName, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (testBaseAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter testBaseAccountName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .getFreeHourBalance(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ this.client.getApiVersion(),
+ accept,
+ context);
+ }
+
+ /**
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response body on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono getFreeHourBalanceAsync(
+ String resourceGroupName, String testBaseAccountName) {
+ return getFreeHourBalanceWithResponseAsync(resourceGroupName, testBaseAccountName)
+ .flatMap(res -> Mono.justOrEmpty(res.getValue()));
+ }
+
+ /**
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public BillingHubGetFreeHourBalanceResponseInner getFreeHourBalance(
+ String resourceGroupName, String testBaseAccountName) {
+ return getFreeHourBalanceAsync(resourceGroupName, testBaseAccountName).block();
+ }
+
+ /**
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response body along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response getFreeHourBalanceWithResponse(
+ String resourceGroupName, String testBaseAccountName, Context context) {
+ return getFreeHourBalanceWithResponseAsync(resourceGroupName, testBaseAccountName, context).block();
+ }
+
+ /**
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param getUsageRequest The getUsageRequest 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 the response body along with {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getUsageWithResponseAsync(
+ String resourceGroupName, String testBaseAccountName, BillingHubGetUsageRequest getUsageRequest) {
+ 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 (getUsageRequest != null) {
+ getUsageRequest.validate();
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .getUsage(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ this.client.getApiVersion(),
+ getUsageRequest,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param getUsageRequest The getUsageRequest 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 the response body along with {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getUsageWithResponseAsync(
+ String resourceGroupName,
+ String testBaseAccountName,
+ BillingHubGetUsageRequest getUsageRequest,
+ 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 (getUsageRequest != null) {
+ getUsageRequest.validate();
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .getUsage(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ this.client.getApiVersion(),
+ getUsageRequest,
+ accept,
+ context);
+ }
+
+ /**
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param getUsageRequest The getUsageRequest 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 the response body on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono getUsageAsync(
+ String resourceGroupName, String testBaseAccountName, BillingHubGetUsageRequest getUsageRequest) {
+ return getUsageWithResponseAsync(resourceGroupName, testBaseAccountName, getUsageRequest)
+ .flatMap(res -> Mono.justOrEmpty(res.getValue()));
+ }
+
+ /**
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response body on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono getUsageAsync(String resourceGroupName, String testBaseAccountName) {
+ final BillingHubGetUsageRequest getUsageRequest = null;
+ return getUsageWithResponseAsync(resourceGroupName, testBaseAccountName, getUsageRequest)
+ .flatMap(res -> Mono.justOrEmpty(res.getValue()));
+ }
+
+ /**
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public BillingHubGetUsageResponseInner getUsage(String resourceGroupName, String testBaseAccountName) {
+ final BillingHubGetUsageRequest getUsageRequest = null;
+ return getUsageAsync(resourceGroupName, testBaseAccountName, getUsageRequest).block();
+ }
+
+ /**
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param getUsageRequest The getUsageRequest 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 the response body along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response getUsageWithResponse(
+ String resourceGroupName,
+ String testBaseAccountName,
+ BillingHubGetUsageRequest getUsageRequest,
+ Context context) {
+ return getUsageWithResponseAsync(resourceGroupName, testBaseAccountName, getUsageRequest, context).block();
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/BillingHubServicesImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/BillingHubServicesImpl.java
new file mode 100644
index 000000000000..f1638b636437
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/BillingHubServicesImpl.java
@@ -0,0 +1,92 @@
+// 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.BillingHubServicesClient;
+import com.azure.resourcemanager.testbase.fluent.models.BillingHubGetFreeHourBalanceResponseInner;
+import com.azure.resourcemanager.testbase.fluent.models.BillingHubGetUsageResponseInner;
+import com.azure.resourcemanager.testbase.models.BillingHubGetFreeHourBalanceResponse;
+import com.azure.resourcemanager.testbase.models.BillingHubGetUsageRequest;
+import com.azure.resourcemanager.testbase.models.BillingHubGetUsageResponse;
+import com.azure.resourcemanager.testbase.models.BillingHubServices;
+
+public final class BillingHubServicesImpl implements BillingHubServices {
+ private static final ClientLogger LOGGER = new ClientLogger(BillingHubServicesImpl.class);
+
+ private final BillingHubServicesClient innerClient;
+
+ private final com.azure.resourcemanager.testbase.TestBaseManager serviceManager;
+
+ public BillingHubServicesImpl(
+ BillingHubServicesClient innerClient, com.azure.resourcemanager.testbase.TestBaseManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public BillingHubGetFreeHourBalanceResponse getFreeHourBalance(
+ String resourceGroupName, String testBaseAccountName) {
+ BillingHubGetFreeHourBalanceResponseInner inner =
+ this.serviceClient().getFreeHourBalance(resourceGroupName, testBaseAccountName);
+ if (inner != null) {
+ return new BillingHubGetFreeHourBalanceResponseImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response getFreeHourBalanceWithResponse(
+ String resourceGroupName, String testBaseAccountName, Context context) {
+ Response inner =
+ this.serviceClient().getFreeHourBalanceWithResponse(resourceGroupName, testBaseAccountName, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new BillingHubGetFreeHourBalanceResponseImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ public BillingHubGetUsageResponse getUsage(String resourceGroupName, String testBaseAccountName) {
+ BillingHubGetUsageResponseInner inner = this.serviceClient().getUsage(resourceGroupName, testBaseAccountName);
+ if (inner != null) {
+ return new BillingHubGetUsageResponseImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response getUsageWithResponse(
+ String resourceGroupName,
+ String testBaseAccountName,
+ BillingHubGetUsageRequest getUsageRequest,
+ Context context) {
+ Response inner =
+ this.serviceClient().getUsageWithResponse(resourceGroupName, testBaseAccountName, getUsageRequest, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new BillingHubGetUsageResponseImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ private BillingHubServicesClient 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/CheckNameAvailabilityResultImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/CheckNameAvailabilityResultImpl.java
new file mode 100644
index 000000000000..9d8d566d3676
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/CheckNameAvailabilityResultImpl.java
@@ -0,0 +1,42 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.implementation;
+
+import com.azure.resourcemanager.testbase.fluent.models.CheckNameAvailabilityResultInner;
+import com.azure.resourcemanager.testbase.models.CheckNameAvailabilityResult;
+import com.azure.resourcemanager.testbase.models.Reason;
+
+public final class CheckNameAvailabilityResultImpl implements CheckNameAvailabilityResult {
+ private CheckNameAvailabilityResultInner innerObject;
+
+ private final com.azure.resourcemanager.testbase.TestBaseManager serviceManager;
+
+ CheckNameAvailabilityResultImpl(
+ CheckNameAvailabilityResultInner innerObject,
+ com.azure.resourcemanager.testbase.TestBaseManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ }
+
+ public Boolean nameAvailable() {
+ return this.innerModel().nameAvailable();
+ }
+
+ public Reason reason() {
+ return this.innerModel().reason();
+ }
+
+ public String message() {
+ return this.innerModel().message();
+ }
+
+ public CheckNameAvailabilityResultInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.testbase.TestBaseManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/CustomerEventResourceImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/CustomerEventResourceImpl.java
new file mode 100644
index 000000000000..4ac45c5efb18
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/CustomerEventResourceImpl.java
@@ -0,0 +1,128 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.implementation;
+
+import com.azure.core.management.SystemData;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.testbase.fluent.models.CustomerEventResourceInner;
+import com.azure.resourcemanager.testbase.models.CustomerEventResource;
+import com.azure.resourcemanager.testbase.models.NotificationEventReceiver;
+import java.util.Collections;
+import java.util.List;
+
+public final class CustomerEventResourceImpl implements CustomerEventResource, CustomerEventResource.Definition {
+ private CustomerEventResourceInner innerObject;
+
+ private final com.azure.resourcemanager.testbase.TestBaseManager serviceManager;
+
+ CustomerEventResourceImpl(
+ CustomerEventResourceInner innerObject, com.azure.resourcemanager.testbase.TestBaseManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ }
+
+ public String id() {
+ return this.innerModel().id();
+ }
+
+ public String name() {
+ return this.innerModel().name();
+ }
+
+ public String type() {
+ return this.innerModel().type();
+ }
+
+ public SystemData systemData() {
+ return this.innerModel().systemData();
+ }
+
+ public String eventName() {
+ return this.innerModel().eventName();
+ }
+
+ public List receivers() {
+ List inner = this.innerModel().receivers();
+ if (inner != null) {
+ return Collections.unmodifiableList(inner);
+ } else {
+ return Collections.emptyList();
+ }
+ }
+
+ public CustomerEventResourceInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.testbase.TestBaseManager manager() {
+ return this.serviceManager;
+ }
+
+ private String resourceGroupName;
+
+ private String testBaseAccountName;
+
+ private String customerEventName;
+
+ public CustomerEventResourceImpl withExistingTestBaseAccount(String resourceGroupName, String testBaseAccountName) {
+ this.resourceGroupName = resourceGroupName;
+ this.testBaseAccountName = testBaseAccountName;
+ return this;
+ }
+
+ public CustomerEventResource create() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getCustomerEvents()
+ .create(resourceGroupName, testBaseAccountName, customerEventName, this.innerModel(), Context.NONE);
+ return this;
+ }
+
+ public CustomerEventResource create(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getCustomerEvents()
+ .create(resourceGroupName, testBaseAccountName, customerEventName, this.innerModel(), context);
+ return this;
+ }
+
+ CustomerEventResourceImpl(String name, com.azure.resourcemanager.testbase.TestBaseManager serviceManager) {
+ this.innerObject = new CustomerEventResourceInner();
+ this.serviceManager = serviceManager;
+ this.customerEventName = name;
+ }
+
+ public CustomerEventResource refresh() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getCustomerEvents()
+ .getWithResponse(resourceGroupName, testBaseAccountName, customerEventName, Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public CustomerEventResource refresh(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getCustomerEvents()
+ .getWithResponse(resourceGroupName, testBaseAccountName, customerEventName, context)
+ .getValue();
+ return this;
+ }
+
+ public CustomerEventResourceImpl withEventName(String eventName) {
+ this.innerModel().withEventName(eventName);
+ return this;
+ }
+
+ public CustomerEventResourceImpl withReceivers(List receivers) {
+ this.innerModel().withReceivers(receivers);
+ return this;
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/CustomerEventsClientImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/CustomerEventsClientImpl.java
new file mode 100644
index 000000000000..c9d62f1a35d1
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/CustomerEventsClientImpl.java
@@ -0,0 +1,1152 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.implementation;
+
+import com.azure.core.annotation.BodyParam;
+import com.azure.core.annotation.Delete;
+import com.azure.core.annotation.ExpectedResponses;
+import com.azure.core.annotation.Get;
+import com.azure.core.annotation.HeaderParam;
+import com.azure.core.annotation.Headers;
+import com.azure.core.annotation.Host;
+import com.azure.core.annotation.HostParam;
+import com.azure.core.annotation.PathParam;
+import com.azure.core.annotation.Put;
+import com.azure.core.annotation.QueryParam;
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceInterface;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.annotation.UnexpectedResponseExceptionType;
+import com.azure.core.http.rest.PagedFlux;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.PagedResponse;
+import com.azure.core.http.rest.PagedResponseBase;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.RestProxy;
+import com.azure.core.management.exception.ManagementException;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.FluxUtil;
+import com.azure.core.util.polling.PollerFlux;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.testbase.fluent.CustomerEventsClient;
+import com.azure.resourcemanager.testbase.fluent.models.CustomerEventResourceInner;
+import com.azure.resourcemanager.testbase.models.CustomerEventListResult;
+import java.nio.ByteBuffer;
+import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in CustomerEventsClient. */
+public final class CustomerEventsClientImpl implements CustomerEventsClient {
+ /** The proxy service used to perform REST calls. */
+ private final CustomerEventsService service;
+
+ /** The service client containing this operation class. */
+ private final TestBaseImpl client;
+
+ /**
+ * Initializes an instance of CustomerEventsClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ CustomerEventsClientImpl(TestBaseImpl client) {
+ this.service =
+ RestProxy.create(CustomerEventsService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for TestBaseCustomerEvents to be used by the proxy service to perform
+ * REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "TestBaseCustomerEven")
+ private interface CustomerEventsService {
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase"
+ + "/testBaseAccounts/{testBaseAccountName}/customerEvents")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listByTestBaseAccount(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("testBaseAccountName") String testBaseAccountName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Put(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase"
+ + "/testBaseAccounts/{testBaseAccountName}/customerEvents/{customerEventName}")
+ @ExpectedResponses({200, 201})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> create(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("testBaseAccountName") String testBaseAccountName,
+ @PathParam("customerEventName") String customerEventName,
+ @QueryParam("api-version") String apiVersion,
+ @BodyParam("application/json") CustomerEventResourceInner parameters,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Delete(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase"
+ + "/testBaseAccounts/{testBaseAccountName}/customerEvents/{customerEventName}")
+ @ExpectedResponses({200, 202, 204})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> delete(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("testBaseAccountName") String testBaseAccountName,
+ @PathParam("customerEventName") String customerEventName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase"
+ + "/testBaseAccounts/{testBaseAccountName}/customerEvents/{customerEventName}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> get(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("testBaseAccountName") String testBaseAccountName,
+ @PathParam("customerEventName") String customerEventName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("{nextLink}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listByTestBaseAccountNext(
+ @PathParam(value = "nextLink", encoded = true) String nextLink,
+ @HostParam("$host") String endpoint,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Lists all notification events subscribed under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Base Customer Events along with {@link PagedResponse} on successful completion of {@link
+ * Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByTestBaseAccountSinglePageAsync(
+ String resourceGroupName, String testBaseAccountName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (testBaseAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter testBaseAccountName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .listByTestBaseAccount(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Lists all notification events subscribed under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Base Customer Events along with {@link PagedResponse} on successful completion of {@link
+ * Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByTestBaseAccountSinglePageAsync(
+ String resourceGroupName, String testBaseAccountName, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (testBaseAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter testBaseAccountName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .listByTestBaseAccount(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ this.client.getApiVersion(),
+ accept,
+ context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * Lists all notification events subscribed under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Base Customer Events as paginated response with {@link PagedFlux}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listByTestBaseAccountAsync(
+ String resourceGroupName, String testBaseAccountName) {
+ return new PagedFlux<>(
+ () -> listByTestBaseAccountSinglePageAsync(resourceGroupName, testBaseAccountName),
+ nextLink -> listByTestBaseAccountNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * Lists all notification events subscribed under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Base Customer Events as paginated response with {@link PagedFlux}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listByTestBaseAccountAsync(
+ String resourceGroupName, String testBaseAccountName, Context context) {
+ return new PagedFlux<>(
+ () -> listByTestBaseAccountSinglePageAsync(resourceGroupName, testBaseAccountName, context),
+ nextLink -> listByTestBaseAccountNextSinglePageAsync(nextLink, context));
+ }
+
+ /**
+ * Lists all notification events subscribed under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Base Customer Events as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable listByTestBaseAccount(
+ String resourceGroupName, String testBaseAccountName) {
+ return new PagedIterable<>(listByTestBaseAccountAsync(resourceGroupName, testBaseAccountName));
+ }
+
+ /**
+ * Lists all notification events subscribed under a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Base Customer Events as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable listByTestBaseAccount(
+ String resourceGroupName, String testBaseAccountName, Context context) {
+ return new PagedIterable<>(listByTestBaseAccountAsync(resourceGroupName, testBaseAccountName, context));
+ }
+
+ /**
+ * Create or replace a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param parameters Parameters supplied to create a Test Base CustomerEvent.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Customer Notification Event resource along with {@link Response} on successful completion of {@link
+ * Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> createWithResponseAsync(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String customerEventName,
+ CustomerEventResourceInner parameters) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (testBaseAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter testBaseAccountName is required and cannot be null."));
+ }
+ if (customerEventName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter customerEventName is required and cannot be null."));
+ }
+ if (parameters == null) {
+ return Mono.error(new IllegalArgumentException("Parameter parameters is required and cannot be null."));
+ } else {
+ parameters.validate();
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .create(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ customerEventName,
+ this.client.getApiVersion(),
+ parameters,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Create or replace a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param parameters Parameters supplied to create a Test Base CustomerEvent.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Customer Notification Event resource along with {@link Response} on successful completion of {@link
+ * Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> createWithResponseAsync(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String customerEventName,
+ CustomerEventResourceInner parameters,
+ Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (testBaseAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter testBaseAccountName is required and cannot be null."));
+ }
+ if (customerEventName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter customerEventName is required and cannot be null."));
+ }
+ if (parameters == null) {
+ return Mono.error(new IllegalArgumentException("Parameter parameters is required and cannot be null."));
+ } else {
+ parameters.validate();
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .create(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ customerEventName,
+ this.client.getApiVersion(),
+ parameters,
+ accept,
+ context);
+ }
+
+ /**
+ * Create or replace a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param parameters Parameters supplied to create a Test Base CustomerEvent.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link PollerFlux} for polling of the Customer Notification Event resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, CustomerEventResourceInner> beginCreateAsync(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String customerEventName,
+ CustomerEventResourceInner parameters) {
+ Mono>> mono =
+ createWithResponseAsync(resourceGroupName, testBaseAccountName, customerEventName, parameters);
+ return this
+ .client
+ .getLroResult(
+ mono,
+ this.client.getHttpPipeline(),
+ CustomerEventResourceInner.class,
+ CustomerEventResourceInner.class,
+ this.client.getContext());
+ }
+
+ /**
+ * Create or replace a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param parameters Parameters supplied to create a Test Base CustomerEvent.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link PollerFlux} for polling of the Customer Notification Event resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, CustomerEventResourceInner> beginCreateAsync(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String customerEventName,
+ CustomerEventResourceInner parameters,
+ Context context) {
+ context = this.client.mergeContext(context);
+ Mono>> mono =
+ createWithResponseAsync(resourceGroupName, testBaseAccountName, customerEventName, parameters, context);
+ return this
+ .client
+ .getLroResult(
+ mono,
+ this.client.getHttpPipeline(),
+ CustomerEventResourceInner.class,
+ CustomerEventResourceInner.class,
+ context);
+ }
+
+ /**
+ * Create or replace a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param parameters Parameters supplied to create a Test Base CustomerEvent.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of the Customer Notification Event resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, CustomerEventResourceInner> beginCreate(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String customerEventName,
+ CustomerEventResourceInner parameters) {
+ return beginCreateAsync(resourceGroupName, testBaseAccountName, customerEventName, parameters).getSyncPoller();
+ }
+
+ /**
+ * Create or replace a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param parameters Parameters supplied to create a Test Base CustomerEvent.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of the Customer Notification Event resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, CustomerEventResourceInner> beginCreate(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String customerEventName,
+ CustomerEventResourceInner parameters,
+ Context context) {
+ return beginCreateAsync(resourceGroupName, testBaseAccountName, customerEventName, parameters, context)
+ .getSyncPoller();
+ }
+
+ /**
+ * Create or replace a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param parameters Parameters supplied to create a Test Base CustomerEvent.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Customer Notification Event resource on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono createAsync(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String customerEventName,
+ CustomerEventResourceInner parameters) {
+ return beginCreateAsync(resourceGroupName, testBaseAccountName, customerEventName, parameters)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Create or replace a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param parameters Parameters supplied to create a Test Base CustomerEvent.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Customer Notification Event resource on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono createAsync(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String customerEventName,
+ CustomerEventResourceInner parameters,
+ Context context) {
+ return beginCreateAsync(resourceGroupName, testBaseAccountName, customerEventName, parameters, context)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Create or replace a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param parameters Parameters supplied to create a Test Base CustomerEvent.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Customer Notification Event resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public CustomerEventResourceInner create(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String customerEventName,
+ CustomerEventResourceInner parameters) {
+ return createAsync(resourceGroupName, testBaseAccountName, customerEventName, parameters).block();
+ }
+
+ /**
+ * Create or replace a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param parameters Parameters supplied to create a Test Base CustomerEvent.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the Customer Notification Event resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public CustomerEventResourceInner create(
+ String resourceGroupName,
+ String testBaseAccountName,
+ String customerEventName,
+ CustomerEventResourceInner parameters,
+ Context context) {
+ return createAsync(resourceGroupName, testBaseAccountName, customerEventName, parameters, context).block();
+ }
+
+ /**
+ * Deletes a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> deleteWithResponseAsync(
+ String resourceGroupName, String testBaseAccountName, String customerEventName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (testBaseAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter testBaseAccountName is required and cannot be null."));
+ }
+ if (customerEventName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter customerEventName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .delete(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ customerEventName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Deletes a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> deleteWithResponseAsync(
+ String resourceGroupName, String testBaseAccountName, String customerEventName, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (testBaseAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter testBaseAccountName is required and cannot be null."));
+ }
+ if (customerEventName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter customerEventName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .delete(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ customerEventName,
+ this.client.getApiVersion(),
+ accept,
+ context);
+ }
+
+ /**
+ * Deletes a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link PollerFlux} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, Void> beginDeleteAsync(
+ String resourceGroupName, String testBaseAccountName, String customerEventName) {
+ Mono>> mono =
+ deleteWithResponseAsync(resourceGroupName, testBaseAccountName, customerEventName);
+ return this
+ .client
+ .getLroResult(
+ mono, this.client.getHttpPipeline(), Void.class, Void.class, this.client.getContext());
+ }
+
+ /**
+ * Deletes a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link PollerFlux} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, Void> beginDeleteAsync(
+ String resourceGroupName, String testBaseAccountName, String customerEventName, Context context) {
+ context = this.client.mergeContext(context);
+ Mono>> mono =
+ deleteWithResponseAsync(resourceGroupName, testBaseAccountName, customerEventName, context);
+ return this
+ .client
+ .getLroResult(mono, this.client.getHttpPipeline(), Void.class, Void.class, context);
+ }
+
+ /**
+ * Deletes a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, Void> beginDelete(
+ String resourceGroupName, String testBaseAccountName, String customerEventName) {
+ return beginDeleteAsync(resourceGroupName, testBaseAccountName, customerEventName).getSyncPoller();
+ }
+
+ /**
+ * Deletes a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, Void> beginDelete(
+ String resourceGroupName, String testBaseAccountName, String customerEventName, Context context) {
+ return beginDeleteAsync(resourceGroupName, testBaseAccountName, customerEventName, context).getSyncPoller();
+ }
+
+ /**
+ * Deletes a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return A {@link Mono} that completes when a successful response is received.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono deleteAsync(String resourceGroupName, String testBaseAccountName, String customerEventName) {
+ return beginDeleteAsync(resourceGroupName, testBaseAccountName, customerEventName)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Deletes a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return A {@link Mono} that completes when a successful response is received.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono deleteAsync(
+ String resourceGroupName, String testBaseAccountName, String customerEventName, Context context) {
+ return beginDeleteAsync(resourceGroupName, testBaseAccountName, customerEventName, context)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Deletes a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public void delete(String resourceGroupName, String testBaseAccountName, String customerEventName) {
+ deleteAsync(resourceGroupName, testBaseAccountName, customerEventName).block();
+ }
+
+ /**
+ * Deletes a Test Base Customer Event.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public void delete(
+ String resourceGroupName, String testBaseAccountName, String customerEventName, Context context) {
+ deleteAsync(resourceGroupName, testBaseAccountName, customerEventName, context).block();
+ }
+
+ /**
+ * Gets a Test Base CustomerEvent.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a Test Base CustomerEvent along with {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(
+ String resourceGroupName, String testBaseAccountName, String customerEventName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (testBaseAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter testBaseAccountName is required and cannot be null."));
+ }
+ if (customerEventName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter customerEventName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .get(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ customerEventName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Gets a Test Base CustomerEvent.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a Test Base CustomerEvent along with {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(
+ String resourceGroupName, String testBaseAccountName, String customerEventName, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (testBaseAccountName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter testBaseAccountName is required and cannot be null."));
+ }
+ if (customerEventName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter customerEventName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .get(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ testBaseAccountName,
+ customerEventName,
+ this.client.getApiVersion(),
+ accept,
+ context);
+ }
+
+ /**
+ * Gets a Test Base CustomerEvent.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a Test Base CustomerEvent on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono getAsync(
+ String resourceGroupName, String testBaseAccountName, String customerEventName) {
+ return getWithResponseAsync(resourceGroupName, testBaseAccountName, customerEventName)
+ .flatMap(res -> Mono.justOrEmpty(res.getValue()));
+ }
+
+ /**
+ * Gets a Test Base CustomerEvent.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a Test Base CustomerEvent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public CustomerEventResourceInner get(
+ String resourceGroupName, String testBaseAccountName, String customerEventName) {
+ return getAsync(resourceGroupName, testBaseAccountName, customerEventName).block();
+ }
+
+ /**
+ * Gets a Test Base CustomerEvent.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @param customerEventName The resource name of the Test Base Customer event.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a Test Base CustomerEvent along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response getWithResponse(
+ String resourceGroupName, String testBaseAccountName, String customerEventName, Context context) {
+ return getWithResponseAsync(resourceGroupName, testBaseAccountName, customerEventName, context).block();
+ }
+
+ /**
+ * Get the next page of items.
+ *
+ * @param nextLink The nextLink parameter.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Base Customer Events along with {@link PagedResponse} on successful completion of {@link
+ * Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByTestBaseAccountNextSinglePageAsync(String nextLink) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context -> service.listByTestBaseAccountNext(nextLink, this.client.getEndpoint(), accept, context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Get the next page of items.
+ *
+ * @param nextLink The nextLink parameter.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of Test Base Customer Events along with {@link PagedResponse} on successful completion of {@link
+ * Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByTestBaseAccountNextSinglePageAsync(
+ String nextLink, Context context) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .listByTestBaseAccountNext(nextLink, this.client.getEndpoint(), accept, context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/CustomerEventsImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/CustomerEventsImpl.java
new file mode 100644
index 000000000000..c877690dea95
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/CustomerEventsImpl.java
@@ -0,0 +1,205 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.implementation;
+
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.SimpleResponse;
+import com.azure.core.util.Context;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.testbase.fluent.CustomerEventsClient;
+import com.azure.resourcemanager.testbase.fluent.models.CustomerEventResourceInner;
+import com.azure.resourcemanager.testbase.models.CustomerEventResource;
+import com.azure.resourcemanager.testbase.models.CustomerEvents;
+
+public final class CustomerEventsImpl implements CustomerEvents {
+ private static final ClientLogger LOGGER = new ClientLogger(CustomerEventsImpl.class);
+
+ private final CustomerEventsClient innerClient;
+
+ private final com.azure.resourcemanager.testbase.TestBaseManager serviceManager;
+
+ public CustomerEventsImpl(
+ CustomerEventsClient innerClient, com.azure.resourcemanager.testbase.TestBaseManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public PagedIterable listByTestBaseAccount(
+ String resourceGroupName, String testBaseAccountName) {
+ PagedIterable inner =
+ this.serviceClient().listByTestBaseAccount(resourceGroupName, testBaseAccountName);
+ return Utils.mapPage(inner, inner1 -> new CustomerEventResourceImpl(inner1, this.manager()));
+ }
+
+ public PagedIterable listByTestBaseAccount(
+ String resourceGroupName, String testBaseAccountName, Context context) {
+ PagedIterable inner =
+ this.serviceClient().listByTestBaseAccount(resourceGroupName, testBaseAccountName, context);
+ return Utils.mapPage(inner, inner1 -> new CustomerEventResourceImpl(inner1, this.manager()));
+ }
+
+ public void delete(String resourceGroupName, String testBaseAccountName, String customerEventName) {
+ this.serviceClient().delete(resourceGroupName, testBaseAccountName, customerEventName);
+ }
+
+ public void delete(
+ String resourceGroupName, String testBaseAccountName, String customerEventName, Context context) {
+ this.serviceClient().delete(resourceGroupName, testBaseAccountName, customerEventName, context);
+ }
+
+ public CustomerEventResource get(String resourceGroupName, String testBaseAccountName, String customerEventName) {
+ CustomerEventResourceInner inner =
+ this.serviceClient().get(resourceGroupName, testBaseAccountName, customerEventName);
+ if (inner != null) {
+ return new CustomerEventResourceImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response getWithResponse(
+ String resourceGroupName, String testBaseAccountName, String customerEventName, Context context) {
+ Response inner =
+ this.serviceClient().getWithResponse(resourceGroupName, testBaseAccountName, customerEventName, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new CustomerEventResourceImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ public CustomerEventResource getById(String id) {
+ String resourceGroupName = Utils.getValueFromIdByName(id, "resourceGroups");
+ if (resourceGroupName == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'resourceGroups'.", id)));
+ }
+ String testBaseAccountName = Utils.getValueFromIdByName(id, "testBaseAccounts");
+ if (testBaseAccountName == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'testBaseAccounts'.", id)));
+ }
+ String customerEventName = Utils.getValueFromIdByName(id, "customerEvents");
+ if (customerEventName == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'customerEvents'.", id)));
+ }
+ return this.getWithResponse(resourceGroupName, testBaseAccountName, customerEventName, Context.NONE).getValue();
+ }
+
+ public Response getByIdWithResponse(String id, Context context) {
+ String resourceGroupName = Utils.getValueFromIdByName(id, "resourceGroups");
+ if (resourceGroupName == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'resourceGroups'.", id)));
+ }
+ String testBaseAccountName = Utils.getValueFromIdByName(id, "testBaseAccounts");
+ if (testBaseAccountName == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'testBaseAccounts'.", id)));
+ }
+ String customerEventName = Utils.getValueFromIdByName(id, "customerEvents");
+ if (customerEventName == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'customerEvents'.", id)));
+ }
+ return this.getWithResponse(resourceGroupName, testBaseAccountName, customerEventName, context);
+ }
+
+ public void deleteById(String id) {
+ String resourceGroupName = Utils.getValueFromIdByName(id, "resourceGroups");
+ if (resourceGroupName == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'resourceGroups'.", id)));
+ }
+ String testBaseAccountName = Utils.getValueFromIdByName(id, "testBaseAccounts");
+ if (testBaseAccountName == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'testBaseAccounts'.", id)));
+ }
+ String customerEventName = Utils.getValueFromIdByName(id, "customerEvents");
+ if (customerEventName == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'customerEvents'.", id)));
+ }
+ this.delete(resourceGroupName, testBaseAccountName, customerEventName, Context.NONE);
+ }
+
+ public void deleteByIdWithResponse(String id, Context context) {
+ String resourceGroupName = Utils.getValueFromIdByName(id, "resourceGroups");
+ if (resourceGroupName == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'resourceGroups'.", id)));
+ }
+ String testBaseAccountName = Utils.getValueFromIdByName(id, "testBaseAccounts");
+ if (testBaseAccountName == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'testBaseAccounts'.", id)));
+ }
+ String customerEventName = Utils.getValueFromIdByName(id, "customerEvents");
+ if (customerEventName == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'customerEvents'.", id)));
+ }
+ this.delete(resourceGroupName, testBaseAccountName, customerEventName, context);
+ }
+
+ private CustomerEventsClient serviceClient() {
+ return this.innerClient;
+ }
+
+ private com.azure.resourcemanager.testbase.TestBaseManager manager() {
+ return this.serviceManager;
+ }
+
+ public CustomerEventResourceImpl define(String name) {
+ return new CustomerEventResourceImpl(name, this.manager());
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/DownloadUrlResponseImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/DownloadUrlResponseImpl.java
new file mode 100644
index 000000000000..2cf6c91680a3
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/DownloadUrlResponseImpl.java
@@ -0,0 +1,37 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.implementation;
+
+import com.azure.resourcemanager.testbase.fluent.models.DownloadUrlResponseInner;
+import com.azure.resourcemanager.testbase.models.DownloadUrlResponse;
+import java.time.OffsetDateTime;
+
+public final class DownloadUrlResponseImpl implements DownloadUrlResponse {
+ private DownloadUrlResponseInner innerObject;
+
+ private final com.azure.resourcemanager.testbase.TestBaseManager serviceManager;
+
+ DownloadUrlResponseImpl(
+ DownloadUrlResponseInner innerObject, com.azure.resourcemanager.testbase.TestBaseManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ }
+
+ public String downloadUrl() {
+ return this.innerModel().downloadUrl();
+ }
+
+ public OffsetDateTime expirationTime() {
+ return this.innerModel().expirationTime();
+ }
+
+ public DownloadUrlResponseInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.testbase.TestBaseManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/EmailEventResourceImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/EmailEventResourceImpl.java
new file mode 100644
index 000000000000..f597cb5dd50d
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/EmailEventResourceImpl.java
@@ -0,0 +1,57 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.implementation;
+
+import com.azure.core.management.SystemData;
+import com.azure.resourcemanager.testbase.fluent.models.EmailEventResourceInner;
+import com.azure.resourcemanager.testbase.models.EmailEventResource;
+
+public final class EmailEventResourceImpl implements EmailEventResource {
+ private EmailEventResourceInner innerObject;
+
+ private final com.azure.resourcemanager.testbase.TestBaseManager serviceManager;
+
+ EmailEventResourceImpl(
+ EmailEventResourceInner innerObject, com.azure.resourcemanager.testbase.TestBaseManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ }
+
+ public String id() {
+ return this.innerModel().id();
+ }
+
+ public String name() {
+ return this.innerModel().name();
+ }
+
+ public String type() {
+ return this.innerModel().type();
+ }
+
+ public SystemData systemData() {
+ return this.innerModel().systemData();
+ }
+
+ public String eventId() {
+ return this.innerModel().eventId();
+ }
+
+ public String eventName() {
+ return this.innerModel().eventName();
+ }
+
+ public String displayName() {
+ return this.innerModel().displayName();
+ }
+
+ public EmailEventResourceInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.testbase.TestBaseManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/EmailEventsClientImpl.java b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/EmailEventsClientImpl.java
new file mode 100644
index 000000000000..42235b33c042
--- /dev/null
+++ b/sdk/testbase/azure-resourcemanager-testbase/src/main/java/com/azure/resourcemanager/testbase/implementation/EmailEventsClientImpl.java
@@ -0,0 +1,518 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.testbase.implementation;
+
+import com.azure.core.annotation.ExpectedResponses;
+import com.azure.core.annotation.Get;
+import com.azure.core.annotation.HeaderParam;
+import com.azure.core.annotation.Headers;
+import com.azure.core.annotation.Host;
+import com.azure.core.annotation.HostParam;
+import com.azure.core.annotation.PathParam;
+import com.azure.core.annotation.QueryParam;
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceInterface;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.annotation.UnexpectedResponseExceptionType;
+import com.azure.core.http.rest.PagedFlux;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.PagedResponse;
+import com.azure.core.http.rest.PagedResponseBase;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.RestProxy;
+import com.azure.core.management.exception.ManagementException;
+import com.azure.core.util.Context;
+import com.azure.core.util.FluxUtil;
+import com.azure.resourcemanager.testbase.fluent.EmailEventsClient;
+import com.azure.resourcemanager.testbase.fluent.models.EmailEventResourceInner;
+import com.azure.resourcemanager.testbase.models.EmailEventListResult;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in EmailEventsClient. */
+public final class EmailEventsClientImpl implements EmailEventsClient {
+ /** The proxy service used to perform REST calls. */
+ private final EmailEventsService service;
+
+ /** The service client containing this operation class. */
+ private final TestBaseImpl client;
+
+ /**
+ * Initializes an instance of EmailEventsClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ EmailEventsClientImpl(TestBaseImpl client) {
+ this.service =
+ RestProxy.create(EmailEventsService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for TestBaseEmailEvents to be used by the proxy service to perform REST
+ * calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "TestBaseEmailEvents")
+ private interface EmailEventsService {
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase"
+ + "/testBaseAccounts/{testBaseAccountName}/emailEvents")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> list(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("testBaseAccountName") String testBaseAccountName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase"
+ + "/testBaseAccounts/{testBaseAccountName}/emailEvents/{emailEventResourceName}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> get(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("testBaseAccountName") String testBaseAccountName,
+ @PathParam("emailEventResourceName") String emailEventResourceName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("{nextLink}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listNext(
+ @PathParam(value = "nextLink", encoded = true) String nextLink,
+ @HostParam("$host") String endpoint,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Lists all the email events of a Test Base Account.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource.
+ * @param testBaseAccountName The resource name of the Test Base Account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of email events along with {@link PagedResponse} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono