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 Authorization service API entry point.
+ *
+ * @param credential the credential to use.
+ * @param profile the Azure profile for client.
+ * @return the Authorization service API instance.
+ */
+ public AuthorizationManager 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.authorization.generated")
+ .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 AuthorizationManager(httpPipeline, profile, defaultPollInterval);
+ }
+ }
+
+ /**
+ * Gets the resource collection API of ProviderOperationsMetadatas.
+ *
+ * @return Resource collection API of ProviderOperationsMetadatas.
+ */
+ public ProviderOperationsMetadatas providerOperationsMetadatas() {
+ if (this.providerOperationsMetadatas == null) {
+ this.providerOperationsMetadatas =
+ new ProviderOperationsMetadatasImpl(clientObject.getProviderOperationsMetadatas(), this);
+ }
+ return providerOperationsMetadatas;
+ }
+
+ /**
+ * Gets the resource collection API of Permissions.
+ *
+ * @return Resource collection API of Permissions.
+ */
+ public Permissions permissions() {
+ if (this.permissions == null) {
+ this.permissions = new PermissionsImpl(clientObject.getPermissions(), this);
+ }
+ return permissions;
+ }
+
+ /**
+ * Gets the resource collection API of RoleDefinitions.
+ *
+ * @return Resource collection API of RoleDefinitions.
+ */
+ public RoleDefinitions roleDefinitions() {
+ if (this.roleDefinitions == null) {
+ this.roleDefinitions = new RoleDefinitionsImpl(clientObject.getRoleDefinitions(), this);
+ }
+ return roleDefinitions;
+ }
+
+ /**
+ * Gets the resource collection API of DenyAssignments.
+ *
+ * @return Resource collection API of DenyAssignments.
+ */
+ public DenyAssignments denyAssignments() {
+ if (this.denyAssignments == null) {
+ this.denyAssignments = new DenyAssignmentsImpl(clientObject.getDenyAssignments(), this);
+ }
+ return denyAssignments;
+ }
+
+ /**
+ * Gets the resource collection API of RoleAssignmentMetrics.
+ *
+ * @return Resource collection API of RoleAssignmentMetrics.
+ */
+ public RoleAssignmentMetrics roleAssignmentMetrics() {
+ if (this.roleAssignmentMetrics == null) {
+ this.roleAssignmentMetrics = new RoleAssignmentMetricsImpl(clientObject.getRoleAssignmentMetrics(), this);
+ }
+ return roleAssignmentMetrics;
+ }
+
+ /**
+ * Gets the resource collection API of EligibleChildResources.
+ *
+ * @return Resource collection API of EligibleChildResources.
+ */
+ public EligibleChildResources eligibleChildResources() {
+ if (this.eligibleChildResources == null) {
+ this.eligibleChildResources =
+ new EligibleChildResourcesImpl(clientObject.getEligibleChildResources(), this);
+ }
+ return eligibleChildResources;
+ }
+
+ /**
+ * Gets the resource collection API of RoleAssignmentSchedules.
+ *
+ * @return Resource collection API of RoleAssignmentSchedules.
+ */
+ public RoleAssignmentSchedules roleAssignmentSchedules() {
+ if (this.roleAssignmentSchedules == null) {
+ this.roleAssignmentSchedules =
+ new RoleAssignmentSchedulesImpl(clientObject.getRoleAssignmentSchedules(), this);
+ }
+ return roleAssignmentSchedules;
+ }
+
+ /**
+ * Gets the resource collection API of RoleAssignmentScheduleInstances.
+ *
+ * @return Resource collection API of RoleAssignmentScheduleInstances.
+ */
+ public RoleAssignmentScheduleInstances roleAssignmentScheduleInstances() {
+ if (this.roleAssignmentScheduleInstances == null) {
+ this.roleAssignmentScheduleInstances =
+ new RoleAssignmentScheduleInstancesImpl(clientObject.getRoleAssignmentScheduleInstances(), this);
+ }
+ return roleAssignmentScheduleInstances;
+ }
+
+ /**
+ * Gets the resource collection API of RoleAssignmentScheduleRequests.
+ *
+ * @return Resource collection API of RoleAssignmentScheduleRequests.
+ */
+ public RoleAssignmentScheduleRequests roleAssignmentScheduleRequests() {
+ if (this.roleAssignmentScheduleRequests == null) {
+ this.roleAssignmentScheduleRequests =
+ new RoleAssignmentScheduleRequestsImpl(clientObject.getRoleAssignmentScheduleRequests(), this);
+ }
+ return roleAssignmentScheduleRequests;
+ }
+
+ /**
+ * Gets the resource collection API of RoleEligibilitySchedules.
+ *
+ * @return Resource collection API of RoleEligibilitySchedules.
+ */
+ public RoleEligibilitySchedules roleEligibilitySchedules() {
+ if (this.roleEligibilitySchedules == null) {
+ this.roleEligibilitySchedules =
+ new RoleEligibilitySchedulesImpl(clientObject.getRoleEligibilitySchedules(), this);
+ }
+ return roleEligibilitySchedules;
+ }
+
+ /**
+ * Gets the resource collection API of RoleEligibilityScheduleInstances.
+ *
+ * @return Resource collection API of RoleEligibilityScheduleInstances.
+ */
+ public RoleEligibilityScheduleInstances roleEligibilityScheduleInstances() {
+ if (this.roleEligibilityScheduleInstances == null) {
+ this.roleEligibilityScheduleInstances =
+ new RoleEligibilityScheduleInstancesImpl(clientObject.getRoleEligibilityScheduleInstances(), this);
+ }
+ return roleEligibilityScheduleInstances;
+ }
+
+ /**
+ * Gets the resource collection API of RoleEligibilityScheduleRequests.
+ *
+ * @return Resource collection API of RoleEligibilityScheduleRequests.
+ */
+ public RoleEligibilityScheduleRequests roleEligibilityScheduleRequests() {
+ if (this.roleEligibilityScheduleRequests == null) {
+ this.roleEligibilityScheduleRequests =
+ new RoleEligibilityScheduleRequestsImpl(clientObject.getRoleEligibilityScheduleRequests(), this);
+ }
+ return roleEligibilityScheduleRequests;
+ }
+
+ /**
+ * Gets the resource collection API of RoleManagementPolicies.
+ *
+ * @return Resource collection API of RoleManagementPolicies.
+ */
+ public RoleManagementPolicies roleManagementPolicies() {
+ if (this.roleManagementPolicies == null) {
+ this.roleManagementPolicies =
+ new RoleManagementPoliciesImpl(clientObject.getRoleManagementPolicies(), this);
+ }
+ return roleManagementPolicies;
+ }
+
+ /**
+ * Gets the resource collection API of RoleManagementPolicyAssignments.
+ *
+ * @return Resource collection API of RoleManagementPolicyAssignments.
+ */
+ public RoleManagementPolicyAssignments roleManagementPolicyAssignments() {
+ if (this.roleManagementPolicyAssignments == null) {
+ this.roleManagementPolicyAssignments =
+ new RoleManagementPolicyAssignmentsImpl(clientObject.getRoleManagementPolicyAssignments(), this);
+ }
+ return roleManagementPolicyAssignments;
+ }
+
+ /**
+ * 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 AccessReviewScheduleDefinitions.
+ *
+ * @return Resource collection API of AccessReviewScheduleDefinitions.
+ */
+ public AccessReviewScheduleDefinitions accessReviewScheduleDefinitions() {
+ if (this.accessReviewScheduleDefinitions == null) {
+ this.accessReviewScheduleDefinitions =
+ new AccessReviewScheduleDefinitionsImpl(clientObject.getAccessReviewScheduleDefinitions(), this);
+ }
+ return accessReviewScheduleDefinitions;
+ }
+
+ /**
+ * Gets the resource collection API of AccessReviewInstances.
+ *
+ * @return Resource collection API of AccessReviewInstances.
+ */
+ public AccessReviewInstances accessReviewInstances() {
+ if (this.accessReviewInstances == null) {
+ this.accessReviewInstances = new AccessReviewInstancesImpl(clientObject.getAccessReviewInstances(), this);
+ }
+ return accessReviewInstances;
+ }
+
+ /**
+ * Gets the resource collection API of AccessReviewInstanceOperations.
+ *
+ * @return Resource collection API of AccessReviewInstanceOperations.
+ */
+ public AccessReviewInstanceOperations accessReviewInstanceOperations() {
+ if (this.accessReviewInstanceOperations == null) {
+ this.accessReviewInstanceOperations =
+ new AccessReviewInstanceOperationsImpl(clientObject.getAccessReviewInstanceOperations(), this);
+ }
+ return accessReviewInstanceOperations;
+ }
+
+ /**
+ * Gets the resource collection API of AccessReviewInstanceDecisions.
+ *
+ * @return Resource collection API of AccessReviewInstanceDecisions.
+ */
+ public AccessReviewInstanceDecisions accessReviewInstanceDecisions() {
+ if (this.accessReviewInstanceDecisions == null) {
+ this.accessReviewInstanceDecisions =
+ new AccessReviewInstanceDecisionsImpl(clientObject.getAccessReviewInstanceDecisions(), this);
+ }
+ return accessReviewInstanceDecisions;
+ }
+
+ /**
+ * Gets the resource collection API of AccessReviewDefaultSettingsOperations.
+ *
+ * @return Resource collection API of AccessReviewDefaultSettingsOperations.
+ */
+ public AccessReviewDefaultSettingsOperations accessReviewDefaultSettingsOperations() {
+ if (this.accessReviewDefaultSettingsOperations == null) {
+ this.accessReviewDefaultSettingsOperations =
+ new AccessReviewDefaultSettingsOperationsImpl(
+ clientObject.getAccessReviewDefaultSettingsOperations(), this);
+ }
+ return accessReviewDefaultSettingsOperations;
+ }
+
+ /**
+ * Gets the resource collection API of AccessReviewScheduleDefinitionsAssignedForMyApprovals.
+ *
+ * @return Resource collection API of AccessReviewScheduleDefinitionsAssignedForMyApprovals.
+ */
+ public AccessReviewScheduleDefinitionsAssignedForMyApprovals
+ accessReviewScheduleDefinitionsAssignedForMyApprovals() {
+ if (this.accessReviewScheduleDefinitionsAssignedForMyApprovals == null) {
+ this.accessReviewScheduleDefinitionsAssignedForMyApprovals =
+ new AccessReviewScheduleDefinitionsAssignedForMyApprovalsImpl(
+ clientObject.getAccessReviewScheduleDefinitionsAssignedForMyApprovals(), this);
+ }
+ return accessReviewScheduleDefinitionsAssignedForMyApprovals;
+ }
+
+ /**
+ * Gets the resource collection API of AccessReviewInstancesAssignedForMyApprovals.
+ *
+ * @return Resource collection API of AccessReviewInstancesAssignedForMyApprovals.
+ */
+ public AccessReviewInstancesAssignedForMyApprovals accessReviewInstancesAssignedForMyApprovals() {
+ if (this.accessReviewInstancesAssignedForMyApprovals == null) {
+ this.accessReviewInstancesAssignedForMyApprovals =
+ new AccessReviewInstancesAssignedForMyApprovalsImpl(
+ clientObject.getAccessReviewInstancesAssignedForMyApprovals(), this);
+ }
+ return accessReviewInstancesAssignedForMyApprovals;
+ }
+
+ /**
+ * Gets the resource collection API of AccessReviewInstanceMyDecisions.
+ *
+ * @return Resource collection API of AccessReviewInstanceMyDecisions.
+ */
+ public AccessReviewInstanceMyDecisions accessReviewInstanceMyDecisions() {
+ if (this.accessReviewInstanceMyDecisions == null) {
+ this.accessReviewInstanceMyDecisions =
+ new AccessReviewInstanceMyDecisionsImpl(clientObject.getAccessReviewInstanceMyDecisions(), this);
+ }
+ return accessReviewInstanceMyDecisions;
+ }
+
+ /**
+ * Gets the resource collection API of RoleAssignments.
+ *
+ * @return Resource collection API of RoleAssignments.
+ */
+ public RoleAssignments roleAssignments() {
+ if (this.roleAssignments == null) {
+ this.roleAssignments = new RoleAssignmentsImpl(clientObject.getRoleAssignments(), this);
+ }
+ return roleAssignments;
+ }
+
+ /**
+ * @return Wrapped service client AuthorizationManagementClient providing direct access to the underlying
+ * auto-generated API implementation, based on Azure REST API.
+ */
+ public AuthorizationManagementClient serviceClient() {
+ return this.clientObject;
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewDefaultSettingsOperationsClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewDefaultSettingsOperationsClient.java
new file mode 100644
index 0000000000000..38d659404aac5
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewDefaultSettingsOperationsClient.java
@@ -0,0 +1,66 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.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.authorization.generated.fluent.models.AccessReviewDefaultSettingsInner;
+import com.azure.resourcemanager.authorization.generated.fluent.models.AccessReviewScheduleSettings;
+
+/**
+ * An instance of this class provides access to all the operations defined in
+ * AccessReviewDefaultSettingsOperationsClient.
+ */
+public interface AccessReviewDefaultSettingsOperationsClient {
+ /**
+ * Get access review default settings for 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 access review default settings for the subscription.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AccessReviewDefaultSettingsInner get();
+
+ /**
+ * Get access review default settings for the subscription.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return access review default settings for the subscription along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(Context context);
+
+ /**
+ * Get access review default settings for the subscription.
+ *
+ * @param properties Access review schedule settings.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return access review default settings for the subscription.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AccessReviewDefaultSettingsInner put(AccessReviewScheduleSettings properties);
+
+ /**
+ * Get access review default settings for the subscription.
+ *
+ * @param properties Access review schedule settings.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return access review default settings for the subscription along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response putWithResponse(
+ AccessReviewScheduleSettings properties, Context context);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewInstanceDecisionsClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewInstanceDecisionsClient.java
new file mode 100644
index 0000000000000..d1023194da9b4
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewInstanceDecisionsClient.java
@@ -0,0 +1,45 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.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.authorization.generated.fluent.models.AccessReviewDecisionInner;
+
+/** An instance of this class provides access to all the operations defined in AccessReviewInstanceDecisionsClient. */
+public interface AccessReviewInstanceDecisionsClient {
+ /**
+ * Get access review instance decisions.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return access review instance decisions as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String scheduleDefinitionId, String id);
+
+ /**
+ * Get access review instance decisions.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @param filter The filter to apply on the operation. Other than standard filters, one custom filter option is
+ * supported : 'assignedToMeToReview()'. When one specified $filter=assignedToMeToReview(), only items that are
+ * assigned to the calling user to review are returned.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return access review instance decisions as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String scheduleDefinitionId, String id, String filter, Context context);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewInstanceMyDecisionsClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewInstanceMyDecisionsClient.java
new file mode 100644
index 0000000000000..ac3b57134c839
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewInstanceMyDecisionsClient.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.authorization.generated.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.authorization.generated.fluent.models.AccessReviewDecisionInner;
+import com.azure.resourcemanager.authorization.generated.fluent.models.AccessReviewDecisionProperties;
+
+/** An instance of this class provides access to all the operations defined in AccessReviewInstanceMyDecisionsClient. */
+public interface AccessReviewInstanceMyDecisionsClient {
+ /**
+ * Get my access review instance decisions.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return my access review instance decisions as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String scheduleDefinitionId, String id);
+
+ /**
+ * Get my access review instance decisions.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @param filter The filter to apply on the operation. Other than standard filters, one custom filter option is
+ * supported : 'assignedToMeToReview()'. When one specified $filter=assignedToMeToReview(), only items that are
+ * assigned to the calling user to review are returned.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return my access review instance decisions as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String scheduleDefinitionId, String id, String filter, Context context);
+
+ /**
+ * Get my single access review instance decision.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @param decisionId The id of the decision record.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return my single access review instance decision.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AccessReviewDecisionInner getById(String scheduleDefinitionId, String id, String decisionId);
+
+ /**
+ * Get my single access review instance decision.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @param decisionId The id of the decision record.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return my single access review instance decision along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByIdWithResponse(
+ String scheduleDefinitionId, String id, String decisionId, Context context);
+
+ /**
+ * Record a decision.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @param decisionId The id of the decision record.
+ * @param properties Access review decision properties to patch.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return access Review.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AccessReviewDecisionInner patch(
+ String scheduleDefinitionId, String id, String decisionId, AccessReviewDecisionProperties properties);
+
+ /**
+ * Record a decision.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @param decisionId The id of the decision record.
+ * @param properties Access review decision properties to patch.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return access Review along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response patchWithResponse(
+ String scheduleDefinitionId,
+ String id,
+ String decisionId,
+ AccessReviewDecisionProperties properties,
+ Context context);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewInstanceOperationsClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewInstanceOperationsClient.java
new file mode 100644
index 0000000000000..13c539519c073
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewInstanceOperationsClient.java
@@ -0,0 +1,143 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.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;
+
+/** An instance of this class provides access to all the operations defined in AccessReviewInstanceOperationsClient. */
+public interface AccessReviewInstanceOperationsClient {
+ /**
+ * An action to stop an access review instance.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 stop(String scheduleDefinitionId, String id);
+
+ /**
+ * An action to stop an access review instance.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 stopWithResponse(String scheduleDefinitionId, String id, Context context);
+
+ /**
+ * An action to reset all decisions for an access review instance.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 resetDecisions(String scheduleDefinitionId, String id);
+
+ /**
+ * An action to reset all decisions for an access review instance.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 resetDecisionsWithResponse(String scheduleDefinitionId, String id, Context context);
+
+ /**
+ * An action to apply all decisions for an access review instance.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 applyDecisions(String scheduleDefinitionId, String id);
+
+ /**
+ * An action to apply all decisions for an access review instance.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 applyDecisionsWithResponse(String scheduleDefinitionId, String id, Context context);
+
+ /**
+ * An action to send reminders for an access review instance.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 sendReminders(String scheduleDefinitionId, String id);
+
+ /**
+ * An action to send reminders for an access review instance.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 sendRemindersWithResponse(String scheduleDefinitionId, String id, Context context);
+
+ /**
+ * An action to accept recommendations for decision in an access review instance.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 acceptRecommendations(String scheduleDefinitionId, String id);
+
+ /**
+ * An action to accept recommendations for decision in an access review instance.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 acceptRecommendationsWithResponse(String scheduleDefinitionId, String id, Context context);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewInstancesAssignedForMyApprovalsClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewInstancesAssignedForMyApprovalsClient.java
new file mode 100644
index 0000000000000..04b0e71eca7b9
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewInstancesAssignedForMyApprovalsClient.java
@@ -0,0 +1,73 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.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.authorization.generated.fluent.models.AccessReviewInstanceInner;
+
+/**
+ * An instance of this class provides access to all the operations defined in
+ * AccessReviewInstancesAssignedForMyApprovalsClient.
+ */
+public interface AccessReviewInstancesAssignedForMyApprovalsClient {
+ /**
+ * Get access review instances assigned for my approval.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule 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 access review instances assigned for my approval as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String scheduleDefinitionId);
+
+ /**
+ * Get access review instances assigned for my approval.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param filter The filter to apply on the operation. Other than standard filters, one custom filter option is
+ * supported : 'assignedToMeToReview()'. When one specified $filter=assignedToMeToReview(), only items that are
+ * assigned to the calling user to review are returned.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return access review instances assigned for my approval as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String scheduleDefinitionId, String filter, Context context);
+
+ /**
+ * Get single access review instance assigned for my approval.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return single access review instance assigned for my approval.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AccessReviewInstanceInner getById(String scheduleDefinitionId, String id);
+
+ /**
+ * Get single access review instance assigned for my approval.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return single access review instance assigned for my approval along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByIdWithResponse(String scheduleDefinitionId, String id, Context context);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewInstancesClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewInstancesClient.java
new file mode 100644
index 0000000000000..188f6fdd89d27
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewInstancesClient.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.authorization.generated.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.authorization.generated.fluent.models.AccessReviewInstanceInner;
+
+/** An instance of this class provides access to all the operations defined in AccessReviewInstancesClient. */
+public interface AccessReviewInstancesClient {
+ /**
+ * Get access review instances.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule 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 access review instances as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String scheduleDefinitionId);
+
+ /**
+ * Get access review instances.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param filter The filter to apply on the operation. Other than standard filters, one custom filter option is
+ * supported : 'assignedToMeToReview()'. When one specified $filter=assignedToMeToReview(), only items that are
+ * assigned to the calling user to review are returned.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return access review instances as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String scheduleDefinitionId, String filter, Context context);
+
+ /**
+ * Get access review instances.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return access review instances.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AccessReviewInstanceInner getById(String scheduleDefinitionId, String id);
+
+ /**
+ * Get access review instances.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return access review instances along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByIdWithResponse(String scheduleDefinitionId, String id, Context context);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewScheduleDefinitionsAssignedForMyApprovalsClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewScheduleDefinitionsAssignedForMyApprovalsClient.java
new file mode 100644
index 0000000000000..5accea524040a
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewScheduleDefinitionsAssignedForMyApprovalsClient.java
@@ -0,0 +1,42 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.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.authorization.generated.fluent.models.AccessReviewScheduleDefinitionInner;
+
+/**
+ * An instance of this class provides access to all the operations defined in
+ * AccessReviewScheduleDefinitionsAssignedForMyApprovalsClient.
+ */
+public interface AccessReviewScheduleDefinitionsAssignedForMyApprovalsClient {
+ /**
+ * Get access review instances assigned for my approval.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return access review instances assigned for my approval as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Get access review instances assigned for my approval.
+ *
+ * @param filter The filter to apply on the operation. Other than standard filters, one custom filter option is
+ * supported : 'assignedToMeToReview()'. When one specified $filter=assignedToMeToReview(), only items that are
+ * assigned to the calling user to review are returned.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return access review instances assigned for my approval as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String filter, Context context);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewScheduleDefinitionsClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewScheduleDefinitionsClient.java
new file mode 100644
index 0000000000000..3caec01706baf
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewScheduleDefinitionsClient.java
@@ -0,0 +1,143 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.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.authorization.generated.fluent.models.AccessReviewScheduleDefinitionInner;
+import com.azure.resourcemanager.authorization.generated.fluent.models.AccessReviewScheduleDefinitionProperties;
+
+/** An instance of this class provides access to all the operations defined in AccessReviewScheduleDefinitionsClient. */
+public interface AccessReviewScheduleDefinitionsClient {
+ /**
+ * Get access review schedule definitions.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return access review schedule definitions as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Get access review schedule definitions.
+ *
+ * @param filter The filter to apply on the operation. Other than standard filters, one custom filter option is
+ * supported : 'assignedToMeToReview()'. When one specified $filter=assignedToMeToReview(), only items that are
+ * assigned to the calling user to review are returned.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return access review schedule definitions as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String filter, Context context);
+
+ /**
+ * Get single access review definition.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule 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 single access review definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AccessReviewScheduleDefinitionInner getById(String scheduleDefinitionId);
+
+ /**
+ * Get single access review definition.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule 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 single access review definition along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByIdWithResponse(String scheduleDefinitionId, Context context);
+
+ /**
+ * Delete access review schedule definition.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule 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 deleteById(String scheduleDefinitionId);
+
+ /**
+ * Delete access review schedule definition.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule 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 Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response deleteByIdWithResponse(String scheduleDefinitionId, Context context);
+
+ /**
+ * Create or Update access review schedule definition.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param properties Access review schedule definition 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 access Review Schedule Definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AccessReviewScheduleDefinitionInner createOrUpdateById(
+ String scheduleDefinitionId, AccessReviewScheduleDefinitionProperties properties);
+
+ /**
+ * Create or Update access review schedule definition.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param properties Access review schedule definition 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 access Review Schedule Definition along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createOrUpdateByIdWithResponse(
+ String scheduleDefinitionId, AccessReviewScheduleDefinitionProperties properties, Context context);
+
+ /**
+ * Stop access review definition.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule 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 stop(String scheduleDefinitionId);
+
+ /**
+ * Stop access review definition.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule 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 Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response stopWithResponse(String scheduleDefinitionId, Context context);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AuthorizationManagementClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AuthorizationManagementClient.java
new file mode 100644
index 0000000000000..1bcb3ef0029b9
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AuthorizationManagementClient.java
@@ -0,0 +1,208 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent;
+
+import com.azure.core.http.HttpPipeline;
+import java.time.Duration;
+
+/** The interface for AuthorizationManagementClient class. */
+public interface AuthorizationManagementClient {
+ /**
+ * Gets The ID of the target subscription.
+ *
+ * @return the subscriptionId value.
+ */
+ String getSubscriptionId();
+
+ /**
+ * Gets server parameter.
+ *
+ * @return the endpoint value.
+ */
+ String getEndpoint();
+
+ /**
+ * 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 ProviderOperationsMetadatasClient object to access its operations.
+ *
+ * @return the ProviderOperationsMetadatasClient object.
+ */
+ ProviderOperationsMetadatasClient getProviderOperationsMetadatas();
+
+ /**
+ * Gets the PermissionsClient object to access its operations.
+ *
+ * @return the PermissionsClient object.
+ */
+ PermissionsClient getPermissions();
+
+ /**
+ * Gets the RoleDefinitionsClient object to access its operations.
+ *
+ * @return the RoleDefinitionsClient object.
+ */
+ RoleDefinitionsClient getRoleDefinitions();
+
+ /**
+ * Gets the DenyAssignmentsClient object to access its operations.
+ *
+ * @return the DenyAssignmentsClient object.
+ */
+ DenyAssignmentsClient getDenyAssignments();
+
+ /**
+ * Gets the RoleAssignmentMetricsClient object to access its operations.
+ *
+ * @return the RoleAssignmentMetricsClient object.
+ */
+ RoleAssignmentMetricsClient getRoleAssignmentMetrics();
+
+ /**
+ * Gets the EligibleChildResourcesClient object to access its operations.
+ *
+ * @return the EligibleChildResourcesClient object.
+ */
+ EligibleChildResourcesClient getEligibleChildResources();
+
+ /**
+ * Gets the RoleAssignmentSchedulesClient object to access its operations.
+ *
+ * @return the RoleAssignmentSchedulesClient object.
+ */
+ RoleAssignmentSchedulesClient getRoleAssignmentSchedules();
+
+ /**
+ * Gets the RoleAssignmentScheduleInstancesClient object to access its operations.
+ *
+ * @return the RoleAssignmentScheduleInstancesClient object.
+ */
+ RoleAssignmentScheduleInstancesClient getRoleAssignmentScheduleInstances();
+
+ /**
+ * Gets the RoleAssignmentScheduleRequestsClient object to access its operations.
+ *
+ * @return the RoleAssignmentScheduleRequestsClient object.
+ */
+ RoleAssignmentScheduleRequestsClient getRoleAssignmentScheduleRequests();
+
+ /**
+ * Gets the RoleEligibilitySchedulesClient object to access its operations.
+ *
+ * @return the RoleEligibilitySchedulesClient object.
+ */
+ RoleEligibilitySchedulesClient getRoleEligibilitySchedules();
+
+ /**
+ * Gets the RoleEligibilityScheduleInstancesClient object to access its operations.
+ *
+ * @return the RoleEligibilityScheduleInstancesClient object.
+ */
+ RoleEligibilityScheduleInstancesClient getRoleEligibilityScheduleInstances();
+
+ /**
+ * Gets the RoleEligibilityScheduleRequestsClient object to access its operations.
+ *
+ * @return the RoleEligibilityScheduleRequestsClient object.
+ */
+ RoleEligibilityScheduleRequestsClient getRoleEligibilityScheduleRequests();
+
+ /**
+ * Gets the RoleManagementPoliciesClient object to access its operations.
+ *
+ * @return the RoleManagementPoliciesClient object.
+ */
+ RoleManagementPoliciesClient getRoleManagementPolicies();
+
+ /**
+ * Gets the RoleManagementPolicyAssignmentsClient object to access its operations.
+ *
+ * @return the RoleManagementPolicyAssignmentsClient object.
+ */
+ RoleManagementPolicyAssignmentsClient getRoleManagementPolicyAssignments();
+
+ /**
+ * Gets the OperationsClient object to access its operations.
+ *
+ * @return the OperationsClient object.
+ */
+ OperationsClient getOperations();
+
+ /**
+ * Gets the AccessReviewScheduleDefinitionsClient object to access its operations.
+ *
+ * @return the AccessReviewScheduleDefinitionsClient object.
+ */
+ AccessReviewScheduleDefinitionsClient getAccessReviewScheduleDefinitions();
+
+ /**
+ * Gets the AccessReviewInstancesClient object to access its operations.
+ *
+ * @return the AccessReviewInstancesClient object.
+ */
+ AccessReviewInstancesClient getAccessReviewInstances();
+
+ /**
+ * Gets the AccessReviewInstanceOperationsClient object to access its operations.
+ *
+ * @return the AccessReviewInstanceOperationsClient object.
+ */
+ AccessReviewInstanceOperationsClient getAccessReviewInstanceOperations();
+
+ /**
+ * Gets the AccessReviewInstanceDecisionsClient object to access its operations.
+ *
+ * @return the AccessReviewInstanceDecisionsClient object.
+ */
+ AccessReviewInstanceDecisionsClient getAccessReviewInstanceDecisions();
+
+ /**
+ * Gets the AccessReviewDefaultSettingsOperationsClient object to access its operations.
+ *
+ * @return the AccessReviewDefaultSettingsOperationsClient object.
+ */
+ AccessReviewDefaultSettingsOperationsClient getAccessReviewDefaultSettingsOperations();
+
+ /**
+ * Gets the AccessReviewScheduleDefinitionsAssignedForMyApprovalsClient object to access its operations.
+ *
+ * @return the AccessReviewScheduleDefinitionsAssignedForMyApprovalsClient object.
+ */
+ AccessReviewScheduleDefinitionsAssignedForMyApprovalsClient
+ getAccessReviewScheduleDefinitionsAssignedForMyApprovals();
+
+ /**
+ * Gets the AccessReviewInstancesAssignedForMyApprovalsClient object to access its operations.
+ *
+ * @return the AccessReviewInstancesAssignedForMyApprovalsClient object.
+ */
+ AccessReviewInstancesAssignedForMyApprovalsClient getAccessReviewInstancesAssignedForMyApprovals();
+
+ /**
+ * Gets the AccessReviewInstanceMyDecisionsClient object to access its operations.
+ *
+ * @return the AccessReviewInstanceMyDecisionsClient object.
+ */
+ AccessReviewInstanceMyDecisionsClient getAccessReviewInstanceMyDecisions();
+
+ /**
+ * Gets the RoleAssignmentsClient object to access its operations.
+ *
+ * @return the RoleAssignmentsClient object.
+ */
+ RoleAssignmentsClient getRoleAssignments();
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/DenyAssignmentsClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/DenyAssignmentsClient.java
new file mode 100644
index 0000000000000..0db35a9723651
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/DenyAssignmentsClient.java
@@ -0,0 +1,222 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.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.authorization.generated.fluent.models.DenyAssignmentInner;
+
+/** An instance of this class provides access to all the operations defined in DenyAssignmentsClient. */
+public interface DenyAssignmentsClient {
+ /**
+ * Gets deny assignments for a resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceProviderNamespace The namespace of the resource provider.
+ * @param parentResourcePath The parent resource identity.
+ * @param resourceType The resource type of the resource.
+ * @param resourceName The name of the resource to get deny assignments for.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return deny assignments for a resource as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listForResource(
+ String resourceGroupName,
+ String resourceProviderNamespace,
+ String parentResourcePath,
+ String resourceType,
+ String resourceName);
+
+ /**
+ * Gets deny assignments for a resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceProviderNamespace The namespace of the resource provider.
+ * @param parentResourcePath The parent resource identity.
+ * @param resourceType The resource type of the resource.
+ * @param resourceName The name of the resource to get deny assignments for.
+ * @param filter The filter to apply on the operation. Use $filter=atScope() to return all deny assignments at or
+ * above the scope. Use $filter=denyAssignmentName eq '{name}' to search deny assignments by name at specified
+ * scope. Use $filter=principalId eq '{id}' to return all deny assignments at, above and below the scope for the
+ * specified principal. Use $filter=gdprExportPrincipalId eq '{id}' to return all deny assignments at, above and
+ * below the scope for the specified principal. This filter is different from the principalId filter as it
+ * returns not only those deny assignments that contain the specified principal is the Principals list but also
+ * those deny assignments that contain the specified principal is the ExcludePrincipals list. Additionally, when
+ * gdprExportPrincipalId filter is used, only the deny assignment name and description properties are returned.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return deny assignments for a resource as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listForResource(
+ String resourceGroupName,
+ String resourceProviderNamespace,
+ String parentResourcePath,
+ String resourceType,
+ String resourceName,
+ String filter,
+ Context context);
+
+ /**
+ * Gets deny assignments for a resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return deny assignments for a resource group as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * Gets deny assignments for a resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param filter The filter to apply on the operation. Use $filter=atScope() to return all deny assignments at or
+ * above the scope. Use $filter=denyAssignmentName eq '{name}' to search deny assignments by name at specified
+ * scope. Use $filter=principalId eq '{id}' to return all deny assignments at, above and below the scope for the
+ * specified principal. Use $filter=gdprExportPrincipalId eq '{id}' to return all deny assignments at, above and
+ * below the scope for the specified principal. This filter is different from the principalId filter as it
+ * returns not only those deny assignments that contain the specified principal is the Principals list but also
+ * those deny assignments that contain the specified principal is the ExcludePrincipals list. Additionally, when
+ * gdprExportPrincipalId filter is used, only the deny assignment name and description properties are returned.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return deny assignments for a resource group as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, String filter, Context context);
+
+ /**
+ * Gets all deny assignments for 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 all deny assignments for the subscription as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Gets all deny assignments for the subscription.
+ *
+ * @param filter The filter to apply on the operation. Use $filter=atScope() to return all deny assignments at or
+ * above the scope. Use $filter=denyAssignmentName eq '{name}' to search deny assignments by name at specified
+ * scope. Use $filter=principalId eq '{id}' to return all deny assignments at, above and below the scope for the
+ * specified principal. Use $filter=gdprExportPrincipalId eq '{id}' to return all deny assignments at, above and
+ * below the scope for the specified principal. This filter is different from the principalId filter as it
+ * returns not only those deny assignments that contain the specified principal is the Principals list but also
+ * those deny assignments that contain the specified principal is the ExcludePrincipals list. Additionally, when
+ * gdprExportPrincipalId filter is used, only the deny assignment name and description properties are returned.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all deny assignments for the subscription as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String filter, Context context);
+
+ /**
+ * Get the specified deny assignment.
+ *
+ * @param scope The scope of the deny assignment.
+ * @param denyAssignmentId The ID of the deny assignment to get.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified deny assignment.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DenyAssignmentInner get(String scope, String denyAssignmentId);
+
+ /**
+ * Get the specified deny assignment.
+ *
+ * @param scope The scope of the deny assignment.
+ * @param denyAssignmentId The ID of the deny assignment to get.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified deny assignment along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String scope, String denyAssignmentId, Context context);
+
+ /**
+ * Gets a deny assignment by ID.
+ *
+ * @param denyAssignmentId The fully qualified deny assignment ID. For example, use the format,
+ * /subscriptions/{guid}/providers/Microsoft.Authorization/denyAssignments/{denyAssignmentId} for subscription
+ * level deny assignments, or /providers/Microsoft.Authorization/denyAssignments/{denyAssignmentId} for tenant
+ * level deny assignments.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a deny assignment by ID.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DenyAssignmentInner getById(String denyAssignmentId);
+
+ /**
+ * Gets a deny assignment by ID.
+ *
+ * @param denyAssignmentId The fully qualified deny assignment ID. For example, use the format,
+ * /subscriptions/{guid}/providers/Microsoft.Authorization/denyAssignments/{denyAssignmentId} for subscription
+ * level deny assignments, or /providers/Microsoft.Authorization/denyAssignments/{denyAssignmentId} for tenant
+ * level deny assignments.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a deny assignment by ID along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByIdWithResponse(String denyAssignmentId, Context context);
+
+ /**
+ * Gets deny assignments for a scope.
+ *
+ * @param scope The scope of the deny assignments.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return deny assignments for a scope as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listForScope(String scope);
+
+ /**
+ * Gets deny assignments for a scope.
+ *
+ * @param scope The scope of the deny assignments.
+ * @param filter The filter to apply on the operation. Use $filter=atScope() to return all deny assignments at or
+ * above the scope. Use $filter=denyAssignmentName eq '{name}' to search deny assignments by name at specified
+ * scope. Use $filter=principalId eq '{id}' to return all deny assignments at, above and below the scope for the
+ * specified principal. Use $filter=gdprExportPrincipalId eq '{id}' to return all deny assignments at, above and
+ * below the scope for the specified principal. This filter is different from the principalId filter as it
+ * returns not only those deny assignments that contain the specified principal is the Principals list but also
+ * those deny assignments that contain the specified principal is the ExcludePrincipals list. Additionally, when
+ * gdprExportPrincipalId filter is used, only the deny assignment name and description properties are returned.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return deny assignments for a scope as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listForScope(String scope, String filter, Context context);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/EligibleChildResourcesClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/EligibleChildResourcesClient.java
new file mode 100644
index 0000000000000..eb33b3392c5ef
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/EligibleChildResourcesClient.java
@@ -0,0 +1,45 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.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.authorization.generated.fluent.models.EligibleChildResourceInner;
+
+/** An instance of this class provides access to all the operations defined in EligibleChildResourcesClient. */
+public interface EligibleChildResourcesClient {
+ /**
+ * Get the child resources of a resource on which user has eligible access.
+ *
+ * @param scope The scope of the role management policy.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the child resources of a resource on which user has eligible access as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable get(String scope);
+
+ /**
+ * Get the child resources of a resource on which user has eligible access.
+ *
+ * @param scope The scope of the role management policy.
+ * @param filter The filter to apply on the operation. Use $filter=resourceType+eq+'Subscription' to filter on only
+ * resource of type = 'Subscription'. Use
+ * $filter=resourceType+eq+'subscription'+or+resourceType+eq+'resourcegroup' to filter on resource of type =
+ * 'Subscription' or 'ResourceGroup'.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the child resources of a resource on which user has eligible access as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable get(String scope, String filter, Context context);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/OperationsClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/OperationsClient.java
new file mode 100644
index 0000000000000..d360ea26e0c43
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/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.authorization.generated.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.authorization.generated.fluent.models.OperationInner;
+
+/** An instance of this class provides access to all the operations defined in OperationsClient. */
+public interface OperationsClient {
+ /**
+ * Lists the operations available from this provider.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the result of a request to list Microsoft.Authorization operations as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Lists the operations available from this provider.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the result of a request to list Microsoft.Authorization operations as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/PermissionsClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/PermissionsClient.java
new file mode 100644
index 0000000000000..3a7a7a426bedc
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/PermissionsClient.java
@@ -0,0 +1,83 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.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.authorization.generated.fluent.models.PermissionInner;
+
+/** An instance of this class provides access to all the operations defined in PermissionsClient. */
+public interface PermissionsClient {
+ /**
+ * Gets all permissions the caller has for a resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all permissions the caller has for a resource group as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * Gets all permissions the caller has for a resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all permissions the caller has for a resource group as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+
+ /**
+ * Gets all permissions the caller has for a resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceProviderNamespace The namespace of the resource provider.
+ * @param parentResourcePath The parent resource identity.
+ * @param resourceType The resource type of the resource.
+ * @param resourceName The name of the resource to get the permissions for.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all permissions the caller has for a resource as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listForResource(
+ String resourceGroupName,
+ String resourceProviderNamespace,
+ String parentResourcePath,
+ String resourceType,
+ String resourceName);
+
+ /**
+ * Gets all permissions the caller has for a resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceProviderNamespace The namespace of the resource provider.
+ * @param parentResourcePath The parent resource identity.
+ * @param resourceType The resource type of the resource.
+ * @param resourceName The name of the resource to get the permissions for.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all permissions the caller has for a resource as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listForResource(
+ String resourceGroupName,
+ String resourceProviderNamespace,
+ String parentResourcePath,
+ String resourceType,
+ String resourceName,
+ Context context);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/ProviderOperationsMetadatasClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/ProviderOperationsMetadatasClient.java
new file mode 100644
index 0000000000000..4f25024d5cb7a
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/ProviderOperationsMetadatasClient.java
@@ -0,0 +1,65 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.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.authorization.generated.fluent.models.ProviderOperationsMetadataInner;
+
+/** An instance of this class provides access to all the operations defined in ProviderOperationsMetadatasClient. */
+public interface ProviderOperationsMetadatasClient {
+ /**
+ * Gets provider operations metadata for the specified resource provider.
+ *
+ * @param resourceProviderNamespace The namespace of the resource provider.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return provider operations metadata for the specified resource provider.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProviderOperationsMetadataInner get(String resourceProviderNamespace);
+
+ /**
+ * Gets provider operations metadata for the specified resource provider.
+ *
+ * @param resourceProviderNamespace The namespace of the resource provider.
+ * @param expand Specifies whether to expand the values.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return provider operations metadata for the specified resource provider along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceProviderNamespace, String expand, Context context);
+
+ /**
+ * Gets provider operations metadata for all resource providers.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return provider operations metadata for all resource providers as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Gets provider operations metadata for all resource providers.
+ *
+ * @param expand Specifies whether to expand the values.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return provider operations metadata for all resource providers as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String expand, Context context);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/RoleAssignmentMetricsClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/RoleAssignmentMetricsClient.java
new file mode 100644
index 0000000000000..8d4c1109e2d59
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/RoleAssignmentMetricsClient.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.authorization.generated.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.authorization.generated.fluent.models.RoleAssignmentMetricsResultInner;
+
+/** An instance of this class provides access to all the operations defined in RoleAssignmentMetricsClient. */
+public interface RoleAssignmentMetricsClient {
+ /**
+ * Get role assignment usage metrics for 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 role assignment usage metrics for a subscription.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RoleAssignmentMetricsResultInner getMetricsForSubscription();
+
+ /**
+ * Get role assignment usage metrics for a subscription.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return role assignment usage metrics for a subscription along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getMetricsForSubscriptionWithResponse(Context context);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/RoleAssignmentScheduleInstancesClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/RoleAssignmentScheduleInstancesClient.java
new file mode 100644
index 0000000000000..9225e41416665
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/RoleAssignmentScheduleInstancesClient.java
@@ -0,0 +1,77 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.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.authorization.generated.fluent.models.RoleAssignmentScheduleInstanceInner;
+
+/** An instance of this class provides access to all the operations defined in RoleAssignmentScheduleInstancesClient. */
+public interface RoleAssignmentScheduleInstancesClient {
+ /**
+ * Gets role assignment schedule instances of a role assignment schedule.
+ *
+ * @param scope The scope of the role assignment schedule.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return role assignment schedule instances of a role assignment schedule as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listForScope(String scope);
+
+ /**
+ * Gets role assignment schedule instances of a role assignment schedule.
+ *
+ * @param scope The scope of the role assignment schedule.
+ * @param filter The filter to apply on the operation. Use $filter=atScope() to return all role assignment schedules
+ * at or above the scope. Use $filter=principalId eq {id} to return all role assignment schedules at, above or
+ * below the scope for the specified principal. Use $filter=assignedTo('{userId}') to return all role assignment
+ * schedule instances for the user. Use $filter=asTarget() to return all role assignment schedule instances
+ * created for the current user.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return role assignment schedule instances of a role assignment schedule as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listForScope(String scope, String filter, Context context);
+
+ /**
+ * Gets the specified role assignment schedule instance.
+ *
+ * @param scope The scope of the role assignments schedules.
+ * @param roleAssignmentScheduleInstanceName The name (hash of schedule name + time) of the role assignment schedule
+ * to get.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified role assignment schedule instance.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RoleAssignmentScheduleInstanceInner get(String scope, String roleAssignmentScheduleInstanceName);
+
+ /**
+ * Gets the specified role assignment schedule instance.
+ *
+ * @param scope The scope of the role assignments schedules.
+ * @param roleAssignmentScheduleInstanceName The name (hash of schedule name + time) of the role assignment schedule
+ * to get.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified role assignment schedule instance along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String scope, String roleAssignmentScheduleInstanceName, Context context);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/RoleAssignmentScheduleRequestsClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/RoleAssignmentScheduleRequestsClient.java
new file mode 100644
index 0000000000000..f28cf4c3059b0
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/RoleAssignmentScheduleRequestsClient.java
@@ -0,0 +1,148 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.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.authorization.generated.fluent.models.RoleAssignmentScheduleRequestInner;
+
+/** An instance of this class provides access to all the operations defined in RoleAssignmentScheduleRequestsClient. */
+public interface RoleAssignmentScheduleRequestsClient {
+ /**
+ * Creates a role assignment schedule request.
+ *
+ * @param scope The scope of the role assignment schedule request to create. The scope can be any REST resource
+ * instance. For example, use '/providers/Microsoft.Subscription/subscriptions/{subscription-id}/' for a
+ * subscription,
+ * '/providers/Microsoft.Subscription/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}' for
+ * a resource group, and
+ * '/providers/Microsoft.Subscription/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/{resource-provider}/{resource-type}/{resource-name}'
+ * for a resource.
+ * @param roleAssignmentScheduleRequestName A GUID for the role assignment to create. The name must be unique and
+ * different for each role assignment.
+ * @param parameters Parameters for the role assignment schedule request.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return role Assignment schedule request.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RoleAssignmentScheduleRequestInner create(
+ String scope, String roleAssignmentScheduleRequestName, RoleAssignmentScheduleRequestInner parameters);
+
+ /**
+ * Creates a role assignment schedule request.
+ *
+ * @param scope The scope of the role assignment schedule request to create. The scope can be any REST resource
+ * instance. For example, use '/providers/Microsoft.Subscription/subscriptions/{subscription-id}/' for a
+ * subscription,
+ * '/providers/Microsoft.Subscription/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}' for
+ * a resource group, and
+ * '/providers/Microsoft.Subscription/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/{resource-provider}/{resource-type}/{resource-name}'
+ * for a resource.
+ * @param roleAssignmentScheduleRequestName A GUID for the role assignment to create. The name must be unique and
+ * different for each role assignment.
+ * @param parameters Parameters for the role assignment schedule request.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return role Assignment schedule request along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createWithResponse(
+ String scope,
+ String roleAssignmentScheduleRequestName,
+ RoleAssignmentScheduleRequestInner parameters,
+ Context context);
+
+ /**
+ * Get the specified role assignment schedule request.
+ *
+ * @param scope The scope of the role assignment schedule request.
+ * @param roleAssignmentScheduleRequestName The name (guid) of the role assignment schedule request to get.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified role assignment schedule request.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RoleAssignmentScheduleRequestInner get(String scope, String roleAssignmentScheduleRequestName);
+
+ /**
+ * Get the specified role assignment schedule request.
+ *
+ * @param scope The scope of the role assignment schedule request.
+ * @param roleAssignmentScheduleRequestName The name (guid) of the role assignment schedule request to get.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified role assignment schedule request along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String scope, String roleAssignmentScheduleRequestName, Context context);
+
+ /**
+ * Gets role assignment schedule requests for a scope.
+ *
+ * @param scope The scope of the role assignments schedule requests.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return role assignment schedule requests for a scope as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listForScope(String scope);
+
+ /**
+ * Gets role assignment schedule requests for a scope.
+ *
+ * @param scope The scope of the role assignments schedule requests.
+ * @param filter The filter to apply on the operation. Use $filter=atScope() to return all role assignment schedule
+ * requests at or above the scope. Use $filter=principalId eq {id} to return all role assignment schedule
+ * requests at, above or below the scope for the specified principal. Use $filter=asRequestor() to return all
+ * role assignment schedule requests requested by the current user. Use $filter=asTarget() to return all role
+ * assignment schedule requests created for the current user. Use $filter=asApprover() to return all role
+ * assignment schedule requests where the current user is an approver.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return role assignment schedule requests for a scope as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listForScope(String scope, String filter, Context context);
+
+ /**
+ * Cancels a pending role assignment schedule request.
+ *
+ * @param scope The scope of the role assignment request to cancel.
+ * @param roleAssignmentScheduleRequestName The name of the role assignment request to cancel.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 cancel(String scope, String roleAssignmentScheduleRequestName);
+
+ /**
+ * Cancels a pending role assignment schedule request.
+ *
+ * @param scope The scope of the role assignment request to cancel.
+ * @param roleAssignmentScheduleRequestName The name of the role assignment request to cancel.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 cancelWithResponse(String scope, String roleAssignmentScheduleRequestName, Context context);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/RoleAssignmentSchedulesClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/RoleAssignmentSchedulesClient.java
new file mode 100644
index 0000000000000..fd6508c8534ac
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/RoleAssignmentSchedulesClient.java
@@ -0,0 +1,73 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.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.authorization.generated.fluent.models.RoleAssignmentScheduleInner;
+
+/** An instance of this class provides access to all the operations defined in RoleAssignmentSchedulesClient. */
+public interface RoleAssignmentSchedulesClient {
+ /**
+ * Get the specified role assignment schedule for a resource scope.
+ *
+ * @param scope The scope of the role assignment schedule.
+ * @param roleAssignmentScheduleName The name (guid) of the role assignment schedule to get.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified role assignment schedule for a resource scope.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RoleAssignmentScheduleInner get(String scope, String roleAssignmentScheduleName);
+
+ /**
+ * Get the specified role assignment schedule for a resource scope.
+ *
+ * @param scope The scope of the role assignment schedule.
+ * @param roleAssignmentScheduleName The name (guid) of the role assignment schedule to get.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified role assignment schedule for a resource scope along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String scope, String roleAssignmentScheduleName, Context context);
+
+ /**
+ * Gets role assignment schedules for a resource scope.
+ *
+ * @param scope The scope of the role assignments schedules.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return role assignment schedules for a resource scope as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listForScope(String scope);
+
+ /**
+ * Gets role assignment schedules for a resource scope.
+ *
+ * @param scope The scope of the role assignments schedules.
+ * @param filter The filter to apply on the operation. Use $filter=atScope() to return all role assignment schedules
+ * at or above the scope. Use $filter=principalId eq {id} to return all role assignment schedules at, above or
+ * below the scope for the specified principal. Use $filter=assignedTo('{userId}') to return all role assignment
+ * schedules for the current user. Use $filter=asTarget() to return all role assignment schedules created for
+ * the current user.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return role assignment schedules for a resource scope as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listForScope(String scope, String filter, Context context);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/RoleAssignmentsClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/RoleAssignmentsClient.java
new file mode 100644
index 0000000000000..04b97311047bc
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/RoleAssignmentsClient.java
@@ -0,0 +1,431 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.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.authorization.generated.fluent.models.RoleAssignmentInner;
+import com.azure.resourcemanager.authorization.generated.fluent.models.ValidationResponseInner;
+import com.azure.resourcemanager.authorization.generated.models.RoleAssignmentCreateParameters;
+
+/** An instance of this class provides access to all the operations defined in RoleAssignmentsClient. */
+public interface RoleAssignmentsClient {
+ /**
+ * List all role assignments that apply to 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 role assignment list operation result as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * List all role assignments that apply to a subscription.
+ *
+ * @param filter The filter to apply on the operation. Use $filter=atScope() to return all role assignments at or
+ * above the scope. Use $filter=principalId eq {id} to return all role assignments at, above or below the scope
+ * for the specified principal.
+ * @param tenantId Tenant ID for cross-tenant request.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return role assignment list operation result as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String filter, String tenantId, Context context);
+
+ /**
+ * List all role assignments that apply to a resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return role assignment list operation result as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * List all role assignments that apply to a resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param filter The filter to apply on the operation. Use $filter=atScope() to return all role assignments at or
+ * above the scope. Use $filter=principalId eq {id} to return all role assignments at, above or below the scope
+ * for the specified principal.
+ * @param tenantId Tenant ID for cross-tenant request.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return role assignment list operation result as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(
+ String resourceGroupName, String filter, String tenantId, Context context);
+
+ /**
+ * List all role assignments that apply to a resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceProviderNamespace The namespace of the resource provider.
+ * @param resourceType The resource type name. For example the type name of a web app is 'sites' (from
+ * Microsoft.Web/sites).
+ * @param resourceName The resource name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return role assignment list operation result as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listForResource(
+ String resourceGroupName, String resourceProviderNamespace, String resourceType, String resourceName);
+
+ /**
+ * List all role assignments that apply to a resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param resourceProviderNamespace The namespace of the resource provider.
+ * @param resourceType The resource type name. For example the type name of a web app is 'sites' (from
+ * Microsoft.Web/sites).
+ * @param resourceName The resource name.
+ * @param filter The filter to apply on the operation. Use $filter=atScope() to return all role assignments at or
+ * above the scope. Use $filter=principalId eq {id} to return all role assignments at, above or below the scope
+ * for the specified principal.
+ * @param tenantId Tenant ID for cross-tenant request.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return role assignment list operation result as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listForResource(
+ String resourceGroupName,
+ String resourceProviderNamespace,
+ String resourceType,
+ String resourceName,
+ String filter,
+ String tenantId,
+ Context context);
+
+ /**
+ * Get a role assignment by scope and name.
+ *
+ * @param scope The scope of the operation or resource. Valid scopes are: subscription (format:
+ * '/subscriptions/{subscriptionId}'), resource group (format:
+ * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}', or resource (format:
+ * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/[{parentResourcePath}/]{resourceType}/{resourceName}'.
+ * @param roleAssignmentName The name of the role assignment. It can be any valid GUID.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a role assignment by scope and name.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RoleAssignmentInner get(String scope, String roleAssignmentName);
+
+ /**
+ * Get a role assignment by scope and name.
+ *
+ * @param scope The scope of the operation or resource. Valid scopes are: subscription (format:
+ * '/subscriptions/{subscriptionId}'), resource group (format:
+ * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}', or resource (format:
+ * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/[{parentResourcePath}/]{resourceType}/{resourceName}'.
+ * @param roleAssignmentName The name of the role assignment. It can be any valid GUID.
+ * @param tenantId Tenant ID for cross-tenant request.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a role assignment by scope and name along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String scope, String roleAssignmentName, String tenantId, Context context);
+
+ /**
+ * Create or update a role assignment by scope and name.
+ *
+ * @param scope The scope of the operation or resource. Valid scopes are: subscription (format:
+ * '/subscriptions/{subscriptionId}'), resource group (format:
+ * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}', or resource (format:
+ * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/[{parentResourcePath}/]{resourceType}/{resourceName}'.
+ * @param roleAssignmentName The name of the role assignment. It can be any valid GUID.
+ * @param parameters Parameters for the role assignment.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return role Assignments.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RoleAssignmentInner create(String scope, String roleAssignmentName, RoleAssignmentCreateParameters parameters);
+
+ /**
+ * Create or update a role assignment by scope and name.
+ *
+ * @param scope The scope of the operation or resource. Valid scopes are: subscription (format:
+ * '/subscriptions/{subscriptionId}'), resource group (format:
+ * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}', or resource (format:
+ * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/[{parentResourcePath}/]{resourceType}/{resourceName}'.
+ * @param roleAssignmentName The name of the role assignment. It can be any valid GUID.
+ * @param parameters Parameters for the role assignment.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return role Assignments along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createWithResponse(
+ String scope, String roleAssignmentName, RoleAssignmentCreateParameters parameters, Context context);
+
+ /**
+ * Delete a role assignment by scope and name.
+ *
+ * @param scope The scope of the operation or resource. Valid scopes are: subscription (format:
+ * '/subscriptions/{subscriptionId}'), resource group (format:
+ * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}', or resource (format:
+ * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/[{parentResourcePath}/]{resourceType}/{resourceName}'.
+ * @param roleAssignmentName The name of the role assignment. It can be any valid GUID.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return role Assignments.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RoleAssignmentInner delete(String scope, String roleAssignmentName);
+
+ /**
+ * Delete a role assignment by scope and name.
+ *
+ * @param scope The scope of the operation or resource. Valid scopes are: subscription (format:
+ * '/subscriptions/{subscriptionId}'), resource group (format:
+ * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}', or resource (format:
+ * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/[{parentResourcePath}/]{resourceType}/{resourceName}'.
+ * @param roleAssignmentName The name of the role assignment. It can be any valid GUID.
+ * @param tenantId Tenant ID for cross-tenant request.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return role Assignments along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response deleteWithResponse(
+ String scope, String roleAssignmentName, String tenantId, Context context);
+
+ /**
+ * Validate a role assignment create or update operation by scope and name.
+ *
+ * @param scope The scope of the operation or resource. Valid scopes are: subscription (format:
+ * '/subscriptions/{subscriptionId}'), resource group (format:
+ * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}', or resource (format:
+ * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/[{parentResourcePath}/]{resourceType}/{resourceName}'.
+ * @param roleAssignmentName The name of the role assignment. It can be any valid GUID.
+ * @param parameters Parameters for the role assignment.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return validation response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ValidationResponseInner validate(
+ String scope, String roleAssignmentName, RoleAssignmentCreateParameters parameters);
+
+ /**
+ * Validate a role assignment create or update operation by scope and name.
+ *
+ * @param scope The scope of the operation or resource. Valid scopes are: subscription (format:
+ * '/subscriptions/{subscriptionId}'), resource group (format:
+ * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}', or resource (format:
+ * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/[{parentResourcePath}/]{resourceType}/{resourceName}'.
+ * @param roleAssignmentName The name of the role assignment. It can be any valid GUID.
+ * @param parameters Parameters for the role assignment.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return validation response along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response validateWithResponse(
+ String scope, String roleAssignmentName, RoleAssignmentCreateParameters parameters, Context context);
+
+ /**
+ * List all role assignments that apply to a scope.
+ *
+ * @param scope The scope of the operation or resource. Valid scopes are: subscription (format:
+ * '/subscriptions/{subscriptionId}'), resource group (format:
+ * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}', or resource (format:
+ * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/[{parentResourcePath}/]{resourceType}/{resourceName}'.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return role assignment list operation result as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listForScope(String scope);
+
+ /**
+ * List all role assignments that apply to a scope.
+ *
+ * @param scope The scope of the operation or resource. Valid scopes are: subscription (format:
+ * '/subscriptions/{subscriptionId}'), resource group (format:
+ * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}', or resource (format:
+ * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/[{parentResourcePath}/]{resourceType}/{resourceName}'.
+ * @param filter The filter to apply on the operation. Use $filter=atScope() to return all role assignments at or
+ * above the scope. Use $filter=principalId eq {id} to return all role assignments at, above or below the scope
+ * for the specified principal.
+ * @param tenantId Tenant ID for cross-tenant request.
+ * @param skipToken The skipToken to apply on the operation. Use $skipToken={skiptoken} to return paged role
+ * assignments following the skipToken passed. Only supported on provider level calls.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return role assignment list operation result as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listForScope(
+ String scope, String filter, String tenantId, String skipToken, Context context);
+
+ /**
+ * Get a role assignment by ID.
+ *
+ * @param roleAssignmentId The fully qualified ID of the role assignment including scope, resource name, and
+ * resource type. Format: /{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentName}.
+ * Example:
+ * /subscriptions/<SUB_ID>/resourcegroups/<RESOURCE_GROUP>/providers/Microsoft.Authorization/roleAssignments/<ROLE_ASSIGNMENT_NAME>.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a role assignment by ID.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RoleAssignmentInner getById(String roleAssignmentId);
+
+ /**
+ * Get a role assignment by ID.
+ *
+ * @param roleAssignmentId The fully qualified ID of the role assignment including scope, resource name, and
+ * resource type. Format: /{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentName}.
+ * Example:
+ * /subscriptions/<SUB_ID>/resourcegroups/<RESOURCE_GROUP>/providers/Microsoft.Authorization/roleAssignments/<ROLE_ASSIGNMENT_NAME>.
+ * @param tenantId Tenant ID for cross-tenant request.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a role assignment by ID along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByIdWithResponse(String roleAssignmentId, String tenantId, Context context);
+
+ /**
+ * Create or update a role assignment by ID.
+ *
+ * @param roleAssignmentId The fully qualified ID of the role assignment including scope, resource name, and
+ * resource type. Format: /{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentName}.
+ * Example:
+ * /subscriptions/<SUB_ID>/resourcegroups/<RESOURCE_GROUP>/providers/Microsoft.Authorization/roleAssignments/<ROLE_ASSIGNMENT_NAME>.
+ * @param parameters Parameters for the role assignment.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return role Assignments.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RoleAssignmentInner createById(String roleAssignmentId, RoleAssignmentCreateParameters parameters);
+
+ /**
+ * Create or update a role assignment by ID.
+ *
+ * @param roleAssignmentId The fully qualified ID of the role assignment including scope, resource name, and
+ * resource type. Format: /{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentName}.
+ * Example:
+ * /subscriptions/<SUB_ID>/resourcegroups/<RESOURCE_GROUP>/providers/Microsoft.Authorization/roleAssignments/<ROLE_ASSIGNMENT_NAME>.
+ * @param parameters Parameters for the role assignment.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return role Assignments along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createByIdWithResponse(
+ String roleAssignmentId, RoleAssignmentCreateParameters parameters, Context context);
+
+ /**
+ * Delete a role assignment by ID.
+ *
+ * @param roleAssignmentId The fully qualified ID of the role assignment including scope, resource name, and
+ * resource type. Format: /{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentName}.
+ * Example:
+ * /subscriptions/<SUB_ID>/resourcegroups/<RESOURCE_GROUP>/providers/Microsoft.Authorization/roleAssignments/<ROLE_ASSIGNMENT_NAME>.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return role Assignments.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RoleAssignmentInner deleteById(String roleAssignmentId);
+
+ /**
+ * Delete a role assignment by ID.
+ *
+ * @param roleAssignmentId The fully qualified ID of the role assignment including scope, resource name, and
+ * resource type. Format: /{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentName}.
+ * Example:
+ * /subscriptions/<SUB_ID>/resourcegroups/<RESOURCE_GROUP>/providers/Microsoft.Authorization/roleAssignments/<ROLE_ASSIGNMENT_NAME>.
+ * @param tenantId Tenant ID for cross-tenant request.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return role Assignments along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response deleteByIdWithResponse(String roleAssignmentId, String tenantId, Context context);
+
+ /**
+ * Validate a role assignment create or update operation by ID.
+ *
+ * @param roleAssignmentId The fully qualified ID of the role assignment including scope, resource name, and
+ * resource type. Format: /{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentName}.
+ * Example:
+ * /subscriptions/<SUB_ID>/resourcegroups/<RESOURCE_GROUP>/providers/Microsoft.Authorization/roleAssignments/<ROLE_ASSIGNMENT_NAME>.
+ * @param parameters Parameters for the role assignment.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return validation response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ValidationResponseInner validateById(String roleAssignmentId, RoleAssignmentCreateParameters parameters);
+
+ /**
+ * Validate a role assignment create or update operation by ID.
+ *
+ * @param roleAssignmentId The fully qualified ID of the role assignment including scope, resource name, and
+ * resource type. Format: /{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentName}.
+ * Example:
+ * /subscriptions/<SUB_ID>/resourcegroups/<RESOURCE_GROUP>/providers/Microsoft.Authorization/roleAssignments/<ROLE_ASSIGNMENT_NAME>.
+ * @param parameters Parameters for the role assignment.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return validation response along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response validateByIdWithResponse(
+ String roleAssignmentId, RoleAssignmentCreateParameters parameters, Context context);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/RoleDefinitionsClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/RoleDefinitionsClient.java
new file mode 100644
index 0000000000000..1c16f2804b8b6
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/RoleDefinitionsClient.java
@@ -0,0 +1,159 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.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.authorization.generated.fluent.models.RoleDefinitionInner;
+
+/** An instance of this class provides access to all the operations defined in RoleDefinitionsClient. */
+public interface RoleDefinitionsClient {
+ /**
+ * Deletes a role definition.
+ *
+ * @param scope The scope of the role definition.
+ * @param roleDefinitionId The ID of the role definition to delete.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return role definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RoleDefinitionInner delete(String scope, String roleDefinitionId);
+
+ /**
+ * Deletes a role definition.
+ *
+ * @param scope The scope of the role definition.
+ * @param roleDefinitionId The ID of the role definition to delete.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return role definition along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response deleteWithResponse(String scope, String roleDefinitionId, Context context);
+
+ /**
+ * Get role definition by name (GUID).
+ *
+ * @param scope The scope of the role definition.
+ * @param roleDefinitionId The ID of the role 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 role definition by name (GUID).
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RoleDefinitionInner get(String scope, String roleDefinitionId);
+
+ /**
+ * Get role definition by name (GUID).
+ *
+ * @param scope The scope of the role definition.
+ * @param roleDefinitionId The ID of the role 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 role definition by name (GUID) along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String scope, String roleDefinitionId, Context context);
+
+ /**
+ * Creates or updates a role definition.
+ *
+ * @param scope The scope of the role definition.
+ * @param roleDefinitionId The ID of the role definition.
+ * @param roleDefinition The values for the role 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 role definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RoleDefinitionInner createOrUpdate(String scope, String roleDefinitionId, RoleDefinitionInner roleDefinition);
+
+ /**
+ * Creates or updates a role definition.
+ *
+ * @param scope The scope of the role definition.
+ * @param roleDefinitionId The ID of the role definition.
+ * @param roleDefinition The values for the role 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 role definition along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createOrUpdateWithResponse(
+ String scope, String roleDefinitionId, RoleDefinitionInner roleDefinition, Context context);
+
+ /**
+ * Get all role definitions that are applicable at scope and above.
+ *
+ * @param scope The scope of the role 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 all role definitions that are applicable at scope and above as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String scope);
+
+ /**
+ * Get all role definitions that are applicable at scope and above.
+ *
+ * @param scope The scope of the role definition.
+ * @param filter The filter to apply on the operation. Use atScopeAndBelow filter to search below the given scope as
+ * well.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all role definitions that are applicable at scope and above as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String scope, String filter, Context context);
+
+ /**
+ * Gets a role definition by ID.
+ *
+ * @param roleId The fully qualified role definition ID. Use the format,
+ * /subscriptions/{guid}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId} for subscription
+ * level role definitions, or /providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId} for tenant
+ * level role definitions.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a role definition by ID.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RoleDefinitionInner getById(String roleId);
+
+ /**
+ * Gets a role definition by ID.
+ *
+ * @param roleId The fully qualified role definition ID. Use the format,
+ * /subscriptions/{guid}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId} for subscription
+ * level role definitions, or /providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId} for tenant
+ * level role definitions.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a role definition by ID along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByIdWithResponse(String roleId, Context context);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/RoleEligibilityScheduleInstancesClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/RoleEligibilityScheduleInstancesClient.java
new file mode 100644
index 0000000000000..b0812f56fd30b
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/RoleEligibilityScheduleInstancesClient.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.authorization.generated.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.authorization.generated.fluent.models.RoleEligibilityScheduleInstanceInner;
+
+/**
+ * An instance of this class provides access to all the operations defined in RoleEligibilityScheduleInstancesClient.
+ */
+public interface RoleEligibilityScheduleInstancesClient {
+ /**
+ * Gets role eligibility schedule instances of a role eligibility schedule.
+ *
+ * @param scope The scope of the role eligibility schedule.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return role eligibility schedule instances of a role eligibility schedule as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listForScope(String scope);
+
+ /**
+ * Gets role eligibility schedule instances of a role eligibility schedule.
+ *
+ * @param scope The scope of the role eligibility schedule.
+ * @param filter The filter to apply on the operation. Use $filter=atScope() to return all role assignment schedules
+ * at or above the scope. Use $filter=principalId eq {id} to return all role assignment schedules at, above or
+ * below the scope for the specified principal. Use $filter=assignedTo('{userId}') to return all role
+ * eligibility schedules for the user. Use $filter=asTarget() to return all role eligibility schedules created
+ * for the current user.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return role eligibility schedule instances of a role eligibility schedule as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listForScope(String scope, String filter, Context context);
+
+ /**
+ * Gets the specified role eligibility schedule instance.
+ *
+ * @param scope The scope of the role eligibility schedules.
+ * @param roleEligibilityScheduleInstanceName The name (hash of schedule name + time) of the role eligibility
+ * schedule to get.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified role eligibility schedule instance.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RoleEligibilityScheduleInstanceInner get(String scope, String roleEligibilityScheduleInstanceName);
+
+ /**
+ * Gets the specified role eligibility schedule instance.
+ *
+ * @param scope The scope of the role eligibility schedules.
+ * @param roleEligibilityScheduleInstanceName The name (hash of schedule name + time) of the role eligibility
+ * schedule to get.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified role eligibility schedule instance along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String scope, String roleEligibilityScheduleInstanceName, Context context);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/RoleEligibilityScheduleRequestsClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/RoleEligibilityScheduleRequestsClient.java
new file mode 100644
index 0000000000000..2c4b0bded340f
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/RoleEligibilityScheduleRequestsClient.java
@@ -0,0 +1,146 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.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.authorization.generated.fluent.models.RoleEligibilityScheduleRequestInner;
+
+/** An instance of this class provides access to all the operations defined in RoleEligibilityScheduleRequestsClient. */
+public interface RoleEligibilityScheduleRequestsClient {
+ /**
+ * Creates a role eligibility schedule request.
+ *
+ * @param scope The scope of the role eligibility schedule request to create. The scope can be any REST resource
+ * instance. For example, use '/providers/Microsoft.Subscription/subscriptions/{subscription-id}/' for a
+ * subscription,
+ * '/providers/Microsoft.Subscription/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}' for
+ * a resource group, and
+ * '/providers/Microsoft.Subscription/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/{resource-provider}/{resource-type}/{resource-name}'
+ * for a resource.
+ * @param roleEligibilityScheduleRequestName The name of the role eligibility to create. It can be any valid GUID.
+ * @param parameters Parameters for the role eligibility schedule request.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return role Eligibility schedule request.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RoleEligibilityScheduleRequestInner create(
+ String scope, String roleEligibilityScheduleRequestName, RoleEligibilityScheduleRequestInner parameters);
+
+ /**
+ * Creates a role eligibility schedule request.
+ *
+ * @param scope The scope of the role eligibility schedule request to create. The scope can be any REST resource
+ * instance. For example, use '/providers/Microsoft.Subscription/subscriptions/{subscription-id}/' for a
+ * subscription,
+ * '/providers/Microsoft.Subscription/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}' for
+ * a resource group, and
+ * '/providers/Microsoft.Subscription/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/{resource-provider}/{resource-type}/{resource-name}'
+ * for a resource.
+ * @param roleEligibilityScheduleRequestName The name of the role eligibility to create. It can be any valid GUID.
+ * @param parameters Parameters for the role eligibility schedule request.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return role Eligibility schedule request along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createWithResponse(
+ String scope,
+ String roleEligibilityScheduleRequestName,
+ RoleEligibilityScheduleRequestInner parameters,
+ Context context);
+
+ /**
+ * Get the specified role eligibility schedule request.
+ *
+ * @param scope The scope of the role eligibility schedule request.
+ * @param roleEligibilityScheduleRequestName The name (guid) of the role eligibility schedule request to get.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified role eligibility schedule request.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RoleEligibilityScheduleRequestInner get(String scope, String roleEligibilityScheduleRequestName);
+
+ /**
+ * Get the specified role eligibility schedule request.
+ *
+ * @param scope The scope of the role eligibility schedule request.
+ * @param roleEligibilityScheduleRequestName The name (guid) of the role eligibility schedule request to get.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified role eligibility schedule request along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String scope, String roleEligibilityScheduleRequestName, Context context);
+
+ /**
+ * Gets role eligibility schedule requests for a scope.
+ *
+ * @param scope The scope of the role eligibility schedule requests.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return role eligibility schedule requests for a scope as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listForScope(String scope);
+
+ /**
+ * Gets role eligibility schedule requests for a scope.
+ *
+ * @param scope The scope of the role eligibility schedule requests.
+ * @param filter The filter to apply on the operation. Use $filter=atScope() to return all role eligibility schedule
+ * requests at or above the scope. Use $filter=principalId eq {id} to return all role eligibility schedule
+ * requests at, above or below the scope for the specified principal. Use $filter=asRequestor() to return all
+ * role eligibility schedule requests requested by the current user. Use $filter=asTarget() to return all role
+ * eligibility schedule requests created for the current user. Use $filter=asApprover() to return all role
+ * eligibility schedule requests where the current user is an approver.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return role eligibility schedule requests for a scope as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listForScope(String scope, String filter, Context context);
+
+ /**
+ * Cancels a pending role eligibility schedule request.
+ *
+ * @param scope The scope of the role eligibility request to cancel.
+ * @param roleEligibilityScheduleRequestName The name of the role eligibility request to cancel.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 cancel(String scope, String roleEligibilityScheduleRequestName);
+
+ /**
+ * Cancels a pending role eligibility schedule request.
+ *
+ * @param scope The scope of the role eligibility request to cancel.
+ * @param roleEligibilityScheduleRequestName The name of the role eligibility request to cancel.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 cancelWithResponse(String scope, String roleEligibilityScheduleRequestName, Context context);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/RoleEligibilitySchedulesClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/RoleEligibilitySchedulesClient.java
new file mode 100644
index 0000000000000..eff3f63c1d196
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/RoleEligibilitySchedulesClient.java
@@ -0,0 +1,73 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.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.authorization.generated.fluent.models.RoleEligibilityScheduleInner;
+
+/** An instance of this class provides access to all the operations defined in RoleEligibilitySchedulesClient. */
+public interface RoleEligibilitySchedulesClient {
+ /**
+ * Get the specified role eligibility schedule for a resource scope.
+ *
+ * @param scope The scope of the role eligibility schedule.
+ * @param roleEligibilityScheduleName The name (guid) of the role eligibility schedule to get.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified role eligibility schedule for a resource scope.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RoleEligibilityScheduleInner get(String scope, String roleEligibilityScheduleName);
+
+ /**
+ * Get the specified role eligibility schedule for a resource scope.
+ *
+ * @param scope The scope of the role eligibility schedule.
+ * @param roleEligibilityScheduleName The name (guid) of the role eligibility schedule to get.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified role eligibility schedule for a resource scope along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String scope, String roleEligibilityScheduleName, Context context);
+
+ /**
+ * Gets role eligibility schedules for a resource scope.
+ *
+ * @param scope The scope of the role eligibility schedules.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return role eligibility schedules for a resource scope as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listForScope(String scope);
+
+ /**
+ * Gets role eligibility schedules for a resource scope.
+ *
+ * @param scope The scope of the role eligibility schedules.
+ * @param filter The filter to apply on the operation. Use $filter=atScope() to return all role eligibility
+ * schedules at or above the scope. Use $filter=principalId eq {id} to return all role eligibility schedules at,
+ * above or below the scope for the specified principal. Use $filter=assignedTo('{userId}') to return all role
+ * eligibility schedules for the user. Use $filter=asTarget() to return all role eligibility schedules created
+ * for the current user.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return role eligibility schedules for a resource scope as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listForScope(String scope, String filter, Context context);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/RoleManagementPoliciesClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/RoleManagementPoliciesClient.java
new file mode 100644
index 0000000000000..90c89d8c5032c
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/RoleManagementPoliciesClient.java
@@ -0,0 +1,124 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.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.authorization.generated.fluent.models.RoleManagementPolicyInner;
+
+/** An instance of this class provides access to all the operations defined in RoleManagementPoliciesClient. */
+public interface RoleManagementPoliciesClient {
+ /**
+ * Get the specified role management policy for a resource scope.
+ *
+ * @param scope The scope of the role management policy.
+ * @param roleManagementPolicyName The name (guid) of the role management policy to get.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified role management policy for a resource scope.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RoleManagementPolicyInner get(String scope, String roleManagementPolicyName);
+
+ /**
+ * Get the specified role management policy for a resource scope.
+ *
+ * @param scope The scope of the role management policy.
+ * @param roleManagementPolicyName The name (guid) of the role management policy to get.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified role management policy for a resource scope along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String scope, String roleManagementPolicyName, Context context);
+
+ /**
+ * Update a role management policy.
+ *
+ * @param scope The scope of the role management policy to upsert.
+ * @param roleManagementPolicyName The name (guid) of the role management policy to upsert.
+ * @param parameters Parameters for the role management policy.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return role management policy.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RoleManagementPolicyInner update(
+ String scope, String roleManagementPolicyName, RoleManagementPolicyInner parameters);
+
+ /**
+ * Update a role management policy.
+ *
+ * @param scope The scope of the role management policy to upsert.
+ * @param roleManagementPolicyName The name (guid) of the role management policy to upsert.
+ * @param parameters Parameters for the role management policy.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return role management policy along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response updateWithResponse(
+ String scope, String roleManagementPolicyName, RoleManagementPolicyInner parameters, Context context);
+
+ /**
+ * Delete a role management policy.
+ *
+ * @param scope The scope of the role management policy to upsert.
+ * @param roleManagementPolicyName The name (guid) of the role management policy to upsert.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 scope, String roleManagementPolicyName);
+
+ /**
+ * Delete a role management policy.
+ *
+ * @param scope The scope of the role management policy to upsert.
+ * @param roleManagementPolicyName The name (guid) of the role management policy to upsert.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 scope, String roleManagementPolicyName, Context context);
+
+ /**
+ * Gets role management policies for a resource scope.
+ *
+ * @param scope The scope of the role management policy.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return role management policies for a resource scope as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listForScope(String scope);
+
+ /**
+ * Gets role management policies for a resource scope.
+ *
+ * @param scope The scope of the role management policy.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return role management policies for a resource scope as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listForScope(String scope, Context context);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/RoleManagementPolicyAssignmentsClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/RoleManagementPolicyAssignmentsClient.java
new file mode 100644
index 0000000000000..859241b3863cb
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/RoleManagementPolicyAssignmentsClient.java
@@ -0,0 +1,136 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.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.authorization.generated.fluent.models.RoleManagementPolicyAssignmentInner;
+
+/** An instance of this class provides access to all the operations defined in RoleManagementPolicyAssignmentsClient. */
+public interface RoleManagementPolicyAssignmentsClient {
+ /**
+ * Get the specified role management policy assignment for a resource scope.
+ *
+ * @param scope The scope of the role management policy.
+ * @param roleManagementPolicyAssignmentName The name of format {guid_guid} the role management policy assignment to
+ * get.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified role management policy assignment for a resource scope.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RoleManagementPolicyAssignmentInner get(String scope, String roleManagementPolicyAssignmentName);
+
+ /**
+ * Get the specified role management policy assignment for a resource scope.
+ *
+ * @param scope The scope of the role management policy.
+ * @param roleManagementPolicyAssignmentName The name of format {guid_guid} the role management policy assignment to
+ * get.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified role management policy assignment for a resource scope along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String scope, String roleManagementPolicyAssignmentName, Context context);
+
+ /**
+ * Create a role management policy assignment.
+ *
+ * @param scope The scope of the role management policy assignment to upsert.
+ * @param roleManagementPolicyAssignmentName The name of format {guid_guid} the role management policy assignment to
+ * upsert.
+ * @param parameters Parameters for the role management policy assignment.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return role management policy.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RoleManagementPolicyAssignmentInner create(
+ String scope, String roleManagementPolicyAssignmentName, RoleManagementPolicyAssignmentInner parameters);
+
+ /**
+ * Create a role management policy assignment.
+ *
+ * @param scope The scope of the role management policy assignment to upsert.
+ * @param roleManagementPolicyAssignmentName The name of format {guid_guid} the role management policy assignment to
+ * upsert.
+ * @param parameters Parameters for the role management policy assignment.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return role management policy along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createWithResponse(
+ String scope,
+ String roleManagementPolicyAssignmentName,
+ RoleManagementPolicyAssignmentInner parameters,
+ Context context);
+
+ /**
+ * Delete a role management policy assignment.
+ *
+ * @param scope The scope of the role management policy assignment to delete.
+ * @param roleManagementPolicyAssignmentName The name of format {guid_guid} the role management policy assignment to
+ * delete.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 scope, String roleManagementPolicyAssignmentName);
+
+ /**
+ * Delete a role management policy assignment.
+ *
+ * @param scope The scope of the role management policy assignment to delete.
+ * @param roleManagementPolicyAssignmentName The name of format {guid_guid} the role management policy assignment to
+ * delete.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 scope, String roleManagementPolicyAssignmentName, Context context);
+
+ /**
+ * Gets role management assignment policies for a resource scope.
+ *
+ * @param scope The scope of the role management policy.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return role management assignment policies for a resource scope as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listForScope(String scope);
+
+ /**
+ * Gets role management assignment policies for a resource scope.
+ *
+ * @param scope The scope of the role management policy.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return role management assignment policies for a resource scope as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listForScope(String scope, Context context);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewActorIdentity.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewActorIdentity.java
new file mode 100644
index 0000000000000..9af205e0834ab
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewActorIdentity.java
@@ -0,0 +1,81 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewActorIdentityType;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Details of the actor identity. */
+@Immutable
+public class AccessReviewActorIdentity {
+ /*
+ * The identity id
+ */
+ @JsonProperty(value = "principalId", access = JsonProperty.Access.WRITE_ONLY)
+ private String principalId;
+
+ /*
+ * The identity type : user/servicePrincipal
+ */
+ @JsonProperty(value = "principalType", access = JsonProperty.Access.WRITE_ONLY)
+ private AccessReviewActorIdentityType principalType;
+
+ /*
+ * The identity display name
+ */
+ @JsonProperty(value = "principalName", access = JsonProperty.Access.WRITE_ONLY)
+ private String principalName;
+
+ /*
+ * The user principal name(if valid)
+ */
+ @JsonProperty(value = "userPrincipalName", access = JsonProperty.Access.WRITE_ONLY)
+ private String userPrincipalName;
+
+ /**
+ * Get the principalId property: The identity id.
+ *
+ * @return the principalId value.
+ */
+ public String principalId() {
+ return this.principalId;
+ }
+
+ /**
+ * Get the principalType property: The identity type : user/servicePrincipal.
+ *
+ * @return the principalType value.
+ */
+ public AccessReviewActorIdentityType principalType() {
+ return this.principalType;
+ }
+
+ /**
+ * Get the principalName property: The identity display name.
+ *
+ * @return the principalName value.
+ */
+ public String principalName() {
+ return this.principalName;
+ }
+
+ /**
+ * Get the userPrincipalName property: The user principal name(if valid).
+ *
+ * @return the userPrincipalName value.
+ */
+ public String userPrincipalName() {
+ return this.userPrincipalName;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewDecisionIdentity.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewDecisionIdentity.java
new file mode 100644
index 0000000000000..c0b3f00cce3f1
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewDecisionIdentity.java
@@ -0,0 +1,65 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewDecisionServicePrincipalIdentity;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewDecisionUserIdentity;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/** Target of the decision. */
+@JsonTypeInfo(
+ use = JsonTypeInfo.Id.NAME,
+ include = JsonTypeInfo.As.PROPERTY,
+ property = "type",
+ defaultImpl = AccessReviewDecisionIdentity.class)
+@JsonTypeName("AccessReviewDecisionIdentity")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "user", value = AccessReviewDecisionUserIdentity.class),
+ @JsonSubTypes.Type(name = "servicePrincipal", value = AccessReviewDecisionServicePrincipalIdentity.class)
+})
+@Immutable
+public class AccessReviewDecisionIdentity {
+ /*
+ * The id of principal whose access was reviewed.
+ */
+ @JsonProperty(value = "id", access = JsonProperty.Access.WRITE_ONLY)
+ private String id;
+
+ /*
+ * The display name of the user whose access was reviewed.
+ */
+ @JsonProperty(value = "displayName", access = JsonProperty.Access.WRITE_ONLY)
+ private String displayName;
+
+ /**
+ * Get the id property: The id of principal whose access was reviewed.
+ *
+ * @return the id value.
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get the displayName property: The display name of the user whose access was reviewed.
+ *
+ * @return the displayName value.
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewDecisionInner.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewDecisionInner.java
new file mode 100644
index 0000000000000..16671b226c96c
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewDecisionInner.java
@@ -0,0 +1,238 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.resourcemanager.authorization.generated.models.AccessRecommendationType;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewActorIdentityType;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewApplyResult;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewResult;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** Access Review. */
+@Fluent
+public final class AccessReviewDecisionInner extends ProxyResource {
+ /*
+ * Access Review Decision properties.
+ */
+ @JsonProperty(value = "properties")
+ private AccessReviewDecisionProperties innerProperties;
+
+ /**
+ * Get the innerProperties property: Access Review Decision properties.
+ *
+ * @return the innerProperties value.
+ */
+ private AccessReviewDecisionProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the recommendation property: The feature- generated recommendation shown to the reviewer.
+ *
+ * @return the recommendation value.
+ */
+ public AccessRecommendationType recommendation() {
+ return this.innerProperties() == null ? null : this.innerProperties().recommendation();
+ }
+
+ /**
+ * Get the decision property: The decision on the approval step. This value is initially set to NotReviewed.
+ * Approvers can take action of Approve/Deny.
+ *
+ * @return the decision value.
+ */
+ public AccessReviewResult decision() {
+ return this.innerProperties() == null ? null : this.innerProperties().decision();
+ }
+
+ /**
+ * Set the decision property: The decision on the approval step. This value is initially set to NotReviewed.
+ * Approvers can take action of Approve/Deny.
+ *
+ * @param decision the decision value to set.
+ * @return the AccessReviewDecisionInner object itself.
+ */
+ public AccessReviewDecisionInner withDecision(AccessReviewResult decision) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewDecisionProperties();
+ }
+ this.innerProperties().withDecision(decision);
+ return this;
+ }
+
+ /**
+ * Get the justification property: Justification provided by approvers for their action.
+ *
+ * @return the justification value.
+ */
+ public String justification() {
+ return this.innerProperties() == null ? null : this.innerProperties().justification();
+ }
+
+ /**
+ * Set the justification property: Justification provided by approvers for their action.
+ *
+ * @param justification the justification value to set.
+ * @return the AccessReviewDecisionInner object itself.
+ */
+ public AccessReviewDecisionInner withJustification(String justification) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewDecisionProperties();
+ }
+ this.innerProperties().withJustification(justification);
+ return this;
+ }
+
+ /**
+ * Get the reviewedDateTime property: Date Time when a decision was taken.
+ *
+ * @return the reviewedDateTime value.
+ */
+ public OffsetDateTime reviewedDateTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().reviewedDateTime();
+ }
+
+ /**
+ * Get the applyResult property: The outcome of applying the decision.
+ *
+ * @return the applyResult value.
+ */
+ public AccessReviewApplyResult applyResult() {
+ return this.innerProperties() == null ? null : this.innerProperties().applyResult();
+ }
+
+ /**
+ * Get the appliedDateTime property: The date and time when the review decision was applied.
+ *
+ * @return the appliedDateTime value.
+ */
+ public OffsetDateTime appliedDateTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().appliedDateTime();
+ }
+
+ /**
+ * Get the id property: The id of principal whose access was reviewed.
+ *
+ * @return the id value.
+ */
+ public String idPropertiesId() {
+ return this.innerProperties() == null ? null : this.innerProperties().id();
+ }
+
+ /**
+ * Get the displayName property: The display name of the user whose access was reviewed.
+ *
+ * @return the displayName value.
+ */
+ public String displayName() {
+ return this.innerProperties() == null ? null : this.innerProperties().displayName();
+ }
+
+ /**
+ * Get the idResourceId property: The id of resource associated with a decision record.
+ *
+ * @return the idResourceId value.
+ */
+ public String idResourceId() {
+ return this.innerProperties() == null ? null : this.innerProperties().idResourceId();
+ }
+
+ /**
+ * Get the displayNameResourceDisplayName property: The display name of resource associated with a decision record.
+ *
+ * @return the displayNameResourceDisplayName value.
+ */
+ public String displayNameResourceDisplayName() {
+ return this.innerProperties() == null ? null : this.innerProperties().displayNameResourceDisplayName();
+ }
+
+ /**
+ * Get the principalId property: The identity id.
+ *
+ * @return the principalId value.
+ */
+ public String principalId() {
+ return this.innerProperties() == null ? null : this.innerProperties().principalId();
+ }
+
+ /**
+ * Get the principalType property: The identity type : user/servicePrincipal.
+ *
+ * @return the principalType value.
+ */
+ public AccessReviewActorIdentityType principalType() {
+ return this.innerProperties() == null ? null : this.innerProperties().principalType();
+ }
+
+ /**
+ * Get the principalName property: The identity display name.
+ *
+ * @return the principalName value.
+ */
+ public String principalName() {
+ return this.innerProperties() == null ? null : this.innerProperties().principalName();
+ }
+
+ /**
+ * Get the userPrincipalName property: The user principal name(if valid).
+ *
+ * @return the userPrincipalName value.
+ */
+ public String userPrincipalName() {
+ return this.innerProperties() == null ? null : this.innerProperties().userPrincipalName();
+ }
+
+ /**
+ * Get the principalIdAppliedByPrincipalId property: The identity id.
+ *
+ * @return the principalIdAppliedByPrincipalId value.
+ */
+ public String principalIdAppliedByPrincipalId() {
+ return this.innerProperties() == null ? null : this.innerProperties().principalIdAppliedByPrincipalId();
+ }
+
+ /**
+ * Get the principalTypeAppliedByPrincipalType property: The identity type : user/servicePrincipal.
+ *
+ * @return the principalTypeAppliedByPrincipalType value.
+ */
+ public AccessReviewActorIdentityType principalTypeAppliedByPrincipalType() {
+ return this.innerProperties() == null ? null : this.innerProperties().principalTypeAppliedByPrincipalType();
+ }
+
+ /**
+ * Get the principalNameAppliedByPrincipalName property: The identity display name.
+ *
+ * @return the principalNameAppliedByPrincipalName value.
+ */
+ public String principalNameAppliedByPrincipalName() {
+ return this.innerProperties() == null ? null : this.innerProperties().principalNameAppliedByPrincipalName();
+ }
+
+ /**
+ * Get the userPrincipalNameAppliedByUserPrincipalName property: The user principal name(if valid).
+ *
+ * @return the userPrincipalNameAppliedByUserPrincipalName value.
+ */
+ public String userPrincipalNameAppliedByUserPrincipalName() {
+ return this.innerProperties() == null
+ ? null
+ : this.innerProperties().userPrincipalNameAppliedByUserPrincipalName();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewDecisionProperties.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewDecisionProperties.java
new file mode 100644
index 0000000000000..76f000a68ab60
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewDecisionProperties.java
@@ -0,0 +1,323 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.authorization.generated.models.AccessRecommendationType;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewActorIdentityType;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewApplyResult;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewResult;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** Approval Step. */
+@Fluent
+public final class AccessReviewDecisionProperties {
+ /*
+ * Principal associated with the decision record. Can be
+ * AccessReviewDecisionUserIdentity or
+ * AccessReviewDecisionServicePrincipalIdentity
+ */
+ @JsonProperty(value = "principal", access = JsonProperty.Access.WRITE_ONLY)
+ private AccessReviewDecisionIdentity innerPrincipal;
+
+ /*
+ * Resource associated with this decision record.
+ */
+ @JsonProperty(value = "resource", access = JsonProperty.Access.WRITE_ONLY)
+ private AccessReviewDecisionResource innerResource;
+
+ /*
+ * The feature- generated recommendation shown to the reviewer.
+ */
+ @JsonProperty(value = "recommendation", access = JsonProperty.Access.WRITE_ONLY)
+ private AccessRecommendationType recommendation;
+
+ /*
+ * The decision on the approval step. This value is initially set to
+ * NotReviewed. Approvers can take action of Approve/Deny
+ */
+ @JsonProperty(value = "decision")
+ private AccessReviewResult decision;
+
+ /*
+ * Justification provided by approvers for their action
+ */
+ @JsonProperty(value = "justification")
+ private String justification;
+
+ /*
+ * Date Time when a decision was taken.
+ */
+ @JsonProperty(value = "reviewedDateTime", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime reviewedDateTime;
+
+ /*
+ * Details of the approver.
+ */
+ @JsonProperty(value = "reviewedBy", access = JsonProperty.Access.WRITE_ONLY)
+ private AccessReviewActorIdentity innerReviewedBy;
+
+ /*
+ * The outcome of applying the decision.
+ */
+ @JsonProperty(value = "applyResult", access = JsonProperty.Access.WRITE_ONLY)
+ private AccessReviewApplyResult applyResult;
+
+ /*
+ * The date and time when the review decision was applied.
+ */
+ @JsonProperty(value = "appliedDateTime", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime appliedDateTime;
+
+ /*
+ * Details of the approver.
+ */
+ @JsonProperty(value = "appliedBy", access = JsonProperty.Access.WRITE_ONLY)
+ private AccessReviewActorIdentity innerAppliedBy;
+
+ /**
+ * Get the innerPrincipal property: Principal associated with the decision record. Can be
+ * AccessReviewDecisionUserIdentity or AccessReviewDecisionServicePrincipalIdentity.
+ *
+ * @return the innerPrincipal value.
+ */
+ private AccessReviewDecisionIdentity innerPrincipal() {
+ return this.innerPrincipal;
+ }
+
+ /**
+ * Get the innerResource property: Resource associated with this decision record.
+ *
+ * @return the innerResource value.
+ */
+ private AccessReviewDecisionResource innerResource() {
+ return this.innerResource;
+ }
+
+ /**
+ * Get the recommendation property: The feature- generated recommendation shown to the reviewer.
+ *
+ * @return the recommendation value.
+ */
+ public AccessRecommendationType recommendation() {
+ return this.recommendation;
+ }
+
+ /**
+ * Get the decision property: The decision on the approval step. This value is initially set to NotReviewed.
+ * Approvers can take action of Approve/Deny.
+ *
+ * @return the decision value.
+ */
+ public AccessReviewResult decision() {
+ return this.decision;
+ }
+
+ /**
+ * Set the decision property: The decision on the approval step. This value is initially set to NotReviewed.
+ * Approvers can take action of Approve/Deny.
+ *
+ * @param decision the decision value to set.
+ * @return the AccessReviewDecisionProperties object itself.
+ */
+ public AccessReviewDecisionProperties withDecision(AccessReviewResult decision) {
+ this.decision = decision;
+ return this;
+ }
+
+ /**
+ * Get the justification property: Justification provided by approvers for their action.
+ *
+ * @return the justification value.
+ */
+ public String justification() {
+ return this.justification;
+ }
+
+ /**
+ * Set the justification property: Justification provided by approvers for their action.
+ *
+ * @param justification the justification value to set.
+ * @return the AccessReviewDecisionProperties object itself.
+ */
+ public AccessReviewDecisionProperties withJustification(String justification) {
+ this.justification = justification;
+ return this;
+ }
+
+ /**
+ * Get the reviewedDateTime property: Date Time when a decision was taken.
+ *
+ * @return the reviewedDateTime value.
+ */
+ public OffsetDateTime reviewedDateTime() {
+ return this.reviewedDateTime;
+ }
+
+ /**
+ * Get the innerReviewedBy property: Details of the approver.
+ *
+ * @return the innerReviewedBy value.
+ */
+ private AccessReviewActorIdentity innerReviewedBy() {
+ return this.innerReviewedBy;
+ }
+
+ /**
+ * Get the applyResult property: The outcome of applying the decision.
+ *
+ * @return the applyResult value.
+ */
+ public AccessReviewApplyResult applyResult() {
+ return this.applyResult;
+ }
+
+ /**
+ * Get the appliedDateTime property: The date and time when the review decision was applied.
+ *
+ * @return the appliedDateTime value.
+ */
+ public OffsetDateTime appliedDateTime() {
+ return this.appliedDateTime;
+ }
+
+ /**
+ * Get the innerAppliedBy property: Details of the approver.
+ *
+ * @return the innerAppliedBy value.
+ */
+ private AccessReviewActorIdentity innerAppliedBy() {
+ return this.innerAppliedBy;
+ }
+
+ /**
+ * Get the id property: The id of principal whose access was reviewed.
+ *
+ * @return the id value.
+ */
+ public String id() {
+ return this.innerPrincipal() == null ? null : this.innerPrincipal().id();
+ }
+
+ /**
+ * Get the displayName property: The display name of the user whose access was reviewed.
+ *
+ * @return the displayName value.
+ */
+ public String displayName() {
+ return this.innerPrincipal() == null ? null : this.innerPrincipal().displayName();
+ }
+
+ /**
+ * Get the id property: The id of resource associated with a decision record.
+ *
+ * @return the id value.
+ */
+ public String idResourceId() {
+ return this.innerResource() == null ? null : this.innerResource().id();
+ }
+
+ /**
+ * Get the displayName property: The display name of resource associated with a decision record.
+ *
+ * @return the displayName value.
+ */
+ public String displayNameResourceDisplayName() {
+ return this.innerResource() == null ? null : this.innerResource().displayName();
+ }
+
+ /**
+ * Get the principalId property: The identity id.
+ *
+ * @return the principalId value.
+ */
+ public String principalId() {
+ return this.innerReviewedBy() == null ? null : this.innerReviewedBy().principalId();
+ }
+
+ /**
+ * Get the principalType property: The identity type : user/servicePrincipal.
+ *
+ * @return the principalType value.
+ */
+ public AccessReviewActorIdentityType principalType() {
+ return this.innerReviewedBy() == null ? null : this.innerReviewedBy().principalType();
+ }
+
+ /**
+ * Get the principalName property: The identity display name.
+ *
+ * @return the principalName value.
+ */
+ public String principalName() {
+ return this.innerReviewedBy() == null ? null : this.innerReviewedBy().principalName();
+ }
+
+ /**
+ * Get the userPrincipalName property: The user principal name(if valid).
+ *
+ * @return the userPrincipalName value.
+ */
+ public String userPrincipalName() {
+ return this.innerReviewedBy() == null ? null : this.innerReviewedBy().userPrincipalName();
+ }
+
+ /**
+ * Get the principalId property: The identity id.
+ *
+ * @return the principalId value.
+ */
+ public String principalIdAppliedByPrincipalId() {
+ return this.innerAppliedBy() == null ? null : this.innerAppliedBy().principalId();
+ }
+
+ /**
+ * Get the principalType property: The identity type : user/servicePrincipal.
+ *
+ * @return the principalType value.
+ */
+ public AccessReviewActorIdentityType principalTypeAppliedByPrincipalType() {
+ return this.innerAppliedBy() == null ? null : this.innerAppliedBy().principalType();
+ }
+
+ /**
+ * Get the principalName property: The identity display name.
+ *
+ * @return the principalName value.
+ */
+ public String principalNameAppliedByPrincipalName() {
+ return this.innerAppliedBy() == null ? null : this.innerAppliedBy().principalName();
+ }
+
+ /**
+ * Get the userPrincipalName property: The user principal name(if valid).
+ *
+ * @return the userPrincipalName value.
+ */
+ public String userPrincipalNameAppliedByUserPrincipalName() {
+ return this.innerAppliedBy() == null ? null : this.innerAppliedBy().userPrincipalName();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerPrincipal() != null) {
+ innerPrincipal().validate();
+ }
+ if (innerResource() != null) {
+ innerResource().validate();
+ }
+ if (innerReviewedBy() != null) {
+ innerReviewedBy().validate();
+ }
+ if (innerAppliedBy() != null) {
+ innerAppliedBy().validate();
+ }
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewDecisionResource.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewDecisionResource.java
new file mode 100644
index 0000000000000..b15775d939075
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewDecisionResource.java
@@ -0,0 +1,54 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/** Target of the decision. */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
+@JsonTypeName("AccessReviewDecisionResource")
+@Immutable
+public final class AccessReviewDecisionResource {
+ /*
+ * The id of resource associated with a decision record.
+ */
+ @JsonProperty(value = "id", access = JsonProperty.Access.WRITE_ONLY)
+ private String id;
+
+ /*
+ * The display name of resource associated with a decision record.
+ */
+ @JsonProperty(value = "displayName", access = JsonProperty.Access.WRITE_ONLY)
+ private String displayName;
+
+ /**
+ * Get the id property: The id of resource associated with a decision record.
+ *
+ * @return the id value.
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get the displayName property: The display name of resource associated with a decision record.
+ *
+ * @return the displayName value.
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewDefaultSettingsInner.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewDefaultSettingsInner.java
new file mode 100644
index 0000000000000..0de42024c005e
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewDefaultSettingsInner.java
@@ -0,0 +1,388 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewRecurrencePatternType;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewRecurrenceRangeType;
+import com.azure.resourcemanager.authorization.generated.models.DefaultDecisionType;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** Access Review Default Settings. */
+@Fluent
+public final class AccessReviewDefaultSettingsInner extends ProxyResource {
+ /*
+ * Access Review properties.
+ */
+ @JsonProperty(value = "properties")
+ private AccessReviewScheduleSettings innerProperties;
+
+ /**
+ * Get the innerProperties property: Access Review properties.
+ *
+ * @return the innerProperties value.
+ */
+ private AccessReviewScheduleSettings innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the mailNotificationsEnabled property: Flag to indicate whether sending mails to reviewers and the review
+ * creator is enabled.
+ *
+ * @return the mailNotificationsEnabled value.
+ */
+ public Boolean mailNotificationsEnabled() {
+ return this.innerProperties() == null ? null : this.innerProperties().mailNotificationsEnabled();
+ }
+
+ /**
+ * Set the mailNotificationsEnabled property: Flag to indicate whether sending mails to reviewers and the review
+ * creator is enabled.
+ *
+ * @param mailNotificationsEnabled the mailNotificationsEnabled value to set.
+ * @return the AccessReviewDefaultSettingsInner object itself.
+ */
+ public AccessReviewDefaultSettingsInner withMailNotificationsEnabled(Boolean mailNotificationsEnabled) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewScheduleSettings();
+ }
+ this.innerProperties().withMailNotificationsEnabled(mailNotificationsEnabled);
+ return this;
+ }
+
+ /**
+ * Get the reminderNotificationsEnabled property: Flag to indicate whether sending reminder emails to reviewers are
+ * enabled.
+ *
+ * @return the reminderNotificationsEnabled value.
+ */
+ public Boolean reminderNotificationsEnabled() {
+ return this.innerProperties() == null ? null : this.innerProperties().reminderNotificationsEnabled();
+ }
+
+ /**
+ * Set the reminderNotificationsEnabled property: Flag to indicate whether sending reminder emails to reviewers are
+ * enabled.
+ *
+ * @param reminderNotificationsEnabled the reminderNotificationsEnabled value to set.
+ * @return the AccessReviewDefaultSettingsInner object itself.
+ */
+ public AccessReviewDefaultSettingsInner withReminderNotificationsEnabled(Boolean reminderNotificationsEnabled) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewScheduleSettings();
+ }
+ this.innerProperties().withReminderNotificationsEnabled(reminderNotificationsEnabled);
+ return this;
+ }
+
+ /**
+ * Get the defaultDecisionEnabled property: Flag to indicate whether reviewers are required to provide a
+ * justification when reviewing access.
+ *
+ * @return the defaultDecisionEnabled value.
+ */
+ public Boolean defaultDecisionEnabled() {
+ return this.innerProperties() == null ? null : this.innerProperties().defaultDecisionEnabled();
+ }
+
+ /**
+ * Set the defaultDecisionEnabled property: Flag to indicate whether reviewers are required to provide a
+ * justification when reviewing access.
+ *
+ * @param defaultDecisionEnabled the defaultDecisionEnabled value to set.
+ * @return the AccessReviewDefaultSettingsInner object itself.
+ */
+ public AccessReviewDefaultSettingsInner withDefaultDecisionEnabled(Boolean defaultDecisionEnabled) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewScheduleSettings();
+ }
+ this.innerProperties().withDefaultDecisionEnabled(defaultDecisionEnabled);
+ return this;
+ }
+
+ /**
+ * Get the justificationRequiredOnApproval property: Flag to indicate whether the reviewer is required to pass
+ * justification when recording a decision.
+ *
+ * @return the justificationRequiredOnApproval value.
+ */
+ public Boolean justificationRequiredOnApproval() {
+ return this.innerProperties() == null ? null : this.innerProperties().justificationRequiredOnApproval();
+ }
+
+ /**
+ * Set the justificationRequiredOnApproval property: Flag to indicate whether the reviewer is required to pass
+ * justification when recording a decision.
+ *
+ * @param justificationRequiredOnApproval the justificationRequiredOnApproval value to set.
+ * @return the AccessReviewDefaultSettingsInner object itself.
+ */
+ public AccessReviewDefaultSettingsInner withJustificationRequiredOnApproval(
+ Boolean justificationRequiredOnApproval) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewScheduleSettings();
+ }
+ this.innerProperties().withJustificationRequiredOnApproval(justificationRequiredOnApproval);
+ return this;
+ }
+
+ /**
+ * Get the defaultDecision property: This specifies the behavior for the autoReview feature when an access review
+ * completes.
+ *
+ * @return the defaultDecision value.
+ */
+ public DefaultDecisionType defaultDecision() {
+ return this.innerProperties() == null ? null : this.innerProperties().defaultDecision();
+ }
+
+ /**
+ * Set the defaultDecision property: This specifies the behavior for the autoReview feature when an access review
+ * completes.
+ *
+ * @param defaultDecision the defaultDecision value to set.
+ * @return the AccessReviewDefaultSettingsInner object itself.
+ */
+ public AccessReviewDefaultSettingsInner withDefaultDecision(DefaultDecisionType defaultDecision) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewScheduleSettings();
+ }
+ this.innerProperties().withDefaultDecision(defaultDecision);
+ return this;
+ }
+
+ /**
+ * Get the autoApplyDecisionsEnabled property: Flag to indicate whether auto-apply capability, to automatically
+ * change the target object access resource, is enabled. If not enabled, a user must, after the review completes,
+ * apply the access review.
+ *
+ * @return the autoApplyDecisionsEnabled value.
+ */
+ public Boolean autoApplyDecisionsEnabled() {
+ return this.innerProperties() == null ? null : this.innerProperties().autoApplyDecisionsEnabled();
+ }
+
+ /**
+ * Set the autoApplyDecisionsEnabled property: Flag to indicate whether auto-apply capability, to automatically
+ * change the target object access resource, is enabled. If not enabled, a user must, after the review completes,
+ * apply the access review.
+ *
+ * @param autoApplyDecisionsEnabled the autoApplyDecisionsEnabled value to set.
+ * @return the AccessReviewDefaultSettingsInner object itself.
+ */
+ public AccessReviewDefaultSettingsInner withAutoApplyDecisionsEnabled(Boolean autoApplyDecisionsEnabled) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewScheduleSettings();
+ }
+ this.innerProperties().withAutoApplyDecisionsEnabled(autoApplyDecisionsEnabled);
+ return this;
+ }
+
+ /**
+ * Get the recommendationsEnabled property: Flag to indicate whether showing recommendations to reviewers is
+ * enabled.
+ *
+ * @return the recommendationsEnabled value.
+ */
+ public Boolean recommendationsEnabled() {
+ return this.innerProperties() == null ? null : this.innerProperties().recommendationsEnabled();
+ }
+
+ /**
+ * Set the recommendationsEnabled property: Flag to indicate whether showing recommendations to reviewers is
+ * enabled.
+ *
+ * @param recommendationsEnabled the recommendationsEnabled value to set.
+ * @return the AccessReviewDefaultSettingsInner object itself.
+ */
+ public AccessReviewDefaultSettingsInner withRecommendationsEnabled(Boolean recommendationsEnabled) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewScheduleSettings();
+ }
+ this.innerProperties().withRecommendationsEnabled(recommendationsEnabled);
+ return this;
+ }
+
+ /**
+ * Get the instanceDurationInDays property: The duration in days for an instance.
+ *
+ * @return the instanceDurationInDays value.
+ */
+ public Integer instanceDurationInDays() {
+ return this.innerProperties() == null ? null : this.innerProperties().instanceDurationInDays();
+ }
+
+ /**
+ * Set the instanceDurationInDays property: The duration in days for an instance.
+ *
+ * @param instanceDurationInDays the instanceDurationInDays value to set.
+ * @return the AccessReviewDefaultSettingsInner object itself.
+ */
+ public AccessReviewDefaultSettingsInner withInstanceDurationInDays(Integer instanceDurationInDays) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewScheduleSettings();
+ }
+ this.innerProperties().withInstanceDurationInDays(instanceDurationInDays);
+ return this;
+ }
+
+ /**
+ * Get the type property: The recurrence type : weekly, monthly, etc.
+ *
+ * @return the type value.
+ */
+ public AccessReviewRecurrencePatternType typePropertiesType() {
+ return this.innerProperties() == null ? null : this.innerProperties().type();
+ }
+
+ /**
+ * Set the type property: The recurrence type : weekly, monthly, etc.
+ *
+ * @param type the type value to set.
+ * @return the AccessReviewDefaultSettingsInner object itself.
+ */
+ public AccessReviewDefaultSettingsInner withTypePropertiesType(AccessReviewRecurrencePatternType type) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewScheduleSettings();
+ }
+ this.innerProperties().withType(type);
+ return this;
+ }
+
+ /**
+ * Get the interval property: The interval for recurrence. For a quarterly review, the interval is 3 for type :
+ * absoluteMonthly.
+ *
+ * @return the interval value.
+ */
+ public Integer interval() {
+ return this.innerProperties() == null ? null : this.innerProperties().interval();
+ }
+
+ /**
+ * Set the interval property: The interval for recurrence. For a quarterly review, the interval is 3 for type :
+ * absoluteMonthly.
+ *
+ * @param interval the interval value to set.
+ * @return the AccessReviewDefaultSettingsInner object itself.
+ */
+ public AccessReviewDefaultSettingsInner withInterval(Integer interval) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewScheduleSettings();
+ }
+ this.innerProperties().withInterval(interval);
+ return this;
+ }
+
+ /**
+ * Get the typeRangeType property: The recurrence range type. The possible values are: endDate, noEnd, numbered.
+ *
+ * @return the typeRangeType value.
+ */
+ public AccessReviewRecurrenceRangeType typeRangeType() {
+ return this.innerProperties() == null ? null : this.innerProperties().typeRangeType();
+ }
+
+ /**
+ * Set the typeRangeType property: The recurrence range type. The possible values are: endDate, noEnd, numbered.
+ *
+ * @param typeRangeType the typeRangeType value to set.
+ * @return the AccessReviewDefaultSettingsInner object itself.
+ */
+ public AccessReviewDefaultSettingsInner withTypeRangeType(AccessReviewRecurrenceRangeType typeRangeType) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewScheduleSettings();
+ }
+ this.innerProperties().withTypeRangeType(typeRangeType);
+ return this;
+ }
+
+ /**
+ * Get the numberOfOccurrences property: The number of times to repeat the access review. Required and must be
+ * positive if type is numbered.
+ *
+ * @return the numberOfOccurrences value.
+ */
+ public Integer numberOfOccurrences() {
+ return this.innerProperties() == null ? null : this.innerProperties().numberOfOccurrences();
+ }
+
+ /**
+ * Set the numberOfOccurrences property: The number of times to repeat the access review. Required and must be
+ * positive if type is numbered.
+ *
+ * @param numberOfOccurrences the numberOfOccurrences value to set.
+ * @return the AccessReviewDefaultSettingsInner object itself.
+ */
+ public AccessReviewDefaultSettingsInner withNumberOfOccurrences(Integer numberOfOccurrences) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewScheduleSettings();
+ }
+ this.innerProperties().withNumberOfOccurrences(numberOfOccurrences);
+ return this;
+ }
+
+ /**
+ * Get the startDate property: The DateTime when the review is scheduled to be start. This could be a date in the
+ * future. Required on create.
+ *
+ * @return the startDate value.
+ */
+ public OffsetDateTime startDate() {
+ return this.innerProperties() == null ? null : this.innerProperties().startDate();
+ }
+
+ /**
+ * Set the startDate property: The DateTime when the review is scheduled to be start. This could be a date in the
+ * future. Required on create.
+ *
+ * @param startDate the startDate value to set.
+ * @return the AccessReviewDefaultSettingsInner object itself.
+ */
+ public AccessReviewDefaultSettingsInner withStartDate(OffsetDateTime startDate) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewScheduleSettings();
+ }
+ this.innerProperties().withStartDate(startDate);
+ return this;
+ }
+
+ /**
+ * Get the endDate property: The DateTime when the review is scheduled to end. Required if type is endDate.
+ *
+ * @return the endDate value.
+ */
+ public OffsetDateTime endDate() {
+ return this.innerProperties() == null ? null : this.innerProperties().endDate();
+ }
+
+ /**
+ * Set the endDate property: The DateTime when the review is scheduled to end. Required if type is endDate.
+ *
+ * @param endDate the endDate value to set.
+ * @return the AccessReviewDefaultSettingsInner object itself.
+ */
+ public AccessReviewDefaultSettingsInner withEndDate(OffsetDateTime endDate) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewScheduleSettings();
+ }
+ this.innerProperties().withEndDate(endDate);
+ 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/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewInstanceInner.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewInstanceInner.java
new file mode 100644
index 0000000000000..1ff36e876f558
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewInstanceInner.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.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewInstanceStatus;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** Access Review Instance. */
+@Fluent
+public final class AccessReviewInstanceInner extends ProxyResource {
+ /*
+ * Access Review properties.
+ */
+ @JsonProperty(value = "properties")
+ private AccessReviewInstanceProperties innerProperties;
+
+ /**
+ * Get the innerProperties property: Access Review properties.
+ *
+ * @return the innerProperties value.
+ */
+ private AccessReviewInstanceProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the status property: This read-only field specifies the status of an access review instance.
+ *
+ * @return the status value.
+ */
+ public AccessReviewInstanceStatus status() {
+ return this.innerProperties() == null ? null : this.innerProperties().status();
+ }
+
+ /**
+ * Get the startDateTime property: The DateTime when the review instance is scheduled to be start.
+ *
+ * @return the startDateTime value.
+ */
+ public OffsetDateTime startDateTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().startDateTime();
+ }
+
+ /**
+ * Set the startDateTime property: The DateTime when the review instance is scheduled to be start.
+ *
+ * @param startDateTime the startDateTime value to set.
+ * @return the AccessReviewInstanceInner object itself.
+ */
+ public AccessReviewInstanceInner withStartDateTime(OffsetDateTime startDateTime) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewInstanceProperties();
+ }
+ this.innerProperties().withStartDateTime(startDateTime);
+ return this;
+ }
+
+ /**
+ * Get the endDateTime property: The DateTime when the review instance is scheduled to end.
+ *
+ * @return the endDateTime value.
+ */
+ public OffsetDateTime endDateTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().endDateTime();
+ }
+
+ /**
+ * Set the endDateTime property: The DateTime when the review instance is scheduled to end.
+ *
+ * @param endDateTime the endDateTime value to set.
+ * @return the AccessReviewInstanceInner object itself.
+ */
+ public AccessReviewInstanceInner withEndDateTime(OffsetDateTime endDateTime) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewInstanceProperties();
+ }
+ this.innerProperties().withEndDateTime(endDateTime);
+ 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/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewInstanceProperties.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewInstanceProperties.java
new file mode 100644
index 0000000000000..2d4e0773368f5
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewInstanceProperties.java
@@ -0,0 +1,89 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewInstanceStatus;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** Access Review Instance properties. */
+@Fluent
+public final class AccessReviewInstanceProperties {
+ /*
+ * This read-only field specifies the status of an access review instance.
+ */
+ @JsonProperty(value = "status", access = JsonProperty.Access.WRITE_ONLY)
+ private AccessReviewInstanceStatus status;
+
+ /*
+ * The DateTime when the review instance is scheduled to be start.
+ */
+ @JsonProperty(value = "startDateTime")
+ private OffsetDateTime startDateTime;
+
+ /*
+ * The DateTime when the review instance is scheduled to end.
+ */
+ @JsonProperty(value = "endDateTime")
+ private OffsetDateTime endDateTime;
+
+ /**
+ * Get the status property: This read-only field specifies the status of an access review instance.
+ *
+ * @return the status value.
+ */
+ public AccessReviewInstanceStatus status() {
+ return this.status;
+ }
+
+ /**
+ * Get the startDateTime property: The DateTime when the review instance is scheduled to be start.
+ *
+ * @return the startDateTime value.
+ */
+ public OffsetDateTime startDateTime() {
+ return this.startDateTime;
+ }
+
+ /**
+ * Set the startDateTime property: The DateTime when the review instance is scheduled to be start.
+ *
+ * @param startDateTime the startDateTime value to set.
+ * @return the AccessReviewInstanceProperties object itself.
+ */
+ public AccessReviewInstanceProperties withStartDateTime(OffsetDateTime startDateTime) {
+ this.startDateTime = startDateTime;
+ return this;
+ }
+
+ /**
+ * Get the endDateTime property: The DateTime when the review instance is scheduled to end.
+ *
+ * @return the endDateTime value.
+ */
+ public OffsetDateTime endDateTime() {
+ return this.endDateTime;
+ }
+
+ /**
+ * Set the endDateTime property: The DateTime when the review instance is scheduled to end.
+ *
+ * @param endDateTime the endDateTime value to set.
+ * @return the AccessReviewInstanceProperties object itself.
+ */
+ public AccessReviewInstanceProperties withEndDateTime(OffsetDateTime endDateTime) {
+ this.endDateTime = endDateTime;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewRecurrencePattern.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewRecurrencePattern.java
new file mode 100644
index 0000000000000..49acbc633e5e3
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewRecurrencePattern.java
@@ -0,0 +1,76 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewRecurrencePatternType;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Recurrence Pattern of an Access Review Schedule Definition. */
+@Fluent
+public final class AccessReviewRecurrencePattern {
+ /*
+ * The recurrence type : weekly, monthly, etc.
+ */
+ @JsonProperty(value = "type")
+ private AccessReviewRecurrencePatternType type;
+
+ /*
+ * The interval for recurrence. For a quarterly review, the interval is 3
+ * for type : absoluteMonthly.
+ */
+ @JsonProperty(value = "interval")
+ private Integer interval;
+
+ /**
+ * Get the type property: The recurrence type : weekly, monthly, etc.
+ *
+ * @return the type value.
+ */
+ public AccessReviewRecurrencePatternType type() {
+ return this.type;
+ }
+
+ /**
+ * Set the type property: The recurrence type : weekly, monthly, etc.
+ *
+ * @param type the type value to set.
+ * @return the AccessReviewRecurrencePattern object itself.
+ */
+ public AccessReviewRecurrencePattern withType(AccessReviewRecurrencePatternType type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get the interval property: The interval for recurrence. For a quarterly review, the interval is 3 for type :
+ * absoluteMonthly.
+ *
+ * @return the interval value.
+ */
+ public Integer interval() {
+ return this.interval;
+ }
+
+ /**
+ * Set the interval property: The interval for recurrence. For a quarterly review, the interval is 3 for type :
+ * absoluteMonthly.
+ *
+ * @param interval the interval value to set.
+ * @return the AccessReviewRecurrencePattern object itself.
+ */
+ public AccessReviewRecurrencePattern withInterval(Integer interval) {
+ this.interval = interval;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewRecurrenceRange.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewRecurrenceRange.java
new file mode 100644
index 0000000000000..00f8d4076f938
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewRecurrenceRange.java
@@ -0,0 +1,134 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewRecurrenceRangeType;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** Recurrence Range of an Access Review Schedule Definition. */
+@Fluent
+public final class AccessReviewRecurrenceRange {
+ /*
+ * The recurrence range type. The possible values are: endDate, noEnd,
+ * numbered.
+ */
+ @JsonProperty(value = "type")
+ private AccessReviewRecurrenceRangeType type;
+
+ /*
+ * The number of times to repeat the access review. Required and must be
+ * positive if type is numbered.
+ */
+ @JsonProperty(value = "numberOfOccurrences")
+ private Integer numberOfOccurrences;
+
+ /*
+ * The DateTime when the review is scheduled to be start. This could be a
+ * date in the future. Required on create.
+ */
+ @JsonProperty(value = "startDate")
+ private OffsetDateTime startDate;
+
+ /*
+ * The DateTime when the review is scheduled to end. Required if type is
+ * endDate
+ */
+ @JsonProperty(value = "endDate")
+ private OffsetDateTime endDate;
+
+ /**
+ * Get the type property: The recurrence range type. The possible values are: endDate, noEnd, numbered.
+ *
+ * @return the type value.
+ */
+ public AccessReviewRecurrenceRangeType type() {
+ return this.type;
+ }
+
+ /**
+ * Set the type property: The recurrence range type. The possible values are: endDate, noEnd, numbered.
+ *
+ * @param type the type value to set.
+ * @return the AccessReviewRecurrenceRange object itself.
+ */
+ public AccessReviewRecurrenceRange withType(AccessReviewRecurrenceRangeType type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get the numberOfOccurrences property: The number of times to repeat the access review. Required and must be
+ * positive if type is numbered.
+ *
+ * @return the numberOfOccurrences value.
+ */
+ public Integer numberOfOccurrences() {
+ return this.numberOfOccurrences;
+ }
+
+ /**
+ * Set the numberOfOccurrences property: The number of times to repeat the access review. Required and must be
+ * positive if type is numbered.
+ *
+ * @param numberOfOccurrences the numberOfOccurrences value to set.
+ * @return the AccessReviewRecurrenceRange object itself.
+ */
+ public AccessReviewRecurrenceRange withNumberOfOccurrences(Integer numberOfOccurrences) {
+ this.numberOfOccurrences = numberOfOccurrences;
+ return this;
+ }
+
+ /**
+ * Get the startDate property: The DateTime when the review is scheduled to be start. This could be a date in the
+ * future. Required on create.
+ *
+ * @return the startDate value.
+ */
+ public OffsetDateTime startDate() {
+ return this.startDate;
+ }
+
+ /**
+ * Set the startDate property: The DateTime when the review is scheduled to be start. This could be a date in the
+ * future. Required on create.
+ *
+ * @param startDate the startDate value to set.
+ * @return the AccessReviewRecurrenceRange object itself.
+ */
+ public AccessReviewRecurrenceRange withStartDate(OffsetDateTime startDate) {
+ this.startDate = startDate;
+ return this;
+ }
+
+ /**
+ * Get the endDate property: The DateTime when the review is scheduled to end. Required if type is endDate.
+ *
+ * @return the endDate value.
+ */
+ public OffsetDateTime endDate() {
+ return this.endDate;
+ }
+
+ /**
+ * Set the endDate property: The DateTime when the review is scheduled to end. Required if type is endDate.
+ *
+ * @param endDate the endDate value to set.
+ * @return the AccessReviewRecurrenceRange object itself.
+ */
+ public AccessReviewRecurrenceRange withEndDate(OffsetDateTime endDate) {
+ this.endDate = endDate;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewRecurrenceSettings.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewRecurrenceSettings.java
new file mode 100644
index 0000000000000..8b208080ae00b
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewRecurrenceSettings.java
@@ -0,0 +1,203 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewRecurrencePatternType;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewRecurrenceRangeType;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** Recurrence Settings of an Access Review Schedule Definition. */
+@Fluent
+public final class AccessReviewRecurrenceSettings {
+ /*
+ * Access Review schedule definition recurrence pattern.
+ */
+ @JsonProperty(value = "pattern")
+ private AccessReviewRecurrencePattern innerPattern;
+
+ /*
+ * Access Review schedule definition recurrence range.
+ */
+ @JsonProperty(value = "range")
+ private AccessReviewRecurrenceRange innerRange;
+
+ /**
+ * Get the innerPattern property: Access Review schedule definition recurrence pattern.
+ *
+ * @return the innerPattern value.
+ */
+ private AccessReviewRecurrencePattern innerPattern() {
+ return this.innerPattern;
+ }
+
+ /**
+ * Get the innerRange property: Access Review schedule definition recurrence range.
+ *
+ * @return the innerRange value.
+ */
+ private AccessReviewRecurrenceRange innerRange() {
+ return this.innerRange;
+ }
+
+ /**
+ * Get the type property: The recurrence type : weekly, monthly, etc.
+ *
+ * @return the type value.
+ */
+ public AccessReviewRecurrencePatternType type() {
+ return this.innerPattern() == null ? null : this.innerPattern().type();
+ }
+
+ /**
+ * Set the type property: The recurrence type : weekly, monthly, etc.
+ *
+ * @param type the type value to set.
+ * @return the AccessReviewRecurrenceSettings object itself.
+ */
+ public AccessReviewRecurrenceSettings withType(AccessReviewRecurrencePatternType type) {
+ if (this.innerPattern() == null) {
+ this.innerPattern = new AccessReviewRecurrencePattern();
+ }
+ this.innerPattern().withType(type);
+ return this;
+ }
+
+ /**
+ * Get the interval property: The interval for recurrence. For a quarterly review, the interval is 3 for type :
+ * absoluteMonthly.
+ *
+ * @return the interval value.
+ */
+ public Integer interval() {
+ return this.innerPattern() == null ? null : this.innerPattern().interval();
+ }
+
+ /**
+ * Set the interval property: The interval for recurrence. For a quarterly review, the interval is 3 for type :
+ * absoluteMonthly.
+ *
+ * @param interval the interval value to set.
+ * @return the AccessReviewRecurrenceSettings object itself.
+ */
+ public AccessReviewRecurrenceSettings withInterval(Integer interval) {
+ if (this.innerPattern() == null) {
+ this.innerPattern = new AccessReviewRecurrencePattern();
+ }
+ this.innerPattern().withInterval(interval);
+ return this;
+ }
+
+ /**
+ * Get the type property: The recurrence range type. The possible values are: endDate, noEnd, numbered.
+ *
+ * @return the type value.
+ */
+ public AccessReviewRecurrenceRangeType typeRangeType() {
+ return this.innerRange() == null ? null : this.innerRange().type();
+ }
+
+ /**
+ * Set the type property: The recurrence range type. The possible values are: endDate, noEnd, numbered.
+ *
+ * @param type the type value to set.
+ * @return the AccessReviewRecurrenceSettings object itself.
+ */
+ public AccessReviewRecurrenceSettings withTypeRangeType(AccessReviewRecurrenceRangeType type) {
+ if (this.innerRange() == null) {
+ this.innerRange = new AccessReviewRecurrenceRange();
+ }
+ this.innerRange().withType(type);
+ return this;
+ }
+
+ /**
+ * Get the numberOfOccurrences property: The number of times to repeat the access review. Required and must be
+ * positive if type is numbered.
+ *
+ * @return the numberOfOccurrences value.
+ */
+ public Integer numberOfOccurrences() {
+ return this.innerRange() == null ? null : this.innerRange().numberOfOccurrences();
+ }
+
+ /**
+ * Set the numberOfOccurrences property: The number of times to repeat the access review. Required and must be
+ * positive if type is numbered.
+ *
+ * @param numberOfOccurrences the numberOfOccurrences value to set.
+ * @return the AccessReviewRecurrenceSettings object itself.
+ */
+ public AccessReviewRecurrenceSettings withNumberOfOccurrences(Integer numberOfOccurrences) {
+ if (this.innerRange() == null) {
+ this.innerRange = new AccessReviewRecurrenceRange();
+ }
+ this.innerRange().withNumberOfOccurrences(numberOfOccurrences);
+ return this;
+ }
+
+ /**
+ * Get the startDate property: The DateTime when the review is scheduled to be start. This could be a date in the
+ * future. Required on create.
+ *
+ * @return the startDate value.
+ */
+ public OffsetDateTime startDate() {
+ return this.innerRange() == null ? null : this.innerRange().startDate();
+ }
+
+ /**
+ * Set the startDate property: The DateTime when the review is scheduled to be start. This could be a date in the
+ * future. Required on create.
+ *
+ * @param startDate the startDate value to set.
+ * @return the AccessReviewRecurrenceSettings object itself.
+ */
+ public AccessReviewRecurrenceSettings withStartDate(OffsetDateTime startDate) {
+ if (this.innerRange() == null) {
+ this.innerRange = new AccessReviewRecurrenceRange();
+ }
+ this.innerRange().withStartDate(startDate);
+ return this;
+ }
+
+ /**
+ * Get the endDate property: The DateTime when the review is scheduled to end. Required if type is endDate.
+ *
+ * @return the endDate value.
+ */
+ public OffsetDateTime endDate() {
+ return this.innerRange() == null ? null : this.innerRange().endDate();
+ }
+
+ /**
+ * Set the endDate property: The DateTime when the review is scheduled to end. Required if type is endDate.
+ *
+ * @param endDate the endDate value to set.
+ * @return the AccessReviewRecurrenceSettings object itself.
+ */
+ public AccessReviewRecurrenceSettings withEndDate(OffsetDateTime endDate) {
+ if (this.innerRange() == null) {
+ this.innerRange = new AccessReviewRecurrenceRange();
+ }
+ this.innerRange().withEndDate(endDate);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerPattern() != null) {
+ innerPattern().validate();
+ }
+ if (innerRange() != null) {
+ innerRange().validate();
+ }
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewScheduleDefinitionInner.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewScheduleDefinitionInner.java
new file mode 100644
index 0000000000000..c3ae34052b49b
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewScheduleDefinitionInner.java
@@ -0,0 +1,641 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewActorIdentityType;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewRecurrencePatternType;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewRecurrenceRangeType;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewReviewer;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewScheduleDefinitionReviewersType;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewScheduleDefinitionStatus;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewScopeAssignmentState;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewScopePrincipalType;
+import com.azure.resourcemanager.authorization.generated.models.DefaultDecisionType;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.Duration;
+import java.time.OffsetDateTime;
+import java.util.List;
+
+/** Access Review Schedule Definition. */
+@Fluent
+public final class AccessReviewScheduleDefinitionInner extends ProxyResource {
+ /*
+ * Access Review properties.
+ */
+ @JsonProperty(value = "properties")
+ private AccessReviewScheduleDefinitionProperties innerProperties;
+
+ /**
+ * Get the innerProperties property: Access Review properties.
+ *
+ * @return the innerProperties value.
+ */
+ private AccessReviewScheduleDefinitionProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the displayName property: The display name for the schedule definition.
+ *
+ * @return the displayName value.
+ */
+ public String displayName() {
+ return this.innerProperties() == null ? null : this.innerProperties().displayName();
+ }
+
+ /**
+ * Set the displayName property: The display name for the schedule definition.
+ *
+ * @param displayName the displayName value to set.
+ * @return the AccessReviewScheduleDefinitionInner object itself.
+ */
+ public AccessReviewScheduleDefinitionInner withDisplayName(String displayName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewScheduleDefinitionProperties();
+ }
+ this.innerProperties().withDisplayName(displayName);
+ return this;
+ }
+
+ /**
+ * Get the status property: This read-only field specifies the status of an accessReview.
+ *
+ * @return the status value.
+ */
+ public AccessReviewScheduleDefinitionStatus status() {
+ return this.innerProperties() == null ? null : this.innerProperties().status();
+ }
+
+ /**
+ * Get the descriptionForAdmins property: The description provided by the access review creator and visible to
+ * admins.
+ *
+ * @return the descriptionForAdmins value.
+ */
+ public String descriptionForAdmins() {
+ return this.innerProperties() == null ? null : this.innerProperties().descriptionForAdmins();
+ }
+
+ /**
+ * Set the descriptionForAdmins property: The description provided by the access review creator and visible to
+ * admins.
+ *
+ * @param descriptionForAdmins the descriptionForAdmins value to set.
+ * @return the AccessReviewScheduleDefinitionInner object itself.
+ */
+ public AccessReviewScheduleDefinitionInner withDescriptionForAdmins(String descriptionForAdmins) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewScheduleDefinitionProperties();
+ }
+ this.innerProperties().withDescriptionForAdmins(descriptionForAdmins);
+ return this;
+ }
+
+ /**
+ * Get the descriptionForReviewers property: The description provided by the access review creator to be shown to
+ * reviewers.
+ *
+ * @return the descriptionForReviewers value.
+ */
+ public String descriptionForReviewers() {
+ return this.innerProperties() == null ? null : this.innerProperties().descriptionForReviewers();
+ }
+
+ /**
+ * Set the descriptionForReviewers property: The description provided by the access review creator to be shown to
+ * reviewers.
+ *
+ * @param descriptionForReviewers the descriptionForReviewers value to set.
+ * @return the AccessReviewScheduleDefinitionInner object itself.
+ */
+ public AccessReviewScheduleDefinitionInner withDescriptionForReviewers(String descriptionForReviewers) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewScheduleDefinitionProperties();
+ }
+ this.innerProperties().withDescriptionForReviewers(descriptionForReviewers);
+ return this;
+ }
+
+ /**
+ * Get the reviewers property: This is the collection of reviewers.
+ *
+ * @return the reviewers value.
+ */
+ public List reviewers() {
+ return this.innerProperties() == null ? null : this.innerProperties().reviewers();
+ }
+
+ /**
+ * Set the reviewers property: This is the collection of reviewers.
+ *
+ * @param reviewers the reviewers value to set.
+ * @return the AccessReviewScheduleDefinitionInner object itself.
+ */
+ public AccessReviewScheduleDefinitionInner withReviewers(List reviewers) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewScheduleDefinitionProperties();
+ }
+ this.innerProperties().withReviewers(reviewers);
+ return this;
+ }
+
+ /**
+ * Get the backupReviewers property: This is the collection of backup reviewers.
+ *
+ * @return the backupReviewers value.
+ */
+ public List backupReviewers() {
+ return this.innerProperties() == null ? null : this.innerProperties().backupReviewers();
+ }
+
+ /**
+ * Set the backupReviewers property: This is the collection of backup reviewers.
+ *
+ * @param backupReviewers the backupReviewers value to set.
+ * @return the AccessReviewScheduleDefinitionInner object itself.
+ */
+ public AccessReviewScheduleDefinitionInner withBackupReviewers(List backupReviewers) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewScheduleDefinitionProperties();
+ }
+ this.innerProperties().withBackupReviewers(backupReviewers);
+ return this;
+ }
+
+ /**
+ * Get the reviewersType property: This field specifies the type of reviewers for a review. Usually for a review,
+ * reviewers are explicitly assigned. However, in some cases, the reviewers may not be assigned and instead be
+ * chosen dynamically. For example managers review or self review.
+ *
+ * @return the reviewersType value.
+ */
+ public AccessReviewScheduleDefinitionReviewersType reviewersType() {
+ return this.innerProperties() == null ? null : this.innerProperties().reviewersType();
+ }
+
+ /**
+ * Get the instances property: This is the collection of instances returned when one does an expand on it.
+ *
+ * @return the instances value.
+ */
+ public List instances() {
+ return this.innerProperties() == null ? null : this.innerProperties().instances();
+ }
+
+ /**
+ * Set the instances property: This is the collection of instances returned when one does an expand on it.
+ *
+ * @param instances the instances value to set.
+ * @return the AccessReviewScheduleDefinitionInner object itself.
+ */
+ public AccessReviewScheduleDefinitionInner withInstances(List instances) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewScheduleDefinitionProperties();
+ }
+ this.innerProperties().withInstances(instances);
+ return this;
+ }
+
+ /**
+ * Get the principalId property: The identity id.
+ *
+ * @return the principalId value.
+ */
+ public String principalId() {
+ return this.innerProperties() == null ? null : this.innerProperties().principalId();
+ }
+
+ /**
+ * Get the principalType property: The identity type : user/servicePrincipal.
+ *
+ * @return the principalType value.
+ */
+ public AccessReviewActorIdentityType principalType() {
+ return this.innerProperties() == null ? null : this.innerProperties().principalType();
+ }
+
+ /**
+ * Get the principalName property: The identity display name.
+ *
+ * @return the principalName value.
+ */
+ public String principalName() {
+ return this.innerProperties() == null ? null : this.innerProperties().principalName();
+ }
+
+ /**
+ * Get the userPrincipalName property: The user principal name(if valid).
+ *
+ * @return the userPrincipalName value.
+ */
+ public String userPrincipalName() {
+ return this.innerProperties() == null ? null : this.innerProperties().userPrincipalName();
+ }
+
+ /**
+ * Get the mailNotificationsEnabled property: Flag to indicate whether sending mails to reviewers and the review
+ * creator is enabled.
+ *
+ * @return the mailNotificationsEnabled value.
+ */
+ public Boolean mailNotificationsEnabled() {
+ return this.innerProperties() == null ? null : this.innerProperties().mailNotificationsEnabled();
+ }
+
+ /**
+ * Set the mailNotificationsEnabled property: Flag to indicate whether sending mails to reviewers and the review
+ * creator is enabled.
+ *
+ * @param mailNotificationsEnabled the mailNotificationsEnabled value to set.
+ * @return the AccessReviewScheduleDefinitionInner object itself.
+ */
+ public AccessReviewScheduleDefinitionInner withMailNotificationsEnabled(Boolean mailNotificationsEnabled) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewScheduleDefinitionProperties();
+ }
+ this.innerProperties().withMailNotificationsEnabled(mailNotificationsEnabled);
+ return this;
+ }
+
+ /**
+ * Get the reminderNotificationsEnabled property: Flag to indicate whether sending reminder emails to reviewers are
+ * enabled.
+ *
+ * @return the reminderNotificationsEnabled value.
+ */
+ public Boolean reminderNotificationsEnabled() {
+ return this.innerProperties() == null ? null : this.innerProperties().reminderNotificationsEnabled();
+ }
+
+ /**
+ * Set the reminderNotificationsEnabled property: Flag to indicate whether sending reminder emails to reviewers are
+ * enabled.
+ *
+ * @param reminderNotificationsEnabled the reminderNotificationsEnabled value to set.
+ * @return the AccessReviewScheduleDefinitionInner object itself.
+ */
+ public AccessReviewScheduleDefinitionInner withReminderNotificationsEnabled(Boolean reminderNotificationsEnabled) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewScheduleDefinitionProperties();
+ }
+ this.innerProperties().withReminderNotificationsEnabled(reminderNotificationsEnabled);
+ return this;
+ }
+
+ /**
+ * Get the defaultDecisionEnabled property: Flag to indicate whether reviewers are required to provide a
+ * justification when reviewing access.
+ *
+ * @return the defaultDecisionEnabled value.
+ */
+ public Boolean defaultDecisionEnabled() {
+ return this.innerProperties() == null ? null : this.innerProperties().defaultDecisionEnabled();
+ }
+
+ /**
+ * Set the defaultDecisionEnabled property: Flag to indicate whether reviewers are required to provide a
+ * justification when reviewing access.
+ *
+ * @param defaultDecisionEnabled the defaultDecisionEnabled value to set.
+ * @return the AccessReviewScheduleDefinitionInner object itself.
+ */
+ public AccessReviewScheduleDefinitionInner withDefaultDecisionEnabled(Boolean defaultDecisionEnabled) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewScheduleDefinitionProperties();
+ }
+ this.innerProperties().withDefaultDecisionEnabled(defaultDecisionEnabled);
+ return this;
+ }
+
+ /**
+ * Get the justificationRequiredOnApproval property: Flag to indicate whether the reviewer is required to pass
+ * justification when recording a decision.
+ *
+ * @return the justificationRequiredOnApproval value.
+ */
+ public Boolean justificationRequiredOnApproval() {
+ return this.innerProperties() == null ? null : this.innerProperties().justificationRequiredOnApproval();
+ }
+
+ /**
+ * Set the justificationRequiredOnApproval property: Flag to indicate whether the reviewer is required to pass
+ * justification when recording a decision.
+ *
+ * @param justificationRequiredOnApproval the justificationRequiredOnApproval value to set.
+ * @return the AccessReviewScheduleDefinitionInner object itself.
+ */
+ public AccessReviewScheduleDefinitionInner withJustificationRequiredOnApproval(
+ Boolean justificationRequiredOnApproval) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewScheduleDefinitionProperties();
+ }
+ this.innerProperties().withJustificationRequiredOnApproval(justificationRequiredOnApproval);
+ return this;
+ }
+
+ /**
+ * Get the defaultDecision property: This specifies the behavior for the autoReview feature when an access review
+ * completes.
+ *
+ * @return the defaultDecision value.
+ */
+ public DefaultDecisionType defaultDecision() {
+ return this.innerProperties() == null ? null : this.innerProperties().defaultDecision();
+ }
+
+ /**
+ * Set the defaultDecision property: This specifies the behavior for the autoReview feature when an access review
+ * completes.
+ *
+ * @param defaultDecision the defaultDecision value to set.
+ * @return the AccessReviewScheduleDefinitionInner object itself.
+ */
+ public AccessReviewScheduleDefinitionInner withDefaultDecision(DefaultDecisionType defaultDecision) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewScheduleDefinitionProperties();
+ }
+ this.innerProperties().withDefaultDecision(defaultDecision);
+ return this;
+ }
+
+ /**
+ * Get the autoApplyDecisionsEnabled property: Flag to indicate whether auto-apply capability, to automatically
+ * change the target object access resource, is enabled. If not enabled, a user must, after the review completes,
+ * apply the access review.
+ *
+ * @return the autoApplyDecisionsEnabled value.
+ */
+ public Boolean autoApplyDecisionsEnabled() {
+ return this.innerProperties() == null ? null : this.innerProperties().autoApplyDecisionsEnabled();
+ }
+
+ /**
+ * Set the autoApplyDecisionsEnabled property: Flag to indicate whether auto-apply capability, to automatically
+ * change the target object access resource, is enabled. If not enabled, a user must, after the review completes,
+ * apply the access review.
+ *
+ * @param autoApplyDecisionsEnabled the autoApplyDecisionsEnabled value to set.
+ * @return the AccessReviewScheduleDefinitionInner object itself.
+ */
+ public AccessReviewScheduleDefinitionInner withAutoApplyDecisionsEnabled(Boolean autoApplyDecisionsEnabled) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewScheduleDefinitionProperties();
+ }
+ this.innerProperties().withAutoApplyDecisionsEnabled(autoApplyDecisionsEnabled);
+ return this;
+ }
+
+ /**
+ * Get the recommendationsEnabled property: Flag to indicate whether showing recommendations to reviewers is
+ * enabled.
+ *
+ * @return the recommendationsEnabled value.
+ */
+ public Boolean recommendationsEnabled() {
+ return this.innerProperties() == null ? null : this.innerProperties().recommendationsEnabled();
+ }
+
+ /**
+ * Set the recommendationsEnabled property: Flag to indicate whether showing recommendations to reviewers is
+ * enabled.
+ *
+ * @param recommendationsEnabled the recommendationsEnabled value to set.
+ * @return the AccessReviewScheduleDefinitionInner object itself.
+ */
+ public AccessReviewScheduleDefinitionInner withRecommendationsEnabled(Boolean recommendationsEnabled) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewScheduleDefinitionProperties();
+ }
+ this.innerProperties().withRecommendationsEnabled(recommendationsEnabled);
+ return this;
+ }
+
+ /**
+ * Get the instanceDurationInDays property: The duration in days for an instance.
+ *
+ * @return the instanceDurationInDays value.
+ */
+ public Integer instanceDurationInDays() {
+ return this.innerProperties() == null ? null : this.innerProperties().instanceDurationInDays();
+ }
+
+ /**
+ * Set the instanceDurationInDays property: The duration in days for an instance.
+ *
+ * @param instanceDurationInDays the instanceDurationInDays value to set.
+ * @return the AccessReviewScheduleDefinitionInner object itself.
+ */
+ public AccessReviewScheduleDefinitionInner withInstanceDurationInDays(Integer instanceDurationInDays) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewScheduleDefinitionProperties();
+ }
+ this.innerProperties().withInstanceDurationInDays(instanceDurationInDays);
+ return this;
+ }
+
+ /**
+ * Get the type property: The recurrence type : weekly, monthly, etc.
+ *
+ * @return the type value.
+ */
+ public AccessReviewRecurrencePatternType typePropertiesType() {
+ return this.innerProperties() == null ? null : this.innerProperties().type();
+ }
+
+ /**
+ * Set the type property: The recurrence type : weekly, monthly, etc.
+ *
+ * @param type the type value to set.
+ * @return the AccessReviewScheduleDefinitionInner object itself.
+ */
+ public AccessReviewScheduleDefinitionInner withTypePropertiesType(AccessReviewRecurrencePatternType type) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewScheduleDefinitionProperties();
+ }
+ this.innerProperties().withType(type);
+ return this;
+ }
+
+ /**
+ * Get the interval property: The interval for recurrence. For a quarterly review, the interval is 3 for type :
+ * absoluteMonthly.
+ *
+ * @return the interval value.
+ */
+ public Integer interval() {
+ return this.innerProperties() == null ? null : this.innerProperties().interval();
+ }
+
+ /**
+ * Set the interval property: The interval for recurrence. For a quarterly review, the interval is 3 for type :
+ * absoluteMonthly.
+ *
+ * @param interval the interval value to set.
+ * @return the AccessReviewScheduleDefinitionInner object itself.
+ */
+ public AccessReviewScheduleDefinitionInner withInterval(Integer interval) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewScheduleDefinitionProperties();
+ }
+ this.innerProperties().withInterval(interval);
+ return this;
+ }
+
+ /**
+ * Get the typeRangeType property: The recurrence range type. The possible values are: endDate, noEnd, numbered.
+ *
+ * @return the typeRangeType value.
+ */
+ public AccessReviewRecurrenceRangeType typeRangeType() {
+ return this.innerProperties() == null ? null : this.innerProperties().typeRangeType();
+ }
+
+ /**
+ * Set the typeRangeType property: The recurrence range type. The possible values are: endDate, noEnd, numbered.
+ *
+ * @param typeRangeType the typeRangeType value to set.
+ * @return the AccessReviewScheduleDefinitionInner object itself.
+ */
+ public AccessReviewScheduleDefinitionInner withTypeRangeType(AccessReviewRecurrenceRangeType typeRangeType) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewScheduleDefinitionProperties();
+ }
+ this.innerProperties().withTypeRangeType(typeRangeType);
+ return this;
+ }
+
+ /**
+ * Get the numberOfOccurrences property: The number of times to repeat the access review. Required and must be
+ * positive if type is numbered.
+ *
+ * @return the numberOfOccurrences value.
+ */
+ public Integer numberOfOccurrences() {
+ return this.innerProperties() == null ? null : this.innerProperties().numberOfOccurrences();
+ }
+
+ /**
+ * Set the numberOfOccurrences property: The number of times to repeat the access review. Required and must be
+ * positive if type is numbered.
+ *
+ * @param numberOfOccurrences the numberOfOccurrences value to set.
+ * @return the AccessReviewScheduleDefinitionInner object itself.
+ */
+ public AccessReviewScheduleDefinitionInner withNumberOfOccurrences(Integer numberOfOccurrences) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewScheduleDefinitionProperties();
+ }
+ this.innerProperties().withNumberOfOccurrences(numberOfOccurrences);
+ return this;
+ }
+
+ /**
+ * Get the startDate property: The DateTime when the review is scheduled to be start. This could be a date in the
+ * future. Required on create.
+ *
+ * @return the startDate value.
+ */
+ public OffsetDateTime startDate() {
+ return this.innerProperties() == null ? null : this.innerProperties().startDate();
+ }
+
+ /**
+ * Set the startDate property: The DateTime when the review is scheduled to be start. This could be a date in the
+ * future. Required on create.
+ *
+ * @param startDate the startDate value to set.
+ * @return the AccessReviewScheduleDefinitionInner object itself.
+ */
+ public AccessReviewScheduleDefinitionInner withStartDate(OffsetDateTime startDate) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewScheduleDefinitionProperties();
+ }
+ this.innerProperties().withStartDate(startDate);
+ return this;
+ }
+
+ /**
+ * Get the endDate property: The DateTime when the review is scheduled to end. Required if type is endDate.
+ *
+ * @return the endDate value.
+ */
+ public OffsetDateTime endDate() {
+ return this.innerProperties() == null ? null : this.innerProperties().endDate();
+ }
+
+ /**
+ * Set the endDate property: The DateTime when the review is scheduled to end. Required if type is endDate.
+ *
+ * @param endDate the endDate value to set.
+ * @return the AccessReviewScheduleDefinitionInner object itself.
+ */
+ public AccessReviewScheduleDefinitionInner withEndDate(OffsetDateTime endDate) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewScheduleDefinitionProperties();
+ }
+ this.innerProperties().withEndDate(endDate);
+ return this;
+ }
+
+ /**
+ * Get the resourceId property: ResourceId in which this review is getting created.
+ *
+ * @return the resourceId value.
+ */
+ public String resourceId() {
+ return this.innerProperties() == null ? null : this.innerProperties().resourceId();
+ }
+
+ /**
+ * Get the roleDefinitionId property: This is used to indicate the role being reviewed.
+ *
+ * @return the roleDefinitionId value.
+ */
+ public String roleDefinitionId() {
+ return this.innerProperties() == null ? null : this.innerProperties().roleDefinitionId();
+ }
+
+ /**
+ * Get the principalTypeScopePrincipalType property: The identity type user/servicePrincipal to review.
+ *
+ * @return the principalTypeScopePrincipalType value.
+ */
+ public AccessReviewScopePrincipalType principalTypeScopePrincipalType() {
+ return this.innerProperties() == null ? null : this.innerProperties().principalTypeScopePrincipalType();
+ }
+
+ /**
+ * Get the assignmentState property: The role assignment state eligible/active to review.
+ *
+ * @return the assignmentState value.
+ */
+ public AccessReviewScopeAssignmentState assignmentState() {
+ return this.innerProperties() == null ? null : this.innerProperties().assignmentState();
+ }
+
+ /**
+ * Get the inactiveDuration property: Duration users are inactive for. The value should be in ISO 8601 format
+ * (http://en.wikipedia.org/wiki/ISO_8601#Durations).This code can be used to convert TimeSpan to a valid interval
+ * string: XmlConvert.ToString(new TimeSpan(hours, minutes, seconds)).
+ *
+ * @return the inactiveDuration value.
+ */
+ public Duration inactiveDuration() {
+ return this.innerProperties() == null ? null : this.innerProperties().inactiveDuration();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewScheduleDefinitionProperties.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewScheduleDefinitionProperties.java
new file mode 100644
index 0000000000000..9bb66a6a1b27c
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewScheduleDefinitionProperties.java
@@ -0,0 +1,740 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewActorIdentityType;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewRecurrencePatternType;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewRecurrenceRangeType;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewReviewer;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewScheduleDefinitionReviewersType;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewScheduleDefinitionStatus;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewScopeAssignmentState;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewScopePrincipalType;
+import com.azure.resourcemanager.authorization.generated.models.DefaultDecisionType;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.Duration;
+import java.time.OffsetDateTime;
+import java.util.List;
+
+/** Access Review. */
+@Fluent
+public final class AccessReviewScheduleDefinitionProperties {
+ /*
+ * The display name for the schedule definition.
+ */
+ @JsonProperty(value = "displayName")
+ private String displayName;
+
+ /*
+ * This read-only field specifies the status of an accessReview.
+ */
+ @JsonProperty(value = "status", access = JsonProperty.Access.WRITE_ONLY)
+ private AccessReviewScheduleDefinitionStatus status;
+
+ /*
+ * The description provided by the access review creator and visible to
+ * admins.
+ */
+ @JsonProperty(value = "descriptionForAdmins")
+ private String descriptionForAdmins;
+
+ /*
+ * The description provided by the access review creator to be shown to
+ * reviewers.
+ */
+ @JsonProperty(value = "descriptionForReviewers")
+ private String descriptionForReviewers;
+
+ /*
+ * The user or other identity who created this review.
+ */
+ @JsonProperty(value = "createdBy", access = JsonProperty.Access.WRITE_ONLY)
+ private AccessReviewActorIdentity innerCreatedBy;
+
+ /*
+ * Access Review Settings.
+ */
+ @JsonProperty(value = "settings")
+ private AccessReviewScheduleSettings innerSettings;
+
+ /*
+ * This is used to define what to include in scope of the review. The scope
+ * definition includes the resourceId and roleDefinitionId.
+ */
+ @JsonProperty(value = "scope", access = JsonProperty.Access.WRITE_ONLY)
+ private AccessReviewScope innerScope;
+
+ /*
+ * This is the collection of reviewers.
+ */
+ @JsonProperty(value = "reviewers")
+ private List reviewers;
+
+ /*
+ * This is the collection of backup reviewers.
+ */
+ @JsonProperty(value = "backupReviewers")
+ private List backupReviewers;
+
+ /*
+ * This field specifies the type of reviewers for a review. Usually for a
+ * review, reviewers are explicitly assigned. However, in some cases, the
+ * reviewers may not be assigned and instead be chosen dynamically. For
+ * example managers review or self review.
+ */
+ @JsonProperty(value = "reviewersType", access = JsonProperty.Access.WRITE_ONLY)
+ private AccessReviewScheduleDefinitionReviewersType reviewersType;
+
+ /*
+ * This is the collection of instances returned when one does an expand on
+ * it.
+ */
+ @JsonProperty(value = "instances")
+ private List instances;
+
+ /**
+ * Get the displayName property: The display name for the schedule definition.
+ *
+ * @return the displayName value.
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Set the displayName property: The display name for the schedule definition.
+ *
+ * @param displayName the displayName value to set.
+ * @return the AccessReviewScheduleDefinitionProperties object itself.
+ */
+ public AccessReviewScheduleDefinitionProperties withDisplayName(String displayName) {
+ this.displayName = displayName;
+ return this;
+ }
+
+ /**
+ * Get the status property: This read-only field specifies the status of an accessReview.
+ *
+ * @return the status value.
+ */
+ public AccessReviewScheduleDefinitionStatus status() {
+ return this.status;
+ }
+
+ /**
+ * Get the descriptionForAdmins property: The description provided by the access review creator and visible to
+ * admins.
+ *
+ * @return the descriptionForAdmins value.
+ */
+ public String descriptionForAdmins() {
+ return this.descriptionForAdmins;
+ }
+
+ /**
+ * Set the descriptionForAdmins property: The description provided by the access review creator and visible to
+ * admins.
+ *
+ * @param descriptionForAdmins the descriptionForAdmins value to set.
+ * @return the AccessReviewScheduleDefinitionProperties object itself.
+ */
+ public AccessReviewScheduleDefinitionProperties withDescriptionForAdmins(String descriptionForAdmins) {
+ this.descriptionForAdmins = descriptionForAdmins;
+ return this;
+ }
+
+ /**
+ * Get the descriptionForReviewers property: The description provided by the access review creator to be shown to
+ * reviewers.
+ *
+ * @return the descriptionForReviewers value.
+ */
+ public String descriptionForReviewers() {
+ return this.descriptionForReviewers;
+ }
+
+ /**
+ * Set the descriptionForReviewers property: The description provided by the access review creator to be shown to
+ * reviewers.
+ *
+ * @param descriptionForReviewers the descriptionForReviewers value to set.
+ * @return the AccessReviewScheduleDefinitionProperties object itself.
+ */
+ public AccessReviewScheduleDefinitionProperties withDescriptionForReviewers(String descriptionForReviewers) {
+ this.descriptionForReviewers = descriptionForReviewers;
+ return this;
+ }
+
+ /**
+ * Get the innerCreatedBy property: The user or other identity who created this review.
+ *
+ * @return the innerCreatedBy value.
+ */
+ private AccessReviewActorIdentity innerCreatedBy() {
+ return this.innerCreatedBy;
+ }
+
+ /**
+ * Get the innerSettings property: Access Review Settings.
+ *
+ * @return the innerSettings value.
+ */
+ private AccessReviewScheduleSettings innerSettings() {
+ return this.innerSettings;
+ }
+
+ /**
+ * Get the innerScope property: This is used to define what to include in scope of the review. The scope definition
+ * includes the resourceId and roleDefinitionId.
+ *
+ * @return the innerScope value.
+ */
+ private AccessReviewScope innerScope() {
+ return this.innerScope;
+ }
+
+ /**
+ * Get the reviewers property: This is the collection of reviewers.
+ *
+ * @return the reviewers value.
+ */
+ public List reviewers() {
+ return this.reviewers;
+ }
+
+ /**
+ * Set the reviewers property: This is the collection of reviewers.
+ *
+ * @param reviewers the reviewers value to set.
+ * @return the AccessReviewScheduleDefinitionProperties object itself.
+ */
+ public AccessReviewScheduleDefinitionProperties withReviewers(List reviewers) {
+ this.reviewers = reviewers;
+ return this;
+ }
+
+ /**
+ * Get the backupReviewers property: This is the collection of backup reviewers.
+ *
+ * @return the backupReviewers value.
+ */
+ public List backupReviewers() {
+ return this.backupReviewers;
+ }
+
+ /**
+ * Set the backupReviewers property: This is the collection of backup reviewers.
+ *
+ * @param backupReviewers the backupReviewers value to set.
+ * @return the AccessReviewScheduleDefinitionProperties object itself.
+ */
+ public AccessReviewScheduleDefinitionProperties withBackupReviewers(List backupReviewers) {
+ this.backupReviewers = backupReviewers;
+ return this;
+ }
+
+ /**
+ * Get the reviewersType property: This field specifies the type of reviewers for a review. Usually for a review,
+ * reviewers are explicitly assigned. However, in some cases, the reviewers may not be assigned and instead be
+ * chosen dynamically. For example managers review or self review.
+ *
+ * @return the reviewersType value.
+ */
+ public AccessReviewScheduleDefinitionReviewersType reviewersType() {
+ return this.reviewersType;
+ }
+
+ /**
+ * Get the instances property: This is the collection of instances returned when one does an expand on it.
+ *
+ * @return the instances value.
+ */
+ public List instances() {
+ return this.instances;
+ }
+
+ /**
+ * Set the instances property: This is the collection of instances returned when one does an expand on it.
+ *
+ * @param instances the instances value to set.
+ * @return the AccessReviewScheduleDefinitionProperties object itself.
+ */
+ public AccessReviewScheduleDefinitionProperties withInstances(List instances) {
+ this.instances = instances;
+ return this;
+ }
+
+ /**
+ * Get the principalId property: The identity id.
+ *
+ * @return the principalId value.
+ */
+ public String principalId() {
+ return this.innerCreatedBy() == null ? null : this.innerCreatedBy().principalId();
+ }
+
+ /**
+ * Get the principalType property: The identity type : user/servicePrincipal.
+ *
+ * @return the principalType value.
+ */
+ public AccessReviewActorIdentityType principalType() {
+ return this.innerCreatedBy() == null ? null : this.innerCreatedBy().principalType();
+ }
+
+ /**
+ * Get the principalName property: The identity display name.
+ *
+ * @return the principalName value.
+ */
+ public String principalName() {
+ return this.innerCreatedBy() == null ? null : this.innerCreatedBy().principalName();
+ }
+
+ /**
+ * Get the userPrincipalName property: The user principal name(if valid).
+ *
+ * @return the userPrincipalName value.
+ */
+ public String userPrincipalName() {
+ return this.innerCreatedBy() == null ? null : this.innerCreatedBy().userPrincipalName();
+ }
+
+ /**
+ * Get the mailNotificationsEnabled property: Flag to indicate whether sending mails to reviewers and the review
+ * creator is enabled.
+ *
+ * @return the mailNotificationsEnabled value.
+ */
+ public Boolean mailNotificationsEnabled() {
+ return this.innerSettings() == null ? null : this.innerSettings().mailNotificationsEnabled();
+ }
+
+ /**
+ * Set the mailNotificationsEnabled property: Flag to indicate whether sending mails to reviewers and the review
+ * creator is enabled.
+ *
+ * @param mailNotificationsEnabled the mailNotificationsEnabled value to set.
+ * @return the AccessReviewScheduleDefinitionProperties object itself.
+ */
+ public AccessReviewScheduleDefinitionProperties withMailNotificationsEnabled(Boolean mailNotificationsEnabled) {
+ if (this.innerSettings() == null) {
+ this.innerSettings = new AccessReviewScheduleSettings();
+ }
+ this.innerSettings().withMailNotificationsEnabled(mailNotificationsEnabled);
+ return this;
+ }
+
+ /**
+ * Get the reminderNotificationsEnabled property: Flag to indicate whether sending reminder emails to reviewers are
+ * enabled.
+ *
+ * @return the reminderNotificationsEnabled value.
+ */
+ public Boolean reminderNotificationsEnabled() {
+ return this.innerSettings() == null ? null : this.innerSettings().reminderNotificationsEnabled();
+ }
+
+ /**
+ * Set the reminderNotificationsEnabled property: Flag to indicate whether sending reminder emails to reviewers are
+ * enabled.
+ *
+ * @param reminderNotificationsEnabled the reminderNotificationsEnabled value to set.
+ * @return the AccessReviewScheduleDefinitionProperties object itself.
+ */
+ public AccessReviewScheduleDefinitionProperties withReminderNotificationsEnabled(
+ Boolean reminderNotificationsEnabled) {
+ if (this.innerSettings() == null) {
+ this.innerSettings = new AccessReviewScheduleSettings();
+ }
+ this.innerSettings().withReminderNotificationsEnabled(reminderNotificationsEnabled);
+ return this;
+ }
+
+ /**
+ * Get the defaultDecisionEnabled property: Flag to indicate whether reviewers are required to provide a
+ * justification when reviewing access.
+ *
+ * @return the defaultDecisionEnabled value.
+ */
+ public Boolean defaultDecisionEnabled() {
+ return this.innerSettings() == null ? null : this.innerSettings().defaultDecisionEnabled();
+ }
+
+ /**
+ * Set the defaultDecisionEnabled property: Flag to indicate whether reviewers are required to provide a
+ * justification when reviewing access.
+ *
+ * @param defaultDecisionEnabled the defaultDecisionEnabled value to set.
+ * @return the AccessReviewScheduleDefinitionProperties object itself.
+ */
+ public AccessReviewScheduleDefinitionProperties withDefaultDecisionEnabled(Boolean defaultDecisionEnabled) {
+ if (this.innerSettings() == null) {
+ this.innerSettings = new AccessReviewScheduleSettings();
+ }
+ this.innerSettings().withDefaultDecisionEnabled(defaultDecisionEnabled);
+ return this;
+ }
+
+ /**
+ * Get the justificationRequiredOnApproval property: Flag to indicate whether the reviewer is required to pass
+ * justification when recording a decision.
+ *
+ * @return the justificationRequiredOnApproval value.
+ */
+ public Boolean justificationRequiredOnApproval() {
+ return this.innerSettings() == null ? null : this.innerSettings().justificationRequiredOnApproval();
+ }
+
+ /**
+ * Set the justificationRequiredOnApproval property: Flag to indicate whether the reviewer is required to pass
+ * justification when recording a decision.
+ *
+ * @param justificationRequiredOnApproval the justificationRequiredOnApproval value to set.
+ * @return the AccessReviewScheduleDefinitionProperties object itself.
+ */
+ public AccessReviewScheduleDefinitionProperties withJustificationRequiredOnApproval(
+ Boolean justificationRequiredOnApproval) {
+ if (this.innerSettings() == null) {
+ this.innerSettings = new AccessReviewScheduleSettings();
+ }
+ this.innerSettings().withJustificationRequiredOnApproval(justificationRequiredOnApproval);
+ return this;
+ }
+
+ /**
+ * Get the defaultDecision property: This specifies the behavior for the autoReview feature when an access review
+ * completes.
+ *
+ * @return the defaultDecision value.
+ */
+ public DefaultDecisionType defaultDecision() {
+ return this.innerSettings() == null ? null : this.innerSettings().defaultDecision();
+ }
+
+ /**
+ * Set the defaultDecision property: This specifies the behavior for the autoReview feature when an access review
+ * completes.
+ *
+ * @param defaultDecision the defaultDecision value to set.
+ * @return the AccessReviewScheduleDefinitionProperties object itself.
+ */
+ public AccessReviewScheduleDefinitionProperties withDefaultDecision(DefaultDecisionType defaultDecision) {
+ if (this.innerSettings() == null) {
+ this.innerSettings = new AccessReviewScheduleSettings();
+ }
+ this.innerSettings().withDefaultDecision(defaultDecision);
+ return this;
+ }
+
+ /**
+ * Get the autoApplyDecisionsEnabled property: Flag to indicate whether auto-apply capability, to automatically
+ * change the target object access resource, is enabled. If not enabled, a user must, after the review completes,
+ * apply the access review.
+ *
+ * @return the autoApplyDecisionsEnabled value.
+ */
+ public Boolean autoApplyDecisionsEnabled() {
+ return this.innerSettings() == null ? null : this.innerSettings().autoApplyDecisionsEnabled();
+ }
+
+ /**
+ * Set the autoApplyDecisionsEnabled property: Flag to indicate whether auto-apply capability, to automatically
+ * change the target object access resource, is enabled. If not enabled, a user must, after the review completes,
+ * apply the access review.
+ *
+ * @param autoApplyDecisionsEnabled the autoApplyDecisionsEnabled value to set.
+ * @return the AccessReviewScheduleDefinitionProperties object itself.
+ */
+ public AccessReviewScheduleDefinitionProperties withAutoApplyDecisionsEnabled(Boolean autoApplyDecisionsEnabled) {
+ if (this.innerSettings() == null) {
+ this.innerSettings = new AccessReviewScheduleSettings();
+ }
+ this.innerSettings().withAutoApplyDecisionsEnabled(autoApplyDecisionsEnabled);
+ return this;
+ }
+
+ /**
+ * Get the recommendationsEnabled property: Flag to indicate whether showing recommendations to reviewers is
+ * enabled.
+ *
+ * @return the recommendationsEnabled value.
+ */
+ public Boolean recommendationsEnabled() {
+ return this.innerSettings() == null ? null : this.innerSettings().recommendationsEnabled();
+ }
+
+ /**
+ * Set the recommendationsEnabled property: Flag to indicate whether showing recommendations to reviewers is
+ * enabled.
+ *
+ * @param recommendationsEnabled the recommendationsEnabled value to set.
+ * @return the AccessReviewScheduleDefinitionProperties object itself.
+ */
+ public AccessReviewScheduleDefinitionProperties withRecommendationsEnabled(Boolean recommendationsEnabled) {
+ if (this.innerSettings() == null) {
+ this.innerSettings = new AccessReviewScheduleSettings();
+ }
+ this.innerSettings().withRecommendationsEnabled(recommendationsEnabled);
+ return this;
+ }
+
+ /**
+ * Get the instanceDurationInDays property: The duration in days for an instance.
+ *
+ * @return the instanceDurationInDays value.
+ */
+ public Integer instanceDurationInDays() {
+ return this.innerSettings() == null ? null : this.innerSettings().instanceDurationInDays();
+ }
+
+ /**
+ * Set the instanceDurationInDays property: The duration in days for an instance.
+ *
+ * @param instanceDurationInDays the instanceDurationInDays value to set.
+ * @return the AccessReviewScheduleDefinitionProperties object itself.
+ */
+ public AccessReviewScheduleDefinitionProperties withInstanceDurationInDays(Integer instanceDurationInDays) {
+ if (this.innerSettings() == null) {
+ this.innerSettings = new AccessReviewScheduleSettings();
+ }
+ this.innerSettings().withInstanceDurationInDays(instanceDurationInDays);
+ return this;
+ }
+
+ /**
+ * Get the type property: The recurrence type : weekly, monthly, etc.
+ *
+ * @return the type value.
+ */
+ public AccessReviewRecurrencePatternType type() {
+ return this.innerSettings() == null ? null : this.innerSettings().type();
+ }
+
+ /**
+ * Set the type property: The recurrence type : weekly, monthly, etc.
+ *
+ * @param type the type value to set.
+ * @return the AccessReviewScheduleDefinitionProperties object itself.
+ */
+ public AccessReviewScheduleDefinitionProperties withType(AccessReviewRecurrencePatternType type) {
+ if (this.innerSettings() == null) {
+ this.innerSettings = new AccessReviewScheduleSettings();
+ }
+ this.innerSettings().withType(type);
+ return this;
+ }
+
+ /**
+ * Get the interval property: The interval for recurrence. For a quarterly review, the interval is 3 for type :
+ * absoluteMonthly.
+ *
+ * @return the interval value.
+ */
+ public Integer interval() {
+ return this.innerSettings() == null ? null : this.innerSettings().interval();
+ }
+
+ /**
+ * Set the interval property: The interval for recurrence. For a quarterly review, the interval is 3 for type :
+ * absoluteMonthly.
+ *
+ * @param interval the interval value to set.
+ * @return the AccessReviewScheduleDefinitionProperties object itself.
+ */
+ public AccessReviewScheduleDefinitionProperties withInterval(Integer interval) {
+ if (this.innerSettings() == null) {
+ this.innerSettings = new AccessReviewScheduleSettings();
+ }
+ this.innerSettings().withInterval(interval);
+ return this;
+ }
+
+ /**
+ * Get the typeRangeType property: The recurrence range type. The possible values are: endDate, noEnd, numbered.
+ *
+ * @return the typeRangeType value.
+ */
+ public AccessReviewRecurrenceRangeType typeRangeType() {
+ return this.innerSettings() == null ? null : this.innerSettings().typeRangeType();
+ }
+
+ /**
+ * Set the typeRangeType property: The recurrence range type. The possible values are: endDate, noEnd, numbered.
+ *
+ * @param typeRangeType the typeRangeType value to set.
+ * @return the AccessReviewScheduleDefinitionProperties object itself.
+ */
+ public AccessReviewScheduleDefinitionProperties withTypeRangeType(AccessReviewRecurrenceRangeType typeRangeType) {
+ if (this.innerSettings() == null) {
+ this.innerSettings = new AccessReviewScheduleSettings();
+ }
+ this.innerSettings().withTypeRangeType(typeRangeType);
+ return this;
+ }
+
+ /**
+ * Get the numberOfOccurrences property: The number of times to repeat the access review. Required and must be
+ * positive if type is numbered.
+ *
+ * @return the numberOfOccurrences value.
+ */
+ public Integer numberOfOccurrences() {
+ return this.innerSettings() == null ? null : this.innerSettings().numberOfOccurrences();
+ }
+
+ /**
+ * Set the numberOfOccurrences property: The number of times to repeat the access review. Required and must be
+ * positive if type is numbered.
+ *
+ * @param numberOfOccurrences the numberOfOccurrences value to set.
+ * @return the AccessReviewScheduleDefinitionProperties object itself.
+ */
+ public AccessReviewScheduleDefinitionProperties withNumberOfOccurrences(Integer numberOfOccurrences) {
+ if (this.innerSettings() == null) {
+ this.innerSettings = new AccessReviewScheduleSettings();
+ }
+ this.innerSettings().withNumberOfOccurrences(numberOfOccurrences);
+ return this;
+ }
+
+ /**
+ * Get the startDate property: The DateTime when the review is scheduled to be start. This could be a date in the
+ * future. Required on create.
+ *
+ * @return the startDate value.
+ */
+ public OffsetDateTime startDate() {
+ return this.innerSettings() == null ? null : this.innerSettings().startDate();
+ }
+
+ /**
+ * Set the startDate property: The DateTime when the review is scheduled to be start. This could be a date in the
+ * future. Required on create.
+ *
+ * @param startDate the startDate value to set.
+ * @return the AccessReviewScheduleDefinitionProperties object itself.
+ */
+ public AccessReviewScheduleDefinitionProperties withStartDate(OffsetDateTime startDate) {
+ if (this.innerSettings() == null) {
+ this.innerSettings = new AccessReviewScheduleSettings();
+ }
+ this.innerSettings().withStartDate(startDate);
+ return this;
+ }
+
+ /**
+ * Get the endDate property: The DateTime when the review is scheduled to end. Required if type is endDate.
+ *
+ * @return the endDate value.
+ */
+ public OffsetDateTime endDate() {
+ return this.innerSettings() == null ? null : this.innerSettings().endDate();
+ }
+
+ /**
+ * Set the endDate property: The DateTime when the review is scheduled to end. Required if type is endDate.
+ *
+ * @param endDate the endDate value to set.
+ * @return the AccessReviewScheduleDefinitionProperties object itself.
+ */
+ public AccessReviewScheduleDefinitionProperties withEndDate(OffsetDateTime endDate) {
+ if (this.innerSettings() == null) {
+ this.innerSettings = new AccessReviewScheduleSettings();
+ }
+ this.innerSettings().withEndDate(endDate);
+ return this;
+ }
+
+ /**
+ * Get the resourceId property: ResourceId in which this review is getting created.
+ *
+ * @return the resourceId value.
+ */
+ public String resourceId() {
+ return this.innerScope() == null ? null : this.innerScope().resourceId();
+ }
+
+ /**
+ * Get the roleDefinitionId property: This is used to indicate the role being reviewed.
+ *
+ * @return the roleDefinitionId value.
+ */
+ public String roleDefinitionId() {
+ return this.innerScope() == null ? null : this.innerScope().roleDefinitionId();
+ }
+
+ /**
+ * Get the principalType property: The identity type user/servicePrincipal to review.
+ *
+ * @return the principalType value.
+ */
+ public AccessReviewScopePrincipalType principalTypeScopePrincipalType() {
+ return this.innerScope() == null ? null : this.innerScope().principalType();
+ }
+
+ /**
+ * Get the assignmentState property: The role assignment state eligible/active to review.
+ *
+ * @return the assignmentState value.
+ */
+ public AccessReviewScopeAssignmentState assignmentState() {
+ return this.innerScope() == null ? null : this.innerScope().assignmentState();
+ }
+
+ /**
+ * Get the inactiveDuration property: Duration users are inactive for. The value should be in ISO 8601 format
+ * (http://en.wikipedia.org/wiki/ISO_8601#Durations).This code can be used to convert TimeSpan to a valid interval
+ * string: XmlConvert.ToString(new TimeSpan(hours, minutes, seconds)).
+ *
+ * @return the inactiveDuration value.
+ */
+ public Duration inactiveDuration() {
+ return this.innerScope() == null ? null : this.innerScope().inactiveDuration();
+ }
+
+ /**
+ * Set the inactiveDuration property: Duration users are inactive for. The value should be in ISO 8601 format
+ * (http://en.wikipedia.org/wiki/ISO_8601#Durations).This code can be used to convert TimeSpan to a valid interval
+ * string: XmlConvert.ToString(new TimeSpan(hours, minutes, seconds)).
+ *
+ * @param inactiveDuration the inactiveDuration value to set.
+ * @return the AccessReviewScheduleDefinitionProperties object itself.
+ */
+ public AccessReviewScheduleDefinitionProperties withInactiveDuration(Duration inactiveDuration) {
+ if (this.innerScope() == null) {
+ this.innerScope = new AccessReviewScope();
+ }
+ this.innerScope().withInactiveDuration(inactiveDuration);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerCreatedBy() != null) {
+ innerCreatedBy().validate();
+ }
+ if (innerSettings() != null) {
+ innerSettings().validate();
+ }
+ if (innerScope() != null) {
+ innerScope().validate();
+ }
+ if (reviewers() != null) {
+ reviewers().forEach(e -> e.validate());
+ }
+ if (backupReviewers() != null) {
+ backupReviewers().forEach(e -> e.validate());
+ }
+ if (instances() != null) {
+ instances().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewScheduleSettings.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewScheduleSettings.java
new file mode 100644
index 0000000000000..84735e23286e5
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewScheduleSettings.java
@@ -0,0 +1,418 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewRecurrencePatternType;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewRecurrenceRangeType;
+import com.azure.resourcemanager.authorization.generated.models.DefaultDecisionType;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** Settings of an Access Review. */
+@Fluent
+public final class AccessReviewScheduleSettings {
+ /*
+ * Flag to indicate whether sending mails to reviewers and the review
+ * creator is enabled.
+ */
+ @JsonProperty(value = "mailNotificationsEnabled")
+ private Boolean mailNotificationsEnabled;
+
+ /*
+ * Flag to indicate whether sending reminder emails to reviewers are
+ * enabled.
+ */
+ @JsonProperty(value = "reminderNotificationsEnabled")
+ private Boolean reminderNotificationsEnabled;
+
+ /*
+ * Flag to indicate whether reviewers are required to provide a
+ * justification when reviewing access.
+ */
+ @JsonProperty(value = "defaultDecisionEnabled")
+ private Boolean defaultDecisionEnabled;
+
+ /*
+ * Flag to indicate whether the reviewer is required to pass justification
+ * when recording a decision.
+ */
+ @JsonProperty(value = "justificationRequiredOnApproval")
+ private Boolean justificationRequiredOnApproval;
+
+ /*
+ * This specifies the behavior for the autoReview feature when an access
+ * review completes.
+ */
+ @JsonProperty(value = "defaultDecision")
+ private DefaultDecisionType defaultDecision;
+
+ /*
+ * Flag to indicate whether auto-apply capability, to automatically change
+ * the target object access resource, is enabled. If not enabled, a user
+ * must, after the review completes, apply the access review.
+ */
+ @JsonProperty(value = "autoApplyDecisionsEnabled")
+ private Boolean autoApplyDecisionsEnabled;
+
+ /*
+ * Flag to indicate whether showing recommendations to reviewers is
+ * enabled.
+ */
+ @JsonProperty(value = "recommendationsEnabled")
+ private Boolean recommendationsEnabled;
+
+ /*
+ * The duration in days for an instance.
+ */
+ @JsonProperty(value = "instanceDurationInDays")
+ private Integer instanceDurationInDays;
+
+ /*
+ * Access Review Settings.
+ */
+ @JsonProperty(value = "recurrence")
+ private AccessReviewRecurrenceSettings innerRecurrence;
+
+ /**
+ * Get the mailNotificationsEnabled property: Flag to indicate whether sending mails to reviewers and the review
+ * creator is enabled.
+ *
+ * @return the mailNotificationsEnabled value.
+ */
+ public Boolean mailNotificationsEnabled() {
+ return this.mailNotificationsEnabled;
+ }
+
+ /**
+ * Set the mailNotificationsEnabled property: Flag to indicate whether sending mails to reviewers and the review
+ * creator is enabled.
+ *
+ * @param mailNotificationsEnabled the mailNotificationsEnabled value to set.
+ * @return the AccessReviewScheduleSettings object itself.
+ */
+ public AccessReviewScheduleSettings withMailNotificationsEnabled(Boolean mailNotificationsEnabled) {
+ this.mailNotificationsEnabled = mailNotificationsEnabled;
+ return this;
+ }
+
+ /**
+ * Get the reminderNotificationsEnabled property: Flag to indicate whether sending reminder emails to reviewers are
+ * enabled.
+ *
+ * @return the reminderNotificationsEnabled value.
+ */
+ public Boolean reminderNotificationsEnabled() {
+ return this.reminderNotificationsEnabled;
+ }
+
+ /**
+ * Set the reminderNotificationsEnabled property: Flag to indicate whether sending reminder emails to reviewers are
+ * enabled.
+ *
+ * @param reminderNotificationsEnabled the reminderNotificationsEnabled value to set.
+ * @return the AccessReviewScheduleSettings object itself.
+ */
+ public AccessReviewScheduleSettings withReminderNotificationsEnabled(Boolean reminderNotificationsEnabled) {
+ this.reminderNotificationsEnabled = reminderNotificationsEnabled;
+ return this;
+ }
+
+ /**
+ * Get the defaultDecisionEnabled property: Flag to indicate whether reviewers are required to provide a
+ * justification when reviewing access.
+ *
+ * @return the defaultDecisionEnabled value.
+ */
+ public Boolean defaultDecisionEnabled() {
+ return this.defaultDecisionEnabled;
+ }
+
+ /**
+ * Set the defaultDecisionEnabled property: Flag to indicate whether reviewers are required to provide a
+ * justification when reviewing access.
+ *
+ * @param defaultDecisionEnabled the defaultDecisionEnabled value to set.
+ * @return the AccessReviewScheduleSettings object itself.
+ */
+ public AccessReviewScheduleSettings withDefaultDecisionEnabled(Boolean defaultDecisionEnabled) {
+ this.defaultDecisionEnabled = defaultDecisionEnabled;
+ return this;
+ }
+
+ /**
+ * Get the justificationRequiredOnApproval property: Flag to indicate whether the reviewer is required to pass
+ * justification when recording a decision.
+ *
+ * @return the justificationRequiredOnApproval value.
+ */
+ public Boolean justificationRequiredOnApproval() {
+ return this.justificationRequiredOnApproval;
+ }
+
+ /**
+ * Set the justificationRequiredOnApproval property: Flag to indicate whether the reviewer is required to pass
+ * justification when recording a decision.
+ *
+ * @param justificationRequiredOnApproval the justificationRequiredOnApproval value to set.
+ * @return the AccessReviewScheduleSettings object itself.
+ */
+ public AccessReviewScheduleSettings withJustificationRequiredOnApproval(Boolean justificationRequiredOnApproval) {
+ this.justificationRequiredOnApproval = justificationRequiredOnApproval;
+ return this;
+ }
+
+ /**
+ * Get the defaultDecision property: This specifies the behavior for the autoReview feature when an access review
+ * completes.
+ *
+ * @return the defaultDecision value.
+ */
+ public DefaultDecisionType defaultDecision() {
+ return this.defaultDecision;
+ }
+
+ /**
+ * Set the defaultDecision property: This specifies the behavior for the autoReview feature when an access review
+ * completes.
+ *
+ * @param defaultDecision the defaultDecision value to set.
+ * @return the AccessReviewScheduleSettings object itself.
+ */
+ public AccessReviewScheduleSettings withDefaultDecision(DefaultDecisionType defaultDecision) {
+ this.defaultDecision = defaultDecision;
+ return this;
+ }
+
+ /**
+ * Get the autoApplyDecisionsEnabled property: Flag to indicate whether auto-apply capability, to automatically
+ * change the target object access resource, is enabled. If not enabled, a user must, after the review completes,
+ * apply the access review.
+ *
+ * @return the autoApplyDecisionsEnabled value.
+ */
+ public Boolean autoApplyDecisionsEnabled() {
+ return this.autoApplyDecisionsEnabled;
+ }
+
+ /**
+ * Set the autoApplyDecisionsEnabled property: Flag to indicate whether auto-apply capability, to automatically
+ * change the target object access resource, is enabled. If not enabled, a user must, after the review completes,
+ * apply the access review.
+ *
+ * @param autoApplyDecisionsEnabled the autoApplyDecisionsEnabled value to set.
+ * @return the AccessReviewScheduleSettings object itself.
+ */
+ public AccessReviewScheduleSettings withAutoApplyDecisionsEnabled(Boolean autoApplyDecisionsEnabled) {
+ this.autoApplyDecisionsEnabled = autoApplyDecisionsEnabled;
+ return this;
+ }
+
+ /**
+ * Get the recommendationsEnabled property: Flag to indicate whether showing recommendations to reviewers is
+ * enabled.
+ *
+ * @return the recommendationsEnabled value.
+ */
+ public Boolean recommendationsEnabled() {
+ return this.recommendationsEnabled;
+ }
+
+ /**
+ * Set the recommendationsEnabled property: Flag to indicate whether showing recommendations to reviewers is
+ * enabled.
+ *
+ * @param recommendationsEnabled the recommendationsEnabled value to set.
+ * @return the AccessReviewScheduleSettings object itself.
+ */
+ public AccessReviewScheduleSettings withRecommendationsEnabled(Boolean recommendationsEnabled) {
+ this.recommendationsEnabled = recommendationsEnabled;
+ return this;
+ }
+
+ /**
+ * Get the instanceDurationInDays property: The duration in days for an instance.
+ *
+ * @return the instanceDurationInDays value.
+ */
+ public Integer instanceDurationInDays() {
+ return this.instanceDurationInDays;
+ }
+
+ /**
+ * Set the instanceDurationInDays property: The duration in days for an instance.
+ *
+ * @param instanceDurationInDays the instanceDurationInDays value to set.
+ * @return the AccessReviewScheduleSettings object itself.
+ */
+ public AccessReviewScheduleSettings withInstanceDurationInDays(Integer instanceDurationInDays) {
+ this.instanceDurationInDays = instanceDurationInDays;
+ return this;
+ }
+
+ /**
+ * Get the innerRecurrence property: Access Review Settings.
+ *
+ * @return the innerRecurrence value.
+ */
+ private AccessReviewRecurrenceSettings innerRecurrence() {
+ return this.innerRecurrence;
+ }
+
+ /**
+ * Get the type property: The recurrence type : weekly, monthly, etc.
+ *
+ * @return the type value.
+ */
+ public AccessReviewRecurrencePatternType type() {
+ return this.innerRecurrence() == null ? null : this.innerRecurrence().type();
+ }
+
+ /**
+ * Set the type property: The recurrence type : weekly, monthly, etc.
+ *
+ * @param type the type value to set.
+ * @return the AccessReviewScheduleSettings object itself.
+ */
+ public AccessReviewScheduleSettings withType(AccessReviewRecurrencePatternType type) {
+ if (this.innerRecurrence() == null) {
+ this.innerRecurrence = new AccessReviewRecurrenceSettings();
+ }
+ this.innerRecurrence().withType(type);
+ return this;
+ }
+
+ /**
+ * Get the interval property: The interval for recurrence. For a quarterly review, the interval is 3 for type :
+ * absoluteMonthly.
+ *
+ * @return the interval value.
+ */
+ public Integer interval() {
+ return this.innerRecurrence() == null ? null : this.innerRecurrence().interval();
+ }
+
+ /**
+ * Set the interval property: The interval for recurrence. For a quarterly review, the interval is 3 for type :
+ * absoluteMonthly.
+ *
+ * @param interval the interval value to set.
+ * @return the AccessReviewScheduleSettings object itself.
+ */
+ public AccessReviewScheduleSettings withInterval(Integer interval) {
+ if (this.innerRecurrence() == null) {
+ this.innerRecurrence = new AccessReviewRecurrenceSettings();
+ }
+ this.innerRecurrence().withInterval(interval);
+ return this;
+ }
+
+ /**
+ * Get the typeRangeType property: The recurrence range type. The possible values are: endDate, noEnd, numbered.
+ *
+ * @return the typeRangeType value.
+ */
+ public AccessReviewRecurrenceRangeType typeRangeType() {
+ return this.innerRecurrence() == null ? null : this.innerRecurrence().typeRangeType();
+ }
+
+ /**
+ * Set the typeRangeType property: The recurrence range type. The possible values are: endDate, noEnd, numbered.
+ *
+ * @param typeRangeType the typeRangeType value to set.
+ * @return the AccessReviewScheduleSettings object itself.
+ */
+ public AccessReviewScheduleSettings withTypeRangeType(AccessReviewRecurrenceRangeType typeRangeType) {
+ if (this.innerRecurrence() == null) {
+ this.innerRecurrence = new AccessReviewRecurrenceSettings();
+ }
+ this.innerRecurrence().withTypeRangeType(typeRangeType);
+ return this;
+ }
+
+ /**
+ * Get the numberOfOccurrences property: The number of times to repeat the access review. Required and must be
+ * positive if type is numbered.
+ *
+ * @return the numberOfOccurrences value.
+ */
+ public Integer numberOfOccurrences() {
+ return this.innerRecurrence() == null ? null : this.innerRecurrence().numberOfOccurrences();
+ }
+
+ /**
+ * Set the numberOfOccurrences property: The number of times to repeat the access review. Required and must be
+ * positive if type is numbered.
+ *
+ * @param numberOfOccurrences the numberOfOccurrences value to set.
+ * @return the AccessReviewScheduleSettings object itself.
+ */
+ public AccessReviewScheduleSettings withNumberOfOccurrences(Integer numberOfOccurrences) {
+ if (this.innerRecurrence() == null) {
+ this.innerRecurrence = new AccessReviewRecurrenceSettings();
+ }
+ this.innerRecurrence().withNumberOfOccurrences(numberOfOccurrences);
+ return this;
+ }
+
+ /**
+ * Get the startDate property: The DateTime when the review is scheduled to be start. This could be a date in the
+ * future. Required on create.
+ *
+ * @return the startDate value.
+ */
+ public OffsetDateTime startDate() {
+ return this.innerRecurrence() == null ? null : this.innerRecurrence().startDate();
+ }
+
+ /**
+ * Set the startDate property: The DateTime when the review is scheduled to be start. This could be a date in the
+ * future. Required on create.
+ *
+ * @param startDate the startDate value to set.
+ * @return the AccessReviewScheduleSettings object itself.
+ */
+ public AccessReviewScheduleSettings withStartDate(OffsetDateTime startDate) {
+ if (this.innerRecurrence() == null) {
+ this.innerRecurrence = new AccessReviewRecurrenceSettings();
+ }
+ this.innerRecurrence().withStartDate(startDate);
+ return this;
+ }
+
+ /**
+ * Get the endDate property: The DateTime when the review is scheduled to end. Required if type is endDate.
+ *
+ * @return the endDate value.
+ */
+ public OffsetDateTime endDate() {
+ return this.innerRecurrence() == null ? null : this.innerRecurrence().endDate();
+ }
+
+ /**
+ * Set the endDate property: The DateTime when the review is scheduled to end. Required if type is endDate.
+ *
+ * @param endDate the endDate value to set.
+ * @return the AccessReviewScheduleSettings object itself.
+ */
+ public AccessReviewScheduleSettings withEndDate(OffsetDateTime endDate) {
+ if (this.innerRecurrence() == null) {
+ this.innerRecurrence = new AccessReviewRecurrenceSettings();
+ }
+ this.innerRecurrence().withEndDate(endDate);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerRecurrence() != null) {
+ innerRecurrence().validate();
+ }
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewScope.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewScope.java
new file mode 100644
index 0000000000000..a7581ff060364
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewScope.java
@@ -0,0 +1,116 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewScopeAssignmentState;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewScopePrincipalType;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.Duration;
+
+/** Descriptor for what needs to be reviewed. */
+@Fluent
+public final class AccessReviewScope {
+ /*
+ * ResourceId in which this review is getting created
+ */
+ @JsonProperty(value = "resourceId", access = JsonProperty.Access.WRITE_ONLY)
+ private String resourceId;
+
+ /*
+ * This is used to indicate the role being reviewed
+ */
+ @JsonProperty(value = "roleDefinitionId", access = JsonProperty.Access.WRITE_ONLY)
+ private String roleDefinitionId;
+
+ /*
+ * The identity type user/servicePrincipal to review
+ */
+ @JsonProperty(value = "principalType", access = JsonProperty.Access.WRITE_ONLY)
+ private AccessReviewScopePrincipalType principalType;
+
+ /*
+ * The role assignment state eligible/active to review
+ */
+ @JsonProperty(value = "assignmentState", access = JsonProperty.Access.WRITE_ONLY)
+ private AccessReviewScopeAssignmentState assignmentState;
+
+ /*
+ * Duration users are inactive for. The value should be in ISO 8601 format
+ * (http://en.wikipedia.org/wiki/ISO_8601#Durations).This code can be used
+ * to convert TimeSpan to a valid interval string: XmlConvert.ToString(new
+ * TimeSpan(hours, minutes, seconds))
+ */
+ @JsonProperty(value = "inactiveDuration")
+ private Duration inactiveDuration;
+
+ /**
+ * Get the resourceId property: ResourceId in which this review is getting created.
+ *
+ * @return the resourceId value.
+ */
+ public String resourceId() {
+ return this.resourceId;
+ }
+
+ /**
+ * Get the roleDefinitionId property: This is used to indicate the role being reviewed.
+ *
+ * @return the roleDefinitionId value.
+ */
+ public String roleDefinitionId() {
+ return this.roleDefinitionId;
+ }
+
+ /**
+ * Get the principalType property: The identity type user/servicePrincipal to review.
+ *
+ * @return the principalType value.
+ */
+ public AccessReviewScopePrincipalType principalType() {
+ return this.principalType;
+ }
+
+ /**
+ * Get the assignmentState property: The role assignment state eligible/active to review.
+ *
+ * @return the assignmentState value.
+ */
+ public AccessReviewScopeAssignmentState assignmentState() {
+ return this.assignmentState;
+ }
+
+ /**
+ * Get the inactiveDuration property: Duration users are inactive for. The value should be in ISO 8601 format
+ * (http://en.wikipedia.org/wiki/ISO_8601#Durations).This code can be used to convert TimeSpan to a valid interval
+ * string: XmlConvert.ToString(new TimeSpan(hours, minutes, seconds)).
+ *
+ * @return the inactiveDuration value.
+ */
+ public Duration inactiveDuration() {
+ return this.inactiveDuration;
+ }
+
+ /**
+ * Set the inactiveDuration property: Duration users are inactive for. The value should be in ISO 8601 format
+ * (http://en.wikipedia.org/wiki/ISO_8601#Durations).This code can be used to convert TimeSpan to a valid interval
+ * string: XmlConvert.ToString(new TimeSpan(hours, minutes, seconds)).
+ *
+ * @param inactiveDuration the inactiveDuration value to set.
+ * @return the AccessReviewScope object itself.
+ */
+ public AccessReviewScope withInactiveDuration(Duration inactiveDuration) {
+ this.inactiveDuration = inactiveDuration;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/DenyAssignmentInner.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/DenyAssignmentInner.java
new file mode 100644
index 0000000000000..33ffc13d60061
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/DenyAssignmentInner.java
@@ -0,0 +1,274 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.authorization.generated.models.DenyAssignmentPermission;
+import com.azure.resourcemanager.authorization.generated.models.Principal;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Deny Assignment. */
+@Fluent
+public final class DenyAssignmentInner {
+ /*
+ * The deny assignment ID.
+ */
+ @JsonProperty(value = "id", access = JsonProperty.Access.WRITE_ONLY)
+ private String id;
+
+ /*
+ * The deny assignment name.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /*
+ * The deny assignment type.
+ */
+ @JsonProperty(value = "type", access = JsonProperty.Access.WRITE_ONLY)
+ private String type;
+
+ /*
+ * Deny assignment properties.
+ */
+ @JsonProperty(value = "properties")
+ private DenyAssignmentProperties innerProperties;
+
+ /**
+ * Get the id property: The deny assignment ID.
+ *
+ * @return the id value.
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get the name property: The deny assignment name.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the type property: The deny assignment type.
+ *
+ * @return the type value.
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the innerProperties property: Deny assignment properties.
+ *
+ * @return the innerProperties value.
+ */
+ private DenyAssignmentProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the denyAssignmentName property: The display name of the deny assignment.
+ *
+ * @return the denyAssignmentName value.
+ */
+ public String denyAssignmentName() {
+ return this.innerProperties() == null ? null : this.innerProperties().denyAssignmentName();
+ }
+
+ /**
+ * Set the denyAssignmentName property: The display name of the deny assignment.
+ *
+ * @param denyAssignmentName the denyAssignmentName value to set.
+ * @return the DenyAssignmentInner object itself.
+ */
+ public DenyAssignmentInner withDenyAssignmentName(String denyAssignmentName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new DenyAssignmentProperties();
+ }
+ this.innerProperties().withDenyAssignmentName(denyAssignmentName);
+ return this;
+ }
+
+ /**
+ * Get the description property: The description of the deny assignment.
+ *
+ * @return the description value.
+ */
+ public String description() {
+ return this.innerProperties() == null ? null : this.innerProperties().description();
+ }
+
+ /**
+ * Set the description property: The description of the deny assignment.
+ *
+ * @param description the description value to set.
+ * @return the DenyAssignmentInner object itself.
+ */
+ public DenyAssignmentInner withDescription(String description) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new DenyAssignmentProperties();
+ }
+ this.innerProperties().withDescription(description);
+ return this;
+ }
+
+ /**
+ * Get the permissions property: An array of permissions that are denied by the deny assignment.
+ *
+ * @return the permissions value.
+ */
+ public List permissions() {
+ return this.innerProperties() == null ? null : this.innerProperties().permissions();
+ }
+
+ /**
+ * Set the permissions property: An array of permissions that are denied by the deny assignment.
+ *
+ * @param permissions the permissions value to set.
+ * @return the DenyAssignmentInner object itself.
+ */
+ public DenyAssignmentInner withPermissions(List permissions) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new DenyAssignmentProperties();
+ }
+ this.innerProperties().withPermissions(permissions);
+ return this;
+ }
+
+ /**
+ * Get the scope property: The deny assignment scope.
+ *
+ * @return the scope value.
+ */
+ public String scope() {
+ return this.innerProperties() == null ? null : this.innerProperties().scope();
+ }
+
+ /**
+ * Set the scope property: The deny assignment scope.
+ *
+ * @param scope the scope value to set.
+ * @return the DenyAssignmentInner object itself.
+ */
+ public DenyAssignmentInner withScope(String scope) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new DenyAssignmentProperties();
+ }
+ this.innerProperties().withScope(scope);
+ return this;
+ }
+
+ /**
+ * Get the doNotApplyToChildScopes property: Determines if the deny assignment applies to child scopes. Default
+ * value is false.
+ *
+ * @return the doNotApplyToChildScopes value.
+ */
+ public Boolean doNotApplyToChildScopes() {
+ return this.innerProperties() == null ? null : this.innerProperties().doNotApplyToChildScopes();
+ }
+
+ /**
+ * Set the doNotApplyToChildScopes property: Determines if the deny assignment applies to child scopes. Default
+ * value is false.
+ *
+ * @param doNotApplyToChildScopes the doNotApplyToChildScopes value to set.
+ * @return the DenyAssignmentInner object itself.
+ */
+ public DenyAssignmentInner withDoNotApplyToChildScopes(Boolean doNotApplyToChildScopes) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new DenyAssignmentProperties();
+ }
+ this.innerProperties().withDoNotApplyToChildScopes(doNotApplyToChildScopes);
+ return this;
+ }
+
+ /**
+ * Get the principals property: Array of principals to which the deny assignment applies.
+ *
+ * @return the principals value.
+ */
+ public List principals() {
+ return this.innerProperties() == null ? null : this.innerProperties().principals();
+ }
+
+ /**
+ * Set the principals property: Array of principals to which the deny assignment applies.
+ *
+ * @param principals the principals value to set.
+ * @return the DenyAssignmentInner object itself.
+ */
+ public DenyAssignmentInner withPrincipals(List principals) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new DenyAssignmentProperties();
+ }
+ this.innerProperties().withPrincipals(principals);
+ return this;
+ }
+
+ /**
+ * Get the excludePrincipals property: Array of principals to which the deny assignment does not apply.
+ *
+ * @return the excludePrincipals value.
+ */
+ public List excludePrincipals() {
+ return this.innerProperties() == null ? null : this.innerProperties().excludePrincipals();
+ }
+
+ /**
+ * Set the excludePrincipals property: Array of principals to which the deny assignment does not apply.
+ *
+ * @param excludePrincipals the excludePrincipals value to set.
+ * @return the DenyAssignmentInner object itself.
+ */
+ public DenyAssignmentInner withExcludePrincipals(List excludePrincipals) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new DenyAssignmentProperties();
+ }
+ this.innerProperties().withExcludePrincipals(excludePrincipals);
+ return this;
+ }
+
+ /**
+ * Get the isSystemProtected property: Specifies whether this deny assignment was created by Azure and cannot be
+ * edited or deleted.
+ *
+ * @return the isSystemProtected value.
+ */
+ public Boolean isSystemProtected() {
+ return this.innerProperties() == null ? null : this.innerProperties().isSystemProtected();
+ }
+
+ /**
+ * Set the isSystemProtected property: Specifies whether this deny assignment was created by Azure and cannot be
+ * edited or deleted.
+ *
+ * @param isSystemProtected the isSystemProtected value to set.
+ * @return the DenyAssignmentInner object itself.
+ */
+ public DenyAssignmentInner withIsSystemProtected(Boolean isSystemProtected) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new DenyAssignmentProperties();
+ }
+ this.innerProperties().withIsSystemProtected(isSystemProtected);
+ 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/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/DenyAssignmentProperties.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/DenyAssignmentProperties.java
new file mode 100644
index 0000000000000..5e727ac67f3c2
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/DenyAssignmentProperties.java
@@ -0,0 +1,246 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.authorization.generated.models.DenyAssignmentPermission;
+import com.azure.resourcemanager.authorization.generated.models.Principal;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Deny assignment properties. */
+@Fluent
+public final class DenyAssignmentProperties {
+ /*
+ * The display name of the deny assignment.
+ */
+ @JsonProperty(value = "denyAssignmentName")
+ private String denyAssignmentName;
+
+ /*
+ * The description of the deny assignment.
+ */
+ @JsonProperty(value = "description")
+ private String description;
+
+ /*
+ * An array of permissions that are denied by the deny assignment.
+ */
+ @JsonProperty(value = "permissions")
+ private List permissions;
+
+ /*
+ * The deny assignment scope.
+ */
+ @JsonProperty(value = "scope")
+ private String scope;
+
+ /*
+ * Determines if the deny assignment applies to child scopes. Default value
+ * is false.
+ */
+ @JsonProperty(value = "doNotApplyToChildScopes")
+ private Boolean doNotApplyToChildScopes;
+
+ /*
+ * Array of principals to which the deny assignment applies.
+ */
+ @JsonProperty(value = "principals")
+ private List principals;
+
+ /*
+ * Array of principals to which the deny assignment does not apply.
+ */
+ @JsonProperty(value = "excludePrincipals")
+ private List excludePrincipals;
+
+ /*
+ * Specifies whether this deny assignment was created by Azure and cannot
+ * be edited or deleted.
+ */
+ @JsonProperty(value = "isSystemProtected")
+ private Boolean isSystemProtected;
+
+ /**
+ * Get the denyAssignmentName property: The display name of the deny assignment.
+ *
+ * @return the denyAssignmentName value.
+ */
+ public String denyAssignmentName() {
+ return this.denyAssignmentName;
+ }
+
+ /**
+ * Set the denyAssignmentName property: The display name of the deny assignment.
+ *
+ * @param denyAssignmentName the denyAssignmentName value to set.
+ * @return the DenyAssignmentProperties object itself.
+ */
+ public DenyAssignmentProperties withDenyAssignmentName(String denyAssignmentName) {
+ this.denyAssignmentName = denyAssignmentName;
+ return this;
+ }
+
+ /**
+ * Get the description property: The description of the deny assignment.
+ *
+ * @return the description value.
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set the description property: The description of the deny assignment.
+ *
+ * @param description the description value to set.
+ * @return the DenyAssignmentProperties object itself.
+ */
+ public DenyAssignmentProperties withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+ /**
+ * Get the permissions property: An array of permissions that are denied by the deny assignment.
+ *
+ * @return the permissions value.
+ */
+ public List permissions() {
+ return this.permissions;
+ }
+
+ /**
+ * Set the permissions property: An array of permissions that are denied by the deny assignment.
+ *
+ * @param permissions the permissions value to set.
+ * @return the DenyAssignmentProperties object itself.
+ */
+ public DenyAssignmentProperties withPermissions(List permissions) {
+ this.permissions = permissions;
+ return this;
+ }
+
+ /**
+ * Get the scope property: The deny assignment scope.
+ *
+ * @return the scope value.
+ */
+ public String scope() {
+ return this.scope;
+ }
+
+ /**
+ * Set the scope property: The deny assignment scope.
+ *
+ * @param scope the scope value to set.
+ * @return the DenyAssignmentProperties object itself.
+ */
+ public DenyAssignmentProperties withScope(String scope) {
+ this.scope = scope;
+ return this;
+ }
+
+ /**
+ * Get the doNotApplyToChildScopes property: Determines if the deny assignment applies to child scopes. Default
+ * value is false.
+ *
+ * @return the doNotApplyToChildScopes value.
+ */
+ public Boolean doNotApplyToChildScopes() {
+ return this.doNotApplyToChildScopes;
+ }
+
+ /**
+ * Set the doNotApplyToChildScopes property: Determines if the deny assignment applies to child scopes. Default
+ * value is false.
+ *
+ * @param doNotApplyToChildScopes the doNotApplyToChildScopes value to set.
+ * @return the DenyAssignmentProperties object itself.
+ */
+ public DenyAssignmentProperties withDoNotApplyToChildScopes(Boolean doNotApplyToChildScopes) {
+ this.doNotApplyToChildScopes = doNotApplyToChildScopes;
+ return this;
+ }
+
+ /**
+ * Get the principals property: Array of principals to which the deny assignment applies.
+ *
+ * @return the principals value.
+ */
+ public List principals() {
+ return this.principals;
+ }
+
+ /**
+ * Set the principals property: Array of principals to which the deny assignment applies.
+ *
+ * @param principals the principals value to set.
+ * @return the DenyAssignmentProperties object itself.
+ */
+ public DenyAssignmentProperties withPrincipals(List principals) {
+ this.principals = principals;
+ return this;
+ }
+
+ /**
+ * Get the excludePrincipals property: Array of principals to which the deny assignment does not apply.
+ *
+ * @return the excludePrincipals value.
+ */
+ public List excludePrincipals() {
+ return this.excludePrincipals;
+ }
+
+ /**
+ * Set the excludePrincipals property: Array of principals to which the deny assignment does not apply.
+ *
+ * @param excludePrincipals the excludePrincipals value to set.
+ * @return the DenyAssignmentProperties object itself.
+ */
+ public DenyAssignmentProperties withExcludePrincipals(List excludePrincipals) {
+ this.excludePrincipals = excludePrincipals;
+ return this;
+ }
+
+ /**
+ * Get the isSystemProtected property: Specifies whether this deny assignment was created by Azure and cannot be
+ * edited or deleted.
+ *
+ * @return the isSystemProtected value.
+ */
+ public Boolean isSystemProtected() {
+ return this.isSystemProtected;
+ }
+
+ /**
+ * Set the isSystemProtected property: Specifies whether this deny assignment was created by Azure and cannot be
+ * edited or deleted.
+ *
+ * @param isSystemProtected the isSystemProtected value to set.
+ * @return the DenyAssignmentProperties object itself.
+ */
+ public DenyAssignmentProperties withIsSystemProtected(Boolean isSystemProtected) {
+ this.isSystemProtected = isSystemProtected;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (permissions() != null) {
+ permissions().forEach(e -> e.validate());
+ }
+ if (principals() != null) {
+ principals().forEach(e -> e.validate());
+ }
+ if (excludePrincipals() != null) {
+ excludePrincipals().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/EligibleChildResourceInner.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/EligibleChildResourceInner.java
new file mode 100644
index 0000000000000..4da577554b684
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/EligibleChildResourceInner.java
@@ -0,0 +1,65 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Eligible child resource. */
+@Immutable
+public final class EligibleChildResourceInner {
+ /*
+ * The resource scope Id.
+ */
+ @JsonProperty(value = "id", access = JsonProperty.Access.WRITE_ONLY)
+ private String id;
+
+ /*
+ * The resource name.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /*
+ * The resource type.
+ */
+ @JsonProperty(value = "type", access = JsonProperty.Access.WRITE_ONLY)
+ private String type;
+
+ /**
+ * Get the id property: The resource scope Id.
+ *
+ * @return the id value.
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get the name property: The resource name.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the type property: The resource type.
+ *
+ * @return the type value.
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/OperationInner.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/OperationInner.java
new file mode 100644
index 0000000000000..22b440910482b
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/OperationInner.java
@@ -0,0 +1,128 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.authorization.generated.models.OperationDisplay;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The definition of a Microsoft.Authorization operation. */
+@Fluent
+public final class OperationInner {
+ /*
+ * Name of the operation
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /*
+ * Indicates whether the operation is a data action
+ */
+ @JsonProperty(value = "isDataAction")
+ private Boolean isDataAction;
+
+ /*
+ * Display of the operation
+ */
+ @JsonProperty(value = "display")
+ private OperationDisplay display;
+
+ /*
+ * Origin of the operation
+ */
+ @JsonProperty(value = "origin")
+ private String origin;
+
+ /**
+ * Get the name property: Name of the operation.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name property: Name of the 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 isDataAction property: Indicates whether the operation is a data action.
+ *
+ * @return the isDataAction value.
+ */
+ public Boolean isDataAction() {
+ return this.isDataAction;
+ }
+
+ /**
+ * Set the isDataAction property: Indicates whether the operation is a data action.
+ *
+ * @param isDataAction the isDataAction value to set.
+ * @return the OperationInner object itself.
+ */
+ public OperationInner withIsDataAction(Boolean isDataAction) {
+ this.isDataAction = isDataAction;
+ return this;
+ }
+
+ /**
+ * Get the display property: Display of the operation.
+ *
+ * @return the display value.
+ */
+ public OperationDisplay display() {
+ return this.display;
+ }
+
+ /**
+ * Set the display property: Display of 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: Origin of the operation.
+ *
+ * @return the origin value.
+ */
+ public String origin() {
+ return this.origin;
+ }
+
+ /**
+ * Set the origin property: Origin of the operation.
+ *
+ * @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/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/PermissionInner.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/PermissionInner.java
new file mode 100644
index 0000000000000..e1b8186e01290
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/PermissionInner.java
@@ -0,0 +1,125 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Role definition permissions. */
+@Fluent
+public final class PermissionInner {
+ /*
+ * Allowed actions.
+ */
+ @JsonProperty(value = "actions")
+ private List actions;
+
+ /*
+ * Denied actions.
+ */
+ @JsonProperty(value = "notActions")
+ private List notActions;
+
+ /*
+ * Allowed Data actions.
+ */
+ @JsonProperty(value = "dataActions")
+ private List dataActions;
+
+ /*
+ * Denied Data actions.
+ */
+ @JsonProperty(value = "notDataActions")
+ private List notDataActions;
+
+ /**
+ * Get the actions property: Allowed actions.
+ *
+ * @return the actions value.
+ */
+ public List actions() {
+ return this.actions;
+ }
+
+ /**
+ * Set the actions property: Allowed actions.
+ *
+ * @param actions the actions value to set.
+ * @return the PermissionInner object itself.
+ */
+ public PermissionInner withActions(List actions) {
+ this.actions = actions;
+ return this;
+ }
+
+ /**
+ * Get the notActions property: Denied actions.
+ *
+ * @return the notActions value.
+ */
+ public List notActions() {
+ return this.notActions;
+ }
+
+ /**
+ * Set the notActions property: Denied actions.
+ *
+ * @param notActions the notActions value to set.
+ * @return the PermissionInner object itself.
+ */
+ public PermissionInner withNotActions(List notActions) {
+ this.notActions = notActions;
+ return this;
+ }
+
+ /**
+ * Get the dataActions property: Allowed Data actions.
+ *
+ * @return the dataActions value.
+ */
+ public List dataActions() {
+ return this.dataActions;
+ }
+
+ /**
+ * Set the dataActions property: Allowed Data actions.
+ *
+ * @param dataActions the dataActions value to set.
+ * @return the PermissionInner object itself.
+ */
+ public PermissionInner withDataActions(List dataActions) {
+ this.dataActions = dataActions;
+ return this;
+ }
+
+ /**
+ * Get the notDataActions property: Denied Data actions.
+ *
+ * @return the notDataActions value.
+ */
+ public List notDataActions() {
+ return this.notDataActions;
+ }
+
+ /**
+ * Set the notDataActions property: Denied Data actions.
+ *
+ * @param notDataActions the notDataActions value to set.
+ * @return the PermissionInner object itself.
+ */
+ public PermissionInner withNotDataActions(List notDataActions) {
+ this.notDataActions = notDataActions;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/ProviderOperationsMetadataInner.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/ProviderOperationsMetadataInner.java
new file mode 100644
index 0000000000000..ee8f2d9035680
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/ProviderOperationsMetadataInner.java
@@ -0,0 +1,185 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.authorization.generated.models.ProviderOperation;
+import com.azure.resourcemanager.authorization.generated.models.ResourceType;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Provider Operations metadata. */
+@Fluent
+public final class ProviderOperationsMetadataInner {
+ /*
+ * The provider id.
+ */
+ @JsonProperty(value = "id")
+ private String id;
+
+ /*
+ * The provider name.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /*
+ * The provider type.
+ */
+ @JsonProperty(value = "type")
+ private String type;
+
+ /*
+ * The provider display name.
+ */
+ @JsonProperty(value = "displayName")
+ private String displayName;
+
+ /*
+ * The provider resource types
+ */
+ @JsonProperty(value = "resourceTypes")
+ private List resourceTypes;
+
+ /*
+ * The provider operations.
+ */
+ @JsonProperty(value = "operations")
+ private List operations;
+
+ /**
+ * Get the id property: The provider id.
+ *
+ * @return the id value.
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set the id property: The provider id.
+ *
+ * @param id the id value to set.
+ * @return the ProviderOperationsMetadataInner object itself.
+ */
+ public ProviderOperationsMetadataInner withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Get the name property: The provider name.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name property: The provider name.
+ *
+ * @param name the name value to set.
+ * @return the ProviderOperationsMetadataInner object itself.
+ */
+ public ProviderOperationsMetadataInner withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the type property: The provider type.
+ *
+ * @return the type value.
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Set the type property: The provider type.
+ *
+ * @param type the type value to set.
+ * @return the ProviderOperationsMetadataInner object itself.
+ */
+ public ProviderOperationsMetadataInner withType(String type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get the displayName property: The provider display name.
+ *
+ * @return the displayName value.
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Set the displayName property: The provider display name.
+ *
+ * @param displayName the displayName value to set.
+ * @return the ProviderOperationsMetadataInner object itself.
+ */
+ public ProviderOperationsMetadataInner withDisplayName(String displayName) {
+ this.displayName = displayName;
+ return this;
+ }
+
+ /**
+ * Get the resourceTypes property: The provider resource types.
+ *
+ * @return the resourceTypes value.
+ */
+ public List resourceTypes() {
+ return this.resourceTypes;
+ }
+
+ /**
+ * Set the resourceTypes property: The provider resource types.
+ *
+ * @param resourceTypes the resourceTypes value to set.
+ * @return the ProviderOperationsMetadataInner object itself.
+ */
+ public ProviderOperationsMetadataInner withResourceTypes(List resourceTypes) {
+ this.resourceTypes = resourceTypes;
+ return this;
+ }
+
+ /**
+ * Get the operations property: The provider operations.
+ *
+ * @return the operations value.
+ */
+ public List operations() {
+ return this.operations;
+ }
+
+ /**
+ * Set the operations property: The provider operations.
+ *
+ * @param operations the operations value to set.
+ * @return the ProviderOperationsMetadataInner object itself.
+ */
+ public ProviderOperationsMetadataInner withOperations(List operations) {
+ this.operations = operations;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (resourceTypes() != null) {
+ resourceTypes().forEach(e -> e.validate());
+ }
+ if (operations() != null) {
+ operations().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleAssignmentInner.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleAssignmentInner.java
new file mode 100644
index 0000000000000..d98650d631b98
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleAssignmentInner.java
@@ -0,0 +1,251 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.resourcemanager.authorization.generated.models.PrincipalType;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** Role Assignments. */
+@Fluent
+public final class RoleAssignmentInner extends ProxyResource {
+ /*
+ * Role assignment properties.
+ */
+ @JsonProperty(value = "properties")
+ private RoleAssignmentProperties innerProperties;
+
+ /**
+ * Get the innerProperties property: Role assignment properties.
+ *
+ * @return the innerProperties value.
+ */
+ private RoleAssignmentProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the scope property: The role assignment scope.
+ *
+ * @return the scope value.
+ */
+ public String scope() {
+ return this.innerProperties() == null ? null : this.innerProperties().scope();
+ }
+
+ /**
+ * Get the roleDefinitionId property: The role definition ID.
+ *
+ * @return the roleDefinitionId value.
+ */
+ public String roleDefinitionId() {
+ return this.innerProperties() == null ? null : this.innerProperties().roleDefinitionId();
+ }
+
+ /**
+ * Set the roleDefinitionId property: The role definition ID.
+ *
+ * @param roleDefinitionId the roleDefinitionId value to set.
+ * @return the RoleAssignmentInner object itself.
+ */
+ public RoleAssignmentInner withRoleDefinitionId(String roleDefinitionId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentProperties();
+ }
+ this.innerProperties().withRoleDefinitionId(roleDefinitionId);
+ return this;
+ }
+
+ /**
+ * Get the principalId property: The principal ID.
+ *
+ * @return the principalId value.
+ */
+ public String principalId() {
+ return this.innerProperties() == null ? null : this.innerProperties().principalId();
+ }
+
+ /**
+ * Set the principalId property: The principal ID.
+ *
+ * @param principalId the principalId value to set.
+ * @return the RoleAssignmentInner object itself.
+ */
+ public RoleAssignmentInner withPrincipalId(String principalId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentProperties();
+ }
+ this.innerProperties().withPrincipalId(principalId);
+ return this;
+ }
+
+ /**
+ * Get the principalType property: The principal type of the assigned principal ID.
+ *
+ * @return the principalType value.
+ */
+ public PrincipalType principalType() {
+ return this.innerProperties() == null ? null : this.innerProperties().principalType();
+ }
+
+ /**
+ * Set the principalType property: The principal type of the assigned principal ID.
+ *
+ * @param principalType the principalType value to set.
+ * @return the RoleAssignmentInner object itself.
+ */
+ public RoleAssignmentInner withPrincipalType(PrincipalType principalType) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentProperties();
+ }
+ this.innerProperties().withPrincipalType(principalType);
+ return this;
+ }
+
+ /**
+ * Get the description property: Description of role assignment.
+ *
+ * @return the description value.
+ */
+ public String description() {
+ return this.innerProperties() == null ? null : this.innerProperties().description();
+ }
+
+ /**
+ * Set the description property: Description of role assignment.
+ *
+ * @param description the description value to set.
+ * @return the RoleAssignmentInner object itself.
+ */
+ public RoleAssignmentInner withDescription(String description) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentProperties();
+ }
+ this.innerProperties().withDescription(description);
+ return this;
+ }
+
+ /**
+ * Get the condition property: The conditions on the role assignment. This limits the resources it can be assigned
+ * to. e.g.: @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName]
+ * StringEqualsIgnoreCase 'foo_storage_container'.
+ *
+ * @return the condition value.
+ */
+ public String condition() {
+ return this.innerProperties() == null ? null : this.innerProperties().condition();
+ }
+
+ /**
+ * Set the condition property: The conditions on the role assignment. This limits the resources it can be assigned
+ * to. e.g.: @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName]
+ * StringEqualsIgnoreCase 'foo_storage_container'.
+ *
+ * @param condition the condition value to set.
+ * @return the RoleAssignmentInner object itself.
+ */
+ public RoleAssignmentInner withCondition(String condition) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentProperties();
+ }
+ this.innerProperties().withCondition(condition);
+ return this;
+ }
+
+ /**
+ * Get the conditionVersion property: Version of the condition. Currently accepted value is '2.0'.
+ *
+ * @return the conditionVersion value.
+ */
+ public String conditionVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().conditionVersion();
+ }
+
+ /**
+ * Set the conditionVersion property: Version of the condition. Currently accepted value is '2.0'.
+ *
+ * @param conditionVersion the conditionVersion value to set.
+ * @return the RoleAssignmentInner object itself.
+ */
+ public RoleAssignmentInner withConditionVersion(String conditionVersion) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentProperties();
+ }
+ this.innerProperties().withConditionVersion(conditionVersion);
+ return this;
+ }
+
+ /**
+ * Get the createdOn property: Time it was created.
+ *
+ * @return the createdOn value.
+ */
+ public OffsetDateTime createdOn() {
+ return this.innerProperties() == null ? null : this.innerProperties().createdOn();
+ }
+
+ /**
+ * Get the updatedOn property: Time it was updated.
+ *
+ * @return the updatedOn value.
+ */
+ public OffsetDateTime updatedOn() {
+ return this.innerProperties() == null ? null : this.innerProperties().updatedOn();
+ }
+
+ /**
+ * Get the createdBy property: Id of the user who created the assignment.
+ *
+ * @return the createdBy value.
+ */
+ public String createdBy() {
+ return this.innerProperties() == null ? null : this.innerProperties().createdBy();
+ }
+
+ /**
+ * Get the updatedBy property: Id of the user who updated the assignment.
+ *
+ * @return the updatedBy value.
+ */
+ public String updatedBy() {
+ return this.innerProperties() == null ? null : this.innerProperties().updatedBy();
+ }
+
+ /**
+ * Get the delegatedManagedIdentityResourceId property: Id of the delegated managed identity resource.
+ *
+ * @return the delegatedManagedIdentityResourceId value.
+ */
+ public String delegatedManagedIdentityResourceId() {
+ return this.innerProperties() == null ? null : this.innerProperties().delegatedManagedIdentityResourceId();
+ }
+
+ /**
+ * Set the delegatedManagedIdentityResourceId property: Id of the delegated managed identity resource.
+ *
+ * @param delegatedManagedIdentityResourceId the delegatedManagedIdentityResourceId value to set.
+ * @return the RoleAssignmentInner object itself.
+ */
+ public RoleAssignmentInner withDelegatedManagedIdentityResourceId(String delegatedManagedIdentityResourceId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentProperties();
+ }
+ this.innerProperties().withDelegatedManagedIdentityResourceId(delegatedManagedIdentityResourceId);
+ 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/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleAssignmentMetricsResultInner.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleAssignmentMetricsResultInner.java
new file mode 100644
index 0000000000000..5ace840bccaf9
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleAssignmentMetricsResultInner.java
@@ -0,0 +1,80 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Role Assignment Metrics. */
+@Immutable
+public final class RoleAssignmentMetricsResultInner {
+ /*
+ * The subscription ID.
+ */
+ @JsonProperty(value = "subscriptionId", access = JsonProperty.Access.WRITE_ONLY)
+ private String subscriptionId;
+
+ /*
+ * The role assignment limit.
+ */
+ @JsonProperty(value = "roleAssignmentsLimit", access = JsonProperty.Access.WRITE_ONLY)
+ private Long roleAssignmentsLimit;
+
+ /*
+ * The number of current role assignments.
+ */
+ @JsonProperty(value = "roleAssignmentsCurrentCount", access = JsonProperty.Access.WRITE_ONLY)
+ private Long roleAssignmentsCurrentCount;
+
+ /*
+ * The number of remaining role assignments available.
+ */
+ @JsonProperty(value = "roleAssignmentsRemainingCount", access = JsonProperty.Access.WRITE_ONLY)
+ private Long roleAssignmentsRemainingCount;
+
+ /**
+ * Get the subscriptionId property: The subscription ID.
+ *
+ * @return the subscriptionId value.
+ */
+ public String subscriptionId() {
+ return this.subscriptionId;
+ }
+
+ /**
+ * Get the roleAssignmentsLimit property: The role assignment limit.
+ *
+ * @return the roleAssignmentsLimit value.
+ */
+ public Long roleAssignmentsLimit() {
+ return this.roleAssignmentsLimit;
+ }
+
+ /**
+ * Get the roleAssignmentsCurrentCount property: The number of current role assignments.
+ *
+ * @return the roleAssignmentsCurrentCount value.
+ */
+ public Long roleAssignmentsCurrentCount() {
+ return this.roleAssignmentsCurrentCount;
+ }
+
+ /**
+ * Get the roleAssignmentsRemainingCount property: The number of remaining role assignments available.
+ *
+ * @return the roleAssignmentsRemainingCount value.
+ */
+ public Long roleAssignmentsRemainingCount() {
+ return this.roleAssignmentsRemainingCount;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleAssignmentProperties.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleAssignmentProperties.java
new file mode 100644
index 0000000000000..b79bf2a395040
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleAssignmentProperties.java
@@ -0,0 +1,301 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.authorization.generated.models.PrincipalType;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** Role assignment properties. */
+@Fluent
+public final class RoleAssignmentProperties {
+ /*
+ * The role assignment scope.
+ */
+ @JsonProperty(value = "scope", access = JsonProperty.Access.WRITE_ONLY)
+ private String scope;
+
+ /*
+ * The role definition ID.
+ */
+ @JsonProperty(value = "roleDefinitionId", required = true)
+ private String roleDefinitionId;
+
+ /*
+ * The principal ID.
+ */
+ @JsonProperty(value = "principalId", required = true)
+ private String principalId;
+
+ /*
+ * The principal type of the assigned principal ID.
+ */
+ @JsonProperty(value = "principalType")
+ private PrincipalType principalType;
+
+ /*
+ * Description of role assignment
+ */
+ @JsonProperty(value = "description")
+ private String description;
+
+ /*
+ * The conditions on the role assignment. This limits the resources it can
+ * be assigned to. e.g.:
+ * @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName]
+ * StringEqualsIgnoreCase 'foo_storage_container'
+ */
+ @JsonProperty(value = "condition")
+ private String condition;
+
+ /*
+ * Version of the condition. Currently accepted value is '2.0'
+ */
+ @JsonProperty(value = "conditionVersion")
+ private String conditionVersion;
+
+ /*
+ * Time it was created
+ */
+ @JsonProperty(value = "createdOn", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime createdOn;
+
+ /*
+ * Time it was updated
+ */
+ @JsonProperty(value = "updatedOn", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime updatedOn;
+
+ /*
+ * Id of the user who created the assignment
+ */
+ @JsonProperty(value = "createdBy", access = JsonProperty.Access.WRITE_ONLY)
+ private String createdBy;
+
+ /*
+ * Id of the user who updated the assignment
+ */
+ @JsonProperty(value = "updatedBy", access = JsonProperty.Access.WRITE_ONLY)
+ private String updatedBy;
+
+ /*
+ * Id of the delegated managed identity resource
+ */
+ @JsonProperty(value = "delegatedManagedIdentityResourceId")
+ private String delegatedManagedIdentityResourceId;
+
+ /**
+ * Get the scope property: The role assignment scope.
+ *
+ * @return the scope value.
+ */
+ public String scope() {
+ return this.scope;
+ }
+
+ /**
+ * Get the roleDefinitionId property: The role definition ID.
+ *
+ * @return the roleDefinitionId value.
+ */
+ public String roleDefinitionId() {
+ return this.roleDefinitionId;
+ }
+
+ /**
+ * Set the roleDefinitionId property: The role definition ID.
+ *
+ * @param roleDefinitionId the roleDefinitionId value to set.
+ * @return the RoleAssignmentProperties object itself.
+ */
+ public RoleAssignmentProperties withRoleDefinitionId(String roleDefinitionId) {
+ this.roleDefinitionId = roleDefinitionId;
+ return this;
+ }
+
+ /**
+ * Get the principalId property: The principal ID.
+ *
+ * @return the principalId value.
+ */
+ public String principalId() {
+ return this.principalId;
+ }
+
+ /**
+ * Set the principalId property: The principal ID.
+ *
+ * @param principalId the principalId value to set.
+ * @return the RoleAssignmentProperties object itself.
+ */
+ public RoleAssignmentProperties withPrincipalId(String principalId) {
+ this.principalId = principalId;
+ return this;
+ }
+
+ /**
+ * Get the principalType property: The principal type of the assigned principal ID.
+ *
+ * @return the principalType value.
+ */
+ public PrincipalType principalType() {
+ return this.principalType;
+ }
+
+ /**
+ * Set the principalType property: The principal type of the assigned principal ID.
+ *
+ * @param principalType the principalType value to set.
+ * @return the RoleAssignmentProperties object itself.
+ */
+ public RoleAssignmentProperties withPrincipalType(PrincipalType principalType) {
+ this.principalType = principalType;
+ return this;
+ }
+
+ /**
+ * Get the description property: Description of role assignment.
+ *
+ * @return the description value.
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set the description property: Description of role assignment.
+ *
+ * @param description the description value to set.
+ * @return the RoleAssignmentProperties object itself.
+ */
+ public RoleAssignmentProperties withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+ /**
+ * Get the condition property: The conditions on the role assignment. This limits the resources it can be assigned
+ * to. e.g.: @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName]
+ * StringEqualsIgnoreCase 'foo_storage_container'.
+ *
+ * @return the condition value.
+ */
+ public String condition() {
+ return this.condition;
+ }
+
+ /**
+ * Set the condition property: The conditions on the role assignment. This limits the resources it can be assigned
+ * to. e.g.: @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName]
+ * StringEqualsIgnoreCase 'foo_storage_container'.
+ *
+ * @param condition the condition value to set.
+ * @return the RoleAssignmentProperties object itself.
+ */
+ public RoleAssignmentProperties withCondition(String condition) {
+ this.condition = condition;
+ return this;
+ }
+
+ /**
+ * Get the conditionVersion property: Version of the condition. Currently accepted value is '2.0'.
+ *
+ * @return the conditionVersion value.
+ */
+ public String conditionVersion() {
+ return this.conditionVersion;
+ }
+
+ /**
+ * Set the conditionVersion property: Version of the condition. Currently accepted value is '2.0'.
+ *
+ * @param conditionVersion the conditionVersion value to set.
+ * @return the RoleAssignmentProperties object itself.
+ */
+ public RoleAssignmentProperties withConditionVersion(String conditionVersion) {
+ this.conditionVersion = conditionVersion;
+ return this;
+ }
+
+ /**
+ * Get the createdOn property: Time it was created.
+ *
+ * @return the createdOn value.
+ */
+ public OffsetDateTime createdOn() {
+ return this.createdOn;
+ }
+
+ /**
+ * Get the updatedOn property: Time it was updated.
+ *
+ * @return the updatedOn value.
+ */
+ public OffsetDateTime updatedOn() {
+ return this.updatedOn;
+ }
+
+ /**
+ * Get the createdBy property: Id of the user who created the assignment.
+ *
+ * @return the createdBy value.
+ */
+ public String createdBy() {
+ return this.createdBy;
+ }
+
+ /**
+ * Get the updatedBy property: Id of the user who updated the assignment.
+ *
+ * @return the updatedBy value.
+ */
+ public String updatedBy() {
+ return this.updatedBy;
+ }
+
+ /**
+ * Get the delegatedManagedIdentityResourceId property: Id of the delegated managed identity resource.
+ *
+ * @return the delegatedManagedIdentityResourceId value.
+ */
+ public String delegatedManagedIdentityResourceId() {
+ return this.delegatedManagedIdentityResourceId;
+ }
+
+ /**
+ * Set the delegatedManagedIdentityResourceId property: Id of the delegated managed identity resource.
+ *
+ * @param delegatedManagedIdentityResourceId the delegatedManagedIdentityResourceId value to set.
+ * @return the RoleAssignmentProperties object itself.
+ */
+ public RoleAssignmentProperties withDelegatedManagedIdentityResourceId(String delegatedManagedIdentityResourceId) {
+ this.delegatedManagedIdentityResourceId = delegatedManagedIdentityResourceId;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (roleDefinitionId() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property roleDefinitionId in model RoleAssignmentProperties"));
+ }
+ if (principalId() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property principalId in model RoleAssignmentProperties"));
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(RoleAssignmentProperties.class);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleAssignmentScheduleInner.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleAssignmentScheduleInner.java
new file mode 100644
index 0000000000000..9d27785898564
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleAssignmentScheduleInner.java
@@ -0,0 +1,465 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.authorization.generated.models.AssignmentType;
+import com.azure.resourcemanager.authorization.generated.models.ExpandedProperties;
+import com.azure.resourcemanager.authorization.generated.models.MemberType;
+import com.azure.resourcemanager.authorization.generated.models.PrincipalType;
+import com.azure.resourcemanager.authorization.generated.models.Status;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** Role Assignment schedule. */
+@Fluent
+public final class RoleAssignmentScheduleInner {
+ /*
+ * The role assignment schedule Id.
+ */
+ @JsonProperty(value = "id", access = JsonProperty.Access.WRITE_ONLY)
+ private String id;
+
+ /*
+ * The role assignment schedule name.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /*
+ * The role assignment schedule type.
+ */
+ @JsonProperty(value = "type", access = JsonProperty.Access.WRITE_ONLY)
+ private String type;
+
+ /*
+ * Role assignment schedule properties.
+ */
+ @JsonProperty(value = "properties")
+ private RoleAssignmentScheduleProperties innerProperties;
+
+ /**
+ * Get the id property: The role assignment schedule Id.
+ *
+ * @return the id value.
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get the name property: The role assignment schedule name.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the type property: The role assignment schedule type.
+ *
+ * @return the type value.
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the innerProperties property: Role assignment schedule properties.
+ *
+ * @return the innerProperties value.
+ */
+ private RoleAssignmentScheduleProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the scope property: The role assignment schedule scope.
+ *
+ * @return the scope value.
+ */
+ public String scope() {
+ return this.innerProperties() == null ? null : this.innerProperties().scope();
+ }
+
+ /**
+ * Set the scope property: The role assignment schedule scope.
+ *
+ * @param scope the scope value to set.
+ * @return the RoleAssignmentScheduleInner object itself.
+ */
+ public RoleAssignmentScheduleInner withScope(String scope) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleProperties();
+ }
+ this.innerProperties().withScope(scope);
+ return this;
+ }
+
+ /**
+ * Get the roleDefinitionId property: The role definition ID.
+ *
+ * @return the roleDefinitionId value.
+ */
+ public String roleDefinitionId() {
+ return this.innerProperties() == null ? null : this.innerProperties().roleDefinitionId();
+ }
+
+ /**
+ * Set the roleDefinitionId property: The role definition ID.
+ *
+ * @param roleDefinitionId the roleDefinitionId value to set.
+ * @return the RoleAssignmentScheduleInner object itself.
+ */
+ public RoleAssignmentScheduleInner withRoleDefinitionId(String roleDefinitionId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleProperties();
+ }
+ this.innerProperties().withRoleDefinitionId(roleDefinitionId);
+ return this;
+ }
+
+ /**
+ * Get the principalId property: The principal ID.
+ *
+ * @return the principalId value.
+ */
+ public String principalId() {
+ return this.innerProperties() == null ? null : this.innerProperties().principalId();
+ }
+
+ /**
+ * Set the principalId property: The principal ID.
+ *
+ * @param principalId the principalId value to set.
+ * @return the RoleAssignmentScheduleInner object itself.
+ */
+ public RoleAssignmentScheduleInner withPrincipalId(String principalId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleProperties();
+ }
+ this.innerProperties().withPrincipalId(principalId);
+ return this;
+ }
+
+ /**
+ * Get the principalType property: The principal type of the assigned principal ID.
+ *
+ * @return the principalType value.
+ */
+ public PrincipalType principalType() {
+ return this.innerProperties() == null ? null : this.innerProperties().principalType();
+ }
+
+ /**
+ * Set the principalType property: The principal type of the assigned principal ID.
+ *
+ * @param principalType the principalType value to set.
+ * @return the RoleAssignmentScheduleInner object itself.
+ */
+ public RoleAssignmentScheduleInner withPrincipalType(PrincipalType principalType) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleProperties();
+ }
+ this.innerProperties().withPrincipalType(principalType);
+ return this;
+ }
+
+ /**
+ * Get the roleAssignmentScheduleRequestId property: The id of roleAssignmentScheduleRequest used to create this
+ * roleAssignmentSchedule.
+ *
+ * @return the roleAssignmentScheduleRequestId value.
+ */
+ public String roleAssignmentScheduleRequestId() {
+ return this.innerProperties() == null ? null : this.innerProperties().roleAssignmentScheduleRequestId();
+ }
+
+ /**
+ * Set the roleAssignmentScheduleRequestId property: The id of roleAssignmentScheduleRequest used to create this
+ * roleAssignmentSchedule.
+ *
+ * @param roleAssignmentScheduleRequestId the roleAssignmentScheduleRequestId value to set.
+ * @return the RoleAssignmentScheduleInner object itself.
+ */
+ public RoleAssignmentScheduleInner withRoleAssignmentScheduleRequestId(String roleAssignmentScheduleRequestId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleProperties();
+ }
+ this.innerProperties().withRoleAssignmentScheduleRequestId(roleAssignmentScheduleRequestId);
+ return this;
+ }
+
+ /**
+ * Get the linkedRoleEligibilityScheduleId property: The id of roleEligibilitySchedule used to activated this
+ * roleAssignmentSchedule.
+ *
+ * @return the linkedRoleEligibilityScheduleId value.
+ */
+ public String linkedRoleEligibilityScheduleId() {
+ return this.innerProperties() == null ? null : this.innerProperties().linkedRoleEligibilityScheduleId();
+ }
+
+ /**
+ * Set the linkedRoleEligibilityScheduleId property: The id of roleEligibilitySchedule used to activated this
+ * roleAssignmentSchedule.
+ *
+ * @param linkedRoleEligibilityScheduleId the linkedRoleEligibilityScheduleId value to set.
+ * @return the RoleAssignmentScheduleInner object itself.
+ */
+ public RoleAssignmentScheduleInner withLinkedRoleEligibilityScheduleId(String linkedRoleEligibilityScheduleId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleProperties();
+ }
+ this.innerProperties().withLinkedRoleEligibilityScheduleId(linkedRoleEligibilityScheduleId);
+ return this;
+ }
+
+ /**
+ * Get the assignmentType property: Assignment type of the role assignment schedule.
+ *
+ * @return the assignmentType value.
+ */
+ public AssignmentType assignmentType() {
+ return this.innerProperties() == null ? null : this.innerProperties().assignmentType();
+ }
+
+ /**
+ * Set the assignmentType property: Assignment type of the role assignment schedule.
+ *
+ * @param assignmentType the assignmentType value to set.
+ * @return the RoleAssignmentScheduleInner object itself.
+ */
+ public RoleAssignmentScheduleInner withAssignmentType(AssignmentType assignmentType) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleProperties();
+ }
+ this.innerProperties().withAssignmentType(assignmentType);
+ return this;
+ }
+
+ /**
+ * Get the memberType property: Membership type of the role assignment schedule.
+ *
+ * @return the memberType value.
+ */
+ public MemberType memberType() {
+ return this.innerProperties() == null ? null : this.innerProperties().memberType();
+ }
+
+ /**
+ * Set the memberType property: Membership type of the role assignment schedule.
+ *
+ * @param memberType the memberType value to set.
+ * @return the RoleAssignmentScheduleInner object itself.
+ */
+ public RoleAssignmentScheduleInner withMemberType(MemberType memberType) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleProperties();
+ }
+ this.innerProperties().withMemberType(memberType);
+ return this;
+ }
+
+ /**
+ * Get the status property: The status of the role assignment schedule.
+ *
+ * @return the status value.
+ */
+ public Status status() {
+ return this.innerProperties() == null ? null : this.innerProperties().status();
+ }
+
+ /**
+ * Set the status property: The status of the role assignment schedule.
+ *
+ * @param status the status value to set.
+ * @return the RoleAssignmentScheduleInner object itself.
+ */
+ public RoleAssignmentScheduleInner withStatus(Status status) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleProperties();
+ }
+ this.innerProperties().withStatus(status);
+ return this;
+ }
+
+ /**
+ * Get the startDateTime property: Start DateTime when role assignment schedule.
+ *
+ * @return the startDateTime value.
+ */
+ public OffsetDateTime startDateTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().startDateTime();
+ }
+
+ /**
+ * Set the startDateTime property: Start DateTime when role assignment schedule.
+ *
+ * @param startDateTime the startDateTime value to set.
+ * @return the RoleAssignmentScheduleInner object itself.
+ */
+ public RoleAssignmentScheduleInner withStartDateTime(OffsetDateTime startDateTime) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleProperties();
+ }
+ this.innerProperties().withStartDateTime(startDateTime);
+ return this;
+ }
+
+ /**
+ * Get the endDateTime property: End DateTime when role assignment schedule.
+ *
+ * @return the endDateTime value.
+ */
+ public OffsetDateTime endDateTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().endDateTime();
+ }
+
+ /**
+ * Set the endDateTime property: End DateTime when role assignment schedule.
+ *
+ * @param endDateTime the endDateTime value to set.
+ * @return the RoleAssignmentScheduleInner object itself.
+ */
+ public RoleAssignmentScheduleInner withEndDateTime(OffsetDateTime endDateTime) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleProperties();
+ }
+ this.innerProperties().withEndDateTime(endDateTime);
+ return this;
+ }
+
+ /**
+ * Get the condition property: The conditions on the role assignment. This limits the resources it can be assigned
+ * to. e.g.: @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName]
+ * StringEqualsIgnoreCase 'foo_storage_container'.
+ *
+ * @return the condition value.
+ */
+ public String condition() {
+ return this.innerProperties() == null ? null : this.innerProperties().condition();
+ }
+
+ /**
+ * Set the condition property: The conditions on the role assignment. This limits the resources it can be assigned
+ * to. e.g.: @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName]
+ * StringEqualsIgnoreCase 'foo_storage_container'.
+ *
+ * @param condition the condition value to set.
+ * @return the RoleAssignmentScheduleInner object itself.
+ */
+ public RoleAssignmentScheduleInner withCondition(String condition) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleProperties();
+ }
+ this.innerProperties().withCondition(condition);
+ return this;
+ }
+
+ /**
+ * Get the conditionVersion property: Version of the condition. Currently accepted value is '2.0'.
+ *
+ * @return the conditionVersion value.
+ */
+ public String conditionVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().conditionVersion();
+ }
+
+ /**
+ * Set the conditionVersion property: Version of the condition. Currently accepted value is '2.0'.
+ *
+ * @param conditionVersion the conditionVersion value to set.
+ * @return the RoleAssignmentScheduleInner object itself.
+ */
+ public RoleAssignmentScheduleInner withConditionVersion(String conditionVersion) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleProperties();
+ }
+ this.innerProperties().withConditionVersion(conditionVersion);
+ return this;
+ }
+
+ /**
+ * Get the createdOn property: DateTime when role assignment schedule was created.
+ *
+ * @return the createdOn value.
+ */
+ public OffsetDateTime createdOn() {
+ return this.innerProperties() == null ? null : this.innerProperties().createdOn();
+ }
+
+ /**
+ * Set the createdOn property: DateTime when role assignment schedule was created.
+ *
+ * @param createdOn the createdOn value to set.
+ * @return the RoleAssignmentScheduleInner object itself.
+ */
+ public RoleAssignmentScheduleInner withCreatedOn(OffsetDateTime createdOn) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleProperties();
+ }
+ this.innerProperties().withCreatedOn(createdOn);
+ return this;
+ }
+
+ /**
+ * Get the updatedOn property: DateTime when role assignment schedule was modified.
+ *
+ * @return the updatedOn value.
+ */
+ public OffsetDateTime updatedOn() {
+ return this.innerProperties() == null ? null : this.innerProperties().updatedOn();
+ }
+
+ /**
+ * Set the updatedOn property: DateTime when role assignment schedule was modified.
+ *
+ * @param updatedOn the updatedOn value to set.
+ * @return the RoleAssignmentScheduleInner object itself.
+ */
+ public RoleAssignmentScheduleInner withUpdatedOn(OffsetDateTime updatedOn) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleProperties();
+ }
+ this.innerProperties().withUpdatedOn(updatedOn);
+ return this;
+ }
+
+ /**
+ * Get the expandedProperties property: Additional properties of principal, scope and role definition.
+ *
+ * @return the expandedProperties value.
+ */
+ public ExpandedProperties expandedProperties() {
+ return this.innerProperties() == null ? null : this.innerProperties().expandedProperties();
+ }
+
+ /**
+ * Set the expandedProperties property: Additional properties of principal, scope and role definition.
+ *
+ * @param expandedProperties the expandedProperties value to set.
+ * @return the RoleAssignmentScheduleInner object itself.
+ */
+ public RoleAssignmentScheduleInner withExpandedProperties(ExpandedProperties expandedProperties) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleProperties();
+ }
+ this.innerProperties().withExpandedProperties(expandedProperties);
+ 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/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleAssignmentScheduleInstanceInner.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleAssignmentScheduleInstanceInner.java
new file mode 100644
index 0000000000000..c153f33d26346
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleAssignmentScheduleInstanceInner.java
@@ -0,0 +1,488 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.authorization.generated.models.AssignmentType;
+import com.azure.resourcemanager.authorization.generated.models.ExpandedProperties;
+import com.azure.resourcemanager.authorization.generated.models.MemberType;
+import com.azure.resourcemanager.authorization.generated.models.PrincipalType;
+import com.azure.resourcemanager.authorization.generated.models.Status;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** Information about current or upcoming role assignment schedule instance. */
+@Fluent
+public final class RoleAssignmentScheduleInstanceInner {
+ /*
+ * The role assignment schedule instance ID.
+ */
+ @JsonProperty(value = "id", access = JsonProperty.Access.WRITE_ONLY)
+ private String id;
+
+ /*
+ * The role assignment schedule instance name.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /*
+ * The role assignment schedule instance type.
+ */
+ @JsonProperty(value = "type", access = JsonProperty.Access.WRITE_ONLY)
+ private String type;
+
+ /*
+ * Role assignment schedule instance properties.
+ */
+ @JsonProperty(value = "properties")
+ private RoleAssignmentScheduleInstanceProperties innerProperties;
+
+ /**
+ * Get the id property: The role assignment schedule instance ID.
+ *
+ * @return the id value.
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get the name property: The role assignment schedule instance name.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the type property: The role assignment schedule instance type.
+ *
+ * @return the type value.
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the innerProperties property: Role assignment schedule instance properties.
+ *
+ * @return the innerProperties value.
+ */
+ private RoleAssignmentScheduleInstanceProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the scope property: The role assignment schedule scope.
+ *
+ * @return the scope value.
+ */
+ public String scope() {
+ return this.innerProperties() == null ? null : this.innerProperties().scope();
+ }
+
+ /**
+ * Set the scope property: The role assignment schedule scope.
+ *
+ * @param scope the scope value to set.
+ * @return the RoleAssignmentScheduleInstanceInner object itself.
+ */
+ public RoleAssignmentScheduleInstanceInner withScope(String scope) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleInstanceProperties();
+ }
+ this.innerProperties().withScope(scope);
+ return this;
+ }
+
+ /**
+ * Get the roleDefinitionId property: The role definition ID.
+ *
+ * @return the roleDefinitionId value.
+ */
+ public String roleDefinitionId() {
+ return this.innerProperties() == null ? null : this.innerProperties().roleDefinitionId();
+ }
+
+ /**
+ * Set the roleDefinitionId property: The role definition ID.
+ *
+ * @param roleDefinitionId the roleDefinitionId value to set.
+ * @return the RoleAssignmentScheduleInstanceInner object itself.
+ */
+ public RoleAssignmentScheduleInstanceInner withRoleDefinitionId(String roleDefinitionId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleInstanceProperties();
+ }
+ this.innerProperties().withRoleDefinitionId(roleDefinitionId);
+ return this;
+ }
+
+ /**
+ * Get the principalId property: The principal ID.
+ *
+ * @return the principalId value.
+ */
+ public String principalId() {
+ return this.innerProperties() == null ? null : this.innerProperties().principalId();
+ }
+
+ /**
+ * Set the principalId property: The principal ID.
+ *
+ * @param principalId the principalId value to set.
+ * @return the RoleAssignmentScheduleInstanceInner object itself.
+ */
+ public RoleAssignmentScheduleInstanceInner withPrincipalId(String principalId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleInstanceProperties();
+ }
+ this.innerProperties().withPrincipalId(principalId);
+ return this;
+ }
+
+ /**
+ * Get the principalType property: The principal type of the assigned principal ID.
+ *
+ * @return the principalType value.
+ */
+ public PrincipalType principalType() {
+ return this.innerProperties() == null ? null : this.innerProperties().principalType();
+ }
+
+ /**
+ * Set the principalType property: The principal type of the assigned principal ID.
+ *
+ * @param principalType the principalType value to set.
+ * @return the RoleAssignmentScheduleInstanceInner object itself.
+ */
+ public RoleAssignmentScheduleInstanceInner withPrincipalType(PrincipalType principalType) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleInstanceProperties();
+ }
+ this.innerProperties().withPrincipalType(principalType);
+ return this;
+ }
+
+ /**
+ * Get the roleAssignmentScheduleId property: Id of the master role assignment schedule.
+ *
+ * @return the roleAssignmentScheduleId value.
+ */
+ public String roleAssignmentScheduleId() {
+ return this.innerProperties() == null ? null : this.innerProperties().roleAssignmentScheduleId();
+ }
+
+ /**
+ * Set the roleAssignmentScheduleId property: Id of the master role assignment schedule.
+ *
+ * @param roleAssignmentScheduleId the roleAssignmentScheduleId value to set.
+ * @return the RoleAssignmentScheduleInstanceInner object itself.
+ */
+ public RoleAssignmentScheduleInstanceInner withRoleAssignmentScheduleId(String roleAssignmentScheduleId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleInstanceProperties();
+ }
+ this.innerProperties().withRoleAssignmentScheduleId(roleAssignmentScheduleId);
+ return this;
+ }
+
+ /**
+ * Get the originRoleAssignmentId property: Role Assignment Id in external system.
+ *
+ * @return the originRoleAssignmentId value.
+ */
+ public String originRoleAssignmentId() {
+ return this.innerProperties() == null ? null : this.innerProperties().originRoleAssignmentId();
+ }
+
+ /**
+ * Set the originRoleAssignmentId property: Role Assignment Id in external system.
+ *
+ * @param originRoleAssignmentId the originRoleAssignmentId value to set.
+ * @return the RoleAssignmentScheduleInstanceInner object itself.
+ */
+ public RoleAssignmentScheduleInstanceInner withOriginRoleAssignmentId(String originRoleAssignmentId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleInstanceProperties();
+ }
+ this.innerProperties().withOriginRoleAssignmentId(originRoleAssignmentId);
+ return this;
+ }
+
+ /**
+ * Get the status property: The status of the role assignment schedule instance.
+ *
+ * @return the status value.
+ */
+ public Status status() {
+ return this.innerProperties() == null ? null : this.innerProperties().status();
+ }
+
+ /**
+ * Set the status property: The status of the role assignment schedule instance.
+ *
+ * @param status the status value to set.
+ * @return the RoleAssignmentScheduleInstanceInner object itself.
+ */
+ public RoleAssignmentScheduleInstanceInner withStatus(Status status) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleInstanceProperties();
+ }
+ this.innerProperties().withStatus(status);
+ return this;
+ }
+
+ /**
+ * Get the startDateTime property: The startDateTime of the role assignment schedule instance.
+ *
+ * @return the startDateTime value.
+ */
+ public OffsetDateTime startDateTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().startDateTime();
+ }
+
+ /**
+ * Set the startDateTime property: The startDateTime of the role assignment schedule instance.
+ *
+ * @param startDateTime the startDateTime value to set.
+ * @return the RoleAssignmentScheduleInstanceInner object itself.
+ */
+ public RoleAssignmentScheduleInstanceInner withStartDateTime(OffsetDateTime startDateTime) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleInstanceProperties();
+ }
+ this.innerProperties().withStartDateTime(startDateTime);
+ return this;
+ }
+
+ /**
+ * Get the endDateTime property: The endDateTime of the role assignment schedule instance.
+ *
+ * @return the endDateTime value.
+ */
+ public OffsetDateTime endDateTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().endDateTime();
+ }
+
+ /**
+ * Set the endDateTime property: The endDateTime of the role assignment schedule instance.
+ *
+ * @param endDateTime the endDateTime value to set.
+ * @return the RoleAssignmentScheduleInstanceInner object itself.
+ */
+ public RoleAssignmentScheduleInstanceInner withEndDateTime(OffsetDateTime endDateTime) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleInstanceProperties();
+ }
+ this.innerProperties().withEndDateTime(endDateTime);
+ return this;
+ }
+
+ /**
+ * Get the linkedRoleEligibilityScheduleId property: roleEligibilityScheduleId used to activate.
+ *
+ * @return the linkedRoleEligibilityScheduleId value.
+ */
+ public String linkedRoleEligibilityScheduleId() {
+ return this.innerProperties() == null ? null : this.innerProperties().linkedRoleEligibilityScheduleId();
+ }
+
+ /**
+ * Set the linkedRoleEligibilityScheduleId property: roleEligibilityScheduleId used to activate.
+ *
+ * @param linkedRoleEligibilityScheduleId the linkedRoleEligibilityScheduleId value to set.
+ * @return the RoleAssignmentScheduleInstanceInner object itself.
+ */
+ public RoleAssignmentScheduleInstanceInner withLinkedRoleEligibilityScheduleId(
+ String linkedRoleEligibilityScheduleId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleInstanceProperties();
+ }
+ this.innerProperties().withLinkedRoleEligibilityScheduleId(linkedRoleEligibilityScheduleId);
+ return this;
+ }
+
+ /**
+ * Get the linkedRoleEligibilityScheduleInstanceId property: roleEligibilityScheduleInstanceId linked to this
+ * roleAssignmentScheduleInstance.
+ *
+ * @return the linkedRoleEligibilityScheduleInstanceId value.
+ */
+ public String linkedRoleEligibilityScheduleInstanceId() {
+ return this.innerProperties() == null ? null : this.innerProperties().linkedRoleEligibilityScheduleInstanceId();
+ }
+
+ /**
+ * Set the linkedRoleEligibilityScheduleInstanceId property: roleEligibilityScheduleInstanceId linked to this
+ * roleAssignmentScheduleInstance.
+ *
+ * @param linkedRoleEligibilityScheduleInstanceId the linkedRoleEligibilityScheduleInstanceId value to set.
+ * @return the RoleAssignmentScheduleInstanceInner object itself.
+ */
+ public RoleAssignmentScheduleInstanceInner withLinkedRoleEligibilityScheduleInstanceId(
+ String linkedRoleEligibilityScheduleInstanceId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleInstanceProperties();
+ }
+ this.innerProperties().withLinkedRoleEligibilityScheduleInstanceId(linkedRoleEligibilityScheduleInstanceId);
+ return this;
+ }
+
+ /**
+ * Get the assignmentType property: Assignment type of the role assignment schedule.
+ *
+ * @return the assignmentType value.
+ */
+ public AssignmentType assignmentType() {
+ return this.innerProperties() == null ? null : this.innerProperties().assignmentType();
+ }
+
+ /**
+ * Set the assignmentType property: Assignment type of the role assignment schedule.
+ *
+ * @param assignmentType the assignmentType value to set.
+ * @return the RoleAssignmentScheduleInstanceInner object itself.
+ */
+ public RoleAssignmentScheduleInstanceInner withAssignmentType(AssignmentType assignmentType) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleInstanceProperties();
+ }
+ this.innerProperties().withAssignmentType(assignmentType);
+ return this;
+ }
+
+ /**
+ * Get the memberType property: Membership type of the role assignment schedule.
+ *
+ * @return the memberType value.
+ */
+ public MemberType memberType() {
+ return this.innerProperties() == null ? null : this.innerProperties().memberType();
+ }
+
+ /**
+ * Set the memberType property: Membership type of the role assignment schedule.
+ *
+ * @param memberType the memberType value to set.
+ * @return the RoleAssignmentScheduleInstanceInner object itself.
+ */
+ public RoleAssignmentScheduleInstanceInner withMemberType(MemberType memberType) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleInstanceProperties();
+ }
+ this.innerProperties().withMemberType(memberType);
+ return this;
+ }
+
+ /**
+ * Get the condition property: The conditions on the role assignment. This limits the resources it can be assigned
+ * to. e.g.: @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName]
+ * StringEqualsIgnoreCase 'foo_storage_container'.
+ *
+ * @return the condition value.
+ */
+ public String condition() {
+ return this.innerProperties() == null ? null : this.innerProperties().condition();
+ }
+
+ /**
+ * Set the condition property: The conditions on the role assignment. This limits the resources it can be assigned
+ * to. e.g.: @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName]
+ * StringEqualsIgnoreCase 'foo_storage_container'.
+ *
+ * @param condition the condition value to set.
+ * @return the RoleAssignmentScheduleInstanceInner object itself.
+ */
+ public RoleAssignmentScheduleInstanceInner withCondition(String condition) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleInstanceProperties();
+ }
+ this.innerProperties().withCondition(condition);
+ return this;
+ }
+
+ /**
+ * Get the conditionVersion property: Version of the condition. Currently accepted value is '2.0'.
+ *
+ * @return the conditionVersion value.
+ */
+ public String conditionVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().conditionVersion();
+ }
+
+ /**
+ * Set the conditionVersion property: Version of the condition. Currently accepted value is '2.0'.
+ *
+ * @param conditionVersion the conditionVersion value to set.
+ * @return the RoleAssignmentScheduleInstanceInner object itself.
+ */
+ public RoleAssignmentScheduleInstanceInner withConditionVersion(String conditionVersion) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleInstanceProperties();
+ }
+ this.innerProperties().withConditionVersion(conditionVersion);
+ return this;
+ }
+
+ /**
+ * Get the createdOn property: DateTime when role assignment schedule was created.
+ *
+ * @return the createdOn value.
+ */
+ public OffsetDateTime createdOn() {
+ return this.innerProperties() == null ? null : this.innerProperties().createdOn();
+ }
+
+ /**
+ * Set the createdOn property: DateTime when role assignment schedule was created.
+ *
+ * @param createdOn the createdOn value to set.
+ * @return the RoleAssignmentScheduleInstanceInner object itself.
+ */
+ public RoleAssignmentScheduleInstanceInner withCreatedOn(OffsetDateTime createdOn) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleInstanceProperties();
+ }
+ this.innerProperties().withCreatedOn(createdOn);
+ return this;
+ }
+
+ /**
+ * Get the expandedProperties property: Additional properties of principal, scope and role definition.
+ *
+ * @return the expandedProperties value.
+ */
+ public ExpandedProperties expandedProperties() {
+ return this.innerProperties() == null ? null : this.innerProperties().expandedProperties();
+ }
+
+ /**
+ * Set the expandedProperties property: Additional properties of principal, scope and role definition.
+ *
+ * @param expandedProperties the expandedProperties value to set.
+ * @return the RoleAssignmentScheduleInstanceInner object itself.
+ */
+ public RoleAssignmentScheduleInstanceInner withExpandedProperties(ExpandedProperties expandedProperties) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleInstanceProperties();
+ }
+ this.innerProperties().withExpandedProperties(expandedProperties);
+ 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/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleAssignmentScheduleInstanceProperties.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleAssignmentScheduleInstanceProperties.java
new file mode 100644
index 0000000000000..4236513fe2961
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleAssignmentScheduleInstanceProperties.java
@@ -0,0 +1,483 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.authorization.generated.models.AssignmentType;
+import com.azure.resourcemanager.authorization.generated.models.ExpandedProperties;
+import com.azure.resourcemanager.authorization.generated.models.MemberType;
+import com.azure.resourcemanager.authorization.generated.models.PrincipalType;
+import com.azure.resourcemanager.authorization.generated.models.Status;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** Role assignment schedule properties with scope. */
+@Fluent
+public final class RoleAssignmentScheduleInstanceProperties {
+ /*
+ * The role assignment schedule scope.
+ */
+ @JsonProperty(value = "scope")
+ private String scope;
+
+ /*
+ * The role definition ID.
+ */
+ @JsonProperty(value = "roleDefinitionId")
+ private String roleDefinitionId;
+
+ /*
+ * The principal ID.
+ */
+ @JsonProperty(value = "principalId")
+ private String principalId;
+
+ /*
+ * The principal type of the assigned principal ID.
+ */
+ @JsonProperty(value = "principalType")
+ private PrincipalType principalType;
+
+ /*
+ * Id of the master role assignment schedule
+ */
+ @JsonProperty(value = "roleAssignmentScheduleId")
+ private String roleAssignmentScheduleId;
+
+ /*
+ * Role Assignment Id in external system
+ */
+ @JsonProperty(value = "originRoleAssignmentId")
+ private String originRoleAssignmentId;
+
+ /*
+ * The status of the role assignment schedule instance.
+ */
+ @JsonProperty(value = "status")
+ private Status status;
+
+ /*
+ * The startDateTime of the role assignment schedule instance
+ */
+ @JsonProperty(value = "startDateTime")
+ private OffsetDateTime startDateTime;
+
+ /*
+ * The endDateTime of the role assignment schedule instance
+ */
+ @JsonProperty(value = "endDateTime")
+ private OffsetDateTime endDateTime;
+
+ /*
+ * roleEligibilityScheduleId used to activate
+ */
+ @JsonProperty(value = "linkedRoleEligibilityScheduleId")
+ private String linkedRoleEligibilityScheduleId;
+
+ /*
+ * roleEligibilityScheduleInstanceId linked to this
+ * roleAssignmentScheduleInstance
+ */
+ @JsonProperty(value = "linkedRoleEligibilityScheduleInstanceId")
+ private String linkedRoleEligibilityScheduleInstanceId;
+
+ /*
+ * Assignment type of the role assignment schedule
+ */
+ @JsonProperty(value = "assignmentType")
+ private AssignmentType assignmentType;
+
+ /*
+ * Membership type of the role assignment schedule
+ */
+ @JsonProperty(value = "memberType")
+ private MemberType memberType;
+
+ /*
+ * The conditions on the role assignment. This limits the resources it can
+ * be assigned to. e.g.:
+ * @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName]
+ * StringEqualsIgnoreCase 'foo_storage_container'
+ */
+ @JsonProperty(value = "condition")
+ private String condition;
+
+ /*
+ * Version of the condition. Currently accepted value is '2.0'
+ */
+ @JsonProperty(value = "conditionVersion")
+ private String conditionVersion;
+
+ /*
+ * DateTime when role assignment schedule was created
+ */
+ @JsonProperty(value = "createdOn")
+ private OffsetDateTime createdOn;
+
+ /*
+ * Additional properties of principal, scope and role definition
+ */
+ @JsonProperty(value = "expandedProperties")
+ private ExpandedProperties expandedProperties;
+
+ /**
+ * Get the scope property: The role assignment schedule scope.
+ *
+ * @return the scope value.
+ */
+ public String scope() {
+ return this.scope;
+ }
+
+ /**
+ * Set the scope property: The role assignment schedule scope.
+ *
+ * @param scope the scope value to set.
+ * @return the RoleAssignmentScheduleInstanceProperties object itself.
+ */
+ public RoleAssignmentScheduleInstanceProperties withScope(String scope) {
+ this.scope = scope;
+ return this;
+ }
+
+ /**
+ * Get the roleDefinitionId property: The role definition ID.
+ *
+ * @return the roleDefinitionId value.
+ */
+ public String roleDefinitionId() {
+ return this.roleDefinitionId;
+ }
+
+ /**
+ * Set the roleDefinitionId property: The role definition ID.
+ *
+ * @param roleDefinitionId the roleDefinitionId value to set.
+ * @return the RoleAssignmentScheduleInstanceProperties object itself.
+ */
+ public RoleAssignmentScheduleInstanceProperties withRoleDefinitionId(String roleDefinitionId) {
+ this.roleDefinitionId = roleDefinitionId;
+ return this;
+ }
+
+ /**
+ * Get the principalId property: The principal ID.
+ *
+ * @return the principalId value.
+ */
+ public String principalId() {
+ return this.principalId;
+ }
+
+ /**
+ * Set the principalId property: The principal ID.
+ *
+ * @param principalId the principalId value to set.
+ * @return the RoleAssignmentScheduleInstanceProperties object itself.
+ */
+ public RoleAssignmentScheduleInstanceProperties withPrincipalId(String principalId) {
+ this.principalId = principalId;
+ return this;
+ }
+
+ /**
+ * Get the principalType property: The principal type of the assigned principal ID.
+ *
+ * @return the principalType value.
+ */
+ public PrincipalType principalType() {
+ return this.principalType;
+ }
+
+ /**
+ * Set the principalType property: The principal type of the assigned principal ID.
+ *
+ * @param principalType the principalType value to set.
+ * @return the RoleAssignmentScheduleInstanceProperties object itself.
+ */
+ public RoleAssignmentScheduleInstanceProperties withPrincipalType(PrincipalType principalType) {
+ this.principalType = principalType;
+ return this;
+ }
+
+ /**
+ * Get the roleAssignmentScheduleId property: Id of the master role assignment schedule.
+ *
+ * @return the roleAssignmentScheduleId value.
+ */
+ public String roleAssignmentScheduleId() {
+ return this.roleAssignmentScheduleId;
+ }
+
+ /**
+ * Set the roleAssignmentScheduleId property: Id of the master role assignment schedule.
+ *
+ * @param roleAssignmentScheduleId the roleAssignmentScheduleId value to set.
+ * @return the RoleAssignmentScheduleInstanceProperties object itself.
+ */
+ public RoleAssignmentScheduleInstanceProperties withRoleAssignmentScheduleId(String roleAssignmentScheduleId) {
+ this.roleAssignmentScheduleId = roleAssignmentScheduleId;
+ return this;
+ }
+
+ /**
+ * Get the originRoleAssignmentId property: Role Assignment Id in external system.
+ *
+ * @return the originRoleAssignmentId value.
+ */
+ public String originRoleAssignmentId() {
+ return this.originRoleAssignmentId;
+ }
+
+ /**
+ * Set the originRoleAssignmentId property: Role Assignment Id in external system.
+ *
+ * @param originRoleAssignmentId the originRoleAssignmentId value to set.
+ * @return the RoleAssignmentScheduleInstanceProperties object itself.
+ */
+ public RoleAssignmentScheduleInstanceProperties withOriginRoleAssignmentId(String originRoleAssignmentId) {
+ this.originRoleAssignmentId = originRoleAssignmentId;
+ return this;
+ }
+
+ /**
+ * Get the status property: The status of the role assignment schedule instance.
+ *
+ * @return the status value.
+ */
+ public Status status() {
+ return this.status;
+ }
+
+ /**
+ * Set the status property: The status of the role assignment schedule instance.
+ *
+ * @param status the status value to set.
+ * @return the RoleAssignmentScheduleInstanceProperties object itself.
+ */
+ public RoleAssignmentScheduleInstanceProperties withStatus(Status status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get the startDateTime property: The startDateTime of the role assignment schedule instance.
+ *
+ * @return the startDateTime value.
+ */
+ public OffsetDateTime startDateTime() {
+ return this.startDateTime;
+ }
+
+ /**
+ * Set the startDateTime property: The startDateTime of the role assignment schedule instance.
+ *
+ * @param startDateTime the startDateTime value to set.
+ * @return the RoleAssignmentScheduleInstanceProperties object itself.
+ */
+ public RoleAssignmentScheduleInstanceProperties withStartDateTime(OffsetDateTime startDateTime) {
+ this.startDateTime = startDateTime;
+ return this;
+ }
+
+ /**
+ * Get the endDateTime property: The endDateTime of the role assignment schedule instance.
+ *
+ * @return the endDateTime value.
+ */
+ public OffsetDateTime endDateTime() {
+ return this.endDateTime;
+ }
+
+ /**
+ * Set the endDateTime property: The endDateTime of the role assignment schedule instance.
+ *
+ * @param endDateTime the endDateTime value to set.
+ * @return the RoleAssignmentScheduleInstanceProperties object itself.
+ */
+ public RoleAssignmentScheduleInstanceProperties withEndDateTime(OffsetDateTime endDateTime) {
+ this.endDateTime = endDateTime;
+ return this;
+ }
+
+ /**
+ * Get the linkedRoleEligibilityScheduleId property: roleEligibilityScheduleId used to activate.
+ *
+ * @return the linkedRoleEligibilityScheduleId value.
+ */
+ public String linkedRoleEligibilityScheduleId() {
+ return this.linkedRoleEligibilityScheduleId;
+ }
+
+ /**
+ * Set the linkedRoleEligibilityScheduleId property: roleEligibilityScheduleId used to activate.
+ *
+ * @param linkedRoleEligibilityScheduleId the linkedRoleEligibilityScheduleId value to set.
+ * @return the RoleAssignmentScheduleInstanceProperties object itself.
+ */
+ public RoleAssignmentScheduleInstanceProperties withLinkedRoleEligibilityScheduleId(
+ String linkedRoleEligibilityScheduleId) {
+ this.linkedRoleEligibilityScheduleId = linkedRoleEligibilityScheduleId;
+ return this;
+ }
+
+ /**
+ * Get the linkedRoleEligibilityScheduleInstanceId property: roleEligibilityScheduleInstanceId linked to this
+ * roleAssignmentScheduleInstance.
+ *
+ * @return the linkedRoleEligibilityScheduleInstanceId value.
+ */
+ public String linkedRoleEligibilityScheduleInstanceId() {
+ return this.linkedRoleEligibilityScheduleInstanceId;
+ }
+
+ /**
+ * Set the linkedRoleEligibilityScheduleInstanceId property: roleEligibilityScheduleInstanceId linked to this
+ * roleAssignmentScheduleInstance.
+ *
+ * @param linkedRoleEligibilityScheduleInstanceId the linkedRoleEligibilityScheduleInstanceId value to set.
+ * @return the RoleAssignmentScheduleInstanceProperties object itself.
+ */
+ public RoleAssignmentScheduleInstanceProperties withLinkedRoleEligibilityScheduleInstanceId(
+ String linkedRoleEligibilityScheduleInstanceId) {
+ this.linkedRoleEligibilityScheduleInstanceId = linkedRoleEligibilityScheduleInstanceId;
+ return this;
+ }
+
+ /**
+ * Get the assignmentType property: Assignment type of the role assignment schedule.
+ *
+ * @return the assignmentType value.
+ */
+ public AssignmentType assignmentType() {
+ return this.assignmentType;
+ }
+
+ /**
+ * Set the assignmentType property: Assignment type of the role assignment schedule.
+ *
+ * @param assignmentType the assignmentType value to set.
+ * @return the RoleAssignmentScheduleInstanceProperties object itself.
+ */
+ public RoleAssignmentScheduleInstanceProperties withAssignmentType(AssignmentType assignmentType) {
+ this.assignmentType = assignmentType;
+ return this;
+ }
+
+ /**
+ * Get the memberType property: Membership type of the role assignment schedule.
+ *
+ * @return the memberType value.
+ */
+ public MemberType memberType() {
+ return this.memberType;
+ }
+
+ /**
+ * Set the memberType property: Membership type of the role assignment schedule.
+ *
+ * @param memberType the memberType value to set.
+ * @return the RoleAssignmentScheduleInstanceProperties object itself.
+ */
+ public RoleAssignmentScheduleInstanceProperties withMemberType(MemberType memberType) {
+ this.memberType = memberType;
+ return this;
+ }
+
+ /**
+ * Get the condition property: The conditions on the role assignment. This limits the resources it can be assigned
+ * to. e.g.: @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName]
+ * StringEqualsIgnoreCase 'foo_storage_container'.
+ *
+ * @return the condition value.
+ */
+ public String condition() {
+ return this.condition;
+ }
+
+ /**
+ * Set the condition property: The conditions on the role assignment. This limits the resources it can be assigned
+ * to. e.g.: @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName]
+ * StringEqualsIgnoreCase 'foo_storage_container'.
+ *
+ * @param condition the condition value to set.
+ * @return the RoleAssignmentScheduleInstanceProperties object itself.
+ */
+ public RoleAssignmentScheduleInstanceProperties withCondition(String condition) {
+ this.condition = condition;
+ return this;
+ }
+
+ /**
+ * Get the conditionVersion property: Version of the condition. Currently accepted value is '2.0'.
+ *
+ * @return the conditionVersion value.
+ */
+ public String conditionVersion() {
+ return this.conditionVersion;
+ }
+
+ /**
+ * Set the conditionVersion property: Version of the condition. Currently accepted value is '2.0'.
+ *
+ * @param conditionVersion the conditionVersion value to set.
+ * @return the RoleAssignmentScheduleInstanceProperties object itself.
+ */
+ public RoleAssignmentScheduleInstanceProperties withConditionVersion(String conditionVersion) {
+ this.conditionVersion = conditionVersion;
+ return this;
+ }
+
+ /**
+ * Get the createdOn property: DateTime when role assignment schedule was created.
+ *
+ * @return the createdOn value.
+ */
+ public OffsetDateTime createdOn() {
+ return this.createdOn;
+ }
+
+ /**
+ * Set the createdOn property: DateTime when role assignment schedule was created.
+ *
+ * @param createdOn the createdOn value to set.
+ * @return the RoleAssignmentScheduleInstanceProperties object itself.
+ */
+ public RoleAssignmentScheduleInstanceProperties withCreatedOn(OffsetDateTime createdOn) {
+ this.createdOn = createdOn;
+ return this;
+ }
+
+ /**
+ * Get the expandedProperties property: Additional properties of principal, scope and role definition.
+ *
+ * @return the expandedProperties value.
+ */
+ public ExpandedProperties expandedProperties() {
+ return this.expandedProperties;
+ }
+
+ /**
+ * Set the expandedProperties property: Additional properties of principal, scope and role definition.
+ *
+ * @param expandedProperties the expandedProperties value to set.
+ * @return the RoleAssignmentScheduleInstanceProperties object itself.
+ */
+ public RoleAssignmentScheduleInstanceProperties withExpandedProperties(ExpandedProperties expandedProperties) {
+ this.expandedProperties = expandedProperties;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (expandedProperties() != null) {
+ expandedProperties().validate();
+ }
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleAssignmentScheduleProperties.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleAssignmentScheduleProperties.java
new file mode 100644
index 0000000000000..504001f2c4616
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleAssignmentScheduleProperties.java
@@ -0,0 +1,460 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.authorization.generated.models.AssignmentType;
+import com.azure.resourcemanager.authorization.generated.models.ExpandedProperties;
+import com.azure.resourcemanager.authorization.generated.models.MemberType;
+import com.azure.resourcemanager.authorization.generated.models.PrincipalType;
+import com.azure.resourcemanager.authorization.generated.models.Status;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** Role assignment schedule properties with scope. */
+@Fluent
+public final class RoleAssignmentScheduleProperties {
+ /*
+ * The role assignment schedule scope.
+ */
+ @JsonProperty(value = "scope")
+ private String scope;
+
+ /*
+ * The role definition ID.
+ */
+ @JsonProperty(value = "roleDefinitionId")
+ private String roleDefinitionId;
+
+ /*
+ * The principal ID.
+ */
+ @JsonProperty(value = "principalId")
+ private String principalId;
+
+ /*
+ * The principal type of the assigned principal ID.
+ */
+ @JsonProperty(value = "principalType")
+ private PrincipalType principalType;
+
+ /*
+ * The id of roleAssignmentScheduleRequest used to create this
+ * roleAssignmentSchedule
+ */
+ @JsonProperty(value = "roleAssignmentScheduleRequestId")
+ private String roleAssignmentScheduleRequestId;
+
+ /*
+ * The id of roleEligibilitySchedule used to activated this
+ * roleAssignmentSchedule
+ */
+ @JsonProperty(value = "linkedRoleEligibilityScheduleId")
+ private String linkedRoleEligibilityScheduleId;
+
+ /*
+ * Assignment type of the role assignment schedule
+ */
+ @JsonProperty(value = "assignmentType")
+ private AssignmentType assignmentType;
+
+ /*
+ * Membership type of the role assignment schedule
+ */
+ @JsonProperty(value = "memberType")
+ private MemberType memberType;
+
+ /*
+ * The status of the role assignment schedule.
+ */
+ @JsonProperty(value = "status")
+ private Status status;
+
+ /*
+ * Start DateTime when role assignment schedule
+ */
+ @JsonProperty(value = "startDateTime")
+ private OffsetDateTime startDateTime;
+
+ /*
+ * End DateTime when role assignment schedule
+ */
+ @JsonProperty(value = "endDateTime")
+ private OffsetDateTime endDateTime;
+
+ /*
+ * The conditions on the role assignment. This limits the resources it can
+ * be assigned to. e.g.:
+ * @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName]
+ * StringEqualsIgnoreCase 'foo_storage_container'
+ */
+ @JsonProperty(value = "condition")
+ private String condition;
+
+ /*
+ * Version of the condition. Currently accepted value is '2.0'
+ */
+ @JsonProperty(value = "conditionVersion")
+ private String conditionVersion;
+
+ /*
+ * DateTime when role assignment schedule was created
+ */
+ @JsonProperty(value = "createdOn")
+ private OffsetDateTime createdOn;
+
+ /*
+ * DateTime when role assignment schedule was modified
+ */
+ @JsonProperty(value = "updatedOn")
+ private OffsetDateTime updatedOn;
+
+ /*
+ * Additional properties of principal, scope and role definition
+ */
+ @JsonProperty(value = "expandedProperties")
+ private ExpandedProperties expandedProperties;
+
+ /**
+ * Get the scope property: The role assignment schedule scope.
+ *
+ * @return the scope value.
+ */
+ public String scope() {
+ return this.scope;
+ }
+
+ /**
+ * Set the scope property: The role assignment schedule scope.
+ *
+ * @param scope the scope value to set.
+ * @return the RoleAssignmentScheduleProperties object itself.
+ */
+ public RoleAssignmentScheduleProperties withScope(String scope) {
+ this.scope = scope;
+ return this;
+ }
+
+ /**
+ * Get the roleDefinitionId property: The role definition ID.
+ *
+ * @return the roleDefinitionId value.
+ */
+ public String roleDefinitionId() {
+ return this.roleDefinitionId;
+ }
+
+ /**
+ * Set the roleDefinitionId property: The role definition ID.
+ *
+ * @param roleDefinitionId the roleDefinitionId value to set.
+ * @return the RoleAssignmentScheduleProperties object itself.
+ */
+ public RoleAssignmentScheduleProperties withRoleDefinitionId(String roleDefinitionId) {
+ this.roleDefinitionId = roleDefinitionId;
+ return this;
+ }
+
+ /**
+ * Get the principalId property: The principal ID.
+ *
+ * @return the principalId value.
+ */
+ public String principalId() {
+ return this.principalId;
+ }
+
+ /**
+ * Set the principalId property: The principal ID.
+ *
+ * @param principalId the principalId value to set.
+ * @return the RoleAssignmentScheduleProperties object itself.
+ */
+ public RoleAssignmentScheduleProperties withPrincipalId(String principalId) {
+ this.principalId = principalId;
+ return this;
+ }
+
+ /**
+ * Get the principalType property: The principal type of the assigned principal ID.
+ *
+ * @return the principalType value.
+ */
+ public PrincipalType principalType() {
+ return this.principalType;
+ }
+
+ /**
+ * Set the principalType property: The principal type of the assigned principal ID.
+ *
+ * @param principalType the principalType value to set.
+ * @return the RoleAssignmentScheduleProperties object itself.
+ */
+ public RoleAssignmentScheduleProperties withPrincipalType(PrincipalType principalType) {
+ this.principalType = principalType;
+ return this;
+ }
+
+ /**
+ * Get the roleAssignmentScheduleRequestId property: The id of roleAssignmentScheduleRequest used to create this
+ * roleAssignmentSchedule.
+ *
+ * @return the roleAssignmentScheduleRequestId value.
+ */
+ public String roleAssignmentScheduleRequestId() {
+ return this.roleAssignmentScheduleRequestId;
+ }
+
+ /**
+ * Set the roleAssignmentScheduleRequestId property: The id of roleAssignmentScheduleRequest used to create this
+ * roleAssignmentSchedule.
+ *
+ * @param roleAssignmentScheduleRequestId the roleAssignmentScheduleRequestId value to set.
+ * @return the RoleAssignmentScheduleProperties object itself.
+ */
+ public RoleAssignmentScheduleProperties withRoleAssignmentScheduleRequestId(
+ String roleAssignmentScheduleRequestId) {
+ this.roleAssignmentScheduleRequestId = roleAssignmentScheduleRequestId;
+ return this;
+ }
+
+ /**
+ * Get the linkedRoleEligibilityScheduleId property: The id of roleEligibilitySchedule used to activated this
+ * roleAssignmentSchedule.
+ *
+ * @return the linkedRoleEligibilityScheduleId value.
+ */
+ public String linkedRoleEligibilityScheduleId() {
+ return this.linkedRoleEligibilityScheduleId;
+ }
+
+ /**
+ * Set the linkedRoleEligibilityScheduleId property: The id of roleEligibilitySchedule used to activated this
+ * roleAssignmentSchedule.
+ *
+ * @param linkedRoleEligibilityScheduleId the linkedRoleEligibilityScheduleId value to set.
+ * @return the RoleAssignmentScheduleProperties object itself.
+ */
+ public RoleAssignmentScheduleProperties withLinkedRoleEligibilityScheduleId(
+ String linkedRoleEligibilityScheduleId) {
+ this.linkedRoleEligibilityScheduleId = linkedRoleEligibilityScheduleId;
+ return this;
+ }
+
+ /**
+ * Get the assignmentType property: Assignment type of the role assignment schedule.
+ *
+ * @return the assignmentType value.
+ */
+ public AssignmentType assignmentType() {
+ return this.assignmentType;
+ }
+
+ /**
+ * Set the assignmentType property: Assignment type of the role assignment schedule.
+ *
+ * @param assignmentType the assignmentType value to set.
+ * @return the RoleAssignmentScheduleProperties object itself.
+ */
+ public RoleAssignmentScheduleProperties withAssignmentType(AssignmentType assignmentType) {
+ this.assignmentType = assignmentType;
+ return this;
+ }
+
+ /**
+ * Get the memberType property: Membership type of the role assignment schedule.
+ *
+ * @return the memberType value.
+ */
+ public MemberType memberType() {
+ return this.memberType;
+ }
+
+ /**
+ * Set the memberType property: Membership type of the role assignment schedule.
+ *
+ * @param memberType the memberType value to set.
+ * @return the RoleAssignmentScheduleProperties object itself.
+ */
+ public RoleAssignmentScheduleProperties withMemberType(MemberType memberType) {
+ this.memberType = memberType;
+ return this;
+ }
+
+ /**
+ * Get the status property: The status of the role assignment schedule.
+ *
+ * @return the status value.
+ */
+ public Status status() {
+ return this.status;
+ }
+
+ /**
+ * Set the status property: The status of the role assignment schedule.
+ *
+ * @param status the status value to set.
+ * @return the RoleAssignmentScheduleProperties object itself.
+ */
+ public RoleAssignmentScheduleProperties withStatus(Status status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get the startDateTime property: Start DateTime when role assignment schedule.
+ *
+ * @return the startDateTime value.
+ */
+ public OffsetDateTime startDateTime() {
+ return this.startDateTime;
+ }
+
+ /**
+ * Set the startDateTime property: Start DateTime when role assignment schedule.
+ *
+ * @param startDateTime the startDateTime value to set.
+ * @return the RoleAssignmentScheduleProperties object itself.
+ */
+ public RoleAssignmentScheduleProperties withStartDateTime(OffsetDateTime startDateTime) {
+ this.startDateTime = startDateTime;
+ return this;
+ }
+
+ /**
+ * Get the endDateTime property: End DateTime when role assignment schedule.
+ *
+ * @return the endDateTime value.
+ */
+ public OffsetDateTime endDateTime() {
+ return this.endDateTime;
+ }
+
+ /**
+ * Set the endDateTime property: End DateTime when role assignment schedule.
+ *
+ * @param endDateTime the endDateTime value to set.
+ * @return the RoleAssignmentScheduleProperties object itself.
+ */
+ public RoleAssignmentScheduleProperties withEndDateTime(OffsetDateTime endDateTime) {
+ this.endDateTime = endDateTime;
+ return this;
+ }
+
+ /**
+ * Get the condition property: The conditions on the role assignment. This limits the resources it can be assigned
+ * to. e.g.: @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName]
+ * StringEqualsIgnoreCase 'foo_storage_container'.
+ *
+ * @return the condition value.
+ */
+ public String condition() {
+ return this.condition;
+ }
+
+ /**
+ * Set the condition property: The conditions on the role assignment. This limits the resources it can be assigned
+ * to. e.g.: @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName]
+ * StringEqualsIgnoreCase 'foo_storage_container'.
+ *
+ * @param condition the condition value to set.
+ * @return the RoleAssignmentScheduleProperties object itself.
+ */
+ public RoleAssignmentScheduleProperties withCondition(String condition) {
+ this.condition = condition;
+ return this;
+ }
+
+ /**
+ * Get the conditionVersion property: Version of the condition. Currently accepted value is '2.0'.
+ *
+ * @return the conditionVersion value.
+ */
+ public String conditionVersion() {
+ return this.conditionVersion;
+ }
+
+ /**
+ * Set the conditionVersion property: Version of the condition. Currently accepted value is '2.0'.
+ *
+ * @param conditionVersion the conditionVersion value to set.
+ * @return the RoleAssignmentScheduleProperties object itself.
+ */
+ public RoleAssignmentScheduleProperties withConditionVersion(String conditionVersion) {
+ this.conditionVersion = conditionVersion;
+ return this;
+ }
+
+ /**
+ * Get the createdOn property: DateTime when role assignment schedule was created.
+ *
+ * @return the createdOn value.
+ */
+ public OffsetDateTime createdOn() {
+ return this.createdOn;
+ }
+
+ /**
+ * Set the createdOn property: DateTime when role assignment schedule was created.
+ *
+ * @param createdOn the createdOn value to set.
+ * @return the RoleAssignmentScheduleProperties object itself.
+ */
+ public RoleAssignmentScheduleProperties withCreatedOn(OffsetDateTime createdOn) {
+ this.createdOn = createdOn;
+ return this;
+ }
+
+ /**
+ * Get the updatedOn property: DateTime when role assignment schedule was modified.
+ *
+ * @return the updatedOn value.
+ */
+ public OffsetDateTime updatedOn() {
+ return this.updatedOn;
+ }
+
+ /**
+ * Set the updatedOn property: DateTime when role assignment schedule was modified.
+ *
+ * @param updatedOn the updatedOn value to set.
+ * @return the RoleAssignmentScheduleProperties object itself.
+ */
+ public RoleAssignmentScheduleProperties withUpdatedOn(OffsetDateTime updatedOn) {
+ this.updatedOn = updatedOn;
+ return this;
+ }
+
+ /**
+ * Get the expandedProperties property: Additional properties of principal, scope and role definition.
+ *
+ * @return the expandedProperties value.
+ */
+ public ExpandedProperties expandedProperties() {
+ return this.expandedProperties;
+ }
+
+ /**
+ * Set the expandedProperties property: Additional properties of principal, scope and role definition.
+ *
+ * @param expandedProperties the expandedProperties value to set.
+ * @return the RoleAssignmentScheduleProperties object itself.
+ */
+ public RoleAssignmentScheduleProperties withExpandedProperties(ExpandedProperties expandedProperties) {
+ this.expandedProperties = expandedProperties;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (expandedProperties() != null) {
+ expandedProperties().validate();
+ }
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleAssignmentScheduleRequestInner.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleAssignmentScheduleRequestInner.java
new file mode 100644
index 0000000000000..644cbda8bebab
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleAssignmentScheduleRequestInner.java
@@ -0,0 +1,421 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.authorization.generated.models.ExpandedProperties;
+import com.azure.resourcemanager.authorization.generated.models.PrincipalType;
+import com.azure.resourcemanager.authorization.generated.models.RequestType;
+import com.azure.resourcemanager.authorization.generated.models.RoleAssignmentScheduleRequestPropertiesScheduleInfo;
+import com.azure.resourcemanager.authorization.generated.models.RoleAssignmentScheduleRequestPropertiesTicketInfo;
+import com.azure.resourcemanager.authorization.generated.models.Status;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** Role Assignment schedule request. */
+@Fluent
+public final class RoleAssignmentScheduleRequestInner {
+ /*
+ * The role assignment schedule request ID.
+ */
+ @JsonProperty(value = "id", access = JsonProperty.Access.WRITE_ONLY)
+ private String id;
+
+ /*
+ * The role assignment schedule request name.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /*
+ * The role assignment schedule request type.
+ */
+ @JsonProperty(value = "type", access = JsonProperty.Access.WRITE_ONLY)
+ private String type;
+
+ /*
+ * Role assignment schedule request properties.
+ */
+ @JsonProperty(value = "properties")
+ private RoleAssignmentScheduleRequestProperties innerProperties;
+
+ /**
+ * Get the id property: The role assignment schedule request ID.
+ *
+ * @return the id value.
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get the name property: The role assignment schedule request name.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the type property: The role assignment schedule request type.
+ *
+ * @return the type value.
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the innerProperties property: Role assignment schedule request properties.
+ *
+ * @return the innerProperties value.
+ */
+ private RoleAssignmentScheduleRequestProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the scope property: The role assignment schedule request scope.
+ *
+ * @return the scope value.
+ */
+ public String scope() {
+ return this.innerProperties() == null ? null : this.innerProperties().scope();
+ }
+
+ /**
+ * Get the roleDefinitionId property: The role definition ID.
+ *
+ * @return the roleDefinitionId value.
+ */
+ public String roleDefinitionId() {
+ return this.innerProperties() == null ? null : this.innerProperties().roleDefinitionId();
+ }
+
+ /**
+ * Set the roleDefinitionId property: The role definition ID.
+ *
+ * @param roleDefinitionId the roleDefinitionId value to set.
+ * @return the RoleAssignmentScheduleRequestInner object itself.
+ */
+ public RoleAssignmentScheduleRequestInner withRoleDefinitionId(String roleDefinitionId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleRequestProperties();
+ }
+ this.innerProperties().withRoleDefinitionId(roleDefinitionId);
+ return this;
+ }
+
+ /**
+ * Get the principalId property: The principal ID.
+ *
+ * @return the principalId value.
+ */
+ public String principalId() {
+ return this.innerProperties() == null ? null : this.innerProperties().principalId();
+ }
+
+ /**
+ * Set the principalId property: The principal ID.
+ *
+ * @param principalId the principalId value to set.
+ * @return the RoleAssignmentScheduleRequestInner object itself.
+ */
+ public RoleAssignmentScheduleRequestInner withPrincipalId(String principalId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleRequestProperties();
+ }
+ this.innerProperties().withPrincipalId(principalId);
+ return this;
+ }
+
+ /**
+ * Get the principalType property: The principal type of the assigned principal ID.
+ *
+ * @return the principalType value.
+ */
+ public PrincipalType principalType() {
+ return this.innerProperties() == null ? null : this.innerProperties().principalType();
+ }
+
+ /**
+ * Get the requestType property: The type of the role assignment schedule request. Eg: SelfActivate, AdminAssign
+ * etc.
+ *
+ * @return the requestType value.
+ */
+ public RequestType requestType() {
+ return this.innerProperties() == null ? null : this.innerProperties().requestType();
+ }
+
+ /**
+ * Set the requestType property: The type of the role assignment schedule request. Eg: SelfActivate, AdminAssign
+ * etc.
+ *
+ * @param requestType the requestType value to set.
+ * @return the RoleAssignmentScheduleRequestInner object itself.
+ */
+ public RoleAssignmentScheduleRequestInner withRequestType(RequestType requestType) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleRequestProperties();
+ }
+ this.innerProperties().withRequestType(requestType);
+ return this;
+ }
+
+ /**
+ * Get the status property: The status of the role assignment schedule request.
+ *
+ * @return the status value.
+ */
+ public Status status() {
+ return this.innerProperties() == null ? null : this.innerProperties().status();
+ }
+
+ /**
+ * Get the approvalId property: The approvalId of the role assignment schedule request.
+ *
+ * @return the approvalId value.
+ */
+ public String approvalId() {
+ return this.innerProperties() == null ? null : this.innerProperties().approvalId();
+ }
+
+ /**
+ * Get the targetRoleAssignmentScheduleId property: The resultant role assignment schedule id or the role assignment
+ * schedule id being updated.
+ *
+ * @return the targetRoleAssignmentScheduleId value.
+ */
+ public String targetRoleAssignmentScheduleId() {
+ return this.innerProperties() == null ? null : this.innerProperties().targetRoleAssignmentScheduleId();
+ }
+
+ /**
+ * Set the targetRoleAssignmentScheduleId property: The resultant role assignment schedule id or the role assignment
+ * schedule id being updated.
+ *
+ * @param targetRoleAssignmentScheduleId the targetRoleAssignmentScheduleId value to set.
+ * @return the RoleAssignmentScheduleRequestInner object itself.
+ */
+ public RoleAssignmentScheduleRequestInner withTargetRoleAssignmentScheduleId(
+ String targetRoleAssignmentScheduleId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleRequestProperties();
+ }
+ this.innerProperties().withTargetRoleAssignmentScheduleId(targetRoleAssignmentScheduleId);
+ return this;
+ }
+
+ /**
+ * Get the targetRoleAssignmentScheduleInstanceId property: The role assignment schedule instance id being updated.
+ *
+ * @return the targetRoleAssignmentScheduleInstanceId value.
+ */
+ public String targetRoleAssignmentScheduleInstanceId() {
+ return this.innerProperties() == null ? null : this.innerProperties().targetRoleAssignmentScheduleInstanceId();
+ }
+
+ /**
+ * Set the targetRoleAssignmentScheduleInstanceId property: The role assignment schedule instance id being updated.
+ *
+ * @param targetRoleAssignmentScheduleInstanceId the targetRoleAssignmentScheduleInstanceId value to set.
+ * @return the RoleAssignmentScheduleRequestInner object itself.
+ */
+ public RoleAssignmentScheduleRequestInner withTargetRoleAssignmentScheduleInstanceId(
+ String targetRoleAssignmentScheduleInstanceId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleRequestProperties();
+ }
+ this.innerProperties().withTargetRoleAssignmentScheduleInstanceId(targetRoleAssignmentScheduleInstanceId);
+ return this;
+ }
+
+ /**
+ * Get the scheduleInfo property: Schedule info of the role assignment schedule.
+ *
+ * @return the scheduleInfo value.
+ */
+ public RoleAssignmentScheduleRequestPropertiesScheduleInfo scheduleInfo() {
+ return this.innerProperties() == null ? null : this.innerProperties().scheduleInfo();
+ }
+
+ /**
+ * Set the scheduleInfo property: Schedule info of the role assignment schedule.
+ *
+ * @param scheduleInfo the scheduleInfo value to set.
+ * @return the RoleAssignmentScheduleRequestInner object itself.
+ */
+ public RoleAssignmentScheduleRequestInner withScheduleInfo(
+ RoleAssignmentScheduleRequestPropertiesScheduleInfo scheduleInfo) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleRequestProperties();
+ }
+ this.innerProperties().withScheduleInfo(scheduleInfo);
+ return this;
+ }
+
+ /**
+ * Get the linkedRoleEligibilityScheduleId property: The linked role eligibility schedule id - to activate an
+ * eligibility.
+ *
+ * @return the linkedRoleEligibilityScheduleId value.
+ */
+ public String linkedRoleEligibilityScheduleId() {
+ return this.innerProperties() == null ? null : this.innerProperties().linkedRoleEligibilityScheduleId();
+ }
+
+ /**
+ * Set the linkedRoleEligibilityScheduleId property: The linked role eligibility schedule id - to activate an
+ * eligibility.
+ *
+ * @param linkedRoleEligibilityScheduleId the linkedRoleEligibilityScheduleId value to set.
+ * @return the RoleAssignmentScheduleRequestInner object itself.
+ */
+ public RoleAssignmentScheduleRequestInner withLinkedRoleEligibilityScheduleId(
+ String linkedRoleEligibilityScheduleId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleRequestProperties();
+ }
+ this.innerProperties().withLinkedRoleEligibilityScheduleId(linkedRoleEligibilityScheduleId);
+ return this;
+ }
+
+ /**
+ * Get the justification property: Justification for the role assignment.
+ *
+ * @return the justification value.
+ */
+ public String justification() {
+ return this.innerProperties() == null ? null : this.innerProperties().justification();
+ }
+
+ /**
+ * Set the justification property: Justification for the role assignment.
+ *
+ * @param justification the justification value to set.
+ * @return the RoleAssignmentScheduleRequestInner object itself.
+ */
+ public RoleAssignmentScheduleRequestInner withJustification(String justification) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleRequestProperties();
+ }
+ this.innerProperties().withJustification(justification);
+ return this;
+ }
+
+ /**
+ * Get the ticketInfo property: Ticket Info of the role assignment.
+ *
+ * @return the ticketInfo value.
+ */
+ public RoleAssignmentScheduleRequestPropertiesTicketInfo ticketInfo() {
+ return this.innerProperties() == null ? null : this.innerProperties().ticketInfo();
+ }
+
+ /**
+ * Set the ticketInfo property: Ticket Info of the role assignment.
+ *
+ * @param ticketInfo the ticketInfo value to set.
+ * @return the RoleAssignmentScheduleRequestInner object itself.
+ */
+ public RoleAssignmentScheduleRequestInner withTicketInfo(
+ RoleAssignmentScheduleRequestPropertiesTicketInfo ticketInfo) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleRequestProperties();
+ }
+ this.innerProperties().withTicketInfo(ticketInfo);
+ return this;
+ }
+
+ /**
+ * Get the condition property: The conditions on the role assignment. This limits the resources it can be assigned
+ * to. e.g.: @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName]
+ * StringEqualsIgnoreCase 'foo_storage_container'.
+ *
+ * @return the condition value.
+ */
+ public String condition() {
+ return this.innerProperties() == null ? null : this.innerProperties().condition();
+ }
+
+ /**
+ * Set the condition property: The conditions on the role assignment. This limits the resources it can be assigned
+ * to. e.g.: @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName]
+ * StringEqualsIgnoreCase 'foo_storage_container'.
+ *
+ * @param condition the condition value to set.
+ * @return the RoleAssignmentScheduleRequestInner object itself.
+ */
+ public RoleAssignmentScheduleRequestInner withCondition(String condition) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleRequestProperties();
+ }
+ this.innerProperties().withCondition(condition);
+ return this;
+ }
+
+ /**
+ * Get the conditionVersion property: Version of the condition. Currently accepted value is '2.0'.
+ *
+ * @return the conditionVersion value.
+ */
+ public String conditionVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().conditionVersion();
+ }
+
+ /**
+ * Set the conditionVersion property: Version of the condition. Currently accepted value is '2.0'.
+ *
+ * @param conditionVersion the conditionVersion value to set.
+ * @return the RoleAssignmentScheduleRequestInner object itself.
+ */
+ public RoleAssignmentScheduleRequestInner withConditionVersion(String conditionVersion) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleAssignmentScheduleRequestProperties();
+ }
+ this.innerProperties().withConditionVersion(conditionVersion);
+ return this;
+ }
+
+ /**
+ * Get the createdOn property: DateTime when role assignment schedule request was created.
+ *
+ * @return the createdOn value.
+ */
+ public OffsetDateTime createdOn() {
+ return this.innerProperties() == null ? null : this.innerProperties().createdOn();
+ }
+
+ /**
+ * Get the requestorId property: Id of the user who created this request.
+ *
+ * @return the requestorId value.
+ */
+ public String requestorId() {
+ return this.innerProperties() == null ? null : this.innerProperties().requestorId();
+ }
+
+ /**
+ * Get the expandedProperties property: Additional properties of principal, scope and role definition.
+ *
+ * @return the expandedProperties value.
+ */
+ public ExpandedProperties expandedProperties() {
+ return this.innerProperties() == null ? null : this.innerProperties().expandedProperties();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleAssignmentScheduleRequestProperties.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleAssignmentScheduleRequestProperties.java
new file mode 100644
index 0000000000000..1b4ee456208d6
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleAssignmentScheduleRequestProperties.java
@@ -0,0 +1,468 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.authorization.generated.models.ExpandedProperties;
+import com.azure.resourcemanager.authorization.generated.models.PrincipalType;
+import com.azure.resourcemanager.authorization.generated.models.RequestType;
+import com.azure.resourcemanager.authorization.generated.models.RoleAssignmentScheduleRequestPropertiesScheduleInfo;
+import com.azure.resourcemanager.authorization.generated.models.RoleAssignmentScheduleRequestPropertiesTicketInfo;
+import com.azure.resourcemanager.authorization.generated.models.Status;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** Role assignment schedule request properties with scope. */
+@Fluent
+public final class RoleAssignmentScheduleRequestProperties {
+ /*
+ * The role assignment schedule request scope.
+ */
+ @JsonProperty(value = "scope", access = JsonProperty.Access.WRITE_ONLY)
+ private String scope;
+
+ /*
+ * The role definition ID.
+ */
+ @JsonProperty(value = "roleDefinitionId", required = true)
+ private String roleDefinitionId;
+
+ /*
+ * The principal ID.
+ */
+ @JsonProperty(value = "principalId", required = true)
+ private String principalId;
+
+ /*
+ * The principal type of the assigned principal ID.
+ */
+ @JsonProperty(value = "principalType", access = JsonProperty.Access.WRITE_ONLY)
+ private PrincipalType principalType;
+
+ /*
+ * The type of the role assignment schedule request. Eg: SelfActivate,
+ * AdminAssign etc
+ */
+ @JsonProperty(value = "requestType", required = true)
+ private RequestType requestType;
+
+ /*
+ * The status of the role assignment schedule request.
+ */
+ @JsonProperty(value = "status", access = JsonProperty.Access.WRITE_ONLY)
+ private Status status;
+
+ /*
+ * The approvalId of the role assignment schedule request.
+ */
+ @JsonProperty(value = "approvalId", access = JsonProperty.Access.WRITE_ONLY)
+ private String approvalId;
+
+ /*
+ * The resultant role assignment schedule id or the role assignment
+ * schedule id being updated
+ */
+ @JsonProperty(value = "targetRoleAssignmentScheduleId")
+ private String targetRoleAssignmentScheduleId;
+
+ /*
+ * The role assignment schedule instance id being updated
+ */
+ @JsonProperty(value = "targetRoleAssignmentScheduleInstanceId")
+ private String targetRoleAssignmentScheduleInstanceId;
+
+ /*
+ * Schedule info of the role assignment schedule
+ */
+ @JsonProperty(value = "scheduleInfo")
+ private RoleAssignmentScheduleRequestPropertiesScheduleInfo scheduleInfo;
+
+ /*
+ * The linked role eligibility schedule id - to activate an eligibility.
+ */
+ @JsonProperty(value = "linkedRoleEligibilityScheduleId")
+ private String linkedRoleEligibilityScheduleId;
+
+ /*
+ * Justification for the role assignment
+ */
+ @JsonProperty(value = "justification")
+ private String justification;
+
+ /*
+ * Ticket Info of the role assignment
+ */
+ @JsonProperty(value = "ticketInfo")
+ private RoleAssignmentScheduleRequestPropertiesTicketInfo ticketInfo;
+
+ /*
+ * The conditions on the role assignment. This limits the resources it can
+ * be assigned to. e.g.:
+ * @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName]
+ * StringEqualsIgnoreCase 'foo_storage_container'
+ */
+ @JsonProperty(value = "condition")
+ private String condition;
+
+ /*
+ * Version of the condition. Currently accepted value is '2.0'
+ */
+ @JsonProperty(value = "conditionVersion")
+ private String conditionVersion;
+
+ /*
+ * DateTime when role assignment schedule request was created
+ */
+ @JsonProperty(value = "createdOn", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime createdOn;
+
+ /*
+ * Id of the user who created this request
+ */
+ @JsonProperty(value = "requestorId", access = JsonProperty.Access.WRITE_ONLY)
+ private String requestorId;
+
+ /*
+ * Additional properties of principal, scope and role definition
+ */
+ @JsonProperty(value = "expandedProperties", access = JsonProperty.Access.WRITE_ONLY)
+ private ExpandedProperties expandedProperties;
+
+ /**
+ * Get the scope property: The role assignment schedule request scope.
+ *
+ * @return the scope value.
+ */
+ public String scope() {
+ return this.scope;
+ }
+
+ /**
+ * Get the roleDefinitionId property: The role definition ID.
+ *
+ * @return the roleDefinitionId value.
+ */
+ public String roleDefinitionId() {
+ return this.roleDefinitionId;
+ }
+
+ /**
+ * Set the roleDefinitionId property: The role definition ID.
+ *
+ * @param roleDefinitionId the roleDefinitionId value to set.
+ * @return the RoleAssignmentScheduleRequestProperties object itself.
+ */
+ public RoleAssignmentScheduleRequestProperties withRoleDefinitionId(String roleDefinitionId) {
+ this.roleDefinitionId = roleDefinitionId;
+ return this;
+ }
+
+ /**
+ * Get the principalId property: The principal ID.
+ *
+ * @return the principalId value.
+ */
+ public String principalId() {
+ return this.principalId;
+ }
+
+ /**
+ * Set the principalId property: The principal ID.
+ *
+ * @param principalId the principalId value to set.
+ * @return the RoleAssignmentScheduleRequestProperties object itself.
+ */
+ public RoleAssignmentScheduleRequestProperties withPrincipalId(String principalId) {
+ this.principalId = principalId;
+ return this;
+ }
+
+ /**
+ * Get the principalType property: The principal type of the assigned principal ID.
+ *
+ * @return the principalType value.
+ */
+ public PrincipalType principalType() {
+ return this.principalType;
+ }
+
+ /**
+ * Get the requestType property: The type of the role assignment schedule request. Eg: SelfActivate, AdminAssign
+ * etc.
+ *
+ * @return the requestType value.
+ */
+ public RequestType requestType() {
+ return this.requestType;
+ }
+
+ /**
+ * Set the requestType property: The type of the role assignment schedule request. Eg: SelfActivate, AdminAssign
+ * etc.
+ *
+ * @param requestType the requestType value to set.
+ * @return the RoleAssignmentScheduleRequestProperties object itself.
+ */
+ public RoleAssignmentScheduleRequestProperties withRequestType(RequestType requestType) {
+ this.requestType = requestType;
+ return this;
+ }
+
+ /**
+ * Get the status property: The status of the role assignment schedule request.
+ *
+ * @return the status value.
+ */
+ public Status status() {
+ return this.status;
+ }
+
+ /**
+ * Get the approvalId property: The approvalId of the role assignment schedule request.
+ *
+ * @return the approvalId value.
+ */
+ public String approvalId() {
+ return this.approvalId;
+ }
+
+ /**
+ * Get the targetRoleAssignmentScheduleId property: The resultant role assignment schedule id or the role assignment
+ * schedule id being updated.
+ *
+ * @return the targetRoleAssignmentScheduleId value.
+ */
+ public String targetRoleAssignmentScheduleId() {
+ return this.targetRoleAssignmentScheduleId;
+ }
+
+ /**
+ * Set the targetRoleAssignmentScheduleId property: The resultant role assignment schedule id or the role assignment
+ * schedule id being updated.
+ *
+ * @param targetRoleAssignmentScheduleId the targetRoleAssignmentScheduleId value to set.
+ * @return the RoleAssignmentScheduleRequestProperties object itself.
+ */
+ public RoleAssignmentScheduleRequestProperties withTargetRoleAssignmentScheduleId(
+ String targetRoleAssignmentScheduleId) {
+ this.targetRoleAssignmentScheduleId = targetRoleAssignmentScheduleId;
+ return this;
+ }
+
+ /**
+ * Get the targetRoleAssignmentScheduleInstanceId property: The role assignment schedule instance id being updated.
+ *
+ * @return the targetRoleAssignmentScheduleInstanceId value.
+ */
+ public String targetRoleAssignmentScheduleInstanceId() {
+ return this.targetRoleAssignmentScheduleInstanceId;
+ }
+
+ /**
+ * Set the targetRoleAssignmentScheduleInstanceId property: The role assignment schedule instance id being updated.
+ *
+ * @param targetRoleAssignmentScheduleInstanceId the targetRoleAssignmentScheduleInstanceId value to set.
+ * @return the RoleAssignmentScheduleRequestProperties object itself.
+ */
+ public RoleAssignmentScheduleRequestProperties withTargetRoleAssignmentScheduleInstanceId(
+ String targetRoleAssignmentScheduleInstanceId) {
+ this.targetRoleAssignmentScheduleInstanceId = targetRoleAssignmentScheduleInstanceId;
+ return this;
+ }
+
+ /**
+ * Get the scheduleInfo property: Schedule info of the role assignment schedule.
+ *
+ * @return the scheduleInfo value.
+ */
+ public RoleAssignmentScheduleRequestPropertiesScheduleInfo scheduleInfo() {
+ return this.scheduleInfo;
+ }
+
+ /**
+ * Set the scheduleInfo property: Schedule info of the role assignment schedule.
+ *
+ * @param scheduleInfo the scheduleInfo value to set.
+ * @return the RoleAssignmentScheduleRequestProperties object itself.
+ */
+ public RoleAssignmentScheduleRequestProperties withScheduleInfo(
+ RoleAssignmentScheduleRequestPropertiesScheduleInfo scheduleInfo) {
+ this.scheduleInfo = scheduleInfo;
+ return this;
+ }
+
+ /**
+ * Get the linkedRoleEligibilityScheduleId property: The linked role eligibility schedule id - to activate an
+ * eligibility.
+ *
+ * @return the linkedRoleEligibilityScheduleId value.
+ */
+ public String linkedRoleEligibilityScheduleId() {
+ return this.linkedRoleEligibilityScheduleId;
+ }
+
+ /**
+ * Set the linkedRoleEligibilityScheduleId property: The linked role eligibility schedule id - to activate an
+ * eligibility.
+ *
+ * @param linkedRoleEligibilityScheduleId the linkedRoleEligibilityScheduleId value to set.
+ * @return the RoleAssignmentScheduleRequestProperties object itself.
+ */
+ public RoleAssignmentScheduleRequestProperties withLinkedRoleEligibilityScheduleId(
+ String linkedRoleEligibilityScheduleId) {
+ this.linkedRoleEligibilityScheduleId = linkedRoleEligibilityScheduleId;
+ return this;
+ }
+
+ /**
+ * Get the justification property: Justification for the role assignment.
+ *
+ * @return the justification value.
+ */
+ public String justification() {
+ return this.justification;
+ }
+
+ /**
+ * Set the justification property: Justification for the role assignment.
+ *
+ * @param justification the justification value to set.
+ * @return the RoleAssignmentScheduleRequestProperties object itself.
+ */
+ public RoleAssignmentScheduleRequestProperties withJustification(String justification) {
+ this.justification = justification;
+ return this;
+ }
+
+ /**
+ * Get the ticketInfo property: Ticket Info of the role assignment.
+ *
+ * @return the ticketInfo value.
+ */
+ public RoleAssignmentScheduleRequestPropertiesTicketInfo ticketInfo() {
+ return this.ticketInfo;
+ }
+
+ /**
+ * Set the ticketInfo property: Ticket Info of the role assignment.
+ *
+ * @param ticketInfo the ticketInfo value to set.
+ * @return the RoleAssignmentScheduleRequestProperties object itself.
+ */
+ public RoleAssignmentScheduleRequestProperties withTicketInfo(
+ RoleAssignmentScheduleRequestPropertiesTicketInfo ticketInfo) {
+ this.ticketInfo = ticketInfo;
+ return this;
+ }
+
+ /**
+ * Get the condition property: The conditions on the role assignment. This limits the resources it can be assigned
+ * to. e.g.: @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName]
+ * StringEqualsIgnoreCase 'foo_storage_container'.
+ *
+ * @return the condition value.
+ */
+ public String condition() {
+ return this.condition;
+ }
+
+ /**
+ * Set the condition property: The conditions on the role assignment. This limits the resources it can be assigned
+ * to. e.g.: @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName]
+ * StringEqualsIgnoreCase 'foo_storage_container'.
+ *
+ * @param condition the condition value to set.
+ * @return the RoleAssignmentScheduleRequestProperties object itself.
+ */
+ public RoleAssignmentScheduleRequestProperties withCondition(String condition) {
+ this.condition = condition;
+ return this;
+ }
+
+ /**
+ * Get the conditionVersion property: Version of the condition. Currently accepted value is '2.0'.
+ *
+ * @return the conditionVersion value.
+ */
+ public String conditionVersion() {
+ return this.conditionVersion;
+ }
+
+ /**
+ * Set the conditionVersion property: Version of the condition. Currently accepted value is '2.0'.
+ *
+ * @param conditionVersion the conditionVersion value to set.
+ * @return the RoleAssignmentScheduleRequestProperties object itself.
+ */
+ public RoleAssignmentScheduleRequestProperties withConditionVersion(String conditionVersion) {
+ this.conditionVersion = conditionVersion;
+ return this;
+ }
+
+ /**
+ * Get the createdOn property: DateTime when role assignment schedule request was created.
+ *
+ * @return the createdOn value.
+ */
+ public OffsetDateTime createdOn() {
+ return this.createdOn;
+ }
+
+ /**
+ * Get the requestorId property: Id of the user who created this request.
+ *
+ * @return the requestorId value.
+ */
+ public String requestorId() {
+ return this.requestorId;
+ }
+
+ /**
+ * Get the expandedProperties property: Additional properties of principal, scope and role definition.
+ *
+ * @return the expandedProperties value.
+ */
+ public ExpandedProperties expandedProperties() {
+ return this.expandedProperties;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (roleDefinitionId() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property roleDefinitionId in model RoleAssignmentScheduleRequestProperties"));
+ }
+ if (principalId() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property principalId in model RoleAssignmentScheduleRequestProperties"));
+ }
+ if (requestType() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property requestType in model RoleAssignmentScheduleRequestProperties"));
+ }
+ if (scheduleInfo() != null) {
+ scheduleInfo().validate();
+ }
+ if (ticketInfo() != null) {
+ ticketInfo().validate();
+ }
+ if (expandedProperties() != null) {
+ expandedProperties().validate();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(RoleAssignmentScheduleRequestProperties.class);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleDefinitionInner.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleDefinitionInner.java
new file mode 100644
index 0000000000000..d5d7c89e03a0c
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleDefinitionInner.java
@@ -0,0 +1,199 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Role definition. */
+@Fluent
+public final class RoleDefinitionInner {
+ /*
+ * The role definition ID.
+ */
+ @JsonProperty(value = "id", access = JsonProperty.Access.WRITE_ONLY)
+ private String id;
+
+ /*
+ * The role definition name.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /*
+ * The role definition type.
+ */
+ @JsonProperty(value = "type", access = JsonProperty.Access.WRITE_ONLY)
+ private String type;
+
+ /*
+ * Role definition properties.
+ */
+ @JsonProperty(value = "properties")
+ private RoleDefinitionProperties innerProperties;
+
+ /**
+ * Get the id property: The role definition ID.
+ *
+ * @return the id value.
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get the name property: The role definition name.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the type property: The role definition type.
+ *
+ * @return the type value.
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the innerProperties property: Role definition properties.
+ *
+ * @return the innerProperties value.
+ */
+ private RoleDefinitionProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the roleName property: The role name.
+ *
+ * @return the roleName value.
+ */
+ public String roleName() {
+ return this.innerProperties() == null ? null : this.innerProperties().roleName();
+ }
+
+ /**
+ * Set the roleName property: The role name.
+ *
+ * @param roleName the roleName value to set.
+ * @return the RoleDefinitionInner object itself.
+ */
+ public RoleDefinitionInner withRoleName(String roleName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleDefinitionProperties();
+ }
+ this.innerProperties().withRoleName(roleName);
+ return this;
+ }
+
+ /**
+ * Get the description property: The role definition description.
+ *
+ * @return the description value.
+ */
+ public String description() {
+ return this.innerProperties() == null ? null : this.innerProperties().description();
+ }
+
+ /**
+ * Set the description property: The role definition description.
+ *
+ * @param description the description value to set.
+ * @return the RoleDefinitionInner object itself.
+ */
+ public RoleDefinitionInner withDescription(String description) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleDefinitionProperties();
+ }
+ this.innerProperties().withDescription(description);
+ return this;
+ }
+
+ /**
+ * Get the roleType property: The role type.
+ *
+ * @return the roleType value.
+ */
+ public String roleType() {
+ return this.innerProperties() == null ? null : this.innerProperties().roleType();
+ }
+
+ /**
+ * Set the roleType property: The role type.
+ *
+ * @param roleType the roleType value to set.
+ * @return the RoleDefinitionInner object itself.
+ */
+ public RoleDefinitionInner withRoleType(String roleType) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleDefinitionProperties();
+ }
+ this.innerProperties().withRoleType(roleType);
+ return this;
+ }
+
+ /**
+ * Get the permissions property: Role definition permissions.
+ *
+ * @return the permissions value.
+ */
+ public List permissions() {
+ return this.innerProperties() == null ? null : this.innerProperties().permissions();
+ }
+
+ /**
+ * Set the permissions property: Role definition permissions.
+ *
+ * @param permissions the permissions value to set.
+ * @return the RoleDefinitionInner object itself.
+ */
+ public RoleDefinitionInner withPermissions(List permissions) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleDefinitionProperties();
+ }
+ this.innerProperties().withPermissions(permissions);
+ return this;
+ }
+
+ /**
+ * Get the assignableScopes property: Role definition assignable scopes.
+ *
+ * @return the assignableScopes value.
+ */
+ public List assignableScopes() {
+ return this.innerProperties() == null ? null : this.innerProperties().assignableScopes();
+ }
+
+ /**
+ * Set the assignableScopes property: Role definition assignable scopes.
+ *
+ * @param assignableScopes the assignableScopes value to set.
+ * @return the RoleDefinitionInner object itself.
+ */
+ public RoleDefinitionInner withAssignableScopes(List assignableScopes) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleDefinitionProperties();
+ }
+ this.innerProperties().withAssignableScopes(assignableScopes);
+ 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/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleDefinitionProperties.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleDefinitionProperties.java
new file mode 100644
index 0000000000000..fbd1c7d66bdbf
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleDefinitionProperties.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.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Role definition properties. */
+@Fluent
+public final class RoleDefinitionProperties {
+ /*
+ * The role name.
+ */
+ @JsonProperty(value = "roleName")
+ private String roleName;
+
+ /*
+ * The role definition description.
+ */
+ @JsonProperty(value = "description")
+ private String description;
+
+ /*
+ * The role type.
+ */
+ @JsonProperty(value = "type")
+ private String roleType;
+
+ /*
+ * Role definition permissions.
+ */
+ @JsonProperty(value = "permissions")
+ private List permissions;
+
+ /*
+ * Role definition assignable scopes.
+ */
+ @JsonProperty(value = "assignableScopes")
+ private List assignableScopes;
+
+ /**
+ * Get the roleName property: The role name.
+ *
+ * @return the roleName value.
+ */
+ public String roleName() {
+ return this.roleName;
+ }
+
+ /**
+ * Set the roleName property: The role name.
+ *
+ * @param roleName the roleName value to set.
+ * @return the RoleDefinitionProperties object itself.
+ */
+ public RoleDefinitionProperties withRoleName(String roleName) {
+ this.roleName = roleName;
+ return this;
+ }
+
+ /**
+ * Get the description property: The role definition description.
+ *
+ * @return the description value.
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set the description property: The role definition description.
+ *
+ * @param description the description value to set.
+ * @return the RoleDefinitionProperties object itself.
+ */
+ public RoleDefinitionProperties withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+ /**
+ * Get the roleType property: The role type.
+ *
+ * @return the roleType value.
+ */
+ public String roleType() {
+ return this.roleType;
+ }
+
+ /**
+ * Set the roleType property: The role type.
+ *
+ * @param roleType the roleType value to set.
+ * @return the RoleDefinitionProperties object itself.
+ */
+ public RoleDefinitionProperties withRoleType(String roleType) {
+ this.roleType = roleType;
+ return this;
+ }
+
+ /**
+ * Get the permissions property: Role definition permissions.
+ *
+ * @return the permissions value.
+ */
+ public List permissions() {
+ return this.permissions;
+ }
+
+ /**
+ * Set the permissions property: Role definition permissions.
+ *
+ * @param permissions the permissions value to set.
+ * @return the RoleDefinitionProperties object itself.
+ */
+ public RoleDefinitionProperties withPermissions(List permissions) {
+ this.permissions = permissions;
+ return this;
+ }
+
+ /**
+ * Get the assignableScopes property: Role definition assignable scopes.
+ *
+ * @return the assignableScopes value.
+ */
+ public List assignableScopes() {
+ return this.assignableScopes;
+ }
+
+ /**
+ * Set the assignableScopes property: Role definition assignable scopes.
+ *
+ * @param assignableScopes the assignableScopes value to set.
+ * @return the RoleDefinitionProperties object itself.
+ */
+ public RoleDefinitionProperties withAssignableScopes(List assignableScopes) {
+ this.assignableScopes = assignableScopes;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (permissions() != null) {
+ permissions().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleEligibilityScheduleInner.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleEligibilityScheduleInner.java
new file mode 100644
index 0000000000000..efb89c01225d2
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleEligibilityScheduleInner.java
@@ -0,0 +1,416 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.authorization.generated.models.ExpandedProperties;
+import com.azure.resourcemanager.authorization.generated.models.MemberType;
+import com.azure.resourcemanager.authorization.generated.models.PrincipalType;
+import com.azure.resourcemanager.authorization.generated.models.Status;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** Role eligibility schedule. */
+@Fluent
+public final class RoleEligibilityScheduleInner {
+ /*
+ * The role eligibility schedule Id.
+ */
+ @JsonProperty(value = "id", access = JsonProperty.Access.WRITE_ONLY)
+ private String id;
+
+ /*
+ * The role eligibility schedule name.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /*
+ * The role eligibility schedule type.
+ */
+ @JsonProperty(value = "type", access = JsonProperty.Access.WRITE_ONLY)
+ private String type;
+
+ /*
+ * role eligibility schedule properties.
+ */
+ @JsonProperty(value = "properties")
+ private RoleEligibilityScheduleProperties innerProperties;
+
+ /**
+ * Get the id property: The role eligibility schedule Id.
+ *
+ * @return the id value.
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get the name property: The role eligibility schedule name.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the type property: The role eligibility schedule type.
+ *
+ * @return the type value.
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the innerProperties property: role eligibility schedule properties.
+ *
+ * @return the innerProperties value.
+ */
+ private RoleEligibilityScheduleProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the scope property: The role eligibility schedule scope.
+ *
+ * @return the scope value.
+ */
+ public String scope() {
+ return this.innerProperties() == null ? null : this.innerProperties().scope();
+ }
+
+ /**
+ * Set the scope property: The role eligibility schedule scope.
+ *
+ * @param scope the scope value to set.
+ * @return the RoleEligibilityScheduleInner object itself.
+ */
+ public RoleEligibilityScheduleInner withScope(String scope) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleEligibilityScheduleProperties();
+ }
+ this.innerProperties().withScope(scope);
+ return this;
+ }
+
+ /**
+ * Get the roleDefinitionId property: The role definition ID.
+ *
+ * @return the roleDefinitionId value.
+ */
+ public String roleDefinitionId() {
+ return this.innerProperties() == null ? null : this.innerProperties().roleDefinitionId();
+ }
+
+ /**
+ * Set the roleDefinitionId property: The role definition ID.
+ *
+ * @param roleDefinitionId the roleDefinitionId value to set.
+ * @return the RoleEligibilityScheduleInner object itself.
+ */
+ public RoleEligibilityScheduleInner withRoleDefinitionId(String roleDefinitionId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleEligibilityScheduleProperties();
+ }
+ this.innerProperties().withRoleDefinitionId(roleDefinitionId);
+ return this;
+ }
+
+ /**
+ * Get the principalId property: The principal ID.
+ *
+ * @return the principalId value.
+ */
+ public String principalId() {
+ return this.innerProperties() == null ? null : this.innerProperties().principalId();
+ }
+
+ /**
+ * Set the principalId property: The principal ID.
+ *
+ * @param principalId the principalId value to set.
+ * @return the RoleEligibilityScheduleInner object itself.
+ */
+ public RoleEligibilityScheduleInner withPrincipalId(String principalId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleEligibilityScheduleProperties();
+ }
+ this.innerProperties().withPrincipalId(principalId);
+ return this;
+ }
+
+ /**
+ * Get the principalType property: The principal type of the assigned principal ID.
+ *
+ * @return the principalType value.
+ */
+ public PrincipalType principalType() {
+ return this.innerProperties() == null ? null : this.innerProperties().principalType();
+ }
+
+ /**
+ * Set the principalType property: The principal type of the assigned principal ID.
+ *
+ * @param principalType the principalType value to set.
+ * @return the RoleEligibilityScheduleInner object itself.
+ */
+ public RoleEligibilityScheduleInner withPrincipalType(PrincipalType principalType) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleEligibilityScheduleProperties();
+ }
+ this.innerProperties().withPrincipalType(principalType);
+ return this;
+ }
+
+ /**
+ * Get the roleEligibilityScheduleRequestId property: The id of roleEligibilityScheduleRequest used to create this
+ * roleAssignmentSchedule.
+ *
+ * @return the roleEligibilityScheduleRequestId value.
+ */
+ public String roleEligibilityScheduleRequestId() {
+ return this.innerProperties() == null ? null : this.innerProperties().roleEligibilityScheduleRequestId();
+ }
+
+ /**
+ * Set the roleEligibilityScheduleRequestId property: The id of roleEligibilityScheduleRequest used to create this
+ * roleAssignmentSchedule.
+ *
+ * @param roleEligibilityScheduleRequestId the roleEligibilityScheduleRequestId value to set.
+ * @return the RoleEligibilityScheduleInner object itself.
+ */
+ public RoleEligibilityScheduleInner withRoleEligibilityScheduleRequestId(String roleEligibilityScheduleRequestId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleEligibilityScheduleProperties();
+ }
+ this.innerProperties().withRoleEligibilityScheduleRequestId(roleEligibilityScheduleRequestId);
+ return this;
+ }
+
+ /**
+ * Get the memberType property: Membership type of the role eligibility schedule.
+ *
+ * @return the memberType value.
+ */
+ public MemberType memberType() {
+ return this.innerProperties() == null ? null : this.innerProperties().memberType();
+ }
+
+ /**
+ * Set the memberType property: Membership type of the role eligibility schedule.
+ *
+ * @param memberType the memberType value to set.
+ * @return the RoleEligibilityScheduleInner object itself.
+ */
+ public RoleEligibilityScheduleInner withMemberType(MemberType memberType) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleEligibilityScheduleProperties();
+ }
+ this.innerProperties().withMemberType(memberType);
+ return this;
+ }
+
+ /**
+ * Get the status property: The status of the role eligibility schedule.
+ *
+ * @return the status value.
+ */
+ public Status status() {
+ return this.innerProperties() == null ? null : this.innerProperties().status();
+ }
+
+ /**
+ * Set the status property: The status of the role eligibility schedule.
+ *
+ * @param status the status value to set.
+ * @return the RoleEligibilityScheduleInner object itself.
+ */
+ public RoleEligibilityScheduleInner withStatus(Status status) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleEligibilityScheduleProperties();
+ }
+ this.innerProperties().withStatus(status);
+ return this;
+ }
+
+ /**
+ * Get the startDateTime property: Start DateTime when role eligibility schedule.
+ *
+ * @return the startDateTime value.
+ */
+ public OffsetDateTime startDateTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().startDateTime();
+ }
+
+ /**
+ * Set the startDateTime property: Start DateTime when role eligibility schedule.
+ *
+ * @param startDateTime the startDateTime value to set.
+ * @return the RoleEligibilityScheduleInner object itself.
+ */
+ public RoleEligibilityScheduleInner withStartDateTime(OffsetDateTime startDateTime) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleEligibilityScheduleProperties();
+ }
+ this.innerProperties().withStartDateTime(startDateTime);
+ return this;
+ }
+
+ /**
+ * Get the endDateTime property: End DateTime when role eligibility schedule.
+ *
+ * @return the endDateTime value.
+ */
+ public OffsetDateTime endDateTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().endDateTime();
+ }
+
+ /**
+ * Set the endDateTime property: End DateTime when role eligibility schedule.
+ *
+ * @param endDateTime the endDateTime value to set.
+ * @return the RoleEligibilityScheduleInner object itself.
+ */
+ public RoleEligibilityScheduleInner withEndDateTime(OffsetDateTime endDateTime) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleEligibilityScheduleProperties();
+ }
+ this.innerProperties().withEndDateTime(endDateTime);
+ return this;
+ }
+
+ /**
+ * Get the condition property: The conditions on the role assignment. This limits the resources it can be assigned
+ * to. e.g.: @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName]
+ * StringEqualsIgnoreCase 'foo_storage_container'.
+ *
+ * @return the condition value.
+ */
+ public String condition() {
+ return this.innerProperties() == null ? null : this.innerProperties().condition();
+ }
+
+ /**
+ * Set the condition property: The conditions on the role assignment. This limits the resources it can be assigned
+ * to. e.g.: @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName]
+ * StringEqualsIgnoreCase 'foo_storage_container'.
+ *
+ * @param condition the condition value to set.
+ * @return the RoleEligibilityScheduleInner object itself.
+ */
+ public RoleEligibilityScheduleInner withCondition(String condition) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleEligibilityScheduleProperties();
+ }
+ this.innerProperties().withCondition(condition);
+ return this;
+ }
+
+ /**
+ * Get the conditionVersion property: Version of the condition. Currently accepted value is '2.0'.
+ *
+ * @return the conditionVersion value.
+ */
+ public String conditionVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().conditionVersion();
+ }
+
+ /**
+ * Set the conditionVersion property: Version of the condition. Currently accepted value is '2.0'.
+ *
+ * @param conditionVersion the conditionVersion value to set.
+ * @return the RoleEligibilityScheduleInner object itself.
+ */
+ public RoleEligibilityScheduleInner withConditionVersion(String conditionVersion) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleEligibilityScheduleProperties();
+ }
+ this.innerProperties().withConditionVersion(conditionVersion);
+ return this;
+ }
+
+ /**
+ * Get the createdOn property: DateTime when role eligibility schedule was created.
+ *
+ * @return the createdOn value.
+ */
+ public OffsetDateTime createdOn() {
+ return this.innerProperties() == null ? null : this.innerProperties().createdOn();
+ }
+
+ /**
+ * Set the createdOn property: DateTime when role eligibility schedule was created.
+ *
+ * @param createdOn the createdOn value to set.
+ * @return the RoleEligibilityScheduleInner object itself.
+ */
+ public RoleEligibilityScheduleInner withCreatedOn(OffsetDateTime createdOn) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleEligibilityScheduleProperties();
+ }
+ this.innerProperties().withCreatedOn(createdOn);
+ return this;
+ }
+
+ /**
+ * Get the updatedOn property: DateTime when role eligibility schedule was modified.
+ *
+ * @return the updatedOn value.
+ */
+ public OffsetDateTime updatedOn() {
+ return this.innerProperties() == null ? null : this.innerProperties().updatedOn();
+ }
+
+ /**
+ * Set the updatedOn property: DateTime when role eligibility schedule was modified.
+ *
+ * @param updatedOn the updatedOn value to set.
+ * @return the RoleEligibilityScheduleInner object itself.
+ */
+ public RoleEligibilityScheduleInner withUpdatedOn(OffsetDateTime updatedOn) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleEligibilityScheduleProperties();
+ }
+ this.innerProperties().withUpdatedOn(updatedOn);
+ return this;
+ }
+
+ /**
+ * Get the expandedProperties property: Additional properties of principal, scope and role definition.
+ *
+ * @return the expandedProperties value.
+ */
+ public ExpandedProperties expandedProperties() {
+ return this.innerProperties() == null ? null : this.innerProperties().expandedProperties();
+ }
+
+ /**
+ * Set the expandedProperties property: Additional properties of principal, scope and role definition.
+ *
+ * @param expandedProperties the expandedProperties value to set.
+ * @return the RoleEligibilityScheduleInner object itself.
+ */
+ public RoleEligibilityScheduleInner withExpandedProperties(ExpandedProperties expandedProperties) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleEligibilityScheduleProperties();
+ }
+ this.innerProperties().withExpandedProperties(expandedProperties);
+ 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/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleEligibilityScheduleInstanceInner.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleEligibilityScheduleInstanceInner.java
new file mode 100644
index 0000000000000..8f7feed1995b4
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleEligibilityScheduleInstanceInner.java
@@ -0,0 +1,391 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.authorization.generated.models.ExpandedProperties;
+import com.azure.resourcemanager.authorization.generated.models.MemberType;
+import com.azure.resourcemanager.authorization.generated.models.PrincipalType;
+import com.azure.resourcemanager.authorization.generated.models.Status;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** Information about current or upcoming role eligibility schedule instance. */
+@Fluent
+public final class RoleEligibilityScheduleInstanceInner {
+ /*
+ * The role eligibility schedule instance ID.
+ */
+ @JsonProperty(value = "id", access = JsonProperty.Access.WRITE_ONLY)
+ private String id;
+
+ /*
+ * The role eligibility schedule instance name.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /*
+ * The role eligibility schedule instance type.
+ */
+ @JsonProperty(value = "type", access = JsonProperty.Access.WRITE_ONLY)
+ private String type;
+
+ /*
+ * Role eligibility schedule instance properties.
+ */
+ @JsonProperty(value = "properties")
+ private RoleEligibilityScheduleInstanceProperties innerProperties;
+
+ /**
+ * Get the id property: The role eligibility schedule instance ID.
+ *
+ * @return the id value.
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get the name property: The role eligibility schedule instance name.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the type property: The role eligibility schedule instance type.
+ *
+ * @return the type value.
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the innerProperties property: Role eligibility schedule instance properties.
+ *
+ * @return the innerProperties value.
+ */
+ private RoleEligibilityScheduleInstanceProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the scope property: The role eligibility schedule scope.
+ *
+ * @return the scope value.
+ */
+ public String scope() {
+ return this.innerProperties() == null ? null : this.innerProperties().scope();
+ }
+
+ /**
+ * Set the scope property: The role eligibility schedule scope.
+ *
+ * @param scope the scope value to set.
+ * @return the RoleEligibilityScheduleInstanceInner object itself.
+ */
+ public RoleEligibilityScheduleInstanceInner withScope(String scope) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleEligibilityScheduleInstanceProperties();
+ }
+ this.innerProperties().withScope(scope);
+ return this;
+ }
+
+ /**
+ * Get the roleDefinitionId property: The role definition ID.
+ *
+ * @return the roleDefinitionId value.
+ */
+ public String roleDefinitionId() {
+ return this.innerProperties() == null ? null : this.innerProperties().roleDefinitionId();
+ }
+
+ /**
+ * Set the roleDefinitionId property: The role definition ID.
+ *
+ * @param roleDefinitionId the roleDefinitionId value to set.
+ * @return the RoleEligibilityScheduleInstanceInner object itself.
+ */
+ public RoleEligibilityScheduleInstanceInner withRoleDefinitionId(String roleDefinitionId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleEligibilityScheduleInstanceProperties();
+ }
+ this.innerProperties().withRoleDefinitionId(roleDefinitionId);
+ return this;
+ }
+
+ /**
+ * Get the principalId property: The principal ID.
+ *
+ * @return the principalId value.
+ */
+ public String principalId() {
+ return this.innerProperties() == null ? null : this.innerProperties().principalId();
+ }
+
+ /**
+ * Set the principalId property: The principal ID.
+ *
+ * @param principalId the principalId value to set.
+ * @return the RoleEligibilityScheduleInstanceInner object itself.
+ */
+ public RoleEligibilityScheduleInstanceInner withPrincipalId(String principalId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleEligibilityScheduleInstanceProperties();
+ }
+ this.innerProperties().withPrincipalId(principalId);
+ return this;
+ }
+
+ /**
+ * Get the principalType property: The principal type of the assigned principal ID.
+ *
+ * @return the principalType value.
+ */
+ public PrincipalType principalType() {
+ return this.innerProperties() == null ? null : this.innerProperties().principalType();
+ }
+
+ /**
+ * Set the principalType property: The principal type of the assigned principal ID.
+ *
+ * @param principalType the principalType value to set.
+ * @return the RoleEligibilityScheduleInstanceInner object itself.
+ */
+ public RoleEligibilityScheduleInstanceInner withPrincipalType(PrincipalType principalType) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleEligibilityScheduleInstanceProperties();
+ }
+ this.innerProperties().withPrincipalType(principalType);
+ return this;
+ }
+
+ /**
+ * Get the roleEligibilityScheduleId property: Id of the master role eligibility schedule.
+ *
+ * @return the roleEligibilityScheduleId value.
+ */
+ public String roleEligibilityScheduleId() {
+ return this.innerProperties() == null ? null : this.innerProperties().roleEligibilityScheduleId();
+ }
+
+ /**
+ * Set the roleEligibilityScheduleId property: Id of the master role eligibility schedule.
+ *
+ * @param roleEligibilityScheduleId the roleEligibilityScheduleId value to set.
+ * @return the RoleEligibilityScheduleInstanceInner object itself.
+ */
+ public RoleEligibilityScheduleInstanceInner withRoleEligibilityScheduleId(String roleEligibilityScheduleId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleEligibilityScheduleInstanceProperties();
+ }
+ this.innerProperties().withRoleEligibilityScheduleId(roleEligibilityScheduleId);
+ return this;
+ }
+
+ /**
+ * Get the status property: The status of the role eligibility schedule instance.
+ *
+ * @return the status value.
+ */
+ public Status status() {
+ return this.innerProperties() == null ? null : this.innerProperties().status();
+ }
+
+ /**
+ * Set the status property: The status of the role eligibility schedule instance.
+ *
+ * @param status the status value to set.
+ * @return the RoleEligibilityScheduleInstanceInner object itself.
+ */
+ public RoleEligibilityScheduleInstanceInner withStatus(Status status) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleEligibilityScheduleInstanceProperties();
+ }
+ this.innerProperties().withStatus(status);
+ return this;
+ }
+
+ /**
+ * Get the startDateTime property: The startDateTime of the role eligibility schedule instance.
+ *
+ * @return the startDateTime value.
+ */
+ public OffsetDateTime startDateTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().startDateTime();
+ }
+
+ /**
+ * Set the startDateTime property: The startDateTime of the role eligibility schedule instance.
+ *
+ * @param startDateTime the startDateTime value to set.
+ * @return the RoleEligibilityScheduleInstanceInner object itself.
+ */
+ public RoleEligibilityScheduleInstanceInner withStartDateTime(OffsetDateTime startDateTime) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleEligibilityScheduleInstanceProperties();
+ }
+ this.innerProperties().withStartDateTime(startDateTime);
+ return this;
+ }
+
+ /**
+ * Get the endDateTime property: The endDateTime of the role eligibility schedule instance.
+ *
+ * @return the endDateTime value.
+ */
+ public OffsetDateTime endDateTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().endDateTime();
+ }
+
+ /**
+ * Set the endDateTime property: The endDateTime of the role eligibility schedule instance.
+ *
+ * @param endDateTime the endDateTime value to set.
+ * @return the RoleEligibilityScheduleInstanceInner object itself.
+ */
+ public RoleEligibilityScheduleInstanceInner withEndDateTime(OffsetDateTime endDateTime) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleEligibilityScheduleInstanceProperties();
+ }
+ this.innerProperties().withEndDateTime(endDateTime);
+ return this;
+ }
+
+ /**
+ * Get the memberType property: Membership type of the role eligibility schedule.
+ *
+ * @return the memberType value.
+ */
+ public MemberType memberType() {
+ return this.innerProperties() == null ? null : this.innerProperties().memberType();
+ }
+
+ /**
+ * Set the memberType property: Membership type of the role eligibility schedule.
+ *
+ * @param memberType the memberType value to set.
+ * @return the RoleEligibilityScheduleInstanceInner object itself.
+ */
+ public RoleEligibilityScheduleInstanceInner withMemberType(MemberType memberType) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleEligibilityScheduleInstanceProperties();
+ }
+ this.innerProperties().withMemberType(memberType);
+ return this;
+ }
+
+ /**
+ * Get the condition property: The conditions on the role assignment. This limits the resources it can be assigned
+ * to. e.g.: @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName]
+ * StringEqualsIgnoreCase 'foo_storage_container'.
+ *
+ * @return the condition value.
+ */
+ public String condition() {
+ return this.innerProperties() == null ? null : this.innerProperties().condition();
+ }
+
+ /**
+ * Set the condition property: The conditions on the role assignment. This limits the resources it can be assigned
+ * to. e.g.: @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName]
+ * StringEqualsIgnoreCase 'foo_storage_container'.
+ *
+ * @param condition the condition value to set.
+ * @return the RoleEligibilityScheduleInstanceInner object itself.
+ */
+ public RoleEligibilityScheduleInstanceInner withCondition(String condition) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleEligibilityScheduleInstanceProperties();
+ }
+ this.innerProperties().withCondition(condition);
+ return this;
+ }
+
+ /**
+ * Get the conditionVersion property: Version of the condition. Currently accepted value is '2.0'.
+ *
+ * @return the conditionVersion value.
+ */
+ public String conditionVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().conditionVersion();
+ }
+
+ /**
+ * Set the conditionVersion property: Version of the condition. Currently accepted value is '2.0'.
+ *
+ * @param conditionVersion the conditionVersion value to set.
+ * @return the RoleEligibilityScheduleInstanceInner object itself.
+ */
+ public RoleEligibilityScheduleInstanceInner withConditionVersion(String conditionVersion) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleEligibilityScheduleInstanceProperties();
+ }
+ this.innerProperties().withConditionVersion(conditionVersion);
+ return this;
+ }
+
+ /**
+ * Get the createdOn property: DateTime when role eligibility schedule was created.
+ *
+ * @return the createdOn value.
+ */
+ public OffsetDateTime createdOn() {
+ return this.innerProperties() == null ? null : this.innerProperties().createdOn();
+ }
+
+ /**
+ * Set the createdOn property: DateTime when role eligibility schedule was created.
+ *
+ * @param createdOn the createdOn value to set.
+ * @return the RoleEligibilityScheduleInstanceInner object itself.
+ */
+ public RoleEligibilityScheduleInstanceInner withCreatedOn(OffsetDateTime createdOn) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleEligibilityScheduleInstanceProperties();
+ }
+ this.innerProperties().withCreatedOn(createdOn);
+ return this;
+ }
+
+ /**
+ * Get the expandedProperties property: Additional properties of principal, scope and role definition.
+ *
+ * @return the expandedProperties value.
+ */
+ public ExpandedProperties expandedProperties() {
+ return this.innerProperties() == null ? null : this.innerProperties().expandedProperties();
+ }
+
+ /**
+ * Set the expandedProperties property: Additional properties of principal, scope and role definition.
+ *
+ * @param expandedProperties the expandedProperties value to set.
+ * @return the RoleEligibilityScheduleInstanceInner object itself.
+ */
+ public RoleEligibilityScheduleInstanceInner withExpandedProperties(ExpandedProperties expandedProperties) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleEligibilityScheduleInstanceProperties();
+ }
+ this.innerProperties().withExpandedProperties(expandedProperties);
+ 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/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleEligibilityScheduleInstanceProperties.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleEligibilityScheduleInstanceProperties.java
new file mode 100644
index 0000000000000..50e1bc8c9ee7b
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleEligibilityScheduleInstanceProperties.java
@@ -0,0 +1,373 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.authorization.generated.models.ExpandedProperties;
+import com.azure.resourcemanager.authorization.generated.models.MemberType;
+import com.azure.resourcemanager.authorization.generated.models.PrincipalType;
+import com.azure.resourcemanager.authorization.generated.models.Status;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** Role eligibility schedule properties with scope. */
+@Fluent
+public final class RoleEligibilityScheduleInstanceProperties {
+ /*
+ * The role eligibility schedule scope.
+ */
+ @JsonProperty(value = "scope")
+ private String scope;
+
+ /*
+ * The role definition ID.
+ */
+ @JsonProperty(value = "roleDefinitionId")
+ private String roleDefinitionId;
+
+ /*
+ * The principal ID.
+ */
+ @JsonProperty(value = "principalId")
+ private String principalId;
+
+ /*
+ * The principal type of the assigned principal ID.
+ */
+ @JsonProperty(value = "principalType")
+ private PrincipalType principalType;
+
+ /*
+ * Id of the master role eligibility schedule
+ */
+ @JsonProperty(value = "roleEligibilityScheduleId")
+ private String roleEligibilityScheduleId;
+
+ /*
+ * The status of the role eligibility schedule instance
+ */
+ @JsonProperty(value = "status")
+ private Status status;
+
+ /*
+ * The startDateTime of the role eligibility schedule instance
+ */
+ @JsonProperty(value = "startDateTime")
+ private OffsetDateTime startDateTime;
+
+ /*
+ * The endDateTime of the role eligibility schedule instance
+ */
+ @JsonProperty(value = "endDateTime")
+ private OffsetDateTime endDateTime;
+
+ /*
+ * Membership type of the role eligibility schedule
+ */
+ @JsonProperty(value = "memberType")
+ private MemberType memberType;
+
+ /*
+ * The conditions on the role assignment. This limits the resources it can
+ * be assigned to. e.g.:
+ * @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName]
+ * StringEqualsIgnoreCase 'foo_storage_container'
+ */
+ @JsonProperty(value = "condition")
+ private String condition;
+
+ /*
+ * Version of the condition. Currently accepted value is '2.0'
+ */
+ @JsonProperty(value = "conditionVersion")
+ private String conditionVersion;
+
+ /*
+ * DateTime when role eligibility schedule was created
+ */
+ @JsonProperty(value = "createdOn")
+ private OffsetDateTime createdOn;
+
+ /*
+ * Additional properties of principal, scope and role definition
+ */
+ @JsonProperty(value = "expandedProperties")
+ private ExpandedProperties expandedProperties;
+
+ /**
+ * Get the scope property: The role eligibility schedule scope.
+ *
+ * @return the scope value.
+ */
+ public String scope() {
+ return this.scope;
+ }
+
+ /**
+ * Set the scope property: The role eligibility schedule scope.
+ *
+ * @param scope the scope value to set.
+ * @return the RoleEligibilityScheduleInstanceProperties object itself.
+ */
+ public RoleEligibilityScheduleInstanceProperties withScope(String scope) {
+ this.scope = scope;
+ return this;
+ }
+
+ /**
+ * Get the roleDefinitionId property: The role definition ID.
+ *
+ * @return the roleDefinitionId value.
+ */
+ public String roleDefinitionId() {
+ return this.roleDefinitionId;
+ }
+
+ /**
+ * Set the roleDefinitionId property: The role definition ID.
+ *
+ * @param roleDefinitionId the roleDefinitionId value to set.
+ * @return the RoleEligibilityScheduleInstanceProperties object itself.
+ */
+ public RoleEligibilityScheduleInstanceProperties withRoleDefinitionId(String roleDefinitionId) {
+ this.roleDefinitionId = roleDefinitionId;
+ return this;
+ }
+
+ /**
+ * Get the principalId property: The principal ID.
+ *
+ * @return the principalId value.
+ */
+ public String principalId() {
+ return this.principalId;
+ }
+
+ /**
+ * Set the principalId property: The principal ID.
+ *
+ * @param principalId the principalId value to set.
+ * @return the RoleEligibilityScheduleInstanceProperties object itself.
+ */
+ public RoleEligibilityScheduleInstanceProperties withPrincipalId(String principalId) {
+ this.principalId = principalId;
+ return this;
+ }
+
+ /**
+ * Get the principalType property: The principal type of the assigned principal ID.
+ *
+ * @return the principalType value.
+ */
+ public PrincipalType principalType() {
+ return this.principalType;
+ }
+
+ /**
+ * Set the principalType property: The principal type of the assigned principal ID.
+ *
+ * @param principalType the principalType value to set.
+ * @return the RoleEligibilityScheduleInstanceProperties object itself.
+ */
+ public RoleEligibilityScheduleInstanceProperties withPrincipalType(PrincipalType principalType) {
+ this.principalType = principalType;
+ return this;
+ }
+
+ /**
+ * Get the roleEligibilityScheduleId property: Id of the master role eligibility schedule.
+ *
+ * @return the roleEligibilityScheduleId value.
+ */
+ public String roleEligibilityScheduleId() {
+ return this.roleEligibilityScheduleId;
+ }
+
+ /**
+ * Set the roleEligibilityScheduleId property: Id of the master role eligibility schedule.
+ *
+ * @param roleEligibilityScheduleId the roleEligibilityScheduleId value to set.
+ * @return the RoleEligibilityScheduleInstanceProperties object itself.
+ */
+ public RoleEligibilityScheduleInstanceProperties withRoleEligibilityScheduleId(String roleEligibilityScheduleId) {
+ this.roleEligibilityScheduleId = roleEligibilityScheduleId;
+ return this;
+ }
+
+ /**
+ * Get the status property: The status of the role eligibility schedule instance.
+ *
+ * @return the status value.
+ */
+ public Status status() {
+ return this.status;
+ }
+
+ /**
+ * Set the status property: The status of the role eligibility schedule instance.
+ *
+ * @param status the status value to set.
+ * @return the RoleEligibilityScheduleInstanceProperties object itself.
+ */
+ public RoleEligibilityScheduleInstanceProperties withStatus(Status status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get the startDateTime property: The startDateTime of the role eligibility schedule instance.
+ *
+ * @return the startDateTime value.
+ */
+ public OffsetDateTime startDateTime() {
+ return this.startDateTime;
+ }
+
+ /**
+ * Set the startDateTime property: The startDateTime of the role eligibility schedule instance.
+ *
+ * @param startDateTime the startDateTime value to set.
+ * @return the RoleEligibilityScheduleInstanceProperties object itself.
+ */
+ public RoleEligibilityScheduleInstanceProperties withStartDateTime(OffsetDateTime startDateTime) {
+ this.startDateTime = startDateTime;
+ return this;
+ }
+
+ /**
+ * Get the endDateTime property: The endDateTime of the role eligibility schedule instance.
+ *
+ * @return the endDateTime value.
+ */
+ public OffsetDateTime endDateTime() {
+ return this.endDateTime;
+ }
+
+ /**
+ * Set the endDateTime property: The endDateTime of the role eligibility schedule instance.
+ *
+ * @param endDateTime the endDateTime value to set.
+ * @return the RoleEligibilityScheduleInstanceProperties object itself.
+ */
+ public RoleEligibilityScheduleInstanceProperties withEndDateTime(OffsetDateTime endDateTime) {
+ this.endDateTime = endDateTime;
+ return this;
+ }
+
+ /**
+ * Get the memberType property: Membership type of the role eligibility schedule.
+ *
+ * @return the memberType value.
+ */
+ public MemberType memberType() {
+ return this.memberType;
+ }
+
+ /**
+ * Set the memberType property: Membership type of the role eligibility schedule.
+ *
+ * @param memberType the memberType value to set.
+ * @return the RoleEligibilityScheduleInstanceProperties object itself.
+ */
+ public RoleEligibilityScheduleInstanceProperties withMemberType(MemberType memberType) {
+ this.memberType = memberType;
+ return this;
+ }
+
+ /**
+ * Get the condition property: The conditions on the role assignment. This limits the resources it can be assigned
+ * to. e.g.: @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName]
+ * StringEqualsIgnoreCase 'foo_storage_container'.
+ *
+ * @return the condition value.
+ */
+ public String condition() {
+ return this.condition;
+ }
+
+ /**
+ * Set the condition property: The conditions on the role assignment. This limits the resources it can be assigned
+ * to. e.g.: @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName]
+ * StringEqualsIgnoreCase 'foo_storage_container'.
+ *
+ * @param condition the condition value to set.
+ * @return the RoleEligibilityScheduleInstanceProperties object itself.
+ */
+ public RoleEligibilityScheduleInstanceProperties withCondition(String condition) {
+ this.condition = condition;
+ return this;
+ }
+
+ /**
+ * Get the conditionVersion property: Version of the condition. Currently accepted value is '2.0'.
+ *
+ * @return the conditionVersion value.
+ */
+ public String conditionVersion() {
+ return this.conditionVersion;
+ }
+
+ /**
+ * Set the conditionVersion property: Version of the condition. Currently accepted value is '2.0'.
+ *
+ * @param conditionVersion the conditionVersion value to set.
+ * @return the RoleEligibilityScheduleInstanceProperties object itself.
+ */
+ public RoleEligibilityScheduleInstanceProperties withConditionVersion(String conditionVersion) {
+ this.conditionVersion = conditionVersion;
+ return this;
+ }
+
+ /**
+ * Get the createdOn property: DateTime when role eligibility schedule was created.
+ *
+ * @return the createdOn value.
+ */
+ public OffsetDateTime createdOn() {
+ return this.createdOn;
+ }
+
+ /**
+ * Set the createdOn property: DateTime when role eligibility schedule was created.
+ *
+ * @param createdOn the createdOn value to set.
+ * @return the RoleEligibilityScheduleInstanceProperties object itself.
+ */
+ public RoleEligibilityScheduleInstanceProperties withCreatedOn(OffsetDateTime createdOn) {
+ this.createdOn = createdOn;
+ return this;
+ }
+
+ /**
+ * Get the expandedProperties property: Additional properties of principal, scope and role definition.
+ *
+ * @return the expandedProperties value.
+ */
+ public ExpandedProperties expandedProperties() {
+ return this.expandedProperties;
+ }
+
+ /**
+ * Set the expandedProperties property: Additional properties of principal, scope and role definition.
+ *
+ * @param expandedProperties the expandedProperties value to set.
+ * @return the RoleEligibilityScheduleInstanceProperties object itself.
+ */
+ public RoleEligibilityScheduleInstanceProperties withExpandedProperties(ExpandedProperties expandedProperties) {
+ this.expandedProperties = expandedProperties;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (expandedProperties() != null) {
+ expandedProperties().validate();
+ }
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleEligibilityScheduleProperties.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleEligibilityScheduleProperties.java
new file mode 100644
index 0000000000000..88672e8fa6e7c
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleEligibilityScheduleProperties.java
@@ -0,0 +1,403 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.authorization.generated.models.ExpandedProperties;
+import com.azure.resourcemanager.authorization.generated.models.MemberType;
+import com.azure.resourcemanager.authorization.generated.models.PrincipalType;
+import com.azure.resourcemanager.authorization.generated.models.Status;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** Role eligibility schedule properties with scope. */
+@Fluent
+public final class RoleEligibilityScheduleProperties {
+ /*
+ * The role eligibility schedule scope.
+ */
+ @JsonProperty(value = "scope")
+ private String scope;
+
+ /*
+ * The role definition ID.
+ */
+ @JsonProperty(value = "roleDefinitionId")
+ private String roleDefinitionId;
+
+ /*
+ * The principal ID.
+ */
+ @JsonProperty(value = "principalId")
+ private String principalId;
+
+ /*
+ * The principal type of the assigned principal ID.
+ */
+ @JsonProperty(value = "principalType")
+ private PrincipalType principalType;
+
+ /*
+ * The id of roleEligibilityScheduleRequest used to create this
+ * roleAssignmentSchedule
+ */
+ @JsonProperty(value = "roleEligibilityScheduleRequestId")
+ private String roleEligibilityScheduleRequestId;
+
+ /*
+ * Membership type of the role eligibility schedule
+ */
+ @JsonProperty(value = "memberType")
+ private MemberType memberType;
+
+ /*
+ * The status of the role eligibility schedule.
+ */
+ @JsonProperty(value = "status")
+ private Status status;
+
+ /*
+ * Start DateTime when role eligibility schedule
+ */
+ @JsonProperty(value = "startDateTime")
+ private OffsetDateTime startDateTime;
+
+ /*
+ * End DateTime when role eligibility schedule
+ */
+ @JsonProperty(value = "endDateTime")
+ private OffsetDateTime endDateTime;
+
+ /*
+ * The conditions on the role assignment. This limits the resources it can
+ * be assigned to. e.g.:
+ * @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName]
+ * StringEqualsIgnoreCase 'foo_storage_container'
+ */
+ @JsonProperty(value = "condition")
+ private String condition;
+
+ /*
+ * Version of the condition. Currently accepted value is '2.0'
+ */
+ @JsonProperty(value = "conditionVersion")
+ private String conditionVersion;
+
+ /*
+ * DateTime when role eligibility schedule was created
+ */
+ @JsonProperty(value = "createdOn")
+ private OffsetDateTime createdOn;
+
+ /*
+ * DateTime when role eligibility schedule was modified
+ */
+ @JsonProperty(value = "updatedOn")
+ private OffsetDateTime updatedOn;
+
+ /*
+ * Additional properties of principal, scope and role definition
+ */
+ @JsonProperty(value = "expandedProperties")
+ private ExpandedProperties expandedProperties;
+
+ /**
+ * Get the scope property: The role eligibility schedule scope.
+ *
+ * @return the scope value.
+ */
+ public String scope() {
+ return this.scope;
+ }
+
+ /**
+ * Set the scope property: The role eligibility schedule scope.
+ *
+ * @param scope the scope value to set.
+ * @return the RoleEligibilityScheduleProperties object itself.
+ */
+ public RoleEligibilityScheduleProperties withScope(String scope) {
+ this.scope = scope;
+ return this;
+ }
+
+ /**
+ * Get the roleDefinitionId property: The role definition ID.
+ *
+ * @return the roleDefinitionId value.
+ */
+ public String roleDefinitionId() {
+ return this.roleDefinitionId;
+ }
+
+ /**
+ * Set the roleDefinitionId property: The role definition ID.
+ *
+ * @param roleDefinitionId the roleDefinitionId value to set.
+ * @return the RoleEligibilityScheduleProperties object itself.
+ */
+ public RoleEligibilityScheduleProperties withRoleDefinitionId(String roleDefinitionId) {
+ this.roleDefinitionId = roleDefinitionId;
+ return this;
+ }
+
+ /**
+ * Get the principalId property: The principal ID.
+ *
+ * @return the principalId value.
+ */
+ public String principalId() {
+ return this.principalId;
+ }
+
+ /**
+ * Set the principalId property: The principal ID.
+ *
+ * @param principalId the principalId value to set.
+ * @return the RoleEligibilityScheduleProperties object itself.
+ */
+ public RoleEligibilityScheduleProperties withPrincipalId(String principalId) {
+ this.principalId = principalId;
+ return this;
+ }
+
+ /**
+ * Get the principalType property: The principal type of the assigned principal ID.
+ *
+ * @return the principalType value.
+ */
+ public PrincipalType principalType() {
+ return this.principalType;
+ }
+
+ /**
+ * Set the principalType property: The principal type of the assigned principal ID.
+ *
+ * @param principalType the principalType value to set.
+ * @return the RoleEligibilityScheduleProperties object itself.
+ */
+ public RoleEligibilityScheduleProperties withPrincipalType(PrincipalType principalType) {
+ this.principalType = principalType;
+ return this;
+ }
+
+ /**
+ * Get the roleEligibilityScheduleRequestId property: The id of roleEligibilityScheduleRequest used to create this
+ * roleAssignmentSchedule.
+ *
+ * @return the roleEligibilityScheduleRequestId value.
+ */
+ public String roleEligibilityScheduleRequestId() {
+ return this.roleEligibilityScheduleRequestId;
+ }
+
+ /**
+ * Set the roleEligibilityScheduleRequestId property: The id of roleEligibilityScheduleRequest used to create this
+ * roleAssignmentSchedule.
+ *
+ * @param roleEligibilityScheduleRequestId the roleEligibilityScheduleRequestId value to set.
+ * @return the RoleEligibilityScheduleProperties object itself.
+ */
+ public RoleEligibilityScheduleProperties withRoleEligibilityScheduleRequestId(
+ String roleEligibilityScheduleRequestId) {
+ this.roleEligibilityScheduleRequestId = roleEligibilityScheduleRequestId;
+ return this;
+ }
+
+ /**
+ * Get the memberType property: Membership type of the role eligibility schedule.
+ *
+ * @return the memberType value.
+ */
+ public MemberType memberType() {
+ return this.memberType;
+ }
+
+ /**
+ * Set the memberType property: Membership type of the role eligibility schedule.
+ *
+ * @param memberType the memberType value to set.
+ * @return the RoleEligibilityScheduleProperties object itself.
+ */
+ public RoleEligibilityScheduleProperties withMemberType(MemberType memberType) {
+ this.memberType = memberType;
+ return this;
+ }
+
+ /**
+ * Get the status property: The status of the role eligibility schedule.
+ *
+ * @return the status value.
+ */
+ public Status status() {
+ return this.status;
+ }
+
+ /**
+ * Set the status property: The status of the role eligibility schedule.
+ *
+ * @param status the status value to set.
+ * @return the RoleEligibilityScheduleProperties object itself.
+ */
+ public RoleEligibilityScheduleProperties withStatus(Status status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get the startDateTime property: Start DateTime when role eligibility schedule.
+ *
+ * @return the startDateTime value.
+ */
+ public OffsetDateTime startDateTime() {
+ return this.startDateTime;
+ }
+
+ /**
+ * Set the startDateTime property: Start DateTime when role eligibility schedule.
+ *
+ * @param startDateTime the startDateTime value to set.
+ * @return the RoleEligibilityScheduleProperties object itself.
+ */
+ public RoleEligibilityScheduleProperties withStartDateTime(OffsetDateTime startDateTime) {
+ this.startDateTime = startDateTime;
+ return this;
+ }
+
+ /**
+ * Get the endDateTime property: End DateTime when role eligibility schedule.
+ *
+ * @return the endDateTime value.
+ */
+ public OffsetDateTime endDateTime() {
+ return this.endDateTime;
+ }
+
+ /**
+ * Set the endDateTime property: End DateTime when role eligibility schedule.
+ *
+ * @param endDateTime the endDateTime value to set.
+ * @return the RoleEligibilityScheduleProperties object itself.
+ */
+ public RoleEligibilityScheduleProperties withEndDateTime(OffsetDateTime endDateTime) {
+ this.endDateTime = endDateTime;
+ return this;
+ }
+
+ /**
+ * Get the condition property: The conditions on the role assignment. This limits the resources it can be assigned
+ * to. e.g.: @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName]
+ * StringEqualsIgnoreCase 'foo_storage_container'.
+ *
+ * @return the condition value.
+ */
+ public String condition() {
+ return this.condition;
+ }
+
+ /**
+ * Set the condition property: The conditions on the role assignment. This limits the resources it can be assigned
+ * to. e.g.: @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName]
+ * StringEqualsIgnoreCase 'foo_storage_container'.
+ *
+ * @param condition the condition value to set.
+ * @return the RoleEligibilityScheduleProperties object itself.
+ */
+ public RoleEligibilityScheduleProperties withCondition(String condition) {
+ this.condition = condition;
+ return this;
+ }
+
+ /**
+ * Get the conditionVersion property: Version of the condition. Currently accepted value is '2.0'.
+ *
+ * @return the conditionVersion value.
+ */
+ public String conditionVersion() {
+ return this.conditionVersion;
+ }
+
+ /**
+ * Set the conditionVersion property: Version of the condition. Currently accepted value is '2.0'.
+ *
+ * @param conditionVersion the conditionVersion value to set.
+ * @return the RoleEligibilityScheduleProperties object itself.
+ */
+ public RoleEligibilityScheduleProperties withConditionVersion(String conditionVersion) {
+ this.conditionVersion = conditionVersion;
+ return this;
+ }
+
+ /**
+ * Get the createdOn property: DateTime when role eligibility schedule was created.
+ *
+ * @return the createdOn value.
+ */
+ public OffsetDateTime createdOn() {
+ return this.createdOn;
+ }
+
+ /**
+ * Set the createdOn property: DateTime when role eligibility schedule was created.
+ *
+ * @param createdOn the createdOn value to set.
+ * @return the RoleEligibilityScheduleProperties object itself.
+ */
+ public RoleEligibilityScheduleProperties withCreatedOn(OffsetDateTime createdOn) {
+ this.createdOn = createdOn;
+ return this;
+ }
+
+ /**
+ * Get the updatedOn property: DateTime when role eligibility schedule was modified.
+ *
+ * @return the updatedOn value.
+ */
+ public OffsetDateTime updatedOn() {
+ return this.updatedOn;
+ }
+
+ /**
+ * Set the updatedOn property: DateTime when role eligibility schedule was modified.
+ *
+ * @param updatedOn the updatedOn value to set.
+ * @return the RoleEligibilityScheduleProperties object itself.
+ */
+ public RoleEligibilityScheduleProperties withUpdatedOn(OffsetDateTime updatedOn) {
+ this.updatedOn = updatedOn;
+ return this;
+ }
+
+ /**
+ * Get the expandedProperties property: Additional properties of principal, scope and role definition.
+ *
+ * @return the expandedProperties value.
+ */
+ public ExpandedProperties expandedProperties() {
+ return this.expandedProperties;
+ }
+
+ /**
+ * Set the expandedProperties property: Additional properties of principal, scope and role definition.
+ *
+ * @param expandedProperties the expandedProperties value to set.
+ * @return the RoleEligibilityScheduleProperties object itself.
+ */
+ public RoleEligibilityScheduleProperties withExpandedProperties(ExpandedProperties expandedProperties) {
+ this.expandedProperties = expandedProperties;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (expandedProperties() != null) {
+ expandedProperties().validate();
+ }
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleEligibilityScheduleRequestInner.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleEligibilityScheduleRequestInner.java
new file mode 100644
index 0000000000000..a0139e4d42efa
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleEligibilityScheduleRequestInner.java
@@ -0,0 +1,397 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.authorization.generated.models.ExpandedProperties;
+import com.azure.resourcemanager.authorization.generated.models.PrincipalType;
+import com.azure.resourcemanager.authorization.generated.models.RequestType;
+import com.azure.resourcemanager.authorization.generated.models.RoleEligibilityScheduleRequestPropertiesScheduleInfo;
+import com.azure.resourcemanager.authorization.generated.models.RoleEligibilityScheduleRequestPropertiesTicketInfo;
+import com.azure.resourcemanager.authorization.generated.models.Status;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** Role Eligibility schedule request. */
+@Fluent
+public final class RoleEligibilityScheduleRequestInner {
+ /*
+ * The role eligibility schedule request ID.
+ */
+ @JsonProperty(value = "id", access = JsonProperty.Access.WRITE_ONLY)
+ private String id;
+
+ /*
+ * The role eligibility schedule request name.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /*
+ * The role eligibility schedule request type.
+ */
+ @JsonProperty(value = "type", access = JsonProperty.Access.WRITE_ONLY)
+ private String type;
+
+ /*
+ * Role eligibility schedule request properties.
+ */
+ @JsonProperty(value = "properties")
+ private RoleEligibilityScheduleRequestProperties innerProperties;
+
+ /**
+ * Get the id property: The role eligibility schedule request ID.
+ *
+ * @return the id value.
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get the name property: The role eligibility schedule request name.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the type property: The role eligibility schedule request type.
+ *
+ * @return the type value.
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the innerProperties property: Role eligibility schedule request properties.
+ *
+ * @return the innerProperties value.
+ */
+ private RoleEligibilityScheduleRequestProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the scope property: The role eligibility schedule request scope.
+ *
+ * @return the scope value.
+ */
+ public String scope() {
+ return this.innerProperties() == null ? null : this.innerProperties().scope();
+ }
+
+ /**
+ * Get the roleDefinitionId property: The role definition ID.
+ *
+ * @return the roleDefinitionId value.
+ */
+ public String roleDefinitionId() {
+ return this.innerProperties() == null ? null : this.innerProperties().roleDefinitionId();
+ }
+
+ /**
+ * Set the roleDefinitionId property: The role definition ID.
+ *
+ * @param roleDefinitionId the roleDefinitionId value to set.
+ * @return the RoleEligibilityScheduleRequestInner object itself.
+ */
+ public RoleEligibilityScheduleRequestInner withRoleDefinitionId(String roleDefinitionId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleEligibilityScheduleRequestProperties();
+ }
+ this.innerProperties().withRoleDefinitionId(roleDefinitionId);
+ return this;
+ }
+
+ /**
+ * Get the principalId property: The principal ID.
+ *
+ * @return the principalId value.
+ */
+ public String principalId() {
+ return this.innerProperties() == null ? null : this.innerProperties().principalId();
+ }
+
+ /**
+ * Set the principalId property: The principal ID.
+ *
+ * @param principalId the principalId value to set.
+ * @return the RoleEligibilityScheduleRequestInner object itself.
+ */
+ public RoleEligibilityScheduleRequestInner withPrincipalId(String principalId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleEligibilityScheduleRequestProperties();
+ }
+ this.innerProperties().withPrincipalId(principalId);
+ return this;
+ }
+
+ /**
+ * Get the principalType property: The principal type of the assigned principal ID.
+ *
+ * @return the principalType value.
+ */
+ public PrincipalType principalType() {
+ return this.innerProperties() == null ? null : this.innerProperties().principalType();
+ }
+
+ /**
+ * Get the requestType property: The type of the role assignment schedule request. Eg: SelfActivate, AdminAssign
+ * etc.
+ *
+ * @return the requestType value.
+ */
+ public RequestType requestType() {
+ return this.innerProperties() == null ? null : this.innerProperties().requestType();
+ }
+
+ /**
+ * Set the requestType property: The type of the role assignment schedule request. Eg: SelfActivate, AdminAssign
+ * etc.
+ *
+ * @param requestType the requestType value to set.
+ * @return the RoleEligibilityScheduleRequestInner object itself.
+ */
+ public RoleEligibilityScheduleRequestInner withRequestType(RequestType requestType) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleEligibilityScheduleRequestProperties();
+ }
+ this.innerProperties().withRequestType(requestType);
+ return this;
+ }
+
+ /**
+ * Get the status property: The status of the role eligibility schedule request.
+ *
+ * @return the status value.
+ */
+ public Status status() {
+ return this.innerProperties() == null ? null : this.innerProperties().status();
+ }
+
+ /**
+ * Get the approvalId property: The approvalId of the role eligibility schedule request.
+ *
+ * @return the approvalId value.
+ */
+ public String approvalId() {
+ return this.innerProperties() == null ? null : this.innerProperties().approvalId();
+ }
+
+ /**
+ * Get the scheduleInfo property: Schedule info of the role eligibility schedule.
+ *
+ * @return the scheduleInfo value.
+ */
+ public RoleEligibilityScheduleRequestPropertiesScheduleInfo scheduleInfo() {
+ return this.innerProperties() == null ? null : this.innerProperties().scheduleInfo();
+ }
+
+ /**
+ * Set the scheduleInfo property: Schedule info of the role eligibility schedule.
+ *
+ * @param scheduleInfo the scheduleInfo value to set.
+ * @return the RoleEligibilityScheduleRequestInner object itself.
+ */
+ public RoleEligibilityScheduleRequestInner withScheduleInfo(
+ RoleEligibilityScheduleRequestPropertiesScheduleInfo scheduleInfo) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleEligibilityScheduleRequestProperties();
+ }
+ this.innerProperties().withScheduleInfo(scheduleInfo);
+ return this;
+ }
+
+ /**
+ * Get the targetRoleEligibilityScheduleId property: The resultant role eligibility schedule id or the role
+ * eligibility schedule id being updated.
+ *
+ * @return the targetRoleEligibilityScheduleId value.
+ */
+ public String targetRoleEligibilityScheduleId() {
+ return this.innerProperties() == null ? null : this.innerProperties().targetRoleEligibilityScheduleId();
+ }
+
+ /**
+ * Set the targetRoleEligibilityScheduleId property: The resultant role eligibility schedule id or the role
+ * eligibility schedule id being updated.
+ *
+ * @param targetRoleEligibilityScheduleId the targetRoleEligibilityScheduleId value to set.
+ * @return the RoleEligibilityScheduleRequestInner object itself.
+ */
+ public RoleEligibilityScheduleRequestInner withTargetRoleEligibilityScheduleId(
+ String targetRoleEligibilityScheduleId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleEligibilityScheduleRequestProperties();
+ }
+ this.innerProperties().withTargetRoleEligibilityScheduleId(targetRoleEligibilityScheduleId);
+ return this;
+ }
+
+ /**
+ * Get the targetRoleEligibilityScheduleInstanceId property: The role eligibility schedule instance id being
+ * updated.
+ *
+ * @return the targetRoleEligibilityScheduleInstanceId value.
+ */
+ public String targetRoleEligibilityScheduleInstanceId() {
+ return this.innerProperties() == null ? null : this.innerProperties().targetRoleEligibilityScheduleInstanceId();
+ }
+
+ /**
+ * Set the targetRoleEligibilityScheduleInstanceId property: The role eligibility schedule instance id being
+ * updated.
+ *
+ * @param targetRoleEligibilityScheduleInstanceId the targetRoleEligibilityScheduleInstanceId value to set.
+ * @return the RoleEligibilityScheduleRequestInner object itself.
+ */
+ public RoleEligibilityScheduleRequestInner withTargetRoleEligibilityScheduleInstanceId(
+ String targetRoleEligibilityScheduleInstanceId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleEligibilityScheduleRequestProperties();
+ }
+ this.innerProperties().withTargetRoleEligibilityScheduleInstanceId(targetRoleEligibilityScheduleInstanceId);
+ return this;
+ }
+
+ /**
+ * Get the justification property: Justification for the role eligibility.
+ *
+ * @return the justification value.
+ */
+ public String justification() {
+ return this.innerProperties() == null ? null : this.innerProperties().justification();
+ }
+
+ /**
+ * Set the justification property: Justification for the role eligibility.
+ *
+ * @param justification the justification value to set.
+ * @return the RoleEligibilityScheduleRequestInner object itself.
+ */
+ public RoleEligibilityScheduleRequestInner withJustification(String justification) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleEligibilityScheduleRequestProperties();
+ }
+ this.innerProperties().withJustification(justification);
+ return this;
+ }
+
+ /**
+ * Get the ticketInfo property: Ticket Info of the role eligibility.
+ *
+ * @return the ticketInfo value.
+ */
+ public RoleEligibilityScheduleRequestPropertiesTicketInfo ticketInfo() {
+ return this.innerProperties() == null ? null : this.innerProperties().ticketInfo();
+ }
+
+ /**
+ * Set the ticketInfo property: Ticket Info of the role eligibility.
+ *
+ * @param ticketInfo the ticketInfo value to set.
+ * @return the RoleEligibilityScheduleRequestInner object itself.
+ */
+ public RoleEligibilityScheduleRequestInner withTicketInfo(
+ RoleEligibilityScheduleRequestPropertiesTicketInfo ticketInfo) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleEligibilityScheduleRequestProperties();
+ }
+ this.innerProperties().withTicketInfo(ticketInfo);
+ return this;
+ }
+
+ /**
+ * Get the condition property: The conditions on the role assignment. This limits the resources it can be assigned
+ * to. e.g.: @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName]
+ * StringEqualsIgnoreCase 'foo_storage_container'.
+ *
+ * @return the condition value.
+ */
+ public String condition() {
+ return this.innerProperties() == null ? null : this.innerProperties().condition();
+ }
+
+ /**
+ * Set the condition property: The conditions on the role assignment. This limits the resources it can be assigned
+ * to. e.g.: @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName]
+ * StringEqualsIgnoreCase 'foo_storage_container'.
+ *
+ * @param condition the condition value to set.
+ * @return the RoleEligibilityScheduleRequestInner object itself.
+ */
+ public RoleEligibilityScheduleRequestInner withCondition(String condition) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleEligibilityScheduleRequestProperties();
+ }
+ this.innerProperties().withCondition(condition);
+ return this;
+ }
+
+ /**
+ * Get the conditionVersion property: Version of the condition. Currently accepted value is '2.0'.
+ *
+ * @return the conditionVersion value.
+ */
+ public String conditionVersion() {
+ return this.innerProperties() == null ? null : this.innerProperties().conditionVersion();
+ }
+
+ /**
+ * Set the conditionVersion property: Version of the condition. Currently accepted value is '2.0'.
+ *
+ * @param conditionVersion the conditionVersion value to set.
+ * @return the RoleEligibilityScheduleRequestInner object itself.
+ */
+ public RoleEligibilityScheduleRequestInner withConditionVersion(String conditionVersion) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleEligibilityScheduleRequestProperties();
+ }
+ this.innerProperties().withConditionVersion(conditionVersion);
+ return this;
+ }
+
+ /**
+ * Get the createdOn property: DateTime when role eligibility schedule request was created.
+ *
+ * @return the createdOn value.
+ */
+ public OffsetDateTime createdOn() {
+ return this.innerProperties() == null ? null : this.innerProperties().createdOn();
+ }
+
+ /**
+ * Get the requestorId property: Id of the user who created this request.
+ *
+ * @return the requestorId value.
+ */
+ public String requestorId() {
+ return this.innerProperties() == null ? null : this.innerProperties().requestorId();
+ }
+
+ /**
+ * Get the expandedProperties property: Additional properties of principal, scope and role definition.
+ *
+ * @return the expandedProperties value.
+ */
+ public ExpandedProperties expandedProperties() {
+ return this.innerProperties() == null ? null : this.innerProperties().expandedProperties();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleEligibilityScheduleRequestProperties.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleEligibilityScheduleRequestProperties.java
new file mode 100644
index 0000000000000..2f1486a355951
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleEligibilityScheduleRequestProperties.java
@@ -0,0 +1,442 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.authorization.generated.models.ExpandedProperties;
+import com.azure.resourcemanager.authorization.generated.models.PrincipalType;
+import com.azure.resourcemanager.authorization.generated.models.RequestType;
+import com.azure.resourcemanager.authorization.generated.models.RoleEligibilityScheduleRequestPropertiesScheduleInfo;
+import com.azure.resourcemanager.authorization.generated.models.RoleEligibilityScheduleRequestPropertiesTicketInfo;
+import com.azure.resourcemanager.authorization.generated.models.Status;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** Role eligibility schedule request properties with scope. */
+@Fluent
+public final class RoleEligibilityScheduleRequestProperties {
+ /*
+ * The role eligibility schedule request scope.
+ */
+ @JsonProperty(value = "scope", access = JsonProperty.Access.WRITE_ONLY)
+ private String scope;
+
+ /*
+ * The role definition ID.
+ */
+ @JsonProperty(value = "roleDefinitionId", required = true)
+ private String roleDefinitionId;
+
+ /*
+ * The principal ID.
+ */
+ @JsonProperty(value = "principalId", required = true)
+ private String principalId;
+
+ /*
+ * The principal type of the assigned principal ID.
+ */
+ @JsonProperty(value = "principalType", access = JsonProperty.Access.WRITE_ONLY)
+ private PrincipalType principalType;
+
+ /*
+ * The type of the role assignment schedule request. Eg: SelfActivate,
+ * AdminAssign etc
+ */
+ @JsonProperty(value = "requestType", required = true)
+ private RequestType requestType;
+
+ /*
+ * The status of the role eligibility schedule request.
+ */
+ @JsonProperty(value = "status", access = JsonProperty.Access.WRITE_ONLY)
+ private Status status;
+
+ /*
+ * The approvalId of the role eligibility schedule request.
+ */
+ @JsonProperty(value = "approvalId", access = JsonProperty.Access.WRITE_ONLY)
+ private String approvalId;
+
+ /*
+ * Schedule info of the role eligibility schedule
+ */
+ @JsonProperty(value = "scheduleInfo")
+ private RoleEligibilityScheduleRequestPropertiesScheduleInfo scheduleInfo;
+
+ /*
+ * The resultant role eligibility schedule id or the role eligibility
+ * schedule id being updated
+ */
+ @JsonProperty(value = "targetRoleEligibilityScheduleId")
+ private String targetRoleEligibilityScheduleId;
+
+ /*
+ * The role eligibility schedule instance id being updated
+ */
+ @JsonProperty(value = "targetRoleEligibilityScheduleInstanceId")
+ private String targetRoleEligibilityScheduleInstanceId;
+
+ /*
+ * Justification for the role eligibility
+ */
+ @JsonProperty(value = "justification")
+ private String justification;
+
+ /*
+ * Ticket Info of the role eligibility
+ */
+ @JsonProperty(value = "ticketInfo")
+ private RoleEligibilityScheduleRequestPropertiesTicketInfo ticketInfo;
+
+ /*
+ * The conditions on the role assignment. This limits the resources it can
+ * be assigned to. e.g.:
+ * @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName]
+ * StringEqualsIgnoreCase 'foo_storage_container'
+ */
+ @JsonProperty(value = "condition")
+ private String condition;
+
+ /*
+ * Version of the condition. Currently accepted value is '2.0'
+ */
+ @JsonProperty(value = "conditionVersion")
+ private String conditionVersion;
+
+ /*
+ * DateTime when role eligibility schedule request was created
+ */
+ @JsonProperty(value = "createdOn", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime createdOn;
+
+ /*
+ * Id of the user who created this request
+ */
+ @JsonProperty(value = "requestorId", access = JsonProperty.Access.WRITE_ONLY)
+ private String requestorId;
+
+ /*
+ * Additional properties of principal, scope and role definition
+ */
+ @JsonProperty(value = "expandedProperties", access = JsonProperty.Access.WRITE_ONLY)
+ private ExpandedProperties expandedProperties;
+
+ /**
+ * Get the scope property: The role eligibility schedule request scope.
+ *
+ * @return the scope value.
+ */
+ public String scope() {
+ return this.scope;
+ }
+
+ /**
+ * Get the roleDefinitionId property: The role definition ID.
+ *
+ * @return the roleDefinitionId value.
+ */
+ public String roleDefinitionId() {
+ return this.roleDefinitionId;
+ }
+
+ /**
+ * Set the roleDefinitionId property: The role definition ID.
+ *
+ * @param roleDefinitionId the roleDefinitionId value to set.
+ * @return the RoleEligibilityScheduleRequestProperties object itself.
+ */
+ public RoleEligibilityScheduleRequestProperties withRoleDefinitionId(String roleDefinitionId) {
+ this.roleDefinitionId = roleDefinitionId;
+ return this;
+ }
+
+ /**
+ * Get the principalId property: The principal ID.
+ *
+ * @return the principalId value.
+ */
+ public String principalId() {
+ return this.principalId;
+ }
+
+ /**
+ * Set the principalId property: The principal ID.
+ *
+ * @param principalId the principalId value to set.
+ * @return the RoleEligibilityScheduleRequestProperties object itself.
+ */
+ public RoleEligibilityScheduleRequestProperties withPrincipalId(String principalId) {
+ this.principalId = principalId;
+ return this;
+ }
+
+ /**
+ * Get the principalType property: The principal type of the assigned principal ID.
+ *
+ * @return the principalType value.
+ */
+ public PrincipalType principalType() {
+ return this.principalType;
+ }
+
+ /**
+ * Get the requestType property: The type of the role assignment schedule request. Eg: SelfActivate, AdminAssign
+ * etc.
+ *
+ * @return the requestType value.
+ */
+ public RequestType requestType() {
+ return this.requestType;
+ }
+
+ /**
+ * Set the requestType property: The type of the role assignment schedule request. Eg: SelfActivate, AdminAssign
+ * etc.
+ *
+ * @param requestType the requestType value to set.
+ * @return the RoleEligibilityScheduleRequestProperties object itself.
+ */
+ public RoleEligibilityScheduleRequestProperties withRequestType(RequestType requestType) {
+ this.requestType = requestType;
+ return this;
+ }
+
+ /**
+ * Get the status property: The status of the role eligibility schedule request.
+ *
+ * @return the status value.
+ */
+ public Status status() {
+ return this.status;
+ }
+
+ /**
+ * Get the approvalId property: The approvalId of the role eligibility schedule request.
+ *
+ * @return the approvalId value.
+ */
+ public String approvalId() {
+ return this.approvalId;
+ }
+
+ /**
+ * Get the scheduleInfo property: Schedule info of the role eligibility schedule.
+ *
+ * @return the scheduleInfo value.
+ */
+ public RoleEligibilityScheduleRequestPropertiesScheduleInfo scheduleInfo() {
+ return this.scheduleInfo;
+ }
+
+ /**
+ * Set the scheduleInfo property: Schedule info of the role eligibility schedule.
+ *
+ * @param scheduleInfo the scheduleInfo value to set.
+ * @return the RoleEligibilityScheduleRequestProperties object itself.
+ */
+ public RoleEligibilityScheduleRequestProperties withScheduleInfo(
+ RoleEligibilityScheduleRequestPropertiesScheduleInfo scheduleInfo) {
+ this.scheduleInfo = scheduleInfo;
+ return this;
+ }
+
+ /**
+ * Get the targetRoleEligibilityScheduleId property: The resultant role eligibility schedule id or the role
+ * eligibility schedule id being updated.
+ *
+ * @return the targetRoleEligibilityScheduleId value.
+ */
+ public String targetRoleEligibilityScheduleId() {
+ return this.targetRoleEligibilityScheduleId;
+ }
+
+ /**
+ * Set the targetRoleEligibilityScheduleId property: The resultant role eligibility schedule id or the role
+ * eligibility schedule id being updated.
+ *
+ * @param targetRoleEligibilityScheduleId the targetRoleEligibilityScheduleId value to set.
+ * @return the RoleEligibilityScheduleRequestProperties object itself.
+ */
+ public RoleEligibilityScheduleRequestProperties withTargetRoleEligibilityScheduleId(
+ String targetRoleEligibilityScheduleId) {
+ this.targetRoleEligibilityScheduleId = targetRoleEligibilityScheduleId;
+ return this;
+ }
+
+ /**
+ * Get the targetRoleEligibilityScheduleInstanceId property: The role eligibility schedule instance id being
+ * updated.
+ *
+ * @return the targetRoleEligibilityScheduleInstanceId value.
+ */
+ public String targetRoleEligibilityScheduleInstanceId() {
+ return this.targetRoleEligibilityScheduleInstanceId;
+ }
+
+ /**
+ * Set the targetRoleEligibilityScheduleInstanceId property: The role eligibility schedule instance id being
+ * updated.
+ *
+ * @param targetRoleEligibilityScheduleInstanceId the targetRoleEligibilityScheduleInstanceId value to set.
+ * @return the RoleEligibilityScheduleRequestProperties object itself.
+ */
+ public RoleEligibilityScheduleRequestProperties withTargetRoleEligibilityScheduleInstanceId(
+ String targetRoleEligibilityScheduleInstanceId) {
+ this.targetRoleEligibilityScheduleInstanceId = targetRoleEligibilityScheduleInstanceId;
+ return this;
+ }
+
+ /**
+ * Get the justification property: Justification for the role eligibility.
+ *
+ * @return the justification value.
+ */
+ public String justification() {
+ return this.justification;
+ }
+
+ /**
+ * Set the justification property: Justification for the role eligibility.
+ *
+ * @param justification the justification value to set.
+ * @return the RoleEligibilityScheduleRequestProperties object itself.
+ */
+ public RoleEligibilityScheduleRequestProperties withJustification(String justification) {
+ this.justification = justification;
+ return this;
+ }
+
+ /**
+ * Get the ticketInfo property: Ticket Info of the role eligibility.
+ *
+ * @return the ticketInfo value.
+ */
+ public RoleEligibilityScheduleRequestPropertiesTicketInfo ticketInfo() {
+ return this.ticketInfo;
+ }
+
+ /**
+ * Set the ticketInfo property: Ticket Info of the role eligibility.
+ *
+ * @param ticketInfo the ticketInfo value to set.
+ * @return the RoleEligibilityScheduleRequestProperties object itself.
+ */
+ public RoleEligibilityScheduleRequestProperties withTicketInfo(
+ RoleEligibilityScheduleRequestPropertiesTicketInfo ticketInfo) {
+ this.ticketInfo = ticketInfo;
+ return this;
+ }
+
+ /**
+ * Get the condition property: The conditions on the role assignment. This limits the resources it can be assigned
+ * to. e.g.: @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName]
+ * StringEqualsIgnoreCase 'foo_storage_container'.
+ *
+ * @return the condition value.
+ */
+ public String condition() {
+ return this.condition;
+ }
+
+ /**
+ * Set the condition property: The conditions on the role assignment. This limits the resources it can be assigned
+ * to. e.g.: @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName]
+ * StringEqualsIgnoreCase 'foo_storage_container'.
+ *
+ * @param condition the condition value to set.
+ * @return the RoleEligibilityScheduleRequestProperties object itself.
+ */
+ public RoleEligibilityScheduleRequestProperties withCondition(String condition) {
+ this.condition = condition;
+ return this;
+ }
+
+ /**
+ * Get the conditionVersion property: Version of the condition. Currently accepted value is '2.0'.
+ *
+ * @return the conditionVersion value.
+ */
+ public String conditionVersion() {
+ return this.conditionVersion;
+ }
+
+ /**
+ * Set the conditionVersion property: Version of the condition. Currently accepted value is '2.0'.
+ *
+ * @param conditionVersion the conditionVersion value to set.
+ * @return the RoleEligibilityScheduleRequestProperties object itself.
+ */
+ public RoleEligibilityScheduleRequestProperties withConditionVersion(String conditionVersion) {
+ this.conditionVersion = conditionVersion;
+ return this;
+ }
+
+ /**
+ * Get the createdOn property: DateTime when role eligibility schedule request was created.
+ *
+ * @return the createdOn value.
+ */
+ public OffsetDateTime createdOn() {
+ return this.createdOn;
+ }
+
+ /**
+ * Get the requestorId property: Id of the user who created this request.
+ *
+ * @return the requestorId value.
+ */
+ public String requestorId() {
+ return this.requestorId;
+ }
+
+ /**
+ * Get the expandedProperties property: Additional properties of principal, scope and role definition.
+ *
+ * @return the expandedProperties value.
+ */
+ public ExpandedProperties expandedProperties() {
+ return this.expandedProperties;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (roleDefinitionId() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property roleDefinitionId in model"
+ + " RoleEligibilityScheduleRequestProperties"));
+ }
+ if (principalId() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property principalId in model RoleEligibilityScheduleRequestProperties"));
+ }
+ if (requestType() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property requestType in model RoleEligibilityScheduleRequestProperties"));
+ }
+ if (scheduleInfo() != null) {
+ scheduleInfo().validate();
+ }
+ if (ticketInfo() != null) {
+ ticketInfo().validate();
+ }
+ if (expandedProperties() != null) {
+ expandedProperties().validate();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(RoleEligibilityScheduleRequestProperties.class);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleManagementPolicyAssignmentInner.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleManagementPolicyAssignmentInner.java
new file mode 100644
index 0000000000000..b7d64aa038ea3
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleManagementPolicyAssignmentInner.java
@@ -0,0 +1,162 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.authorization.generated.models.PolicyAssignmentProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Role management policy. */
+@Fluent
+public final class RoleManagementPolicyAssignmentInner {
+ /*
+ * The role management policy Id.
+ */
+ @JsonProperty(value = "id", access = JsonProperty.Access.WRITE_ONLY)
+ private String id;
+
+ /*
+ * The role management policy name.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /*
+ * The role management policy type.
+ */
+ @JsonProperty(value = "type", access = JsonProperty.Access.WRITE_ONLY)
+ private String type;
+
+ /*
+ * Role management policy properties.
+ */
+ @JsonProperty(value = "properties")
+ private RoleManagementPolicyAssignmentProperties innerProperties;
+
+ /**
+ * Get the id property: The role management policy Id.
+ *
+ * @return the id value.
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get the name property: The role management policy name.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the type property: The role management policy type.
+ *
+ * @return the type value.
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the innerProperties property: Role management policy properties.
+ *
+ * @return the innerProperties value.
+ */
+ private RoleManagementPolicyAssignmentProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the scope property: The role management policy scope.
+ *
+ * @return the scope value.
+ */
+ public String scope() {
+ return this.innerProperties() == null ? null : this.innerProperties().scope();
+ }
+
+ /**
+ * Set the scope property: The role management policy scope.
+ *
+ * @param scope the scope value to set.
+ * @return the RoleManagementPolicyAssignmentInner object itself.
+ */
+ public RoleManagementPolicyAssignmentInner withScope(String scope) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleManagementPolicyAssignmentProperties();
+ }
+ this.innerProperties().withScope(scope);
+ return this;
+ }
+
+ /**
+ * Get the roleDefinitionId property: The role definition of management policy assignment.
+ *
+ * @return the roleDefinitionId value.
+ */
+ public String roleDefinitionId() {
+ return this.innerProperties() == null ? null : this.innerProperties().roleDefinitionId();
+ }
+
+ /**
+ * Set the roleDefinitionId property: The role definition of management policy assignment.
+ *
+ * @param roleDefinitionId the roleDefinitionId value to set.
+ * @return the RoleManagementPolicyAssignmentInner object itself.
+ */
+ public RoleManagementPolicyAssignmentInner withRoleDefinitionId(String roleDefinitionId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleManagementPolicyAssignmentProperties();
+ }
+ this.innerProperties().withRoleDefinitionId(roleDefinitionId);
+ return this;
+ }
+
+ /**
+ * Get the policyId property: The policy id role management policy assignment.
+ *
+ * @return the policyId value.
+ */
+ public String policyId() {
+ return this.innerProperties() == null ? null : this.innerProperties().policyId();
+ }
+
+ /**
+ * Set the policyId property: The policy id role management policy assignment.
+ *
+ * @param policyId the policyId value to set.
+ * @return the RoleManagementPolicyAssignmentInner object itself.
+ */
+ public RoleManagementPolicyAssignmentInner withPolicyId(String policyId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleManagementPolicyAssignmentProperties();
+ }
+ this.innerProperties().withPolicyId(policyId);
+ return this;
+ }
+
+ /**
+ * Get the policyAssignmentProperties property: Additional properties of scope, role definition and policy.
+ *
+ * @return the policyAssignmentProperties value.
+ */
+ public PolicyAssignmentProperties policyAssignmentProperties() {
+ return this.innerProperties() == null ? null : this.innerProperties().policyAssignmentProperties();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleManagementPolicyAssignmentProperties.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleManagementPolicyAssignmentProperties.java
new file mode 100644
index 0000000000000..7421b67d24f02
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleManagementPolicyAssignmentProperties.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.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.authorization.generated.models.PolicyAssignmentProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Role management policy assignment properties with scope. */
+@Fluent
+public final class RoleManagementPolicyAssignmentProperties {
+ /*
+ * The role management policy scope.
+ */
+ @JsonProperty(value = "scope")
+ private String scope;
+
+ /*
+ * The role definition of management policy assignment.
+ */
+ @JsonProperty(value = "roleDefinitionId")
+ private String roleDefinitionId;
+
+ /*
+ * The policy id role management policy assignment.
+ */
+ @JsonProperty(value = "policyId")
+ private String policyId;
+
+ /*
+ * Additional properties of scope, role definition and policy
+ */
+ @JsonProperty(value = "policyAssignmentProperties", access = JsonProperty.Access.WRITE_ONLY)
+ private PolicyAssignmentProperties policyAssignmentProperties;
+
+ /**
+ * Get the scope property: The role management policy scope.
+ *
+ * @return the scope value.
+ */
+ public String scope() {
+ return this.scope;
+ }
+
+ /**
+ * Set the scope property: The role management policy scope.
+ *
+ * @param scope the scope value to set.
+ * @return the RoleManagementPolicyAssignmentProperties object itself.
+ */
+ public RoleManagementPolicyAssignmentProperties withScope(String scope) {
+ this.scope = scope;
+ return this;
+ }
+
+ /**
+ * Get the roleDefinitionId property: The role definition of management policy assignment.
+ *
+ * @return the roleDefinitionId value.
+ */
+ public String roleDefinitionId() {
+ return this.roleDefinitionId;
+ }
+
+ /**
+ * Set the roleDefinitionId property: The role definition of management policy assignment.
+ *
+ * @param roleDefinitionId the roleDefinitionId value to set.
+ * @return the RoleManagementPolicyAssignmentProperties object itself.
+ */
+ public RoleManagementPolicyAssignmentProperties withRoleDefinitionId(String roleDefinitionId) {
+ this.roleDefinitionId = roleDefinitionId;
+ return this;
+ }
+
+ /**
+ * Get the policyId property: The policy id role management policy assignment.
+ *
+ * @return the policyId value.
+ */
+ public String policyId() {
+ return this.policyId;
+ }
+
+ /**
+ * Set the policyId property: The policy id role management policy assignment.
+ *
+ * @param policyId the policyId value to set.
+ * @return the RoleManagementPolicyAssignmentProperties object itself.
+ */
+ public RoleManagementPolicyAssignmentProperties withPolicyId(String policyId) {
+ this.policyId = policyId;
+ return this;
+ }
+
+ /**
+ * Get the policyAssignmentProperties property: Additional properties of scope, role definition and policy.
+ *
+ * @return the policyAssignmentProperties value.
+ */
+ public PolicyAssignmentProperties policyAssignmentProperties() {
+ return this.policyAssignmentProperties;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (policyAssignmentProperties() != null) {
+ policyAssignmentProperties().validate();
+ }
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleManagementPolicyInner.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleManagementPolicyInner.java
new file mode 100644
index 0000000000000..37992d30a3f7d
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleManagementPolicyInner.java
@@ -0,0 +1,239 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.authorization.generated.models.PolicyProperties;
+import com.azure.resourcemanager.authorization.generated.models.Principal;
+import com.azure.resourcemanager.authorization.generated.models.RoleManagementPolicyRule;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+import java.util.List;
+
+/** Role management policy. */
+@Fluent
+public final class RoleManagementPolicyInner {
+ /*
+ * The role management policy Id.
+ */
+ @JsonProperty(value = "id", access = JsonProperty.Access.WRITE_ONLY)
+ private String id;
+
+ /*
+ * The role management policy name.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /*
+ * The role management policy type.
+ */
+ @JsonProperty(value = "type", access = JsonProperty.Access.WRITE_ONLY)
+ private String type;
+
+ /*
+ * Role management policy properties.
+ */
+ @JsonProperty(value = "properties")
+ private RoleManagementPolicyProperties innerProperties;
+
+ /**
+ * Get the id property: The role management policy Id.
+ *
+ * @return the id value.
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get the name property: The role management policy name.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the type property: The role management policy type.
+ *
+ * @return the type value.
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the innerProperties property: Role management policy properties.
+ *
+ * @return the innerProperties value.
+ */
+ private RoleManagementPolicyProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the scope property: The role management policy scope.
+ *
+ * @return the scope value.
+ */
+ public String scope() {
+ return this.innerProperties() == null ? null : this.innerProperties().scope();
+ }
+
+ /**
+ * Set the scope property: The role management policy scope.
+ *
+ * @param scope the scope value to set.
+ * @return the RoleManagementPolicyInner object itself.
+ */
+ public RoleManagementPolicyInner withScope(String scope) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleManagementPolicyProperties();
+ }
+ this.innerProperties().withScope(scope);
+ return this;
+ }
+
+ /**
+ * Get the displayName property: The role management policy display name.
+ *
+ * @return the displayName value.
+ */
+ public String displayName() {
+ return this.innerProperties() == null ? null : this.innerProperties().displayName();
+ }
+
+ /**
+ * Set the displayName property: The role management policy display name.
+ *
+ * @param displayName the displayName value to set.
+ * @return the RoleManagementPolicyInner object itself.
+ */
+ public RoleManagementPolicyInner withDisplayName(String displayName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleManagementPolicyProperties();
+ }
+ this.innerProperties().withDisplayName(displayName);
+ return this;
+ }
+
+ /**
+ * Get the description property: The role management policy description.
+ *
+ * @return the description value.
+ */
+ public String description() {
+ return this.innerProperties() == null ? null : this.innerProperties().description();
+ }
+
+ /**
+ * Set the description property: The role management policy description.
+ *
+ * @param description the description value to set.
+ * @return the RoleManagementPolicyInner object itself.
+ */
+ public RoleManagementPolicyInner withDescription(String description) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleManagementPolicyProperties();
+ }
+ this.innerProperties().withDescription(description);
+ return this;
+ }
+
+ /**
+ * Get the isOrganizationDefault property: The role management policy is default policy.
+ *
+ * @return the isOrganizationDefault value.
+ */
+ public Boolean isOrganizationDefault() {
+ return this.innerProperties() == null ? null : this.innerProperties().isOrganizationDefault();
+ }
+
+ /**
+ * Set the isOrganizationDefault property: The role management policy is default policy.
+ *
+ * @param isOrganizationDefault the isOrganizationDefault value to set.
+ * @return the RoleManagementPolicyInner object itself.
+ */
+ public RoleManagementPolicyInner withIsOrganizationDefault(Boolean isOrganizationDefault) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleManagementPolicyProperties();
+ }
+ this.innerProperties().withIsOrganizationDefault(isOrganizationDefault);
+ return this;
+ }
+
+ /**
+ * Get the lastModifiedBy property: The name of the entity last modified it.
+ *
+ * @return the lastModifiedBy value.
+ */
+ public Principal lastModifiedBy() {
+ return this.innerProperties() == null ? null : this.innerProperties().lastModifiedBy();
+ }
+
+ /**
+ * Get the lastModifiedDateTime property: The last modified date time.
+ *
+ * @return the lastModifiedDateTime value.
+ */
+ public OffsetDateTime lastModifiedDateTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().lastModifiedDateTime();
+ }
+
+ /**
+ * Get the rules property: The rule applied to the policy.
+ *
+ * @return the rules value.
+ */
+ public List rules() {
+ return this.innerProperties() == null ? null : this.innerProperties().rules();
+ }
+
+ /**
+ * Set the rules property: The rule applied to the policy.
+ *
+ * @param rules the rules value to set.
+ * @return the RoleManagementPolicyInner object itself.
+ */
+ public RoleManagementPolicyInner withRules(List rules) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new RoleManagementPolicyProperties();
+ }
+ this.innerProperties().withRules(rules);
+ return this;
+ }
+
+ /**
+ * Get the effectiveRules property: The readonly computed rule applied to the policy.
+ *
+ * @return the effectiveRules value.
+ */
+ public List effectiveRules() {
+ return this.innerProperties() == null ? null : this.innerProperties().effectiveRules();
+ }
+
+ /**
+ * Get the policyProperties property: Additional properties of scope.
+ *
+ * @return the policyProperties value.
+ */
+ public PolicyProperties policyProperties() {
+ return this.innerProperties() == null ? null : this.innerProperties().policyProperties();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleManagementPolicyProperties.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleManagementPolicyProperties.java
new file mode 100644
index 0000000000000..ed2c21503f2d5
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/RoleManagementPolicyProperties.java
@@ -0,0 +1,227 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.authorization.generated.models.PolicyProperties;
+import com.azure.resourcemanager.authorization.generated.models.Principal;
+import com.azure.resourcemanager.authorization.generated.models.RoleManagementPolicyRule;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+import java.util.List;
+
+/** Role management policy properties with scope. */
+@Fluent
+public final class RoleManagementPolicyProperties {
+ /*
+ * The role management policy scope.
+ */
+ @JsonProperty(value = "scope")
+ private String scope;
+
+ /*
+ * The role management policy display name.
+ */
+ @JsonProperty(value = "displayName")
+ private String displayName;
+
+ /*
+ * The role management policy description.
+ */
+ @JsonProperty(value = "description")
+ private String description;
+
+ /*
+ * The role management policy is default policy.
+ */
+ @JsonProperty(value = "isOrganizationDefault")
+ private Boolean isOrganizationDefault;
+
+ /*
+ * The name of the entity last modified it
+ */
+ @JsonProperty(value = "lastModifiedBy", access = JsonProperty.Access.WRITE_ONLY)
+ private Principal lastModifiedBy;
+
+ /*
+ * The last modified date time.
+ */
+ @JsonProperty(value = "lastModifiedDateTime", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime lastModifiedDateTime;
+
+ /*
+ * The rule applied to the policy.
+ */
+ @JsonProperty(value = "rules")
+ private List rules;
+
+ /*
+ * The readonly computed rule applied to the policy.
+ */
+ @JsonProperty(value = "effectiveRules", access = JsonProperty.Access.WRITE_ONLY)
+ private List effectiveRules;
+
+ /*
+ * Additional properties of scope
+ */
+ @JsonProperty(value = "policyProperties", access = JsonProperty.Access.WRITE_ONLY)
+ private PolicyProperties policyProperties;
+
+ /**
+ * Get the scope property: The role management policy scope.
+ *
+ * @return the scope value.
+ */
+ public String scope() {
+ return this.scope;
+ }
+
+ /**
+ * Set the scope property: The role management policy scope.
+ *
+ * @param scope the scope value to set.
+ * @return the RoleManagementPolicyProperties object itself.
+ */
+ public RoleManagementPolicyProperties withScope(String scope) {
+ this.scope = scope;
+ return this;
+ }
+
+ /**
+ * Get the displayName property: The role management policy display name.
+ *
+ * @return the displayName value.
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Set the displayName property: The role management policy display name.
+ *
+ * @param displayName the displayName value to set.
+ * @return the RoleManagementPolicyProperties object itself.
+ */
+ public RoleManagementPolicyProperties withDisplayName(String displayName) {
+ this.displayName = displayName;
+ return this;
+ }
+
+ /**
+ * Get the description property: The role management policy description.
+ *
+ * @return the description value.
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set the description property: The role management policy description.
+ *
+ * @param description the description value to set.
+ * @return the RoleManagementPolicyProperties object itself.
+ */
+ public RoleManagementPolicyProperties withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+ /**
+ * Get the isOrganizationDefault property: The role management policy is default policy.
+ *
+ * @return the isOrganizationDefault value.
+ */
+ public Boolean isOrganizationDefault() {
+ return this.isOrganizationDefault;
+ }
+
+ /**
+ * Set the isOrganizationDefault property: The role management policy is default policy.
+ *
+ * @param isOrganizationDefault the isOrganizationDefault value to set.
+ * @return the RoleManagementPolicyProperties object itself.
+ */
+ public RoleManagementPolicyProperties withIsOrganizationDefault(Boolean isOrganizationDefault) {
+ this.isOrganizationDefault = isOrganizationDefault;
+ return this;
+ }
+
+ /**
+ * Get the lastModifiedBy property: The name of the entity last modified it.
+ *
+ * @return the lastModifiedBy value.
+ */
+ public Principal lastModifiedBy() {
+ return this.lastModifiedBy;
+ }
+
+ /**
+ * Get the lastModifiedDateTime property: The last modified date time.
+ *
+ * @return the lastModifiedDateTime value.
+ */
+ public OffsetDateTime lastModifiedDateTime() {
+ return this.lastModifiedDateTime;
+ }
+
+ /**
+ * Get the rules property: The rule applied to the policy.
+ *
+ * @return the rules value.
+ */
+ public List rules() {
+ return this.rules;
+ }
+
+ /**
+ * Set the rules property: The rule applied to the policy.
+ *
+ * @param rules the rules value to set.
+ * @return the RoleManagementPolicyProperties object itself.
+ */
+ public RoleManagementPolicyProperties withRules(List rules) {
+ this.rules = rules;
+ return this;
+ }
+
+ /**
+ * Get the effectiveRules property: The readonly computed rule applied to the policy.
+ *
+ * @return the effectiveRules value.
+ */
+ public List effectiveRules() {
+ return this.effectiveRules;
+ }
+
+ /**
+ * Get the policyProperties property: Additional properties of scope.
+ *
+ * @return the policyProperties value.
+ */
+ public PolicyProperties policyProperties() {
+ return this.policyProperties;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (lastModifiedBy() != null) {
+ lastModifiedBy().validate();
+ }
+ if (rules() != null) {
+ rules().forEach(e -> e.validate());
+ }
+ if (effectiveRules() != null) {
+ effectiveRules().forEach(e -> e.validate());
+ }
+ if (policyProperties() != null) {
+ policyProperties().validate();
+ }
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/ValidationResponseInner.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/ValidationResponseInner.java
new file mode 100644
index 0000000000000..cd091e90b89c4
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/ValidationResponseInner.java
@@ -0,0 +1,65 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.resourcemanager.authorization.generated.models.ValidationResponseErrorInfo;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Validation response. */
+@Fluent
+public final class ValidationResponseInner {
+ /*
+ * Whether or not validation succeeded
+ */
+ @JsonProperty(value = "isValid", access = JsonProperty.Access.WRITE_ONLY)
+ private Boolean isValid;
+
+ /*
+ * Failed validation result details
+ */
+ @JsonProperty(value = "errorInfo")
+ private ValidationResponseErrorInfo errorInfo;
+
+ /**
+ * Get the isValid property: Whether or not validation succeeded.
+ *
+ * @return the isValid value.
+ */
+ public Boolean isValid() {
+ return this.isValid;
+ }
+
+ /**
+ * Get the errorInfo property: Failed validation result details.
+ *
+ * @return the errorInfo value.
+ */
+ public ValidationResponseErrorInfo errorInfo() {
+ return this.errorInfo;
+ }
+
+ /**
+ * Set the errorInfo property: Failed validation result details.
+ *
+ * @param errorInfo the errorInfo value to set.
+ * @return the ValidationResponseInner object itself.
+ */
+ public ValidationResponseInner withErrorInfo(ValidationResponseErrorInfo errorInfo) {
+ this.errorInfo = errorInfo;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (errorInfo() != null) {
+ errorInfo().validate();
+ }
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/package-info.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/package-info.java
new file mode 100644
index 0000000000000..3d9e7ab600b84
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/package-info.java
@@ -0,0 +1,10 @@
+// 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 AuthorizationManagementClient. Role based access control provides you a
+ * way to apply granular level policy administration down to individual resources or resource groups. These calls handle
+ * provider operations.
+ */
+package com.azure.resourcemanager.authorization.generated.fluent.models;
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/package-info.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/package-info.java
new file mode 100644
index 0000000000000..ef45bb941ea75
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/package-info.java
@@ -0,0 +1,10 @@
+// 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 AuthorizationManagementClient. Role based access control provides you a
+ * way to apply granular level policy administration down to individual resources or resource groups. These calls handle
+ * provider operations.
+ */
+package com.azure.resourcemanager.authorization.generated.fluent;
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/implementation/AccessReviewDecisionImpl.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/implementation/AccessReviewDecisionImpl.java
new file mode 100644
index 0000000000000..852ff4a78e0b3
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/implementation/AccessReviewDecisionImpl.java
@@ -0,0 +1,118 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.implementation;
+
+import com.azure.resourcemanager.authorization.generated.fluent.models.AccessReviewDecisionInner;
+import com.azure.resourcemanager.authorization.generated.models.AccessRecommendationType;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewActorIdentityType;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewApplyResult;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewDecision;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewResult;
+import java.time.OffsetDateTime;
+
+public final class AccessReviewDecisionImpl implements AccessReviewDecision {
+ private AccessReviewDecisionInner innerObject;
+
+ private final com.azure.resourcemanager.authorization.generated.AuthorizationManager serviceManager;
+
+ AccessReviewDecisionImpl(
+ AccessReviewDecisionInner innerObject,
+ com.azure.resourcemanager.authorization.generated.AuthorizationManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ }
+
+ public String id() {
+ return this.innerModel().id();
+ }
+
+ public String name() {
+ return this.innerModel().name();
+ }
+
+ public String type() {
+ return this.innerModel().type();
+ }
+
+ public AccessRecommendationType recommendation() {
+ return this.innerModel().recommendation();
+ }
+
+ public AccessReviewResult decision() {
+ return this.innerModel().decision();
+ }
+
+ public String justification() {
+ return this.innerModel().justification();
+ }
+
+ public OffsetDateTime reviewedDateTime() {
+ return this.innerModel().reviewedDateTime();
+ }
+
+ public AccessReviewApplyResult applyResult() {
+ return this.innerModel().applyResult();
+ }
+
+ public OffsetDateTime appliedDateTime() {
+ return this.innerModel().appliedDateTime();
+ }
+
+ public String idPropertiesId() {
+ return this.innerModel().idPropertiesId();
+ }
+
+ public String displayName() {
+ return this.innerModel().displayName();
+ }
+
+ public String idResourceId() {
+ return this.innerModel().idResourceId();
+ }
+
+ public String displayNameResourceDisplayName() {
+ return this.innerModel().displayNameResourceDisplayName();
+ }
+
+ public String principalId() {
+ return this.innerModel().principalId();
+ }
+
+ public AccessReviewActorIdentityType principalType() {
+ return this.innerModel().principalType();
+ }
+
+ public String principalName() {
+ return this.innerModel().principalName();
+ }
+
+ public String userPrincipalName() {
+ return this.innerModel().userPrincipalName();
+ }
+
+ public String principalIdAppliedByPrincipalId() {
+ return this.innerModel().principalIdAppliedByPrincipalId();
+ }
+
+ public AccessReviewActorIdentityType principalTypeAppliedByPrincipalType() {
+ return this.innerModel().principalTypeAppliedByPrincipalType();
+ }
+
+ public String principalNameAppliedByPrincipalName() {
+ return this.innerModel().principalNameAppliedByPrincipalName();
+ }
+
+ public String userPrincipalNameAppliedByUserPrincipalName() {
+ return this.innerModel().userPrincipalNameAppliedByUserPrincipalName();
+ }
+
+ public AccessReviewDecisionInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.authorization.generated.AuthorizationManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/implementation/AccessReviewDefaultSettingsImpl.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/implementation/AccessReviewDefaultSettingsImpl.java
new file mode 100644
index 0000000000000..c125a412d3247
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/implementation/AccessReviewDefaultSettingsImpl.java
@@ -0,0 +1,101 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.implementation;
+
+import com.azure.resourcemanager.authorization.generated.fluent.models.AccessReviewDefaultSettingsInner;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewDefaultSettings;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewRecurrencePatternType;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewRecurrenceRangeType;
+import com.azure.resourcemanager.authorization.generated.models.DefaultDecisionType;
+import java.time.OffsetDateTime;
+
+public final class AccessReviewDefaultSettingsImpl implements AccessReviewDefaultSettings {
+ private AccessReviewDefaultSettingsInner innerObject;
+
+ private final com.azure.resourcemanager.authorization.generated.AuthorizationManager serviceManager;
+
+ AccessReviewDefaultSettingsImpl(
+ AccessReviewDefaultSettingsInner innerObject,
+ com.azure.resourcemanager.authorization.generated.AuthorizationManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ }
+
+ public String id() {
+ return this.innerModel().id();
+ }
+
+ public String name() {
+ return this.innerModel().name();
+ }
+
+ public String type() {
+ return this.innerModel().type();
+ }
+
+ public Boolean mailNotificationsEnabled() {
+ return this.innerModel().mailNotificationsEnabled();
+ }
+
+ public Boolean reminderNotificationsEnabled() {
+ return this.innerModel().reminderNotificationsEnabled();
+ }
+
+ public Boolean defaultDecisionEnabled() {
+ return this.innerModel().defaultDecisionEnabled();
+ }
+
+ public Boolean justificationRequiredOnApproval() {
+ return this.innerModel().justificationRequiredOnApproval();
+ }
+
+ public DefaultDecisionType defaultDecision() {
+ return this.innerModel().defaultDecision();
+ }
+
+ public Boolean autoApplyDecisionsEnabled() {
+ return this.innerModel().autoApplyDecisionsEnabled();
+ }
+
+ public Boolean recommendationsEnabled() {
+ return this.innerModel().recommendationsEnabled();
+ }
+
+ public Integer instanceDurationInDays() {
+ return this.innerModel().instanceDurationInDays();
+ }
+
+ public AccessReviewRecurrencePatternType typePropertiesType() {
+ return this.innerModel().typePropertiesType();
+ }
+
+ public Integer interval() {
+ return this.innerModel().interval();
+ }
+
+ public AccessReviewRecurrenceRangeType typeRangeType() {
+ return this.innerModel().typeRangeType();
+ }
+
+ public Integer numberOfOccurrences() {
+ return this.innerModel().numberOfOccurrences();
+ }
+
+ public OffsetDateTime startDate() {
+ return this.innerModel().startDate();
+ }
+
+ public OffsetDateTime endDate() {
+ return this.innerModel().endDate();
+ }
+
+ public AccessReviewDefaultSettingsInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.authorization.generated.AuthorizationManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/implementation/AccessReviewDefaultSettingsOperationsClientImpl.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/implementation/AccessReviewDefaultSettingsOperationsClientImpl.java
new file mode 100644
index 0000000000000..2331a99900cb5
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/implementation/AccessReviewDefaultSettingsOperationsClientImpl.java
@@ -0,0 +1,332 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.implementation;
+
+import com.azure.core.annotation.BodyParam;
+import com.azure.core.annotation.ExpectedResponses;
+import com.azure.core.annotation.Get;
+import com.azure.core.annotation.HeaderParam;
+import com.azure.core.annotation.Headers;
+import com.azure.core.annotation.Host;
+import com.azure.core.annotation.HostParam;
+import com.azure.core.annotation.PathParam;
+import com.azure.core.annotation.Put;
+import com.azure.core.annotation.QueryParam;
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceInterface;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.annotation.UnexpectedResponseExceptionType;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.RestProxy;
+import com.azure.core.management.exception.ManagementException;
+import com.azure.core.util.Context;
+import com.azure.core.util.FluxUtil;
+import com.azure.resourcemanager.authorization.generated.fluent.AccessReviewDefaultSettingsOperationsClient;
+import com.azure.resourcemanager.authorization.generated.fluent.models.AccessReviewDefaultSettingsInner;
+import com.azure.resourcemanager.authorization.generated.fluent.models.AccessReviewScheduleSettings;
+import reactor.core.publisher.Mono;
+
+/**
+ * An instance of this class provides access to all the operations defined in
+ * AccessReviewDefaultSettingsOperationsClient.
+ */
+public final class AccessReviewDefaultSettingsOperationsClientImpl
+ implements AccessReviewDefaultSettingsOperationsClient {
+ /** The proxy service used to perform REST calls. */
+ private final AccessReviewDefaultSettingsOperationsService service;
+
+ /** The service client containing this operation class. */
+ private final AuthorizationManagementClientImpl client;
+
+ /**
+ * Initializes an instance of AccessReviewDefaultSettingsOperationsClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ AccessReviewDefaultSettingsOperationsClientImpl(AuthorizationManagementClientImpl client) {
+ this.service =
+ RestProxy
+ .create(
+ AccessReviewDefaultSettingsOperationsService.class,
+ client.getHttpPipeline(),
+ client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for AuthorizationManagementClientAccessReviewDefaultSettingsOperations to
+ * be used by the proxy service to perform REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "AuthorizationManagem")
+ private interface AccessReviewDefaultSettingsOperationsService {
+ @Headers({"Content-Type: application/json"})
+ @Get("/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/accessReviewScheduleSettings/default")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> get(
+ @HostParam("$host") String endpoint,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Put("/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/accessReviewScheduleSettings/default")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> put(
+ @HostParam("$host") String endpoint,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @BodyParam("application/json") AccessReviewScheduleSettings properties,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Get access review default settings for the subscription.
+ *
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return access review default settings for the subscription along with {@link Response} on successful completion
+ * of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync() {
+ 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."));
+ }
+ final String apiVersion = "2021-03-01-preview";
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .get(this.client.getEndpoint(), apiVersion, this.client.getSubscriptionId(), accept, context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Get access review default settings for the subscription.
+ *
+ * @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 access review default settings for the subscription along with {@link Response} on successful completion
+ * of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(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."));
+ }
+ final String apiVersion = "2021-03-01-preview";
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service.get(this.client.getEndpoint(), apiVersion, this.client.getSubscriptionId(), accept, context);
+ }
+
+ /**
+ * Get access review default settings for the subscription.
+ *
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return access review default settings for the subscription on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono getAsync() {
+ return getWithResponseAsync()
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Get access review default settings for the subscription.
+ *
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return access review default settings for the subscription.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public AccessReviewDefaultSettingsInner get() {
+ return getAsync().block();
+ }
+
+ /**
+ * Get access review default settings for the subscription.
+ *
+ * @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 access review default settings for the subscription along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response getWithResponse(Context context) {
+ return getWithResponseAsync(context).block();
+ }
+
+ /**
+ * Get access review default settings for the subscription.
+ *
+ * @param properties Access review schedule settings.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return access review default settings for the subscription along with {@link Response} on successful completion
+ * of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> putWithResponseAsync(
+ AccessReviewScheduleSettings properties) {
+ 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 (properties == null) {
+ return Mono.error(new IllegalArgumentException("Parameter properties is required and cannot be null."));
+ } else {
+ properties.validate();
+ }
+ final String apiVersion = "2021-03-01-preview";
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .put(
+ this.client.getEndpoint(),
+ apiVersion,
+ this.client.getSubscriptionId(),
+ properties,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Get access review default settings for the subscription.
+ *
+ * @param properties Access review schedule settings.
+ * @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 access review default settings for the subscription along with {@link Response} on successful completion
+ * of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> putWithResponseAsync(
+ AccessReviewScheduleSettings properties, 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 (properties == null) {
+ return Mono.error(new IllegalArgumentException("Parameter properties is required and cannot be null."));
+ } else {
+ properties.validate();
+ }
+ final String apiVersion = "2021-03-01-preview";
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .put(this.client.getEndpoint(), apiVersion, this.client.getSubscriptionId(), properties, accept, context);
+ }
+
+ /**
+ * Get access review default settings for the subscription.
+ *
+ * @param properties Access review schedule settings.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return access review default settings for the subscription on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono putAsync(AccessReviewScheduleSettings properties) {
+ return putWithResponseAsync(properties)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Get access review default settings for the subscription.
+ *
+ * @param properties Access review schedule settings.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return access review default settings for the subscription.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public AccessReviewDefaultSettingsInner put(AccessReviewScheduleSettings properties) {
+ return putAsync(properties).block();
+ }
+
+ /**
+ * Get access review default settings for the subscription.
+ *
+ * @param properties Access review schedule settings.
+ * @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 access review default settings for the subscription along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response putWithResponse(
+ AccessReviewScheduleSettings properties, Context context) {
+ return putWithResponseAsync(properties, context).block();
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/implementation/AccessReviewDefaultSettingsOperationsImpl.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/implementation/AccessReviewDefaultSettingsOperationsImpl.java
new file mode 100644
index 0000000000000..6db5ffb3ab00c
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/implementation/AccessReviewDefaultSettingsOperationsImpl.java
@@ -0,0 +1,83 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.implementation;
+
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.SimpleResponse;
+import com.azure.core.util.Context;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.authorization.generated.fluent.AccessReviewDefaultSettingsOperationsClient;
+import com.azure.resourcemanager.authorization.generated.fluent.models.AccessReviewDefaultSettingsInner;
+import com.azure.resourcemanager.authorization.generated.fluent.models.AccessReviewScheduleSettings;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewDefaultSettings;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewDefaultSettingsOperations;
+
+public final class AccessReviewDefaultSettingsOperationsImpl implements AccessReviewDefaultSettingsOperations {
+ private static final ClientLogger LOGGER = new ClientLogger(AccessReviewDefaultSettingsOperationsImpl.class);
+
+ private final AccessReviewDefaultSettingsOperationsClient innerClient;
+
+ private final com.azure.resourcemanager.authorization.generated.AuthorizationManager serviceManager;
+
+ public AccessReviewDefaultSettingsOperationsImpl(
+ AccessReviewDefaultSettingsOperationsClient innerClient,
+ com.azure.resourcemanager.authorization.generated.AuthorizationManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public AccessReviewDefaultSettings get() {
+ AccessReviewDefaultSettingsInner inner = this.serviceClient().get();
+ if (inner != null) {
+ return new AccessReviewDefaultSettingsImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response getWithResponse(Context context) {
+ Response inner = this.serviceClient().getWithResponse(context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new AccessReviewDefaultSettingsImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ public AccessReviewDefaultSettings put(AccessReviewScheduleSettings properties) {
+ AccessReviewDefaultSettingsInner inner = this.serviceClient().put(properties);
+ if (inner != null) {
+ return new AccessReviewDefaultSettingsImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response putWithResponse(
+ AccessReviewScheduleSettings properties, Context context) {
+ Response inner = this.serviceClient().putWithResponse(properties, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new AccessReviewDefaultSettingsImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ private AccessReviewDefaultSettingsOperationsClient serviceClient() {
+ return this.innerClient;
+ }
+
+ private com.azure.resourcemanager.authorization.generated.AuthorizationManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/implementation/AccessReviewInstanceDecisionsClientImpl.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/implementation/AccessReviewInstanceDecisionsClientImpl.java
new file mode 100644
index 0000000000000..61916612bb78c
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/implementation/AccessReviewInstanceDecisionsClientImpl.java
@@ -0,0 +1,380 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.implementation;
+
+import com.azure.core.annotation.ExpectedResponses;
+import com.azure.core.annotation.Get;
+import com.azure.core.annotation.HeaderParam;
+import com.azure.core.annotation.Headers;
+import com.azure.core.annotation.Host;
+import com.azure.core.annotation.HostParam;
+import com.azure.core.annotation.PathParam;
+import com.azure.core.annotation.QueryParam;
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceInterface;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.annotation.UnexpectedResponseExceptionType;
+import com.azure.core.http.rest.PagedFlux;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.PagedResponse;
+import com.azure.core.http.rest.PagedResponseBase;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.RestProxy;
+import com.azure.core.management.exception.ManagementException;
+import com.azure.core.util.Context;
+import com.azure.core.util.FluxUtil;
+import com.azure.resourcemanager.authorization.generated.fluent.AccessReviewInstanceDecisionsClient;
+import com.azure.resourcemanager.authorization.generated.fluent.models.AccessReviewDecisionInner;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewDecisionListResult;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in AccessReviewInstanceDecisionsClient. */
+public final class AccessReviewInstanceDecisionsClientImpl implements AccessReviewInstanceDecisionsClient {
+ /** The proxy service used to perform REST calls. */
+ private final AccessReviewInstanceDecisionsService service;
+
+ /** The service client containing this operation class. */
+ private final AuthorizationManagementClientImpl client;
+
+ /**
+ * Initializes an instance of AccessReviewInstanceDecisionsClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ AccessReviewInstanceDecisionsClientImpl(AuthorizationManagementClientImpl client) {
+ this.service =
+ RestProxy
+ .create(
+ AccessReviewInstanceDecisionsService.class,
+ client.getHttpPipeline(),
+ client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for AuthorizationManagementClientAccessReviewInstanceDecisions to be used
+ * by the proxy service to perform REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "AuthorizationManagem")
+ private interface AccessReviewInstanceDecisionsService {
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/accessReviewScheduleDefinitions"
+ + "/{scheduleDefinitionId}/instances/{id}/decisions")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> list(
+ @HostParam("$host") String endpoint,
+ @PathParam("scheduleDefinitionId") String scheduleDefinitionId,
+ @PathParam("id") String id,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @QueryParam(value = "$filter", encoded = true) String filter,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("{nextLink}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listNext(
+ @PathParam(value = "nextLink", encoded = true) String nextLink,
+ @HostParam("$host") String endpoint,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Get access review instance decisions.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @param filter The filter to apply on the operation. Other than standard filters, one custom filter option is
+ * supported : 'assignedToMeToReview()'. When one specified $filter=assignedToMeToReview(), only items that are
+ * assigned to the calling user to review are returned.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return access review instance decisions along with {@link PagedResponse} on successful completion of {@link
+ * Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(
+ String scheduleDefinitionId, String id, String filter) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (scheduleDefinitionId == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter scheduleDefinitionId is required and cannot be null."));
+ }
+ if (id == null) {
+ return Mono.error(new IllegalArgumentException("Parameter id 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."));
+ }
+ final String apiVersion = "2021-03-01-preview";
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .list(
+ this.client.getEndpoint(),
+ scheduleDefinitionId,
+ id,
+ apiVersion,
+ this.client.getSubscriptionId(),
+ filter,
+ 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 access review instance decisions.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @param filter The filter to apply on the operation. Other than standard filters, one custom filter option is
+ * supported : 'assignedToMeToReview()'. When one specified $filter=assignedToMeToReview(), only items that are
+ * assigned to the calling user to review are returned.
+ * @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 access review instance decisions along with {@link PagedResponse} on successful completion of {@link
+ * Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(
+ String scheduleDefinitionId, String id, String filter, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (scheduleDefinitionId == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter scheduleDefinitionId is required and cannot be null."));
+ }
+ if (id == null) {
+ return Mono.error(new IllegalArgumentException("Parameter id 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."));
+ }
+ final String apiVersion = "2021-03-01-preview";
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .list(
+ this.client.getEndpoint(),
+ scheduleDefinitionId,
+ id,
+ apiVersion,
+ this.client.getSubscriptionId(),
+ filter,
+ accept,
+ context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * Get access review instance decisions.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @param filter The filter to apply on the operation. Other than standard filters, one custom filter option is
+ * supported : 'assignedToMeToReview()'. When one specified $filter=assignedToMeToReview(), only items that are
+ * assigned to the calling user to review are returned.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return access review instance decisions as paginated response with {@link PagedFlux}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(String scheduleDefinitionId, String id, String filter) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(scheduleDefinitionId, id, filter), nextLink -> listNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * Get access review instance decisions.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return access review instance decisions as paginated response with {@link PagedFlux}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(String scheduleDefinitionId, String id) {
+ final String filter = null;
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(scheduleDefinitionId, id, filter), nextLink -> listNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * Get access review instance decisions.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @param filter The filter to apply on the operation. Other than standard filters, one custom filter option is
+ * supported : 'assignedToMeToReview()'. When one specified $filter=assignedToMeToReview(), only items that are
+ * assigned to the calling user to review are returned.
+ * @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 access review instance decisions as paginated response with {@link PagedFlux}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(
+ String scheduleDefinitionId, String id, String filter, Context context) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(scheduleDefinitionId, id, filter, context),
+ nextLink -> listNextSinglePageAsync(nextLink, context));
+ }
+
+ /**
+ * Get access review instance decisions.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return access review instance decisions as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(String scheduleDefinitionId, String id) {
+ final String filter = null;
+ return new PagedIterable<>(listAsync(scheduleDefinitionId, id, filter));
+ }
+
+ /**
+ * Get access review instance decisions.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @param filter The filter to apply on the operation. Other than standard filters, one custom filter option is
+ * supported : 'assignedToMeToReview()'. When one specified $filter=assignedToMeToReview(), only items that are
+ * assigned to the calling user to review are returned.
+ * @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 access review instance decisions as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(
+ String scheduleDefinitionId, String id, String filter, Context context) {
+ return new PagedIterable<>(listAsync(scheduleDefinitionId, id, filter, context));
+ }
+
+ /**
+ * Get the next page of items.
+ *
+ * @param nextLink The nextLink parameter.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of access review decisions along with {@link PagedResponse} on successful completion of {@link
+ * Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listNextSinglePageAsync(String nextLink) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(context -> service.listNext(nextLink, this.client.getEndpoint(), accept, context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Get the next page of items.
+ *
+ * @param nextLink The nextLink parameter.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of access review decisions along with {@link PagedResponse} on successful completion of {@link
+ * Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listNextSinglePageAsync(String nextLink, Context context) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .listNext(nextLink, this.client.getEndpoint(), accept, context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/implementation/AccessReviewInstanceDecisionsImpl.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/implementation/AccessReviewInstanceDecisionsImpl.java
new file mode 100644
index 0000000000000..c34194624a1f3
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/implementation/AccessReviewInstanceDecisionsImpl.java
@@ -0,0 +1,48 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.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.authorization.generated.fluent.AccessReviewInstanceDecisionsClient;
+import com.azure.resourcemanager.authorization.generated.fluent.models.AccessReviewDecisionInner;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewDecision;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewInstanceDecisions;
+
+public final class AccessReviewInstanceDecisionsImpl implements AccessReviewInstanceDecisions {
+ private static final ClientLogger LOGGER = new ClientLogger(AccessReviewInstanceDecisionsImpl.class);
+
+ private final AccessReviewInstanceDecisionsClient innerClient;
+
+ private final com.azure.resourcemanager.authorization.generated.AuthorizationManager serviceManager;
+
+ public AccessReviewInstanceDecisionsImpl(
+ AccessReviewInstanceDecisionsClient innerClient,
+ com.azure.resourcemanager.authorization.generated.AuthorizationManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public PagedIterable list(String scheduleDefinitionId, String id) {
+ PagedIterable inner = this.serviceClient().list(scheduleDefinitionId, id);
+ return Utils.mapPage(inner, inner1 -> new AccessReviewDecisionImpl(inner1, this.manager()));
+ }
+
+ public PagedIterable list(
+ String scheduleDefinitionId, String id, String filter, Context context) {
+ PagedIterable inner =
+ this.serviceClient().list(scheduleDefinitionId, id, filter, context);
+ return Utils.mapPage(inner, inner1 -> new AccessReviewDecisionImpl(inner1, this.manager()));
+ }
+
+ private AccessReviewInstanceDecisionsClient serviceClient() {
+ return this.innerClient;
+ }
+
+ private com.azure.resourcemanager.authorization.generated.AuthorizationManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/implementation/AccessReviewInstanceImpl.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/implementation/AccessReviewInstanceImpl.java
new file mode 100644
index 0000000000000..aeefc1e102363
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/implementation/AccessReviewInstanceImpl.java
@@ -0,0 +1,55 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.implementation;
+
+import com.azure.resourcemanager.authorization.generated.fluent.models.AccessReviewInstanceInner;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewInstance;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewInstanceStatus;
+import java.time.OffsetDateTime;
+
+public final class AccessReviewInstanceImpl implements AccessReviewInstance {
+ private AccessReviewInstanceInner innerObject;
+
+ private final com.azure.resourcemanager.authorization.generated.AuthorizationManager serviceManager;
+
+ AccessReviewInstanceImpl(
+ AccessReviewInstanceInner innerObject,
+ com.azure.resourcemanager.authorization.generated.AuthorizationManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ }
+
+ public String id() {
+ return this.innerModel().id();
+ }
+
+ public String name() {
+ return this.innerModel().name();
+ }
+
+ public String type() {
+ return this.innerModel().type();
+ }
+
+ public AccessReviewInstanceStatus status() {
+ return this.innerModel().status();
+ }
+
+ public OffsetDateTime startDateTime() {
+ return this.innerModel().startDateTime();
+ }
+
+ public OffsetDateTime endDateTime() {
+ return this.innerModel().endDateTime();
+ }
+
+ public AccessReviewInstanceInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.authorization.generated.AuthorizationManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/implementation/AccessReviewInstanceMyDecisionsClientImpl.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/implementation/AccessReviewInstanceMyDecisionsClientImpl.java
new file mode 100644
index 0000000000000..8ce5a7883a0d4
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/implementation/AccessReviewInstanceMyDecisionsClientImpl.java
@@ -0,0 +1,707 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.implementation;
+
+import com.azure.core.annotation.BodyParam;
+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.QueryParam;
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceInterface;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.annotation.UnexpectedResponseExceptionType;
+import com.azure.core.http.rest.PagedFlux;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.PagedResponse;
+import com.azure.core.http.rest.PagedResponseBase;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.RestProxy;
+import com.azure.core.management.exception.ManagementException;
+import com.azure.core.util.Context;
+import com.azure.core.util.FluxUtil;
+import com.azure.resourcemanager.authorization.generated.fluent.AccessReviewInstanceMyDecisionsClient;
+import com.azure.resourcemanager.authorization.generated.fluent.models.AccessReviewDecisionInner;
+import com.azure.resourcemanager.authorization.generated.fluent.models.AccessReviewDecisionProperties;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewDecisionListResult;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in AccessReviewInstanceMyDecisionsClient. */
+public final class AccessReviewInstanceMyDecisionsClientImpl implements AccessReviewInstanceMyDecisionsClient {
+ /** The proxy service used to perform REST calls. */
+ private final AccessReviewInstanceMyDecisionsService service;
+
+ /** The service client containing this operation class. */
+ private final AuthorizationManagementClientImpl client;
+
+ /**
+ * Initializes an instance of AccessReviewInstanceMyDecisionsClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ AccessReviewInstanceMyDecisionsClientImpl(AuthorizationManagementClientImpl client) {
+ this.service =
+ RestProxy
+ .create(
+ AccessReviewInstanceMyDecisionsService.class,
+ client.getHttpPipeline(),
+ client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for AuthorizationManagementClientAccessReviewInstanceMyDecisions to be
+ * used by the proxy service to perform REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "AuthorizationManagem")
+ private interface AccessReviewInstanceMyDecisionsService {
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/providers/Microsoft.Authorization/accessReviewScheduleDefinitions/{scheduleDefinitionId}/instances/{id}"
+ + "/decisions")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> list(
+ @HostParam("$host") String endpoint,
+ @PathParam("scheduleDefinitionId") String scheduleDefinitionId,
+ @PathParam("id") String id,
+ @QueryParam("api-version") String apiVersion,
+ @QueryParam(value = "$filter", encoded = true) String filter,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/providers/Microsoft.Authorization/accessReviewScheduleDefinitions/{scheduleDefinitionId}/instances/{id}"
+ + "/decisions/{decisionId}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> getById(
+ @HostParam("$host") String endpoint,
+ @PathParam("scheduleDefinitionId") String scheduleDefinitionId,
+ @PathParam("id") String id,
+ @PathParam("decisionId") String decisionId,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Patch(
+ "/providers/Microsoft.Authorization/accessReviewScheduleDefinitions/{scheduleDefinitionId}/instances/{id}"
+ + "/decisions/{decisionId}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> patch(
+ @HostParam("$host") String endpoint,
+ @PathParam("scheduleDefinitionId") String scheduleDefinitionId,
+ @PathParam("id") String id,
+ @PathParam("decisionId") String decisionId,
+ @QueryParam("api-version") String apiVersion,
+ @BodyParam("application/json") AccessReviewDecisionProperties properties,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("{nextLink}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listNext(
+ @PathParam(value = "nextLink", encoded = true) String nextLink,
+ @HostParam("$host") String endpoint,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Get my access review instance decisions.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @param filter The filter to apply on the operation. Other than standard filters, one custom filter option is
+ * supported : 'assignedToMeToReview()'. When one specified $filter=assignedToMeToReview(), only items that are
+ * assigned to the calling user to review are returned.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return my access review instance decisions along with {@link PagedResponse} on successful completion of {@link
+ * Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(
+ String scheduleDefinitionId, String id, String filter) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (scheduleDefinitionId == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter scheduleDefinitionId is required and cannot be null."));
+ }
+ if (id == null) {
+ return Mono.error(new IllegalArgumentException("Parameter id is required and cannot be null."));
+ }
+ final String apiVersion = "2021-03-01-preview";
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .list(this.client.getEndpoint(), scheduleDefinitionId, id, apiVersion, filter, 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 my access review instance decisions.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @param filter The filter to apply on the operation. Other than standard filters, one custom filter option is
+ * supported : 'assignedToMeToReview()'. When one specified $filter=assignedToMeToReview(), only items that are
+ * assigned to the calling user to review are returned.
+ * @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 my access review instance decisions along with {@link PagedResponse} on successful completion of {@link
+ * Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(
+ String scheduleDefinitionId, String id, String filter, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (scheduleDefinitionId == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter scheduleDefinitionId is required and cannot be null."));
+ }
+ if (id == null) {
+ return Mono.error(new IllegalArgumentException("Parameter id is required and cannot be null."));
+ }
+ final String apiVersion = "2021-03-01-preview";
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .list(this.client.getEndpoint(), scheduleDefinitionId, id, apiVersion, filter, accept, context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * Get my access review instance decisions.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @param filter The filter to apply on the operation. Other than standard filters, one custom filter option is
+ * supported : 'assignedToMeToReview()'. When one specified $filter=assignedToMeToReview(), only items that are
+ * assigned to the calling user to review are returned.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return my access review instance decisions as paginated response with {@link PagedFlux}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(String scheduleDefinitionId, String id, String filter) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(scheduleDefinitionId, id, filter), nextLink -> listNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * Get my access review instance decisions.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return my access review instance decisions as paginated response with {@link PagedFlux}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(String scheduleDefinitionId, String id) {
+ final String filter = null;
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(scheduleDefinitionId, id, filter), nextLink -> listNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * Get my access review instance decisions.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @param filter The filter to apply on the operation. Other than standard filters, one custom filter option is
+ * supported : 'assignedToMeToReview()'. When one specified $filter=assignedToMeToReview(), only items that are
+ * assigned to the calling user to review are returned.
+ * @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 my access review instance decisions as paginated response with {@link PagedFlux}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(
+ String scheduleDefinitionId, String id, String filter, Context context) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(scheduleDefinitionId, id, filter, context),
+ nextLink -> listNextSinglePageAsync(nextLink, context));
+ }
+
+ /**
+ * Get my access review instance decisions.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return my access review instance decisions as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(String scheduleDefinitionId, String id) {
+ final String filter = null;
+ return new PagedIterable<>(listAsync(scheduleDefinitionId, id, filter));
+ }
+
+ /**
+ * Get my access review instance decisions.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @param filter The filter to apply on the operation. Other than standard filters, one custom filter option is
+ * supported : 'assignedToMeToReview()'. When one specified $filter=assignedToMeToReview(), only items that are
+ * assigned to the calling user to review are returned.
+ * @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 my access review instance decisions as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(
+ String scheduleDefinitionId, String id, String filter, Context context) {
+ return new PagedIterable<>(listAsync(scheduleDefinitionId, id, filter, context));
+ }
+
+ /**
+ * Get my single access review instance decision.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @param decisionId The id of the decision record.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return my single access review instance decision along with {@link Response} on successful completion of {@link
+ * Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getByIdWithResponseAsync(
+ String scheduleDefinitionId, String id, String decisionId) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (scheduleDefinitionId == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter scheduleDefinitionId is required and cannot be null."));
+ }
+ if (id == null) {
+ return Mono.error(new IllegalArgumentException("Parameter id is required and cannot be null."));
+ }
+ if (decisionId == null) {
+ return Mono.error(new IllegalArgumentException("Parameter decisionId is required and cannot be null."));
+ }
+ final String apiVersion = "2021-03-01-preview";
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .getById(
+ this.client.getEndpoint(),
+ scheduleDefinitionId,
+ id,
+ decisionId,
+ apiVersion,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Get my single access review instance decision.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @param decisionId The id of the decision record.
+ * @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 my single access review instance decision along with {@link Response} on successful completion of {@link
+ * Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getByIdWithResponseAsync(
+ String scheduleDefinitionId, String id, String decisionId, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (scheduleDefinitionId == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter scheduleDefinitionId is required and cannot be null."));
+ }
+ if (id == null) {
+ return Mono.error(new IllegalArgumentException("Parameter id is required and cannot be null."));
+ }
+ if (decisionId == null) {
+ return Mono.error(new IllegalArgumentException("Parameter decisionId is required and cannot be null."));
+ }
+ final String apiVersion = "2021-03-01-preview";
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .getById(this.client.getEndpoint(), scheduleDefinitionId, id, decisionId, apiVersion, accept, context);
+ }
+
+ /**
+ * Get my single access review instance decision.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @param decisionId The id of the decision record.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return my single access review instance decision on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono getByIdAsync(String scheduleDefinitionId, String id, String decisionId) {
+ return getByIdWithResponseAsync(scheduleDefinitionId, id, decisionId)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Get my single access review instance decision.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @param decisionId The id of the decision record.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return my single access review instance decision.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public AccessReviewDecisionInner getById(String scheduleDefinitionId, String id, String decisionId) {
+ return getByIdAsync(scheduleDefinitionId, id, decisionId).block();
+ }
+
+ /**
+ * Get my single access review instance decision.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @param decisionId The id of the decision record.
+ * @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 my single access review instance decision along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response getByIdWithResponse(
+ String scheduleDefinitionId, String id, String decisionId, Context context) {
+ return getByIdWithResponseAsync(scheduleDefinitionId, id, decisionId, context).block();
+ }
+
+ /**
+ * Record a decision.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @param decisionId The id of the decision record.
+ * @param properties Access review decision properties to patch.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return access Review along with {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> patchWithResponseAsync(
+ String scheduleDefinitionId, String id, String decisionId, AccessReviewDecisionProperties properties) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (scheduleDefinitionId == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter scheduleDefinitionId is required and cannot be null."));
+ }
+ if (id == null) {
+ return Mono.error(new IllegalArgumentException("Parameter id is required and cannot be null."));
+ }
+ if (decisionId == null) {
+ return Mono.error(new IllegalArgumentException("Parameter decisionId is required and cannot be null."));
+ }
+ if (properties == null) {
+ return Mono.error(new IllegalArgumentException("Parameter properties is required and cannot be null."));
+ } else {
+ properties.validate();
+ }
+ final String apiVersion = "2021-03-01-preview";
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .patch(
+ this.client.getEndpoint(),
+ scheduleDefinitionId,
+ id,
+ decisionId,
+ apiVersion,
+ properties,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Record a decision.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @param decisionId The id of the decision record.
+ * @param properties Access review decision properties to patch.
+ * @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 access Review along with {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> patchWithResponseAsync(
+ String scheduleDefinitionId,
+ String id,
+ String decisionId,
+ AccessReviewDecisionProperties properties,
+ Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (scheduleDefinitionId == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter scheduleDefinitionId is required and cannot be null."));
+ }
+ if (id == null) {
+ return Mono.error(new IllegalArgumentException("Parameter id is required and cannot be null."));
+ }
+ if (decisionId == null) {
+ return Mono.error(new IllegalArgumentException("Parameter decisionId is required and cannot be null."));
+ }
+ if (properties == null) {
+ return Mono.error(new IllegalArgumentException("Parameter properties is required and cannot be null."));
+ } else {
+ properties.validate();
+ }
+ final String apiVersion = "2021-03-01-preview";
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .patch(
+ this.client.getEndpoint(),
+ scheduleDefinitionId,
+ id,
+ decisionId,
+ apiVersion,
+ properties,
+ accept,
+ context);
+ }
+
+ /**
+ * Record a decision.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @param decisionId The id of the decision record.
+ * @param properties Access review decision properties to patch.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return access Review on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono patchAsync(
+ String scheduleDefinitionId, String id, String decisionId, AccessReviewDecisionProperties properties) {
+ return patchWithResponseAsync(scheduleDefinitionId, id, decisionId, properties)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Record a decision.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @param decisionId The id of the decision record.
+ * @param properties Access review decision properties to patch.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return access Review.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public AccessReviewDecisionInner patch(
+ String scheduleDefinitionId, String id, String decisionId, AccessReviewDecisionProperties properties) {
+ return patchAsync(scheduleDefinitionId, id, decisionId, properties).block();
+ }
+
+ /**
+ * Record a decision.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @param decisionId The id of the decision record.
+ * @param properties Access review decision properties to patch.
+ * @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 access Review along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response patchWithResponse(
+ String scheduleDefinitionId,
+ String id,
+ String decisionId,
+ AccessReviewDecisionProperties properties,
+ Context context) {
+ return patchWithResponseAsync(scheduleDefinitionId, id, decisionId, properties, 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 list of access review decisions along with {@link PagedResponse} on successful completion of {@link
+ * Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listNextSinglePageAsync(String nextLink) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(context -> service.listNext(nextLink, this.client.getEndpoint(), accept, context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Get the next page of items.
+ *
+ * @param nextLink The nextLink parameter.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of access review decisions along with {@link PagedResponse} on successful completion of {@link
+ * Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listNextSinglePageAsync(String nextLink, Context context) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .listNext(nextLink, this.client.getEndpoint(), accept, context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/implementation/AccessReviewInstanceMyDecisionsImpl.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/implementation/AccessReviewInstanceMyDecisionsImpl.java
new file mode 100644
index 0000000000000..c0c1db3611b50
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/implementation/AccessReviewInstanceMyDecisionsImpl.java
@@ -0,0 +1,104 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.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.authorization.generated.fluent.AccessReviewInstanceMyDecisionsClient;
+import com.azure.resourcemanager.authorization.generated.fluent.models.AccessReviewDecisionInner;
+import com.azure.resourcemanager.authorization.generated.fluent.models.AccessReviewDecisionProperties;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewDecision;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewInstanceMyDecisions;
+
+public final class AccessReviewInstanceMyDecisionsImpl implements AccessReviewInstanceMyDecisions {
+ private static final ClientLogger LOGGER = new ClientLogger(AccessReviewInstanceMyDecisionsImpl.class);
+
+ private final AccessReviewInstanceMyDecisionsClient innerClient;
+
+ private final com.azure.resourcemanager.authorization.generated.AuthorizationManager serviceManager;
+
+ public AccessReviewInstanceMyDecisionsImpl(
+ AccessReviewInstanceMyDecisionsClient innerClient,
+ com.azure.resourcemanager.authorization.generated.AuthorizationManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public PagedIterable list(String scheduleDefinitionId, String id) {
+ PagedIterable inner = this.serviceClient().list(scheduleDefinitionId, id);
+ return Utils.mapPage(inner, inner1 -> new AccessReviewDecisionImpl(inner1, this.manager()));
+ }
+
+ public PagedIterable list(
+ String scheduleDefinitionId, String id, String filter, Context context) {
+ PagedIterable inner =
+ this.serviceClient().list(scheduleDefinitionId, id, filter, context);
+ return Utils.mapPage(inner, inner1 -> new AccessReviewDecisionImpl(inner1, this.manager()));
+ }
+
+ public AccessReviewDecision getById(String scheduleDefinitionId, String id, String decisionId) {
+ AccessReviewDecisionInner inner = this.serviceClient().getById(scheduleDefinitionId, id, decisionId);
+ if (inner != null) {
+ return new AccessReviewDecisionImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response getByIdWithResponse(
+ String scheduleDefinitionId, String id, String decisionId, Context context) {
+ Response inner =
+ this.serviceClient().getByIdWithResponse(scheduleDefinitionId, id, decisionId, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new AccessReviewDecisionImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ public AccessReviewDecision patch(
+ String scheduleDefinitionId, String id, String decisionId, AccessReviewDecisionProperties properties) {
+ AccessReviewDecisionInner inner = this.serviceClient().patch(scheduleDefinitionId, id, decisionId, properties);
+ if (inner != null) {
+ return new AccessReviewDecisionImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response patchWithResponse(
+ String scheduleDefinitionId,
+ String id,
+ String decisionId,
+ AccessReviewDecisionProperties properties,
+ Context context) {
+ Response inner =
+ this.serviceClient().patchWithResponse(scheduleDefinitionId, id, decisionId, properties, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new AccessReviewDecisionImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ private AccessReviewInstanceMyDecisionsClient serviceClient() {
+ return this.innerClient;
+ }
+
+ private com.azure.resourcemanager.authorization.generated.AuthorizationManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/implementation/AccessReviewInstanceOperationsClientImpl.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/implementation/AccessReviewInstanceOperationsClientImpl.java
new file mode 100644
index 0000000000000..8d2d987e99dfc
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/implementation/AccessReviewInstanceOperationsClientImpl.java
@@ -0,0 +1,806 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.implementation;
+
+import com.azure.core.annotation.ExpectedResponses;
+import com.azure.core.annotation.HeaderParam;
+import com.azure.core.annotation.Headers;
+import com.azure.core.annotation.Host;
+import com.azure.core.annotation.HostParam;
+import com.azure.core.annotation.PathParam;
+import com.azure.core.annotation.Post;
+import com.azure.core.annotation.QueryParam;
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceInterface;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.annotation.UnexpectedResponseExceptionType;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.RestProxy;
+import com.azure.core.management.exception.ManagementException;
+import com.azure.core.util.Context;
+import com.azure.core.util.FluxUtil;
+import com.azure.resourcemanager.authorization.generated.fluent.AccessReviewInstanceOperationsClient;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in AccessReviewInstanceOperationsClient. */
+public final class AccessReviewInstanceOperationsClientImpl implements AccessReviewInstanceOperationsClient {
+ /** The proxy service used to perform REST calls. */
+ private final AccessReviewInstanceOperationsService service;
+
+ /** The service client containing this operation class. */
+ private final AuthorizationManagementClientImpl client;
+
+ /**
+ * Initializes an instance of AccessReviewInstanceOperationsClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ AccessReviewInstanceOperationsClientImpl(AuthorizationManagementClientImpl client) {
+ this.service =
+ RestProxy
+ .create(
+ AccessReviewInstanceOperationsService.class,
+ client.getHttpPipeline(),
+ client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for AuthorizationManagementClientAccessReviewInstanceOperations to be
+ * used by the proxy service to perform REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "AuthorizationManagem")
+ private interface AccessReviewInstanceOperationsService {
+ @Headers({"Content-Type: application/json"})
+ @Post(
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/accessReviewScheduleDefinitions"
+ + "/{scheduleDefinitionId}/instances/{id}/stop")
+ @ExpectedResponses({204})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> stop(
+ @HostParam("$host") String endpoint,
+ @PathParam("scheduleDefinitionId") String scheduleDefinitionId,
+ @PathParam("id") String id,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Post(
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/accessReviewScheduleDefinitions"
+ + "/{scheduleDefinitionId}/instances/{id}/resetDecisions")
+ @ExpectedResponses({204})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> resetDecisions(
+ @HostParam("$host") String endpoint,
+ @PathParam("scheduleDefinitionId") String scheduleDefinitionId,
+ @PathParam("id") String id,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Post(
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/accessReviewScheduleDefinitions"
+ + "/{scheduleDefinitionId}/instances/{id}/applyDecisions")
+ @ExpectedResponses({204})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> applyDecisions(
+ @HostParam("$host") String endpoint,
+ @PathParam("scheduleDefinitionId") String scheduleDefinitionId,
+ @PathParam("id") String id,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Post(
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/accessReviewScheduleDefinitions"
+ + "/{scheduleDefinitionId}/instances/{id}/sendReminders")
+ @ExpectedResponses({204})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> sendReminders(
+ @HostParam("$host") String endpoint,
+ @PathParam("scheduleDefinitionId") String scheduleDefinitionId,
+ @PathParam("id") String id,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Post(
+ "/providers/Microsoft.Authorization/accessReviewScheduleDefinitions/{scheduleDefinitionId}/instances/{id}"
+ + "/acceptRecommendations")
+ @ExpectedResponses({204})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> acceptRecommendations(
+ @HostParam("$host") String endpoint,
+ @PathParam("scheduleDefinitionId") String scheduleDefinitionId,
+ @PathParam("id") String id,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * An action to stop an access review instance.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException 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> stopWithResponseAsync(String scheduleDefinitionId, String id) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (scheduleDefinitionId == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter scheduleDefinitionId is required and cannot be null."));
+ }
+ if (id == null) {
+ return Mono.error(new IllegalArgumentException("Parameter id 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."));
+ }
+ final String apiVersion = "2021-03-01-preview";
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .stop(
+ this.client.getEndpoint(),
+ scheduleDefinitionId,
+ id,
+ apiVersion,
+ this.client.getSubscriptionId(),
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * An action to stop an access review instance.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @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> stopWithResponseAsync(String scheduleDefinitionId, String id, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (scheduleDefinitionId == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter scheduleDefinitionId is required and cannot be null."));
+ }
+ if (id == null) {
+ return Mono.error(new IllegalArgumentException("Parameter id 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."));
+ }
+ final String apiVersion = "2021-03-01-preview";
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .stop(
+ this.client.getEndpoint(),
+ scheduleDefinitionId,
+ id,
+ apiVersion,
+ this.client.getSubscriptionId(),
+ accept,
+ context);
+ }
+
+ /**
+ * An action to stop an access review instance.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException 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 stopAsync(String scheduleDefinitionId, String id) {
+ return stopWithResponseAsync(scheduleDefinitionId, id).flatMap((Response res) -> Mono.empty());
+ }
+
+ /**
+ * An action to stop an access review instance.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @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 stop(String scheduleDefinitionId, String id) {
+ stopAsync(scheduleDefinitionId, id).block();
+ }
+
+ /**
+ * An action to stop an access review instance.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @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}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response stopWithResponse(String scheduleDefinitionId, String id, Context context) {
+ return stopWithResponseAsync(scheduleDefinitionId, id, context).block();
+ }
+
+ /**
+ * An action to reset all decisions for an access review instance.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException 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> resetDecisionsWithResponseAsync(String scheduleDefinitionId, String id) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (scheduleDefinitionId == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter scheduleDefinitionId is required and cannot be null."));
+ }
+ if (id == null) {
+ return Mono.error(new IllegalArgumentException("Parameter id 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."));
+ }
+ final String apiVersion = "2021-03-01-preview";
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .resetDecisions(
+ this.client.getEndpoint(),
+ scheduleDefinitionId,
+ id,
+ apiVersion,
+ this.client.getSubscriptionId(),
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * An action to reset all decisions for an access review instance.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @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> resetDecisionsWithResponseAsync(
+ String scheduleDefinitionId, String id, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (scheduleDefinitionId == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter scheduleDefinitionId is required and cannot be null."));
+ }
+ if (id == null) {
+ return Mono.error(new IllegalArgumentException("Parameter id 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."));
+ }
+ final String apiVersion = "2021-03-01-preview";
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .resetDecisions(
+ this.client.getEndpoint(),
+ scheduleDefinitionId,
+ id,
+ apiVersion,
+ this.client.getSubscriptionId(),
+ accept,
+ context);
+ }
+
+ /**
+ * An action to reset all decisions for an access review instance.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException 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 resetDecisionsAsync(String scheduleDefinitionId, String id) {
+ return resetDecisionsWithResponseAsync(scheduleDefinitionId, id).flatMap((Response res) -> Mono.empty());
+ }
+
+ /**
+ * An action to reset all decisions for an access review instance.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @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 resetDecisions(String scheduleDefinitionId, String id) {
+ resetDecisionsAsync(scheduleDefinitionId, id).block();
+ }
+
+ /**
+ * An action to reset all decisions for an access review instance.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @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}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response resetDecisionsWithResponse(String scheduleDefinitionId, String id, Context context) {
+ return resetDecisionsWithResponseAsync(scheduleDefinitionId, id, context).block();
+ }
+
+ /**
+ * An action to apply all decisions for an access review instance.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException 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