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 DevCenter service API entry point.
+ *
+ * @param credential the credential to use.
+ * @param profile the Azure profile for client.
+ * @return the DevCenter service API instance.
+ */
+ public DevCenterManager 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.devcenter")
+ .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 DevCenterManager(httpPipeline, profile, defaultPollInterval);
+ }
+ }
+
+ /**
+ * Gets the resource collection API of DevCenters. It manages DevCenter.
+ *
+ * @return Resource collection API of DevCenters.
+ */
+ public DevCenters devCenters() {
+ if (this.devCenters == null) {
+ this.devCenters = new DevCentersImpl(clientObject.getDevCenters(), this);
+ }
+ return devCenters;
+ }
+
+ /**
+ * Gets the resource collection API of Projects. It manages Project.
+ *
+ * @return Resource collection API of Projects.
+ */
+ public Projects projects() {
+ if (this.projects == null) {
+ this.projects = new ProjectsImpl(clientObject.getProjects(), this);
+ }
+ return projects;
+ }
+
+ /**
+ * Gets the resource collection API of AttachedNetworks. It manages AttachedNetworkConnection.
+ *
+ * @return Resource collection API of AttachedNetworks.
+ */
+ public AttachedNetworks attachedNetworks() {
+ if (this.attachedNetworks == null) {
+ this.attachedNetworks = new AttachedNetworksImpl(clientObject.getAttachedNetworks(), this);
+ }
+ return attachedNetworks;
+ }
+
+ /**
+ * Gets the resource collection API of Galleries. It manages Gallery.
+ *
+ * @return Resource collection API of Galleries.
+ */
+ public Galleries galleries() {
+ if (this.galleries == null) {
+ this.galleries = new GalleriesImpl(clientObject.getGalleries(), this);
+ }
+ return galleries;
+ }
+
+ /**
+ * Gets the resource collection API of Images.
+ *
+ * @return Resource collection API of Images.
+ */
+ public Images images() {
+ if (this.images == null) {
+ this.images = new ImagesImpl(clientObject.getImages(), this);
+ }
+ return images;
+ }
+
+ /**
+ * Gets the resource collection API of ImageVersions.
+ *
+ * @return Resource collection API of ImageVersions.
+ */
+ public ImageVersions imageVersions() {
+ if (this.imageVersions == null) {
+ this.imageVersions = new ImageVersionsImpl(clientObject.getImageVersions(), this);
+ }
+ return imageVersions;
+ }
+
+ /**
+ * Gets the resource collection API of Catalogs. It manages Catalog.
+ *
+ * @return Resource collection API of Catalogs.
+ */
+ public Catalogs catalogs() {
+ if (this.catalogs == null) {
+ this.catalogs = new CatalogsImpl(clientObject.getCatalogs(), this);
+ }
+ return catalogs;
+ }
+
+ /**
+ * Gets the resource collection API of EnvironmentTypes. It manages EnvironmentType.
+ *
+ * @return Resource collection API of EnvironmentTypes.
+ */
+ public EnvironmentTypes environmentTypes() {
+ if (this.environmentTypes == null) {
+ this.environmentTypes = new EnvironmentTypesImpl(clientObject.getEnvironmentTypes(), this);
+ }
+ return environmentTypes;
+ }
+
+ /**
+ * Gets the resource collection API of ProjectEnvironmentTypes. It manages ProjectEnvironmentType.
+ *
+ * @return Resource collection API of ProjectEnvironmentTypes.
+ */
+ public ProjectEnvironmentTypes projectEnvironmentTypes() {
+ if (this.projectEnvironmentTypes == null) {
+ this.projectEnvironmentTypes =
+ new ProjectEnvironmentTypesImpl(clientObject.getProjectEnvironmentTypes(), this);
+ }
+ return projectEnvironmentTypes;
+ }
+
+ /**
+ * Gets the resource collection API of DevBoxDefinitions. It manages DevBoxDefinition.
+ *
+ * @return Resource collection API of DevBoxDefinitions.
+ */
+ public DevBoxDefinitions devBoxDefinitions() {
+ if (this.devBoxDefinitions == null) {
+ this.devBoxDefinitions = new DevBoxDefinitionsImpl(clientObject.getDevBoxDefinitions(), this);
+ }
+ return devBoxDefinitions;
+ }
+
+ /**
+ * 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 OperationStatuses.
+ *
+ * @return Resource collection API of OperationStatuses.
+ */
+ public OperationStatuses operationStatuses() {
+ if (this.operationStatuses == null) {
+ this.operationStatuses = new OperationStatusesImpl(clientObject.getOperationStatuses(), this);
+ }
+ return operationStatuses;
+ }
+
+ /**
+ * 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 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 Pools. It manages Pool.
+ *
+ * @return Resource collection API of Pools.
+ */
+ public Pools pools() {
+ if (this.pools == null) {
+ this.pools = new PoolsImpl(clientObject.getPools(), this);
+ }
+ return pools;
+ }
+
+ /**
+ * Gets the resource collection API of Schedules. It manages Schedule.
+ *
+ * @return Resource collection API of Schedules.
+ */
+ public Schedules schedules() {
+ if (this.schedules == null) {
+ this.schedules = new SchedulesImpl(clientObject.getSchedules(), this);
+ }
+ return schedules;
+ }
+
+ /**
+ * Gets the resource collection API of NetworkConnections. It manages NetworkConnection.
+ *
+ * @return Resource collection API of NetworkConnections.
+ */
+ public NetworkConnections networkConnections() {
+ if (this.networkConnections == null) {
+ this.networkConnections = new NetworkConnectionsImpl(clientObject.getNetworkConnections(), this);
+ }
+ return networkConnections;
+ }
+
+ /**
+ * @return Wrapped service client DevCenterClient providing direct access to the underlying auto-generated API
+ * implementation, based on Azure REST API.
+ */
+ public DevCenterClient serviceClient() {
+ return this.clientObject;
+ }
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/AttachedNetworksClient.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/AttachedNetworksClient.java
new file mode 100644
index 000000000000..65a025a1d26e
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/AttachedNetworksClient.java
@@ -0,0 +1,275 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.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.devcenter.fluent.models.AttachedNetworkConnectionInner;
+
+/** An instance of this class provides access to all the operations defined in AttachedNetworksClient. */
+public interface AttachedNetworksClient {
+ /**
+ * Lists the attached NetworkConnections for a Project.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return results of the Attached Networks list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByProject(String resourceGroupName, String projectName);
+
+ /**
+ * Lists the attached NetworkConnections for a Project.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param top The maximum number of resources to return from the operation. Example: '$top=10'.
+ * @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 results of the Attached Networks list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByProject(
+ String resourceGroupName, String projectName, Integer top, Context context);
+
+ /**
+ * Gets an attached NetworkConnection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param attachedNetworkConnectionName The name of the attached NetworkConnection.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 attached NetworkConnection.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AttachedNetworkConnectionInner getByProject(
+ String resourceGroupName, String projectName, String attachedNetworkConnectionName);
+
+ /**
+ * Gets an attached NetworkConnection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param attachedNetworkConnectionName The name of the attached NetworkConnection.
+ * @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 attached NetworkConnection along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByProjectWithResponse(
+ String resourceGroupName, String projectName, String attachedNetworkConnectionName, Context context);
+
+ /**
+ * Lists the attached NetworkConnections for a DevCenter.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return results of the Attached Networks list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByDevCenter(String resourceGroupName, String devCenterName);
+
+ /**
+ * Lists the attached NetworkConnections for a DevCenter.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param top The maximum number of resources to return from the operation. Example: '$top=10'.
+ * @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 results of the Attached Networks list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByDevCenter(
+ String resourceGroupName, String devCenterName, Integer top, Context context);
+
+ /**
+ * Gets an attached NetworkConnection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param attachedNetworkConnectionName The name of the attached NetworkConnection.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 attached NetworkConnection.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AttachedNetworkConnectionInner getByDevCenter(
+ String resourceGroupName, String devCenterName, String attachedNetworkConnectionName);
+
+ /**
+ * Gets an attached NetworkConnection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param attachedNetworkConnectionName The name of the attached NetworkConnection.
+ * @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 attached NetworkConnection along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByDevCenterWithResponse(
+ String resourceGroupName, String devCenterName, String attachedNetworkConnectionName, Context context);
+
+ /**
+ * Creates or updates an attached NetworkConnection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param attachedNetworkConnectionName The name of the attached NetworkConnection.
+ * @param body Represents an attached NetworkConnection.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 represents an attached NetworkConnection.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, AttachedNetworkConnectionInner> beginCreateOrUpdate(
+ String resourceGroupName,
+ String devCenterName,
+ String attachedNetworkConnectionName,
+ AttachedNetworkConnectionInner body);
+
+ /**
+ * Creates or updates an attached NetworkConnection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param attachedNetworkConnectionName The name of the attached NetworkConnection.
+ * @param body Represents an attached NetworkConnection.
+ * @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 represents an attached NetworkConnection.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, AttachedNetworkConnectionInner> beginCreateOrUpdate(
+ String resourceGroupName,
+ String devCenterName,
+ String attachedNetworkConnectionName,
+ AttachedNetworkConnectionInner body,
+ Context context);
+
+ /**
+ * Creates or updates an attached NetworkConnection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param attachedNetworkConnectionName The name of the attached NetworkConnection.
+ * @param body Represents an attached NetworkConnection.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return represents an attached NetworkConnection.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AttachedNetworkConnectionInner createOrUpdate(
+ String resourceGroupName,
+ String devCenterName,
+ String attachedNetworkConnectionName,
+ AttachedNetworkConnectionInner body);
+
+ /**
+ * Creates or updates an attached NetworkConnection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param attachedNetworkConnectionName The name of the attached NetworkConnection.
+ * @param body Represents an attached NetworkConnection.
+ * @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 represents an attached NetworkConnection.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AttachedNetworkConnectionInner createOrUpdate(
+ String resourceGroupName,
+ String devCenterName,
+ String attachedNetworkConnectionName,
+ AttachedNetworkConnectionInner body,
+ Context context);
+
+ /**
+ * Un-attach a NetworkConnection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param attachedNetworkConnectionName The name of the attached NetworkConnection.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 devCenterName, String attachedNetworkConnectionName);
+
+ /**
+ * Un-attach a NetworkConnection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param attachedNetworkConnectionName The name of the attached NetworkConnection.
+ * @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 devCenterName, String attachedNetworkConnectionName, Context context);
+
+ /**
+ * Un-attach a NetworkConnection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param attachedNetworkConnectionName The name of the attached NetworkConnection.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 devCenterName, String attachedNetworkConnectionName);
+
+ /**
+ * Un-attach a NetworkConnection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param attachedNetworkConnectionName The name of the attached NetworkConnection.
+ * @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 devCenterName, String attachedNetworkConnectionName, Context context);
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/CatalogsClient.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/CatalogsClient.java
new file mode 100644
index 000000000000..821645421e3b
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/CatalogsClient.java
@@ -0,0 +1,321 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.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.devcenter.fluent.models.CatalogInner;
+import com.azure.resourcemanager.devcenter.models.CatalogUpdate;
+
+/** An instance of this class provides access to all the operations defined in CatalogsClient. */
+public interface CatalogsClient {
+ /**
+ * Lists catalogs for a devcenter.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return results of the catalog list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByDevCenter(String resourceGroupName, String devCenterName);
+
+ /**
+ * Lists catalogs for a devcenter.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param top The maximum number of resources to return from the operation. Example: '$top=10'.
+ * @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 results of the catalog list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByDevCenter(
+ String resourceGroupName, String devCenterName, Integer top, Context context);
+
+ /**
+ * Gets a catalog.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param catalogName The name of the Catalog.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a catalog.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CatalogInner get(String resourceGroupName, String devCenterName, String catalogName);
+
+ /**
+ * Gets a catalog.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param catalogName The name of the Catalog.
+ * @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 catalog along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String devCenterName, String catalogName, Context context);
+
+ /**
+ * Creates or updates a catalog.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param catalogName The name of the Catalog.
+ * @param body Represents a catalog.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 represents a catalog.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, CatalogInner> beginCreateOrUpdate(
+ String resourceGroupName, String devCenterName, String catalogName, CatalogInner body);
+
+ /**
+ * Creates or updates a catalog.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param catalogName The name of the Catalog.
+ * @param body Represents a catalog.
+ * @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 represents a catalog.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, CatalogInner> beginCreateOrUpdate(
+ String resourceGroupName, String devCenterName, String catalogName, CatalogInner body, Context context);
+
+ /**
+ * Creates or updates a catalog.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param catalogName The name of the Catalog.
+ * @param body Represents a catalog.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return represents a catalog.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CatalogInner createOrUpdate(String resourceGroupName, String devCenterName, String catalogName, CatalogInner body);
+
+ /**
+ * Creates or updates a catalog.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param catalogName The name of the Catalog.
+ * @param body Represents a catalog.
+ * @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 represents a catalog.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CatalogInner createOrUpdate(
+ String resourceGroupName, String devCenterName, String catalogName, CatalogInner body, Context context);
+
+ /**
+ * Partially updates a catalog.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param catalogName The name of the Catalog.
+ * @param body Updatable catalog properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 represents a catalog.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, CatalogInner> beginUpdate(
+ String resourceGroupName, String devCenterName, String catalogName, CatalogUpdate body);
+
+ /**
+ * Partially updates a catalog.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param catalogName The name of the Catalog.
+ * @param body Updatable catalog properties.
+ * @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 represents a catalog.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, CatalogInner> beginUpdate(
+ String resourceGroupName, String devCenterName, String catalogName, CatalogUpdate body, Context context);
+
+ /**
+ * Partially updates a catalog.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param catalogName The name of the Catalog.
+ * @param body Updatable catalog properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return represents a catalog.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CatalogInner update(String resourceGroupName, String devCenterName, String catalogName, CatalogUpdate body);
+
+ /**
+ * Partially updates a catalog.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param catalogName The name of the Catalog.
+ * @param body Updatable catalog properties.
+ * @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 represents a catalog.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CatalogInner update(
+ String resourceGroupName, String devCenterName, String catalogName, CatalogUpdate body, Context context);
+
+ /**
+ * Deletes a catalog resource.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param catalogName The name of the Catalog.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 devCenterName, String catalogName);
+
+ /**
+ * Deletes a catalog resource.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param catalogName The name of the Catalog.
+ * @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 devCenterName, String catalogName, Context context);
+
+ /**
+ * Deletes a catalog resource.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param catalogName The name of the Catalog.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 devCenterName, String catalogName);
+
+ /**
+ * Deletes a catalog resource.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param catalogName The name of the Catalog.
+ * @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 devCenterName, String catalogName, Context context);
+
+ /**
+ * Syncs templates for a template source.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param catalogName The name of the Catalog.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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> beginSync(String resourceGroupName, String devCenterName, String catalogName);
+
+ /**
+ * Syncs templates for a template source.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param catalogName The name of the Catalog.
+ * @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> beginSync(
+ String resourceGroupName, String devCenterName, String catalogName, Context context);
+
+ /**
+ * Syncs templates for a template source.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param catalogName The name of the Catalog.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 sync(String resourceGroupName, String devCenterName, String catalogName);
+
+ /**
+ * Syncs templates for a template source.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param catalogName The name of the Catalog.
+ * @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 sync(String resourceGroupName, String devCenterName, String catalogName, Context context);
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/DevBoxDefinitionsClient.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/DevBoxDefinitionsClient.java
new file mode 100644
index 000000000000..2138efe2515d
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/DevBoxDefinitionsClient.java
@@ -0,0 +1,342 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.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.devcenter.fluent.models.DevBoxDefinitionInner;
+import com.azure.resourcemanager.devcenter.models.DevBoxDefinitionUpdate;
+
+/** An instance of this class provides access to all the operations defined in DevBoxDefinitionsClient. */
+public interface DevBoxDefinitionsClient {
+ /**
+ * List Dev Box definitions for a devcenter.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return results of the Dev Box definition list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByDevCenter(String resourceGroupName, String devCenterName);
+
+ /**
+ * List Dev Box definitions for a devcenter.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param top The maximum number of resources to return from the operation. Example: '$top=10'.
+ * @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 results of the Dev Box definition list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByDevCenter(
+ String resourceGroupName, String devCenterName, Integer top, Context context);
+
+ /**
+ * Gets a Dev Box definition.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param devBoxDefinitionName The name of the Dev Box definition.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a Dev Box definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DevBoxDefinitionInner get(String resourceGroupName, String devCenterName, String devBoxDefinitionName);
+
+ /**
+ * Gets a Dev Box definition.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param devBoxDefinitionName The name of the Dev Box definition.
+ * @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 Dev Box definition along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String devCenterName, String devBoxDefinitionName, Context context);
+
+ /**
+ * Creates or updates a Dev Box definition.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param devBoxDefinitionName The name of the Dev Box definition.
+ * @param body Represents a Dev Box definition.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 represents a definition for a Developer Machine.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, DevBoxDefinitionInner> beginCreateOrUpdate(
+ String resourceGroupName, String devCenterName, String devBoxDefinitionName, DevBoxDefinitionInner body);
+
+ /**
+ * Creates or updates a Dev Box definition.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param devBoxDefinitionName The name of the Dev Box definition.
+ * @param body Represents a Dev Box definition.
+ * @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 represents a definition for a Developer Machine.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, DevBoxDefinitionInner> beginCreateOrUpdate(
+ String resourceGroupName,
+ String devCenterName,
+ String devBoxDefinitionName,
+ DevBoxDefinitionInner body,
+ Context context);
+
+ /**
+ * Creates or updates a Dev Box definition.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param devBoxDefinitionName The name of the Dev Box definition.
+ * @param body Represents a Dev Box definition.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return represents a definition for a Developer Machine.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DevBoxDefinitionInner createOrUpdate(
+ String resourceGroupName, String devCenterName, String devBoxDefinitionName, DevBoxDefinitionInner body);
+
+ /**
+ * Creates or updates a Dev Box definition.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param devBoxDefinitionName The name of the Dev Box definition.
+ * @param body Represents a Dev Box definition.
+ * @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 represents a definition for a Developer Machine.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DevBoxDefinitionInner createOrUpdate(
+ String resourceGroupName,
+ String devCenterName,
+ String devBoxDefinitionName,
+ DevBoxDefinitionInner body,
+ Context context);
+
+ /**
+ * Partially updates a Dev Box definition.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param devBoxDefinitionName The name of the Dev Box definition.
+ * @param body Represents a Dev Box definition.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 represents a definition for a Developer Machine.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, DevBoxDefinitionInner> beginUpdate(
+ String resourceGroupName, String devCenterName, String devBoxDefinitionName, DevBoxDefinitionUpdate body);
+
+ /**
+ * Partially updates a Dev Box definition.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param devBoxDefinitionName The name of the Dev Box definition.
+ * @param body Represents a Dev Box definition.
+ * @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 represents a definition for a Developer Machine.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, DevBoxDefinitionInner> beginUpdate(
+ String resourceGroupName,
+ String devCenterName,
+ String devBoxDefinitionName,
+ DevBoxDefinitionUpdate body,
+ Context context);
+
+ /**
+ * Partially updates a Dev Box definition.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param devBoxDefinitionName The name of the Dev Box definition.
+ * @param body Represents a Dev Box definition.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return represents a definition for a Developer Machine.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DevBoxDefinitionInner update(
+ String resourceGroupName, String devCenterName, String devBoxDefinitionName, DevBoxDefinitionUpdate body);
+
+ /**
+ * Partially updates a Dev Box definition.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param devBoxDefinitionName The name of the Dev Box definition.
+ * @param body Represents a Dev Box definition.
+ * @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 represents a definition for a Developer Machine.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DevBoxDefinitionInner update(
+ String resourceGroupName,
+ String devCenterName,
+ String devBoxDefinitionName,
+ DevBoxDefinitionUpdate body,
+ Context context);
+
+ /**
+ * Deletes a Dev Box definition.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param devBoxDefinitionName The name of the Dev Box definition.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 devCenterName, String devBoxDefinitionName);
+
+ /**
+ * Deletes a Dev Box definition.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param devBoxDefinitionName The name of the Dev Box definition.
+ * @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 devCenterName, String devBoxDefinitionName, Context context);
+
+ /**
+ * Deletes a Dev Box definition.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param devBoxDefinitionName The name of the Dev Box definition.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 devCenterName, String devBoxDefinitionName);
+
+ /**
+ * Deletes a Dev Box definition.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param devBoxDefinitionName The name of the Dev Box definition.
+ * @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 devCenterName, String devBoxDefinitionName, Context context);
+
+ /**
+ * List Dev Box definitions configured for a project.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return results of the Dev Box definition list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByProject(String resourceGroupName, String projectName);
+
+ /**
+ * List Dev Box definitions configured for a project.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param top The maximum number of resources to return from the operation. Example: '$top=10'.
+ * @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 results of the Dev Box definition list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByProject(
+ String resourceGroupName, String projectName, Integer top, Context context);
+
+ /**
+ * Gets a Dev Box definition configured for a project.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param devBoxDefinitionName The name of the Dev Box definition.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a Dev Box definition configured for a project.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DevBoxDefinitionInner getByProject(String resourceGroupName, String projectName, String devBoxDefinitionName);
+
+ /**
+ * Gets a Dev Box definition configured for a project.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param devBoxDefinitionName The name of the Dev Box definition.
+ * @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 Dev Box definition configured for a project along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByProjectWithResponse(
+ String resourceGroupName, String projectName, String devBoxDefinitionName, Context context);
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/DevCenterClient.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/DevCenterClient.java
new file mode 100644
index 000000000000..f1eea14962e7
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/DevCenterClient.java
@@ -0,0 +1,166 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.fluent;
+
+import com.azure.core.http.HttpPipeline;
+import java.time.Duration;
+
+/** The interface for DevCenterClient class. */
+public interface DevCenterClient {
+ /**
+ * Gets Unique identifier of the Azure subscription. This is a GUID-formatted string (e.g.
+ * 00000000-0000-0000-0000-000000000000).
+ *
+ * @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 DevCentersClient object to access its operations.
+ *
+ * @return the DevCentersClient object.
+ */
+ DevCentersClient getDevCenters();
+
+ /**
+ * Gets the ProjectsClient object to access its operations.
+ *
+ * @return the ProjectsClient object.
+ */
+ ProjectsClient getProjects();
+
+ /**
+ * Gets the AttachedNetworksClient object to access its operations.
+ *
+ * @return the AttachedNetworksClient object.
+ */
+ AttachedNetworksClient getAttachedNetworks();
+
+ /**
+ * Gets the GalleriesClient object to access its operations.
+ *
+ * @return the GalleriesClient object.
+ */
+ GalleriesClient getGalleries();
+
+ /**
+ * Gets the ImagesClient object to access its operations.
+ *
+ * @return the ImagesClient object.
+ */
+ ImagesClient getImages();
+
+ /**
+ * Gets the ImageVersionsClient object to access its operations.
+ *
+ * @return the ImageVersionsClient object.
+ */
+ ImageVersionsClient getImageVersions();
+
+ /**
+ * Gets the CatalogsClient object to access its operations.
+ *
+ * @return the CatalogsClient object.
+ */
+ CatalogsClient getCatalogs();
+
+ /**
+ * Gets the EnvironmentTypesClient object to access its operations.
+ *
+ * @return the EnvironmentTypesClient object.
+ */
+ EnvironmentTypesClient getEnvironmentTypes();
+
+ /**
+ * Gets the ProjectEnvironmentTypesClient object to access its operations.
+ *
+ * @return the ProjectEnvironmentTypesClient object.
+ */
+ ProjectEnvironmentTypesClient getProjectEnvironmentTypes();
+
+ /**
+ * Gets the DevBoxDefinitionsClient object to access its operations.
+ *
+ * @return the DevBoxDefinitionsClient object.
+ */
+ DevBoxDefinitionsClient getDevBoxDefinitions();
+
+ /**
+ * Gets the OperationsClient object to access its operations.
+ *
+ * @return the OperationsClient object.
+ */
+ OperationsClient getOperations();
+
+ /**
+ * Gets the OperationStatusesClient object to access its operations.
+ *
+ * @return the OperationStatusesClient object.
+ */
+ OperationStatusesClient getOperationStatuses();
+
+ /**
+ * Gets the UsagesClient object to access its operations.
+ *
+ * @return the UsagesClient object.
+ */
+ UsagesClient getUsages();
+
+ /**
+ * Gets the SkusClient object to access its operations.
+ *
+ * @return the SkusClient object.
+ */
+ SkusClient getSkus();
+
+ /**
+ * Gets the PoolsClient object to access its operations.
+ *
+ * @return the PoolsClient object.
+ */
+ PoolsClient getPools();
+
+ /**
+ * Gets the SchedulesClient object to access its operations.
+ *
+ * @return the SchedulesClient object.
+ */
+ SchedulesClient getSchedules();
+
+ /**
+ * Gets the NetworkConnectionsClient object to access its operations.
+ *
+ * @return the NetworkConnectionsClient object.
+ */
+ NetworkConnectionsClient getNetworkConnections();
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/DevCentersClient.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/DevCentersClient.java
new file mode 100644
index 000000000000..da1f3af1a774
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/DevCentersClient.java
@@ -0,0 +1,267 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.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.devcenter.fluent.models.DevCenterInner;
+import com.azure.resourcemanager.devcenter.models.DevCenterUpdate;
+
+/** An instance of this class provides access to all the operations defined in DevCentersClient. */
+public interface DevCentersClient {
+ /**
+ * Lists all devcenters 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 result of the list devcenters operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Lists all devcenters in a subscription.
+ *
+ * @param top The maximum number of resources to return from the operation. Example: '$top=10'.
+ * @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 result of the list devcenters operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Integer top, Context context);
+
+ /**
+ * Lists all devcenters in a resource group.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the list devcenters operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * Lists all devcenters in a resource group.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param top The maximum number of resources to return from the operation. Example: '$top=10'.
+ * @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 result of the list devcenters operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Integer top, Context context);
+
+ /**
+ * Gets a devcenter.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a devcenter.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DevCenterInner getByResourceGroup(String resourceGroupName, String devCenterName);
+
+ /**
+ * Gets a devcenter.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @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 devcenter along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(
+ String resourceGroupName, String devCenterName, Context context);
+
+ /**
+ * Creates or updates a devcenter resource.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param body Represents a devcenter.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 represents a devcenter resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, DevCenterInner> beginCreateOrUpdate(
+ String resourceGroupName, String devCenterName, DevCenterInner body);
+
+ /**
+ * Creates or updates a devcenter resource.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param body Represents a devcenter.
+ * @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 represents a devcenter resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, DevCenterInner> beginCreateOrUpdate(
+ String resourceGroupName, String devCenterName, DevCenterInner body, Context context);
+
+ /**
+ * Creates or updates a devcenter resource.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param body Represents a devcenter.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return represents a devcenter resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DevCenterInner createOrUpdate(String resourceGroupName, String devCenterName, DevCenterInner body);
+
+ /**
+ * Creates or updates a devcenter resource.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param body Represents a devcenter.
+ * @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 represents a devcenter resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DevCenterInner createOrUpdate(String resourceGroupName, String devCenterName, DevCenterInner body, Context context);
+
+ /**
+ * Partially updates a devcenter.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param body Updatable devcenter properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 represents a devcenter resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, DevCenterInner> beginUpdate(
+ String resourceGroupName, String devCenterName, DevCenterUpdate body);
+
+ /**
+ * Partially updates a devcenter.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param body Updatable devcenter properties.
+ * @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 represents a devcenter resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, DevCenterInner> beginUpdate(
+ String resourceGroupName, String devCenterName, DevCenterUpdate body, Context context);
+
+ /**
+ * Partially updates a devcenter.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param body Updatable devcenter properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return represents a devcenter resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DevCenterInner update(String resourceGroupName, String devCenterName, DevCenterUpdate body);
+
+ /**
+ * Partially updates a devcenter.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param body Updatable devcenter properties.
+ * @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 represents a devcenter resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DevCenterInner update(String resourceGroupName, String devCenterName, DevCenterUpdate body, Context context);
+
+ /**
+ * Deletes a devcenter.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 devCenterName);
+
+ /**
+ * Deletes a devcenter.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @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 devCenterName, Context context);
+
+ /**
+ * Deletes a devcenter.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 devCenterName);
+
+ /**
+ * Deletes a devcenter.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @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 devCenterName, Context context);
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/EnvironmentTypesClient.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/EnvironmentTypesClient.java
new file mode 100644
index 000000000000..874ad99e4368
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/EnvironmentTypesClient.java
@@ -0,0 +1,178 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.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.devcenter.fluent.models.EnvironmentTypeInner;
+import com.azure.resourcemanager.devcenter.models.EnvironmentTypeUpdate;
+
+/** An instance of this class provides access to all the operations defined in EnvironmentTypesClient. */
+public interface EnvironmentTypesClient {
+ /**
+ * Lists environment types for the devcenter.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the environment type list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByDevCenter(String resourceGroupName, String devCenterName);
+
+ /**
+ * Lists environment types for the devcenter.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param top The maximum number of resources to return from the operation. Example: '$top=10'.
+ * @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 result of the environment type list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByDevCenter(
+ String resourceGroupName, String devCenterName, Integer top, Context context);
+
+ /**
+ * Gets an environment type.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param environmentTypeName The name of the environment 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 an environment type.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ EnvironmentTypeInner get(String resourceGroupName, String devCenterName, String environmentTypeName);
+
+ /**
+ * Gets an environment type.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param environmentTypeName The name of the environment 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 an environment type along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String devCenterName, String environmentTypeName, Context context);
+
+ /**
+ * Creates or updates an environment type.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param environmentTypeName The name of the environment type.
+ * @param body Represents an Environment 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 represents an environment type.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ EnvironmentTypeInner createOrUpdate(
+ String resourceGroupName, String devCenterName, String environmentTypeName, EnvironmentTypeInner body);
+
+ /**
+ * Creates or updates an environment type.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param environmentTypeName The name of the environment type.
+ * @param body Represents an Environment 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 represents an environment type along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createOrUpdateWithResponse(
+ String resourceGroupName,
+ String devCenterName,
+ String environmentTypeName,
+ EnvironmentTypeInner body,
+ Context context);
+
+ /**
+ * Partially updates an environment type.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param environmentTypeName The name of the environment type.
+ * @param body Updatable environment type properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return represents an environment type.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ EnvironmentTypeInner update(
+ String resourceGroupName, String devCenterName, String environmentTypeName, EnvironmentTypeUpdate body);
+
+ /**
+ * Partially updates an environment type.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param environmentTypeName The name of the environment type.
+ * @param body Updatable environment type properties.
+ * @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 represents an environment type along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response updateWithResponse(
+ String resourceGroupName,
+ String devCenterName,
+ String environmentTypeName,
+ EnvironmentTypeUpdate body,
+ Context context);
+
+ /**
+ * Deletes an environment type.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param environmentTypeName The name of the environment 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.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String devCenterName, String environmentTypeName);
+
+ /**
+ * Deletes an environment type.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param environmentTypeName The name of the environment 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 the {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response deleteWithResponse(
+ String resourceGroupName, String devCenterName, String environmentTypeName, Context context);
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/GalleriesClient.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/GalleriesClient.java
new file mode 100644
index 000000000000..874548c94300
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/GalleriesClient.java
@@ -0,0 +1,198 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.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.devcenter.fluent.models.GalleryInner;
+
+/** An instance of this class provides access to all the operations defined in GalleriesClient. */
+public interface GalleriesClient {
+ /**
+ * Lists galleries for a devcenter.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return results of the gallery list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByDevCenter(String resourceGroupName, String devCenterName);
+
+ /**
+ * Lists galleries for a devcenter.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param top The maximum number of resources to return from the operation. Example: '$top=10'.
+ * @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 results of the gallery list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByDevCenter(
+ String resourceGroupName, String devCenterName, Integer top, Context context);
+
+ /**
+ * Gets a gallery.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param galleryName The name of the gallery.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a gallery.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ GalleryInner get(String resourceGroupName, String devCenterName, String galleryName);
+
+ /**
+ * Gets a gallery.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param galleryName The name of the gallery.
+ * @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 gallery along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String devCenterName, String galleryName, Context context);
+
+ /**
+ * Creates or updates a gallery.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param galleryName The name of the gallery.
+ * @param body Represents a gallery.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 represents a gallery.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, GalleryInner> beginCreateOrUpdate(
+ String resourceGroupName, String devCenterName, String galleryName, GalleryInner body);
+
+ /**
+ * Creates or updates a gallery.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param galleryName The name of the gallery.
+ * @param body Represents a gallery.
+ * @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 represents a gallery.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, GalleryInner> beginCreateOrUpdate(
+ String resourceGroupName, String devCenterName, String galleryName, GalleryInner body, Context context);
+
+ /**
+ * Creates or updates a gallery.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param galleryName The name of the gallery.
+ * @param body Represents a gallery.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return represents a gallery.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ GalleryInner createOrUpdate(String resourceGroupName, String devCenterName, String galleryName, GalleryInner body);
+
+ /**
+ * Creates or updates a gallery.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param galleryName The name of the gallery.
+ * @param body Represents a gallery.
+ * @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 represents a gallery.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ GalleryInner createOrUpdate(
+ String resourceGroupName, String devCenterName, String galleryName, GalleryInner body, Context context);
+
+ /**
+ * Deletes a gallery resource.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param galleryName The name of the gallery.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 devCenterName, String galleryName);
+
+ /**
+ * Deletes a gallery resource.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param galleryName The name of the gallery.
+ * @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 devCenterName, String galleryName, Context context);
+
+ /**
+ * Deletes a gallery resource.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param galleryName The name of the gallery.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 devCenterName, String galleryName);
+
+ /**
+ * Deletes a gallery resource.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param galleryName The name of the gallery.
+ * @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 devCenterName, String galleryName, Context context);
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/ImageVersionsClient.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/ImageVersionsClient.java
new file mode 100644
index 000000000000..119b7dc03e0d
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/ImageVersionsClient.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.devcenter.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.devcenter.fluent.models.ImageVersionInner;
+
+/** An instance of this class provides access to all the operations defined in ImageVersionsClient. */
+public interface ImageVersionsClient {
+ /**
+ * Lists versions for an image.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param galleryName The name of the gallery.
+ * @param imageName The name of the image.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return results of the image version list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByImage(
+ String resourceGroupName, String devCenterName, String galleryName, String imageName);
+
+ /**
+ * Lists versions for an image.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param galleryName The name of the gallery.
+ * @param imageName The name of the image.
+ * @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 results of the image version list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByImage(
+ String resourceGroupName, String devCenterName, String galleryName, String imageName, Context context);
+
+ /**
+ * Gets an image version.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param galleryName The name of the gallery.
+ * @param imageName The name of the image.
+ * @param versionName The version of the image.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 image version.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ImageVersionInner get(
+ String resourceGroupName, String devCenterName, String galleryName, String imageName, String versionName);
+
+ /**
+ * Gets an image version.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param galleryName The name of the gallery.
+ * @param imageName The name of the image.
+ * @param versionName The version of the image.
+ * @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 image version along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName,
+ String devCenterName,
+ String galleryName,
+ String imageName,
+ String versionName,
+ Context context);
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/ImagesClient.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/ImagesClient.java
new file mode 100644
index 000000000000..c464c13d77d7
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/ImagesClient.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.devcenter.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.devcenter.fluent.models.ImageInner;
+
+/** An instance of this class provides access to all the operations defined in ImagesClient. */
+public interface ImagesClient {
+ /**
+ * Lists images for a devcenter.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return results of the image list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByDevCenter(String resourceGroupName, String devCenterName);
+
+ /**
+ * Lists images for a devcenter.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param top The maximum number of resources to return from the operation. Example: '$top=10'.
+ * @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 results of the image list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByDevCenter(
+ String resourceGroupName, String devCenterName, Integer top, Context context);
+
+ /**
+ * Lists images for a gallery.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param galleryName The name of the gallery.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return results of the image list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByGallery(String resourceGroupName, String devCenterName, String galleryName);
+
+ /**
+ * Lists images for a gallery.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param galleryName The name of the gallery.
+ * @param top The maximum number of resources to return from the operation. Example: '$top=10'.
+ * @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 results of the image list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByGallery(
+ String resourceGroupName, String devCenterName, String galleryName, Integer top, Context context);
+
+ /**
+ * Gets a gallery image.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param galleryName The name of the gallery.
+ * @param imageName The name of the image.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a gallery image.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ImageInner get(String resourceGroupName, String devCenterName, String galleryName, String imageName);
+
+ /**
+ * Gets a gallery image.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param galleryName The name of the gallery.
+ * @param imageName The name of the image.
+ * @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 gallery image along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String devCenterName, String galleryName, String imageName, Context context);
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/NetworkConnectionsClient.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/NetworkConnectionsClient.java
new file mode 100644
index 000000000000..452d35316f16
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/NetworkConnectionsClient.java
@@ -0,0 +1,358 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.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.devcenter.fluent.models.HealthCheckStatusDetailsInner;
+import com.azure.resourcemanager.devcenter.fluent.models.NetworkConnectionInner;
+import com.azure.resourcemanager.devcenter.models.NetworkConnectionUpdate;
+
+/** An instance of this class provides access to all the operations defined in NetworkConnectionsClient. */
+public interface NetworkConnectionsClient {
+ /**
+ * Lists network connections 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 result of the network connection list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Lists network connections in a subscription.
+ *
+ * @param top The maximum number of resources to return from the operation. Example: '$top=10'.
+ * @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 result of the network connection list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Integer top, Context context);
+
+ /**
+ * Lists network connections in a resource group.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the network connection list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * Lists network connections in a resource group.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param top The maximum number of resources to return from the operation. Example: '$top=10'.
+ * @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 result of the network connection list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Integer top, Context context);
+
+ /**
+ * Gets a network connection resource.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param networkConnectionName Name of the Network Connection that can be applied to a Pool.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a network connection resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ NetworkConnectionInner getByResourceGroup(String resourceGroupName, String networkConnectionName);
+
+ /**
+ * Gets a network connection resource.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param networkConnectionName Name of the Network Connection that can be applied to a Pool.
+ * @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 network connection resource along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(
+ String resourceGroupName, String networkConnectionName, Context context);
+
+ /**
+ * Creates or updates a Network Connections resource.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param networkConnectionName Name of the Network Connection that can be applied to a Pool.
+ * @param body Represents network connection.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 network related settings.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, NetworkConnectionInner> beginCreateOrUpdate(
+ String resourceGroupName, String networkConnectionName, NetworkConnectionInner body);
+
+ /**
+ * Creates or updates a Network Connections resource.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param networkConnectionName Name of the Network Connection that can be applied to a Pool.
+ * @param body Represents network connection.
+ * @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 network related settings.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, NetworkConnectionInner> beginCreateOrUpdate(
+ String resourceGroupName, String networkConnectionName, NetworkConnectionInner body, Context context);
+
+ /**
+ * Creates or updates a Network Connections resource.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param networkConnectionName Name of the Network Connection that can be applied to a Pool.
+ * @param body Represents network connection.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return network related settings.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ NetworkConnectionInner createOrUpdate(
+ String resourceGroupName, String networkConnectionName, NetworkConnectionInner body);
+
+ /**
+ * Creates or updates a Network Connections resource.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param networkConnectionName Name of the Network Connection that can be applied to a Pool.
+ * @param body Represents network connection.
+ * @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 network related settings.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ NetworkConnectionInner createOrUpdate(
+ String resourceGroupName, String networkConnectionName, NetworkConnectionInner body, Context context);
+
+ /**
+ * Partially updates a Network Connection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param networkConnectionName Name of the Network Connection that can be applied to a Pool.
+ * @param body Represents network connection.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 network related settings.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, NetworkConnectionInner> beginUpdate(
+ String resourceGroupName, String networkConnectionName, NetworkConnectionUpdate body);
+
+ /**
+ * Partially updates a Network Connection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param networkConnectionName Name of the Network Connection that can be applied to a Pool.
+ * @param body Represents network connection.
+ * @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 network related settings.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, NetworkConnectionInner> beginUpdate(
+ String resourceGroupName, String networkConnectionName, NetworkConnectionUpdate body, Context context);
+
+ /**
+ * Partially updates a Network Connection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param networkConnectionName Name of the Network Connection that can be applied to a Pool.
+ * @param body Represents network connection.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return network related settings.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ NetworkConnectionInner update(String resourceGroupName, String networkConnectionName, NetworkConnectionUpdate body);
+
+ /**
+ * Partially updates a Network Connection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param networkConnectionName Name of the Network Connection that can be applied to a Pool.
+ * @param body Represents network connection.
+ * @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 network related settings.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ NetworkConnectionInner update(
+ String resourceGroupName, String networkConnectionName, NetworkConnectionUpdate body, Context context);
+
+ /**
+ * Deletes a Network Connections resource.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param networkConnectionName Name of the Network Connection that can be applied to a Pool.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 networkConnectionName);
+
+ /**
+ * Deletes a Network Connections resource.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param networkConnectionName Name of the Network Connection that can be applied to a Pool.
+ * @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 networkConnectionName, Context context);
+
+ /**
+ * Deletes a Network Connections resource.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param networkConnectionName Name of the Network Connection that can be applied to a Pool.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 networkConnectionName);
+
+ /**
+ * Deletes a Network Connections resource.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param networkConnectionName Name of the Network Connection that can be applied to a Pool.
+ * @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 networkConnectionName, Context context);
+
+ /**
+ * Lists health check status details.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param networkConnectionName Name of the Network Connection that can be applied to a Pool.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the network health check list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listHealthDetails(
+ String resourceGroupName, String networkConnectionName);
+
+ /**
+ * Lists health check status details.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param networkConnectionName Name of the Network Connection that can be applied to a Pool.
+ * @param top The maximum number of resources to return from the operation. Example: '$top=10'.
+ * @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 result of the network health check list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listHealthDetails(
+ String resourceGroupName, String networkConnectionName, Integer top, Context context);
+
+ /**
+ * Gets health check status details.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param networkConnectionName Name of the Network Connection that can be applied to a Pool.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return health check status details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ HealthCheckStatusDetailsInner getHealthDetails(String resourceGroupName, String networkConnectionName);
+
+ /**
+ * Gets health check status details.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param networkConnectionName Name of the Network Connection that can be applied to a Pool.
+ * @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 health check status details along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getHealthDetailsWithResponse(
+ String resourceGroupName, String networkConnectionName, Context context);
+
+ /**
+ * Triggers a new health check run. The execution and health check result can be tracked via the network Connection
+ * health check details.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param networkConnectionName Name of the Network Connection that can be applied to a Pool.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 runHealthChecks(String resourceGroupName, String networkConnectionName);
+
+ /**
+ * Triggers a new health check run. The execution and health check result can be tracked via the network Connection
+ * health check details.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param networkConnectionName Name of the Network Connection that can be applied to a Pool.
+ * @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 runHealthChecksWithResponse(String resourceGroupName, String networkConnectionName, Context context);
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/OperationStatusesClient.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/OperationStatusesClient.java
new file mode 100644
index 000000000000..6a40527de3b1
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/OperationStatusesClient.java
@@ -0,0 +1,41 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.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.devcenter.fluent.models.OperationStatusInner;
+
+/** An instance of this class provides access to all the operations defined in OperationStatusesClient. */
+public interface OperationStatusesClient {
+ /**
+ * Gets the current status of an async operation.
+ *
+ * @param location The Azure region.
+ * @param operationId The ID of an ongoing async 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 current status of an async operation.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OperationStatusInner get(String location, String operationId);
+
+ /**
+ * Gets the current status of an async operation.
+ *
+ * @param location The Azure region.
+ * @param operationId The ID of an ongoing async 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 current status of an async operation along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String location, String operationId, Context context);
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/OperationsClient.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/OperationsClient.java
new file mode 100644
index 000000000000..45674cb4b905
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/OperationsClient.java
@@ -0,0 +1,38 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.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.devcenter.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 resource provider operations.
+ *
+ * @throws com.azure.core.management.exception.ManagementException 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 REST API operations supported by an Azure Resource Provider as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Lists all of the available resource provider operations.
+ *
+ * @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 REST API operations supported by an Azure Resource Provider as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/PoolsClient.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/PoolsClient.java
new file mode 100644
index 000000000000..cc83d16a0b6b
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/PoolsClient.java
@@ -0,0 +1,261 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.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.devcenter.fluent.models.PoolInner;
+import com.azure.resourcemanager.devcenter.models.PoolUpdate;
+
+/** An instance of this class provides access to all the operations defined in PoolsClient. */
+public interface PoolsClient {
+ /**
+ * Lists pools for a project.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return results of the machine pool list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByProject(String resourceGroupName, String projectName);
+
+ /**
+ * Lists pools for a project.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param top The maximum number of resources to return from the operation. Example: '$top=10'.
+ * @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 results of the machine pool list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByProject(String resourceGroupName, String projectName, Integer top, Context context);
+
+ /**
+ * Gets a machine pool.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param poolName Name of the pool.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a machine pool.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PoolInner get(String resourceGroupName, String projectName, String poolName);
+
+ /**
+ * Gets a machine pool.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param poolName Name of the pool.
+ * @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 machine pool along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String resourceGroupName, String projectName, String poolName, Context context);
+
+ /**
+ * Creates or updates a machine pool.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param poolName Name of the pool.
+ * @param body Represents a machine pool.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 a pool of Virtual Machines.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, PoolInner> beginCreateOrUpdate(
+ String resourceGroupName, String projectName, String poolName, PoolInner body);
+
+ /**
+ * Creates or updates a machine pool.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param poolName Name of the pool.
+ * @param body Represents a machine pool.
+ * @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 a pool of Virtual Machines.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, PoolInner> beginCreateOrUpdate(
+ String resourceGroupName, String projectName, String poolName, PoolInner body, Context context);
+
+ /**
+ * Creates or updates a machine pool.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param poolName Name of the pool.
+ * @param body Represents a machine pool.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a pool of Virtual Machines.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PoolInner createOrUpdate(String resourceGroupName, String projectName, String poolName, PoolInner body);
+
+ /**
+ * Creates or updates a machine pool.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param poolName Name of the pool.
+ * @param body Represents a machine pool.
+ * @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 pool of Virtual Machines.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PoolInner createOrUpdate(
+ String resourceGroupName, String projectName, String poolName, PoolInner body, Context context);
+
+ /**
+ * Partially updates a machine pool.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param poolName Name of the pool.
+ * @param body Represents a machine pool.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 a pool of Virtual Machines.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, PoolInner> beginUpdate(
+ String resourceGroupName, String projectName, String poolName, PoolUpdate body);
+
+ /**
+ * Partially updates a machine pool.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param poolName Name of the pool.
+ * @param body Represents a machine pool.
+ * @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 a pool of Virtual Machines.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, PoolInner> beginUpdate(
+ String resourceGroupName, String projectName, String poolName, PoolUpdate body, Context context);
+
+ /**
+ * Partially updates a machine pool.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param poolName Name of the pool.
+ * @param body Represents a machine pool.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a pool of Virtual Machines.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PoolInner update(String resourceGroupName, String projectName, String poolName, PoolUpdate body);
+
+ /**
+ * Partially updates a machine pool.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param poolName Name of the pool.
+ * @param body Represents a machine pool.
+ * @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 pool of Virtual Machines.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PoolInner update(String resourceGroupName, String projectName, String poolName, PoolUpdate body, Context context);
+
+ /**
+ * Deletes a machine pool.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param poolName Name of the pool.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 projectName, String poolName);
+
+ /**
+ * Deletes a machine pool.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param poolName Name of the pool.
+ * @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 projectName, String poolName, Context context);
+
+ /**
+ * Deletes a machine pool.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param poolName Name of the pool.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 projectName, String poolName);
+
+ /**
+ * Deletes a machine pool.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param poolName Name of the pool.
+ * @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 projectName, String poolName, Context context);
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/ProjectEnvironmentTypesClient.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/ProjectEnvironmentTypesClient.java
new file mode 100644
index 000000000000..74caa4d3eea0
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/ProjectEnvironmentTypesClient.java
@@ -0,0 +1,178 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.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.devcenter.fluent.models.ProjectEnvironmentTypeInner;
+import com.azure.resourcemanager.devcenter.models.ProjectEnvironmentTypeUpdate;
+
+/** An instance of this class provides access to all the operations defined in ProjectEnvironmentTypesClient. */
+public interface ProjectEnvironmentTypesClient {
+ /**
+ * Lists environment types for a project.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the project environment type list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String projectName);
+
+ /**
+ * Lists environment types for a project.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param top The maximum number of resources to return from the operation. Example: '$top=10'.
+ * @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 result of the project environment type list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String resourceGroupName, String projectName, Integer top, Context context);
+
+ /**
+ * Gets a project environment type.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param environmentTypeName The name of the environment 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 project environment type.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProjectEnvironmentTypeInner get(String resourceGroupName, String projectName, String environmentTypeName);
+
+ /**
+ * Gets a project environment type.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param environmentTypeName The name of the environment 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 project environment type along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String projectName, String environmentTypeName, Context context);
+
+ /**
+ * Creates or updates a project environment type.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param environmentTypeName The name of the environment type.
+ * @param body Represents a Project Environment 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 represents an environment type.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProjectEnvironmentTypeInner createOrUpdate(
+ String resourceGroupName, String projectName, String environmentTypeName, ProjectEnvironmentTypeInner body);
+
+ /**
+ * Creates or updates a project environment type.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param environmentTypeName The name of the environment type.
+ * @param body Represents a Project Environment 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 represents an environment type along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createOrUpdateWithResponse(
+ String resourceGroupName,
+ String projectName,
+ String environmentTypeName,
+ ProjectEnvironmentTypeInner body,
+ Context context);
+
+ /**
+ * Partially updates a project environment type.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param environmentTypeName The name of the environment type.
+ * @param body Updatable project environment type properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return represents an environment type.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProjectEnvironmentTypeInner update(
+ String resourceGroupName, String projectName, String environmentTypeName, ProjectEnvironmentTypeUpdate body);
+
+ /**
+ * Partially updates a project environment type.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param environmentTypeName The name of the environment type.
+ * @param body Updatable project environment type properties.
+ * @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 represents an environment type along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response updateWithResponse(
+ String resourceGroupName,
+ String projectName,
+ String environmentTypeName,
+ ProjectEnvironmentTypeUpdate body,
+ Context context);
+
+ /**
+ * Deletes a project environment type.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param environmentTypeName The name of the environment 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.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String projectName, String environmentTypeName);
+
+ /**
+ * Deletes a project environment type.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param environmentTypeName The name of the environment 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 the {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response deleteWithResponse(
+ String resourceGroupName, String projectName, String environmentTypeName, Context context);
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/ProjectsClient.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/ProjectsClient.java
new file mode 100644
index 000000000000..c4decaf3fdbd
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/ProjectsClient.java
@@ -0,0 +1,267 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.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.devcenter.fluent.models.ProjectInner;
+import com.azure.resourcemanager.devcenter.models.ProjectUpdate;
+
+/** An instance of this class provides access to all the operations defined in ProjectsClient. */
+public interface ProjectsClient {
+ /**
+ * Lists all projects in the 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 results of the project list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Lists all projects in the subscription.
+ *
+ * @param top The maximum number of resources to return from the operation. Example: '$top=10'.
+ * @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 results of the project list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Integer top, Context context);
+
+ /**
+ * Lists all projects in the resource group.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return results of the project list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * Lists all projects in the resource group.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param top The maximum number of resources to return from the operation. Example: '$top=10'.
+ * @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 results of the project list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Integer top, Context context);
+
+ /**
+ * Gets a specific project.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a specific project.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProjectInner getByResourceGroup(String resourceGroupName, String projectName);
+
+ /**
+ * Gets a specific project.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @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 specific project along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(
+ String resourceGroupName, String projectName, Context context);
+
+ /**
+ * Creates or updates a project.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param body Represents a project.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 represents a project resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, ProjectInner> beginCreateOrUpdate(
+ String resourceGroupName, String projectName, ProjectInner body);
+
+ /**
+ * Creates or updates a project.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param body Represents a project.
+ * @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 represents a project resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, ProjectInner> beginCreateOrUpdate(
+ String resourceGroupName, String projectName, ProjectInner body, Context context);
+
+ /**
+ * Creates or updates a project.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param body Represents a project.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return represents a project resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProjectInner createOrUpdate(String resourceGroupName, String projectName, ProjectInner body);
+
+ /**
+ * Creates or updates a project.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param body Represents a project.
+ * @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 represents a project resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProjectInner createOrUpdate(String resourceGroupName, String projectName, ProjectInner body, Context context);
+
+ /**
+ * Partially updates a project.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param body Updatable project properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 represents a project resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, ProjectInner> beginUpdate(
+ String resourceGroupName, String projectName, ProjectUpdate body);
+
+ /**
+ * Partially updates a project.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param body Updatable project properties.
+ * @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 represents a project resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, ProjectInner> beginUpdate(
+ String resourceGroupName, String projectName, ProjectUpdate body, Context context);
+
+ /**
+ * Partially updates a project.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param body Updatable project properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return represents a project resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProjectInner update(String resourceGroupName, String projectName, ProjectUpdate body);
+
+ /**
+ * Partially updates a project.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param body Updatable project properties.
+ * @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 represents a project resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProjectInner update(String resourceGroupName, String projectName, ProjectUpdate body, Context context);
+
+ /**
+ * Deletes a project resource.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 projectName);
+
+ /**
+ * Deletes a project resource.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @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 projectName, Context context);
+
+ /**
+ * Deletes a project resource.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 projectName);
+
+ /**
+ * Deletes a project resource.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @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 projectName, Context context);
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/SchedulesClient.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/SchedulesClient.java
new file mode 100644
index 000000000000..6ce311273351
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/SchedulesClient.java
@@ -0,0 +1,401 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.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.devcenter.fluent.models.ScheduleInner;
+import com.azure.resourcemanager.devcenter.models.ScheduleUpdate;
+
+/** An instance of this class provides access to all the operations defined in SchedulesClient. */
+public interface SchedulesClient {
+ /**
+ * Lists schedules for a pool.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param poolName Name of the pool.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the schedule list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByPool(String resourceGroupName, String projectName, String poolName);
+
+ /**
+ * Lists schedules for a pool.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param poolName Name of the pool.
+ * @param top The maximum number of resources to return from the operation. Example: '$top=10'.
+ * @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 result of the schedule list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByPool(
+ String resourceGroupName, String projectName, String poolName, Integer top, Context context);
+
+ /**
+ * Gets a schedule resource.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param poolName Name of the pool.
+ * @param scheduleName The name of the schedule that uniquely identifies it.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a schedule resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ScheduleInner get(String resourceGroupName, String projectName, String poolName, String scheduleName);
+
+ /**
+ * Gets a schedule resource.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param poolName Name of the pool.
+ * @param scheduleName The name of the schedule that uniquely identifies it.
+ * @param top The maximum number of resources to return from the operation. Example: '$top=10'.
+ * @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 schedule resource along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName,
+ String projectName,
+ String poolName,
+ String scheduleName,
+ Integer top,
+ Context context);
+
+ /**
+ * Creates or updates a Schedule.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param poolName Name of the pool.
+ * @param scheduleName The name of the schedule that uniquely identifies it.
+ * @param body Represents a scheduled task.
+ * @param top The maximum number of resources to return from the operation. Example: '$top=10'.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 represents a Schedule to execute a task.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, ScheduleInner> beginCreateOrUpdate(
+ String resourceGroupName,
+ String projectName,
+ String poolName,
+ String scheduleName,
+ ScheduleInner body,
+ Integer top);
+
+ /**
+ * Creates or updates a Schedule.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param poolName Name of the pool.
+ * @param scheduleName The name of the schedule that uniquely identifies it.
+ * @param body Represents a scheduled task.
+ * @param top The maximum number of resources to return from the operation. Example: '$top=10'.
+ * @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 represents a Schedule to execute a task.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, ScheduleInner> beginCreateOrUpdate(
+ String resourceGroupName,
+ String projectName,
+ String poolName,
+ String scheduleName,
+ ScheduleInner body,
+ Integer top,
+ Context context);
+
+ /**
+ * Creates or updates a Schedule.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param poolName Name of the pool.
+ * @param scheduleName The name of the schedule that uniquely identifies it.
+ * @param body Represents a scheduled task.
+ * @param top The maximum number of resources to return from the operation. Example: '$top=10'.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return represents a Schedule to execute a task.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ScheduleInner createOrUpdate(
+ String resourceGroupName,
+ String projectName,
+ String poolName,
+ String scheduleName,
+ ScheduleInner body,
+ Integer top);
+
+ /**
+ * Creates or updates a Schedule.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param poolName Name of the pool.
+ * @param scheduleName The name of the schedule that uniquely identifies it.
+ * @param body Represents a scheduled task.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return represents a Schedule to execute a task.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ScheduleInner createOrUpdate(
+ String resourceGroupName, String projectName, String poolName, String scheduleName, ScheduleInner body);
+
+ /**
+ * Creates or updates a Schedule.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param poolName Name of the pool.
+ * @param scheduleName The name of the schedule that uniquely identifies it.
+ * @param body Represents a scheduled task.
+ * @param top The maximum number of resources to return from the operation. Example: '$top=10'.
+ * @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 represents a Schedule to execute a task.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ScheduleInner createOrUpdate(
+ String resourceGroupName,
+ String projectName,
+ String poolName,
+ String scheduleName,
+ ScheduleInner body,
+ Integer top,
+ Context context);
+
+ /**
+ * Partially updates a Scheduled.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param poolName Name of the pool.
+ * @param scheduleName The name of the schedule that uniquely identifies it.
+ * @param body Represents a scheduled task.
+ * @param top The maximum number of resources to return from the operation. Example: '$top=10'.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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> beginUpdate(
+ String resourceGroupName,
+ String projectName,
+ String poolName,
+ String scheduleName,
+ ScheduleUpdate body,
+ Integer top);
+
+ /**
+ * Partially updates a Scheduled.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param poolName Name of the pool.
+ * @param scheduleName The name of the schedule that uniquely identifies it.
+ * @param body Represents a scheduled task.
+ * @param top The maximum number of resources to return from the operation. Example: '$top=10'.
+ * @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> beginUpdate(
+ String resourceGroupName,
+ String projectName,
+ String poolName,
+ String scheduleName,
+ ScheduleUpdate body,
+ Integer top,
+ Context context);
+
+ /**
+ * Partially updates a Scheduled.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param poolName Name of the pool.
+ * @param scheduleName The name of the schedule that uniquely identifies it.
+ * @param body Represents a scheduled task.
+ * @param top The maximum number of resources to return from the operation. Example: '$top=10'.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 update(
+ String resourceGroupName,
+ String projectName,
+ String poolName,
+ String scheduleName,
+ ScheduleUpdate body,
+ Integer top);
+
+ /**
+ * Partially updates a Scheduled.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param poolName Name of the pool.
+ * @param scheduleName The name of the schedule that uniquely identifies it.
+ * @param body Represents a scheduled task.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 update(
+ String resourceGroupName, String projectName, String poolName, String scheduleName, ScheduleUpdate body);
+
+ /**
+ * Partially updates a Scheduled.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param poolName Name of the pool.
+ * @param scheduleName The name of the schedule that uniquely identifies it.
+ * @param body Represents a scheduled task.
+ * @param top The maximum number of resources to return from the operation. Example: '$top=10'.
+ * @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 update(
+ String resourceGroupName,
+ String projectName,
+ String poolName,
+ String scheduleName,
+ ScheduleUpdate body,
+ Integer top,
+ Context context);
+
+ /**
+ * Deletes a Scheduled.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param poolName Name of the pool.
+ * @param scheduleName The name of the schedule that uniquely identifies it.
+ * @param top The maximum number of resources to return from the operation. Example: '$top=10'.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 projectName, String poolName, String scheduleName, Integer top);
+
+ /**
+ * Deletes a Scheduled.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param poolName Name of the pool.
+ * @param scheduleName The name of the schedule that uniquely identifies it.
+ * @param top The maximum number of resources to return from the operation. Example: '$top=10'.
+ * @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 projectName,
+ String poolName,
+ String scheduleName,
+ Integer top,
+ Context context);
+
+ /**
+ * Deletes a Scheduled.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param poolName Name of the pool.
+ * @param scheduleName The name of the schedule that uniquely identifies it.
+ * @param top The maximum number of resources to return from the operation. Example: '$top=10'.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 projectName, String poolName, String scheduleName, Integer top);
+
+ /**
+ * Deletes a Scheduled.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param poolName Name of the pool.
+ * @param scheduleName The name of the schedule that uniquely identifies it.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 projectName, String poolName, String scheduleName);
+
+ /**
+ * Deletes a Scheduled.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param poolName Name of the pool.
+ * @param scheduleName The name of the schedule that uniquely identifies it.
+ * @param top The maximum number of resources to return from the operation. Example: '$top=10'.
+ * @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 projectName,
+ String poolName,
+ String scheduleName,
+ Integer top,
+ Context context);
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/SkusClient.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/SkusClient.java
new file mode 100644
index 000000000000..816b14c2a5dc
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/SkusClient.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.devcenter.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.devcenter.fluent.models.DevCenterSkuInner;
+
+/** An instance of this class provides access to all the operations defined in SkusClient. */
+public interface SkusClient {
+ /**
+ * Lists the Microsoft.DevCenter SKUs available 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 results of the Microsoft.DevCenter SKU list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Lists the Microsoft.DevCenter SKUs available in a subscription.
+ *
+ * @param top The maximum number of resources to return from the operation. Example: '$top=10'.
+ * @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 results of the Microsoft.DevCenter SKU list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Integer top, Context context);
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/UsagesClient.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/UsagesClient.java
new file mode 100644
index 000000000000..69fb4f4ec0fd
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/UsagesClient.java
@@ -0,0 +1,39 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.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.devcenter.fluent.models.UsageInner;
+
+/** An instance of this class provides access to all the operations defined in UsagesClient. */
+public interface UsagesClient {
+ /**
+ * Lists the current usages and limits in this location for the provided subscription.
+ *
+ * @param location The Azure region.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of Core Usages as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByLocation(String location);
+
+ /**
+ * Lists the current usages and limits in this location for the provided subscription.
+ *
+ * @param location The Azure region.
+ * @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 list of Core Usages as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByLocation(String location, Context context);
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/AttachedNetworkConnectionInner.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/AttachedNetworkConnectionInner.java
new file mode 100644
index 000000000000..20bc6a499ec5
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/AttachedNetworkConnectionInner.java
@@ -0,0 +1,119 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.resourcemanager.devcenter.models.DomainJoinType;
+import com.azure.resourcemanager.devcenter.models.HealthCheckStatus;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Represents an attached NetworkConnection. */
+@Fluent
+public final class AttachedNetworkConnectionInner extends ProxyResource {
+ /*
+ * Attached NetworkConnection properties.
+ */
+ @JsonProperty(value = "properties")
+ private AttachedNetworkConnectionProperties innerProperties;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy
+ * information.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /**
+ * Get the innerProperties property: Attached NetworkConnection properties.
+ *
+ * @return the innerProperties value.
+ */
+ private AttachedNetworkConnectionProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the provisioningState property: The provisioning state of the resource.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Get the networkConnectionId property: The resource ID of the NetworkConnection you want to attach.
+ *
+ * @return the networkConnectionId value.
+ */
+ public String networkConnectionId() {
+ return this.innerProperties() == null ? null : this.innerProperties().networkConnectionId();
+ }
+
+ /**
+ * Set the networkConnectionId property: The resource ID of the NetworkConnection you want to attach.
+ *
+ * @param networkConnectionId the networkConnectionId value to set.
+ * @return the AttachedNetworkConnectionInner object itself.
+ */
+ public AttachedNetworkConnectionInner withNetworkConnectionId(String networkConnectionId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AttachedNetworkConnectionProperties();
+ }
+ this.innerProperties().withNetworkConnectionId(networkConnectionId);
+ return this;
+ }
+
+ /**
+ * Get the networkConnectionLocation property: The geo-location where the NetworkConnection resource specified in
+ * 'networkConnectionResourceId' property lives.
+ *
+ * @return the networkConnectionLocation value.
+ */
+ public String networkConnectionLocation() {
+ return this.innerProperties() == null ? null : this.innerProperties().networkConnectionLocation();
+ }
+
+ /**
+ * Get the healthCheckStatus property: Health check status values.
+ *
+ * @return the healthCheckStatus value.
+ */
+ public HealthCheckStatus healthCheckStatus() {
+ return this.innerProperties() == null ? null : this.innerProperties().healthCheckStatus();
+ }
+
+ /**
+ * Get the domainJoinType property: AAD Join type of the network. This is populated based on the referenced Network
+ * Connection.
+ *
+ * @return the domainJoinType value.
+ */
+ public DomainJoinType domainJoinType() {
+ return this.innerProperties() == null ? null : this.innerProperties().domainJoinType();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/AttachedNetworkConnectionProperties.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/AttachedNetworkConnectionProperties.java
new file mode 100644
index 000000000000..791d284121d4
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/AttachedNetworkConnectionProperties.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.devcenter.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.devcenter.models.DomainJoinType;
+import com.azure.resourcemanager.devcenter.models.HealthCheckStatus;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Properties of an attached NetworkConnection. */
+@Fluent
+public final class AttachedNetworkConnectionProperties {
+ /*
+ * The provisioning state of the resource.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /*
+ * The resource ID of the NetworkConnection you want to attach.
+ */
+ @JsonProperty(value = "networkConnectionId", required = true)
+ private String networkConnectionId;
+
+ /*
+ * The geo-location where the NetworkConnection resource specified in
+ * 'networkConnectionResourceId' property lives.
+ */
+ @JsonProperty(value = "networkConnectionLocation", access = JsonProperty.Access.WRITE_ONLY)
+ private String networkConnectionLocation;
+
+ /*
+ * Health check status values
+ */
+ @JsonProperty(value = "healthCheckStatus", access = JsonProperty.Access.WRITE_ONLY)
+ private HealthCheckStatus healthCheckStatus;
+
+ /*
+ * AAD Join type of the network. This is populated based on the referenced
+ * Network Connection.
+ */
+ @JsonProperty(value = "domainJoinType", access = JsonProperty.Access.WRITE_ONLY)
+ private DomainJoinType domainJoinType;
+
+ /**
+ * Get the provisioningState property: The provisioning state of the resource.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the networkConnectionId property: The resource ID of the NetworkConnection you want to attach.
+ *
+ * @return the networkConnectionId value.
+ */
+ public String networkConnectionId() {
+ return this.networkConnectionId;
+ }
+
+ /**
+ * Set the networkConnectionId property: The resource ID of the NetworkConnection you want to attach.
+ *
+ * @param networkConnectionId the networkConnectionId value to set.
+ * @return the AttachedNetworkConnectionProperties object itself.
+ */
+ public AttachedNetworkConnectionProperties withNetworkConnectionId(String networkConnectionId) {
+ this.networkConnectionId = networkConnectionId;
+ return this;
+ }
+
+ /**
+ * Get the networkConnectionLocation property: The geo-location where the NetworkConnection resource specified in
+ * 'networkConnectionResourceId' property lives.
+ *
+ * @return the networkConnectionLocation value.
+ */
+ public String networkConnectionLocation() {
+ return this.networkConnectionLocation;
+ }
+
+ /**
+ * Get the healthCheckStatus property: Health check status values.
+ *
+ * @return the healthCheckStatus value.
+ */
+ public HealthCheckStatus healthCheckStatus() {
+ return this.healthCheckStatus;
+ }
+
+ /**
+ * Get the domainJoinType property: AAD Join type of the network. This is populated based on the referenced Network
+ * Connection.
+ *
+ * @return the domainJoinType value.
+ */
+ public DomainJoinType domainJoinType() {
+ return this.domainJoinType;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (networkConnectionId() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property networkConnectionId in model AttachedNetworkConnectionProperties"));
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(AttachedNetworkConnectionProperties.class);
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/CatalogInner.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/CatalogInner.java
new file mode 100644
index 000000000000..23345ae6ca97
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/CatalogInner.java
@@ -0,0 +1,122 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.resourcemanager.devcenter.models.GitCatalog;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** Represents a catalog. */
+@Fluent
+public final class CatalogInner extends ProxyResource {
+ /*
+ * Catalog properties.
+ */
+ @JsonProperty(value = "properties")
+ private CatalogProperties innerProperties;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy
+ * information.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /**
+ * Get the innerProperties property: Catalog properties.
+ *
+ * @return the innerProperties value.
+ */
+ private CatalogProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the provisioningState property: The provisioning state of the resource.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Get the lastSyncTime property: When the catalog was last synced.
+ *
+ * @return the lastSyncTime value.
+ */
+ public OffsetDateTime lastSyncTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().lastSyncTime();
+ }
+
+ /**
+ * Get the gitHub property: Properties for a GitHub catalog type.
+ *
+ * @return the gitHub value.
+ */
+ public GitCatalog gitHub() {
+ return this.innerProperties() == null ? null : this.innerProperties().gitHub();
+ }
+
+ /**
+ * Set the gitHub property: Properties for a GitHub catalog type.
+ *
+ * @param gitHub the gitHub value to set.
+ * @return the CatalogInner object itself.
+ */
+ public CatalogInner withGitHub(GitCatalog gitHub) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new CatalogProperties();
+ }
+ this.innerProperties().withGitHub(gitHub);
+ return this;
+ }
+
+ /**
+ * Get the adoGit property: Properties for an Azure DevOps catalog type.
+ *
+ * @return the adoGit value.
+ */
+ public GitCatalog adoGit() {
+ return this.innerProperties() == null ? null : this.innerProperties().adoGit();
+ }
+
+ /**
+ * Set the adoGit property: Properties for an Azure DevOps catalog type.
+ *
+ * @param adoGit the adoGit value to set.
+ * @return the CatalogInner object itself.
+ */
+ public CatalogInner withAdoGit(GitCatalog adoGit) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new CatalogProperties();
+ }
+ this.innerProperties().withAdoGit(adoGit);
+ 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/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/CatalogProperties.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/CatalogProperties.java
new file mode 100644
index 000000000000..f518818a0d1b
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/CatalogProperties.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.devcenter.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.devcenter.models.GitCatalog;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** Properties of a catalog. */
+@Fluent
+public final class CatalogProperties extends CatalogUpdateProperties {
+ /*
+ * The provisioning state of the resource.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /*
+ * When the catalog was last synced.
+ */
+ @JsonProperty(value = "lastSyncTime", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime lastSyncTime;
+
+ /**
+ * Get the provisioningState property: The provisioning state of the resource.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the lastSyncTime property: When the catalog was last synced.
+ *
+ * @return the lastSyncTime value.
+ */
+ public OffsetDateTime lastSyncTime() {
+ return this.lastSyncTime;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public CatalogProperties withGitHub(GitCatalog gitHub) {
+ super.withGitHub(gitHub);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public CatalogProperties withAdoGit(GitCatalog adoGit) {
+ super.withAdoGit(adoGit);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ @Override
+ public void validate() {
+ super.validate();
+ }
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/CatalogUpdateProperties.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/CatalogUpdateProperties.java
new file mode 100644
index 000000000000..60244e3524ce
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/CatalogUpdateProperties.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.devcenter.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.devcenter.models.GitCatalog;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Properties of a catalog. These properties can be updated after the resource has been created. */
+@Fluent
+public class CatalogUpdateProperties {
+ /*
+ * Properties for a GitHub catalog type.
+ */
+ @JsonProperty(value = "gitHub")
+ private GitCatalog gitHub;
+
+ /*
+ * Properties for an Azure DevOps catalog type.
+ */
+ @JsonProperty(value = "adoGit")
+ private GitCatalog adoGit;
+
+ /**
+ * Get the gitHub property: Properties for a GitHub catalog type.
+ *
+ * @return the gitHub value.
+ */
+ public GitCatalog gitHub() {
+ return this.gitHub;
+ }
+
+ /**
+ * Set the gitHub property: Properties for a GitHub catalog type.
+ *
+ * @param gitHub the gitHub value to set.
+ * @return the CatalogUpdateProperties object itself.
+ */
+ public CatalogUpdateProperties withGitHub(GitCatalog gitHub) {
+ this.gitHub = gitHub;
+ return this;
+ }
+
+ /**
+ * Get the adoGit property: Properties for an Azure DevOps catalog type.
+ *
+ * @return the adoGit value.
+ */
+ public GitCatalog adoGit() {
+ return this.adoGit;
+ }
+
+ /**
+ * Set the adoGit property: Properties for an Azure DevOps catalog type.
+ *
+ * @param adoGit the adoGit value to set.
+ * @return the CatalogUpdateProperties object itself.
+ */
+ public CatalogUpdateProperties withAdoGit(GitCatalog adoGit) {
+ this.adoGit = adoGit;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (gitHub() != null) {
+ gitHub().validate();
+ }
+ if (adoGit() != null) {
+ adoGit().validate();
+ }
+ }
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/DevBoxDefinitionInner.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/DevBoxDefinitionInner.java
new file mode 100644
index 000000000000..94d2909f6423
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/DevBoxDefinitionInner.java
@@ -0,0 +1,184 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.core.management.SystemData;
+import com.azure.resourcemanager.devcenter.models.ImageReference;
+import com.azure.resourcemanager.devcenter.models.ImageValidationErrorDetails;
+import com.azure.resourcemanager.devcenter.models.ImageValidationStatus;
+import com.azure.resourcemanager.devcenter.models.Sku;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** Represents a definition for a Developer Machine. */
+@Fluent
+public final class DevBoxDefinitionInner extends Resource {
+ /*
+ * Dev Box definition properties
+ */
+ @JsonProperty(value = "properties")
+ private DevBoxDefinitionProperties innerProperties;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy
+ * information.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /**
+ * Get the innerProperties property: Dev Box definition properties.
+ *
+ * @return the innerProperties value.
+ */
+ private DevBoxDefinitionProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public DevBoxDefinitionInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public DevBoxDefinitionInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the provisioningState property: The provisioning state of the resource.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Get the imageValidationStatus property: Validation status of the configured image.
+ *
+ * @return the imageValidationStatus value.
+ */
+ public ImageValidationStatus imageValidationStatus() {
+ return this.innerProperties() == null ? null : this.innerProperties().imageValidationStatus();
+ }
+
+ /**
+ * Get the imageValidationErrorDetails property: Details for image validator error. Populated when the image
+ * validation is not successful.
+ *
+ * @return the imageValidationErrorDetails value.
+ */
+ public ImageValidationErrorDetails imageValidationErrorDetails() {
+ return this.innerProperties() == null ? null : this.innerProperties().imageValidationErrorDetails();
+ }
+
+ /**
+ * Get the activeImageReference property: Image reference information for the currently active image (only populated
+ * during updates).
+ *
+ * @return the activeImageReference value.
+ */
+ public ImageReference activeImageReference() {
+ return this.innerProperties() == null ? null : this.innerProperties().activeImageReference();
+ }
+
+ /**
+ * Get the imageReference property: Image reference information.
+ *
+ * @return the imageReference value.
+ */
+ public ImageReference imageReference() {
+ return this.innerProperties() == null ? null : this.innerProperties().imageReference();
+ }
+
+ /**
+ * Set the imageReference property: Image reference information.
+ *
+ * @param imageReference the imageReference value to set.
+ * @return the DevBoxDefinitionInner object itself.
+ */
+ public DevBoxDefinitionInner withImageReference(ImageReference imageReference) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new DevBoxDefinitionProperties();
+ }
+ this.innerProperties().withImageReference(imageReference);
+ return this;
+ }
+
+ /**
+ * Get the sku property: The SKU for Dev Boxes created using this definition.
+ *
+ * @return the sku value.
+ */
+ public Sku sku() {
+ return this.innerProperties() == null ? null : this.innerProperties().sku();
+ }
+
+ /**
+ * Set the sku property: The SKU for Dev Boxes created using this definition.
+ *
+ * @param sku the sku value to set.
+ * @return the DevBoxDefinitionInner object itself.
+ */
+ public DevBoxDefinitionInner withSku(Sku sku) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new DevBoxDefinitionProperties();
+ }
+ this.innerProperties().withSku(sku);
+ return this;
+ }
+
+ /**
+ * Get the osStorageType property: The storage type used for the Operating System disk of Dev Boxes created using
+ * this definition.
+ *
+ * @return the osStorageType value.
+ */
+ public String osStorageType() {
+ return this.innerProperties() == null ? null : this.innerProperties().osStorageType();
+ }
+
+ /**
+ * Set the osStorageType property: The storage type used for the Operating System disk of Dev Boxes created using
+ * this definition.
+ *
+ * @param osStorageType the osStorageType value to set.
+ * @return the DevBoxDefinitionInner object itself.
+ */
+ public DevBoxDefinitionInner withOsStorageType(String osStorageType) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new DevBoxDefinitionProperties();
+ }
+ this.innerProperties().withOsStorageType(osStorageType);
+ 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/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/DevBoxDefinitionProperties.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/DevBoxDefinitionProperties.java
new file mode 100644
index 000000000000..7393c55db870
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/DevBoxDefinitionProperties.java
@@ -0,0 +1,117 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.devcenter.models.ImageReference;
+import com.azure.resourcemanager.devcenter.models.ImageValidationErrorDetails;
+import com.azure.resourcemanager.devcenter.models.ImageValidationStatus;
+import com.azure.resourcemanager.devcenter.models.Sku;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Properties of a Dev Box definition. */
+@Fluent
+public final class DevBoxDefinitionProperties extends DevBoxDefinitionUpdateProperties {
+ /*
+ * The provisioning state of the resource.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /*
+ * Validation status of the configured image.
+ */
+ @JsonProperty(value = "imageValidationStatus", access = JsonProperty.Access.WRITE_ONLY)
+ private ImageValidationStatus imageValidationStatus;
+
+ /*
+ * Details for image validator error. Populated when the image validation
+ * is not successful.
+ */
+ @JsonProperty(value = "imageValidationErrorDetails", access = JsonProperty.Access.WRITE_ONLY)
+ private ImageValidationErrorDetails imageValidationErrorDetails;
+
+ /*
+ * Image reference information for the currently active image (only
+ * populated during updates).
+ */
+ @JsonProperty(value = "activeImageReference", access = JsonProperty.Access.WRITE_ONLY)
+ private ImageReference activeImageReference;
+
+ /**
+ * Get the provisioningState property: The provisioning state of the resource.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the imageValidationStatus property: Validation status of the configured image.
+ *
+ * @return the imageValidationStatus value.
+ */
+ public ImageValidationStatus imageValidationStatus() {
+ return this.imageValidationStatus;
+ }
+
+ /**
+ * Get the imageValidationErrorDetails property: Details for image validator error. Populated when the image
+ * validation is not successful.
+ *
+ * @return the imageValidationErrorDetails value.
+ */
+ public ImageValidationErrorDetails imageValidationErrorDetails() {
+ return this.imageValidationErrorDetails;
+ }
+
+ /**
+ * Get the activeImageReference property: Image reference information for the currently active image (only populated
+ * during updates).
+ *
+ * @return the activeImageReference value.
+ */
+ public ImageReference activeImageReference() {
+ return this.activeImageReference;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public DevBoxDefinitionProperties withImageReference(ImageReference imageReference) {
+ super.withImageReference(imageReference);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public DevBoxDefinitionProperties withSku(Sku sku) {
+ super.withSku(sku);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public DevBoxDefinitionProperties withOsStorageType(String osStorageType) {
+ super.withOsStorageType(osStorageType);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ @Override
+ public void validate() {
+ super.validate();
+ if (imageValidationErrorDetails() != null) {
+ imageValidationErrorDetails().validate();
+ }
+ if (activeImageReference() != null) {
+ activeImageReference().validate();
+ }
+ }
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/DevBoxDefinitionUpdateProperties.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/DevBoxDefinitionUpdateProperties.java
new file mode 100644
index 000000000000..b4740ff3f1b7
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/DevBoxDefinitionUpdateProperties.java
@@ -0,0 +1,109 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.devcenter.models.ImageReference;
+import com.azure.resourcemanager.devcenter.models.Sku;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Properties of a Dev Box definition. These properties can be updated after the resource has been created. */
+@Fluent
+public class DevBoxDefinitionUpdateProperties {
+ /*
+ * Image reference information.
+ */
+ @JsonProperty(value = "imageReference")
+ private ImageReference imageReference;
+
+ /*
+ * The SKU for Dev Boxes created using this definition.
+ */
+ @JsonProperty(value = "sku")
+ private Sku sku;
+
+ /*
+ * The storage type used for the Operating System disk of Dev Boxes created
+ * using this definition.
+ */
+ @JsonProperty(value = "osStorageType")
+ private String osStorageType;
+
+ /**
+ * Get the imageReference property: Image reference information.
+ *
+ * @return the imageReference value.
+ */
+ public ImageReference imageReference() {
+ return this.imageReference;
+ }
+
+ /**
+ * Set the imageReference property: Image reference information.
+ *
+ * @param imageReference the imageReference value to set.
+ * @return the DevBoxDefinitionUpdateProperties object itself.
+ */
+ public DevBoxDefinitionUpdateProperties withImageReference(ImageReference imageReference) {
+ this.imageReference = imageReference;
+ return this;
+ }
+
+ /**
+ * Get the sku property: The SKU for Dev Boxes created using this definition.
+ *
+ * @return the sku value.
+ */
+ public Sku sku() {
+ return this.sku;
+ }
+
+ /**
+ * Set the sku property: The SKU for Dev Boxes created using this definition.
+ *
+ * @param sku the sku value to set.
+ * @return the DevBoxDefinitionUpdateProperties object itself.
+ */
+ public DevBoxDefinitionUpdateProperties withSku(Sku sku) {
+ this.sku = sku;
+ return this;
+ }
+
+ /**
+ * Get the osStorageType property: The storage type used for the Operating System disk of Dev Boxes created using
+ * this definition.
+ *
+ * @return the osStorageType value.
+ */
+ public String osStorageType() {
+ return this.osStorageType;
+ }
+
+ /**
+ * Set the osStorageType property: The storage type used for the Operating System disk of Dev Boxes created using
+ * this definition.
+ *
+ * @param osStorageType the osStorageType value to set.
+ * @return the DevBoxDefinitionUpdateProperties object itself.
+ */
+ public DevBoxDefinitionUpdateProperties withOsStorageType(String osStorageType) {
+ this.osStorageType = osStorageType;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (imageReference() != null) {
+ imageReference().validate();
+ }
+ if (sku() != null) {
+ sku().validate();
+ }
+ }
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/DevCenterInner.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/DevCenterInner.java
new file mode 100644
index 000000000000..dc7ad235aee9
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/DevCenterInner.java
@@ -0,0 +1,93 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.resourcemanager.devcenter.models.ManagedServiceIdentity;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** Represents a devcenter resource. */
+@Fluent
+public final class DevCenterInner extends Resource {
+ /*
+ * DevCenter properties
+ */
+ @JsonProperty(value = "properties")
+ private DevCenterProperties innerProperties;
+
+ /*
+ * Managed identity properties
+ */
+ @JsonProperty(value = "identity")
+ private ManagedServiceIdentity identity;
+
+ /**
+ * Get the innerProperties property: DevCenter properties.
+ *
+ * @return the innerProperties value.
+ */
+ private DevCenterProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the identity property: Managed identity properties.
+ *
+ * @return the identity value.
+ */
+ public ManagedServiceIdentity identity() {
+ return this.identity;
+ }
+
+ /**
+ * Set the identity property: Managed identity properties.
+ *
+ * @param identity the identity value to set.
+ * @return the DevCenterInner object itself.
+ */
+ public DevCenterInner withIdentity(ManagedServiceIdentity identity) {
+ this.identity = identity;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public DevCenterInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public DevCenterInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the provisioningState property: The provisioning state of the resource.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ if (identity() != null) {
+ identity().validate();
+ }
+ }
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/DevCenterProperties.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/DevCenterProperties.java
new file mode 100644
index 000000000000..c93b55b9859d
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/DevCenterProperties.java
@@ -0,0 +1,35 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Properties of the devcenter. */
+@Immutable
+public final class DevCenterProperties {
+ /*
+ * The provisioning state of the resource.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /**
+ * Get the provisioningState property: The provisioning state of the resource.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/DevCenterSkuInner.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/DevCenterSkuInner.java
new file mode 100644
index 000000000000..327a949d4956
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/DevCenterSkuInner.java
@@ -0,0 +1,109 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.devcenter.models.Capability;
+import com.azure.resourcemanager.devcenter.models.Sku;
+import com.azure.resourcemanager.devcenter.models.SkuTier;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** The resource model definition representing SKU for DevCenter resources. */
+@Fluent
+public final class DevCenterSkuInner extends Sku {
+ /*
+ * The name of the resource type
+ */
+ @JsonProperty(value = "resourceType", access = JsonProperty.Access.WRITE_ONLY)
+ private String resourceType;
+
+ /*
+ * SKU supported locations.
+ */
+ @JsonProperty(value = "locations", access = JsonProperty.Access.WRITE_ONLY)
+ private List locations;
+
+ /*
+ * Collection of name/value pairs to describe the SKU capabilities.
+ */
+ @JsonProperty(value = "capabilities", access = JsonProperty.Access.WRITE_ONLY)
+ private List capabilities;
+
+ /**
+ * Get the resourceType property: The name of the resource type.
+ *
+ * @return the resourceType value.
+ */
+ public String resourceType() {
+ return this.resourceType;
+ }
+
+ /**
+ * Get the locations property: SKU supported locations.
+ *
+ * @return the locations value.
+ */
+ public List locations() {
+ return this.locations;
+ }
+
+ /**
+ * Get the capabilities property: Collection of name/value pairs to describe the SKU capabilities.
+ *
+ * @return the capabilities value.
+ */
+ public List capabilities() {
+ return this.capabilities;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public DevCenterSkuInner withName(String name) {
+ super.withName(name);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public DevCenterSkuInner withTier(SkuTier tier) {
+ super.withTier(tier);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public DevCenterSkuInner withSize(String size) {
+ super.withSize(size);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public DevCenterSkuInner withFamily(String family) {
+ super.withFamily(family);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public DevCenterSkuInner withCapacity(Integer capacity) {
+ super.withCapacity(capacity);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ @Override
+ public void validate() {
+ super.validate();
+ if (capabilities() != null) {
+ capabilities().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/EnvironmentTypeInner.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/EnvironmentTypeInner.java
new file mode 100644
index 000000000000..6d8c8ae7c257
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/EnvironmentTypeInner.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.devcenter.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.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** Represents an environment type. */
+@Fluent
+public final class EnvironmentTypeInner extends ProxyResource {
+ /*
+ * Properties of an environment type.
+ */
+ @JsonProperty(value = "properties")
+ private EnvironmentTypeProperties innerProperties;
+
+ /*
+ * Resource tags.
+ */
+ @JsonProperty(value = "tags")
+ @JsonInclude(value = JsonInclude.Include.NON_NULL, content = JsonInclude.Include.ALWAYS)
+ private Map tags;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy
+ * information.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /**
+ * Get the innerProperties property: Properties of an environment type.
+ *
+ * @return the innerProperties value.
+ */
+ private EnvironmentTypeProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the tags property: Resource tags.
+ *
+ * @return the tags value.
+ */
+ public Map tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set the tags property: Resource tags.
+ *
+ * @param tags the tags value to set.
+ * @return the EnvironmentTypeInner object itself.
+ */
+ public EnvironmentTypeInner withTags(Map tags) {
+ this.tags = tags;
+ return this;
+ }
+
+ /**
+ * Get the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the provisioningState property: The provisioning state of the resource.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/EnvironmentTypeProperties.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/EnvironmentTypeProperties.java
new file mode 100644
index 000000000000..6ed5a93aeb95
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/EnvironmentTypeProperties.java
@@ -0,0 +1,35 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Properties of an environment type. */
+@Immutable
+public final class EnvironmentTypeProperties {
+ /*
+ * The provisioning state of the resource.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /**
+ * Get the provisioningState property: The provisioning state of the resource.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/GalleryInner.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/GalleryInner.java
new file mode 100644
index 000000000000..b640452a72fd
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/GalleryInner.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.devcenter.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;
+
+/** Represents a gallery. */
+@Fluent
+public final class GalleryInner extends ProxyResource {
+ /*
+ * Gallery properties.
+ */
+ @JsonProperty(value = "properties")
+ private GalleryProperties innerProperties;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy
+ * information.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /**
+ * Get the innerProperties property: Gallery properties.
+ *
+ * @return the innerProperties value.
+ */
+ private GalleryProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the provisioningState property: The provisioning state of the resource.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Get the galleryResourceId property: The resource ID of the backing Azure Compute Gallery.
+ *
+ * @return the galleryResourceId value.
+ */
+ public String galleryResourceId() {
+ return this.innerProperties() == null ? null : this.innerProperties().galleryResourceId();
+ }
+
+ /**
+ * Set the galleryResourceId property: The resource ID of the backing Azure Compute Gallery.
+ *
+ * @param galleryResourceId the galleryResourceId value to set.
+ * @return the GalleryInner object itself.
+ */
+ public GalleryInner withGalleryResourceId(String galleryResourceId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new GalleryProperties();
+ }
+ this.innerProperties().withGalleryResourceId(galleryResourceId);
+ 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/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/GalleryProperties.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/GalleryProperties.java
new file mode 100644
index 000000000000..db53560968d4
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/GalleryProperties.java
@@ -0,0 +1,70 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Properties of a gallery. */
+@Fluent
+public final class GalleryProperties {
+ /*
+ * The provisioning state of the resource.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /*
+ * The resource ID of the backing Azure Compute Gallery.
+ */
+ @JsonProperty(value = "galleryResourceId", required = true)
+ private String galleryResourceId;
+
+ /**
+ * Get the provisioningState property: The provisioning state of the resource.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the galleryResourceId property: The resource ID of the backing Azure Compute Gallery.
+ *
+ * @return the galleryResourceId value.
+ */
+ public String galleryResourceId() {
+ return this.galleryResourceId;
+ }
+
+ /**
+ * Set the galleryResourceId property: The resource ID of the backing Azure Compute Gallery.
+ *
+ * @param galleryResourceId the galleryResourceId value to set.
+ * @return the GalleryProperties object itself.
+ */
+ public GalleryProperties withGalleryResourceId(String galleryResourceId) {
+ this.galleryResourceId = galleryResourceId;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (galleryResourceId() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property galleryResourceId in model GalleryProperties"));
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(GalleryProperties.class);
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/HealthCheckStatusDetailsInner.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/HealthCheckStatusDetailsInner.java
new file mode 100644
index 000000000000..4bb29510a03e
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/HealthCheckStatusDetailsInner.java
@@ -0,0 +1,86 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.resourcemanager.devcenter.models.HealthCheck;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+import java.util.List;
+
+/** Health Check details. */
+@Fluent
+public final class HealthCheckStatusDetailsInner extends ProxyResource {
+ /*
+ * Health check status details properties.
+ */
+ @JsonProperty(value = "properties")
+ private HealthCheckStatusDetailsProperties innerProperties;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy
+ * information.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /**
+ * Get the innerProperties property: Health check status details properties.
+ *
+ * @return the innerProperties value.
+ */
+ private HealthCheckStatusDetailsProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the startDateTime property: Start time of last execution of the health checks.
+ *
+ * @return the startDateTime value.
+ */
+ public OffsetDateTime startDateTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().startDateTime();
+ }
+
+ /**
+ * Get the endDateTime property: End time of last execution of the health checks.
+ *
+ * @return the endDateTime value.
+ */
+ public OffsetDateTime endDateTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().endDateTime();
+ }
+
+ /**
+ * Get the healthChecks property: Details for each health check item.
+ *
+ * @return the healthChecks value.
+ */
+ public List healthChecks() {
+ return this.innerProperties() == null ? null : this.innerProperties().healthChecks();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/HealthCheckStatusDetailsProperties.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/HealthCheckStatusDetailsProperties.java
new file mode 100644
index 000000000000..10162bbac27d
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/HealthCheckStatusDetailsProperties.java
@@ -0,0 +1,71 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.resourcemanager.devcenter.models.HealthCheck;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+import java.util.List;
+
+/** Health Check properties. */
+@Immutable
+public final class HealthCheckStatusDetailsProperties {
+ /*
+ * Start time of last execution of the health checks.
+ */
+ @JsonProperty(value = "startDateTime", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime startDateTime;
+
+ /*
+ * End time of last execution of the health checks.
+ */
+ @JsonProperty(value = "endDateTime", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime endDateTime;
+
+ /*
+ * Details for each health check item.
+ */
+ @JsonProperty(value = "healthChecks", access = JsonProperty.Access.WRITE_ONLY)
+ private List healthChecks;
+
+ /**
+ * Get the startDateTime property: Start time of last execution of the health checks.
+ *
+ * @return the startDateTime value.
+ */
+ public OffsetDateTime startDateTime() {
+ return this.startDateTime;
+ }
+
+ /**
+ * Get the endDateTime property: End time of last execution of the health checks.
+ *
+ * @return the endDateTime value.
+ */
+ public OffsetDateTime endDateTime() {
+ return this.endDateTime;
+ }
+
+ /**
+ * Get the healthChecks property: Details for each health check item.
+ *
+ * @return the healthChecks value.
+ */
+ public List healthChecks() {
+ return this.healthChecks;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (healthChecks() != null) {
+ healthChecks().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/ImageInner.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/ImageInner.java
new file mode 100644
index 000000000000..871d9b736fac
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/ImageInner.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.devcenter.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.resourcemanager.devcenter.models.RecommendedMachineConfiguration;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Represents an image. */
+@Fluent
+public final class ImageInner extends ProxyResource {
+ /*
+ * Image properties.
+ */
+ @JsonProperty(value = "properties")
+ private ImageProperties innerProperties;
+
+ /**
+ * Get the innerProperties property: Image properties.
+ *
+ * @return the innerProperties value.
+ */
+ private ImageProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the description property: The description of the image.
+ *
+ * @return the description value.
+ */
+ public String description() {
+ return this.innerProperties() == null ? null : this.innerProperties().description();
+ }
+
+ /**
+ * Get the publisher property: The publisher of the image.
+ *
+ * @return the publisher value.
+ */
+ public String publisher() {
+ return this.innerProperties() == null ? null : this.innerProperties().publisher();
+ }
+
+ /**
+ * Get the offer property: The name of the image offer.
+ *
+ * @return the offer value.
+ */
+ public String offer() {
+ return this.innerProperties() == null ? null : this.innerProperties().offer();
+ }
+
+ /**
+ * Get the sku property: The SKU name for the image.
+ *
+ * @return the sku value.
+ */
+ public String sku() {
+ return this.innerProperties() == null ? null : this.innerProperties().sku();
+ }
+
+ /**
+ * Get the recommendedMachineConfiguration property: The recommended machine configuration to use with the image.
+ *
+ * @return the recommendedMachineConfiguration value.
+ */
+ public RecommendedMachineConfiguration recommendedMachineConfiguration() {
+ return this.innerProperties() == null ? null : this.innerProperties().recommendedMachineConfiguration();
+ }
+
+ /**
+ * Get the provisioningState property: The provisioning state of the resource.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/ImageProperties.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/ImageProperties.java
new file mode 100644
index 000000000000..17e63b7e57d2
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/ImageProperties.java
@@ -0,0 +1,114 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.resourcemanager.devcenter.models.RecommendedMachineConfiguration;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Properties of an image. */
+@Immutable
+public final class ImageProperties {
+ /*
+ * The description of the image.
+ */
+ @JsonProperty(value = "description", access = JsonProperty.Access.WRITE_ONLY)
+ private String description;
+
+ /*
+ * The publisher of the image.
+ */
+ @JsonProperty(value = "publisher", access = JsonProperty.Access.WRITE_ONLY)
+ private String publisher;
+
+ /*
+ * The name of the image offer.
+ */
+ @JsonProperty(value = "offer", access = JsonProperty.Access.WRITE_ONLY)
+ private String offer;
+
+ /*
+ * The SKU name for the image.
+ */
+ @JsonProperty(value = "sku", access = JsonProperty.Access.WRITE_ONLY)
+ private String sku;
+
+ /*
+ * The recommended machine configuration to use with the image.
+ */
+ @JsonProperty(value = "recommendedMachineConfiguration", access = JsonProperty.Access.WRITE_ONLY)
+ private RecommendedMachineConfiguration recommendedMachineConfiguration;
+
+ /*
+ * The provisioning state of the resource.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /**
+ * Get the description property: The description of the image.
+ *
+ * @return the description value.
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Get the publisher property: The publisher of the image.
+ *
+ * @return the publisher value.
+ */
+ public String publisher() {
+ return this.publisher;
+ }
+
+ /**
+ * Get the offer property: The name of the image offer.
+ *
+ * @return the offer value.
+ */
+ public String offer() {
+ return this.offer;
+ }
+
+ /**
+ * Get the sku property: The SKU name for the image.
+ *
+ * @return the sku value.
+ */
+ public String sku() {
+ return this.sku;
+ }
+
+ /**
+ * Get the recommendedMachineConfiguration property: The recommended machine configuration to use with the image.
+ *
+ * @return the recommendedMachineConfiguration value.
+ */
+ public RecommendedMachineConfiguration recommendedMachineConfiguration() {
+ return this.recommendedMachineConfiguration;
+ }
+
+ /**
+ * Get the provisioningState property: The provisioning state of the resource.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (recommendedMachineConfiguration() != null) {
+ recommendedMachineConfiguration().validate();
+ }
+ }
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/ImageVersionInner.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/ImageVersionInner.java
new file mode 100644
index 000000000000..e1f002f22c2b
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/ImageVersionInner.java
@@ -0,0 +1,102 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.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;
+import java.time.OffsetDateTime;
+
+/** Represents an image version. */
+@Fluent
+public final class ImageVersionInner extends ProxyResource {
+ /*
+ * Image version properties.
+ */
+ @JsonProperty(value = "properties")
+ private ImageVersionProperties innerProperties;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy
+ * information.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /**
+ * Get the innerProperties property: Image version properties.
+ *
+ * @return the innerProperties value.
+ */
+ private ImageVersionProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the name property: The semantic version string.
+ *
+ * @return the name value.
+ */
+ public String namePropertiesName() {
+ return this.innerProperties() == null ? null : this.innerProperties().name();
+ }
+
+ /**
+ * Get the publishedDate property: The datetime that the backing image version was published.
+ *
+ * @return the publishedDate value.
+ */
+ public OffsetDateTime publishedDate() {
+ return this.innerProperties() == null ? null : this.innerProperties().publishedDate();
+ }
+
+ /**
+ * Get the excludeFromLatest property: If the version should be excluded from being treated as the latest version.
+ *
+ * @return the excludeFromLatest value.
+ */
+ public Boolean excludeFromLatest() {
+ return this.innerProperties() == null ? null : this.innerProperties().excludeFromLatest();
+ }
+
+ /**
+ * Get the osDiskImageSizeInGb property: The size of the OS disk image, in GB.
+ *
+ * @return the osDiskImageSizeInGb value.
+ */
+ public Integer osDiskImageSizeInGb() {
+ return this.innerProperties() == null ? null : this.innerProperties().osDiskImageSizeInGb();
+ }
+
+ /**
+ * Get the provisioningState property: The provisioning state of the resource.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/ImageVersionProperties.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/ImageVersionProperties.java
new file mode 100644
index 000000000000..20ce508503b0
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/ImageVersionProperties.java
@@ -0,0 +1,97 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** Properties of an image version. */
+@Immutable
+public final class ImageVersionProperties {
+ /*
+ * The semantic version string.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /*
+ * The datetime that the backing image version was published.
+ */
+ @JsonProperty(value = "publishedDate", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime publishedDate;
+
+ /*
+ * If the version should be excluded from being treated as the latest
+ * version.
+ */
+ @JsonProperty(value = "excludeFromLatest", access = JsonProperty.Access.WRITE_ONLY)
+ private Boolean excludeFromLatest;
+
+ /*
+ * The size of the OS disk image, in GB.
+ */
+ @JsonProperty(value = "osDiskImageSizeInGb", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer osDiskImageSizeInGb;
+
+ /*
+ * The provisioning state of the resource.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /**
+ * Get the name property: The semantic version string.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the publishedDate property: The datetime that the backing image version was published.
+ *
+ * @return the publishedDate value.
+ */
+ public OffsetDateTime publishedDate() {
+ return this.publishedDate;
+ }
+
+ /**
+ * Get the excludeFromLatest property: If the version should be excluded from being treated as the latest version.
+ *
+ * @return the excludeFromLatest value.
+ */
+ public Boolean excludeFromLatest() {
+ return this.excludeFromLatest;
+ }
+
+ /**
+ * Get the osDiskImageSizeInGb property: The size of the OS disk image, in GB.
+ *
+ * @return the osDiskImageSizeInGb value.
+ */
+ public Integer osDiskImageSizeInGb() {
+ return this.osDiskImageSizeInGb;
+ }
+
+ /**
+ * Get the provisioningState property: The provisioning state of the resource.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/NetworkConnectionInner.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/NetworkConnectionInner.java
new file mode 100644
index 000000000000..fbf6410af444
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/NetworkConnectionInner.java
@@ -0,0 +1,255 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.core.management.SystemData;
+import com.azure.resourcemanager.devcenter.models.DomainJoinType;
+import com.azure.resourcemanager.devcenter.models.HealthCheckStatus;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** Network related settings. */
+@Fluent
+public final class NetworkConnectionInner extends Resource {
+ /*
+ * Properties of a Network Connection
+ */
+ @JsonProperty(value = "properties")
+ private NetworkProperties innerProperties;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy
+ * information.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /**
+ * Get the innerProperties property: Properties of a Network Connection.
+ *
+ * @return the innerProperties value.
+ */
+ private NetworkProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public NetworkConnectionInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public NetworkConnectionInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the provisioningState property: The provisioning state of the resource.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Get the healthCheckStatus property: Overall health status of the network connection. Health checks are run on
+ * creation, update, and periodically to validate the network connection.
+ *
+ * @return the healthCheckStatus value.
+ */
+ public HealthCheckStatus healthCheckStatus() {
+ return this.innerProperties() == null ? null : this.innerProperties().healthCheckStatus();
+ }
+
+ /**
+ * Get the networkingResourceGroupName property: The name for resource group where NICs will be placed.
+ *
+ * @return the networkingResourceGroupName value.
+ */
+ public String networkingResourceGroupName() {
+ return this.innerProperties() == null ? null : this.innerProperties().networkingResourceGroupName();
+ }
+
+ /**
+ * Set the networkingResourceGroupName property: The name for resource group where NICs will be placed.
+ *
+ * @param networkingResourceGroupName the networkingResourceGroupName value to set.
+ * @return the NetworkConnectionInner object itself.
+ */
+ public NetworkConnectionInner withNetworkingResourceGroupName(String networkingResourceGroupName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new NetworkProperties();
+ }
+ this.innerProperties().withNetworkingResourceGroupName(networkingResourceGroupName);
+ return this;
+ }
+
+ /**
+ * Get the domainJoinType property: AAD Join type.
+ *
+ * @return the domainJoinType value.
+ */
+ public DomainJoinType domainJoinType() {
+ return this.innerProperties() == null ? null : this.innerProperties().domainJoinType();
+ }
+
+ /**
+ * Set the domainJoinType property: AAD Join type.
+ *
+ * @param domainJoinType the domainJoinType value to set.
+ * @return the NetworkConnectionInner object itself.
+ */
+ public NetworkConnectionInner withDomainJoinType(DomainJoinType domainJoinType) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new NetworkProperties();
+ }
+ this.innerProperties().withDomainJoinType(domainJoinType);
+ return this;
+ }
+
+ /**
+ * Get the subnetId property: The subnet to attach Virtual Machines to.
+ *
+ * @return the subnetId value.
+ */
+ public String subnetId() {
+ return this.innerProperties() == null ? null : this.innerProperties().subnetId();
+ }
+
+ /**
+ * Set the subnetId property: The subnet to attach Virtual Machines to.
+ *
+ * @param subnetId the subnetId value to set.
+ * @return the NetworkConnectionInner object itself.
+ */
+ public NetworkConnectionInner withSubnetId(String subnetId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new NetworkProperties();
+ }
+ this.innerProperties().withSubnetId(subnetId);
+ return this;
+ }
+
+ /**
+ * Get the domainName property: Active Directory domain name.
+ *
+ * @return the domainName value.
+ */
+ public String domainName() {
+ return this.innerProperties() == null ? null : this.innerProperties().domainName();
+ }
+
+ /**
+ * Set the domainName property: Active Directory domain name.
+ *
+ * @param domainName the domainName value to set.
+ * @return the NetworkConnectionInner object itself.
+ */
+ public NetworkConnectionInner withDomainName(String domainName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new NetworkProperties();
+ }
+ this.innerProperties().withDomainName(domainName);
+ return this;
+ }
+
+ /**
+ * Get the organizationUnit property: Active Directory domain Organization Unit (OU).
+ *
+ * @return the organizationUnit value.
+ */
+ public String organizationUnit() {
+ return this.innerProperties() == null ? null : this.innerProperties().organizationUnit();
+ }
+
+ /**
+ * Set the organizationUnit property: Active Directory domain Organization Unit (OU).
+ *
+ * @param organizationUnit the organizationUnit value to set.
+ * @return the NetworkConnectionInner object itself.
+ */
+ public NetworkConnectionInner withOrganizationUnit(String organizationUnit) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new NetworkProperties();
+ }
+ this.innerProperties().withOrganizationUnit(organizationUnit);
+ return this;
+ }
+
+ /**
+ * Get the domainUsername property: The username of an Active Directory account (user or service account) that has
+ * permissions to create computer objects in Active Directory. Required format: admin@contoso.com.
+ *
+ * @return the domainUsername value.
+ */
+ public String domainUsername() {
+ return this.innerProperties() == null ? null : this.innerProperties().domainUsername();
+ }
+
+ /**
+ * Set the domainUsername property: The username of an Active Directory account (user or service account) that has
+ * permissions to create computer objects in Active Directory. Required format: admin@contoso.com.
+ *
+ * @param domainUsername the domainUsername value to set.
+ * @return the NetworkConnectionInner object itself.
+ */
+ public NetworkConnectionInner withDomainUsername(String domainUsername) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new NetworkProperties();
+ }
+ this.innerProperties().withDomainUsername(domainUsername);
+ return this;
+ }
+
+ /**
+ * Get the domainPassword property: The password for the account used to join domain.
+ *
+ * @return the domainPassword value.
+ */
+ public String domainPassword() {
+ return this.innerProperties() == null ? null : this.innerProperties().domainPassword();
+ }
+
+ /**
+ * Set the domainPassword property: The password for the account used to join domain.
+ *
+ * @param domainPassword the domainPassword value to set.
+ * @return the NetworkConnectionInner object itself.
+ */
+ public NetworkConnectionInner withDomainPassword(String domainPassword) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new NetworkProperties();
+ }
+ this.innerProperties().withDomainPassword(domainPassword);
+ 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/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/NetworkConnectionUpdateProperties.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/NetworkConnectionUpdateProperties.java
new file mode 100644
index 000000000000..c1ad781768a7
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/NetworkConnectionUpdateProperties.java
@@ -0,0 +1,154 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Properties of network connection. These properties can be updated after the resource has been created. */
+@Fluent
+public class NetworkConnectionUpdateProperties {
+ /*
+ * The subnet to attach Virtual Machines to
+ */
+ @JsonProperty(value = "subnetId")
+ private String subnetId;
+
+ /*
+ * Active Directory domain name
+ */
+ @JsonProperty(value = "domainName")
+ private String domainName;
+
+ /*
+ * Active Directory domain Organization Unit (OU)
+ */
+ @JsonProperty(value = "organizationUnit")
+ private String organizationUnit;
+
+ /*
+ * The username of an Active Directory account (user or service account)
+ * that has permissions to create computer objects in Active Directory.
+ * Required format: admin@contoso.com.
+ */
+ @JsonProperty(value = "domainUsername")
+ private String domainUsername;
+
+ /*
+ * The password for the account used to join domain
+ */
+ @JsonProperty(value = "domainPassword")
+ private String domainPassword;
+
+ /**
+ * Get the subnetId property: The subnet to attach Virtual Machines to.
+ *
+ * @return the subnetId value.
+ */
+ public String subnetId() {
+ return this.subnetId;
+ }
+
+ /**
+ * Set the subnetId property: The subnet to attach Virtual Machines to.
+ *
+ * @param subnetId the subnetId value to set.
+ * @return the NetworkConnectionUpdateProperties object itself.
+ */
+ public NetworkConnectionUpdateProperties withSubnetId(String subnetId) {
+ this.subnetId = subnetId;
+ return this;
+ }
+
+ /**
+ * Get the domainName property: Active Directory domain name.
+ *
+ * @return the domainName value.
+ */
+ public String domainName() {
+ return this.domainName;
+ }
+
+ /**
+ * Set the domainName property: Active Directory domain name.
+ *
+ * @param domainName the domainName value to set.
+ * @return the NetworkConnectionUpdateProperties object itself.
+ */
+ public NetworkConnectionUpdateProperties withDomainName(String domainName) {
+ this.domainName = domainName;
+ return this;
+ }
+
+ /**
+ * Get the organizationUnit property: Active Directory domain Organization Unit (OU).
+ *
+ * @return the organizationUnit value.
+ */
+ public String organizationUnit() {
+ return this.organizationUnit;
+ }
+
+ /**
+ * Set the organizationUnit property: Active Directory domain Organization Unit (OU).
+ *
+ * @param organizationUnit the organizationUnit value to set.
+ * @return the NetworkConnectionUpdateProperties object itself.
+ */
+ public NetworkConnectionUpdateProperties withOrganizationUnit(String organizationUnit) {
+ this.organizationUnit = organizationUnit;
+ return this;
+ }
+
+ /**
+ * Get the domainUsername property: The username of an Active Directory account (user or service account) that has
+ * permissions to create computer objects in Active Directory. Required format: admin@contoso.com.
+ *
+ * @return the domainUsername value.
+ */
+ public String domainUsername() {
+ return this.domainUsername;
+ }
+
+ /**
+ * Set the domainUsername property: The username of an Active Directory account (user or service account) that has
+ * permissions to create computer objects in Active Directory. Required format: admin@contoso.com.
+ *
+ * @param domainUsername the domainUsername value to set.
+ * @return the NetworkConnectionUpdateProperties object itself.
+ */
+ public NetworkConnectionUpdateProperties withDomainUsername(String domainUsername) {
+ this.domainUsername = domainUsername;
+ return this;
+ }
+
+ /**
+ * Get the domainPassword property: The password for the account used to join domain.
+ *
+ * @return the domainPassword value.
+ */
+ public String domainPassword() {
+ return this.domainPassword;
+ }
+
+ /**
+ * Set the domainPassword property: The password for the account used to join domain.
+ *
+ * @param domainPassword the domainPassword value to set.
+ * @return the NetworkConnectionUpdateProperties object itself.
+ */
+ public NetworkConnectionUpdateProperties withDomainPassword(String domainPassword) {
+ this.domainPassword = domainPassword;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/NetworkProperties.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/NetworkProperties.java
new file mode 100644
index 000000000000..139396195d90
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/NetworkProperties.java
@@ -0,0 +1,153 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.devcenter.models.DomainJoinType;
+import com.azure.resourcemanager.devcenter.models.HealthCheckStatus;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Network properties. */
+@Fluent
+public final class NetworkProperties extends NetworkConnectionUpdateProperties {
+ /*
+ * The provisioning state of the resource.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /*
+ * Overall health status of the network connection. Health checks are run
+ * on creation, update, and periodically to validate the network
+ * connection.
+ */
+ @JsonProperty(value = "healthCheckStatus", access = JsonProperty.Access.WRITE_ONLY)
+ private HealthCheckStatus healthCheckStatus;
+
+ /*
+ * The name for resource group where NICs will be placed.
+ */
+ @JsonProperty(value = "networkingResourceGroupName")
+ private String networkingResourceGroupName;
+
+ /*
+ * AAD Join type.
+ */
+ @JsonProperty(value = "domainJoinType", required = true)
+ private DomainJoinType domainJoinType;
+
+ /**
+ * Get the provisioningState property: The provisioning state of the resource.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the healthCheckStatus property: Overall health status of the network connection. Health checks are run on
+ * creation, update, and periodically to validate the network connection.
+ *
+ * @return the healthCheckStatus value.
+ */
+ public HealthCheckStatus healthCheckStatus() {
+ return this.healthCheckStatus;
+ }
+
+ /**
+ * Get the networkingResourceGroupName property: The name for resource group where NICs will be placed.
+ *
+ * @return the networkingResourceGroupName value.
+ */
+ public String networkingResourceGroupName() {
+ return this.networkingResourceGroupName;
+ }
+
+ /**
+ * Set the networkingResourceGroupName property: The name for resource group where NICs will be placed.
+ *
+ * @param networkingResourceGroupName the networkingResourceGroupName value to set.
+ * @return the NetworkProperties object itself.
+ */
+ public NetworkProperties withNetworkingResourceGroupName(String networkingResourceGroupName) {
+ this.networkingResourceGroupName = networkingResourceGroupName;
+ return this;
+ }
+
+ /**
+ * Get the domainJoinType property: AAD Join type.
+ *
+ * @return the domainJoinType value.
+ */
+ public DomainJoinType domainJoinType() {
+ return this.domainJoinType;
+ }
+
+ /**
+ * Set the domainJoinType property: AAD Join type.
+ *
+ * @param domainJoinType the domainJoinType value to set.
+ * @return the NetworkProperties object itself.
+ */
+ public NetworkProperties withDomainJoinType(DomainJoinType domainJoinType) {
+ this.domainJoinType = domainJoinType;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public NetworkProperties withSubnetId(String subnetId) {
+ super.withSubnetId(subnetId);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public NetworkProperties withDomainName(String domainName) {
+ super.withDomainName(domainName);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public NetworkProperties withOrganizationUnit(String organizationUnit) {
+ super.withOrganizationUnit(organizationUnit);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public NetworkProperties withDomainUsername(String domainUsername) {
+ super.withDomainUsername(domainUsername);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public NetworkProperties withDomainPassword(String domainPassword) {
+ super.withDomainPassword(domainPassword);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ @Override
+ public void validate() {
+ super.validate();
+ if (domainJoinType() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property domainJoinType in model NetworkProperties"));
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(NetworkProperties.class);
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/OperationInner.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/OperationInner.java
new file mode 100644
index 000000000000..9f771515adca
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/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.devcenter.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.devcenter.models.ActionType;
+import com.azure.resourcemanager.devcenter.models.OperationDisplay;
+import com.azure.resourcemanager.devcenter.models.Origin;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** REST API Operation Details of a REST API operation, returned from the Resource Provider Operations API. */
+@Fluent
+public final class OperationInner {
+ /*
+ * The name of the operation, as per Resource-Based Access Control (RBAC).
+ * Examples: "Microsoft.Compute/virtualMachines/write",
+ * "Microsoft.Compute/virtualMachines/capture/action"
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /*
+ * Whether the operation applies to data-plane. This is "true" for
+ * data-plane operations and "false" for ARM/control-plane operations.
+ */
+ @JsonProperty(value = "isDataAction", access = JsonProperty.Access.WRITE_ONLY)
+ private Boolean isDataAction;
+
+ /*
+ * Localized display information for this particular operation.
+ */
+ @JsonProperty(value = "display")
+ private OperationDisplay display;
+
+ /*
+ * The intended executor of the operation; as in Resource Based Access
+ * Control (RBAC) and audit logs UX. Default value is "user,system"
+ */
+ @JsonProperty(value = "origin", access = JsonProperty.Access.WRITE_ONLY)
+ private Origin origin;
+
+ /*
+ * Enum. Indicates the action type. "Internal" refers to actions that are
+ * for internal only APIs.
+ */
+ @JsonProperty(value = "actionType", access = JsonProperty.Access.WRITE_ONLY)
+ private ActionType actionType;
+
+ /**
+ * Get the name property: The name of the operation, as per Resource-Based Access Control (RBAC). Examples:
+ * "Microsoft.Compute/virtualMachines/write", "Microsoft.Compute/virtualMachines/capture/action".
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the isDataAction property: Whether the operation applies to data-plane. This is "true" for data-plane
+ * operations and "false" for ARM/control-plane operations.
+ *
+ * @return the isDataAction value.
+ */
+ public Boolean isDataAction() {
+ return this.isDataAction;
+ }
+
+ /**
+ * Get the display property: Localized display information for this particular operation.
+ *
+ * @return the display value.
+ */
+ public OperationDisplay display() {
+ return this.display;
+ }
+
+ /**
+ * Set the display property: Localized display information for this particular 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 origin property: The intended executor of the operation; as in Resource Based Access Control (RBAC) and
+ * audit logs UX. Default value is "user,system".
+ *
+ * @return the origin value.
+ */
+ public Origin origin() {
+ return this.origin;
+ }
+
+ /**
+ * Get the actionType property: Enum. Indicates the action type. "Internal" refers to actions that are for internal
+ * only APIs.
+ *
+ * @return the actionType value.
+ */
+ public ActionType actionType() {
+ return this.actionType;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (display() != null) {
+ display().validate();
+ }
+ }
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/OperationStatusInner.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/OperationStatusInner.java
new file mode 100644
index 000000000000..7c33993b42b0
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/OperationStatusInner.java
@@ -0,0 +1,156 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.devcenter.models.OperationStatusError;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** The current status of an async operation. */
+@Fluent
+public final class OperationStatusInner {
+ /*
+ * Fully qualified ID for the operation status.
+ */
+ @JsonProperty(value = "id", access = JsonProperty.Access.WRITE_ONLY)
+ private String id;
+
+ /*
+ * The operation id name
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /*
+ * Provisioning state of the resource.
+ */
+ @JsonProperty(value = "status", access = JsonProperty.Access.WRITE_ONLY)
+ private String status;
+
+ /*
+ * The start time of the operation
+ */
+ @JsonProperty(value = "startTime", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime startTime;
+
+ /*
+ * The end time of the operation
+ */
+ @JsonProperty(value = "endTime", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime endTime;
+
+ /*
+ * Percent of the operation that is complete
+ */
+ @JsonProperty(value = "percentComplete", access = JsonProperty.Access.WRITE_ONLY)
+ private Float percentComplete;
+
+ /*
+ * Custom operation properties, populated only for a successful operation.
+ */
+ @JsonProperty(value = "properties", access = JsonProperty.Access.WRITE_ONLY)
+ private Object properties;
+
+ /*
+ * Operation Error message
+ */
+ @JsonProperty(value = "error")
+ private OperationStatusError error;
+
+ /**
+ * Get the id property: Fully qualified ID for the operation status.
+ *
+ * @return the id value.
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get the name property: The operation id name.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the status property: Provisioning state of the resource.
+ *
+ * @return the status value.
+ */
+ public String status() {
+ return this.status;
+ }
+
+ /**
+ * Get the startTime property: The start time of the operation.
+ *
+ * @return the startTime value.
+ */
+ public OffsetDateTime startTime() {
+ return this.startTime;
+ }
+
+ /**
+ * Get the endTime property: The end time of the operation.
+ *
+ * @return the endTime value.
+ */
+ public OffsetDateTime endTime() {
+ return this.endTime;
+ }
+
+ /**
+ * Get the percentComplete property: Percent of the operation that is complete.
+ *
+ * @return the percentComplete value.
+ */
+ public Float percentComplete() {
+ return this.percentComplete;
+ }
+
+ /**
+ * Get the properties property: Custom operation properties, populated only for a successful operation.
+ *
+ * @return the properties value.
+ */
+ public Object properties() {
+ return this.properties;
+ }
+
+ /**
+ * Get the error property: Operation Error message.
+ *
+ * @return the error value.
+ */
+ public OperationStatusError error() {
+ return this.error;
+ }
+
+ /**
+ * Set the error property: Operation Error message.
+ *
+ * @param error the error value to set.
+ * @return the OperationStatusInner object itself.
+ */
+ public OperationStatusInner withError(OperationStatusError error) {
+ this.error = error;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (error() != null) {
+ error().validate();
+ }
+ }
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/PoolInner.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/PoolInner.java
new file mode 100644
index 000000000000..1e704d2a2892
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/PoolInner.java
@@ -0,0 +1,178 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.core.management.SystemData;
+import com.azure.resourcemanager.devcenter.models.LicenseType;
+import com.azure.resourcemanager.devcenter.models.LocalAdminStatus;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** A pool of Virtual Machines. */
+@Fluent
+public final class PoolInner extends Resource {
+ /*
+ * Pool properties
+ */
+ @JsonProperty(value = "properties")
+ private PoolProperties innerProperties;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy
+ * information.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /**
+ * Get the innerProperties property: Pool properties.
+ *
+ * @return the innerProperties value.
+ */
+ private PoolProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public PoolInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public PoolInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the provisioningState property: The provisioning state of the resource.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Get the devBoxDefinitionName property: Name of a Dev Box definition in parent Project of this Pool.
+ *
+ * @return the devBoxDefinitionName value.
+ */
+ public String devBoxDefinitionName() {
+ return this.innerProperties() == null ? null : this.innerProperties().devBoxDefinitionName();
+ }
+
+ /**
+ * Set the devBoxDefinitionName property: Name of a Dev Box definition in parent Project of this Pool.
+ *
+ * @param devBoxDefinitionName the devBoxDefinitionName value to set.
+ * @return the PoolInner object itself.
+ */
+ public PoolInner withDevBoxDefinitionName(String devBoxDefinitionName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new PoolProperties();
+ }
+ this.innerProperties().withDevBoxDefinitionName(devBoxDefinitionName);
+ return this;
+ }
+
+ /**
+ * Get the networkConnectionName property: Name of a Network Connection in parent Project of this Pool.
+ *
+ * @return the networkConnectionName value.
+ */
+ public String networkConnectionName() {
+ return this.innerProperties() == null ? null : this.innerProperties().networkConnectionName();
+ }
+
+ /**
+ * Set the networkConnectionName property: Name of a Network Connection in parent Project of this Pool.
+ *
+ * @param networkConnectionName the networkConnectionName value to set.
+ * @return the PoolInner object itself.
+ */
+ public PoolInner withNetworkConnectionName(String networkConnectionName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new PoolProperties();
+ }
+ this.innerProperties().withNetworkConnectionName(networkConnectionName);
+ return this;
+ }
+
+ /**
+ * Get the licenseType property: Specifies the license type indicating the caller has already acquired licenses for
+ * the Dev Boxes that will be created.
+ *
+ * @return the licenseType value.
+ */
+ public LicenseType licenseType() {
+ return this.innerProperties() == null ? null : this.innerProperties().licenseType();
+ }
+
+ /**
+ * Set the licenseType property: Specifies the license type indicating the caller has already acquired licenses for
+ * the Dev Boxes that will be created.
+ *
+ * @param licenseType the licenseType value to set.
+ * @return the PoolInner object itself.
+ */
+ public PoolInner withLicenseType(LicenseType licenseType) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new PoolProperties();
+ }
+ this.innerProperties().withLicenseType(licenseType);
+ return this;
+ }
+
+ /**
+ * Get the localAdministrator property: Indicates whether owners of Dev Boxes in this pool are added as local
+ * administrators on the Dev Box.
+ *
+ * @return the localAdministrator value.
+ */
+ public LocalAdminStatus localAdministrator() {
+ return this.innerProperties() == null ? null : this.innerProperties().localAdministrator();
+ }
+
+ /**
+ * Set the localAdministrator property: Indicates whether owners of Dev Boxes in this pool are added as local
+ * administrators on the Dev Box.
+ *
+ * @param localAdministrator the localAdministrator value to set.
+ * @return the PoolInner object itself.
+ */
+ public PoolInner withLocalAdministrator(LocalAdminStatus localAdministrator) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new PoolProperties();
+ }
+ this.innerProperties().withLocalAdministrator(localAdministrator);
+ 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/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/PoolProperties.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/PoolProperties.java
new file mode 100644
index 000000000000..f15ed39dbd62
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/PoolProperties.java
@@ -0,0 +1,67 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.devcenter.models.LicenseType;
+import com.azure.resourcemanager.devcenter.models.LocalAdminStatus;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Properties of a Pool. */
+@Fluent
+public final class PoolProperties extends PoolUpdateProperties {
+ /*
+ * The provisioning state of the resource.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /**
+ * Get the provisioningState property: The provisioning state of the resource.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public PoolProperties withDevBoxDefinitionName(String devBoxDefinitionName) {
+ super.withDevBoxDefinitionName(devBoxDefinitionName);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public PoolProperties withNetworkConnectionName(String networkConnectionName) {
+ super.withNetworkConnectionName(networkConnectionName);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public PoolProperties withLicenseType(LicenseType licenseType) {
+ super.withLicenseType(licenseType);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public PoolProperties withLocalAdministrator(LocalAdminStatus localAdministrator) {
+ super.withLocalAdministrator(localAdministrator);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ @Override
+ public void validate() {
+ super.validate();
+ }
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/PoolUpdateProperties.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/PoolUpdateProperties.java
new file mode 100644
index 000000000000..5d4ec86f85a5
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/PoolUpdateProperties.java
@@ -0,0 +1,132 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.devcenter.models.LicenseType;
+import com.azure.resourcemanager.devcenter.models.LocalAdminStatus;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Properties of a Pool. These properties can be updated after the resource has been created. */
+@Fluent
+public class PoolUpdateProperties {
+ /*
+ * Name of a Dev Box definition in parent Project of this Pool
+ */
+ @JsonProperty(value = "devBoxDefinitionName")
+ private String devBoxDefinitionName;
+
+ /*
+ * Name of a Network Connection in parent Project of this Pool
+ */
+ @JsonProperty(value = "networkConnectionName")
+ private String networkConnectionName;
+
+ /*
+ * Specifies the license type indicating the caller has already acquired
+ * licenses for the Dev Boxes that will be created.
+ */
+ @JsonProperty(value = "licenseType")
+ private LicenseType licenseType;
+
+ /*
+ * Indicates whether owners of Dev Boxes in this pool are added as local
+ * administrators on the Dev Box.
+ */
+ @JsonProperty(value = "localAdministrator")
+ private LocalAdminStatus localAdministrator;
+
+ /**
+ * Get the devBoxDefinitionName property: Name of a Dev Box definition in parent Project of this Pool.
+ *
+ * @return the devBoxDefinitionName value.
+ */
+ public String devBoxDefinitionName() {
+ return this.devBoxDefinitionName;
+ }
+
+ /**
+ * Set the devBoxDefinitionName property: Name of a Dev Box definition in parent Project of this Pool.
+ *
+ * @param devBoxDefinitionName the devBoxDefinitionName value to set.
+ * @return the PoolUpdateProperties object itself.
+ */
+ public PoolUpdateProperties withDevBoxDefinitionName(String devBoxDefinitionName) {
+ this.devBoxDefinitionName = devBoxDefinitionName;
+ return this;
+ }
+
+ /**
+ * Get the networkConnectionName property: Name of a Network Connection in parent Project of this Pool.
+ *
+ * @return the networkConnectionName value.
+ */
+ public String networkConnectionName() {
+ return this.networkConnectionName;
+ }
+
+ /**
+ * Set the networkConnectionName property: Name of a Network Connection in parent Project of this Pool.
+ *
+ * @param networkConnectionName the networkConnectionName value to set.
+ * @return the PoolUpdateProperties object itself.
+ */
+ public PoolUpdateProperties withNetworkConnectionName(String networkConnectionName) {
+ this.networkConnectionName = networkConnectionName;
+ return this;
+ }
+
+ /**
+ * Get the licenseType property: Specifies the license type indicating the caller has already acquired licenses for
+ * the Dev Boxes that will be created.
+ *
+ * @return the licenseType value.
+ */
+ public LicenseType licenseType() {
+ return this.licenseType;
+ }
+
+ /**
+ * Set the licenseType property: Specifies the license type indicating the caller has already acquired licenses for
+ * the Dev Boxes that will be created.
+ *
+ * @param licenseType the licenseType value to set.
+ * @return the PoolUpdateProperties object itself.
+ */
+ public PoolUpdateProperties withLicenseType(LicenseType licenseType) {
+ this.licenseType = licenseType;
+ return this;
+ }
+
+ /**
+ * Get the localAdministrator property: Indicates whether owners of Dev Boxes in this pool are added as local
+ * administrators on the Dev Box.
+ *
+ * @return the localAdministrator value.
+ */
+ public LocalAdminStatus localAdministrator() {
+ return this.localAdministrator;
+ }
+
+ /**
+ * Set the localAdministrator property: Indicates whether owners of Dev Boxes in this pool are added as local
+ * administrators on the Dev Box.
+ *
+ * @param localAdministrator the localAdministrator value to set.
+ * @return the PoolUpdateProperties object itself.
+ */
+ public PoolUpdateProperties withLocalAdministrator(LocalAdminStatus localAdministrator) {
+ this.localAdministrator = localAdministrator;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/ProjectEnvironmentTypeInner.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/ProjectEnvironmentTypeInner.java
new file mode 100644
index 000000000000..c3781d26bf5e
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/ProjectEnvironmentTypeInner.java
@@ -0,0 +1,253 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.resourcemanager.devcenter.models.EnableStatus;
+import com.azure.resourcemanager.devcenter.models.ManagedServiceIdentity;
+import com.azure.resourcemanager.devcenter.models.ProjectEnvironmentTypeUpdatePropertiesCreatorRoleAssignment;
+import com.azure.resourcemanager.devcenter.models.UserRoleAssignmentValue;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** Represents an environment type. */
+@Fluent
+public final class ProjectEnvironmentTypeInner extends ProxyResource {
+ /*
+ * Properties of an environment type.
+ */
+ @JsonProperty(value = "properties")
+ private ProjectEnvironmentTypeProperties innerProperties;
+
+ /*
+ * Resource tags.
+ */
+ @JsonProperty(value = "tags")
+ @JsonInclude(value = JsonInclude.Include.NON_NULL, content = JsonInclude.Include.ALWAYS)
+ private Map tags;
+
+ /*
+ * Managed identity properties
+ */
+ @JsonProperty(value = "identity")
+ private ManagedServiceIdentity identity;
+
+ /*
+ * The geo-location for the environment type
+ */
+ @JsonProperty(value = "location")
+ private String location;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy
+ * information.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /**
+ * Get the innerProperties property: Properties of an environment type.
+ *
+ * @return the innerProperties value.
+ */
+ private ProjectEnvironmentTypeProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the tags property: Resource tags.
+ *
+ * @return the tags value.
+ */
+ public Map tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set the tags property: Resource tags.
+ *
+ * @param tags the tags value to set.
+ * @return the ProjectEnvironmentTypeInner object itself.
+ */
+ public ProjectEnvironmentTypeInner withTags(Map tags) {
+ this.tags = tags;
+ return this;
+ }
+
+ /**
+ * Get the identity property: Managed identity properties.
+ *
+ * @return the identity value.
+ */
+ public ManagedServiceIdentity identity() {
+ return this.identity;
+ }
+
+ /**
+ * Set the identity property: Managed identity properties.
+ *
+ * @param identity the identity value to set.
+ * @return the ProjectEnvironmentTypeInner object itself.
+ */
+ public ProjectEnvironmentTypeInner withIdentity(ManagedServiceIdentity identity) {
+ this.identity = identity;
+ return this;
+ }
+
+ /**
+ * Get the location property: The geo-location for the environment type.
+ *
+ * @return the location value.
+ */
+ public String location() {
+ return this.location;
+ }
+
+ /**
+ * Set the location property: The geo-location for the environment type.
+ *
+ * @param location the location value to set.
+ * @return the ProjectEnvironmentTypeInner object itself.
+ */
+ public ProjectEnvironmentTypeInner withLocation(String location) {
+ this.location = location;
+ return this;
+ }
+
+ /**
+ * Get the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the provisioningState property: The provisioning state of the resource.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Get the deploymentTargetId property: Id of a subscription that the environment type will be mapped to. The
+ * environment's resources will be deployed into this subscription.
+ *
+ * @return the deploymentTargetId value.
+ */
+ public String deploymentTargetId() {
+ return this.innerProperties() == null ? null : this.innerProperties().deploymentTargetId();
+ }
+
+ /**
+ * Set the deploymentTargetId property: Id of a subscription that the environment type will be mapped to. The
+ * environment's resources will be deployed into this subscription.
+ *
+ * @param deploymentTargetId the deploymentTargetId value to set.
+ * @return the ProjectEnvironmentTypeInner object itself.
+ */
+ public ProjectEnvironmentTypeInner withDeploymentTargetId(String deploymentTargetId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ProjectEnvironmentTypeProperties();
+ }
+ this.innerProperties().withDeploymentTargetId(deploymentTargetId);
+ return this;
+ }
+
+ /**
+ * Get the status property: Defines whether this Environment Type can be used in this Project.
+ *
+ * @return the status value.
+ */
+ public EnableStatus status() {
+ return this.innerProperties() == null ? null : this.innerProperties().status();
+ }
+
+ /**
+ * Set the status property: Defines whether this Environment Type can be used in this Project.
+ *
+ * @param status the status value to set.
+ * @return the ProjectEnvironmentTypeInner object itself.
+ */
+ public ProjectEnvironmentTypeInner withStatus(EnableStatus status) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ProjectEnvironmentTypeProperties();
+ }
+ this.innerProperties().withStatus(status);
+ return this;
+ }
+
+ /**
+ * Get the creatorRoleAssignment property: The role definition assigned to the environment creator on backing
+ * resources.
+ *
+ * @return the creatorRoleAssignment value.
+ */
+ public ProjectEnvironmentTypeUpdatePropertiesCreatorRoleAssignment creatorRoleAssignment() {
+ return this.innerProperties() == null ? null : this.innerProperties().creatorRoleAssignment();
+ }
+
+ /**
+ * Set the creatorRoleAssignment property: The role definition assigned to the environment creator on backing
+ * resources.
+ *
+ * @param creatorRoleAssignment the creatorRoleAssignment value to set.
+ * @return the ProjectEnvironmentTypeInner object itself.
+ */
+ public ProjectEnvironmentTypeInner withCreatorRoleAssignment(
+ ProjectEnvironmentTypeUpdatePropertiesCreatorRoleAssignment creatorRoleAssignment) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ProjectEnvironmentTypeProperties();
+ }
+ this.innerProperties().withCreatorRoleAssignment(creatorRoleAssignment);
+ return this;
+ }
+
+ /**
+ * Get the userRoleAssignments property: Role Assignments created on environment backing resources. This is a
+ * mapping from a user object ID to an object of role definition IDs.
+ *
+ * @return the userRoleAssignments value.
+ */
+ public Map userRoleAssignments() {
+ return this.innerProperties() == null ? null : this.innerProperties().userRoleAssignments();
+ }
+
+ /**
+ * Set the userRoleAssignments property: Role Assignments created on environment backing resources. This is a
+ * mapping from a user object ID to an object of role definition IDs.
+ *
+ * @param userRoleAssignments the userRoleAssignments value to set.
+ * @return the ProjectEnvironmentTypeInner object itself.
+ */
+ public ProjectEnvironmentTypeInner withUserRoleAssignments(
+ Map userRoleAssignments) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ProjectEnvironmentTypeProperties();
+ }
+ this.innerProperties().withUserRoleAssignments(userRoleAssignments);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ if (identity() != null) {
+ identity().validate();
+ }
+ }
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/ProjectEnvironmentTypeProperties.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/ProjectEnvironmentTypeProperties.java
new file mode 100644
index 000000000000..cb3db74f3fae
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/ProjectEnvironmentTypeProperties.java
@@ -0,0 +1,71 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.devcenter.models.EnableStatus;
+import com.azure.resourcemanager.devcenter.models.ProjectEnvironmentTypeUpdatePropertiesCreatorRoleAssignment;
+import com.azure.resourcemanager.devcenter.models.UserRoleAssignmentValue;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** Properties of a project environment type. */
+@Fluent
+public final class ProjectEnvironmentTypeProperties extends ProjectEnvironmentTypeUpdateProperties {
+ /*
+ * The provisioning state of the resource.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /**
+ * Get the provisioningState property: The provisioning state of the resource.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ProjectEnvironmentTypeProperties withDeploymentTargetId(String deploymentTargetId) {
+ super.withDeploymentTargetId(deploymentTargetId);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ProjectEnvironmentTypeProperties withStatus(EnableStatus status) {
+ super.withStatus(status);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ProjectEnvironmentTypeProperties withCreatorRoleAssignment(
+ ProjectEnvironmentTypeUpdatePropertiesCreatorRoleAssignment creatorRoleAssignment) {
+ super.withCreatorRoleAssignment(creatorRoleAssignment);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ProjectEnvironmentTypeProperties withUserRoleAssignments(
+ Map userRoleAssignments) {
+ super.withUserRoleAssignments(userRoleAssignments);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ @Override
+ public void validate() {
+ super.validate();
+ }
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/ProjectEnvironmentTypeUpdateProperties.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/ProjectEnvironmentTypeUpdateProperties.java
new file mode 100644
index 000000000000..fd7a7b6659e3
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/ProjectEnvironmentTypeUpdateProperties.java
@@ -0,0 +1,154 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.devcenter.models.EnableStatus;
+import com.azure.resourcemanager.devcenter.models.ProjectEnvironmentTypeUpdatePropertiesCreatorRoleAssignment;
+import com.azure.resourcemanager.devcenter.models.UserRoleAssignmentValue;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** Properties of a project environment type. These properties can be updated after the resource has been created. */
+@Fluent
+public class ProjectEnvironmentTypeUpdateProperties {
+ /*
+ * Id of a subscription that the environment type will be mapped to. The
+ * environment's resources will be deployed into this subscription.
+ */
+ @JsonProperty(value = "deploymentTargetId")
+ private String deploymentTargetId;
+
+ /*
+ * Defines whether this Environment Type can be used in this Project.
+ */
+ @JsonProperty(value = "status")
+ private EnableStatus status;
+
+ /*
+ * The role definition assigned to the environment creator on backing
+ * resources.
+ */
+ @JsonProperty(value = "creatorRoleAssignment")
+ private ProjectEnvironmentTypeUpdatePropertiesCreatorRoleAssignment creatorRoleAssignment;
+
+ /*
+ * Role Assignments created on environment backing resources. This is a
+ * mapping from a user object ID to an object of role definition IDs.
+ */
+ @JsonProperty(value = "userRoleAssignments")
+ @JsonInclude(value = JsonInclude.Include.NON_NULL, content = JsonInclude.Include.ALWAYS)
+ private Map userRoleAssignments;
+
+ /**
+ * Get the deploymentTargetId property: Id of a subscription that the environment type will be mapped to. The
+ * environment's resources will be deployed into this subscription.
+ *
+ * @return the deploymentTargetId value.
+ */
+ public String deploymentTargetId() {
+ return this.deploymentTargetId;
+ }
+
+ /**
+ * Set the deploymentTargetId property: Id of a subscription that the environment type will be mapped to. The
+ * environment's resources will be deployed into this subscription.
+ *
+ * @param deploymentTargetId the deploymentTargetId value to set.
+ * @return the ProjectEnvironmentTypeUpdateProperties object itself.
+ */
+ public ProjectEnvironmentTypeUpdateProperties withDeploymentTargetId(String deploymentTargetId) {
+ this.deploymentTargetId = deploymentTargetId;
+ return this;
+ }
+
+ /**
+ * Get the status property: Defines whether this Environment Type can be used in this Project.
+ *
+ * @return the status value.
+ */
+ public EnableStatus status() {
+ return this.status;
+ }
+
+ /**
+ * Set the status property: Defines whether this Environment Type can be used in this Project.
+ *
+ * @param status the status value to set.
+ * @return the ProjectEnvironmentTypeUpdateProperties object itself.
+ */
+ public ProjectEnvironmentTypeUpdateProperties withStatus(EnableStatus status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get the creatorRoleAssignment property: The role definition assigned to the environment creator on backing
+ * resources.
+ *
+ * @return the creatorRoleAssignment value.
+ */
+ public ProjectEnvironmentTypeUpdatePropertiesCreatorRoleAssignment creatorRoleAssignment() {
+ return this.creatorRoleAssignment;
+ }
+
+ /**
+ * Set the creatorRoleAssignment property: The role definition assigned to the environment creator on backing
+ * resources.
+ *
+ * @param creatorRoleAssignment the creatorRoleAssignment value to set.
+ * @return the ProjectEnvironmentTypeUpdateProperties object itself.
+ */
+ public ProjectEnvironmentTypeUpdateProperties withCreatorRoleAssignment(
+ ProjectEnvironmentTypeUpdatePropertiesCreatorRoleAssignment creatorRoleAssignment) {
+ this.creatorRoleAssignment = creatorRoleAssignment;
+ return this;
+ }
+
+ /**
+ * Get the userRoleAssignments property: Role Assignments created on environment backing resources. This is a
+ * mapping from a user object ID to an object of role definition IDs.
+ *
+ * @return the userRoleAssignments value.
+ */
+ public Map userRoleAssignments() {
+ return this.userRoleAssignments;
+ }
+
+ /**
+ * Set the userRoleAssignments property: Role Assignments created on environment backing resources. This is a
+ * mapping from a user object ID to an object of role definition IDs.
+ *
+ * @param userRoleAssignments the userRoleAssignments value to set.
+ * @return the ProjectEnvironmentTypeUpdateProperties object itself.
+ */
+ public ProjectEnvironmentTypeUpdateProperties withUserRoleAssignments(
+ Map userRoleAssignments) {
+ this.userRoleAssignments = userRoleAssignments;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (creatorRoleAssignment() != null) {
+ creatorRoleAssignment().validate();
+ }
+ if (userRoleAssignments() != null) {
+ userRoleAssignments()
+ .values()
+ .forEach(
+ e -> {
+ if (e != null) {
+ e.validate();
+ }
+ });
+ }
+ }
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/ProjectInner.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/ProjectInner.java
new file mode 100644
index 000000000000..327041d6e1ad
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/ProjectInner.java
@@ -0,0 +1,126 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.core.management.SystemData;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** Represents a project resource. */
+@Fluent
+public final class ProjectInner extends Resource {
+ /*
+ * Properties of a project.
+ */
+ @JsonProperty(value = "properties")
+ private ProjectProperties innerProperties;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy
+ * information.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /**
+ * Get the innerProperties property: Properties of a project.
+ *
+ * @return the innerProperties value.
+ */
+ private ProjectProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ProjectInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ProjectInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the provisioningState property: The provisioning state of the resource.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Get the devCenterId property: Resource Id of an associated DevCenter.
+ *
+ * @return the devCenterId value.
+ */
+ public String devCenterId() {
+ return this.innerProperties() == null ? null : this.innerProperties().devCenterId();
+ }
+
+ /**
+ * Set the devCenterId property: Resource Id of an associated DevCenter.
+ *
+ * @param devCenterId the devCenterId value to set.
+ * @return the ProjectInner object itself.
+ */
+ public ProjectInner withDevCenterId(String devCenterId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ProjectProperties();
+ }
+ this.innerProperties().withDevCenterId(devCenterId);
+ return this;
+ }
+
+ /**
+ * Get the description property: Description of the project.
+ *
+ * @return the description value.
+ */
+ public String description() {
+ return this.innerProperties() == null ? null : this.innerProperties().description();
+ }
+
+ /**
+ * Set the description property: Description of the project.
+ *
+ * @param description the description value to set.
+ * @return the ProjectInner object itself.
+ */
+ public ProjectInner withDescription(String description) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ProjectProperties();
+ }
+ this.innerProperties().withDescription(description);
+ 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/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/ProjectProperties.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/ProjectProperties.java
new file mode 100644
index 000000000000..e2d29fef1daa
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/ProjectProperties.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.devcenter.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Properties of a project. */
+@Fluent
+public final class ProjectProperties extends ProjectUpdateProperties {
+ /*
+ * The provisioning state of the resource.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /**
+ * Get the provisioningState property: The provisioning state of the resource.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ProjectProperties withDevCenterId(String devCenterId) {
+ super.withDevCenterId(devCenterId);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ProjectProperties withDescription(String description) {
+ super.withDescription(description);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ @Override
+ public void validate() {
+ super.validate();
+ }
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/ProjectUpdateProperties.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/ProjectUpdateProperties.java
new file mode 100644
index 000000000000..1b3ca765c95d
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/ProjectUpdateProperties.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.devcenter.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Properties of a project. These properties can be updated after the resource has been created. */
+@Fluent
+public class ProjectUpdateProperties {
+ /*
+ * Resource Id of an associated DevCenter
+ */
+ @JsonProperty(value = "devCenterId")
+ private String devCenterId;
+
+ /*
+ * Description of the project.
+ */
+ @JsonProperty(value = "description")
+ private String description;
+
+ /**
+ * Get the devCenterId property: Resource Id of an associated DevCenter.
+ *
+ * @return the devCenterId value.
+ */
+ public String devCenterId() {
+ return this.devCenterId;
+ }
+
+ /**
+ * Set the devCenterId property: Resource Id of an associated DevCenter.
+ *
+ * @param devCenterId the devCenterId value to set.
+ * @return the ProjectUpdateProperties object itself.
+ */
+ public ProjectUpdateProperties withDevCenterId(String devCenterId) {
+ this.devCenterId = devCenterId;
+ return this;
+ }
+
+ /**
+ * Get the description property: Description of the project.
+ *
+ * @return the description value.
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set the description property: Description of the project.
+ *
+ * @param description the description value to set.
+ * @return the ProjectUpdateProperties object itself.
+ */
+ public ProjectUpdateProperties withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/ScheduleInner.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/ScheduleInner.java
new file mode 100644
index 000000000000..7cfee9241175
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/ScheduleInner.java
@@ -0,0 +1,183 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.resourcemanager.devcenter.models.EnableStatus;
+import com.azure.resourcemanager.devcenter.models.ScheduledFrequency;
+import com.azure.resourcemanager.devcenter.models.ScheduledType;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Represents a Schedule to execute a task. */
+@Fluent
+public final class ScheduleInner extends ProxyResource {
+ /*
+ * Properties of a Schedule resource
+ */
+ @JsonProperty(value = "properties")
+ private ScheduleProperties innerProperties;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy
+ * information.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /**
+ * Get the innerProperties property: Properties of a Schedule resource.
+ *
+ * @return the innerProperties value.
+ */
+ private ScheduleProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the provisioningState property: The provisioning state of the resource.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Get the type property: Supported type this scheduled task represents.
+ *
+ * @return the type value.
+ */
+ public ScheduledType typePropertiesType() {
+ return this.innerProperties() == null ? null : this.innerProperties().type();
+ }
+
+ /**
+ * Set the type property: Supported type this scheduled task represents.
+ *
+ * @param type the type value to set.
+ * @return the ScheduleInner object itself.
+ */
+ public ScheduleInner withTypePropertiesType(ScheduledType type) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ScheduleProperties();
+ }
+ this.innerProperties().withType(type);
+ return this;
+ }
+
+ /**
+ * Get the frequency property: The frequency of this scheduled task.
+ *
+ * @return the frequency value.
+ */
+ public ScheduledFrequency frequency() {
+ return this.innerProperties() == null ? null : this.innerProperties().frequency();
+ }
+
+ /**
+ * Set the frequency property: The frequency of this scheduled task.
+ *
+ * @param frequency the frequency value to set.
+ * @return the ScheduleInner object itself.
+ */
+ public ScheduleInner withFrequency(ScheduledFrequency frequency) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ScheduleProperties();
+ }
+ this.innerProperties().withFrequency(frequency);
+ return this;
+ }
+
+ /**
+ * Get the time property: The target time to trigger the action. The format is HH:MM.
+ *
+ * @return the time value.
+ */
+ public String time() {
+ return this.innerProperties() == null ? null : this.innerProperties().time();
+ }
+
+ /**
+ * Set the time property: The target time to trigger the action. The format is HH:MM.
+ *
+ * @param time the time value to set.
+ * @return the ScheduleInner object itself.
+ */
+ public ScheduleInner withTime(String time) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ScheduleProperties();
+ }
+ this.innerProperties().withTime(time);
+ return this;
+ }
+
+ /**
+ * Get the timeZone property: The IANA timezone id at which the schedule should execute.
+ *
+ * @return the timeZone value.
+ */
+ public String timeZone() {
+ return this.innerProperties() == null ? null : this.innerProperties().timeZone();
+ }
+
+ /**
+ * Set the timeZone property: The IANA timezone id at which the schedule should execute.
+ *
+ * @param timeZone the timeZone value to set.
+ * @return the ScheduleInner object itself.
+ */
+ public ScheduleInner withTimeZone(String timeZone) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ScheduleProperties();
+ }
+ this.innerProperties().withTimeZone(timeZone);
+ return this;
+ }
+
+ /**
+ * Get the state property: Indicates whether or not this scheduled task is enabled.
+ *
+ * @return the state value.
+ */
+ public EnableStatus state() {
+ return this.innerProperties() == null ? null : this.innerProperties().state();
+ }
+
+ /**
+ * Set the state property: Indicates whether or not this scheduled task is enabled.
+ *
+ * @param state the state value to set.
+ * @return the ScheduleInner object itself.
+ */
+ public ScheduleInner withState(EnableStatus state) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ScheduleProperties();
+ }
+ this.innerProperties().withState(state);
+ 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/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/ScheduleProperties.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/ScheduleProperties.java
new file mode 100644
index 000000000000..5dbd201a9b27
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/ScheduleProperties.java
@@ -0,0 +1,75 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.devcenter.models.EnableStatus;
+import com.azure.resourcemanager.devcenter.models.ScheduledFrequency;
+import com.azure.resourcemanager.devcenter.models.ScheduledType;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The Schedule properties defining when and what to execute. */
+@Fluent
+public final class ScheduleProperties extends ScheduleUpdateProperties {
+ /*
+ * The provisioning state of the resource.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /**
+ * Get the provisioningState property: The provisioning state of the resource.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ScheduleProperties withType(ScheduledType type) {
+ super.withType(type);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ScheduleProperties withFrequency(ScheduledFrequency frequency) {
+ super.withFrequency(frequency);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ScheduleProperties withTime(String time) {
+ super.withTime(time);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ScheduleProperties withTimeZone(String timeZone) {
+ super.withTimeZone(timeZone);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ScheduleProperties withState(EnableStatus state) {
+ super.withState(state);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ @Override
+ public void validate() {
+ super.validate();
+ }
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/ScheduleUpdateProperties.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/ScheduleUpdateProperties.java
new file mode 100644
index 000000000000..856269edf5cf
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/ScheduleUpdateProperties.java
@@ -0,0 +1,153 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.devcenter.models.EnableStatus;
+import com.azure.resourcemanager.devcenter.models.ScheduledFrequency;
+import com.azure.resourcemanager.devcenter.models.ScheduledType;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Updatable properties of a Schedule. */
+@Fluent
+public class ScheduleUpdateProperties {
+ /*
+ * Supported type this scheduled task represents.
+ */
+ @JsonProperty(value = "type")
+ private ScheduledType type;
+
+ /*
+ * The frequency of this scheduled task.
+ */
+ @JsonProperty(value = "frequency")
+ private ScheduledFrequency frequency;
+
+ /*
+ * The target time to trigger the action. The format is HH:MM.
+ */
+ @JsonProperty(value = "time")
+ private String time;
+
+ /*
+ * The IANA timezone id at which the schedule should execute.
+ */
+ @JsonProperty(value = "timeZone")
+ private String timeZone;
+
+ /*
+ * Indicates whether or not this scheduled task is enabled.
+ */
+ @JsonProperty(value = "state")
+ private EnableStatus state;
+
+ /**
+ * Get the type property: Supported type this scheduled task represents.
+ *
+ * @return the type value.
+ */
+ public ScheduledType type() {
+ return this.type;
+ }
+
+ /**
+ * Set the type property: Supported type this scheduled task represents.
+ *
+ * @param type the type value to set.
+ * @return the ScheduleUpdateProperties object itself.
+ */
+ public ScheduleUpdateProperties withType(ScheduledType type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get the frequency property: The frequency of this scheduled task.
+ *
+ * @return the frequency value.
+ */
+ public ScheduledFrequency frequency() {
+ return this.frequency;
+ }
+
+ /**
+ * Set the frequency property: The frequency of this scheduled task.
+ *
+ * @param frequency the frequency value to set.
+ * @return the ScheduleUpdateProperties object itself.
+ */
+ public ScheduleUpdateProperties withFrequency(ScheduledFrequency frequency) {
+ this.frequency = frequency;
+ return this;
+ }
+
+ /**
+ * Get the time property: The target time to trigger the action. The format is HH:MM.
+ *
+ * @return the time value.
+ */
+ public String time() {
+ return this.time;
+ }
+
+ /**
+ * Set the time property: The target time to trigger the action. The format is HH:MM.
+ *
+ * @param time the time value to set.
+ * @return the ScheduleUpdateProperties object itself.
+ */
+ public ScheduleUpdateProperties withTime(String time) {
+ this.time = time;
+ return this;
+ }
+
+ /**
+ * Get the timeZone property: The IANA timezone id at which the schedule should execute.
+ *
+ * @return the timeZone value.
+ */
+ public String timeZone() {
+ return this.timeZone;
+ }
+
+ /**
+ * Set the timeZone property: The IANA timezone id at which the schedule should execute.
+ *
+ * @param timeZone the timeZone value to set.
+ * @return the ScheduleUpdateProperties object itself.
+ */
+ public ScheduleUpdateProperties withTimeZone(String timeZone) {
+ this.timeZone = timeZone;
+ return this;
+ }
+
+ /**
+ * Get the state property: Indicates whether or not this scheduled task is enabled.
+ *
+ * @return the state value.
+ */
+ public EnableStatus state() {
+ return this.state;
+ }
+
+ /**
+ * Set the state property: Indicates whether or not this scheduled task is enabled.
+ *
+ * @param state the state value to set.
+ * @return the ScheduleUpdateProperties object itself.
+ */
+ public ScheduleUpdateProperties withState(EnableStatus state) {
+ this.state = state;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/UsageInner.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/UsageInner.java
new file mode 100644
index 000000000000..281bb39c611d
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/UsageInner.java
@@ -0,0 +1,129 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.devcenter.models.UsageName;
+import com.azure.resourcemanager.devcenter.models.UsageUnit;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The core usage details. */
+@Fluent
+public final class UsageInner {
+ /*
+ * The current usage.
+ */
+ @JsonProperty(value = "currentValue")
+ private Long currentValue;
+
+ /*
+ * The limit integer.
+ */
+ @JsonProperty(value = "limit")
+ private Long limit;
+
+ /*
+ * The unit details.
+ */
+ @JsonProperty(value = "unit")
+ private UsageUnit unit;
+
+ /*
+ * The name.
+ */
+ @JsonProperty(value = "name")
+ private UsageName name;
+
+ /**
+ * Get the currentValue property: The current usage.
+ *
+ * @return the currentValue value.
+ */
+ public Long currentValue() {
+ return this.currentValue;
+ }
+
+ /**
+ * Set the currentValue property: The current usage.
+ *
+ * @param currentValue the currentValue value to set.
+ * @return the UsageInner object itself.
+ */
+ public UsageInner withCurrentValue(Long currentValue) {
+ this.currentValue = currentValue;
+ return this;
+ }
+
+ /**
+ * Get the limit property: The limit integer.
+ *
+ * @return the limit value.
+ */
+ public Long limit() {
+ return this.limit;
+ }
+
+ /**
+ * Set the limit property: The limit integer.
+ *
+ * @param limit the limit value to set.
+ * @return the UsageInner object itself.
+ */
+ public UsageInner withLimit(Long limit) {
+ this.limit = limit;
+ return this;
+ }
+
+ /**
+ * Get the unit property: The unit details.
+ *
+ * @return the unit value.
+ */
+ public UsageUnit unit() {
+ return this.unit;
+ }
+
+ /**
+ * Set the unit property: The unit details.
+ *
+ * @param unit the unit value to set.
+ * @return the UsageInner object itself.
+ */
+ public UsageInner withUnit(UsageUnit unit) {
+ this.unit = unit;
+ return this;
+ }
+
+ /**
+ * Get the name property: The name.
+ *
+ * @return the name value.
+ */
+ public UsageName name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name property: The name.
+ *
+ * @param name the name value to set.
+ * @return the UsageInner object itself.
+ */
+ public UsageInner withName(UsageName name) {
+ this.name = name;
+ 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/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/package-info.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/models/package-info.java
new file mode 100644
index 000000000000..4e629ec79ef3
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/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 DevCenterClient. DevCenter Management API. */
+package com.azure.resourcemanager.devcenter.fluent.models;
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/package-info.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/fluent/package-info.java
new file mode 100644
index 000000000000..ddcd96295f43
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/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 DevCenterClient. DevCenter Management API. */
+package com.azure.resourcemanager.devcenter.fluent;
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/implementation/AttachedNetworkConnectionImpl.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/implementation/AttachedNetworkConnectionImpl.java
new file mode 100644
index 000000000000..6eeb159522c2
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/implementation/AttachedNetworkConnectionImpl.java
@@ -0,0 +1,165 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.implementation;
+
+import com.azure.core.management.SystemData;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.devcenter.fluent.models.AttachedNetworkConnectionInner;
+import com.azure.resourcemanager.devcenter.models.AttachedNetworkConnection;
+import com.azure.resourcemanager.devcenter.models.DomainJoinType;
+import com.azure.resourcemanager.devcenter.models.HealthCheckStatus;
+
+public final class AttachedNetworkConnectionImpl
+ implements AttachedNetworkConnection, AttachedNetworkConnection.Definition, AttachedNetworkConnection.Update {
+ private AttachedNetworkConnectionInner innerObject;
+
+ private final com.azure.resourcemanager.devcenter.DevCenterManager 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 provisioningState() {
+ return this.innerModel().provisioningState();
+ }
+
+ public String networkConnectionId() {
+ return this.innerModel().networkConnectionId();
+ }
+
+ public String networkConnectionLocation() {
+ return this.innerModel().networkConnectionLocation();
+ }
+
+ public HealthCheckStatus healthCheckStatus() {
+ return this.innerModel().healthCheckStatus();
+ }
+
+ public DomainJoinType domainJoinType() {
+ return this.innerModel().domainJoinType();
+ }
+
+ public String resourceGroupName() {
+ return resourceGroupName;
+ }
+
+ public AttachedNetworkConnectionInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.devcenter.DevCenterManager manager() {
+ return this.serviceManager;
+ }
+
+ private String resourceGroupName;
+
+ private String devCenterName;
+
+ private String attachedNetworkConnectionName;
+
+ public AttachedNetworkConnectionImpl withExistingDevcenter(String resourceGroupName, String devCenterName) {
+ this.resourceGroupName = resourceGroupName;
+ this.devCenterName = devCenterName;
+ return this;
+ }
+
+ public AttachedNetworkConnection create() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getAttachedNetworks()
+ .createOrUpdate(
+ resourceGroupName, devCenterName, attachedNetworkConnectionName, this.innerModel(), Context.NONE);
+ return this;
+ }
+
+ public AttachedNetworkConnection create(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getAttachedNetworks()
+ .createOrUpdate(
+ resourceGroupName, devCenterName, attachedNetworkConnectionName, this.innerModel(), context);
+ return this;
+ }
+
+ AttachedNetworkConnectionImpl(String name, com.azure.resourcemanager.devcenter.DevCenterManager serviceManager) {
+ this.innerObject = new AttachedNetworkConnectionInner();
+ this.serviceManager = serviceManager;
+ this.attachedNetworkConnectionName = name;
+ }
+
+ public AttachedNetworkConnectionImpl update() {
+ return this;
+ }
+
+ public AttachedNetworkConnection apply() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getAttachedNetworks()
+ .createOrUpdate(
+ resourceGroupName, devCenterName, attachedNetworkConnectionName, this.innerModel(), Context.NONE);
+ return this;
+ }
+
+ public AttachedNetworkConnection apply(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getAttachedNetworks()
+ .createOrUpdate(
+ resourceGroupName, devCenterName, attachedNetworkConnectionName, this.innerModel(), context);
+ return this;
+ }
+
+ AttachedNetworkConnectionImpl(
+ AttachedNetworkConnectionInner innerObject,
+ com.azure.resourcemanager.devcenter.DevCenterManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ this.resourceGroupName = Utils.getValueFromIdByName(innerObject.id(), "resourceGroups");
+ this.devCenterName = Utils.getValueFromIdByName(innerObject.id(), "devcenters");
+ this.attachedNetworkConnectionName = Utils.getValueFromIdByName(innerObject.id(), "attachednetworks");
+ }
+
+ public AttachedNetworkConnection refresh() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getAttachedNetworks()
+ .getByDevCenterWithResponse(
+ resourceGroupName, devCenterName, attachedNetworkConnectionName, Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public AttachedNetworkConnection refresh(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getAttachedNetworks()
+ .getByDevCenterWithResponse(resourceGroupName, devCenterName, attachedNetworkConnectionName, context)
+ .getValue();
+ return this;
+ }
+
+ public AttachedNetworkConnectionImpl withNetworkConnectionId(String networkConnectionId) {
+ this.innerModel().withNetworkConnectionId(networkConnectionId);
+ return this;
+ }
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/implementation/AttachedNetworksClientImpl.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/implementation/AttachedNetworksClientImpl.java
new file mode 100644
index 000000000000..73db4590623e
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/implementation/AttachedNetworksClientImpl.java
@@ -0,0 +1,1680 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.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.devcenter.fluent.AttachedNetworksClient;
+import com.azure.resourcemanager.devcenter.fluent.models.AttachedNetworkConnectionInner;
+import com.azure.resourcemanager.devcenter.models.AttachedNetworkListResult;
+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 AttachedNetworksClient. */
+public final class AttachedNetworksClientImpl implements AttachedNetworksClient {
+ /** The proxy service used to perform REST calls. */
+ private final AttachedNetworksService service;
+
+ /** The service client containing this operation class. */
+ private final DevCenterClientImpl client;
+
+ /**
+ * Initializes an instance of AttachedNetworksClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ AttachedNetworksClientImpl(DevCenterClientImpl client) {
+ this.service =
+ RestProxy.create(AttachedNetworksService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for DevCenterClientAttachedNetworks to be used by the proxy service to
+ * perform REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "DevCenterClientAttac")
+ private interface AttachedNetworksService {
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/projects"
+ + "/{projectName}/attachednetworks")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listByProject(
+ @HostParam("$host") String endpoint,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("projectName") String projectName,
+ @QueryParam("$top") Integer top,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/projects"
+ + "/{projectName}/attachednetworks/{attachedNetworkConnectionName}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> getByProject(
+ @HostParam("$host") String endpoint,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("projectName") String projectName,
+ @PathParam("attachedNetworkConnectionName") String attachedNetworkConnectionName,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter"
+ + "/devcenters/{devCenterName}/attachednetworks")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listByDevCenter(
+ @HostParam("$host") String endpoint,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("devCenterName") String devCenterName,
+ @QueryParam("$top") Integer top,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter"
+ + "/devcenters/{devCenterName}/attachednetworks/{attachedNetworkConnectionName}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> getByDevCenter(
+ @HostParam("$host") String endpoint,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("devCenterName") String devCenterName,
+ @PathParam("attachedNetworkConnectionName") String attachedNetworkConnectionName,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Put(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter"
+ + "/devcenters/{devCenterName}/attachednetworks/{attachedNetworkConnectionName}")
+ @ExpectedResponses({201})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> createOrUpdate(
+ @HostParam("$host") String endpoint,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("devCenterName") String devCenterName,
+ @PathParam("attachedNetworkConnectionName") String attachedNetworkConnectionName,
+ @BodyParam("application/json") AttachedNetworkConnectionInner body,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Delete(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter"
+ + "/devcenters/{devCenterName}/attachednetworks/{attachedNetworkConnectionName}")
+ @ExpectedResponses({200, 202, 204})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> delete(
+ @HostParam("$host") String endpoint,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("devCenterName") String devCenterName,
+ @PathParam("attachedNetworkConnectionName") String attachedNetworkConnectionName,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("{nextLink}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listByProjectNext(
+ @PathParam(value = "nextLink", encoded = true) String nextLink,
+ @HostParam("$host") String endpoint,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("{nextLink}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listByDevCenterNext(
+ @PathParam(value = "nextLink", encoded = true) String nextLink,
+ @HostParam("$host") String endpoint,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Lists the attached NetworkConnections for a Project.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param top The maximum number of resources to return from the operation. Example: '$top=10'.
+ * @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 results of the Attached Networks list operation along with {@link PagedResponse} on successful completion
+ * of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByProjectSinglePageAsync(
+ String resourceGroupName, String projectName, Integer top) {
+ 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 (projectName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter projectName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .listByProject(
+ this.client.getEndpoint(),
+ this.client.getApiVersion(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ projectName,
+ top,
+ accept,
+ context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Lists the attached NetworkConnections for a Project.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param top The maximum number of resources to return from the operation. Example: '$top=10'.
+ * @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 results of the Attached Networks list operation along with {@link PagedResponse} on successful completion
+ * of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByProjectSinglePageAsync(
+ String resourceGroupName, String projectName, Integer top, 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 (projectName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter projectName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .listByProject(
+ this.client.getEndpoint(),
+ this.client.getApiVersion(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ projectName,
+ top,
+ accept,
+ context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * Lists the attached NetworkConnections for a Project.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param top The maximum number of resources to return from the operation. Example: '$top=10'.
+ * @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 results of the Attached Networks list operation as paginated response with {@link PagedFlux}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listByProjectAsync(
+ String resourceGroupName, String projectName, Integer top) {
+ return new PagedFlux<>(
+ () -> listByProjectSinglePageAsync(resourceGroupName, projectName, top),
+ nextLink -> listByProjectNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * Lists the attached NetworkConnections for a Project.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @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 results of the Attached Networks list operation as paginated response with {@link PagedFlux}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listByProjectAsync(String resourceGroupName, String projectName) {
+ final Integer top = null;
+ return new PagedFlux<>(
+ () -> listByProjectSinglePageAsync(resourceGroupName, projectName, top),
+ nextLink -> listByProjectNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * Lists the attached NetworkConnections for a Project.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param top The maximum number of resources to return from the operation. Example: '$top=10'.
+ * @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 results of the Attached Networks list operation as paginated response with {@link PagedFlux}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listByProjectAsync(
+ String resourceGroupName, String projectName, Integer top, Context context) {
+ return new PagedFlux<>(
+ () -> listByProjectSinglePageAsync(resourceGroupName, projectName, top, context),
+ nextLink -> listByProjectNextSinglePageAsync(nextLink, context));
+ }
+
+ /**
+ * Lists the attached NetworkConnections for a Project.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @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 results of the Attached Networks list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable listByProject(String resourceGroupName, String projectName) {
+ final Integer top = null;
+ return new PagedIterable<>(listByProjectAsync(resourceGroupName, projectName, top));
+ }
+
+ /**
+ * Lists the attached NetworkConnections for a Project.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param top The maximum number of resources to return from the operation. Example: '$top=10'.
+ * @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 results of the Attached Networks list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable listByProject(
+ String resourceGroupName, String projectName, Integer top, Context context) {
+ return new PagedIterable<>(listByProjectAsync(resourceGroupName, projectName, top, context));
+ }
+
+ /**
+ * Gets an attached NetworkConnection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param attachedNetworkConnectionName The name of the attached NetworkConnection.
+ * @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 attached NetworkConnection along with {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getByProjectWithResponseAsync(
+ String resourceGroupName, String projectName, String attachedNetworkConnectionName) {
+ 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 (projectName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter projectName is required and cannot be null."));
+ }
+ if (attachedNetworkConnectionName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter attachedNetworkConnectionName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .getByProject(
+ this.client.getEndpoint(),
+ this.client.getApiVersion(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ projectName,
+ attachedNetworkConnectionName,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Gets an attached NetworkConnection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param attachedNetworkConnectionName The name of the attached NetworkConnection.
+ * @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 attached NetworkConnection along with {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getByProjectWithResponseAsync(
+ String resourceGroupName, String projectName, String attachedNetworkConnectionName, 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 (projectName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter projectName is required and cannot be null."));
+ }
+ if (attachedNetworkConnectionName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter attachedNetworkConnectionName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .getByProject(
+ this.client.getEndpoint(),
+ this.client.getApiVersion(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ projectName,
+ attachedNetworkConnectionName,
+ accept,
+ context);
+ }
+
+ /**
+ * Gets an attached NetworkConnection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param attachedNetworkConnectionName The name of the attached NetworkConnection.
+ * @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 attached NetworkConnection on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono getByProjectAsync(
+ String resourceGroupName, String projectName, String attachedNetworkConnectionName) {
+ return getByProjectWithResponseAsync(resourceGroupName, projectName, attachedNetworkConnectionName)
+ .flatMap(res -> Mono.justOrEmpty(res.getValue()));
+ }
+
+ /**
+ * Gets an attached NetworkConnection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param attachedNetworkConnectionName The name of the attached NetworkConnection.
+ * @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 attached NetworkConnection.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public AttachedNetworkConnectionInner getByProject(
+ String resourceGroupName, String projectName, String attachedNetworkConnectionName) {
+ return getByProjectAsync(resourceGroupName, projectName, attachedNetworkConnectionName).block();
+ }
+
+ /**
+ * Gets an attached NetworkConnection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param projectName The name of the project.
+ * @param attachedNetworkConnectionName The name of the attached NetworkConnection.
+ * @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 attached NetworkConnection along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response getByProjectWithResponse(
+ String resourceGroupName, String projectName, String attachedNetworkConnectionName, Context context) {
+ return getByProjectWithResponseAsync(resourceGroupName, projectName, attachedNetworkConnectionName, context)
+ .block();
+ }
+
+ /**
+ * Lists the attached NetworkConnections for a DevCenter.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param top The maximum number of resources to return from the operation. Example: '$top=10'.
+ * @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 results of the Attached Networks list operation along with {@link PagedResponse} on successful completion
+ * of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByDevCenterSinglePageAsync(
+ String resourceGroupName, String devCenterName, Integer top) {
+ 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 (devCenterName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter devCenterName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .listByDevCenter(
+ this.client.getEndpoint(),
+ this.client.getApiVersion(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ devCenterName,
+ top,
+ accept,
+ context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Lists the attached NetworkConnections for a DevCenter.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param top The maximum number of resources to return from the operation. Example: '$top=10'.
+ * @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 results of the Attached Networks list operation along with {@link PagedResponse} on successful completion
+ * of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByDevCenterSinglePageAsync(
+ String resourceGroupName, String devCenterName, Integer top, 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 (devCenterName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter devCenterName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .listByDevCenter(
+ this.client.getEndpoint(),
+ this.client.getApiVersion(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ devCenterName,
+ top,
+ accept,
+ context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * Lists the attached NetworkConnections for a DevCenter.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param top The maximum number of resources to return from the operation. Example: '$top=10'.
+ * @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 results of the Attached Networks list operation as paginated response with {@link PagedFlux}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listByDevCenterAsync(
+ String resourceGroupName, String devCenterName, Integer top) {
+ return new PagedFlux<>(
+ () -> listByDevCenterSinglePageAsync(resourceGroupName, devCenterName, top),
+ nextLink -> listByDevCenterNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * Lists the attached NetworkConnections for a DevCenter.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @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 results of the Attached Networks list operation as paginated response with {@link PagedFlux}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listByDevCenterAsync(
+ String resourceGroupName, String devCenterName) {
+ final Integer top = null;
+ return new PagedFlux<>(
+ () -> listByDevCenterSinglePageAsync(resourceGroupName, devCenterName, top),
+ nextLink -> listByDevCenterNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * Lists the attached NetworkConnections for a DevCenter.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param top The maximum number of resources to return from the operation. Example: '$top=10'.
+ * @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 results of the Attached Networks list operation as paginated response with {@link PagedFlux}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listByDevCenterAsync(
+ String resourceGroupName, String devCenterName, Integer top, Context context) {
+ return new PagedFlux<>(
+ () -> listByDevCenterSinglePageAsync(resourceGroupName, devCenterName, top, context),
+ nextLink -> listByDevCenterNextSinglePageAsync(nextLink, context));
+ }
+
+ /**
+ * Lists the attached NetworkConnections for a DevCenter.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @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 results of the Attached Networks list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable listByDevCenter(
+ String resourceGroupName, String devCenterName) {
+ final Integer top = null;
+ return new PagedIterable<>(listByDevCenterAsync(resourceGroupName, devCenterName, top));
+ }
+
+ /**
+ * Lists the attached NetworkConnections for a DevCenter.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param top The maximum number of resources to return from the operation. Example: '$top=10'.
+ * @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 results of the Attached Networks list operation as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable listByDevCenter(
+ String resourceGroupName, String devCenterName, Integer top, Context context) {
+ return new PagedIterable<>(listByDevCenterAsync(resourceGroupName, devCenterName, top, context));
+ }
+
+ /**
+ * Gets an attached NetworkConnection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param attachedNetworkConnectionName The name of the attached NetworkConnection.
+ * @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 attached NetworkConnection along with {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getByDevCenterWithResponseAsync(
+ String resourceGroupName, String devCenterName, String attachedNetworkConnectionName) {
+ 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 (devCenterName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter devCenterName is required and cannot be null."));
+ }
+ if (attachedNetworkConnectionName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter attachedNetworkConnectionName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .getByDevCenter(
+ this.client.getEndpoint(),
+ this.client.getApiVersion(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ devCenterName,
+ attachedNetworkConnectionName,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Gets an attached NetworkConnection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param attachedNetworkConnectionName The name of the attached NetworkConnection.
+ * @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 attached NetworkConnection along with {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getByDevCenterWithResponseAsync(
+ String resourceGroupName, String devCenterName, String attachedNetworkConnectionName, 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 (devCenterName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter devCenterName is required and cannot be null."));
+ }
+ if (attachedNetworkConnectionName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter attachedNetworkConnectionName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .getByDevCenter(
+ this.client.getEndpoint(),
+ this.client.getApiVersion(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ devCenterName,
+ attachedNetworkConnectionName,
+ accept,
+ context);
+ }
+
+ /**
+ * Gets an attached NetworkConnection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param attachedNetworkConnectionName The name of the attached NetworkConnection.
+ * @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 attached NetworkConnection on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono getByDevCenterAsync(
+ String resourceGroupName, String devCenterName, String attachedNetworkConnectionName) {
+ return getByDevCenterWithResponseAsync(resourceGroupName, devCenterName, attachedNetworkConnectionName)
+ .flatMap(res -> Mono.justOrEmpty(res.getValue()));
+ }
+
+ /**
+ * Gets an attached NetworkConnection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param attachedNetworkConnectionName The name of the attached NetworkConnection.
+ * @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 attached NetworkConnection.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public AttachedNetworkConnectionInner getByDevCenter(
+ String resourceGroupName, String devCenterName, String attachedNetworkConnectionName) {
+ return getByDevCenterAsync(resourceGroupName, devCenterName, attachedNetworkConnectionName).block();
+ }
+
+ /**
+ * Gets an attached NetworkConnection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param attachedNetworkConnectionName The name of the attached NetworkConnection.
+ * @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 attached NetworkConnection along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response getByDevCenterWithResponse(
+ String resourceGroupName, String devCenterName, String attachedNetworkConnectionName, Context context) {
+ return getByDevCenterWithResponseAsync(resourceGroupName, devCenterName, attachedNetworkConnectionName, context)
+ .block();
+ }
+
+ /**
+ * Creates or updates an attached NetworkConnection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param attachedNetworkConnectionName The name of the attached NetworkConnection.
+ * @param body Represents an attached NetworkConnection.
+ * @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 represents an attached NetworkConnection along with {@link Response} on successful completion of {@link
+ * Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> createOrUpdateWithResponseAsync(
+ String resourceGroupName,
+ String devCenterName,
+ String attachedNetworkConnectionName,
+ AttachedNetworkConnectionInner body) {
+ 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 (devCenterName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter devCenterName is required and cannot be null."));
+ }
+ if (attachedNetworkConnectionName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter attachedNetworkConnectionName is required and cannot be null."));
+ }
+ if (body == null) {
+ return Mono.error(new IllegalArgumentException("Parameter body is required and cannot be null."));
+ } else {
+ body.validate();
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .createOrUpdate(
+ this.client.getEndpoint(),
+ this.client.getApiVersion(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ devCenterName,
+ attachedNetworkConnectionName,
+ body,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Creates or updates an attached NetworkConnection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param attachedNetworkConnectionName The name of the attached NetworkConnection.
+ * @param body Represents an attached NetworkConnection.
+ * @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 represents an attached NetworkConnection along with {@link Response} on successful completion of {@link
+ * Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> createOrUpdateWithResponseAsync(
+ String resourceGroupName,
+ String devCenterName,
+ String attachedNetworkConnectionName,
+ AttachedNetworkConnectionInner body,
+ 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 (devCenterName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter devCenterName is required and cannot be null."));
+ }
+ if (attachedNetworkConnectionName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter attachedNetworkConnectionName is required and cannot be null."));
+ }
+ if (body == null) {
+ return Mono.error(new IllegalArgumentException("Parameter body is required and cannot be null."));
+ } else {
+ body.validate();
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .createOrUpdate(
+ this.client.getEndpoint(),
+ this.client.getApiVersion(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ devCenterName,
+ attachedNetworkConnectionName,
+ body,
+ accept,
+ context);
+ }
+
+ /**
+ * Creates or updates an attached NetworkConnection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param attachedNetworkConnectionName The name of the attached NetworkConnection.
+ * @param body Represents an attached NetworkConnection.
+ * @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 represents an attached NetworkConnection.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, AttachedNetworkConnectionInner>
+ beginCreateOrUpdateAsync(
+ String resourceGroupName,
+ String devCenterName,
+ String attachedNetworkConnectionName,
+ AttachedNetworkConnectionInner body) {
+ Mono>> mono =
+ createOrUpdateWithResponseAsync(resourceGroupName, devCenterName, attachedNetworkConnectionName, body);
+ return this
+ .client
+ .getLroResult(
+ mono,
+ this.client.getHttpPipeline(),
+ AttachedNetworkConnectionInner.class,
+ AttachedNetworkConnectionInner.class,
+ this.client.getContext());
+ }
+
+ /**
+ * Creates or updates an attached NetworkConnection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param attachedNetworkConnectionName The name of the attached NetworkConnection.
+ * @param body Represents an attached NetworkConnection.
+ * @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 represents an attached NetworkConnection.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, AttachedNetworkConnectionInner>
+ beginCreateOrUpdateAsync(
+ String resourceGroupName,
+ String devCenterName,
+ String attachedNetworkConnectionName,
+ AttachedNetworkConnectionInner body,
+ Context context) {
+ context = this.client.mergeContext(context);
+ Mono>> mono =
+ createOrUpdateWithResponseAsync(
+ resourceGroupName, devCenterName, attachedNetworkConnectionName, body, context);
+ return this
+ .client
+ .getLroResult(
+ mono,
+ this.client.getHttpPipeline(),
+ AttachedNetworkConnectionInner.class,
+ AttachedNetworkConnectionInner.class,
+ context);
+ }
+
+ /**
+ * Creates or updates an attached NetworkConnection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param attachedNetworkConnectionName The name of the attached NetworkConnection.
+ * @param body Represents an attached NetworkConnection.
+ * @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 represents an attached NetworkConnection.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, AttachedNetworkConnectionInner> beginCreateOrUpdate(
+ String resourceGroupName,
+ String devCenterName,
+ String attachedNetworkConnectionName,
+ AttachedNetworkConnectionInner body) {
+ return beginCreateOrUpdateAsync(resourceGroupName, devCenterName, attachedNetworkConnectionName, body)
+ .getSyncPoller();
+ }
+
+ /**
+ * Creates or updates an attached NetworkConnection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param attachedNetworkConnectionName The name of the attached NetworkConnection.
+ * @param body Represents an attached NetworkConnection.
+ * @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 represents an attached NetworkConnection.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, AttachedNetworkConnectionInner> beginCreateOrUpdate(
+ String resourceGroupName,
+ String devCenterName,
+ String attachedNetworkConnectionName,
+ AttachedNetworkConnectionInner body,
+ Context context) {
+ return beginCreateOrUpdateAsync(resourceGroupName, devCenterName, attachedNetworkConnectionName, body, context)
+ .getSyncPoller();
+ }
+
+ /**
+ * Creates or updates an attached NetworkConnection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param attachedNetworkConnectionName The name of the attached NetworkConnection.
+ * @param body Represents an attached NetworkConnection.
+ * @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 represents an attached NetworkConnection on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono createOrUpdateAsync(
+ String resourceGroupName,
+ String devCenterName,
+ String attachedNetworkConnectionName,
+ AttachedNetworkConnectionInner body) {
+ return beginCreateOrUpdateAsync(resourceGroupName, devCenterName, attachedNetworkConnectionName, body)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Creates or updates an attached NetworkConnection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param attachedNetworkConnectionName The name of the attached NetworkConnection.
+ * @param body Represents an attached NetworkConnection.
+ * @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 represents an attached NetworkConnection on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono createOrUpdateAsync(
+ String resourceGroupName,
+ String devCenterName,
+ String attachedNetworkConnectionName,
+ AttachedNetworkConnectionInner body,
+ Context context) {
+ return beginCreateOrUpdateAsync(resourceGroupName, devCenterName, attachedNetworkConnectionName, body, context)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Creates or updates an attached NetworkConnection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param attachedNetworkConnectionName The name of the attached NetworkConnection.
+ * @param body Represents an attached NetworkConnection.
+ * @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 represents an attached NetworkConnection.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public AttachedNetworkConnectionInner createOrUpdate(
+ String resourceGroupName,
+ String devCenterName,
+ String attachedNetworkConnectionName,
+ AttachedNetworkConnectionInner body) {
+ return createOrUpdateAsync(resourceGroupName, devCenterName, attachedNetworkConnectionName, body).block();
+ }
+
+ /**
+ * Creates or updates an attached NetworkConnection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param attachedNetworkConnectionName The name of the attached NetworkConnection.
+ * @param body Represents an attached NetworkConnection.
+ * @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 represents an attached NetworkConnection.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public AttachedNetworkConnectionInner createOrUpdate(
+ String resourceGroupName,
+ String devCenterName,
+ String attachedNetworkConnectionName,
+ AttachedNetworkConnectionInner body,
+ Context context) {
+ return createOrUpdateAsync(resourceGroupName, devCenterName, attachedNetworkConnectionName, body, context)
+ .block();
+ }
+
+ /**
+ * Un-attach a NetworkConnection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param attachedNetworkConnectionName The name of the attached NetworkConnection.
+ * @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 devCenterName, String attachedNetworkConnectionName) {
+ 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 (devCenterName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter devCenterName is required and cannot be null."));
+ }
+ if (attachedNetworkConnectionName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter attachedNetworkConnectionName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .delete(
+ this.client.getEndpoint(),
+ this.client.getApiVersion(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ devCenterName,
+ attachedNetworkConnectionName,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Un-attach a NetworkConnection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param attachedNetworkConnectionName The name of the attached NetworkConnection.
+ * @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 devCenterName, String attachedNetworkConnectionName, 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 (devCenterName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter devCenterName is required and cannot be null."));
+ }
+ if (attachedNetworkConnectionName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter attachedNetworkConnectionName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .delete(
+ this.client.getEndpoint(),
+ this.client.getApiVersion(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ devCenterName,
+ attachedNetworkConnectionName,
+ accept,
+ context);
+ }
+
+ /**
+ * Un-attach a NetworkConnection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param attachedNetworkConnectionName The name of the attached NetworkConnection.
+ * @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 devCenterName, String attachedNetworkConnectionName) {
+ Mono>> mono =
+ deleteWithResponseAsync(resourceGroupName, devCenterName, attachedNetworkConnectionName);
+ return this
+ .client
+ .getLroResult(
+ mono, this.client.getHttpPipeline(), Void.class, Void.class, this.client.getContext());
+ }
+
+ /**
+ * Un-attach a NetworkConnection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param attachedNetworkConnectionName The name of the attached NetworkConnection.
+ * @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 devCenterName, String attachedNetworkConnectionName, Context context) {
+ context = this.client.mergeContext(context);
+ Mono>> mono =
+ deleteWithResponseAsync(resourceGroupName, devCenterName, attachedNetworkConnectionName, context);
+ return this
+ .client
+ .getLroResult(mono, this.client.getHttpPipeline(), Void.class, Void.class, context);
+ }
+
+ /**
+ * Un-attach a NetworkConnection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param attachedNetworkConnectionName The name of the attached NetworkConnection.
+ * @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 devCenterName, String attachedNetworkConnectionName) {
+ return beginDeleteAsync(resourceGroupName, devCenterName, attachedNetworkConnectionName).getSyncPoller();
+ }
+
+ /**
+ * Un-attach a NetworkConnection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param attachedNetworkConnectionName The name of the attached NetworkConnection.
+ * @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 devCenterName, String attachedNetworkConnectionName, Context context) {
+ return beginDeleteAsync(resourceGroupName, devCenterName, attachedNetworkConnectionName, context)
+ .getSyncPoller();
+ }
+
+ /**
+ * Un-attach a NetworkConnection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param attachedNetworkConnectionName The name of the attached NetworkConnection.
+ * @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 devCenterName, String attachedNetworkConnectionName) {
+ return beginDeleteAsync(resourceGroupName, devCenterName, attachedNetworkConnectionName)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Un-attach a NetworkConnection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param attachedNetworkConnectionName The name of the attached NetworkConnection.
+ * @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 devCenterName, String attachedNetworkConnectionName, Context context) {
+ return beginDeleteAsync(resourceGroupName, devCenterName, attachedNetworkConnectionName, context)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Un-attach a NetworkConnection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param attachedNetworkConnectionName The name of the attached NetworkConnection.
+ * @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 devCenterName, String attachedNetworkConnectionName) {
+ deleteAsync(resourceGroupName, devCenterName, attachedNetworkConnectionName).block();
+ }
+
+ /**
+ * Un-attach a NetworkConnection.
+ *
+ * @param resourceGroupName Name of the resource group within the Azure subscription.
+ * @param devCenterName The name of the devcenter.
+ * @param attachedNetworkConnectionName The name of the attached NetworkConnection.
+ * @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 devCenterName, String attachedNetworkConnectionName, Context context) {
+ deleteAsync(resourceGroupName, devCenterName, attachedNetworkConnectionName, 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 results of the Attached Networks list operation along with {@link PagedResponse} on successful completion
+ * of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByProjectNextSinglePageAsync(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.listByProjectNext(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 results of the Attached Networks list operation along with {@link PagedResponse} on successful completion
+ * of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByProjectNextSinglePageAsync(
+ 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
+ .listByProjectNext(nextLink, this.client.getEndpoint(), accept, context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * 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 results of the Attached Networks list operation along with {@link PagedResponse} on successful completion
+ * of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByDevCenterNextSinglePageAsync(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.listByDevCenterNext(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 results of the Attached Networks list operation along with {@link PagedResponse} on successful completion
+ * of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByDevCenterNextSinglePageAsync(
+ 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
+ .listByDevCenterNext(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/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/implementation/AttachedNetworksImpl.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/implementation/AttachedNetworksImpl.java
new file mode 100644
index 000000000000..b313aed2d0c6
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/implementation/AttachedNetworksImpl.java
@@ -0,0 +1,247 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.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.devcenter.fluent.AttachedNetworksClient;
+import com.azure.resourcemanager.devcenter.fluent.models.AttachedNetworkConnectionInner;
+import com.azure.resourcemanager.devcenter.models.AttachedNetworkConnection;
+import com.azure.resourcemanager.devcenter.models.AttachedNetworks;
+
+public final class AttachedNetworksImpl implements AttachedNetworks {
+ private static final ClientLogger LOGGER = new ClientLogger(AttachedNetworksImpl.class);
+
+ private final AttachedNetworksClient innerClient;
+
+ private final com.azure.resourcemanager.devcenter.DevCenterManager serviceManager;
+
+ public AttachedNetworksImpl(
+ AttachedNetworksClient innerClient, com.azure.resourcemanager.devcenter.DevCenterManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public PagedIterable listByProject(String resourceGroupName, String projectName) {
+ PagedIterable inner =
+ this.serviceClient().listByProject(resourceGroupName, projectName);
+ return Utils.mapPage(inner, inner1 -> new AttachedNetworkConnectionImpl(inner1, this.manager()));
+ }
+
+ public PagedIterable listByProject(
+ String resourceGroupName, String projectName, Integer top, Context context) {
+ PagedIterable inner =
+ this.serviceClient().listByProject(resourceGroupName, projectName, top, context);
+ return Utils.mapPage(inner, inner1 -> new AttachedNetworkConnectionImpl(inner1, this.manager()));
+ }
+
+ public AttachedNetworkConnection getByProject(
+ String resourceGroupName, String projectName, String attachedNetworkConnectionName) {
+ AttachedNetworkConnectionInner inner =
+ this.serviceClient().getByProject(resourceGroupName, projectName, attachedNetworkConnectionName);
+ if (inner != null) {
+ return new AttachedNetworkConnectionImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response getByProjectWithResponse(
+ String resourceGroupName, String projectName, String attachedNetworkConnectionName, Context context) {
+ Response inner =
+ this
+ .serviceClient()
+ .getByProjectWithResponse(resourceGroupName, projectName, attachedNetworkConnectionName, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new AttachedNetworkConnectionImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ public PagedIterable listByDevCenter(String resourceGroupName, String devCenterName) {
+ PagedIterable inner =
+ this.serviceClient().listByDevCenter(resourceGroupName, devCenterName);
+ return Utils.mapPage(inner, inner1 -> new AttachedNetworkConnectionImpl(inner1, this.manager()));
+ }
+
+ public PagedIterable listByDevCenter(
+ String resourceGroupName, String devCenterName, Integer top, Context context) {
+ PagedIterable inner =
+ this.serviceClient().listByDevCenter(resourceGroupName, devCenterName, top, context);
+ return Utils.mapPage(inner, inner1 -> new AttachedNetworkConnectionImpl(inner1, this.manager()));
+ }
+
+ public AttachedNetworkConnection getByDevCenter(
+ String resourceGroupName, String devCenterName, String attachedNetworkConnectionName) {
+ AttachedNetworkConnectionInner inner =
+ this.serviceClient().getByDevCenter(resourceGroupName, devCenterName, attachedNetworkConnectionName);
+ if (inner != null) {
+ return new AttachedNetworkConnectionImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response getByDevCenterWithResponse(
+ String resourceGroupName, String devCenterName, String attachedNetworkConnectionName, Context context) {
+ Response inner =
+ this
+ .serviceClient()
+ .getByDevCenterWithResponse(resourceGroupName, devCenterName, attachedNetworkConnectionName, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new AttachedNetworkConnectionImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ public void delete(String resourceGroupName, String devCenterName, String attachedNetworkConnectionName) {
+ this.serviceClient().delete(resourceGroupName, devCenterName, attachedNetworkConnectionName);
+ }
+
+ public void delete(
+ String resourceGroupName, String devCenterName, String attachedNetworkConnectionName, Context context) {
+ this.serviceClient().delete(resourceGroupName, devCenterName, attachedNetworkConnectionName, context);
+ }
+
+ public AttachedNetworkConnection 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 devCenterName = Utils.getValueFromIdByName(id, "devcenters");
+ if (devCenterName == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String.format("The resource ID '%s' is not valid. Missing path segment 'devcenters'.", id)));
+ }
+ String attachedNetworkConnectionName = Utils.getValueFromIdByName(id, "attachednetworks");
+ if (attachedNetworkConnectionName == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'attachednetworks'.", id)));
+ }
+ return this
+ .getByDevCenterWithResponse(resourceGroupName, devCenterName, attachedNetworkConnectionName, 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 devCenterName = Utils.getValueFromIdByName(id, "devcenters");
+ if (devCenterName == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String.format("The resource ID '%s' is not valid. Missing path segment 'devcenters'.", id)));
+ }
+ String attachedNetworkConnectionName = Utils.getValueFromIdByName(id, "attachednetworks");
+ if (attachedNetworkConnectionName == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'attachednetworks'.", id)));
+ }
+ return this
+ .getByDevCenterWithResponse(resourceGroupName, devCenterName, attachedNetworkConnectionName, 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 devCenterName = Utils.getValueFromIdByName(id, "devcenters");
+ if (devCenterName == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String.format("The resource ID '%s' is not valid. Missing path segment 'devcenters'.", id)));
+ }
+ String attachedNetworkConnectionName = Utils.getValueFromIdByName(id, "attachednetworks");
+ if (attachedNetworkConnectionName == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'attachednetworks'.", id)));
+ }
+ this.delete(resourceGroupName, devCenterName, attachedNetworkConnectionName, 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 devCenterName = Utils.getValueFromIdByName(id, "devcenters");
+ if (devCenterName == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String.format("The resource ID '%s' is not valid. Missing path segment 'devcenters'.", id)));
+ }
+ String attachedNetworkConnectionName = Utils.getValueFromIdByName(id, "attachednetworks");
+ if (attachedNetworkConnectionName == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'attachednetworks'.", id)));
+ }
+ this.delete(resourceGroupName, devCenterName, attachedNetworkConnectionName, context);
+ }
+
+ private AttachedNetworksClient serviceClient() {
+ return this.innerClient;
+ }
+
+ private com.azure.resourcemanager.devcenter.DevCenterManager manager() {
+ return this.serviceManager;
+ }
+
+ public AttachedNetworkConnectionImpl define(String name) {
+ return new AttachedNetworkConnectionImpl(name, this.manager());
+ }
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/implementation/CatalogImpl.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/implementation/CatalogImpl.java
new file mode 100644
index 000000000000..551e2d4be484
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/implementation/CatalogImpl.java
@@ -0,0 +1,190 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.implementation;
+
+import com.azure.core.management.SystemData;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.devcenter.fluent.models.CatalogInner;
+import com.azure.resourcemanager.devcenter.models.Catalog;
+import com.azure.resourcemanager.devcenter.models.CatalogUpdate;
+import com.azure.resourcemanager.devcenter.models.GitCatalog;
+import java.time.OffsetDateTime;
+import java.util.Map;
+
+public final class CatalogImpl implements Catalog, Catalog.Definition, Catalog.Update {
+ private CatalogInner innerObject;
+
+ private final com.azure.resourcemanager.devcenter.DevCenterManager 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 provisioningState() {
+ return this.innerModel().provisioningState();
+ }
+
+ public OffsetDateTime lastSyncTime() {
+ return this.innerModel().lastSyncTime();
+ }
+
+ public GitCatalog gitHub() {
+ return this.innerModel().gitHub();
+ }
+
+ public GitCatalog adoGit() {
+ return this.innerModel().adoGit();
+ }
+
+ public String resourceGroupName() {
+ return resourceGroupName;
+ }
+
+ public CatalogInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.devcenter.DevCenterManager manager() {
+ return this.serviceManager;
+ }
+
+ private String resourceGroupName;
+
+ private String devCenterName;
+
+ private String catalogName;
+
+ private CatalogUpdate updateBody;
+
+ public CatalogImpl withExistingDevcenter(String resourceGroupName, String devCenterName) {
+ this.resourceGroupName = resourceGroupName;
+ this.devCenterName = devCenterName;
+ return this;
+ }
+
+ public Catalog create() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getCatalogs()
+ .createOrUpdate(resourceGroupName, devCenterName, catalogName, this.innerModel(), Context.NONE);
+ return this;
+ }
+
+ public Catalog create(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getCatalogs()
+ .createOrUpdate(resourceGroupName, devCenterName, catalogName, this.innerModel(), context);
+ return this;
+ }
+
+ CatalogImpl(String name, com.azure.resourcemanager.devcenter.DevCenterManager serviceManager) {
+ this.innerObject = new CatalogInner();
+ this.serviceManager = serviceManager;
+ this.catalogName = name;
+ }
+
+ public CatalogImpl update() {
+ this.updateBody = new CatalogUpdate();
+ return this;
+ }
+
+ public Catalog apply() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getCatalogs()
+ .update(resourceGroupName, devCenterName, catalogName, updateBody, Context.NONE);
+ return this;
+ }
+
+ public Catalog apply(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getCatalogs()
+ .update(resourceGroupName, devCenterName, catalogName, updateBody, context);
+ return this;
+ }
+
+ CatalogImpl(CatalogInner innerObject, com.azure.resourcemanager.devcenter.DevCenterManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ this.resourceGroupName = Utils.getValueFromIdByName(innerObject.id(), "resourceGroups");
+ this.devCenterName = Utils.getValueFromIdByName(innerObject.id(), "devcenters");
+ this.catalogName = Utils.getValueFromIdByName(innerObject.id(), "catalogs");
+ }
+
+ public Catalog refresh() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getCatalogs()
+ .getWithResponse(resourceGroupName, devCenterName, catalogName, Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public Catalog refresh(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getCatalogs()
+ .getWithResponse(resourceGroupName, devCenterName, catalogName, context)
+ .getValue();
+ return this;
+ }
+
+ public void sync() {
+ serviceManager.catalogs().sync(resourceGroupName, devCenterName, catalogName);
+ }
+
+ public void sync(Context context) {
+ serviceManager.catalogs().sync(resourceGroupName, devCenterName, catalogName, context);
+ }
+
+ public CatalogImpl withGitHub(GitCatalog gitHub) {
+ if (isInCreateMode()) {
+ this.innerModel().withGitHub(gitHub);
+ return this;
+ } else {
+ this.updateBody.withGitHub(gitHub);
+ return this;
+ }
+ }
+
+ public CatalogImpl withAdoGit(GitCatalog adoGit) {
+ if (isInCreateMode()) {
+ this.innerModel().withAdoGit(adoGit);
+ return this;
+ } else {
+ this.updateBody.withAdoGit(adoGit);
+ return this;
+ }
+ }
+
+ public CatalogImpl withTags(Map tags) {
+ this.updateBody.withTags(tags);
+ return this;
+ }
+
+ private boolean isInCreateMode() {
+ return this.innerModel().id() == null;
+ }
+}
diff --git a/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/implementation/CatalogsClientImpl.java b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/implementation/CatalogsClientImpl.java
new file mode 100644
index 000000000000..8c059b3bb2a7
--- /dev/null
+++ b/sdk/devcenter/azure-resourcemanager-devcenter/src/main/java/com/azure/resourcemanager/devcenter/implementation/CatalogsClientImpl.java
@@ -0,0 +1,1677 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.devcenter.implementation;
+
+import com.azure.core.annotation.BodyParam;
+import com.azure.core.annotation.Delete;
+import com.azure.core.annotation.ExpectedResponses;
+import com.azure.core.annotation.Get;
+import com.azure.core.annotation.HeaderParam;
+import com.azure.core.annotation.Headers;
+import com.azure.core.annotation.Host;
+import com.azure.core.annotation.HostParam;
+import com.azure.core.annotation.Patch;
+import com.azure.core.annotation.PathParam;
+import com.azure.core.annotation.Post;
+import com.azure.core.annotation.Put;
+import com.azure.core.annotation.QueryParam;
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceInterface;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.annotation.UnexpectedResponseExceptionType;
+import com.azure.core.http.rest.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.devcenter.fluent.CatalogsClient;
+import com.azure.resourcemanager.devcenter.fluent.models.CatalogInner;
+import com.azure.resourcemanager.devcenter.models.CatalogListResult;
+import com.azure.resourcemanager.devcenter.models.CatalogUpdate;
+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 CatalogsClient. */
+public final class CatalogsClientImpl implements CatalogsClient {
+ /** The proxy service used to perform REST calls. */
+ private final CatalogsService service;
+
+ /** The service client containing this operation class. */
+ private final DevCenterClientImpl client;
+
+ /**
+ * Initializes an instance of CatalogsClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ CatalogsClientImpl(DevCenterClientImpl client) {
+ this.service = RestProxy.create(CatalogsService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for DevCenterClientCatalogs to be used by the proxy service to perform
+ * REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "DevCenterClientCatal")
+ private interface CatalogsService {
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter"
+ + "/devcenters/{devCenterName}/catalogs")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listByDevCenter(
+ @HostParam("$host") String endpoint,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("devCenterName") String devCenterName,
+ @QueryParam("$top") Integer top,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter"
+ + "/devcenters/{devCenterName}/catalogs/{catalogName}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> get(
+ @HostParam("$host") String endpoint,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("devCenterName") String devCenterName,
+ @PathParam("catalogName") String catalogName,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Put(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter"
+ + "/devcenters/{devCenterName}/catalogs/{catalogName}")
+ @ExpectedResponses({201})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> createOrUpdate(
+ @HostParam("$host") String endpoint,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("devCenterName") String devCenterName,
+ @PathParam("catalogName") String catalogName,
+ @BodyParam("application/json") CatalogInner body,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Patch(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter"
+ + "/devcenters/{devCenterName}/catalogs/{catalogName}")
+ @ExpectedResponses({200, 202})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> update(
+ @HostParam("$host") String endpoint,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("devCenterName") String devCenterName,
+ @PathParam("catalogName") String catalogName,
+ @BodyParam("application/json") CatalogUpdate body,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Delete(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter"
+ + "/devcenters/{devCenterName}/catalogs/{catalogName}")
+ @ExpectedResponses({200, 202, 204})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono