diff --git a/eng/versioning/version_client.txt b/eng/versioning/version_client.txt
index eda21ff82375..6d96d39f43ae 100644
--- a/eng/versioning/version_client.txt
+++ b/eng/versioning/version_client.txt
@@ -187,6 +187,7 @@ com.azure.resourcemanager:azure-resourcemanager-recoveryservices;1.0.0-beta.1;1.
com.azure.resourcemanager:azure-resourcemanager-kusto;1.0.0-beta.1;1.0.0-beta.2
com.azure.resourcemanager:azure-resourcemanager-loganalytics;1.0.0-beta.1;1.0.0-beta.2
com.azure.resourcemanager:azure-resourcemanager-eventgrid;1.0.0-beta.1;1.0.0-beta.2
+com.azure.resourcemanager:azure-resourcemanager-resourcegraph;1.0.0-beta.1;1.0.0-beta.1
com.microsoft:microsoft-opentelemetry-exporter-azuremonitor;1.0.0-beta.1;1.0.0-beta.2
diff --git a/pom.xml b/pom.xml
index b80dac967d8f..5e2e713164f0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -37,6 +37,7 @@
sdk/postgresqlsdk/recoveryservicessdk/relay
+ sdk/resourcegraphsdk/resourcemanagersdk/schemaregistrysdk/search
diff --git a/sdk/resourcegraph/azure-resourcemanager-resourcegraph/CHANGELOG.md b/sdk/resourcegraph/azure-resourcemanager-resourcegraph/CHANGELOG.md
new file mode 100644
index 000000000000..07c9af76eea8
--- /dev/null
+++ b/sdk/resourcegraph/azure-resourcemanager-resourcegraph/CHANGELOG.md
@@ -0,0 +1,5 @@
+# Release History
+
+## 1.0.0-beta.1 (2021-01-04)
+
+- Azure Resource Manager ResourceGraph client library for Java. This package contains Microsoft Azure SDK for ResourceGraph Management SDK. Azure Resource Graph API Reference. Package tag package-preview-2020-04. For documentation on how to use this package, please see [Azure Management Libraries for Java](https://aka.ms/azsdk/java/mgmt).
\ No newline at end of file
diff --git a/sdk/resourcegraph/azure-resourcemanager-resourcegraph/README.md b/sdk/resourcegraph/azure-resourcemanager-resourcegraph/README.md
new file mode 100644
index 000000000000..41801e9ce4e6
--- /dev/null
+++ b/sdk/resourcegraph/azure-resourcemanager-resourcegraph/README.md
@@ -0,0 +1,83 @@
+# Azure Resource Manager ResourceGraph client library for Java
+
+Azure Resource Manager ResourceGraph client library for Java.
+
+This package contains Microsoft Azure SDK for ResourceGraph Management SDK. Azure Resource Graph API Reference. Package tag package-preview-2020-04. For documentation on how to use this package, please see [Azure Management Libraries for Java](https://aka.ms/azsdk/java/mgmt).
+
+## Getting started
+
+### Prerequisites
+
+- [Java Development Kit (JDK)][jdk] with version 8 or above
+- [Azure Subscription][azure_subscription]
+
+### Adding the package to your product
+
+[//]: # ({x-version-update-start;com.azure.resourcemanager:azure-resourcemanager-resourcegraph;current})
+```xml
+
+ com.azure.resourcemanager
+ azure-resourcemanager-resourcegraph
+ 1.0.0-beta.1
+
+```
+[//]: # ({x-version-update-end})
+
+### Include the recommended packages
+
+Azure Management Libraries require a `TokenCredential` implementation for authentication and an `HttpClient` implementation for HTTP client.
+
+[Azure Identity][azure_identity] package and [Azure Core Netty HTTP][azure_core_http_netty] package provide the default implementation.
+
+### Authentication
+
+By default, Azure Active Directory token authentication depends on correct configure of following environment variables.
+
+- `AZURE_CLIENT_ID` for Azure client ID.
+- `AZURE_TENANT_ID` for Azure tenant ID.
+- `AZURE_CLIENT_SECRET` or `AZURE_CLIENT_CERTIFICATE_PATH` for client secret or client certificate.
+
+In addition, Azure subscription ID can be configured via environment variable `AZURE_SUBSCRIPTION_ID`.
+
+With above configuration, `azure` client can be authenticated by following code:
+
+```java
+AzureProfile profile = new AzureProfile(AzureEnvironment.AZURE);
+TokenCredential credential = new DefaultAzureCredentialBuilder()
+ .authorityHost(profile.getEnvironment().getActiveDirectoryEndpoint())
+ .build();
+ResourceGraphManager manager = ResourceGraphManager
+ .authenticate(credential, profile);
+```
+
+The sample code assumes global Azure. Please change `AzureEnvironment.AZURE` variable if otherwise.
+
+See [Authentication][authenticate] for more options.
+
+## Key concepts
+
+See [API design][design] for general introduction on design and key concepts on Azure Management Libraries.
+
+## Examples
+
+## Troubleshooting
+
+## Next steps
+
+## Contributing
+
+For details on contributing to this repository, see the [contributing guide](https://github.com/Azure/azure-sdk-for-java/blob/master/CONTRIBUTING.md).
+
+1. Fork it
+1. Create your feature branch (`git checkout -b my-new-feature`)
+1. Commit your changes (`git commit -am 'Add some feature'`)
+1. Push to the branch (`git push origin my-new-feature`)
+1. Create new Pull Request
+
+
+[jdk]: https://docs.microsoft.com/java/azure/jdk/
+[azure_subscription]: https://azure.microsoft.com/free/
+[azure_identity]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/identity/azure-identity
+[azure_core_http_netty]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/core/azure-core-http-netty
+[authenticate]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/resourcemanager/docs/AUTH.md
+[design]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/resourcemanager/docs/DESIGN.md
diff --git a/sdk/resourcegraph/azure-resourcemanager-resourcegraph/pom.xml b/sdk/resourcegraph/azure-resourcemanager-resourcegraph/pom.xml
new file mode 100644
index 000000000000..ca36e27f19a3
--- /dev/null
+++ b/sdk/resourcegraph/azure-resourcemanager-resourcegraph/pom.xml
@@ -0,0 +1,62 @@
+
+ 4.0.0
+
+ com.azure
+ azure-client-sdk-parent
+ 1.7.0
+ ../../parents/azure-client-sdk-parent
+
+
+ com.azure.resourcemanager
+ azure-resourcemanager-resourcegraph
+ 1.0.0-beta.1
+ jar
+
+ Microsoft Azure SDK for ResourceGraph Management
+ This package contains Microsoft Azure SDK for ResourceGraph Management SDK. Azure Resource Graph API Reference. Package tag package-preview-2020-04. For documentation on how to use this package, please see https://aka.ms/azsdk/java/mgmt
+ https://github.com/Azure/azure-sdk-for-java
+
+
+
+ The MIT License (MIT)
+ http://opensource.org/licenses/MIT
+ repo
+
+
+
+
+ https://github.com/Azure/azure-sdk-for-java
+ scm:git:git@github.com:Azure/azure-sdk-for-java.git
+ scm:git:git@github.com:Azure/azure-sdk-for-java.git
+ HEAD
+
+
+
+ microsoft
+ Microsoft
+
+
+
+ UTF-8
+
+
+
+
+ com.azure
+ azure-core-management
+ 1.0.0
+
+
+
+
+
+ org.jacoco
+ jacoco-maven-plugin
+ 0.8.5
+
+ true
+
+
+
+
+
diff --git a/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/ResourceGraphManager.java b/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/ResourceGraphManager.java
new file mode 100644
index 000000000000..6b6b85e215e3
--- /dev/null
+++ b/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/ResourceGraphManager.java
@@ -0,0 +1,211 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.resourcegraph;
+
+import com.azure.core.credential.TokenCredential;
+import com.azure.core.http.HttpClient;
+import com.azure.core.http.HttpPipeline;
+import com.azure.core.http.HttpPipelineBuilder;
+import com.azure.core.http.policy.AddDatePolicy;
+import com.azure.core.http.policy.BearerTokenAuthenticationPolicy;
+import com.azure.core.http.policy.HttpLogOptions;
+import com.azure.core.http.policy.HttpLoggingPolicy;
+import com.azure.core.http.policy.HttpPipelinePolicy;
+import com.azure.core.http.policy.HttpPolicyProviders;
+import com.azure.core.http.policy.RequestIdPolicy;
+import com.azure.core.http.policy.RetryPolicy;
+import com.azure.core.http.policy.UserAgentPolicy;
+import com.azure.core.management.profile.AzureProfile;
+import com.azure.core.util.Configuration;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.resourcegraph.fluent.ResourceGraphClient;
+import com.azure.resourcemanager.resourcegraph.implementation.OperationsImpl;
+import com.azure.resourcemanager.resourcegraph.implementation.ResourceGraphClientBuilder;
+import com.azure.resourcemanager.resourcegraph.implementation.ResourceProvidersImpl;
+import com.azure.resourcemanager.resourcegraph.models.Operations;
+import com.azure.resourcemanager.resourcegraph.models.ResourceProviders;
+import java.time.Duration;
+import java.time.temporal.ChronoUnit;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/** Entry point to ResourceGraphManager. Azure Resource Graph API Reference. */
+public final class ResourceGraphManager {
+ private ResourceProviders resourceProviders;
+
+ private Operations operations;
+
+ private final ResourceGraphClient clientObject;
+
+ private ResourceGraphManager(HttpPipeline httpPipeline, AzureProfile profile, Duration defaultPollInterval) {
+ Objects.requireNonNull(httpPipeline, "'httpPipeline' cannot be null.");
+ Objects.requireNonNull(profile, "'profile' cannot be null.");
+ this.clientObject =
+ new ResourceGraphClientBuilder()
+ .pipeline(httpPipeline)
+ .endpoint(profile.getEnvironment().getResourceManagerEndpoint())
+ .defaultPollInterval(defaultPollInterval)
+ .buildClient();
+ }
+
+ /**
+ * Creates an instance of ResourceGraph service API entry point.
+ *
+ * @param credential the credential to use.
+ * @param profile the Azure profile for client.
+ * @return the ResourceGraph service API instance.
+ */
+ public static ResourceGraphManager authenticate(TokenCredential credential, AzureProfile profile) {
+ Objects.requireNonNull(credential, "'credential' cannot be null.");
+ Objects.requireNonNull(profile, "'profile' cannot be null.");
+ return configure().authenticate(credential, profile);
+ }
+
+ /**
+ * Gets a Configurable instance that can be used to create ResourceGraphManager with optional configuration.
+ *
+ * @return the Configurable instance allowing configurations.
+ */
+ public static Configurable configure() {
+ return new ResourceGraphManager.Configurable();
+ }
+
+ /** The Configurable allowing configurations to be set. */
+ public static final class Configurable {
+ private final ClientLogger logger = new ClientLogger(Configurable.class);
+
+ private HttpClient httpClient;
+ private HttpLogOptions httpLogOptions;
+ private final List policies = new ArrayList<>();
+ private RetryPolicy retryPolicy;
+ private Duration defaultPollInterval;
+
+ private Configurable() {
+ }
+
+ /**
+ * Sets the http client.
+ *
+ * @param httpClient the HTTP client.
+ * @return the configurable object itself.
+ */
+ public Configurable withHttpClient(HttpClient httpClient) {
+ this.httpClient = Objects.requireNonNull(httpClient, "'httpClient' cannot be null.");
+ return this;
+ }
+
+ /**
+ * Sets the logging options to the HTTP pipeline.
+ *
+ * @param httpLogOptions the HTTP log options.
+ * @return the configurable object itself.
+ */
+ public Configurable withLogOptions(HttpLogOptions httpLogOptions) {
+ this.httpLogOptions = Objects.requireNonNull(httpLogOptions, "'httpLogOptions' cannot be null.");
+ return this;
+ }
+
+ /**
+ * Adds the pipeline policy to the HTTP pipeline.
+ *
+ * @param policy the HTTP pipeline policy.
+ * @return the configurable object itself.
+ */
+ public Configurable withPolicy(HttpPipelinePolicy policy) {
+ this.policies.add(Objects.requireNonNull(policy, "'policy' cannot be null."));
+ return this;
+ }
+
+ /**
+ * Sets the retry policy to the HTTP pipeline.
+ *
+ * @param retryPolicy the HTTP pipeline retry policy.
+ * @return the configurable object itself.
+ */
+ public Configurable withRetryPolicy(RetryPolicy retryPolicy) {
+ this.retryPolicy = Objects.requireNonNull(retryPolicy, "'retryPolicy' cannot be null.");
+ return this;
+ }
+
+ /**
+ * Sets the default poll interval, used when service does not provide "Retry-After" header.
+ *
+ * @param defaultPollInterval the default poll interval.
+ * @return the configurable object itself.
+ */
+ public Configurable withDefaultPollInterval(Duration defaultPollInterval) {
+ this.defaultPollInterval = Objects.requireNonNull(defaultPollInterval, "'retryPolicy' cannot be null.");
+ if (this.defaultPollInterval.isNegative()) {
+ throw logger.logExceptionAsError(new IllegalArgumentException("'httpPipeline' cannot be negative"));
+ }
+ return this;
+ }
+
+ /**
+ * Creates an instance of ResourceGraph service API entry point.
+ *
+ * @param credential the credential to use.
+ * @param profile the Azure profile for client.
+ * @return the ResourceGraph service API instance.
+ */
+ public ResourceGraphManager authenticate(TokenCredential credential, AzureProfile profile) {
+ Objects.requireNonNull(credential, "'credential' cannot be null.");
+ Objects.requireNonNull(profile, "'profile' cannot be null.");
+
+ if (retryPolicy == null) {
+ retryPolicy = new RetryPolicy("Retry-After", ChronoUnit.SECONDS);
+ }
+ List policies = new ArrayList<>();
+ policies
+ .add(
+ new UserAgentPolicy(
+ null,
+ "com.azure.resourcemanager.resourcegraph",
+ "1.0.0-beta.1",
+ Configuration.getGlobalConfiguration()));
+ policies.add(new RequestIdPolicy());
+ HttpPolicyProviders.addBeforeRetryPolicies(policies);
+ policies.add(retryPolicy);
+ policies.add(new AddDatePolicy());
+ policies
+ .add(
+ new BearerTokenAuthenticationPolicy(
+ credential, profile.getEnvironment().getManagementEndpoint() + "/.default"));
+ HttpPolicyProviders.addAfterRetryPolicies(policies);
+ policies.add(new HttpLoggingPolicy(httpLogOptions));
+ HttpPipeline httpPipeline =
+ new HttpPipelineBuilder()
+ .httpClient(httpClient)
+ .policies(policies.toArray(new HttpPipelinePolicy[0]))
+ .build();
+ return new ResourceGraphManager(httpPipeline, profile, defaultPollInterval);
+ }
+ }
+
+ /** @return Resource collection API of ResourceProviders. */
+ public ResourceProviders resourceProviders() {
+ if (this.resourceProviders == null) {
+ this.resourceProviders = new ResourceProvidersImpl(clientObject.getResourceProviders(), this);
+ }
+ return resourceProviders;
+ }
+
+ /** @return Resource collection API of Operations. */
+ public Operations operations() {
+ if (this.operations == null) {
+ this.operations = new OperationsImpl(clientObject.getOperations(), this);
+ }
+ return operations;
+ }
+
+ /**
+ * @return Wrapped service client ResourceGraphClient providing direct access to the underlying auto-generated API
+ * implementation, based on Azure REST API.
+ */
+ public ResourceGraphClient serviceClient() {
+ return this.clientObject;
+ }
+}
diff --git a/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/fluent/OperationsClient.java b/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/fluent/OperationsClient.java
new file mode 100644
index 000000000000..3d46ac606fcb
--- /dev/null
+++ b/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/fluent/OperationsClient.java
@@ -0,0 +1,36 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.resourcegraph.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.resourcegraph.fluent.models.OperationInner;
+
+/** An instance of this class provides access to all the operations defined in OperationsClient. */
+public interface OperationsClient {
+ /**
+ * Lists all of the available REST API operations.
+ *
+ * @throws com.azure.core.management.exception.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 request to list Resource Graph operations.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Lists all of the available REST API 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 result of the request to list Resource Graph operations.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+}
diff --git a/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/fluent/ResourceGraphClient.java b/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/fluent/ResourceGraphClient.java
new file mode 100644
index 000000000000..16412a3b5883
--- /dev/null
+++ b/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/fluent/ResourceGraphClient.java
@@ -0,0 +1,53 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.resourcegraph.fluent;
+
+import com.azure.core.http.HttpPipeline;
+import java.time.Duration;
+
+/** The interface for ResourceGraphClient class. */
+public interface ResourceGraphClient {
+ /**
+ * 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 ResourceProvidersClient object to access its operations.
+ *
+ * @return the ResourceProvidersClient object.
+ */
+ ResourceProvidersClient getResourceProviders();
+
+ /**
+ * Gets the OperationsClient object to access its operations.
+ *
+ * @return the OperationsClient object.
+ */
+ OperationsClient getOperations();
+}
diff --git a/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/fluent/ResourceProvidersClient.java b/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/fluent/ResourceProvidersClient.java
new file mode 100644
index 000000000000..f867b4dd9462
--- /dev/null
+++ b/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/fluent/ResourceProvidersClient.java
@@ -0,0 +1,96 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.resourcegraph.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.resourcegraph.fluent.models.QueryResponseInner;
+import com.azure.resourcemanager.resourcegraph.fluent.models.ResourceChangeDataInner;
+import com.azure.resourcemanager.resourcegraph.fluent.models.ResourceChangeListInner;
+import com.azure.resourcemanager.resourcegraph.models.QueryRequest;
+import com.azure.resourcemanager.resourcegraph.models.ResourceChangeDetailsRequestParameters;
+import com.azure.resourcemanager.resourcegraph.models.ResourceChangesRequestParameters;
+
+/** An instance of this class provides access to all the operations defined in ResourceProvidersClient. */
+public interface ResourceProvidersClient {
+ /**
+ * Queries the resources managed by Azure Resource Manager for all subscriptions specified in the request.
+ *
+ * @param query Request specifying query and its options.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return query result.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ QueryResponseInner resources(QueryRequest query);
+
+ /**
+ * Queries the resources managed by Azure Resource Manager for all subscriptions specified in the request.
+ *
+ * @param query Request specifying query and its options.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return query result.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response resourcesWithResponse(QueryRequest query, Context context);
+
+ /**
+ * List changes to a resource for a given time interval.
+ *
+ * @param parameters the parameters for this request for changes.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 changes associated with a resource over a specific time interval.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ResourceChangeListInner resourceChanges(ResourceChangesRequestParameters parameters);
+
+ /**
+ * List changes to a resource for a given time interval.
+ *
+ * @param parameters the parameters for this request for changes.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 changes associated with a resource over a specific time interval.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response resourceChangesWithResponse(
+ ResourceChangesRequestParameters parameters, Context context);
+
+ /**
+ * Get resource change details.
+ *
+ * @param parameters The parameters for this request for resource change details.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return resource change details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ResourceChangeDataInner resourceChangeDetails(ResourceChangeDetailsRequestParameters parameters);
+
+ /**
+ * Get resource change details.
+ *
+ * @param parameters The parameters for this request for resource change details.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return resource change details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response resourceChangeDetailsWithResponse(
+ ResourceChangeDetailsRequestParameters parameters, Context context);
+}
diff --git a/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/fluent/models/OperationInner.java b/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/fluent/models/OperationInner.java
new file mode 100644
index 000000000000..b7b050ec7e8d
--- /dev/null
+++ b/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/fluent/models/OperationInner.java
@@ -0,0 +1,106 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.resourcegraph.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.resourcegraph.models.OperationDisplay;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Resource Graph REST API operation definition. */
+@Fluent
+public final class OperationInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(OperationInner.class);
+
+ /*
+ * Operation name: {provider}/{resource}/{operation}
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /*
+ * Display metadata associated with the operation.
+ */
+ @JsonProperty(value = "display")
+ private OperationDisplay display;
+
+ /*
+ * The origin of operations.
+ */
+ @JsonProperty(value = "origin")
+ private String origin;
+
+ /**
+ * Get the name property: Operation name: {provider}/{resource}/{operation}.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name property: Operation name: {provider}/{resource}/{operation}.
+ *
+ * @param name the name value to set.
+ * @return the OperationInner object itself.
+ */
+ public OperationInner withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the display property: Display metadata associated with the operation.
+ *
+ * @return the display value.
+ */
+ public OperationDisplay display() {
+ return this.display;
+ }
+
+ /**
+ * Set the display property: Display metadata associated with the operation.
+ *
+ * @param display the display value to set.
+ * @return the OperationInner object itself.
+ */
+ public OperationInner withDisplay(OperationDisplay display) {
+ this.display = display;
+ return this;
+ }
+
+ /**
+ * Get the origin property: The origin of operations.
+ *
+ * @return the origin value.
+ */
+ public String origin() {
+ return this.origin;
+ }
+
+ /**
+ * Set the origin property: The origin of operations.
+ *
+ * @param origin the origin value to set.
+ * @return the OperationInner object itself.
+ */
+ public OperationInner withOrigin(String origin) {
+ this.origin = origin;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (display() != null) {
+ display().validate();
+ }
+ }
+}
diff --git a/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/fluent/models/QueryResponseInner.java b/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/fluent/models/QueryResponseInner.java
new file mode 100644
index 000000000000..83fa86a1ccad
--- /dev/null
+++ b/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/fluent/models/QueryResponseInner.java
@@ -0,0 +1,204 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.resourcegraph.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.resourcegraph.models.Facet;
+import com.azure.resourcemanager.resourcegraph.models.ResultTruncated;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Query result. */
+@Fluent
+public final class QueryResponseInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(QueryResponseInner.class);
+
+ /*
+ * Number of total records matching the query.
+ */
+ @JsonProperty(value = "totalRecords", required = true)
+ private long totalRecords;
+
+ /*
+ * Number of records returned in the current response. In the case of
+ * paging, this is the number of records in the current page.
+ */
+ @JsonProperty(value = "count", required = true)
+ private long count;
+
+ /*
+ * Indicates whether the query results are truncated.
+ */
+ @JsonProperty(value = "resultTruncated", required = true)
+ private ResultTruncated resultTruncated;
+
+ /*
+ * When present, the value can be passed to a subsequent query call
+ * (together with the same query and subscriptions used in the current
+ * request) to retrieve the next page of data.
+ */
+ @JsonProperty(value = "$skipToken")
+ private String skipToken;
+
+ /*
+ * Query output in tabular format.
+ */
+ @JsonProperty(value = "data", required = true)
+ private Object data;
+
+ /*
+ * Query facets.
+ */
+ @JsonProperty(value = "facets")
+ private List facets;
+
+ /**
+ * Get the totalRecords property: Number of total records matching the query.
+ *
+ * @return the totalRecords value.
+ */
+ public long totalRecords() {
+ return this.totalRecords;
+ }
+
+ /**
+ * Set the totalRecords property: Number of total records matching the query.
+ *
+ * @param totalRecords the totalRecords value to set.
+ * @return the QueryResponseInner object itself.
+ */
+ public QueryResponseInner withTotalRecords(long totalRecords) {
+ this.totalRecords = totalRecords;
+ return this;
+ }
+
+ /**
+ * Get the count property: Number of records returned in the current response. In the case of paging, this is the
+ * number of records in the current page.
+ *
+ * @return the count value.
+ */
+ public long count() {
+ return this.count;
+ }
+
+ /**
+ * Set the count property: Number of records returned in the current response. In the case of paging, this is the
+ * number of records in the current page.
+ *
+ * @param count the count value to set.
+ * @return the QueryResponseInner object itself.
+ */
+ public QueryResponseInner withCount(long count) {
+ this.count = count;
+ return this;
+ }
+
+ /**
+ * Get the resultTruncated property: Indicates whether the query results are truncated.
+ *
+ * @return the resultTruncated value.
+ */
+ public ResultTruncated resultTruncated() {
+ return this.resultTruncated;
+ }
+
+ /**
+ * Set the resultTruncated property: Indicates whether the query results are truncated.
+ *
+ * @param resultTruncated the resultTruncated value to set.
+ * @return the QueryResponseInner object itself.
+ */
+ public QueryResponseInner withResultTruncated(ResultTruncated resultTruncated) {
+ this.resultTruncated = resultTruncated;
+ return this;
+ }
+
+ /**
+ * Get the skipToken property: When present, the value can be passed to a subsequent query call (together with the
+ * same query and subscriptions used in the current request) to retrieve the next page of data.
+ *
+ * @return the skipToken value.
+ */
+ public String skipToken() {
+ return this.skipToken;
+ }
+
+ /**
+ * Set the skipToken property: When present, the value can be passed to a subsequent query call (together with the
+ * same query and subscriptions used in the current request) to retrieve the next page of data.
+ *
+ * @param skipToken the skipToken value to set.
+ * @return the QueryResponseInner object itself.
+ */
+ public QueryResponseInner withSkipToken(String skipToken) {
+ this.skipToken = skipToken;
+ return this;
+ }
+
+ /**
+ * Get the data property: Query output in tabular format.
+ *
+ * @return the data value.
+ */
+ public Object data() {
+ return this.data;
+ }
+
+ /**
+ * Set the data property: Query output in tabular format.
+ *
+ * @param data the data value to set.
+ * @return the QueryResponseInner object itself.
+ */
+ public QueryResponseInner withData(Object data) {
+ this.data = data;
+ return this;
+ }
+
+ /**
+ * Get the facets property: Query facets.
+ *
+ * @return the facets value.
+ */
+ public List facets() {
+ return this.facets;
+ }
+
+ /**
+ * Set the facets property: Query facets.
+ *
+ * @param facets the facets value to set.
+ * @return the QueryResponseInner object itself.
+ */
+ public QueryResponseInner withFacets(List facets) {
+ this.facets = facets;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (resultTruncated() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property resultTruncated in model QueryResponseInner"));
+ }
+ if (data() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property data in model QueryResponseInner"));
+ }
+ if (facets() != null) {
+ facets().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/fluent/models/ResourceChangeDataInner.java b/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/fluent/models/ResourceChangeDataInner.java
new file mode 100644
index 000000000000..94462586eadc
--- /dev/null
+++ b/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/fluent/models/ResourceChangeDataInner.java
@@ -0,0 +1,186 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.resourcegraph.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.resourcegraph.models.ChangeType;
+import com.azure.resourcemanager.resourcegraph.models.ResourcePropertyChange;
+import com.azure.resourcemanager.resourcegraph.models.ResourceSnapshotData;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Data on a specific change, represented by a pair of before and after resource snapshots. */
+@Fluent
+public final class ResourceChangeDataInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ResourceChangeDataInner.class);
+
+ /*
+ * The change ID. Valid and unique within the specified resource only.
+ */
+ @JsonProperty(value = "changeId", required = true)
+ private String changeId;
+
+ /*
+ * The snapshot before the change.
+ */
+ @JsonProperty(value = "beforeSnapshot", required = true)
+ private ResourceSnapshotData beforeSnapshot;
+
+ /*
+ * The snapshot after the change.
+ */
+ @JsonProperty(value = "afterSnapshot", required = true)
+ private ResourceSnapshotData afterSnapshot;
+
+ /*
+ * The change type for snapshot. PropertyChanges will be provided in case
+ * of Update change type
+ */
+ @JsonProperty(value = "changeType")
+ private ChangeType changeType;
+
+ /*
+ * An array of resource property change
+ */
+ @JsonProperty(value = "propertyChanges")
+ private List propertyChanges;
+
+ /**
+ * Get the changeId property: The change ID. Valid and unique within the specified resource only.
+ *
+ * @return the changeId value.
+ */
+ public String changeId() {
+ return this.changeId;
+ }
+
+ /**
+ * Set the changeId property: The change ID. Valid and unique within the specified resource only.
+ *
+ * @param changeId the changeId value to set.
+ * @return the ResourceChangeDataInner object itself.
+ */
+ public ResourceChangeDataInner withChangeId(String changeId) {
+ this.changeId = changeId;
+ return this;
+ }
+
+ /**
+ * Get the beforeSnapshot property: The snapshot before the change.
+ *
+ * @return the beforeSnapshot value.
+ */
+ public ResourceSnapshotData beforeSnapshot() {
+ return this.beforeSnapshot;
+ }
+
+ /**
+ * Set the beforeSnapshot property: The snapshot before the change.
+ *
+ * @param beforeSnapshot the beforeSnapshot value to set.
+ * @return the ResourceChangeDataInner object itself.
+ */
+ public ResourceChangeDataInner withBeforeSnapshot(ResourceSnapshotData beforeSnapshot) {
+ this.beforeSnapshot = beforeSnapshot;
+ return this;
+ }
+
+ /**
+ * Get the afterSnapshot property: The snapshot after the change.
+ *
+ * @return the afterSnapshot value.
+ */
+ public ResourceSnapshotData afterSnapshot() {
+ return this.afterSnapshot;
+ }
+
+ /**
+ * Set the afterSnapshot property: The snapshot after the change.
+ *
+ * @param afterSnapshot the afterSnapshot value to set.
+ * @return the ResourceChangeDataInner object itself.
+ */
+ public ResourceChangeDataInner withAfterSnapshot(ResourceSnapshotData afterSnapshot) {
+ this.afterSnapshot = afterSnapshot;
+ return this;
+ }
+
+ /**
+ * Get the changeType property: The change type for snapshot. PropertyChanges will be provided in case of Update
+ * change type.
+ *
+ * @return the changeType value.
+ */
+ public ChangeType changeType() {
+ return this.changeType;
+ }
+
+ /**
+ * Set the changeType property: The change type for snapshot. PropertyChanges will be provided in case of Update
+ * change type.
+ *
+ * @param changeType the changeType value to set.
+ * @return the ResourceChangeDataInner object itself.
+ */
+ public ResourceChangeDataInner withChangeType(ChangeType changeType) {
+ this.changeType = changeType;
+ return this;
+ }
+
+ /**
+ * Get the propertyChanges property: An array of resource property change.
+ *
+ * @return the propertyChanges value.
+ */
+ public List propertyChanges() {
+ return this.propertyChanges;
+ }
+
+ /**
+ * Set the propertyChanges property: An array of resource property change.
+ *
+ * @param propertyChanges the propertyChanges value to set.
+ * @return the ResourceChangeDataInner object itself.
+ */
+ public ResourceChangeDataInner withPropertyChanges(List propertyChanges) {
+ this.propertyChanges = propertyChanges;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (changeId() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property changeId in model ResourceChangeDataInner"));
+ }
+ if (beforeSnapshot() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property beforeSnapshot in model ResourceChangeDataInner"));
+ } else {
+ beforeSnapshot().validate();
+ }
+ if (afterSnapshot() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property afterSnapshot in model ResourceChangeDataInner"));
+ } else {
+ afterSnapshot().validate();
+ }
+ if (propertyChanges() != null) {
+ propertyChanges().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/fluent/models/ResourceChangeListInner.java b/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/fluent/models/ResourceChangeListInner.java
new file mode 100644
index 000000000000..51a35d029c48
--- /dev/null
+++ b/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/fluent/models/ResourceChangeListInner.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.resourcegraph.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** A list of changes associated with a resource over a specific time interval. */
+@Fluent
+public final class ResourceChangeListInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ResourceChangeListInner.class);
+
+ /*
+ * The pageable value returned by the operation, i.e. a list of changes to
+ * the resource.
+ *
+ * - The list is ordered from the most recent changes to the least recent
+ * changes.
+ * - This list will be empty if there were no changes during the requested
+ * interval.
+ * - The `Before` snapshot timestamp value of the oldest change can be
+ * outside of the specified time interval.
+ */
+ @JsonProperty(value = "changes")
+ private List changes;
+
+ /*
+ * Skip token that encodes the skip information while executing the current
+ * request
+ */
+ @JsonProperty(value = "$skipToken")
+ private Object skipToken;
+
+ /**
+ * Get the changes property: The pageable value returned by the operation, i.e. a list of changes to the resource.
+ *
+ *
- The list is ordered from the most recent changes to the least recent changes. - This list will be empty if
+ * there were no changes during the requested interval. - The `Before` snapshot timestamp value of the oldest change
+ * can be outside of the specified time interval.
+ *
+ * @return the changes value.
+ */
+ public List changes() {
+ return this.changes;
+ }
+
+ /**
+ * Set the changes property: The pageable value returned by the operation, i.e. a list of changes to the resource.
+ *
+ *
- The list is ordered from the most recent changes to the least recent changes. - This list will be empty if
+ * there were no changes during the requested interval. - The `Before` snapshot timestamp value of the oldest change
+ * can be outside of the specified time interval.
+ *
+ * @param changes the changes value to set.
+ * @return the ResourceChangeListInner object itself.
+ */
+ public ResourceChangeListInner withChanges(List changes) {
+ this.changes = changes;
+ return this;
+ }
+
+ /**
+ * Get the skipToken property: Skip token that encodes the skip information while executing the current request.
+ *
+ * @return the skipToken value.
+ */
+ public Object skipToken() {
+ return this.skipToken;
+ }
+
+ /**
+ * Set the skipToken property: Skip token that encodes the skip information while executing the current request.
+ *
+ * @param skipToken the skipToken value to set.
+ * @return the ResourceChangeListInner object itself.
+ */
+ public ResourceChangeListInner withSkipToken(Object skipToken) {
+ this.skipToken = skipToken;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (changes() != null) {
+ changes().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/fluent/models/package-info.java b/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/fluent/models/package-info.java
new file mode 100644
index 000000000000..5410d51bcbe0
--- /dev/null
+++ b/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/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 ResourceGraphClient. Azure Resource Graph API Reference. */
+package com.azure.resourcemanager.resourcegraph.fluent.models;
diff --git a/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/fluent/package-info.java b/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/fluent/package-info.java
new file mode 100644
index 000000000000..cefdb4e58109
--- /dev/null
+++ b/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/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 ResourceGraphClient. Azure Resource Graph API Reference. */
+package com.azure.resourcemanager.resourcegraph.fluent;
diff --git a/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/implementation/OperationImpl.java b/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/implementation/OperationImpl.java
new file mode 100644
index 000000000000..2fb920f4adeb
--- /dev/null
+++ b/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/implementation/OperationImpl.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.resourcegraph.implementation;
+
+import com.azure.resourcemanager.resourcegraph.ResourceGraphManager;
+import com.azure.resourcemanager.resourcegraph.fluent.models.OperationInner;
+import com.azure.resourcemanager.resourcegraph.models.Operation;
+import com.azure.resourcemanager.resourcegraph.models.OperationDisplay;
+
+public final class OperationImpl implements Operation {
+ private OperationInner innerObject;
+
+ private final ResourceGraphManager serviceManager;
+
+ OperationImpl(OperationInner innerObject, ResourceGraphManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ }
+
+ public String name() {
+ return this.innerModel().name();
+ }
+
+ public OperationDisplay display() {
+ return this.innerModel().display();
+ }
+
+ public String origin() {
+ return this.innerModel().origin();
+ }
+
+ public OperationInner innerModel() {
+ return this.innerObject;
+ }
+
+ private ResourceGraphManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/implementation/OperationsClientImpl.java b/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/implementation/OperationsClientImpl.java
new file mode 100644
index 000000000000..715a5a11daf4
--- /dev/null
+++ b/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/implementation/OperationsClientImpl.java
@@ -0,0 +1,176 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.resourcegraph.implementation;
+
+import com.azure.core.annotation.ExpectedResponses;
+import com.azure.core.annotation.Get;
+import com.azure.core.annotation.HeaderParam;
+import com.azure.core.annotation.Headers;
+import com.azure.core.annotation.Host;
+import com.azure.core.annotation.HostParam;
+import com.azure.core.annotation.QueryParam;
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceInterface;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.annotation.UnexpectedResponseExceptionType;
+import com.azure.core.http.rest.PagedFlux;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.PagedResponse;
+import com.azure.core.http.rest.PagedResponseBase;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.RestProxy;
+import com.azure.core.management.exception.ManagementException;
+import com.azure.core.util.Context;
+import com.azure.core.util.FluxUtil;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.resourcegraph.fluent.OperationsClient;
+import com.azure.resourcemanager.resourcegraph.fluent.models.OperationInner;
+import com.azure.resourcemanager.resourcegraph.models.OperationListResult;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in OperationsClient. */
+public final class OperationsClientImpl implements OperationsClient {
+ private final ClientLogger logger = new ClientLogger(OperationsClientImpl.class);
+
+ /** The proxy service used to perform REST calls. */
+ private final OperationsService service;
+
+ /** The service client containing this operation class. */
+ private final ResourceGraphClientImpl client;
+
+ /**
+ * Initializes an instance of OperationsClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ OperationsClientImpl(ResourceGraphClientImpl client) {
+ this.service =
+ RestProxy.create(OperationsService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for ResourceGraphClientOperations to be used by the proxy service to
+ * perform REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "ResourceGraphClientO")
+ private interface OperationsService {
+ @Headers({"Content-Type: application/json"})
+ @Get("/providers/Microsoft.ResourceGraph/operations")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> list(
+ @HostParam("$host") String endpoint,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Lists all of the available REST API operations.
+ *
+ * @throws 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 request to list Resource Graph operations.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync() {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context -> service.list(this.client.getEndpoint(), this.client.getApiVersion(), accept, context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(), res.getStatusCode(), res.getHeaders(), res.getValue().value(), null, null))
+ .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext())));
+ }
+
+ /**
+ * Lists all of the available REST API operations.
+ *
+ * @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 result of the request to list Resource Graph operations.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .list(this.client.getEndpoint(), this.client.getApiVersion(), accept, context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(), res.getStatusCode(), res.getHeaders(), res.getValue().value(), null, null));
+ }
+
+ /**
+ * Lists all of the available REST API operations.
+ *
+ * @throws 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 request to list Resource Graph operations.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync() {
+ return new PagedFlux<>(() -> listSinglePageAsync());
+ }
+
+ /**
+ * Lists all of the available REST API operations.
+ *
+ * @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 result of the request to list Resource Graph operations.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(Context context) {
+ return new PagedFlux<>(() -> listSinglePageAsync(context));
+ }
+
+ /**
+ * Lists all of the available REST API operations.
+ *
+ * @throws 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 request to list Resource Graph operations.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list() {
+ return new PagedIterable<>(listAsync());
+ }
+
+ /**
+ * Lists all of the available REST API operations.
+ *
+ * @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 result of the request to list Resource Graph operations.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(Context context) {
+ return new PagedIterable<>(listAsync(context));
+ }
+}
diff --git a/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/implementation/OperationsImpl.java b/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/implementation/OperationsImpl.java
new file mode 100644
index 000000000000..c94b82433a36
--- /dev/null
+++ b/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/implementation/OperationsImpl.java
@@ -0,0 +1,46 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.resourcegraph.implementation;
+
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.resourcegraph.ResourceGraphManager;
+import com.azure.resourcemanager.resourcegraph.fluent.OperationsClient;
+import com.azure.resourcemanager.resourcegraph.fluent.models.OperationInner;
+import com.azure.resourcemanager.resourcegraph.models.Operation;
+import com.azure.resourcemanager.resourcegraph.models.Operations;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
+public final class OperationsImpl implements Operations {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(OperationsImpl.class);
+
+ private final OperationsClient innerClient;
+
+ private final ResourceGraphManager serviceManager;
+
+ public OperationsImpl(OperationsClient innerClient, ResourceGraphManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public PagedIterable list() {
+ PagedIterable inner = this.serviceClient().list();
+ return inner.mapPage(inner1 -> new OperationImpl(inner1, this.manager()));
+ }
+
+ public PagedIterable list(Context context) {
+ PagedIterable inner = this.serviceClient().list(context);
+ return inner.mapPage(inner1 -> new OperationImpl(inner1, this.manager()));
+ }
+
+ private OperationsClient serviceClient() {
+ return this.innerClient;
+ }
+
+ private ResourceGraphManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/implementation/QueryResponseImpl.java b/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/implementation/QueryResponseImpl.java
new file mode 100644
index 000000000000..d5590d075815
--- /dev/null
+++ b/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/implementation/QueryResponseImpl.java
@@ -0,0 +1,61 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.resourcegraph.implementation;
+
+import com.azure.resourcemanager.resourcegraph.ResourceGraphManager;
+import com.azure.resourcemanager.resourcegraph.fluent.models.QueryResponseInner;
+import com.azure.resourcemanager.resourcegraph.models.Facet;
+import com.azure.resourcemanager.resourcegraph.models.QueryResponse;
+import com.azure.resourcemanager.resourcegraph.models.ResultTruncated;
+import java.util.Collections;
+import java.util.List;
+
+public final class QueryResponseImpl implements QueryResponse {
+ private QueryResponseInner innerObject;
+
+ private final ResourceGraphManager serviceManager;
+
+ QueryResponseImpl(QueryResponseInner innerObject, ResourceGraphManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ }
+
+ public long totalRecords() {
+ return this.innerModel().totalRecords();
+ }
+
+ public long count() {
+ return this.innerModel().count();
+ }
+
+ public ResultTruncated resultTruncated() {
+ return this.innerModel().resultTruncated();
+ }
+
+ public String skipToken() {
+ return this.innerModel().skipToken();
+ }
+
+ public Object data() {
+ return this.innerModel().data();
+ }
+
+ public List facets() {
+ List inner = this.innerModel().facets();
+ if (inner != null) {
+ return Collections.unmodifiableList(inner);
+ } else {
+ return Collections.emptyList();
+ }
+ }
+
+ public QueryResponseInner innerModel() {
+ return this.innerObject;
+ }
+
+ private ResourceGraphManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/implementation/ResourceChangeDataImpl.java b/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/implementation/ResourceChangeDataImpl.java
new file mode 100644
index 000000000000..3fb317d47bf5
--- /dev/null
+++ b/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/implementation/ResourceChangeDataImpl.java
@@ -0,0 +1,58 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.resourcegraph.implementation;
+
+import com.azure.resourcemanager.resourcegraph.ResourceGraphManager;
+import com.azure.resourcemanager.resourcegraph.fluent.models.ResourceChangeDataInner;
+import com.azure.resourcemanager.resourcegraph.models.ChangeType;
+import com.azure.resourcemanager.resourcegraph.models.ResourceChangeData;
+import com.azure.resourcemanager.resourcegraph.models.ResourcePropertyChange;
+import com.azure.resourcemanager.resourcegraph.models.ResourceSnapshotData;
+import java.util.Collections;
+import java.util.List;
+
+public final class ResourceChangeDataImpl implements ResourceChangeData {
+ private ResourceChangeDataInner innerObject;
+
+ private final ResourceGraphManager serviceManager;
+
+ ResourceChangeDataImpl(ResourceChangeDataInner innerObject, ResourceGraphManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ }
+
+ public String changeId() {
+ return this.innerModel().changeId();
+ }
+
+ public ResourceSnapshotData beforeSnapshot() {
+ return this.innerModel().beforeSnapshot();
+ }
+
+ public ResourceSnapshotData afterSnapshot() {
+ return this.innerModel().afterSnapshot();
+ }
+
+ public ChangeType changeType() {
+ return this.innerModel().changeType();
+ }
+
+ public List propertyChanges() {
+ List inner = this.innerModel().propertyChanges();
+ if (inner != null) {
+ return Collections.unmodifiableList(inner);
+ } else {
+ return Collections.emptyList();
+ }
+ }
+
+ public ResourceChangeDataInner innerModel() {
+ return this.innerObject;
+ }
+
+ private ResourceGraphManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/implementation/ResourceChangeListImpl.java b/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/implementation/ResourceChangeListImpl.java
new file mode 100644
index 000000000000..cebd7bb16938
--- /dev/null
+++ b/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/implementation/ResourceChangeListImpl.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.resourcegraph.implementation;
+
+import com.azure.resourcemanager.resourcegraph.ResourceGraphManager;
+import com.azure.resourcemanager.resourcegraph.fluent.models.ResourceChangeDataInner;
+import com.azure.resourcemanager.resourcegraph.fluent.models.ResourceChangeListInner;
+import com.azure.resourcemanager.resourcegraph.models.ResourceChangeData;
+import com.azure.resourcemanager.resourcegraph.models.ResourceChangeList;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+
+public final class ResourceChangeListImpl implements ResourceChangeList {
+ private ResourceChangeListInner innerObject;
+
+ private final ResourceGraphManager serviceManager;
+
+ ResourceChangeListImpl(ResourceChangeListInner innerObject, ResourceGraphManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ }
+
+ public List changes() {
+ List inner = this.innerModel().changes();
+ if (inner != null) {
+ return Collections
+ .unmodifiableList(
+ inner
+ .stream()
+ .map(inner1 -> new ResourceChangeDataImpl(inner1, this.manager()))
+ .collect(Collectors.toList()));
+ } else {
+ return Collections.emptyList();
+ }
+ }
+
+ public Object skipToken() {
+ return this.innerModel().skipToken();
+ }
+
+ public ResourceChangeListInner innerModel() {
+ return this.innerObject;
+ }
+
+ private ResourceGraphManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/implementation/ResourceGraphClientBuilder.java b/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/implementation/ResourceGraphClientBuilder.java
new file mode 100644
index 000000000000..1240647ffde4
--- /dev/null
+++ b/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/implementation/ResourceGraphClientBuilder.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.resourcegraph.implementation;
+
+import com.azure.core.annotation.ServiceClientBuilder;
+import com.azure.core.http.HttpPipeline;
+import com.azure.core.http.HttpPipelineBuilder;
+import com.azure.core.http.policy.CookiePolicy;
+import com.azure.core.http.policy.RetryPolicy;
+import com.azure.core.http.policy.UserAgentPolicy;
+import com.azure.core.management.AzureEnvironment;
+import com.azure.core.management.serializer.SerializerFactory;
+import com.azure.core.util.serializer.SerializerAdapter;
+import java.time.Duration;
+
+/** A builder for creating a new instance of the ResourceGraphClientImpl type. */
+@ServiceClientBuilder(serviceClients = {ResourceGraphClientImpl.class})
+public final class ResourceGraphClientBuilder {
+ /*
+ * server parameter
+ */
+ private String endpoint;
+
+ /**
+ * Sets server parameter.
+ *
+ * @param endpoint the endpoint value.
+ * @return the ResourceGraphClientBuilder.
+ */
+ public ResourceGraphClientBuilder endpoint(String endpoint) {
+ this.endpoint = endpoint;
+ return this;
+ }
+
+ /*
+ * The environment to connect to
+ */
+ private AzureEnvironment environment;
+
+ /**
+ * Sets The environment to connect to.
+ *
+ * @param environment the environment value.
+ * @return the ResourceGraphClientBuilder.
+ */
+ public ResourceGraphClientBuilder environment(AzureEnvironment environment) {
+ this.environment = environment;
+ return this;
+ }
+
+ /*
+ * The default poll interval for long-running operation
+ */
+ private Duration defaultPollInterval;
+
+ /**
+ * Sets The default poll interval for long-running operation.
+ *
+ * @param defaultPollInterval the defaultPollInterval value.
+ * @return the ResourceGraphClientBuilder.
+ */
+ public ResourceGraphClientBuilder defaultPollInterval(Duration defaultPollInterval) {
+ this.defaultPollInterval = defaultPollInterval;
+ return this;
+ }
+
+ /*
+ * The HTTP pipeline to send requests through
+ */
+ private HttpPipeline pipeline;
+
+ /**
+ * Sets The HTTP pipeline to send requests through.
+ *
+ * @param pipeline the pipeline value.
+ * @return the ResourceGraphClientBuilder.
+ */
+ public ResourceGraphClientBuilder pipeline(HttpPipeline pipeline) {
+ this.pipeline = pipeline;
+ return this;
+ }
+
+ /*
+ * The serializer to serialize an object into a string
+ */
+ private SerializerAdapter serializerAdapter;
+
+ /**
+ * Sets The serializer to serialize an object into a string.
+ *
+ * @param serializerAdapter the serializerAdapter value.
+ * @return the ResourceGraphClientBuilder.
+ */
+ public ResourceGraphClientBuilder serializerAdapter(SerializerAdapter serializerAdapter) {
+ this.serializerAdapter = serializerAdapter;
+ return this;
+ }
+
+ /**
+ * Builds an instance of ResourceGraphClientImpl with the provided parameters.
+ *
+ * @return an instance of ResourceGraphClientImpl.
+ */
+ public ResourceGraphClientImpl buildClient() {
+ if (endpoint == null) {
+ this.endpoint = "https://management.azure.com";
+ }
+ if (environment == null) {
+ this.environment = AzureEnvironment.AZURE;
+ }
+ if (defaultPollInterval == null) {
+ this.defaultPollInterval = Duration.ofSeconds(30);
+ }
+ if (pipeline == null) {
+ this.pipeline =
+ new HttpPipelineBuilder()
+ .policies(new UserAgentPolicy(), new RetryPolicy(), new CookiePolicy())
+ .build();
+ }
+ if (serializerAdapter == null) {
+ this.serializerAdapter = SerializerFactory.createDefaultManagementSerializerAdapter();
+ }
+ ResourceGraphClientImpl client =
+ new ResourceGraphClientImpl(pipeline, serializerAdapter, defaultPollInterval, environment, endpoint);
+ return client;
+ }
+}
diff --git a/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/implementation/ResourceGraphClientImpl.java b/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/implementation/ResourceGraphClientImpl.java
new file mode 100644
index 000000000000..4f135eae6e56
--- /dev/null
+++ b/sdk/resourcegraph/azure-resourcemanager-resourcegraph/src/main/java/com/azure/resourcemanager/resourcegraph/implementation/ResourceGraphClientImpl.java
@@ -0,0 +1,292 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.resourcegraph.implementation;
+
+import com.azure.core.annotation.ServiceClient;
+import com.azure.core.http.HttpHeaders;
+import com.azure.core.http.HttpPipeline;
+import com.azure.core.http.HttpResponse;
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.AzureEnvironment;
+import com.azure.core.management.exception.ManagementError;
+import com.azure.core.management.exception.ManagementException;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.management.polling.PollerFactory;
+import com.azure.core.util.Context;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.core.util.polling.AsyncPollResponse;
+import com.azure.core.util.polling.LongRunningOperationStatus;
+import com.azure.core.util.polling.PollerFlux;
+import com.azure.core.util.serializer.SerializerAdapter;
+import com.azure.core.util.serializer.SerializerEncoding;
+import com.azure.resourcemanager.resourcegraph.fluent.OperationsClient;
+import com.azure.resourcemanager.resourcegraph.fluent.ResourceGraphClient;
+import com.azure.resourcemanager.resourcegraph.fluent.ResourceProvidersClient;
+import java.io.IOException;
+import java.lang.reflect.Type;
+import java.nio.ByteBuffer;
+import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
+import java.time.Duration;
+import java.util.Map;
+import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
+
+/** Initializes a new instance of the ResourceGraphClientImpl type. */
+@ServiceClient(builder = ResourceGraphClientBuilder.class)
+public final class ResourceGraphClientImpl implements ResourceGraphClient {
+ private final ClientLogger logger = new ClientLogger(ResourceGraphClientImpl.class);
+
+ /** server parameter. */
+ private final String endpoint;
+
+ /**
+ * Gets server parameter.
+ *
+ * @return the endpoint value.
+ */
+ public String getEndpoint() {
+ return this.endpoint;
+ }
+
+ /** Api Version. */
+ private final String apiVersion;
+
+ /**
+ * Gets Api Version.
+ *
+ * @return the apiVersion value.
+ */
+ public String getApiVersion() {
+ return this.apiVersion;
+ }
+
+ /** The HTTP pipeline to send requests through. */
+ private final HttpPipeline httpPipeline;
+
+ /**
+ * Gets The HTTP pipeline to send requests through.
+ *
+ * @return the httpPipeline value.
+ */
+ public HttpPipeline getHttpPipeline() {
+ return this.httpPipeline;
+ }
+
+ /** The serializer to serialize an object into a string. */
+ private final SerializerAdapter serializerAdapter;
+
+ /**
+ * Gets The serializer to serialize an object into a string.
+ *
+ * @return the serializerAdapter value.
+ */
+ SerializerAdapter getSerializerAdapter() {
+ return this.serializerAdapter;
+ }
+
+ /** The default poll interval for long-running operation. */
+ private final Duration defaultPollInterval;
+
+ /**
+ * Gets The default poll interval for long-running operation.
+ *
+ * @return the defaultPollInterval value.
+ */
+ public Duration getDefaultPollInterval() {
+ return this.defaultPollInterval;
+ }
+
+ /** The ResourceProvidersClient object to access its operations. */
+ private final ResourceProvidersClient resourceProviders;
+
+ /**
+ * Gets the ResourceProvidersClient object to access its operations.
+ *
+ * @return the ResourceProvidersClient object.
+ */
+ public ResourceProvidersClient getResourceProviders() {
+ return this.resourceProviders;
+ }
+
+ /** The OperationsClient object to access its operations. */
+ private final OperationsClient operations;
+
+ /**
+ * Gets the OperationsClient object to access its operations.
+ *
+ * @return the OperationsClient object.
+ */
+ public OperationsClient getOperations() {
+ return this.operations;
+ }
+
+ /**
+ * Initializes an instance of ResourceGraphClient client.
+ *
+ * @param httpPipeline The HTTP pipeline to send requests through.
+ * @param serializerAdapter The serializer to serialize an object into a string.
+ * @param defaultPollInterval The default poll interval for long-running operation.
+ * @param environment The Azure environment.
+ * @param endpoint server parameter.
+ */
+ ResourceGraphClientImpl(
+ HttpPipeline httpPipeline,
+ SerializerAdapter serializerAdapter,
+ Duration defaultPollInterval,
+ AzureEnvironment environment,
+ String endpoint) {
+ this.httpPipeline = httpPipeline;
+ this.serializerAdapter = serializerAdapter;
+ this.defaultPollInterval = defaultPollInterval;
+ this.endpoint = endpoint;
+ this.apiVersion = "2020-04-01-preview";
+ this.resourceProviders = new ResourceProvidersClientImpl(this);
+ this.operations = new OperationsClientImpl(this);
+ }
+
+ /**
+ * Gets default client context.
+ *
+ * @return the default client context.
+ */
+ public Context getContext() {
+ return Context.NONE;
+ }
+
+ /**
+ * Merges default client context with provided context.
+ *
+ * @param context the context to be merged with default client context.
+ * @return the merged context.
+ */
+ public Context mergeContext(Context context) {
+ for (Map.Entry