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 ClassicAdministrators.
+ *
+ * @return Resource collection API of ClassicAdministrators.
+ */
+ public ClassicAdministrators classicAdministrators() {
+ if (this.classicAdministrators == null) {
+ this.classicAdministrators = new ClassicAdministratorsImpl(clientObject.getClassicAdministrators(), this);
+ }
+ return classicAdministrators;
+ }
+
+ /**
+ * Gets the resource collection API of GlobalAdministrators.
+ *
+ * @return Resource collection API of GlobalAdministrators.
+ */
+ public GlobalAdministrators globalAdministrators() {
+ if (this.globalAdministrators == null) {
+ this.globalAdministrators = new GlobalAdministratorsImpl(clientObject.getGlobalAdministrators(), this);
+ }
+ return globalAdministrators;
+ }
+
+ /**
+ * 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 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 RoleAssignments. It manages RoleAssignment.
+ *
+ * @return Resource collection API of RoleAssignments.
+ */
+ public RoleAssignments roleAssignments() {
+ if (this.roleAssignments == null) {
+ this.roleAssignments = new RoleAssignmentsImpl(clientObject.getRoleAssignments(), this);
+ }
+ return roleAssignments;
+ }
+
+ /**
+ * 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. It manages RoleDefinition.
+ *
+ * @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 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 AccessReviewHistoryDefinitions.
+ *
+ * @return Resource collection API of AccessReviewHistoryDefinitions.
+ */
+ public AccessReviewHistoryDefinitions accessReviewHistoryDefinitions() {
+ if (this.accessReviewHistoryDefinitions == null) {
+ this.accessReviewHistoryDefinitions
+ = new AccessReviewHistoryDefinitionsImpl(clientObject.getAccessReviewHistoryDefinitions(), this);
+ }
+ return accessReviewHistoryDefinitions;
+ }
+
+ /**
+ * Gets the resource collection API of AccessReviewHistoryDefinitionOperations. It manages
+ * AccessReviewHistoryDefinition.
+ *
+ * @return Resource collection API of AccessReviewHistoryDefinitionOperations.
+ */
+ public AccessReviewHistoryDefinitionOperations accessReviewHistoryDefinitionOperations() {
+ if (this.accessReviewHistoryDefinitionOperations == null) {
+ this.accessReviewHistoryDefinitionOperations = new AccessReviewHistoryDefinitionOperationsImpl(
+ clientObject.getAccessReviewHistoryDefinitionOperations(), this);
+ }
+ return accessReviewHistoryDefinitionOperations;
+ }
+
+ /**
+ * Gets the resource collection API of AccessReviewHistoryDefinitionInstances.
+ *
+ * @return Resource collection API of AccessReviewHistoryDefinitionInstances.
+ */
+ public AccessReviewHistoryDefinitionInstances accessReviewHistoryDefinitionInstances() {
+ if (this.accessReviewHistoryDefinitionInstances == null) {
+ this.accessReviewHistoryDefinitionInstances = new AccessReviewHistoryDefinitionInstancesImpl(
+ clientObject.getAccessReviewHistoryDefinitionInstances(), this);
+ }
+ return accessReviewHistoryDefinitionInstances;
+ }
+
+ /**
+ * Gets the resource collection API of AccessReviewHistoryDefinitionInstancesOperations.
+ *
+ * @return Resource collection API of AccessReviewHistoryDefinitionInstancesOperations.
+ */
+ public AccessReviewHistoryDefinitionInstancesOperations accessReviewHistoryDefinitionInstancesOperations() {
+ if (this.accessReviewHistoryDefinitionInstancesOperations == null) {
+ this.accessReviewHistoryDefinitionInstancesOperations
+ = new AccessReviewHistoryDefinitionInstancesOperationsImpl(
+ clientObject.getAccessReviewHistoryDefinitionInstancesOperations(), this);
+ }
+ return accessReviewHistoryDefinitionInstancesOperations;
+ }
+
+ /**
+ * Gets the resource collection API of AccessReviewScheduleDefinitions. It manages AccessReviewScheduleDefinition.
+ *
+ * @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. It manages AccessReviewInstance.
+ *
+ * @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 AccessReviewInstanceContactedReviewers.
+ *
+ * @return Resource collection API of AccessReviewInstanceContactedReviewers.
+ */
+ public AccessReviewInstanceContactedReviewers accessReviewInstanceContactedReviewers() {
+ if (this.accessReviewInstanceContactedReviewers == null) {
+ this.accessReviewInstanceContactedReviewers = new AccessReviewInstanceContactedReviewersImpl(
+ clientObject.getAccessReviewInstanceContactedReviewers(), this);
+ }
+ return accessReviewInstanceContactedReviewers;
+ }
+
+ /**
+ * 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 ScopeAccessReviewHistoryDefinitions.
+ *
+ * @return Resource collection API of ScopeAccessReviewHistoryDefinitions.
+ */
+ public ScopeAccessReviewHistoryDefinitions scopeAccessReviewHistoryDefinitions() {
+ if (this.scopeAccessReviewHistoryDefinitions == null) {
+ this.scopeAccessReviewHistoryDefinitions = new ScopeAccessReviewHistoryDefinitionsImpl(
+ clientObject.getScopeAccessReviewHistoryDefinitions(), this);
+ }
+ return scopeAccessReviewHistoryDefinitions;
+ }
+
+ /**
+ * Gets the resource collection API of ScopeAccessReviewHistoryDefinitionOperations.
+ *
+ * @return Resource collection API of ScopeAccessReviewHistoryDefinitionOperations.
+ */
+ public ScopeAccessReviewHistoryDefinitionOperations scopeAccessReviewHistoryDefinitionOperations() {
+ if (this.scopeAccessReviewHistoryDefinitionOperations == null) {
+ this.scopeAccessReviewHistoryDefinitionOperations = new ScopeAccessReviewHistoryDefinitionOperationsImpl(
+ clientObject.getScopeAccessReviewHistoryDefinitionOperations(), this);
+ }
+ return scopeAccessReviewHistoryDefinitionOperations;
+ }
+
+ /**
+ * Gets the resource collection API of ScopeAccessReviewHistoryDefinitionInstances.
+ *
+ * @return Resource collection API of ScopeAccessReviewHistoryDefinitionInstances.
+ */
+ public ScopeAccessReviewHistoryDefinitionInstances scopeAccessReviewHistoryDefinitionInstances() {
+ if (this.scopeAccessReviewHistoryDefinitionInstances == null) {
+ this.scopeAccessReviewHistoryDefinitionInstances = new ScopeAccessReviewHistoryDefinitionInstancesImpl(
+ clientObject.getScopeAccessReviewHistoryDefinitionInstances(), this);
+ }
+ return scopeAccessReviewHistoryDefinitionInstances;
+ }
+
+ /**
+ * Gets the resource collection API of ScopeAccessReviewHistoryDefinitionInstancesOperations.
+ *
+ * @return Resource collection API of ScopeAccessReviewHistoryDefinitionInstancesOperations.
+ */
+ public ScopeAccessReviewHistoryDefinitionInstancesOperations
+ scopeAccessReviewHistoryDefinitionInstancesOperations() {
+ if (this.scopeAccessReviewHistoryDefinitionInstancesOperations == null) {
+ this.scopeAccessReviewHistoryDefinitionInstancesOperations
+ = new ScopeAccessReviewHistoryDefinitionInstancesOperationsImpl(
+ clientObject.getScopeAccessReviewHistoryDefinitionInstancesOperations(), this);
+ }
+ return scopeAccessReviewHistoryDefinitionInstancesOperations;
+ }
+
+ /**
+ * Gets the resource collection API of ScopeAccessReviewScheduleDefinitions.
+ *
+ * @return Resource collection API of ScopeAccessReviewScheduleDefinitions.
+ */
+ public ScopeAccessReviewScheduleDefinitions scopeAccessReviewScheduleDefinitions() {
+ if (this.scopeAccessReviewScheduleDefinitions == null) {
+ this.scopeAccessReviewScheduleDefinitions = new ScopeAccessReviewScheduleDefinitionsImpl(
+ clientObject.getScopeAccessReviewScheduleDefinitions(), this);
+ }
+ return scopeAccessReviewScheduleDefinitions;
+ }
+
+ /**
+ * Gets the resource collection API of ScopeAccessReviewInstances.
+ *
+ * @return Resource collection API of ScopeAccessReviewInstances.
+ */
+ public ScopeAccessReviewInstances scopeAccessReviewInstances() {
+ if (this.scopeAccessReviewInstances == null) {
+ this.scopeAccessReviewInstances
+ = new ScopeAccessReviewInstancesImpl(clientObject.getScopeAccessReviewInstances(), this);
+ }
+ return scopeAccessReviewInstances;
+ }
+
+ /**
+ * Gets the resource collection API of ScopeAccessReviewInstanceOperations.
+ *
+ * @return Resource collection API of ScopeAccessReviewInstanceOperations.
+ */
+ public ScopeAccessReviewInstanceOperations scopeAccessReviewInstanceOperations() {
+ if (this.scopeAccessReviewInstanceOperations == null) {
+ this.scopeAccessReviewInstanceOperations = new ScopeAccessReviewInstanceOperationsImpl(
+ clientObject.getScopeAccessReviewInstanceOperations(), this);
+ }
+ return scopeAccessReviewInstanceOperations;
+ }
+
+ /**
+ * Gets the resource collection API of ScopeAccessReviewInstanceDecisions.
+ *
+ * @return Resource collection API of ScopeAccessReviewInstanceDecisions.
+ */
+ public ScopeAccessReviewInstanceDecisions scopeAccessReviewInstanceDecisions() {
+ if (this.scopeAccessReviewInstanceDecisions == null) {
+ this.scopeAccessReviewInstanceDecisions = new ScopeAccessReviewInstanceDecisionsImpl(
+ clientObject.getScopeAccessReviewInstanceDecisions(), this);
+ }
+ return scopeAccessReviewInstanceDecisions;
+ }
+
+ /**
+ * Gets the resource collection API of ScopeAccessReviewInstanceContactedReviewers.
+ *
+ * @return Resource collection API of ScopeAccessReviewInstanceContactedReviewers.
+ */
+ public ScopeAccessReviewInstanceContactedReviewers scopeAccessReviewInstanceContactedReviewers() {
+ if (this.scopeAccessReviewInstanceContactedReviewers == null) {
+ this.scopeAccessReviewInstanceContactedReviewers = new ScopeAccessReviewInstanceContactedReviewersImpl(
+ clientObject.getScopeAccessReviewInstanceContactedReviewers(), this);
+ }
+ return scopeAccessReviewInstanceContactedReviewers;
+ }
+
+ /**
+ * Gets the resource collection API of ScopeAccessReviewDefaultSettings.
+ *
+ * @return Resource collection API of ScopeAccessReviewDefaultSettings.
+ */
+ public ScopeAccessReviewDefaultSettings scopeAccessReviewDefaultSettings() {
+ if (this.scopeAccessReviewDefaultSettings == null) {
+ this.scopeAccessReviewDefaultSettings
+ = new ScopeAccessReviewDefaultSettingsImpl(clientObject.getScopeAccessReviewDefaultSettings(), this);
+ }
+ return scopeAccessReviewDefaultSettings;
+ }
+
+ /**
+ * 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 TenantLevelAccessReviewInstanceContactedReviewers.
+ *
+ * @return Resource collection API of TenantLevelAccessReviewInstanceContactedReviewers.
+ */
+ public TenantLevelAccessReviewInstanceContactedReviewers tenantLevelAccessReviewInstanceContactedReviewers() {
+ if (this.tenantLevelAccessReviewInstanceContactedReviewers == null) {
+ this.tenantLevelAccessReviewInstanceContactedReviewers
+ = new TenantLevelAccessReviewInstanceContactedReviewersImpl(
+ clientObject.getTenantLevelAccessReviewInstanceContactedReviewers(), this);
+ }
+ return tenantLevelAccessReviewInstanceContactedReviewers;
+ }
+
+ /**
+ * 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. It manages RoleAssignmentScheduleRequest.
+ *
+ * @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. It manages RoleEligibilityScheduleRequest.
+ *
+ * @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. It manages RoleManagementPolicyAssignment.
+ *
+ * @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 Alerts.
+ *
+ * @return Resource collection API of Alerts.
+ */
+ public Alerts alerts() {
+ if (this.alerts == null) {
+ this.alerts = new AlertsImpl(clientObject.getAlerts(), this);
+ }
+ return alerts;
+ }
+
+ /**
+ * Gets the resource collection API of AlertConfigurations.
+ *
+ * @return Resource collection API of AlertConfigurations.
+ */
+ public AlertConfigurations alertConfigurations() {
+ if (this.alertConfigurations == null) {
+ this.alertConfigurations = new AlertConfigurationsImpl(clientObject.getAlertConfigurations(), this);
+ }
+ return alertConfigurations;
+ }
+
+ /**
+ * Gets the resource collection API of AlertDefinitions.
+ *
+ * @return Resource collection API of AlertDefinitions.
+ */
+ public AlertDefinitions alertDefinitions() {
+ if (this.alertDefinitions == null) {
+ this.alertDefinitions = new AlertDefinitionsImpl(clientObject.getAlertDefinitions(), this);
+ }
+ return alertDefinitions;
+ }
+
+ /**
+ * Gets the resource collection API of AlertIncidents.
+ *
+ * @return Resource collection API of AlertIncidents.
+ */
+ public AlertIncidents alertIncidents() {
+ if (this.alertIncidents == null) {
+ this.alertIncidents = new AlertIncidentsImpl(clientObject.getAlertIncidents(), this);
+ }
+ return alertIncidents;
+ }
+
+ /**
+ * Gets the resource collection API of AlertOperations.
+ *
+ * @return Resource collection API of AlertOperations.
+ */
+ public AlertOperations alertOperations() {
+ if (this.alertOperations == null) {
+ this.alertOperations = new AlertOperationsImpl(clientObject.getAlertOperations(), this);
+ }
+ return alertOperations;
+ }
+
+ /**
+ * Gets wrapped service client AuthorizationManagementClient providing direct access to the underlying
+ * auto-generated API implementation, based on Azure REST API.
+ *
+ * @return Wrapped service client AuthorizationManagementClient.
+ */
+ 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 000000000000..82164e890336
--- /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.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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.
+ *
+ * @throws com.azure.core.management.exception.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 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);
+
+ /**
+ * 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);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewHistoryDefinitionInstancesClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewHistoryDefinitionInstancesClient.java
new file mode 100644
index 000000000000..5118da1b6688
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewHistoryDefinitionInstancesClient.java
@@ -0,0 +1,47 @@
+// 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.AccessReviewHistoryInstanceInner;
+
+/**
+ * An instance of this class provides access to all the operations defined in
+ * AccessReviewHistoryDefinitionInstancesClient.
+ */
+public interface AccessReviewHistoryDefinitionInstancesClient {
+ /**
+ * Generates a uri which can be used to retrieve review history data. This URI has a TTL of 1 day and can be
+ * retrieved by fetching the accessReviewHistoryDefinition object.
+ *
+ * @param historyDefinitionId The id of the access review history definition.
+ * @param instanceId The id of the access review history definition instance to generate a URI 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 access Review History Definition Instance along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response generateDownloadUriWithResponse(String historyDefinitionId,
+ String instanceId, Context context);
+
+ /**
+ * Generates a uri which can be used to retrieve review history data. This URI has a TTL of 1 day and can be
+ * retrieved by fetching the accessReviewHistoryDefinition object.
+ *
+ * @param historyDefinitionId The id of the access review history definition.
+ * @param instanceId The id of the access review history definition instance to generate a URI 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 access Review History Definition Instance.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AccessReviewHistoryInstanceInner generateDownloadUri(String historyDefinitionId, String instanceId);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewHistoryDefinitionInstancesOperationsClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewHistoryDefinitionInstancesOperationsClient.java
new file mode 100644
index 000000000000..5626b612cb5d
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewHistoryDefinitionInstancesOperationsClient.java
@@ -0,0 +1,44 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.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.AccessReviewHistoryInstanceInner;
+
+/**
+ * An instance of this class provides access to all the operations defined in
+ * AccessReviewHistoryDefinitionInstancesOperationsClient.
+ */
+public interface AccessReviewHistoryDefinitionInstancesOperationsClient {
+ /**
+ * Get access review history definition instances by definition Id.
+ *
+ * @param historyDefinitionId The id of the access review history 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 history definition instances by definition Id as paginated response with
+ * {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String historyDefinitionId);
+
+ /**
+ * Get access review history definition instances by definition Id.
+ *
+ * @param historyDefinitionId The id of the access review history 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 access review history definition instances by definition Id as paginated response with
+ * {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String historyDefinitionId, Context context);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewHistoryDefinitionOperationsClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewHistoryDefinitionOperationsClient.java
new file mode 100644
index 000000000000..85b936283327
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewHistoryDefinitionOperationsClient.java
@@ -0,0 +1,71 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.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.AccessReviewHistoryDefinitionInner;
+import com.azure.resourcemanager.authorization.generated.fluent.models.AccessReviewHistoryDefinitionProperties;
+
+/**
+ * An instance of this class provides access to all the operations defined in
+ * AccessReviewHistoryDefinitionOperationsClient.
+ */
+public interface AccessReviewHistoryDefinitionOperationsClient {
+ /**
+ * Create a scheduled or one-time Access Review History Definition.
+ *
+ * @param historyDefinitionId The id of the access review history definition.
+ * @param properties Access review history 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 History Definition along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createWithResponse(String historyDefinitionId,
+ AccessReviewHistoryDefinitionProperties properties, Context context);
+
+ /**
+ * Create a scheduled or one-time Access Review History Definition.
+ *
+ * @param historyDefinitionId The id of the access review history definition.
+ * @param properties Access review history 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 History Definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AccessReviewHistoryDefinitionInner create(String historyDefinitionId,
+ AccessReviewHistoryDefinitionProperties properties);
+
+ /**
+ * Delete an access review history definition.
+ *
+ * @param historyDefinitionId The id of the access review history 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 historyDefinitionId, Context context);
+
+ /**
+ * Delete an access review history definition.
+ *
+ * @param historyDefinitionId The id of the access review history 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 historyDefinitionId);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewHistoryDefinitionsClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewHistoryDefinitionsClient.java
new file mode 100644
index 000000000000..b21cbc101326
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewHistoryDefinitionsClient.java
@@ -0,0 +1,68 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.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.AccessReviewHistoryDefinitionInner;
+
+/**
+ * An instance of this class provides access to all the operations defined in AccessReviewHistoryDefinitionsClient.
+ */
+public interface AccessReviewHistoryDefinitionsClient {
+ /**
+ * Lists the accessReviewHistoryDefinitions available from this provider, definition instances are only available
+ * for 30 days after creation.
+ *
+ * @throws com.azure.core.management.exception.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 History Definitions as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Lists the accessReviewHistoryDefinitions available from this provider, definition instances are only available
+ * for 30 days after creation.
+ *
+ * @param filter The filter to apply on the operation. Only standard filters on definition name and created date are
+ * supported.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 History Definitions as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String filter, Context context);
+
+ /**
+ * Get access review history definition by definition Id.
+ *
+ * @param historyDefinitionId The id of the access review history 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 access review history definition by definition Id along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByIdWithResponse(String historyDefinitionId, Context context);
+
+ /**
+ * Get access review history definition by definition Id.
+ *
+ * @param historyDefinitionId The id of the access review history 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 history definition by definition Id.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AccessReviewHistoryDefinitionInner getById(String historyDefinitionId);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewInstanceContactedReviewersClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewInstanceContactedReviewersClient.java
new file mode 100644
index 000000000000..6fc9e68ed23f
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewInstanceContactedReviewersClient.java
@@ -0,0 +1,44 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.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.AccessReviewContactedReviewerInner;
+
+/**
+ * An instance of this class provides access to all the operations defined in
+ * AccessReviewInstanceContactedReviewersClient.
+ */
+public interface AccessReviewInstanceContactedReviewersClient {
+ /**
+ * Get access review instance contacted reviewers.
+ *
+ * @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 contacted reviewers as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String scheduleDefinitionId, String id);
+
+ /**
+ * Get access review instance contacted reviewers.
+ *
+ * @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 instance contacted reviewers as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String scheduleDefinitionId, String id, 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 000000000000..e2083e165f06
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewInstanceDecisionsClient.java
@@ -0,0 +1,47 @@
+// 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 000000000000..b3c5e684d109
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewInstanceMyDecisionsClient.java
@@ -0,0 +1,112 @@
+// 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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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);
+
+ /**
+ * 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);
+
+ /**
+ * 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);
+
+ /**
+ * 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);
+}
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 000000000000..398eec41dcb9
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewInstanceOperationsClient.java
@@ -0,0 +1,145 @@
+// 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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 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 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 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 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 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 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 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 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);
+
+ /**
+ * 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);
+}
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 000000000000..7b7e4278c3a5
--- /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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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);
+
+ /**
+ * 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);
+}
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 000000000000..58eb3d480081
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewInstancesClient.java
@@ -0,0 +1,103 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.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;
+import com.azure.resourcemanager.authorization.generated.fluent.models.AccessReviewInstanceProperties;
+
+/**
+ * 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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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);
+
+ /**
+ * 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);
+
+ /**
+ * Update access review instance.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @param properties Access review instance 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 Instance along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createWithResponse(String scheduleDefinitionId, String id,
+ AccessReviewInstanceProperties properties, Context context);
+
+ /**
+ * Update access review instance.
+ *
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @param properties Access review instance 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 Instance.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AccessReviewInstanceInner create(String scheduleDefinitionId, String id, AccessReviewInstanceProperties properties);
+}
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 000000000000..62abeccfc7cd
--- /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 000000000000..cac215196445
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AccessReviewScheduleDefinitionsClient.java
@@ -0,0 +1,145 @@
+// 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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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);
+
+ /**
+ * 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);
+
+ /**
+ * 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);
+
+ /**
+ * 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);
+
+ /**
+ * 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);
+
+ /**
+ * 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);
+
+ /**
+ * 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);
+
+ /**
+ * 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);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AlertConfigurationsClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AlertConfigurationsClient.java
new file mode 100644
index 000000000000..89c160b0e437
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AlertConfigurationsClient.java
@@ -0,0 +1,108 @@
+// 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.AlertConfigurationInner;
+
+/**
+ * An instance of this class provides access to all the operations defined in AlertConfigurationsClient.
+ */
+public interface AlertConfigurationsClient {
+ /**
+ * Get the specified alert configuration.
+ *
+ * @param scope The scope of the alert configuration. 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 alertId The name of the alert configuration 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 alert configuration along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String scope, String alertId, Context context);
+
+ /**
+ * Get the specified alert configuration.
+ *
+ * @param scope The scope of the alert configuration. 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 alertId The name of the alert configuration 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 alert configuration.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AlertConfigurationInner get(String scope, String alertId);
+
+ /**
+ * Update an alert configuration.
+ *
+ * @param scope The scope of the alert configuration.
+ * @param alertId The name of the alert configuration to update.
+ * @param parameters Parameters for the alert configuration.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 updateWithResponse(String scope, String alertId, AlertConfigurationInner parameters,
+ Context context);
+
+ /**
+ * Update an alert configuration.
+ *
+ * @param scope The scope of the alert configuration.
+ * @param alertId The name of the alert configuration to update.
+ * @param parameters Parameters for the alert configuration.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void update(String scope, String alertId, AlertConfigurationInner parameters);
+
+ /**
+ * Gets alert configurations for a resource scope.
+ *
+ * @param scope The scope of the alert configuration.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return alert configurations for a resource scope as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listForScope(String scope);
+
+ /**
+ * Gets alert configurations for a resource scope.
+ *
+ * @param scope The scope of the alert configuration.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return alert configurations 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/AlertDefinitionsClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AlertDefinitionsClient.java
new file mode 100644
index 000000000000..1bfa68d3d4bf
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AlertDefinitionsClient.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.AlertDefinitionInner;
+
+/**
+ * An instance of this class provides access to all the operations defined in AlertDefinitionsClient.
+ */
+public interface AlertDefinitionsClient {
+ /**
+ * Get the specified alert definition.
+ *
+ * @param scope The scope of the alert definition. 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 alertDefinitionId The name of the alert definition 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 alert definition along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String scope, String alertDefinitionId, Context context);
+
+ /**
+ * Get the specified alert definition.
+ *
+ * @param scope The scope of the alert definition. 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 alertDefinitionId The name of the alert definition 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 alert definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AlertDefinitionInner get(String scope, String alertDefinitionId);
+
+ /**
+ * Gets alert definitions for a resource scope.
+ *
+ * @param scope The scope of the alert 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 alert definitions for a resource scope as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listForScope(String scope);
+
+ /**
+ * Gets alert definitions for a resource scope.
+ *
+ * @param scope The scope of the alert 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 alert definitions 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/AlertIncidentsClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AlertIncidentsClient.java
new file mode 100644
index 000000000000..0d3d3827736d
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AlertIncidentsClient.java
@@ -0,0 +1,111 @@
+// 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.AlertIncidentInner;
+
+/**
+ * An instance of this class provides access to all the operations defined in AlertIncidentsClient.
+ */
+public interface AlertIncidentsClient {
+ /**
+ * Get the specified alert incident.
+ *
+ * @param scope The scope of the alert incident. 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 alertId The name of the alert.
+ * @param alertIncidentId The name of the alert incident 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 alert incident along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String scope, String alertId, String alertIncidentId, Context context);
+
+ /**
+ * Get the specified alert incident.
+ *
+ * @param scope The scope of the alert incident. 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 alertId The name of the alert.
+ * @param alertIncidentId The name of the alert incident 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 alert incident.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AlertIncidentInner get(String scope, String alertId, String alertIncidentId);
+
+ /**
+ * Gets alert incidents for a resource scope.
+ *
+ * @param scope The scope of the alert incident.
+ * @param alertId The name of the alert.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return alert incidents for a resource scope as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listForScope(String scope, String alertId);
+
+ /**
+ * Gets alert incidents for a resource scope.
+ *
+ * @param scope The scope of the alert incident.
+ * @param alertId The name of the alert.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return alert incidents for a resource scope as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listForScope(String scope, String alertId, Context context);
+
+ /**
+ * Remediate an alert incident.
+ *
+ * @param scope The scope of the alert incident.
+ * @param alertId The name of the alert.
+ * @param alertIncidentId The name of the alert incident to remediate.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 remediateWithResponse(String scope, String alertId, String alertIncidentId, Context context);
+
+ /**
+ * Remediate an alert incident.
+ *
+ * @param scope The scope of the alert incident.
+ * @param alertId The name of the alert.
+ * @param alertIncidentId The name of the alert incident to remediate.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 remediate(String scope, String alertId, String alertIncidentId);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AlertOperationsClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AlertOperationsClient.java
new file mode 100644
index 000000000000..91014a73c9d0
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AlertOperationsClient.java
@@ -0,0 +1,43 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.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.AlertOperationResultInner;
+
+/**
+ * An instance of this class provides access to all the operations defined in AlertOperationsClient.
+ */
+public interface AlertOperationsClient {
+ /**
+ * Get the specified alert operation.
+ *
+ * @param scope The scope of the alert operation.
+ * @param operationId The id of the alert operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified alert operation along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String scope, String operationId, Context context);
+
+ /**
+ * Get the specified alert operation.
+ *
+ * @param scope The scope of the alert operation.
+ * @param operationId The id of the alert operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 alert operation.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AlertOperationResultInner get(String scope, String operationId);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AlertsClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AlertsClient.java
new file mode 100644
index 000000000000..088d759be32a
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AlertsClient.java
@@ -0,0 +1,217 @@
+// 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.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.authorization.generated.fluent.models.AlertInner;
+import com.azure.resourcemanager.authorization.generated.fluent.models.AlertOperationResultInner;
+
+/**
+ * An instance of this class provides access to all the operations defined in AlertsClient.
+ */
+public interface AlertsClient {
+ /**
+ * Get the specified alert.
+ *
+ * @param scope The scope of the alert. 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 alertId The name of the alert 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 alert along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String scope, String alertId, Context context);
+
+ /**
+ * Get the specified alert.
+ *
+ * @param scope The scope of the alert. 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 alertId The name of the alert 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 alert.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AlertInner get(String scope, String alertId);
+
+ /**
+ * Update an alert.
+ *
+ * @param scope The scope of the alert.
+ * @param alertId The name of the alert to dismiss.
+ * @param parameters Parameters for the alert.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 updateWithResponse(String scope, String alertId, AlertInner parameters, Context context);
+
+ /**
+ * Update an alert.
+ *
+ * @param scope The scope of the alert.
+ * @param alertId The name of the alert to dismiss.
+ * @param parameters Parameters for the alert.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void update(String scope, String alertId, AlertInner parameters);
+
+ /**
+ * Gets alerts for a resource scope.
+ *
+ * @param scope The scope of the alert.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return alerts for a resource scope as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listForScope(String scope);
+
+ /**
+ * Gets alerts for a resource scope.
+ *
+ * @param scope The scope of the alert.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return alerts for a resource scope as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listForScope(String scope, Context context);
+
+ /**
+ * Refresh an alert.
+ *
+ * @param scope The scope of the alert.
+ * @param alertId The name of the alert to refresh.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of alert operation result.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, AlertOperationResultInner> beginRefresh(String scope,
+ String alertId);
+
+ /**
+ * Refresh an alert.
+ *
+ * @param scope The scope of the alert.
+ * @param alertId The name of the alert to refresh.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of alert operation result.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, AlertOperationResultInner> beginRefresh(String scope,
+ String alertId, Context context);
+
+ /**
+ * Refresh an alert.
+ *
+ * @param scope The scope of the alert.
+ * @param alertId The name of the alert to refresh.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return alert operation result.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AlertOperationResultInner refresh(String scope, String alertId);
+
+ /**
+ * Refresh an alert.
+ *
+ * @param scope The scope of the alert.
+ * @param alertId The name of the alert to refresh.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return alert operation result.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AlertOperationResultInner refresh(String scope, String alertId, Context context);
+
+ /**
+ * Refresh all alerts for a resource scope.
+ *
+ * @param scope The scope of the alert.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of alert operation result.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, AlertOperationResultInner> beginRefreshAll(String scope);
+
+ /**
+ * Refresh all alerts for a resource scope.
+ *
+ * @param scope The scope of the alert.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of alert operation result.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, AlertOperationResultInner> beginRefreshAll(String scope,
+ Context context);
+
+ /**
+ * Refresh all alerts for a resource scope.
+ *
+ * @param scope The scope of the alert.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return alert operation result.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AlertOperationResultInner refreshAll(String scope);
+
+ /**
+ * Refresh all alerts for a resource scope.
+ *
+ * @param scope The scope of the alert.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return alert operation result.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AlertOperationResultInner refreshAll(String scope, 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 000000000000..9861994074e8
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/AuthorizationManagementClient.java
@@ -0,0 +1,365 @@
+// 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 ClassicAdministratorsClient object to access its operations.
+ *
+ * @return the ClassicAdministratorsClient object.
+ */
+ ClassicAdministratorsClient getClassicAdministrators();
+
+ /**
+ * Gets the GlobalAdministratorsClient object to access its operations.
+ *
+ * @return the GlobalAdministratorsClient object.
+ */
+ GlobalAdministratorsClient getGlobalAdministrators();
+
+ /**
+ * Gets the DenyAssignmentsClient object to access its operations.
+ *
+ * @return the DenyAssignmentsClient object.
+ */
+ DenyAssignmentsClient getDenyAssignments();
+
+ /**
+ * Gets the ProviderOperationsMetadatasClient object to access its operations.
+ *
+ * @return the ProviderOperationsMetadatasClient object.
+ */
+ ProviderOperationsMetadatasClient getProviderOperationsMetadatas();
+
+ /**
+ * Gets the RoleAssignmentsClient object to access its operations.
+ *
+ * @return the RoleAssignmentsClient object.
+ */
+ RoleAssignmentsClient getRoleAssignments();
+
+ /**
+ * 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 OperationsClient object to access its operations.
+ *
+ * @return the OperationsClient object.
+ */
+ OperationsClient getOperations();
+
+ /**
+ * Gets the AccessReviewHistoryDefinitionsClient object to access its operations.
+ *
+ * @return the AccessReviewHistoryDefinitionsClient object.
+ */
+ AccessReviewHistoryDefinitionsClient getAccessReviewHistoryDefinitions();
+
+ /**
+ * Gets the AccessReviewHistoryDefinitionOperationsClient object to access its operations.
+ *
+ * @return the AccessReviewHistoryDefinitionOperationsClient object.
+ */
+ AccessReviewHistoryDefinitionOperationsClient getAccessReviewHistoryDefinitionOperations();
+
+ /**
+ * Gets the AccessReviewHistoryDefinitionInstancesClient object to access its operations.
+ *
+ * @return the AccessReviewHistoryDefinitionInstancesClient object.
+ */
+ AccessReviewHistoryDefinitionInstancesClient getAccessReviewHistoryDefinitionInstances();
+
+ /**
+ * Gets the AccessReviewHistoryDefinitionInstancesOperationsClient object to access its operations.
+ *
+ * @return the AccessReviewHistoryDefinitionInstancesOperationsClient object.
+ */
+ AccessReviewHistoryDefinitionInstancesOperationsClient getAccessReviewHistoryDefinitionInstancesOperations();
+
+ /**
+ * 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 AccessReviewInstanceContactedReviewersClient object to access its operations.
+ *
+ * @return the AccessReviewInstanceContactedReviewersClient object.
+ */
+ AccessReviewInstanceContactedReviewersClient getAccessReviewInstanceContactedReviewers();
+
+ /**
+ * Gets the AccessReviewDefaultSettingsOperationsClient object to access its operations.
+ *
+ * @return the AccessReviewDefaultSettingsOperationsClient object.
+ */
+ AccessReviewDefaultSettingsOperationsClient getAccessReviewDefaultSettingsOperations();
+
+ /**
+ * Gets the ScopeAccessReviewHistoryDefinitionsClient object to access its operations.
+ *
+ * @return the ScopeAccessReviewHistoryDefinitionsClient object.
+ */
+ ScopeAccessReviewHistoryDefinitionsClient getScopeAccessReviewHistoryDefinitions();
+
+ /**
+ * Gets the ScopeAccessReviewHistoryDefinitionOperationsClient object to access its operations.
+ *
+ * @return the ScopeAccessReviewHistoryDefinitionOperationsClient object.
+ */
+ ScopeAccessReviewHistoryDefinitionOperationsClient getScopeAccessReviewHistoryDefinitionOperations();
+
+ /**
+ * Gets the ScopeAccessReviewHistoryDefinitionInstancesClient object to access its operations.
+ *
+ * @return the ScopeAccessReviewHistoryDefinitionInstancesClient object.
+ */
+ ScopeAccessReviewHistoryDefinitionInstancesClient getScopeAccessReviewHistoryDefinitionInstances();
+
+ /**
+ * Gets the ScopeAccessReviewHistoryDefinitionInstancesOperationsClient object to access its operations.
+ *
+ * @return the ScopeAccessReviewHistoryDefinitionInstancesOperationsClient object.
+ */
+ ScopeAccessReviewHistoryDefinitionInstancesOperationsClient
+ getScopeAccessReviewHistoryDefinitionInstancesOperations();
+
+ /**
+ * Gets the ScopeAccessReviewScheduleDefinitionsClient object to access its operations.
+ *
+ * @return the ScopeAccessReviewScheduleDefinitionsClient object.
+ */
+ ScopeAccessReviewScheduleDefinitionsClient getScopeAccessReviewScheduleDefinitions();
+
+ /**
+ * Gets the ScopeAccessReviewInstancesClient object to access its operations.
+ *
+ * @return the ScopeAccessReviewInstancesClient object.
+ */
+ ScopeAccessReviewInstancesClient getScopeAccessReviewInstances();
+
+ /**
+ * Gets the ScopeAccessReviewInstanceOperationsClient object to access its operations.
+ *
+ * @return the ScopeAccessReviewInstanceOperationsClient object.
+ */
+ ScopeAccessReviewInstanceOperationsClient getScopeAccessReviewInstanceOperations();
+
+ /**
+ * Gets the ScopeAccessReviewInstanceDecisionsClient object to access its operations.
+ *
+ * @return the ScopeAccessReviewInstanceDecisionsClient object.
+ */
+ ScopeAccessReviewInstanceDecisionsClient getScopeAccessReviewInstanceDecisions();
+
+ /**
+ * Gets the ScopeAccessReviewInstanceContactedReviewersClient object to access its operations.
+ *
+ * @return the ScopeAccessReviewInstanceContactedReviewersClient object.
+ */
+ ScopeAccessReviewInstanceContactedReviewersClient getScopeAccessReviewInstanceContactedReviewers();
+
+ /**
+ * Gets the ScopeAccessReviewDefaultSettingsClient object to access its operations.
+ *
+ * @return the ScopeAccessReviewDefaultSettingsClient object.
+ */
+ ScopeAccessReviewDefaultSettingsClient getScopeAccessReviewDefaultSettings();
+
+ /**
+ * 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 TenantLevelAccessReviewInstanceContactedReviewersClient object to access its operations.
+ *
+ * @return the TenantLevelAccessReviewInstanceContactedReviewersClient object.
+ */
+ TenantLevelAccessReviewInstanceContactedReviewersClient getTenantLevelAccessReviewInstanceContactedReviewers();
+
+ /**
+ * 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 AlertsClient object to access its operations.
+ *
+ * @return the AlertsClient object.
+ */
+ AlertsClient getAlerts();
+
+ /**
+ * Gets the AlertConfigurationsClient object to access its operations.
+ *
+ * @return the AlertConfigurationsClient object.
+ */
+ AlertConfigurationsClient getAlertConfigurations();
+
+ /**
+ * Gets the AlertDefinitionsClient object to access its operations.
+ *
+ * @return the AlertDefinitionsClient object.
+ */
+ AlertDefinitionsClient getAlertDefinitions();
+
+ /**
+ * Gets the AlertIncidentsClient object to access its operations.
+ *
+ * @return the AlertIncidentsClient object.
+ */
+ AlertIncidentsClient getAlertIncidents();
+
+ /**
+ * Gets the AlertOperationsClient object to access its operations.
+ *
+ * @return the AlertOperationsClient object.
+ */
+ AlertOperationsClient getAlertOperations();
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/ClassicAdministratorsClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/ClassicAdministratorsClient.java
new file mode 100644
index 000000000000..0b73ec4409c0
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/ClassicAdministratorsClient.java
@@ -0,0 +1,40 @@
+// 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.ClassicAdministratorInner;
+
+/**
+ * An instance of this class provides access to all the operations defined in ClassicAdministratorsClient.
+ */
+public interface ClassicAdministratorsClient {
+ /**
+ * Gets service administrator, account administrator, and co-administrators 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 service administrator, account administrator, and co-administrators for the subscription as paginated
+ * response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Gets service administrator, account administrator, and co-administrators 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 service administrator, account administrator, and co-administrators for the subscription 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/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 000000000000..b70f2baaec1c
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/DenyAssignmentsClient.java
@@ -0,0 +1,214 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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);
+
+ /**
+ * 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);
+
+ /**
+ * 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 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 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 000000000000..beb2ba4ce20e
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/EligibleChildResourcesClient.java
@@ -0,0 +1,46 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.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/GlobalAdministratorsClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/GlobalAdministratorsClient.java
new file mode 100644
index 000000000000..8f3acd6cf641
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/GlobalAdministratorsClient.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;
+
+/**
+ * An instance of this class provides access to all the operations defined in GlobalAdministratorsClient.
+ */
+public interface GlobalAdministratorsClient {
+ /**
+ * Elevates access for a Global Administrator.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 elevateAccessWithResponse(Context context);
+
+ /**
+ * Elevates access for a Global Administrator.
+ *
+ * @throws com.azure.core.management.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 elevateAccess();
+}
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 000000000000..e5877569b10a
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/OperationsClient.java
@@ -0,0 +1,40 @@
+// 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 000000000000..8bf6998a0720
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/PermissionsClient.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;
+
+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 000000000000..72a4371aacc7
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/ProviderOperationsMetadatasClient.java
@@ -0,0 +1,67 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.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.
+ * @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 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 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/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 000000000000..1e31de5cfe85
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/RoleAssignmentScheduleInstancesClient.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.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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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);
+
+ /**
+ * 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);
+}
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 000000000000..da0025cbcce2
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/RoleAssignmentScheduleRequestsClient.java
@@ -0,0 +1,174 @@
+// 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 '/subscriptions/{subscription-id}/' for a subscription,
+ * '/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}' for a resource group, and
+ * '/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);
+
+ /**
+ * 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 '/subscriptions/{subscription-id}/' for a subscription,
+ * '/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}' for a resource group, and
+ * '/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);
+
+ /**
+ * 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);
+
+ /**
+ * 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);
+
+ /**
+ * 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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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);
+
+ /**
+ * 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);
+
+ /**
+ * Validates a new role assignment schedule request.
+ *
+ * @param scope The scope of the role assignment request to validate.
+ * @param roleAssignmentScheduleRequestName The name of the role assignment request to validate.
+ * @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 validateWithResponse(String scope,
+ String roleAssignmentScheduleRequestName, RoleAssignmentScheduleRequestInner parameters, Context context);
+
+ /**
+ * Validates a new role assignment schedule request.
+ *
+ * @param scope The scope of the role assignment request to validate.
+ * @param roleAssignmentScheduleRequestName The name of the role assignment request to validate.
+ * @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 validate(String scope, String roleAssignmentScheduleRequestName,
+ RoleAssignmentScheduleRequestInner parameters);
+}
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 000000000000..594e335aea4a
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/RoleAssignmentSchedulesClient.java
@@ -0,0 +1,75 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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);
+
+ /**
+ * 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);
+
+ /**
+ * 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 000000000000..1ca3a095a4d4
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/RoleAssignmentsClient.java
@@ -0,0 +1,349 @@
+// 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.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.
+ * @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);
+
+ /**
+ * 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);
+
+ /**
+ * 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);
+
+ /**
+ * 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);
+
+ /**
+ * 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);
+
+ /**
+ * 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);
+
+ /**
+ * 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>.
+ * @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);
+
+ /**
+ * 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);
+
+ /**
+ * 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);
+
+ /**
+ * 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);
+
+ /**
+ * 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);
+
+ /**
+ * 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);
+}
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 000000000000..1fc73305d00e
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/RoleDefinitionsClient.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;
+
+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 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 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);
+
+ /**
+ * Deletes a role definition.
+ *
+ * @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 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);
+
+ /**
+ * Get role definition by ID (GUID).
+ *
+ * @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 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 ID (GUID) along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String scope, String roleDefinitionId, Context context);
+
+ /**
+ * Get role definition by ID (GUID).
+ *
+ * @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 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 ID (GUID).
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RoleDefinitionInner get(String scope, String roleDefinitionId);
+
+ /**
+ * Creates or updates a role definition.
+ *
+ * @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 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);
+
+ /**
+ * Creates or updates a role definition.
+ *
+ * @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 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);
+
+ /**
+ * Get all role definitions that are applicable at scope and above.
+ *
+ * @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 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 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 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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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);
+
+ /**
+ * 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);
+}
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 000000000000..39fbf1e0a386
--- /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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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);
+
+ /**
+ * 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);
+}
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 000000000000..63e01c4b907e
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/RoleEligibilityScheduleRequestsClient.java
@@ -0,0 +1,172 @@
+// 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 '/subscriptions/{subscription-id}/' for a subscription,
+ * '/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}' for a resource group, and
+ * '/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);
+
+ /**
+ * 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 '/subscriptions/{subscription-id}/' for a subscription,
+ * '/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}' for a resource group, and
+ * '/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);
+
+ /**
+ * 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);
+
+ /**
+ * 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);
+
+ /**
+ * 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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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);
+
+ /**
+ * 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);
+
+ /**
+ * Validates a new role eligibility schedule request.
+ *
+ * @param scope The scope of the role eligibility request to validate.
+ * @param roleEligibilityScheduleRequestName The name of the role eligibility request to validate.
+ * @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 validateWithResponse(String scope,
+ String roleEligibilityScheduleRequestName, RoleEligibilityScheduleRequestInner parameters, Context context);
+
+ /**
+ * Validates a new role eligibility schedule request.
+ *
+ * @param scope The scope of the role eligibility request to validate.
+ * @param roleEligibilityScheduleRequestName The name of the role eligibility request to validate.
+ * @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 validate(String scope, String roleEligibilityScheduleRequestName,
+ RoleEligibilityScheduleRequestInner parameters);
+}
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 000000000000..ec8d9268e4be
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/RoleEligibilitySchedulesClient.java
@@ -0,0 +1,75 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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);
+
+ /**
+ * 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);
+
+ /**
+ * 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 000000000000..f7bfee32f213
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/RoleManagementPoliciesClient.java
@@ -0,0 +1,126 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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);
+
+ /**
+ * 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);
+
+ /**
+ * 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);
+
+ /**
+ * 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);
+
+ /**
+ * 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);
+
+ /**
+ * 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);
+
+ /**
+ * 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 000000000000..bb6257952367
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/RoleManagementPolicyAssignmentsClient.java
@@ -0,0 +1,135 @@
+// 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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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);
+
+ /**
+ * 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);
+
+ /**
+ * 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);
+
+ /**
+ * 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);
+
+ /**
+ * 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);
+
+ /**
+ * 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);
+
+ /**
+ * 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/ScopeAccessReviewDefaultSettingsClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/ScopeAccessReviewDefaultSettingsClient.java
new file mode 100644
index 000000000000..90466f9bdf5c
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/ScopeAccessReviewDefaultSettingsClient.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.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 ScopeAccessReviewDefaultSettingsClient.
+ */
+public interface ScopeAccessReviewDefaultSettingsClient {
+ /**
+ * Get access review default settings for the subscription.
+ *
+ * @param scope The scope of the resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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(String scope, Context context);
+
+ /**
+ * Get access review default settings for the subscription.
+ *
+ * @param scope The scope of the resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return access review default settings for the subscription.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AccessReviewDefaultSettingsInner get(String scope);
+
+ /**
+ * Get access review default settings for the subscription.
+ *
+ * @param scope The scope of the resource.
+ * @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(String scope, AccessReviewScheduleSettings properties,
+ Context context);
+
+ /**
+ * Get access review default settings for the subscription.
+ *
+ * @param scope The scope of the resource.
+ * @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(String scope, AccessReviewScheduleSettings properties);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/ScopeAccessReviewHistoryDefinitionInstancesClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/ScopeAccessReviewHistoryDefinitionInstancesClient.java
new file mode 100644
index 000000000000..d4d798ad8862
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/ScopeAccessReviewHistoryDefinitionInstancesClient.java
@@ -0,0 +1,49 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.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.AccessReviewHistoryInstanceInner;
+
+/**
+ * An instance of this class provides access to all the operations defined in
+ * ScopeAccessReviewHistoryDefinitionInstancesClient.
+ */
+public interface ScopeAccessReviewHistoryDefinitionInstancesClient {
+ /**
+ * Generates a uri which can be used to retrieve review history data. This URI has a TTL of 1 day and can be
+ * retrieved by fetching the accessReviewHistoryDefinition object.
+ *
+ * @param scope The scope of the resource.
+ * @param historyDefinitionId The id of the access review history definition.
+ * @param instanceId The id of the access review history definition instance to generate a URI 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 access Review History Definition Instance along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response generateDownloadUriWithResponse(String scope, String historyDefinitionId,
+ String instanceId, Context context);
+
+ /**
+ * Generates a uri which can be used to retrieve review history data. This URI has a TTL of 1 day and can be
+ * retrieved by fetching the accessReviewHistoryDefinition object.
+ *
+ * @param scope The scope of the resource.
+ * @param historyDefinitionId The id of the access review history definition.
+ * @param instanceId The id of the access review history definition instance to generate a URI 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 access Review History Definition Instance.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AccessReviewHistoryInstanceInner generateDownloadUri(String scope, String historyDefinitionId, String instanceId);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/ScopeAccessReviewHistoryDefinitionInstancesOperationsClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/ScopeAccessReviewHistoryDefinitionInstancesOperationsClient.java
new file mode 100644
index 000000000000..c310128b94be
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/ScopeAccessReviewHistoryDefinitionInstancesOperationsClient.java
@@ -0,0 +1,46 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.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.AccessReviewHistoryInstanceInner;
+
+/**
+ * An instance of this class provides access to all the operations defined in
+ * ScopeAccessReviewHistoryDefinitionInstancesOperationsClient.
+ */
+public interface ScopeAccessReviewHistoryDefinitionInstancesOperationsClient {
+ /**
+ * Get access review history definition instances by definition Id.
+ *
+ * @param scope The scope of the resource.
+ * @param historyDefinitionId The id of the access review history 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 history definition instances by definition Id as paginated response with
+ * {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String scope, String historyDefinitionId);
+
+ /**
+ * Get access review history definition instances by definition Id.
+ *
+ * @param scope The scope of the resource.
+ * @param historyDefinitionId The id of the access review history 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 access review history definition instances by definition Id as paginated response with
+ * {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String scope, String historyDefinitionId, Context context);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/ScopeAccessReviewHistoryDefinitionOperationsClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/ScopeAccessReviewHistoryDefinitionOperationsClient.java
new file mode 100644
index 000000000000..037ddbf685d4
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/ScopeAccessReviewHistoryDefinitionOperationsClient.java
@@ -0,0 +1,75 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.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.AccessReviewHistoryDefinitionInner;
+import com.azure.resourcemanager.authorization.generated.fluent.models.AccessReviewHistoryDefinitionProperties;
+
+/**
+ * An instance of this class provides access to all the operations defined in
+ * ScopeAccessReviewHistoryDefinitionOperationsClient.
+ */
+public interface ScopeAccessReviewHistoryDefinitionOperationsClient {
+ /**
+ * Create a scheduled or one-time Access Review History Definition.
+ *
+ * @param scope The scope of the resource.
+ * @param historyDefinitionId The id of the access review history definition.
+ * @param properties Access review history 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 History Definition along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createWithResponse(String scope, String historyDefinitionId,
+ AccessReviewHistoryDefinitionProperties properties, Context context);
+
+ /**
+ * Create a scheduled or one-time Access Review History Definition.
+ *
+ * @param scope The scope of the resource.
+ * @param historyDefinitionId The id of the access review history definition.
+ * @param properties Access review history 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 History Definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AccessReviewHistoryDefinitionInner create(String scope, String historyDefinitionId,
+ AccessReviewHistoryDefinitionProperties properties);
+
+ /**
+ * Delete an access review history definition.
+ *
+ * @param scope The scope of the resource.
+ * @param historyDefinitionId The id of the access review history 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 scope, String historyDefinitionId, Context context);
+
+ /**
+ * Delete an access review history definition.
+ *
+ * @param scope The scope of the resource.
+ * @param historyDefinitionId The id of the access review history 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 scope, String historyDefinitionId);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/ScopeAccessReviewHistoryDefinitionsClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/ScopeAccessReviewHistoryDefinitionsClient.java
new file mode 100644
index 000000000000..765250d55c4b
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/ScopeAccessReviewHistoryDefinitionsClient.java
@@ -0,0 +1,74 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.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.AccessReviewHistoryDefinitionInner;
+
+/**
+ * An instance of this class provides access to all the operations defined in ScopeAccessReviewHistoryDefinitionsClient.
+ */
+public interface ScopeAccessReviewHistoryDefinitionsClient {
+ /**
+ * Lists the accessReviewHistoryDefinitions available from this provider, definition instances are only available
+ * for 30 days after creation.
+ *
+ * @param scope The scope of the resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of Access Review History Definitions as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String scope);
+
+ /**
+ * Lists the accessReviewHistoryDefinitions available from this provider, definition instances are only available
+ * for 30 days after creation.
+ *
+ * @param scope The scope of the resource.
+ * @param filter The filter to apply on the operation. Only standard filters on definition name and created date are
+ * supported.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 History Definitions as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String scope, String filter, Context context);
+
+ /**
+ * Get access review history definition by definition Id.
+ *
+ * @param scope The scope of the resource.
+ * @param historyDefinitionId The id of the access review history 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 access review history definition by definition Id along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByIdWithResponse(String scope, String historyDefinitionId,
+ Context context);
+
+ /**
+ * Get access review history definition by definition Id.
+ *
+ * @param scope The scope of the resource.
+ * @param historyDefinitionId The id of the access review history 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 history definition by definition Id.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AccessReviewHistoryDefinitionInner getById(String scope, String historyDefinitionId);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/ScopeAccessReviewInstanceContactedReviewersClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/ScopeAccessReviewInstanceContactedReviewersClient.java
new file mode 100644
index 000000000000..62c21d0b4a52
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/ScopeAccessReviewInstanceContactedReviewersClient.java
@@ -0,0 +1,47 @@
+// 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.AccessReviewContactedReviewerInner;
+
+/**
+ * An instance of this class provides access to all the operations defined in
+ * ScopeAccessReviewInstanceContactedReviewersClient.
+ */
+public interface ScopeAccessReviewInstanceContactedReviewersClient {
+ /**
+ * Get access review instance contacted reviewers.
+ *
+ * @param scope The scope of the resource.
+ * @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 contacted reviewers as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String scope, String scheduleDefinitionId, String id);
+
+ /**
+ * Get access review instance contacted reviewers.
+ *
+ * @param scope The scope of the resource.
+ * @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 instance contacted reviewers as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String scope, String scheduleDefinitionId, String id,
+ Context context);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/ScopeAccessReviewInstanceDecisionsClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/ScopeAccessReviewInstanceDecisionsClient.java
new file mode 100644
index 000000000000..a7abdd40d59d
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/ScopeAccessReviewInstanceDecisionsClient.java
@@ -0,0 +1,49 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.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 ScopeAccessReviewInstanceDecisionsClient.
+ */
+public interface ScopeAccessReviewInstanceDecisionsClient {
+ /**
+ * Get access review instance decisions.
+ *
+ * @param scope The scope of the resource.
+ * @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 scope, String scheduleDefinitionId, String id);
+
+ /**
+ * Get access review instance decisions.
+ *
+ * @param scope The scope of the resource.
+ * @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 scope, 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/ScopeAccessReviewInstanceOperationsClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/ScopeAccessReviewInstanceOperationsClient.java
new file mode 100644
index 000000000000..c91b680b63a8
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/ScopeAccessReviewInstanceOperationsClient.java
@@ -0,0 +1,160 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.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.models.RecordAllDecisionsProperties;
+
+/**
+ * An instance of this class provides access to all the operations defined in ScopeAccessReviewInstanceOperationsClient.
+ */
+public interface ScopeAccessReviewInstanceOperationsClient {
+ /**
+ * An action to stop an access review instance.
+ *
+ * @param scope The scope of the resource.
+ * @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 scope, String scheduleDefinitionId, String id, Context context);
+
+ /**
+ * An action to stop an access review instance.
+ *
+ * @param scope The scope of the resource.
+ * @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 scope, String scheduleDefinitionId, String id);
+
+ /**
+ * An action to approve/deny all decisions for a review with certain filters.
+ *
+ * @param scope The scope of the resource.
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @param properties Record all decisions payload.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException 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 recordAllDecisionsWithResponse(String scope, String scheduleDefinitionId, String id,
+ RecordAllDecisionsProperties properties, Context context);
+
+ /**
+ * An action to approve/deny all decisions for a review with certain filters.
+ *
+ * @param scope The scope of the resource.
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @param properties Record all decisions payload.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 recordAllDecisions(String scope, String scheduleDefinitionId, String id,
+ RecordAllDecisionsProperties properties);
+
+ /**
+ * An action to reset all decisions for an access review instance.
+ *
+ * @param scope The scope of the resource.
+ * @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 scope, String scheduleDefinitionId, String id, Context context);
+
+ /**
+ * An action to reset all decisions for an access review instance.
+ *
+ * @param scope The scope of the resource.
+ * @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 scope, String scheduleDefinitionId, String id);
+
+ /**
+ * An action to apply all decisions for an access review instance.
+ *
+ * @param scope The scope of the resource.
+ * @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 scope, String scheduleDefinitionId, String id, Context context);
+
+ /**
+ * An action to apply all decisions for an access review instance.
+ *
+ * @param scope The scope of the resource.
+ * @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 scope, String scheduleDefinitionId, String id);
+
+ /**
+ * An action to send reminders for an access review instance.
+ *
+ * @param scope The scope of the resource.
+ * @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 scope, String scheduleDefinitionId, String id, Context context);
+
+ /**
+ * An action to send reminders for an access review instance.
+ *
+ * @param scope The scope of the resource.
+ * @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 scope, String scheduleDefinitionId, String id);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/ScopeAccessReviewInstancesClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/ScopeAccessReviewInstancesClient.java
new file mode 100644
index 000000000000..8d8ac6ea1db1
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/ScopeAccessReviewInstancesClient.java
@@ -0,0 +1,112 @@
+// 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;
+import com.azure.resourcemanager.authorization.generated.fluent.models.AccessReviewInstanceProperties;
+
+/**
+ * An instance of this class provides access to all the operations defined in ScopeAccessReviewInstancesClient.
+ */
+public interface ScopeAccessReviewInstancesClient {
+ /**
+ * Get access review instances.
+ *
+ * @param scope The scope of the resource.
+ * @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 scope, String scheduleDefinitionId);
+
+ /**
+ * Get access review instances.
+ *
+ * @param scope The scope of the resource.
+ * @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 scope, String scheduleDefinitionId, String filter,
+ Context context);
+
+ /**
+ * Get access review instances.
+ *
+ * @param scope The scope of the resource.
+ * @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 scope, String scheduleDefinitionId, String id,
+ Context context);
+
+ /**
+ * Get access review instances.
+ *
+ * @param scope The scope of the resource.
+ * @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 scope, String scheduleDefinitionId, String id);
+
+ /**
+ * Update access review instance.
+ *
+ * @param scope The scope of the resource.
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @param properties Access review instance 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 Instance along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createWithResponse(String scope, String scheduleDefinitionId, String id,
+ AccessReviewInstanceProperties properties, Context context);
+
+ /**
+ * Update access review instance.
+ *
+ * @param scope The scope of the resource.
+ * @param scheduleDefinitionId The id of the access review schedule definition.
+ * @param id The id of the access review instance.
+ * @param properties Access review instance 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 Instance.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AccessReviewInstanceInner create(String scope, String scheduleDefinitionId, String id,
+ AccessReviewInstanceProperties properties);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/ScopeAccessReviewScheduleDefinitionsClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/ScopeAccessReviewScheduleDefinitionsClient.java
new file mode 100644
index 000000000000..710d0b29e67b
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/ScopeAccessReviewScheduleDefinitionsClient.java
@@ -0,0 +1,158 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.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
+ * ScopeAccessReviewScheduleDefinitionsClient.
+ */
+public interface ScopeAccessReviewScheduleDefinitionsClient {
+ /**
+ * Get access review schedule definitions.
+ *
+ * @param scope The scope of the resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return access review schedule definitions as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String scope);
+
+ /**
+ * Get access review schedule definitions.
+ *
+ * @param scope The scope of the resource.
+ * @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 scope, String filter, Context context);
+
+ /**
+ * Get single access review definition.
+ *
+ * @param scope The scope of the resource.
+ * @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 scope, String scheduleDefinitionId,
+ Context context);
+
+ /**
+ * Get single access review definition.
+ *
+ * @param scope The scope of the resource.
+ * @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 scope, String scheduleDefinitionId);
+
+ /**
+ * Delete access review schedule definition.
+ *
+ * @param scope The scope of the resource.
+ * @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 scope, String scheduleDefinitionId, Context context);
+
+ /**
+ * Delete access review schedule definition.
+ *
+ * @param scope The scope of the resource.
+ * @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 scope, String scheduleDefinitionId);
+
+ /**
+ * Create or Update access review schedule definition.
+ *
+ * @param scope The scope of the resource.
+ * @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 scope,
+ String scheduleDefinitionId, AccessReviewScheduleDefinitionProperties properties, Context context);
+
+ /**
+ * Create or Update access review schedule definition.
+ *
+ * @param scope The scope of the resource.
+ * @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 scope, String scheduleDefinitionId,
+ AccessReviewScheduleDefinitionProperties properties);
+
+ /**
+ * Stop access review definition.
+ *
+ * @param scope The scope of the resource.
+ * @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 scope, String scheduleDefinitionId, Context context);
+
+ /**
+ * Stop access review definition.
+ *
+ * @param scope The scope of the resource.
+ * @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 scope, String scheduleDefinitionId);
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/TenantLevelAccessReviewInstanceContactedReviewersClient.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/TenantLevelAccessReviewInstanceContactedReviewersClient.java
new file mode 100644
index 000000000000..c735737d60ef
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/TenantLevelAccessReviewInstanceContactedReviewersClient.java
@@ -0,0 +1,44 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.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.AccessReviewContactedReviewerInner;
+
+/**
+ * An instance of this class provides access to all the operations defined in
+ * TenantLevelAccessReviewInstanceContactedReviewersClient.
+ */
+public interface TenantLevelAccessReviewInstanceContactedReviewersClient {
+ /**
+ * Get access review instance contacted reviewers.
+ *
+ * @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 contacted reviewers as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String scheduleDefinitionId, String id);
+
+ /**
+ * Get access review instance contacted reviewers.
+ *
+ * @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 instance contacted reviewers as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String scheduleDefinitionId, String id, 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 000000000000..beb4b79ed3d1
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewActorIdentity.java
@@ -0,0 +1,131 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewActorIdentityType;
+import java.io.IOException;
+
+/**
+ * Details of the actor identity.
+ */
+@Immutable
+public final class AccessReviewActorIdentity implements JsonSerializable {
+ /*
+ * The identity id
+ */
+ private String principalId;
+
+ /*
+ * The identity type : user/servicePrincipal
+ */
+ private AccessReviewActorIdentityType principalType;
+
+ /*
+ * The identity display name
+ */
+ private String principalName;
+
+ /*
+ * The user principal name(if valid)
+ */
+ private String userPrincipalName;
+
+ /**
+ * Creates an instance of AccessReviewActorIdentity class.
+ */
+ public AccessReviewActorIdentity() {
+ }
+
+ /**
+ * 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() {
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AccessReviewActorIdentity from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AccessReviewActorIdentity if the JsonReader was pointing to an instance of it, or null if
+ * it was pointing to JSON null.
+ * @throws IOException If an error occurs while reading the AccessReviewActorIdentity.
+ */
+ public static AccessReviewActorIdentity fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AccessReviewActorIdentity deserializedAccessReviewActorIdentity = new AccessReviewActorIdentity();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("principalId".equals(fieldName)) {
+ deserializedAccessReviewActorIdentity.principalId = reader.getString();
+ } else if ("principalType".equals(fieldName)) {
+ deserializedAccessReviewActorIdentity.principalType
+ = AccessReviewActorIdentityType.fromString(reader.getString());
+ } else if ("principalName".equals(fieldName)) {
+ deserializedAccessReviewActorIdentity.principalName = reader.getString();
+ } else if ("userPrincipalName".equals(fieldName)) {
+ deserializedAccessReviewActorIdentity.userPrincipalName = reader.getString();
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAccessReviewActorIdentity;
+ });
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewContactedReviewerInner.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewContactedReviewerInner.java
new file mode 100644
index 000000000000..34e912b00e6a
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewContactedReviewerInner.java
@@ -0,0 +1,167 @@
+// 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.core.management.ProxyResource;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import java.io.IOException;
+import java.time.OffsetDateTime;
+
+/**
+ * Access Review Contacted Reviewer.
+ */
+@Immutable
+public final class AccessReviewContactedReviewerInner extends ProxyResource {
+ /*
+ * Access Review Contacted Reviewer properties.
+ */
+ private AccessReviewContactedReviewerProperties innerProperties;
+
+ /*
+ * The type of the resource.
+ */
+ private String type;
+
+ /*
+ * The name of the resource.
+ */
+ private String name;
+
+ /*
+ * Fully qualified resource Id for the resource.
+ */
+ private String id;
+
+ /**
+ * Creates an instance of AccessReviewContactedReviewerInner class.
+ */
+ public AccessReviewContactedReviewerInner() {
+ }
+
+ /**
+ * Get the innerProperties property: Access Review Contacted Reviewer properties.
+ *
+ * @return the innerProperties value.
+ */
+ private AccessReviewContactedReviewerProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the type property: The type of the resource.
+ *
+ * @return the type value.
+ */
+ @Override
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the name property: The name of the resource.
+ *
+ * @return the name value.
+ */
+ @Override
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the id property: Fully qualified resource Id for the resource.
+ *
+ * @return the id value.
+ */
+ @Override
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get the userDisplayName property: The display name of the reviewer.
+ *
+ * @return the userDisplayName value.
+ */
+ public String userDisplayName() {
+ return this.innerProperties() == null ? null : this.innerProperties().userDisplayName();
+ }
+
+ /**
+ * Get the userPrincipalName property: The user principal name of the reviewer.
+ *
+ * @return the userPrincipalName value.
+ */
+ public String userPrincipalName() {
+ return this.innerProperties() == null ? null : this.innerProperties().userPrincipalName();
+ }
+
+ /**
+ * Get the createdDateTime property: Date Time when the reviewer was contacted.
+ *
+ * @return the createdDateTime value.
+ */
+ public OffsetDateTime createdDateTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().createdDateTime();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeJsonField("properties", this.innerProperties);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AccessReviewContactedReviewerInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AccessReviewContactedReviewerInner if the JsonReader was pointing to an instance of it, or
+ * null if it was pointing to JSON null.
+ * @throws IllegalStateException If the deserialized JSON object was missing any required properties.
+ * @throws IOException If an error occurs while reading the AccessReviewContactedReviewerInner.
+ */
+ public static AccessReviewContactedReviewerInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AccessReviewContactedReviewerInner deserializedAccessReviewContactedReviewerInner
+ = new AccessReviewContactedReviewerInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("id".equals(fieldName)) {
+ deserializedAccessReviewContactedReviewerInner.id = reader.getString();
+ } else if ("name".equals(fieldName)) {
+ deserializedAccessReviewContactedReviewerInner.name = reader.getString();
+ } else if ("type".equals(fieldName)) {
+ deserializedAccessReviewContactedReviewerInner.type = reader.getString();
+ } else if ("properties".equals(fieldName)) {
+ deserializedAccessReviewContactedReviewerInner.innerProperties
+ = AccessReviewContactedReviewerProperties.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAccessReviewContactedReviewerInner;
+ });
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewContactedReviewerProperties.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewContactedReviewerProperties.java
new file mode 100644
index 000000000000..7709dc589b56
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewContactedReviewerProperties.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.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.core.util.CoreUtils;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import java.io.IOException;
+import java.time.OffsetDateTime;
+
+/**
+ * Properties of access review contacted reviewer.
+ */
+@Immutable
+public final class AccessReviewContactedReviewerProperties
+ implements JsonSerializable {
+ /*
+ * The display name of the reviewer
+ */
+ private String userDisplayName;
+
+ /*
+ * The user principal name of the reviewer
+ */
+ private String userPrincipalName;
+
+ /*
+ * Date Time when the reviewer was contacted.
+ */
+ private OffsetDateTime createdDateTime;
+
+ /**
+ * Creates an instance of AccessReviewContactedReviewerProperties class.
+ */
+ public AccessReviewContactedReviewerProperties() {
+ }
+
+ /**
+ * Get the userDisplayName property: The display name of the reviewer.
+ *
+ * @return the userDisplayName value.
+ */
+ public String userDisplayName() {
+ return this.userDisplayName;
+ }
+
+ /**
+ * Get the userPrincipalName property: The user principal name of the reviewer.
+ *
+ * @return the userPrincipalName value.
+ */
+ public String userPrincipalName() {
+ return this.userPrincipalName;
+ }
+
+ /**
+ * Get the createdDateTime property: Date Time when the reviewer was contacted.
+ *
+ * @return the createdDateTime value.
+ */
+ public OffsetDateTime createdDateTime() {
+ return this.createdDateTime;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AccessReviewContactedReviewerProperties from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AccessReviewContactedReviewerProperties if the JsonReader was pointing to an instance of
+ * it, or null if it was pointing to JSON null.
+ * @throws IOException If an error occurs while reading the AccessReviewContactedReviewerProperties.
+ */
+ public static AccessReviewContactedReviewerProperties fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AccessReviewContactedReviewerProperties deserializedAccessReviewContactedReviewerProperties
+ = new AccessReviewContactedReviewerProperties();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("userDisplayName".equals(fieldName)) {
+ deserializedAccessReviewContactedReviewerProperties.userDisplayName = reader.getString();
+ } else if ("userPrincipalName".equals(fieldName)) {
+ deserializedAccessReviewContactedReviewerProperties.userPrincipalName = reader.getString();
+ } else if ("createdDateTime".equals(fieldName)) {
+ deserializedAccessReviewContactedReviewerProperties.createdDateTime = reader
+ .getNullable(nonNullReader -> CoreUtils.parseBestOffsetDateTime(nonNullReader.getString()));
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAccessReviewContactedReviewerProperties;
+ });
+ }
+}
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 000000000000..9eee06fe5e9d
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewDecisionInner.java
@@ -0,0 +1,377 @@
+// 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.json.JsonReader;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+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.AccessReviewDecisionIdentity;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewDecisionInsight;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewDecisionPrincipalResourceMembershipType;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewResult;
+import com.azure.resourcemanager.authorization.generated.models.DecisionResourceType;
+import java.io.IOException;
+import java.time.OffsetDateTime;
+import java.util.List;
+
+/**
+ * Access Review.
+ */
+@Fluent
+public final class AccessReviewDecisionInner extends ProxyResource {
+ /*
+ * Access Review Decision properties.
+ */
+ private AccessReviewDecisionProperties innerProperties;
+
+ /*
+ * The type of the resource.
+ */
+ private String type;
+
+ /*
+ * The name of the resource.
+ */
+ private String name;
+
+ /*
+ * Fully qualified resource Id for the resource.
+ */
+ private String id;
+
+ /**
+ * Creates an instance of AccessReviewDecisionInner class.
+ */
+ public AccessReviewDecisionInner() {
+ }
+
+ /**
+ * Get the innerProperties property: Access Review Decision properties.
+ *
+ * @return the innerProperties value.
+ */
+ private AccessReviewDecisionProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the type property: The type of the resource.
+ *
+ * @return the type value.
+ */
+ @Override
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the name property: The name of the resource.
+ *
+ * @return the name value.
+ */
+ @Override
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the id property: Fully qualified resource Id for the resource.
+ *
+ * @return the id value.
+ */
+ @Override
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get the principal property: Principal associated with the decision record. Can be
+ * AccessReviewDecisionUserIdentity or AccessReviewDecisionServicePrincipalIdentity.
+ *
+ * @return the principal value.
+ */
+ public AccessReviewDecisionIdentity principal() {
+ return this.innerProperties() == null ? null : this.innerProperties().principal();
+ }
+
+ /**
+ * 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 insights property: This is the collection of insights for this decision item.
+ *
+ * @return the insights value.
+ */
+ public List insights() {
+ return this.innerProperties() == null ? null : this.innerProperties().insights();
+ }
+
+ /**
+ * Set the insights property: This is the collection of insights for this decision item.
+ *
+ * @param insights the insights value to set.
+ * @return the AccessReviewDecisionInner object itself.
+ */
+ public AccessReviewDecisionInner withInsights(List insights) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewDecisionProperties();
+ }
+ this.innerProperties().withInsights(insights);
+ return this;
+ }
+
+ /**
+ * Get the type property: The type of resource.
+ *
+ * @return the type value.
+ */
+ public DecisionResourceType typePropertiesType() {
+ return this.innerProperties() == null ? null : this.innerProperties().type();
+ }
+
+ /**
+ * Get the id property: The id of resource associated with a decision record.
+ *
+ * @return the id value.
+ */
+ public String idPropertiesId() {
+ return this.innerProperties() == null ? null : this.innerProperties().id();
+ }
+
+ /**
+ * Get the displayName property: The display name of resource associated with a decision record.
+ *
+ * @return the displayName value.
+ */
+ public String displayName() {
+ return this.innerProperties() == null ? null : this.innerProperties().displayName();
+ }
+
+ /**
+ * 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();
+ }
+
+ /**
+ * Get the membershipTypes property: Every decision item in an access review represents a principal's membership to
+ * a resource. This property represents details of the membership. Examples of this detail might be whether the
+ * principal has direct access or indirect access.
+ *
+ * @return the membershipTypes value.
+ */
+ public List membershipTypes() {
+ return this.innerProperties() == null ? null : this.innerProperties().membershipTypes();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeJsonField("properties", this.innerProperties);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AccessReviewDecisionInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AccessReviewDecisionInner if the JsonReader was pointing to an instance of it, or null if
+ * it was pointing to JSON null.
+ * @throws IllegalStateException If the deserialized JSON object was missing any required properties.
+ * @throws IOException If an error occurs while reading the AccessReviewDecisionInner.
+ */
+ public static AccessReviewDecisionInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AccessReviewDecisionInner deserializedAccessReviewDecisionInner = new AccessReviewDecisionInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("id".equals(fieldName)) {
+ deserializedAccessReviewDecisionInner.id = reader.getString();
+ } else if ("name".equals(fieldName)) {
+ deserializedAccessReviewDecisionInner.name = reader.getString();
+ } else if ("type".equals(fieldName)) {
+ deserializedAccessReviewDecisionInner.type = reader.getString();
+ } else if ("properties".equals(fieldName)) {
+ deserializedAccessReviewDecisionInner.innerProperties
+ = AccessReviewDecisionProperties.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAccessReviewDecisionInner;
+ });
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewDecisionPrincipalResourceMembership.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewDecisionPrincipalResourceMembership.java
new file mode 100644
index 000000000000..16544171b71f
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewDecisionPrincipalResourceMembership.java
@@ -0,0 +1,107 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewDecisionPrincipalResourceMembershipType;
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * Target of the decision.
+ */
+@Fluent
+public final class AccessReviewDecisionPrincipalResourceMembership
+ implements JsonSerializable {
+ /*
+ * Every decision item in an access review represents a principal's membership to a resource. This property
+ * represents details of the membership. Examples of this detail might be whether the principal has direct access or
+ * indirect access
+ */
+ private List membershipTypes;
+
+ /**
+ * Creates an instance of AccessReviewDecisionPrincipalResourceMembership class.
+ */
+ public AccessReviewDecisionPrincipalResourceMembership() {
+ }
+
+ /**
+ * Get the membershipTypes property: Every decision item in an access review represents a principal's membership to
+ * a resource. This property represents details of the membership. Examples of this detail might be whether the
+ * principal has direct access or indirect access.
+ *
+ * @return the membershipTypes value.
+ */
+ public List membershipTypes() {
+ return this.membershipTypes;
+ }
+
+ /**
+ * Set the membershipTypes property: Every decision item in an access review represents a principal's membership to
+ * a resource. This property represents details of the membership. Examples of this detail might be whether the
+ * principal has direct access or indirect access.
+ *
+ * @param membershipTypes the membershipTypes value to set.
+ * @return the AccessReviewDecisionPrincipalResourceMembership object itself.
+ */
+ public AccessReviewDecisionPrincipalResourceMembership
+ withMembershipTypes(List membershipTypes) {
+ this.membershipTypes = membershipTypes;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeArrayField("membershipTypes", this.membershipTypes,
+ (writer, element) -> writer.writeString(element == null ? null : element.toString()));
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AccessReviewDecisionPrincipalResourceMembership from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AccessReviewDecisionPrincipalResourceMembership if the JsonReader was pointing to an
+ * instance of it, or null if it was pointing to JSON null.
+ * @throws IOException If an error occurs while reading the AccessReviewDecisionPrincipalResourceMembership.
+ */
+ public static AccessReviewDecisionPrincipalResourceMembership fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AccessReviewDecisionPrincipalResourceMembership deserializedAccessReviewDecisionPrincipalResourceMembership
+ = new AccessReviewDecisionPrincipalResourceMembership();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("membershipTypes".equals(fieldName)) {
+ List membershipTypes = reader.readArray(
+ reader1 -> AccessReviewDecisionPrincipalResourceMembershipType.fromString(reader1.getString()));
+ deserializedAccessReviewDecisionPrincipalResourceMembership.membershipTypes = membershipTypes;
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAccessReviewDecisionPrincipalResourceMembership;
+ });
+ }
+}
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 000000000000..3c79594baecd
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewDecisionProperties.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.core.util.CoreUtils;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+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.AccessReviewDecisionIdentity;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewDecisionInsight;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewDecisionPrincipalResourceMembershipType;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewResult;
+import com.azure.resourcemanager.authorization.generated.models.DecisionResourceType;
+import java.io.IOException;
+import java.time.OffsetDateTime;
+import java.util.List;
+
+/**
+ * Approval Step.
+ */
+@Fluent
+public final class AccessReviewDecisionProperties implements JsonSerializable {
+ /*
+ * Principal associated with the decision record. Can be AccessReviewDecisionUserIdentity or
+ * AccessReviewDecisionServicePrincipalIdentity
+ */
+ private AccessReviewDecisionIdentity principal;
+
+ /*
+ * Resource associated with this decision record.
+ */
+ private AccessReviewDecisionResource innerResource;
+
+ /*
+ * The feature- generated recommendation shown to the reviewer.
+ */
+ private AccessRecommendationType recommendation;
+
+ /*
+ * The decision on the approval step. This value is initially set to NotReviewed. Approvers can take action of
+ * Approve/Deny
+ */
+ private AccessReviewResult decision;
+
+ /*
+ * Justification provided by approvers for their action
+ */
+ private String justification;
+
+ /*
+ * Date Time when a decision was taken.
+ */
+ private OffsetDateTime reviewedDateTime;
+
+ /*
+ * Details of the approver.
+ */
+ private AccessReviewActorIdentity innerReviewedBy;
+
+ /*
+ * The outcome of applying the decision.
+ */
+ private AccessReviewApplyResult applyResult;
+
+ /*
+ * The date and time when the review decision was applied.
+ */
+ private OffsetDateTime appliedDateTime;
+
+ /*
+ * Details of the approver.
+ */
+ private AccessReviewActorIdentity innerAppliedBy;
+
+ /*
+ * This is the collection of insights for this decision item.
+ */
+ private List insights;
+
+ /*
+ * Details of the membership type.
+ */
+ private AccessReviewDecisionPrincipalResourceMembership innerPrincipalResourceMembership;
+
+ /**
+ * Creates an instance of AccessReviewDecisionProperties class.
+ */
+ public AccessReviewDecisionProperties() {
+ }
+
+ /**
+ * Get the principal property: Principal associated with the decision record. Can be
+ * AccessReviewDecisionUserIdentity or AccessReviewDecisionServicePrincipalIdentity.
+ *
+ * @return the principal value.
+ */
+ public AccessReviewDecisionIdentity principal() {
+ return this.principal;
+ }
+
+ /**
+ * 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 insights property: This is the collection of insights for this decision item.
+ *
+ * @return the insights value.
+ */
+ public List insights() {
+ return this.insights;
+ }
+
+ /**
+ * Set the insights property: This is the collection of insights for this decision item.
+ *
+ * @param insights the insights value to set.
+ * @return the AccessReviewDecisionProperties object itself.
+ */
+ public AccessReviewDecisionProperties withInsights(List insights) {
+ this.insights = insights;
+ return this;
+ }
+
+ /**
+ * Get the innerPrincipalResourceMembership property: Details of the membership type.
+ *
+ * @return the innerPrincipalResourceMembership value.
+ */
+ private AccessReviewDecisionPrincipalResourceMembership innerPrincipalResourceMembership() {
+ return this.innerPrincipalResourceMembership;
+ }
+
+ /**
+ * Get the type property: The type of resource.
+ *
+ * @return the type value.
+ */
+ public DecisionResourceType type() {
+ return this.innerResource() == null ? null : this.innerResource().type();
+ }
+
+ /**
+ * Set the type property: The type of resource.
+ *
+ * @param type the type value to set.
+ * @return the AccessReviewDecisionProperties object itself.
+ */
+ public AccessReviewDecisionProperties withType(DecisionResourceType type) {
+ if (this.innerResource() == null) {
+ this.innerResource = new AccessReviewDecisionResource();
+ }
+ this.innerResource().withType(type);
+ return this;
+ }
+
+ /**
+ * Get the id property: The id of resource associated with a decision record.
+ *
+ * @return the id value.
+ */
+ public String id() {
+ 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 displayName() {
+ 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();
+ }
+
+ /**
+ * Get the membershipTypes property: Every decision item in an access review represents a principal's membership to
+ * a resource. This property represents details of the membership. Examples of this detail might be whether the
+ * principal has direct access or indirect access.
+ *
+ * @return the membershipTypes value.
+ */
+ public List membershipTypes() {
+ return this.innerPrincipalResourceMembership() == null
+ ? null
+ : this.innerPrincipalResourceMembership().membershipTypes();
+ }
+
+ /**
+ * Set the membershipTypes property: Every decision item in an access review represents a principal's membership to
+ * a resource. This property represents details of the membership. Examples of this detail might be whether the
+ * principal has direct access or indirect access.
+ *
+ * @param membershipTypes the membershipTypes value to set.
+ * @return the AccessReviewDecisionProperties object itself.
+ */
+ public AccessReviewDecisionProperties
+ withMembershipTypes(List membershipTypes) {
+ if (this.innerPrincipalResourceMembership() == null) {
+ this.innerPrincipalResourceMembership = new AccessReviewDecisionPrincipalResourceMembership();
+ }
+ this.innerPrincipalResourceMembership().withMembershipTypes(membershipTypes);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (principal() != null) {
+ principal().validate();
+ }
+ if (innerResource() != null) {
+ innerResource().validate();
+ }
+ if (innerReviewedBy() != null) {
+ innerReviewedBy().validate();
+ }
+ if (innerAppliedBy() != null) {
+ innerAppliedBy().validate();
+ }
+ if (insights() != null) {
+ insights().forEach(e -> e.validate());
+ }
+ if (innerPrincipalResourceMembership() != null) {
+ innerPrincipalResourceMembership().validate();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeStringField("decision", this.decision == null ? null : this.decision.toString());
+ jsonWriter.writeStringField("justification", this.justification);
+ jsonWriter.writeArrayField("insights", this.insights, (writer, element) -> writer.writeJson(element));
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AccessReviewDecisionProperties from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AccessReviewDecisionProperties if the JsonReader was pointing to an instance of it, or
+ * null if it was pointing to JSON null.
+ * @throws IOException If an error occurs while reading the AccessReviewDecisionProperties.
+ */
+ public static AccessReviewDecisionProperties fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AccessReviewDecisionProperties deserializedAccessReviewDecisionProperties
+ = new AccessReviewDecisionProperties();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("principal".equals(fieldName)) {
+ deserializedAccessReviewDecisionProperties.principal
+ = AccessReviewDecisionIdentity.fromJson(reader);
+ } else if ("resource".equals(fieldName)) {
+ deserializedAccessReviewDecisionProperties.innerResource
+ = AccessReviewDecisionResource.fromJson(reader);
+ } else if ("recommendation".equals(fieldName)) {
+ deserializedAccessReviewDecisionProperties.recommendation
+ = AccessRecommendationType.fromString(reader.getString());
+ } else if ("decision".equals(fieldName)) {
+ deserializedAccessReviewDecisionProperties.decision
+ = AccessReviewResult.fromString(reader.getString());
+ } else if ("justification".equals(fieldName)) {
+ deserializedAccessReviewDecisionProperties.justification = reader.getString();
+ } else if ("reviewedDateTime".equals(fieldName)) {
+ deserializedAccessReviewDecisionProperties.reviewedDateTime = reader
+ .getNullable(nonNullReader -> CoreUtils.parseBestOffsetDateTime(nonNullReader.getString()));
+ } else if ("reviewedBy".equals(fieldName)) {
+ deserializedAccessReviewDecisionProperties.innerReviewedBy
+ = AccessReviewActorIdentity.fromJson(reader);
+ } else if ("applyResult".equals(fieldName)) {
+ deserializedAccessReviewDecisionProperties.applyResult
+ = AccessReviewApplyResult.fromString(reader.getString());
+ } else if ("appliedDateTime".equals(fieldName)) {
+ deserializedAccessReviewDecisionProperties.appliedDateTime = reader
+ .getNullable(nonNullReader -> CoreUtils.parseBestOffsetDateTime(nonNullReader.getString()));
+ } else if ("appliedBy".equals(fieldName)) {
+ deserializedAccessReviewDecisionProperties.innerAppliedBy
+ = AccessReviewActorIdentity.fromJson(reader);
+ } else if ("insights".equals(fieldName)) {
+ List insights
+ = reader.readArray(reader1 -> AccessReviewDecisionInsight.fromJson(reader1));
+ deserializedAccessReviewDecisionProperties.insights = insights;
+ } else if ("principalResourceMembership".equals(fieldName)) {
+ deserializedAccessReviewDecisionProperties.innerPrincipalResourceMembership
+ = AccessReviewDecisionPrincipalResourceMembership.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAccessReviewDecisionProperties;
+ });
+ }
+}
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 000000000000..662e9340995b
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewDecisionResource.java
@@ -0,0 +1,135 @@
+// 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.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.authorization.generated.models.DecisionResourceType;
+import java.io.IOException;
+
+/**
+ * Target of the decision.
+ */
+@Fluent
+public final class AccessReviewDecisionResource implements JsonSerializable {
+ /*
+ * The type of resource
+ */
+ private DecisionResourceType type;
+
+ /*
+ * The id of resource associated with a decision record.
+ */
+ private String id;
+
+ /*
+ * The display name of resource associated with a decision record.
+ */
+ private String displayName;
+
+ /**
+ * Creates an instance of AccessReviewDecisionResource class.
+ */
+ public AccessReviewDecisionResource() {
+ }
+
+ /**
+ * Get the type property: The type of resource.
+ *
+ * @return the type value.
+ */
+ public DecisionResourceType type() {
+ return this.type;
+ }
+
+ /**
+ * Set the type property: The type of resource.
+ *
+ * @param type the type value to set.
+ * @return the AccessReviewDecisionResource object itself.
+ */
+ public AccessReviewDecisionResource withType(DecisionResourceType type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * 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() {
+ if (type() == null) {
+ throw LOGGER.atError()
+ .log(new IllegalArgumentException(
+ "Missing required property type in model AccessReviewDecisionResource"));
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(AccessReviewDecisionResource.class);
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeStringField("type", this.type == null ? null : this.type.toString());
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AccessReviewDecisionResource from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AccessReviewDecisionResource if the JsonReader was pointing to an instance of it, or null
+ * if it was pointing to JSON null.
+ * @throws IllegalStateException If the deserialized JSON object was missing any required properties.
+ * @throws IOException If an error occurs while reading the AccessReviewDecisionResource.
+ */
+ public static AccessReviewDecisionResource fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AccessReviewDecisionResource deserializedAccessReviewDecisionResource = new AccessReviewDecisionResource();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("type".equals(fieldName)) {
+ deserializedAccessReviewDecisionResource.type = DecisionResourceType.fromString(reader.getString());
+ } else if ("id".equals(fieldName)) {
+ deserializedAccessReviewDecisionResource.id = reader.getString();
+ } else if ("displayName".equals(fieldName)) {
+ deserializedAccessReviewDecisionResource.displayName = reader.getString();
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAccessReviewDecisionResource;
+ });
+ }
+}
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 000000000000..a9e1c08e1391
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewDefaultSettingsInner.java
@@ -0,0 +1,523 @@
+// 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.json.JsonReader;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+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.io.IOException;
+import java.time.Duration;
+import java.time.OffsetDateTime;
+
+/**
+ * Access Review Default Settings.
+ */
+@Fluent
+public final class AccessReviewDefaultSettingsInner extends ProxyResource {
+ /*
+ * Access Review properties.
+ */
+ private AccessReviewScheduleSettings innerProperties;
+
+ /*
+ * The type of the resource.
+ */
+ private String type;
+
+ /*
+ * The name of the resource.
+ */
+ private String name;
+
+ /*
+ * Fully qualified resource Id for the resource.
+ */
+ private String id;
+
+ /**
+ * Creates an instance of AccessReviewDefaultSettingsInner class.
+ */
+ public AccessReviewDefaultSettingsInner() {
+ }
+
+ /**
+ * Get the innerProperties property: Access Review properties.
+ *
+ * @return the innerProperties value.
+ */
+ private AccessReviewScheduleSettings innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the type property: The type of the resource.
+ *
+ * @return the type value.
+ */
+ @Override
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the name property: The name of the resource.
+ *
+ * @return the name value.
+ */
+ @Override
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the id property: Fully qualified resource Id for the resource.
+ *
+ * @return the id value.
+ */
+ @Override
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * 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 recommendationLookBackDuration property: Recommendations for access reviews are calculated by looking
+ * back at 30 days of data(w.r.t the start date of the review) by default. However, in some scenarios, customers
+ * want to change how far back to look at and want to configure 60 days, 90 days, etc. instead. This setting allows
+ * customers to configure this duration. 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 recommendationLookBackDuration value.
+ */
+ public Duration recommendationLookBackDuration() {
+ return this.innerProperties() == null ? null : this.innerProperties().recommendationLookBackDuration();
+ }
+
+ /**
+ * Set the recommendationLookBackDuration property: Recommendations for access reviews are calculated by looking
+ * back at 30 days of data(w.r.t the start date of the review) by default. However, in some scenarios, customers
+ * want to change how far back to look at and want to configure 60 days, 90 days, etc. instead. This setting allows
+ * customers to configure this duration. 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 recommendationLookBackDuration the recommendationLookBackDuration value to set.
+ * @return the AccessReviewDefaultSettingsInner object itself.
+ */
+ public AccessReviewDefaultSettingsInner
+ withRecommendationLookBackDuration(Duration recommendationLookBackDuration) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewScheduleSettings();
+ }
+ this.innerProperties().withRecommendationLookBackDuration(recommendationLookBackDuration);
+ 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();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeJsonField("properties", this.innerProperties);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AccessReviewDefaultSettingsInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AccessReviewDefaultSettingsInner if the JsonReader was pointing to an instance of it, or
+ * null if it was pointing to JSON null.
+ * @throws IllegalStateException If the deserialized JSON object was missing any required properties.
+ * @throws IOException If an error occurs while reading the AccessReviewDefaultSettingsInner.
+ */
+ public static AccessReviewDefaultSettingsInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AccessReviewDefaultSettingsInner deserializedAccessReviewDefaultSettingsInner
+ = new AccessReviewDefaultSettingsInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("id".equals(fieldName)) {
+ deserializedAccessReviewDefaultSettingsInner.id = reader.getString();
+ } else if ("name".equals(fieldName)) {
+ deserializedAccessReviewDefaultSettingsInner.name = reader.getString();
+ } else if ("type".equals(fieldName)) {
+ deserializedAccessReviewDefaultSettingsInner.type = reader.getString();
+ } else if ("properties".equals(fieldName)) {
+ deserializedAccessReviewDefaultSettingsInner.innerProperties
+ = AccessReviewScheduleSettings.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAccessReviewDefaultSettingsInner;
+ });
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewHistoryDefinitionInner.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewHistoryDefinitionInner.java
new file mode 100644
index 000000000000..26e97bffcdb8
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewHistoryDefinitionInner.java
@@ -0,0 +1,461 @@
+// 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.json.JsonReader;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewActorIdentityType;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewHistoryDefinitionStatus;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewRecurrencePatternType;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewRecurrenceRangeType;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewResult;
+import java.io.IOException;
+import java.time.OffsetDateTime;
+import java.util.List;
+
+/**
+ * Access Review History Definition.
+ */
+@Fluent
+public final class AccessReviewHistoryDefinitionInner extends ProxyResource {
+ /*
+ * Access Review History Definition properties.
+ */
+ private AccessReviewHistoryDefinitionProperties innerProperties;
+
+ /*
+ * The type of the resource.
+ */
+ private String type;
+
+ /*
+ * The name of the resource.
+ */
+ private String name;
+
+ /*
+ * Fully qualified resource Id for the resource.
+ */
+ private String id;
+
+ /**
+ * Creates an instance of AccessReviewHistoryDefinitionInner class.
+ */
+ public AccessReviewHistoryDefinitionInner() {
+ }
+
+ /**
+ * Get the innerProperties property: Access Review History Definition properties.
+ *
+ * @return the innerProperties value.
+ */
+ private AccessReviewHistoryDefinitionProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the type property: The type of the resource.
+ *
+ * @return the type value.
+ */
+ @Override
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the name property: The name of the resource.
+ *
+ * @return the name value.
+ */
+ @Override
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the id property: Fully qualified resource Id for the resource.
+ *
+ * @return the id value.
+ */
+ @Override
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get the displayName property: The display name for the history 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 history definition.
+ *
+ * @param displayName the displayName value to set.
+ * @return the AccessReviewHistoryDefinitionInner object itself.
+ */
+ public AccessReviewHistoryDefinitionInner withDisplayName(String displayName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewHistoryDefinitionProperties();
+ }
+ this.innerProperties().withDisplayName(displayName);
+ return this;
+ }
+
+ /**
+ * Get the reviewHistoryPeriodStartDateTime property: Date time used when selecting review data, all reviews
+ * included in data start on or after this date. For use only with one-time/non-recurring reports.
+ *
+ * @return the reviewHistoryPeriodStartDateTime value.
+ */
+ public OffsetDateTime reviewHistoryPeriodStartDateTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().reviewHistoryPeriodStartDateTime();
+ }
+
+ /**
+ * Get the reviewHistoryPeriodEndDateTime property: Date time used when selecting review data, all reviews included
+ * in data end on or before this date. For use only with one-time/non-recurring reports.
+ *
+ * @return the reviewHistoryPeriodEndDateTime value.
+ */
+ public OffsetDateTime reviewHistoryPeriodEndDateTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().reviewHistoryPeriodEndDateTime();
+ }
+
+ /**
+ * Get the decisions property: Collection of review decisions which the history data should be filtered on. For
+ * example if Approve and Deny are supplied the data will only contain review results in which the decision maker
+ * approved or denied a review request.
+ *
+ * @return the decisions value.
+ */
+ public List decisions() {
+ return this.innerProperties() == null ? null : this.innerProperties().decisions();
+ }
+
+ /**
+ * Set the decisions property: Collection of review decisions which the history data should be filtered on. For
+ * example if Approve and Deny are supplied the data will only contain review results in which the decision maker
+ * approved or denied a review request.
+ *
+ * @param decisions the decisions value to set.
+ * @return the AccessReviewHistoryDefinitionInner object itself.
+ */
+ public AccessReviewHistoryDefinitionInner withDecisions(List decisions) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewHistoryDefinitionProperties();
+ }
+ this.innerProperties().withDecisions(decisions);
+ return this;
+ }
+
+ /**
+ * Get the status property: This read-only field specifies the of the requested review history data. This is either
+ * requested, in-progress, done or error.
+ *
+ * @return the status value.
+ */
+ public AccessReviewHistoryDefinitionStatus status() {
+ return this.innerProperties() == null ? null : this.innerProperties().status();
+ }
+
+ /**
+ * Get the createdDateTime property: Date time when history definition was created.
+ *
+ * @return the createdDateTime value.
+ */
+ public OffsetDateTime createdDateTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().createdDateTime();
+ }
+
+ /**
+ * Get the scopes property: A collection of scopes used when selecting review history data.
+ *
+ * @return the scopes value.
+ */
+ public List scopes() {
+ return this.innerProperties() == null ? null : this.innerProperties().scopes();
+ }
+
+ /**
+ * Set the scopes property: A collection of scopes used when selecting review history data.
+ *
+ * @param scopes the scopes value to set.
+ * @return the AccessReviewHistoryDefinitionInner object itself.
+ */
+ public AccessReviewHistoryDefinitionInner withScopes(List scopes) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewHistoryDefinitionProperties();
+ }
+ this.innerProperties().withScopes(scopes);
+ return this;
+ }
+
+ /**
+ * Get the instances property: Set of access review history instances for this history definition.
+ *
+ * @return the instances value.
+ */
+ public List instances() {
+ return this.innerProperties() == null ? null : this.innerProperties().instances();
+ }
+
+ /**
+ * Set the instances property: Set of access review history instances for this history definition.
+ *
+ * @param instances the instances value to set.
+ * @return the AccessReviewHistoryDefinitionInner object itself.
+ */
+ public AccessReviewHistoryDefinitionInner withInstances(List instances) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewHistoryDefinitionProperties();
+ }
+ 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 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 AccessReviewHistoryDefinitionInner object itself.
+ */
+ public AccessReviewHistoryDefinitionInner withTypePropertiesType(AccessReviewRecurrencePatternType type) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewHistoryDefinitionProperties();
+ }
+ 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 AccessReviewHistoryDefinitionInner object itself.
+ */
+ public AccessReviewHistoryDefinitionInner withInterval(Integer interval) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewHistoryDefinitionProperties();
+ }
+ 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 AccessReviewHistoryDefinitionInner object itself.
+ */
+ public AccessReviewHistoryDefinitionInner withTypeRangeType(AccessReviewRecurrenceRangeType typeRangeType) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewHistoryDefinitionProperties();
+ }
+ 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 AccessReviewHistoryDefinitionInner object itself.
+ */
+ public AccessReviewHistoryDefinitionInner withNumberOfOccurrences(Integer numberOfOccurrences) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewHistoryDefinitionProperties();
+ }
+ 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 AccessReviewHistoryDefinitionInner object itself.
+ */
+ public AccessReviewHistoryDefinitionInner withStartDate(OffsetDateTime startDate) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewHistoryDefinitionProperties();
+ }
+ 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 AccessReviewHistoryDefinitionInner object itself.
+ */
+ public AccessReviewHistoryDefinitionInner withEndDate(OffsetDateTime endDate) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewHistoryDefinitionProperties();
+ }
+ 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();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeJsonField("properties", this.innerProperties);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AccessReviewHistoryDefinitionInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AccessReviewHistoryDefinitionInner if the JsonReader was pointing to an instance of it, or
+ * null if it was pointing to JSON null.
+ * @throws IllegalStateException If the deserialized JSON object was missing any required properties.
+ * @throws IOException If an error occurs while reading the AccessReviewHistoryDefinitionInner.
+ */
+ public static AccessReviewHistoryDefinitionInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AccessReviewHistoryDefinitionInner deserializedAccessReviewHistoryDefinitionInner
+ = new AccessReviewHistoryDefinitionInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("id".equals(fieldName)) {
+ deserializedAccessReviewHistoryDefinitionInner.id = reader.getString();
+ } else if ("name".equals(fieldName)) {
+ deserializedAccessReviewHistoryDefinitionInner.name = reader.getString();
+ } else if ("type".equals(fieldName)) {
+ deserializedAccessReviewHistoryDefinitionInner.type = reader.getString();
+ } else if ("properties".equals(fieldName)) {
+ deserializedAccessReviewHistoryDefinitionInner.innerProperties
+ = AccessReviewHistoryDefinitionProperties.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAccessReviewHistoryDefinitionInner;
+ });
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewHistoryDefinitionProperties.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewHistoryDefinitionProperties.java
new file mode 100644
index 000000000000..ff1805c50c6c
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewHistoryDefinitionProperties.java
@@ -0,0 +1,500 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.CoreUtils;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewActorIdentityType;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewHistoryDefinitionStatus;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewRecurrencePatternType;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewRecurrenceRangeType;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewResult;
+import java.io.IOException;
+import java.time.OffsetDateTime;
+import java.util.List;
+
+/**
+ * Access Review History Instances.
+ */
+@Fluent
+public final class AccessReviewHistoryDefinitionProperties
+ implements JsonSerializable {
+ /*
+ * The display name for the history definition.
+ */
+ private String displayName;
+
+ /*
+ * Date time used when selecting review data, all reviews included in data start on or after this date. For use only
+ * with one-time/non-recurring reports.
+ */
+ private OffsetDateTime reviewHistoryPeriodStartDateTime;
+
+ /*
+ * Date time used when selecting review data, all reviews included in data end on or before this date. For use only
+ * with one-time/non-recurring reports.
+ */
+ private OffsetDateTime reviewHistoryPeriodEndDateTime;
+
+ /*
+ * Collection of review decisions which the history data should be filtered on. For example if Approve and Deny are
+ * supplied the data will only contain review results in which the decision maker approved or denied a review
+ * request.
+ */
+ private List decisions;
+
+ /*
+ * This read-only field specifies the of the requested review history data. This is either requested, in-progress,
+ * done or error.
+ */
+ private AccessReviewHistoryDefinitionStatus status;
+
+ /*
+ * Date time when history definition was created
+ */
+ private OffsetDateTime createdDateTime;
+
+ /*
+ * The user or other identity who created this history definition.
+ */
+ private AccessReviewActorIdentity innerCreatedBy;
+
+ /*
+ * A collection of scopes used when selecting review history data
+ */
+ private List scopes;
+
+ /*
+ * Recurrence settings for recurring history reports, skip for one-time reports.
+ */
+ private AccessReviewHistoryScheduleSettings innerSettings;
+
+ /*
+ * Set of access review history instances for this history definition.
+ */
+ private List instances;
+
+ /**
+ * Creates an instance of AccessReviewHistoryDefinitionProperties class.
+ */
+ public AccessReviewHistoryDefinitionProperties() {
+ }
+
+ /**
+ * Get the displayName property: The display name for the history definition.
+ *
+ * @return the displayName value.
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Set the displayName property: The display name for the history definition.
+ *
+ * @param displayName the displayName value to set.
+ * @return the AccessReviewHistoryDefinitionProperties object itself.
+ */
+ public AccessReviewHistoryDefinitionProperties withDisplayName(String displayName) {
+ this.displayName = displayName;
+ return this;
+ }
+
+ /**
+ * Get the reviewHistoryPeriodStartDateTime property: Date time used when selecting review data, all reviews
+ * included in data start on or after this date. For use only with one-time/non-recurring reports.
+ *
+ * @return the reviewHistoryPeriodStartDateTime value.
+ */
+ public OffsetDateTime reviewHistoryPeriodStartDateTime() {
+ return this.reviewHistoryPeriodStartDateTime;
+ }
+
+ /**
+ * Get the reviewHistoryPeriodEndDateTime property: Date time used when selecting review data, all reviews included
+ * in data end on or before this date. For use only with one-time/non-recurring reports.
+ *
+ * @return the reviewHistoryPeriodEndDateTime value.
+ */
+ public OffsetDateTime reviewHistoryPeriodEndDateTime() {
+ return this.reviewHistoryPeriodEndDateTime;
+ }
+
+ /**
+ * Get the decisions property: Collection of review decisions which the history data should be filtered on. For
+ * example if Approve and Deny are supplied the data will only contain review results in which the decision maker
+ * approved or denied a review request.
+ *
+ * @return the decisions value.
+ */
+ public List decisions() {
+ return this.decisions;
+ }
+
+ /**
+ * Set the decisions property: Collection of review decisions which the history data should be filtered on. For
+ * example if Approve and Deny are supplied the data will only contain review results in which the decision maker
+ * approved or denied a review request.
+ *
+ * @param decisions the decisions value to set.
+ * @return the AccessReviewHistoryDefinitionProperties object itself.
+ */
+ public AccessReviewHistoryDefinitionProperties withDecisions(List decisions) {
+ this.decisions = decisions;
+ return this;
+ }
+
+ /**
+ * Get the status property: This read-only field specifies the of the requested review history data. This is either
+ * requested, in-progress, done or error.
+ *
+ * @return the status value.
+ */
+ public AccessReviewHistoryDefinitionStatus status() {
+ return this.status;
+ }
+
+ /**
+ * Get the createdDateTime property: Date time when history definition was created.
+ *
+ * @return the createdDateTime value.
+ */
+ public OffsetDateTime createdDateTime() {
+ return this.createdDateTime;
+ }
+
+ /**
+ * Get the innerCreatedBy property: The user or other identity who created this history definition.
+ *
+ * @return the innerCreatedBy value.
+ */
+ private AccessReviewActorIdentity innerCreatedBy() {
+ return this.innerCreatedBy;
+ }
+
+ /**
+ * Get the scopes property: A collection of scopes used when selecting review history data.
+ *
+ * @return the scopes value.
+ */
+ public List scopes() {
+ return this.scopes;
+ }
+
+ /**
+ * Set the scopes property: A collection of scopes used when selecting review history data.
+ *
+ * @param scopes the scopes value to set.
+ * @return the AccessReviewHistoryDefinitionProperties object itself.
+ */
+ public AccessReviewHistoryDefinitionProperties withScopes(List scopes) {
+ this.scopes = scopes;
+ return this;
+ }
+
+ /**
+ * Get the innerSettings property: Recurrence settings for recurring history reports, skip for one-time reports.
+ *
+ * @return the innerSettings value.
+ */
+ private AccessReviewHistoryScheduleSettings innerSettings() {
+ return this.innerSettings;
+ }
+
+ /**
+ * Get the instances property: Set of access review history instances for this history definition.
+ *
+ * @return the instances value.
+ */
+ public List instances() {
+ return this.instances;
+ }
+
+ /**
+ * Set the instances property: Set of access review history instances for this history definition.
+ *
+ * @param instances the instances value to set.
+ * @return the AccessReviewHistoryDefinitionProperties object itself.
+ */
+ public AccessReviewHistoryDefinitionProperties 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 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 AccessReviewHistoryDefinitionProperties object itself.
+ */
+ public AccessReviewHistoryDefinitionProperties withType(AccessReviewRecurrencePatternType type) {
+ if (this.innerSettings() == null) {
+ this.innerSettings = new AccessReviewHistoryScheduleSettings();
+ }
+ 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 AccessReviewHistoryDefinitionProperties object itself.
+ */
+ public AccessReviewHistoryDefinitionProperties withInterval(Integer interval) {
+ if (this.innerSettings() == null) {
+ this.innerSettings = new AccessReviewHistoryScheduleSettings();
+ }
+ 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 AccessReviewHistoryDefinitionProperties object itself.
+ */
+ public AccessReviewHistoryDefinitionProperties withTypeRangeType(AccessReviewRecurrenceRangeType typeRangeType) {
+ if (this.innerSettings() == null) {
+ this.innerSettings = new AccessReviewHistoryScheduleSettings();
+ }
+ 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 AccessReviewHistoryDefinitionProperties object itself.
+ */
+ public AccessReviewHistoryDefinitionProperties withNumberOfOccurrences(Integer numberOfOccurrences) {
+ if (this.innerSettings() == null) {
+ this.innerSettings = new AccessReviewHistoryScheduleSettings();
+ }
+ 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 AccessReviewHistoryDefinitionProperties object itself.
+ */
+ public AccessReviewHistoryDefinitionProperties withStartDate(OffsetDateTime startDate) {
+ if (this.innerSettings() == null) {
+ this.innerSettings = new AccessReviewHistoryScheduleSettings();
+ }
+ 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 AccessReviewHistoryDefinitionProperties object itself.
+ */
+ public AccessReviewHistoryDefinitionProperties withEndDate(OffsetDateTime endDate) {
+ if (this.innerSettings() == null) {
+ this.innerSettings = new AccessReviewHistoryScheduleSettings();
+ }
+ this.innerSettings().withEndDate(endDate);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerCreatedBy() != null) {
+ innerCreatedBy().validate();
+ }
+ if (scopes() != null) {
+ scopes().forEach(e -> e.validate());
+ }
+ if (innerSettings() != null) {
+ innerSettings().validate();
+ }
+ if (instances() != null) {
+ instances().forEach(e -> e.validate());
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeStringField("displayName", this.displayName);
+ jsonWriter.writeArrayField("decisions", this.decisions,
+ (writer, element) -> writer.writeString(element == null ? null : element.toString()));
+ jsonWriter.writeArrayField("scopes", this.scopes, (writer, element) -> writer.writeJson(element));
+ jsonWriter.writeJsonField("settings", this.innerSettings);
+ jsonWriter.writeArrayField("instances", this.instances, (writer, element) -> writer.writeJson(element));
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AccessReviewHistoryDefinitionProperties from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AccessReviewHistoryDefinitionProperties if the JsonReader was pointing to an instance of
+ * it, or null if it was pointing to JSON null.
+ * @throws IOException If an error occurs while reading the AccessReviewHistoryDefinitionProperties.
+ */
+ public static AccessReviewHistoryDefinitionProperties fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AccessReviewHistoryDefinitionProperties deserializedAccessReviewHistoryDefinitionProperties
+ = new AccessReviewHistoryDefinitionProperties();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("displayName".equals(fieldName)) {
+ deserializedAccessReviewHistoryDefinitionProperties.displayName = reader.getString();
+ } else if ("reviewHistoryPeriodStartDateTime".equals(fieldName)) {
+ deserializedAccessReviewHistoryDefinitionProperties.reviewHistoryPeriodStartDateTime = reader
+ .getNullable(nonNullReader -> CoreUtils.parseBestOffsetDateTime(nonNullReader.getString()));
+ } else if ("reviewHistoryPeriodEndDateTime".equals(fieldName)) {
+ deserializedAccessReviewHistoryDefinitionProperties.reviewHistoryPeriodEndDateTime = reader
+ .getNullable(nonNullReader -> CoreUtils.parseBestOffsetDateTime(nonNullReader.getString()));
+ } else if ("decisions".equals(fieldName)) {
+ List decisions
+ = reader.readArray(reader1 -> AccessReviewResult.fromString(reader1.getString()));
+ deserializedAccessReviewHistoryDefinitionProperties.decisions = decisions;
+ } else if ("status".equals(fieldName)) {
+ deserializedAccessReviewHistoryDefinitionProperties.status
+ = AccessReviewHistoryDefinitionStatus.fromString(reader.getString());
+ } else if ("createdDateTime".equals(fieldName)) {
+ deserializedAccessReviewHistoryDefinitionProperties.createdDateTime = reader
+ .getNullable(nonNullReader -> CoreUtils.parseBestOffsetDateTime(nonNullReader.getString()));
+ } else if ("createdBy".equals(fieldName)) {
+ deserializedAccessReviewHistoryDefinitionProperties.innerCreatedBy
+ = AccessReviewActorIdentity.fromJson(reader);
+ } else if ("scopes".equals(fieldName)) {
+ List scopes = reader.readArray(reader1 -> AccessReviewScope.fromJson(reader1));
+ deserializedAccessReviewHistoryDefinitionProperties.scopes = scopes;
+ } else if ("settings".equals(fieldName)) {
+ deserializedAccessReviewHistoryDefinitionProperties.innerSettings
+ = AccessReviewHistoryScheduleSettings.fromJson(reader);
+ } else if ("instances".equals(fieldName)) {
+ List instances
+ = reader.readArray(reader1 -> AccessReviewHistoryInstanceInner.fromJson(reader1));
+ deserializedAccessReviewHistoryDefinitionProperties.instances = instances;
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAccessReviewHistoryDefinitionProperties;
+ });
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewHistoryInstanceInner.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewHistoryInstanceInner.java
new file mode 100644
index 000000000000..70bae07b5c26
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewHistoryInstanceInner.java
@@ -0,0 +1,307 @@
+// 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.json.JsonReader;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewHistoryDefinitionStatus;
+import java.io.IOException;
+import java.time.OffsetDateTime;
+
+/**
+ * Access Review History Definition Instance.
+ */
+@Fluent
+public final class AccessReviewHistoryInstanceInner extends ProxyResource {
+ /*
+ * Access Review History Definition Instance properties.
+ */
+ private AccessReviewHistoryInstanceProperties innerProperties;
+
+ /*
+ * The type of the resource.
+ */
+ private String type;
+
+ /*
+ * The name of the resource.
+ */
+ private String name;
+
+ /*
+ * Fully qualified resource Id for the resource.
+ */
+ private String id;
+
+ /**
+ * Creates an instance of AccessReviewHistoryInstanceInner class.
+ */
+ public AccessReviewHistoryInstanceInner() {
+ }
+
+ /**
+ * Get the innerProperties property: Access Review History Definition Instance properties.
+ *
+ * @return the innerProperties value.
+ */
+ private AccessReviewHistoryInstanceProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the type property: The type of the resource.
+ *
+ * @return the type value.
+ */
+ @Override
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the name property: The name of the resource.
+ *
+ * @return the name value.
+ */
+ @Override
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the id property: Fully qualified resource Id for the resource.
+ *
+ * @return the id value.
+ */
+ @Override
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get the reviewHistoryPeriodStartDateTime property: Date time used when selecting review data, all reviews
+ * included in data start on or after this date. For use only with one-time/non-recurring reports.
+ *
+ * @return the reviewHistoryPeriodStartDateTime value.
+ */
+ public OffsetDateTime reviewHistoryPeriodStartDateTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().reviewHistoryPeriodStartDateTime();
+ }
+
+ /**
+ * Set the reviewHistoryPeriodStartDateTime property: Date time used when selecting review data, all reviews
+ * included in data start on or after this date. For use only with one-time/non-recurring reports.
+ *
+ * @param reviewHistoryPeriodStartDateTime the reviewHistoryPeriodStartDateTime value to set.
+ * @return the AccessReviewHistoryInstanceInner object itself.
+ */
+ public AccessReviewHistoryInstanceInner
+ withReviewHistoryPeriodStartDateTime(OffsetDateTime reviewHistoryPeriodStartDateTime) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewHistoryInstanceProperties();
+ }
+ this.innerProperties().withReviewHistoryPeriodStartDateTime(reviewHistoryPeriodStartDateTime);
+ return this;
+ }
+
+ /**
+ * Get the reviewHistoryPeriodEndDateTime property: Date time used when selecting review data, all reviews included
+ * in data end on or before this date. For use only with one-time/non-recurring reports.
+ *
+ * @return the reviewHistoryPeriodEndDateTime value.
+ */
+ public OffsetDateTime reviewHistoryPeriodEndDateTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().reviewHistoryPeriodEndDateTime();
+ }
+
+ /**
+ * Set the reviewHistoryPeriodEndDateTime property: Date time used when selecting review data, all reviews included
+ * in data end on or before this date. For use only with one-time/non-recurring reports.
+ *
+ * @param reviewHistoryPeriodEndDateTime the reviewHistoryPeriodEndDateTime value to set.
+ * @return the AccessReviewHistoryInstanceInner object itself.
+ */
+ public AccessReviewHistoryInstanceInner
+ withReviewHistoryPeriodEndDateTime(OffsetDateTime reviewHistoryPeriodEndDateTime) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewHistoryInstanceProperties();
+ }
+ this.innerProperties().withReviewHistoryPeriodEndDateTime(reviewHistoryPeriodEndDateTime);
+ return this;
+ }
+
+ /**
+ * Get the displayName property: The display name for the parent history 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 parent history definition.
+ *
+ * @param displayName the displayName value to set.
+ * @return the AccessReviewHistoryInstanceInner object itself.
+ */
+ public AccessReviewHistoryInstanceInner withDisplayName(String displayName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewHistoryInstanceProperties();
+ }
+ this.innerProperties().withDisplayName(displayName);
+ return this;
+ }
+
+ /**
+ * Get the status property: Status of the requested review history instance data. This is either requested,
+ * in-progress, done or error. The state transitions are as follows - Requested -> InProgress -> Done ->
+ * Expired.
+ *
+ * @return the status value.
+ */
+ public AccessReviewHistoryDefinitionStatus status() {
+ return this.innerProperties() == null ? null : this.innerProperties().status();
+ }
+
+ /**
+ * Get the runDateTime property: Date time when the history data report is scheduled to be generated.
+ *
+ * @return the runDateTime value.
+ */
+ public OffsetDateTime runDateTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().runDateTime();
+ }
+
+ /**
+ * Set the runDateTime property: Date time when the history data report is scheduled to be generated.
+ *
+ * @param runDateTime the runDateTime value to set.
+ * @return the AccessReviewHistoryInstanceInner object itself.
+ */
+ public AccessReviewHistoryInstanceInner withRunDateTime(OffsetDateTime runDateTime) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewHistoryInstanceProperties();
+ }
+ this.innerProperties().withRunDateTime(runDateTime);
+ return this;
+ }
+
+ /**
+ * Get the fulfilledDateTime property: Date time when the history data report is scheduled to be generated.
+ *
+ * @return the fulfilledDateTime value.
+ */
+ public OffsetDateTime fulfilledDateTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().fulfilledDateTime();
+ }
+
+ /**
+ * Set the fulfilledDateTime property: Date time when the history data report is scheduled to be generated.
+ *
+ * @param fulfilledDateTime the fulfilledDateTime value to set.
+ * @return the AccessReviewHistoryInstanceInner object itself.
+ */
+ public AccessReviewHistoryInstanceInner withFulfilledDateTime(OffsetDateTime fulfilledDateTime) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewHistoryInstanceProperties();
+ }
+ this.innerProperties().withFulfilledDateTime(fulfilledDateTime);
+ return this;
+ }
+
+ /**
+ * Get the downloadUri property: Uri which can be used to retrieve review history data. To generate this Uri,
+ * generateDownloadUri() must be called for a specific accessReviewHistoryDefinitionInstance. The link expires after
+ * a 24 hour period. Callers can see the expiration date time by looking at the 'se' parameter in the generated uri.
+ *
+ * @return the downloadUri value.
+ */
+ public String downloadUri() {
+ return this.innerProperties() == null ? null : this.innerProperties().downloadUri();
+ }
+
+ /**
+ * Get the expiration property: Date time when history data report expires and the associated data is deleted.
+ *
+ * @return the expiration value.
+ */
+ public OffsetDateTime expiration() {
+ return this.innerProperties() == null ? null : this.innerProperties().expiration();
+ }
+
+ /**
+ * Set the expiration property: Date time when history data report expires and the associated data is deleted.
+ *
+ * @param expiration the expiration value to set.
+ * @return the AccessReviewHistoryInstanceInner object itself.
+ */
+ public AccessReviewHistoryInstanceInner withExpiration(OffsetDateTime expiration) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewHistoryInstanceProperties();
+ }
+ this.innerProperties().withExpiration(expiration);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeJsonField("properties", this.innerProperties);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AccessReviewHistoryInstanceInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AccessReviewHistoryInstanceInner if the JsonReader was pointing to an instance of it, or
+ * null if it was pointing to JSON null.
+ * @throws IllegalStateException If the deserialized JSON object was missing any required properties.
+ * @throws IOException If an error occurs while reading the AccessReviewHistoryInstanceInner.
+ */
+ public static AccessReviewHistoryInstanceInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AccessReviewHistoryInstanceInner deserializedAccessReviewHistoryInstanceInner
+ = new AccessReviewHistoryInstanceInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("id".equals(fieldName)) {
+ deserializedAccessReviewHistoryInstanceInner.id = reader.getString();
+ } else if ("name".equals(fieldName)) {
+ deserializedAccessReviewHistoryInstanceInner.name = reader.getString();
+ } else if ("type".equals(fieldName)) {
+ deserializedAccessReviewHistoryInstanceInner.type = reader.getString();
+ } else if ("properties".equals(fieldName)) {
+ deserializedAccessReviewHistoryInstanceInner.innerProperties
+ = AccessReviewHistoryInstanceProperties.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAccessReviewHistoryInstanceInner;
+ });
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewHistoryInstanceProperties.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewHistoryInstanceProperties.java
new file mode 100644
index 000000000000..5a51a6b42b59
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewHistoryInstanceProperties.java
@@ -0,0 +1,303 @@
+// 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.CoreUtils;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewHistoryDefinitionStatus;
+import java.io.IOException;
+import java.time.OffsetDateTime;
+import java.time.format.DateTimeFormatter;
+
+/**
+ * Access Review History Definition Instance properties.
+ */
+@Fluent
+public final class AccessReviewHistoryInstanceProperties
+ implements JsonSerializable {
+ /*
+ * Date time used when selecting review data, all reviews included in data start on or after this date. For use only
+ * with one-time/non-recurring reports.
+ */
+ private OffsetDateTime reviewHistoryPeriodStartDateTime;
+
+ /*
+ * Date time used when selecting review data, all reviews included in data end on or before this date. For use only
+ * with one-time/non-recurring reports.
+ */
+ private OffsetDateTime reviewHistoryPeriodEndDateTime;
+
+ /*
+ * The display name for the parent history definition.
+ */
+ private String displayName;
+
+ /*
+ * Status of the requested review history instance data. This is either requested, in-progress, done or error. The
+ * state transitions are as follows - Requested -> InProgress -> Done -> Expired
+ */
+ private AccessReviewHistoryDefinitionStatus status;
+
+ /*
+ * Date time when the history data report is scheduled to be generated.
+ */
+ private OffsetDateTime runDateTime;
+
+ /*
+ * Date time when the history data report is scheduled to be generated.
+ */
+ private OffsetDateTime fulfilledDateTime;
+
+ /*
+ * Uri which can be used to retrieve review history data. To generate this Uri, generateDownloadUri() must be called
+ * for a specific accessReviewHistoryDefinitionInstance. The link expires after a 24 hour period. Callers can see
+ * the expiration date time by looking at the 'se' parameter in the generated uri.
+ */
+ private String downloadUri;
+
+ /*
+ * Date time when history data report expires and the associated data is deleted.
+ */
+ private OffsetDateTime expiration;
+
+ /**
+ * Creates an instance of AccessReviewHistoryInstanceProperties class.
+ */
+ public AccessReviewHistoryInstanceProperties() {
+ }
+
+ /**
+ * Get the reviewHistoryPeriodStartDateTime property: Date time used when selecting review data, all reviews
+ * included in data start on or after this date. For use only with one-time/non-recurring reports.
+ *
+ * @return the reviewHistoryPeriodStartDateTime value.
+ */
+ public OffsetDateTime reviewHistoryPeriodStartDateTime() {
+ return this.reviewHistoryPeriodStartDateTime;
+ }
+
+ /**
+ * Set the reviewHistoryPeriodStartDateTime property: Date time used when selecting review data, all reviews
+ * included in data start on or after this date. For use only with one-time/non-recurring reports.
+ *
+ * @param reviewHistoryPeriodStartDateTime the reviewHistoryPeriodStartDateTime value to set.
+ * @return the AccessReviewHistoryInstanceProperties object itself.
+ */
+ public AccessReviewHistoryInstanceProperties
+ withReviewHistoryPeriodStartDateTime(OffsetDateTime reviewHistoryPeriodStartDateTime) {
+ this.reviewHistoryPeriodStartDateTime = reviewHistoryPeriodStartDateTime;
+ return this;
+ }
+
+ /**
+ * Get the reviewHistoryPeriodEndDateTime property: Date time used when selecting review data, all reviews included
+ * in data end on or before this date. For use only with one-time/non-recurring reports.
+ *
+ * @return the reviewHistoryPeriodEndDateTime value.
+ */
+ public OffsetDateTime reviewHistoryPeriodEndDateTime() {
+ return this.reviewHistoryPeriodEndDateTime;
+ }
+
+ /**
+ * Set the reviewHistoryPeriodEndDateTime property: Date time used when selecting review data, all reviews included
+ * in data end on or before this date. For use only with one-time/non-recurring reports.
+ *
+ * @param reviewHistoryPeriodEndDateTime the reviewHistoryPeriodEndDateTime value to set.
+ * @return the AccessReviewHistoryInstanceProperties object itself.
+ */
+ public AccessReviewHistoryInstanceProperties
+ withReviewHistoryPeriodEndDateTime(OffsetDateTime reviewHistoryPeriodEndDateTime) {
+ this.reviewHistoryPeriodEndDateTime = reviewHistoryPeriodEndDateTime;
+ return this;
+ }
+
+ /**
+ * Get the displayName property: The display name for the parent history definition.
+ *
+ * @return the displayName value.
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Set the displayName property: The display name for the parent history definition.
+ *
+ * @param displayName the displayName value to set.
+ * @return the AccessReviewHistoryInstanceProperties object itself.
+ */
+ public AccessReviewHistoryInstanceProperties withDisplayName(String displayName) {
+ this.displayName = displayName;
+ return this;
+ }
+
+ /**
+ * Get the status property: Status of the requested review history instance data. This is either requested,
+ * in-progress, done or error. The state transitions are as follows - Requested -> InProgress -> Done ->
+ * Expired.
+ *
+ * @return the status value.
+ */
+ public AccessReviewHistoryDefinitionStatus status() {
+ return this.status;
+ }
+
+ /**
+ * Get the runDateTime property: Date time when the history data report is scheduled to be generated.
+ *
+ * @return the runDateTime value.
+ */
+ public OffsetDateTime runDateTime() {
+ return this.runDateTime;
+ }
+
+ /**
+ * Set the runDateTime property: Date time when the history data report is scheduled to be generated.
+ *
+ * @param runDateTime the runDateTime value to set.
+ * @return the AccessReviewHistoryInstanceProperties object itself.
+ */
+ public AccessReviewHistoryInstanceProperties withRunDateTime(OffsetDateTime runDateTime) {
+ this.runDateTime = runDateTime;
+ return this;
+ }
+
+ /**
+ * Get the fulfilledDateTime property: Date time when the history data report is scheduled to be generated.
+ *
+ * @return the fulfilledDateTime value.
+ */
+ public OffsetDateTime fulfilledDateTime() {
+ return this.fulfilledDateTime;
+ }
+
+ /**
+ * Set the fulfilledDateTime property: Date time when the history data report is scheduled to be generated.
+ *
+ * @param fulfilledDateTime the fulfilledDateTime value to set.
+ * @return the AccessReviewHistoryInstanceProperties object itself.
+ */
+ public AccessReviewHistoryInstanceProperties withFulfilledDateTime(OffsetDateTime fulfilledDateTime) {
+ this.fulfilledDateTime = fulfilledDateTime;
+ return this;
+ }
+
+ /**
+ * Get the downloadUri property: Uri which can be used to retrieve review history data. To generate this Uri,
+ * generateDownloadUri() must be called for a specific accessReviewHistoryDefinitionInstance. The link expires after
+ * a 24 hour period. Callers can see the expiration date time by looking at the 'se' parameter in the generated uri.
+ *
+ * @return the downloadUri value.
+ */
+ public String downloadUri() {
+ return this.downloadUri;
+ }
+
+ /**
+ * Get the expiration property: Date time when history data report expires and the associated data is deleted.
+ *
+ * @return the expiration value.
+ */
+ public OffsetDateTime expiration() {
+ return this.expiration;
+ }
+
+ /**
+ * Set the expiration property: Date time when history data report expires and the associated data is deleted.
+ *
+ * @param expiration the expiration value to set.
+ * @return the AccessReviewHistoryInstanceProperties object itself.
+ */
+ public AccessReviewHistoryInstanceProperties withExpiration(OffsetDateTime expiration) {
+ this.expiration = expiration;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeStringField("reviewHistoryPeriodStartDateTime",
+ this.reviewHistoryPeriodStartDateTime == null
+ ? null
+ : DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(this.reviewHistoryPeriodStartDateTime));
+ jsonWriter.writeStringField("reviewHistoryPeriodEndDateTime",
+ this.reviewHistoryPeriodEndDateTime == null
+ ? null
+ : DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(this.reviewHistoryPeriodEndDateTime));
+ jsonWriter.writeStringField("displayName", this.displayName);
+ jsonWriter.writeStringField("runDateTime",
+ this.runDateTime == null ? null : DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(this.runDateTime));
+ jsonWriter.writeStringField("fulfilledDateTime",
+ this.fulfilledDateTime == null
+ ? null
+ : DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(this.fulfilledDateTime));
+ jsonWriter.writeStringField("expiration",
+ this.expiration == null ? null : DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(this.expiration));
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AccessReviewHistoryInstanceProperties from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AccessReviewHistoryInstanceProperties if the JsonReader was pointing to an instance of it,
+ * or null if it was pointing to JSON null.
+ * @throws IOException If an error occurs while reading the AccessReviewHistoryInstanceProperties.
+ */
+ public static AccessReviewHistoryInstanceProperties fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AccessReviewHistoryInstanceProperties deserializedAccessReviewHistoryInstanceProperties
+ = new AccessReviewHistoryInstanceProperties();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("reviewHistoryPeriodStartDateTime".equals(fieldName)) {
+ deserializedAccessReviewHistoryInstanceProperties.reviewHistoryPeriodStartDateTime = reader
+ .getNullable(nonNullReader -> CoreUtils.parseBestOffsetDateTime(nonNullReader.getString()));
+ } else if ("reviewHistoryPeriodEndDateTime".equals(fieldName)) {
+ deserializedAccessReviewHistoryInstanceProperties.reviewHistoryPeriodEndDateTime = reader
+ .getNullable(nonNullReader -> CoreUtils.parseBestOffsetDateTime(nonNullReader.getString()));
+ } else if ("displayName".equals(fieldName)) {
+ deserializedAccessReviewHistoryInstanceProperties.displayName = reader.getString();
+ } else if ("status".equals(fieldName)) {
+ deserializedAccessReviewHistoryInstanceProperties.status
+ = AccessReviewHistoryDefinitionStatus.fromString(reader.getString());
+ } else if ("runDateTime".equals(fieldName)) {
+ deserializedAccessReviewHistoryInstanceProperties.runDateTime = reader
+ .getNullable(nonNullReader -> CoreUtils.parseBestOffsetDateTime(nonNullReader.getString()));
+ } else if ("fulfilledDateTime".equals(fieldName)) {
+ deserializedAccessReviewHistoryInstanceProperties.fulfilledDateTime = reader
+ .getNullable(nonNullReader -> CoreUtils.parseBestOffsetDateTime(nonNullReader.getString()));
+ } else if ("downloadUri".equals(fieldName)) {
+ deserializedAccessReviewHistoryInstanceProperties.downloadUri = reader.getString();
+ } else if ("expiration".equals(fieldName)) {
+ deserializedAccessReviewHistoryInstanceProperties.expiration = reader
+ .getNullable(nonNullReader -> CoreUtils.parseBestOffsetDateTime(nonNullReader.getString()));
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAccessReviewHistoryInstanceProperties;
+ });
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewHistoryScheduleSettings.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewHistoryScheduleSettings.java
new file mode 100644
index 000000000000..11e032f70383
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewHistoryScheduleSettings.java
@@ -0,0 +1,256 @@
+// 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.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewRecurrencePatternType;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewRecurrenceRangeType;
+import java.io.IOException;
+import java.time.OffsetDateTime;
+
+/**
+ * Recurrence settings of an Access Review History Definition.
+ */
+@Fluent
+public final class AccessReviewHistoryScheduleSettings
+ implements JsonSerializable {
+ /*
+ * Access Review History Definition recurrence settings.
+ */
+ private AccessReviewRecurrencePattern innerPattern;
+
+ /*
+ * Access Review History Definition recurrence settings.
+ */
+ private AccessReviewRecurrenceRange innerRange;
+
+ /**
+ * Creates an instance of AccessReviewHistoryScheduleSettings class.
+ */
+ public AccessReviewHistoryScheduleSettings() {
+ }
+
+ /**
+ * Get the innerPattern property: Access Review History Definition recurrence settings.
+ *
+ * @return the innerPattern value.
+ */
+ private AccessReviewRecurrencePattern innerPattern() {
+ return this.innerPattern;
+ }
+
+ /**
+ * Get the innerRange property: Access Review History Definition recurrence settings.
+ *
+ * @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 AccessReviewHistoryScheduleSettings object itself.
+ */
+ public AccessReviewHistoryScheduleSettings 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 AccessReviewHistoryScheduleSettings object itself.
+ */
+ public AccessReviewHistoryScheduleSettings 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 AccessReviewHistoryScheduleSettings object itself.
+ */
+ public AccessReviewHistoryScheduleSettings 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 AccessReviewHistoryScheduleSettings object itself.
+ */
+ public AccessReviewHistoryScheduleSettings 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 AccessReviewHistoryScheduleSettings object itself.
+ */
+ public AccessReviewHistoryScheduleSettings 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 AccessReviewHistoryScheduleSettings object itself.
+ */
+ public AccessReviewHistoryScheduleSettings 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();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeJsonField("pattern", this.innerPattern);
+ jsonWriter.writeJsonField("range", this.innerRange);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AccessReviewHistoryScheduleSettings from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AccessReviewHistoryScheduleSettings if the JsonReader was pointing to an instance of it,
+ * or null if it was pointing to JSON null.
+ * @throws IOException If an error occurs while reading the AccessReviewHistoryScheduleSettings.
+ */
+ public static AccessReviewHistoryScheduleSettings fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AccessReviewHistoryScheduleSettings deserializedAccessReviewHistoryScheduleSettings
+ = new AccessReviewHistoryScheduleSettings();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("pattern".equals(fieldName)) {
+ deserializedAccessReviewHistoryScheduleSettings.innerPattern
+ = AccessReviewRecurrencePattern.fromJson(reader);
+ } else if ("range".equals(fieldName)) {
+ deserializedAccessReviewHistoryScheduleSettings.innerRange
+ = AccessReviewRecurrenceRange.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAccessReviewHistoryScheduleSettings;
+ });
+ }
+}
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 000000000000..5d5a51fc7d52
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewInstanceInner.java
@@ -0,0 +1,255 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewInstanceReviewersType;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewInstanceStatus;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewReviewer;
+import java.io.IOException;
+import java.time.OffsetDateTime;
+import java.util.List;
+
+/**
+ * Access Review Instance.
+ */
+@Fluent
+public final class AccessReviewInstanceInner extends ProxyResource {
+ /*
+ * Access Review properties.
+ */
+ private AccessReviewInstanceProperties innerProperties;
+
+ /*
+ * The type of the resource.
+ */
+ private String type;
+
+ /*
+ * The name of the resource.
+ */
+ private String name;
+
+ /*
+ * Fully qualified resource Id for the resource.
+ */
+ private String id;
+
+ /**
+ * Creates an instance of AccessReviewInstanceInner class.
+ */
+ public AccessReviewInstanceInner() {
+ }
+
+ /**
+ * Get the innerProperties property: Access Review properties.
+ *
+ * @return the innerProperties value.
+ */
+ private AccessReviewInstanceProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the type property: The type of the resource.
+ *
+ * @return the type value.
+ */
+ @Override
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the name property: The name of the resource.
+ *
+ * @return the name value.
+ */
+ @Override
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the id property: Fully qualified resource Id for the resource.
+ *
+ * @return the id value.
+ */
+ @Override
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * 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;
+ }
+
+ /**
+ * 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 AccessReviewInstanceInner object itself.
+ */
+ public AccessReviewInstanceInner withReviewers(List reviewers) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewInstanceProperties();
+ }
+ 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 AccessReviewInstanceInner object itself.
+ */
+ public AccessReviewInstanceInner withBackupReviewers(List backupReviewers) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewInstanceProperties();
+ }
+ 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 AccessReviewInstanceReviewersType reviewersType() {
+ return this.innerProperties() == null ? null : this.innerProperties().reviewersType();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeJsonField("properties", this.innerProperties);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AccessReviewInstanceInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AccessReviewInstanceInner if the JsonReader was pointing to an instance of it, or null if
+ * it was pointing to JSON null.
+ * @throws IllegalStateException If the deserialized JSON object was missing any required properties.
+ * @throws IOException If an error occurs while reading the AccessReviewInstanceInner.
+ */
+ public static AccessReviewInstanceInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AccessReviewInstanceInner deserializedAccessReviewInstanceInner = new AccessReviewInstanceInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("id".equals(fieldName)) {
+ deserializedAccessReviewInstanceInner.id = reader.getString();
+ } else if ("name".equals(fieldName)) {
+ deserializedAccessReviewInstanceInner.name = reader.getString();
+ } else if ("type".equals(fieldName)) {
+ deserializedAccessReviewInstanceInner.type = reader.getString();
+ } else if ("properties".equals(fieldName)) {
+ deserializedAccessReviewInstanceInner.innerProperties
+ = AccessReviewInstanceProperties.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAccessReviewInstanceInner;
+ });
+ }
+}
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 000000000000..8071112daccd
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewInstanceProperties.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.util.CoreUtils;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewInstanceReviewersType;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewInstanceStatus;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewReviewer;
+import java.io.IOException;
+import java.time.OffsetDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.List;
+
+/**
+ * Access Review Instance properties.
+ */
+@Fluent
+public final class AccessReviewInstanceProperties implements JsonSerializable {
+ /*
+ * This read-only field specifies the status of an access review instance.
+ */
+ private AccessReviewInstanceStatus status;
+
+ /*
+ * The DateTime when the review instance is scheduled to be start.
+ */
+ private OffsetDateTime startDateTime;
+
+ /*
+ * The DateTime when the review instance is scheduled to end.
+ */
+ private OffsetDateTime endDateTime;
+
+ /*
+ * This is the collection of reviewers.
+ */
+ private List reviewers;
+
+ /*
+ * This is the collection of backup reviewers.
+ */
+ 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.
+ */
+ private AccessReviewInstanceReviewersType reviewersType;
+
+ /**
+ * Creates an instance of AccessReviewInstanceProperties class.
+ */
+ public AccessReviewInstanceProperties() {
+ }
+
+ /**
+ * 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;
+ }
+
+ /**
+ * 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 AccessReviewInstanceProperties object itself.
+ */
+ public AccessReviewInstanceProperties 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 AccessReviewInstanceProperties object itself.
+ */
+ public AccessReviewInstanceProperties 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 AccessReviewInstanceReviewersType reviewersType() {
+ return this.reviewersType;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (reviewers() != null) {
+ reviewers().forEach(e -> e.validate());
+ }
+ if (backupReviewers() != null) {
+ backupReviewers().forEach(e -> e.validate());
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeStringField("startDateTime",
+ this.startDateTime == null ? null : DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(this.startDateTime));
+ jsonWriter.writeStringField("endDateTime",
+ this.endDateTime == null ? null : DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(this.endDateTime));
+ jsonWriter.writeArrayField("reviewers", this.reviewers, (writer, element) -> writer.writeJson(element));
+ jsonWriter.writeArrayField("backupReviewers", this.backupReviewers,
+ (writer, element) -> writer.writeJson(element));
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AccessReviewInstanceProperties from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AccessReviewInstanceProperties if the JsonReader was pointing to an instance of it, or
+ * null if it was pointing to JSON null.
+ * @throws IOException If an error occurs while reading the AccessReviewInstanceProperties.
+ */
+ public static AccessReviewInstanceProperties fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AccessReviewInstanceProperties deserializedAccessReviewInstanceProperties
+ = new AccessReviewInstanceProperties();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("status".equals(fieldName)) {
+ deserializedAccessReviewInstanceProperties.status
+ = AccessReviewInstanceStatus.fromString(reader.getString());
+ } else if ("startDateTime".equals(fieldName)) {
+ deserializedAccessReviewInstanceProperties.startDateTime = reader
+ .getNullable(nonNullReader -> CoreUtils.parseBestOffsetDateTime(nonNullReader.getString()));
+ } else if ("endDateTime".equals(fieldName)) {
+ deserializedAccessReviewInstanceProperties.endDateTime = reader
+ .getNullable(nonNullReader -> CoreUtils.parseBestOffsetDateTime(nonNullReader.getString()));
+ } else if ("reviewers".equals(fieldName)) {
+ List reviewers
+ = reader.readArray(reader1 -> AccessReviewReviewer.fromJson(reader1));
+ deserializedAccessReviewInstanceProperties.reviewers = reviewers;
+ } else if ("backupReviewers".equals(fieldName)) {
+ List backupReviewers
+ = reader.readArray(reader1 -> AccessReviewReviewer.fromJson(reader1));
+ deserializedAccessReviewInstanceProperties.backupReviewers = backupReviewers;
+ } else if ("reviewersType".equals(fieldName)) {
+ deserializedAccessReviewInstanceProperties.reviewersType
+ = AccessReviewInstanceReviewersType.fromString(reader.getString());
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAccessReviewInstanceProperties;
+ });
+ }
+}
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 000000000000..ef3169f43e09
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewRecurrencePattern.java
@@ -0,0 +1,126 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewRecurrencePatternType;
+import java.io.IOException;
+
+/**
+ * Recurrence Pattern of an Access Review Schedule Definition.
+ */
+@Fluent
+public final class AccessReviewRecurrencePattern implements JsonSerializable {
+ /*
+ * The recurrence type : weekly, monthly, etc.
+ */
+ private AccessReviewRecurrencePatternType type;
+
+ /*
+ * The interval for recurrence. For a quarterly review, the interval is 3 for type : absoluteMonthly.
+ */
+ private Integer interval;
+
+ /**
+ * Creates an instance of AccessReviewRecurrencePattern class.
+ */
+ public AccessReviewRecurrencePattern() {
+ }
+
+ /**
+ * 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() {
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeStringField("type", this.type == null ? null : this.type.toString());
+ jsonWriter.writeNumberField("interval", this.interval);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AccessReviewRecurrencePattern from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AccessReviewRecurrencePattern if the JsonReader was pointing to an instance of it, or null
+ * if it was pointing to JSON null.
+ * @throws IOException If an error occurs while reading the AccessReviewRecurrencePattern.
+ */
+ public static AccessReviewRecurrencePattern fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AccessReviewRecurrencePattern deserializedAccessReviewRecurrencePattern
+ = new AccessReviewRecurrencePattern();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("type".equals(fieldName)) {
+ deserializedAccessReviewRecurrencePattern.type
+ = AccessReviewRecurrencePatternType.fromString(reader.getString());
+ } else if ("interval".equals(fieldName)) {
+ deserializedAccessReviewRecurrencePattern.interval = reader.getNullable(JsonReader::getInt);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAccessReviewRecurrencePattern;
+ });
+ }
+}
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 000000000000..8b58231d8ca0
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewRecurrenceRange.java
@@ -0,0 +1,191 @@
+// 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.CoreUtils;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewRecurrenceRangeType;
+import java.io.IOException;
+import java.time.OffsetDateTime;
+import java.time.format.DateTimeFormatter;
+
+/**
+ * Recurrence Range of an Access Review Schedule Definition.
+ */
+@Fluent
+public final class AccessReviewRecurrenceRange implements JsonSerializable {
+ /*
+ * The recurrence range type. The possible values are: endDate, noEnd, numbered.
+ */
+ private AccessReviewRecurrenceRangeType type;
+
+ /*
+ * The number of times to repeat the access review. Required and must be positive if type is numbered.
+ */
+ private Integer numberOfOccurrences;
+
+ /*
+ * The DateTime when the review is scheduled to be start. This could be a date in the future. Required on create.
+ */
+ private OffsetDateTime startDate;
+
+ /*
+ * The DateTime when the review is scheduled to end. Required if type is endDate
+ */
+ private OffsetDateTime endDate;
+
+ /**
+ * Creates an instance of AccessReviewRecurrenceRange class.
+ */
+ public AccessReviewRecurrenceRange() {
+ }
+
+ /**
+ * 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() {
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeStringField("type", this.type == null ? null : this.type.toString());
+ jsonWriter.writeNumberField("numberOfOccurrences", this.numberOfOccurrences);
+ jsonWriter.writeStringField("startDate",
+ this.startDate == null ? null : DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(this.startDate));
+ jsonWriter.writeStringField("endDate",
+ this.endDate == null ? null : DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(this.endDate));
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AccessReviewRecurrenceRange from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AccessReviewRecurrenceRange if the JsonReader was pointing to an instance of it, or null
+ * if it was pointing to JSON null.
+ * @throws IOException If an error occurs while reading the AccessReviewRecurrenceRange.
+ */
+ public static AccessReviewRecurrenceRange fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AccessReviewRecurrenceRange deserializedAccessReviewRecurrenceRange = new AccessReviewRecurrenceRange();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("type".equals(fieldName)) {
+ deserializedAccessReviewRecurrenceRange.type
+ = AccessReviewRecurrenceRangeType.fromString(reader.getString());
+ } else if ("numberOfOccurrences".equals(fieldName)) {
+ deserializedAccessReviewRecurrenceRange.numberOfOccurrences
+ = reader.getNullable(JsonReader::getInt);
+ } else if ("startDate".equals(fieldName)) {
+ deserializedAccessReviewRecurrenceRange.startDate = reader
+ .getNullable(nonNullReader -> CoreUtils.parseBestOffsetDateTime(nonNullReader.getString()));
+ } else if ("endDate".equals(fieldName)) {
+ deserializedAccessReviewRecurrenceRange.endDate = reader
+ .getNullable(nonNullReader -> CoreUtils.parseBestOffsetDateTime(nonNullReader.getString()));
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAccessReviewRecurrenceRange;
+ });
+ }
+}
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 000000000000..2163ed01075e
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewRecurrenceSettings.java
@@ -0,0 +1,255 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewRecurrencePatternType;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewRecurrenceRangeType;
+import java.io.IOException;
+import java.time.OffsetDateTime;
+
+/**
+ * Recurrence Settings of an Access Review Schedule Definition.
+ */
+@Fluent
+public final class AccessReviewRecurrenceSettings implements JsonSerializable {
+ /*
+ * Access Review schedule definition recurrence pattern.
+ */
+ private AccessReviewRecurrencePattern innerPattern;
+
+ /*
+ * Access Review schedule definition recurrence range.
+ */
+ private AccessReviewRecurrenceRange innerRange;
+
+ /**
+ * Creates an instance of AccessReviewRecurrenceSettings class.
+ */
+ public AccessReviewRecurrenceSettings() {
+ }
+
+ /**
+ * 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();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeJsonField("pattern", this.innerPattern);
+ jsonWriter.writeJsonField("range", this.innerRange);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AccessReviewRecurrenceSettings from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AccessReviewRecurrenceSettings if the JsonReader was pointing to an instance of it, or
+ * null if it was pointing to JSON null.
+ * @throws IOException If an error occurs while reading the AccessReviewRecurrenceSettings.
+ */
+ public static AccessReviewRecurrenceSettings fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AccessReviewRecurrenceSettings deserializedAccessReviewRecurrenceSettings
+ = new AccessReviewRecurrenceSettings();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("pattern".equals(fieldName)) {
+ deserializedAccessReviewRecurrenceSettings.innerPattern
+ = AccessReviewRecurrencePattern.fromJson(reader);
+ } else if ("range".equals(fieldName)) {
+ deserializedAccessReviewRecurrenceSettings.innerRange
+ = AccessReviewRecurrenceRange.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAccessReviewRecurrenceSettings;
+ });
+ }
+}
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 000000000000..240b463d2f58
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewScheduleDefinitionInner.java
@@ -0,0 +1,820 @@
+// 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.json.JsonReader;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+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 java.io.IOException;
+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.
+ */
+ private AccessReviewScheduleDefinitionProperties innerProperties;
+
+ /*
+ * The type of the resource.
+ */
+ private String type;
+
+ /*
+ * The name of the resource.
+ */
+ private String name;
+
+ /*
+ * Fully qualified resource Id for the resource.
+ */
+ private String id;
+
+ /**
+ * Creates an instance of AccessReviewScheduleDefinitionInner class.
+ */
+ public AccessReviewScheduleDefinitionInner() {
+ }
+
+ /**
+ * Get the innerProperties property: Access Review properties.
+ *
+ * @return the innerProperties value.
+ */
+ private AccessReviewScheduleDefinitionProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the type property: The type of the resource.
+ *
+ * @return the type value.
+ */
+ @Override
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the name property: The name of the resource.
+ *
+ * @return the name value.
+ */
+ @Override
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the id property: Fully qualified resource Id for the resource.
+ *
+ * @return the id value.
+ */
+ @Override
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * 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 recommendationLookBackDuration property: Recommendations for access reviews are calculated by looking
+ * back at 30 days of data(w.r.t the start date of the review) by default. However, in some scenarios, customers
+ * want to change how far back to look at and want to configure 60 days, 90 days, etc. instead. This setting allows
+ * customers to configure this duration. 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 recommendationLookBackDuration value.
+ */
+ public Duration recommendationLookBackDuration() {
+ return this.innerProperties() == null ? null : this.innerProperties().recommendationLookBackDuration();
+ }
+
+ /**
+ * Set the recommendationLookBackDuration property: Recommendations for access reviews are calculated by looking
+ * back at 30 days of data(w.r.t the start date of the review) by default. However, in some scenarios, customers
+ * want to change how far back to look at and want to configure 60 days, 90 days, etc. instead. This setting allows
+ * customers to configure this duration. 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 recommendationLookBackDuration the recommendationLookBackDuration value to set.
+ * @return the AccessReviewScheduleDefinitionInner object itself.
+ */
+ public AccessReviewScheduleDefinitionInner
+ withRecommendationLookBackDuration(Duration recommendationLookBackDuration) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AccessReviewScheduleDefinitionProperties();
+ }
+ this.innerProperties().withRecommendationLookBackDuration(recommendationLookBackDuration);
+ 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();
+ }
+
+ /**
+ * Get the expandNestedMemberships property: Flag to indicate whether to expand nested memberships or not.
+ *
+ * @return the expandNestedMemberships value.
+ */
+ public Boolean expandNestedMemberships() {
+ return this.innerProperties() == null ? null : this.innerProperties().expandNestedMemberships();
+ }
+
+ /**
+ * Get the includeInheritedAccess property: Flag to indicate whether to expand nested memberships or not.
+ *
+ * @return the includeInheritedAccess value.
+ */
+ public Boolean includeInheritedAccess() {
+ return this.innerProperties() == null ? null : this.innerProperties().includeInheritedAccess();
+ }
+
+ /**
+ * Get the includeAccessBelowResource property: Flag to indicate whether to expand nested memberships or not.
+ *
+ * @return the includeAccessBelowResource value.
+ */
+ public Boolean includeAccessBelowResource() {
+ return this.innerProperties() == null ? null : this.innerProperties().includeAccessBelowResource();
+ }
+
+ /**
+ * Get the excludeResourceId property: This is used to indicate the resource id(s) to exclude.
+ *
+ * @return the excludeResourceId value.
+ */
+ public String excludeResourceId() {
+ return this.innerProperties() == null ? null : this.innerProperties().excludeResourceId();
+ }
+
+ /**
+ * Get the excludeRoleDefinitionId property: This is used to indicate the role definition id(s) to exclude.
+ *
+ * @return the excludeRoleDefinitionId value.
+ */
+ public String excludeRoleDefinitionId() {
+ return this.innerProperties() == null ? null : this.innerProperties().excludeRoleDefinitionId();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeJsonField("properties", this.innerProperties);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AccessReviewScheduleDefinitionInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AccessReviewScheduleDefinitionInner if the JsonReader was pointing to an instance of it,
+ * or null if it was pointing to JSON null.
+ * @throws IllegalStateException If the deserialized JSON object was missing any required properties.
+ * @throws IOException If an error occurs while reading the AccessReviewScheduleDefinitionInner.
+ */
+ public static AccessReviewScheduleDefinitionInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AccessReviewScheduleDefinitionInner deserializedAccessReviewScheduleDefinitionInner
+ = new AccessReviewScheduleDefinitionInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("id".equals(fieldName)) {
+ deserializedAccessReviewScheduleDefinitionInner.id = reader.getString();
+ } else if ("name".equals(fieldName)) {
+ deserializedAccessReviewScheduleDefinitionInner.name = reader.getString();
+ } else if ("type".equals(fieldName)) {
+ deserializedAccessReviewScheduleDefinitionInner.type = reader.getString();
+ } else if ("properties".equals(fieldName)) {
+ deserializedAccessReviewScheduleDefinitionInner.innerProperties
+ = AccessReviewScheduleDefinitionProperties.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAccessReviewScheduleDefinitionInner;
+ });
+ }
+}
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 000000000000..2783981c5a1e
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewScheduleDefinitionProperties.java
@@ -0,0 +1,962 @@
+// 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.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+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 java.io.IOException;
+import java.time.Duration;
+import java.time.OffsetDateTime;
+import java.util.List;
+
+/**
+ * Access Review.
+ */
+@Fluent
+public final class AccessReviewScheduleDefinitionProperties
+ implements JsonSerializable {
+ /*
+ * The display name for the schedule definition.
+ */
+ private String displayName;
+
+ /*
+ * This read-only field specifies the status of an accessReview.
+ */
+ private AccessReviewScheduleDefinitionStatus status;
+
+ /*
+ * The description provided by the access review creator and visible to admins.
+ */
+ private String descriptionForAdmins;
+
+ /*
+ * The description provided by the access review creator to be shown to reviewers.
+ */
+ private String descriptionForReviewers;
+
+ /*
+ * The user or other identity who created this review.
+ */
+ private AccessReviewActorIdentity innerCreatedBy;
+
+ /*
+ * Access Review 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.
+ */
+ private AccessReviewScope innerScope;
+
+ /*
+ * This is the collection of reviewers.
+ */
+ private List reviewers;
+
+ /*
+ * This is the collection of backup reviewers.
+ */
+ 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.
+ */
+ private AccessReviewScheduleDefinitionReviewersType reviewersType;
+
+ /*
+ * This is the collection of instances returned when one does an expand on it.
+ */
+ private List instances;
+
+ /**
+ * Creates an instance of AccessReviewScheduleDefinitionProperties class.
+ */
+ public AccessReviewScheduleDefinitionProperties() {
+ }
+
+ /**
+ * 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 recommendationLookBackDuration property: Recommendations for access reviews are calculated by looking
+ * back at 30 days of data(w.r.t the start date of the review) by default. However, in some scenarios, customers
+ * want to change how far back to look at and want to configure 60 days, 90 days, etc. instead. This setting allows
+ * customers to configure this duration. 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 recommendationLookBackDuration value.
+ */
+ public Duration recommendationLookBackDuration() {
+ return this.innerSettings() == null ? null : this.innerSettings().recommendationLookBackDuration();
+ }
+
+ /**
+ * Set the recommendationLookBackDuration property: Recommendations for access reviews are calculated by looking
+ * back at 30 days of data(w.r.t the start date of the review) by default. However, in some scenarios, customers
+ * want to change how far back to look at and want to configure 60 days, 90 days, etc. instead. This setting allows
+ * customers to configure this duration. 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 recommendationLookBackDuration the recommendationLookBackDuration value to set.
+ * @return the AccessReviewScheduleDefinitionProperties object itself.
+ */
+ public AccessReviewScheduleDefinitionProperties
+ withRecommendationLookBackDuration(Duration recommendationLookBackDuration) {
+ if (this.innerSettings() == null) {
+ this.innerSettings = new AccessReviewScheduleSettings();
+ }
+ this.innerSettings().withRecommendationLookBackDuration(recommendationLookBackDuration);
+ 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;
+ }
+
+ /**
+ * Get the expandNestedMemberships property: Flag to indicate whether to expand nested memberships or not.
+ *
+ * @return the expandNestedMemberships value.
+ */
+ public Boolean expandNestedMemberships() {
+ return this.innerScope() == null ? null : this.innerScope().expandNestedMemberships();
+ }
+
+ /**
+ * Set the expandNestedMemberships property: Flag to indicate whether to expand nested memberships or not.
+ *
+ * @param expandNestedMemberships the expandNestedMemberships value to set.
+ * @return the AccessReviewScheduleDefinitionProperties object itself.
+ */
+ public AccessReviewScheduleDefinitionProperties withExpandNestedMemberships(Boolean expandNestedMemberships) {
+ if (this.innerScope() == null) {
+ this.innerScope = new AccessReviewScope();
+ }
+ this.innerScope().withExpandNestedMemberships(expandNestedMemberships);
+ return this;
+ }
+
+ /**
+ * Get the includeInheritedAccess property: Flag to indicate whether to expand nested memberships or not.
+ *
+ * @return the includeInheritedAccess value.
+ */
+ public Boolean includeInheritedAccess() {
+ return this.innerScope() == null ? null : this.innerScope().includeInheritedAccess();
+ }
+
+ /**
+ * Set the includeInheritedAccess property: Flag to indicate whether to expand nested memberships or not.
+ *
+ * @param includeInheritedAccess the includeInheritedAccess value to set.
+ * @return the AccessReviewScheduleDefinitionProperties object itself.
+ */
+ public AccessReviewScheduleDefinitionProperties withIncludeInheritedAccess(Boolean includeInheritedAccess) {
+ if (this.innerScope() == null) {
+ this.innerScope = new AccessReviewScope();
+ }
+ this.innerScope().withIncludeInheritedAccess(includeInheritedAccess);
+ return this;
+ }
+
+ /**
+ * Get the includeAccessBelowResource property: Flag to indicate whether to expand nested memberships or not.
+ *
+ * @return the includeAccessBelowResource value.
+ */
+ public Boolean includeAccessBelowResource() {
+ return this.innerScope() == null ? null : this.innerScope().includeAccessBelowResource();
+ }
+
+ /**
+ * Set the includeAccessBelowResource property: Flag to indicate whether to expand nested memberships or not.
+ *
+ * @param includeAccessBelowResource the includeAccessBelowResource value to set.
+ * @return the AccessReviewScheduleDefinitionProperties object itself.
+ */
+ public AccessReviewScheduleDefinitionProperties withIncludeAccessBelowResource(Boolean includeAccessBelowResource) {
+ if (this.innerScope() == null) {
+ this.innerScope = new AccessReviewScope();
+ }
+ this.innerScope().withIncludeAccessBelowResource(includeAccessBelowResource);
+ return this;
+ }
+
+ /**
+ * Get the excludeResourceId property: This is used to indicate the resource id(s) to exclude.
+ *
+ * @return the excludeResourceId value.
+ */
+ public String excludeResourceId() {
+ return this.innerScope() == null ? null : this.innerScope().excludeResourceId();
+ }
+
+ /**
+ * Set the excludeResourceId property: This is used to indicate the resource id(s) to exclude.
+ *
+ * @param excludeResourceId the excludeResourceId value to set.
+ * @return the AccessReviewScheduleDefinitionProperties object itself.
+ */
+ public AccessReviewScheduleDefinitionProperties withExcludeResourceId(String excludeResourceId) {
+ if (this.innerScope() == null) {
+ this.innerScope = new AccessReviewScope();
+ }
+ this.innerScope().withExcludeResourceId(excludeResourceId);
+ return this;
+ }
+
+ /**
+ * Get the excludeRoleDefinitionId property: This is used to indicate the role definition id(s) to exclude.
+ *
+ * @return the excludeRoleDefinitionId value.
+ */
+ public String excludeRoleDefinitionId() {
+ return this.innerScope() == null ? null : this.innerScope().excludeRoleDefinitionId();
+ }
+
+ /**
+ * Set the excludeRoleDefinitionId property: This is used to indicate the role definition id(s) to exclude.
+ *
+ * @param excludeRoleDefinitionId the excludeRoleDefinitionId value to set.
+ * @return the AccessReviewScheduleDefinitionProperties object itself.
+ */
+ public AccessReviewScheduleDefinitionProperties withExcludeRoleDefinitionId(String excludeRoleDefinitionId) {
+ if (this.innerScope() == null) {
+ this.innerScope = new AccessReviewScope();
+ }
+ this.innerScope().withExcludeRoleDefinitionId(excludeRoleDefinitionId);
+ 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());
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeStringField("displayName", this.displayName);
+ jsonWriter.writeStringField("descriptionForAdmins", this.descriptionForAdmins);
+ jsonWriter.writeStringField("descriptionForReviewers", this.descriptionForReviewers);
+ jsonWriter.writeJsonField("settings", this.innerSettings);
+ jsonWriter.writeArrayField("reviewers", this.reviewers, (writer, element) -> writer.writeJson(element));
+ jsonWriter.writeArrayField("backupReviewers", this.backupReviewers,
+ (writer, element) -> writer.writeJson(element));
+ jsonWriter.writeArrayField("instances", this.instances, (writer, element) -> writer.writeJson(element));
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AccessReviewScheduleDefinitionProperties from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AccessReviewScheduleDefinitionProperties if the JsonReader was pointing to an instance of
+ * it, or null if it was pointing to JSON null.
+ * @throws IOException If an error occurs while reading the AccessReviewScheduleDefinitionProperties.
+ */
+ public static AccessReviewScheduleDefinitionProperties fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AccessReviewScheduleDefinitionProperties deserializedAccessReviewScheduleDefinitionProperties
+ = new AccessReviewScheduleDefinitionProperties();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("displayName".equals(fieldName)) {
+ deserializedAccessReviewScheduleDefinitionProperties.displayName = reader.getString();
+ } else if ("status".equals(fieldName)) {
+ deserializedAccessReviewScheduleDefinitionProperties.status
+ = AccessReviewScheduleDefinitionStatus.fromString(reader.getString());
+ } else if ("descriptionForAdmins".equals(fieldName)) {
+ deserializedAccessReviewScheduleDefinitionProperties.descriptionForAdmins = reader.getString();
+ } else if ("descriptionForReviewers".equals(fieldName)) {
+ deserializedAccessReviewScheduleDefinitionProperties.descriptionForReviewers = reader.getString();
+ } else if ("createdBy".equals(fieldName)) {
+ deserializedAccessReviewScheduleDefinitionProperties.innerCreatedBy
+ = AccessReviewActorIdentity.fromJson(reader);
+ } else if ("settings".equals(fieldName)) {
+ deserializedAccessReviewScheduleDefinitionProperties.innerSettings
+ = AccessReviewScheduleSettings.fromJson(reader);
+ } else if ("scope".equals(fieldName)) {
+ deserializedAccessReviewScheduleDefinitionProperties.innerScope
+ = AccessReviewScope.fromJson(reader);
+ } else if ("reviewers".equals(fieldName)) {
+ List reviewers
+ = reader.readArray(reader1 -> AccessReviewReviewer.fromJson(reader1));
+ deserializedAccessReviewScheduleDefinitionProperties.reviewers = reviewers;
+ } else if ("backupReviewers".equals(fieldName)) {
+ List backupReviewers
+ = reader.readArray(reader1 -> AccessReviewReviewer.fromJson(reader1));
+ deserializedAccessReviewScheduleDefinitionProperties.backupReviewers = backupReviewers;
+ } else if ("reviewersType".equals(fieldName)) {
+ deserializedAccessReviewScheduleDefinitionProperties.reviewersType
+ = AccessReviewScheduleDefinitionReviewersType.fromString(reader.getString());
+ } else if ("instances".equals(fieldName)) {
+ List instances
+ = reader.readArray(reader1 -> AccessReviewInstanceInner.fromJson(reader1));
+ deserializedAccessReviewScheduleDefinitionProperties.instances = instances;
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAccessReviewScheduleDefinitionProperties;
+ });
+ }
+}
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 000000000000..46b12c95177a
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewScheduleSettings.java
@@ -0,0 +1,530 @@
+// 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.CoreUtils;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+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.io.IOException;
+import java.time.Duration;
+import java.time.OffsetDateTime;
+
+/**
+ * Settings of an Access Review.
+ */
+@Fluent
+public final class AccessReviewScheduleSettings implements JsonSerializable {
+ /*
+ * Flag to indicate whether sending mails to reviewers and the review creator is enabled.
+ */
+ private Boolean mailNotificationsEnabled;
+
+ /*
+ * Flag to indicate whether sending reminder emails to reviewers are enabled.
+ */
+ private Boolean reminderNotificationsEnabled;
+
+ /*
+ * Flag to indicate whether reviewers are required to provide a justification when reviewing access.
+ */
+ private Boolean defaultDecisionEnabled;
+
+ /*
+ * Flag to indicate whether the reviewer is required to pass justification when recording a decision.
+ */
+ private Boolean justificationRequiredOnApproval;
+
+ /*
+ * This specifies the behavior for the autoReview feature when an access review completes.
+ */
+ 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.
+ */
+ private Boolean autoApplyDecisionsEnabled;
+
+ /*
+ * Flag to indicate whether showing recommendations to reviewers is enabled.
+ */
+ private Boolean recommendationsEnabled;
+
+ /*
+ * Recommendations for access reviews are calculated by looking back at 30 days of data(w.r.t the start date of the
+ * review) by default. However, in some scenarios, customers want to change how far back to look at and want to
+ * configure 60 days, 90 days, etc. instead. This setting allows customers to configure this duration. 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))
+ */
+ private Duration recommendationLookBackDuration;
+
+ /*
+ * The duration in days for an instance.
+ */
+ private Integer instanceDurationInDays;
+
+ /*
+ * Access Review Settings.
+ */
+ private AccessReviewRecurrenceSettings innerRecurrence;
+
+ /**
+ * Creates an instance of AccessReviewScheduleSettings class.
+ */
+ public AccessReviewScheduleSettings() {
+ }
+
+ /**
+ * 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 recommendationLookBackDuration property: Recommendations for access reviews are calculated by looking
+ * back at 30 days of data(w.r.t the start date of the review) by default. However, in some scenarios, customers
+ * want to change how far back to look at and want to configure 60 days, 90 days, etc. instead. This setting allows
+ * customers to configure this duration. 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 recommendationLookBackDuration value.
+ */
+ public Duration recommendationLookBackDuration() {
+ return this.recommendationLookBackDuration;
+ }
+
+ /**
+ * Set the recommendationLookBackDuration property: Recommendations for access reviews are calculated by looking
+ * back at 30 days of data(w.r.t the start date of the review) by default. However, in some scenarios, customers
+ * want to change how far back to look at and want to configure 60 days, 90 days, etc. instead. This setting allows
+ * customers to configure this duration. 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 recommendationLookBackDuration the recommendationLookBackDuration value to set.
+ * @return the AccessReviewScheduleSettings object itself.
+ */
+ public AccessReviewScheduleSettings withRecommendationLookBackDuration(Duration recommendationLookBackDuration) {
+ this.recommendationLookBackDuration = recommendationLookBackDuration;
+ 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();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeBooleanField("mailNotificationsEnabled", this.mailNotificationsEnabled);
+ jsonWriter.writeBooleanField("reminderNotificationsEnabled", this.reminderNotificationsEnabled);
+ jsonWriter.writeBooleanField("defaultDecisionEnabled", this.defaultDecisionEnabled);
+ jsonWriter.writeBooleanField("justificationRequiredOnApproval", this.justificationRequiredOnApproval);
+ jsonWriter.writeStringField("defaultDecision",
+ this.defaultDecision == null ? null : this.defaultDecision.toString());
+ jsonWriter.writeBooleanField("autoApplyDecisionsEnabled", this.autoApplyDecisionsEnabled);
+ jsonWriter.writeBooleanField("recommendationsEnabled", this.recommendationsEnabled);
+ jsonWriter.writeStringField("recommendationLookBackDuration",
+ CoreUtils.durationToStringWithDays(this.recommendationLookBackDuration));
+ jsonWriter.writeNumberField("instanceDurationInDays", this.instanceDurationInDays);
+ jsonWriter.writeJsonField("recurrence", this.innerRecurrence);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AccessReviewScheduleSettings from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AccessReviewScheduleSettings if the JsonReader was pointing to an instance of it, or null
+ * if it was pointing to JSON null.
+ * @throws IOException If an error occurs while reading the AccessReviewScheduleSettings.
+ */
+ public static AccessReviewScheduleSettings fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AccessReviewScheduleSettings deserializedAccessReviewScheduleSettings = new AccessReviewScheduleSettings();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("mailNotificationsEnabled".equals(fieldName)) {
+ deserializedAccessReviewScheduleSettings.mailNotificationsEnabled
+ = reader.getNullable(JsonReader::getBoolean);
+ } else if ("reminderNotificationsEnabled".equals(fieldName)) {
+ deserializedAccessReviewScheduleSettings.reminderNotificationsEnabled
+ = reader.getNullable(JsonReader::getBoolean);
+ } else if ("defaultDecisionEnabled".equals(fieldName)) {
+ deserializedAccessReviewScheduleSettings.defaultDecisionEnabled
+ = reader.getNullable(JsonReader::getBoolean);
+ } else if ("justificationRequiredOnApproval".equals(fieldName)) {
+ deserializedAccessReviewScheduleSettings.justificationRequiredOnApproval
+ = reader.getNullable(JsonReader::getBoolean);
+ } else if ("defaultDecision".equals(fieldName)) {
+ deserializedAccessReviewScheduleSettings.defaultDecision
+ = DefaultDecisionType.fromString(reader.getString());
+ } else if ("autoApplyDecisionsEnabled".equals(fieldName)) {
+ deserializedAccessReviewScheduleSettings.autoApplyDecisionsEnabled
+ = reader.getNullable(JsonReader::getBoolean);
+ } else if ("recommendationsEnabled".equals(fieldName)) {
+ deserializedAccessReviewScheduleSettings.recommendationsEnabled
+ = reader.getNullable(JsonReader::getBoolean);
+ } else if ("recommendationLookBackDuration".equals(fieldName)) {
+ deserializedAccessReviewScheduleSettings.recommendationLookBackDuration
+ = reader.getNullable(nonNullReader -> Duration.parse(nonNullReader.getString()));
+ } else if ("instanceDurationInDays".equals(fieldName)) {
+ deserializedAccessReviewScheduleSettings.instanceDurationInDays
+ = reader.getNullable(JsonReader::getInt);
+ } else if ("recurrence".equals(fieldName)) {
+ deserializedAccessReviewScheduleSettings.innerRecurrence
+ = AccessReviewRecurrenceSettings.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAccessReviewScheduleSettings;
+ });
+ }
+}
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 000000000000..7d8e33879a17
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AccessReviewScope.java
@@ -0,0 +1,311 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.authorization.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.CoreUtils;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewScopeAssignmentState;
+import com.azure.resourcemanager.authorization.generated.models.AccessReviewScopePrincipalType;
+import java.io.IOException;
+import java.time.Duration;
+
+/**
+ * Descriptor for what needs to be reviewed.
+ */
+@Fluent
+public final class AccessReviewScope implements JsonSerializable {
+ /*
+ * ResourceId in which this review is getting created
+ */
+ private String resourceId;
+
+ /*
+ * This is used to indicate the role being reviewed
+ */
+ private String roleDefinitionId;
+
+ /*
+ * The identity type user/servicePrincipal to review
+ */
+ private AccessReviewScopePrincipalType principalType;
+
+ /*
+ * The role assignment state eligible/active to review
+ */
+ 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))
+ */
+ private Duration inactiveDuration;
+
+ /*
+ * Flag to indicate whether to expand nested memberships or not.
+ */
+ private Boolean expandNestedMemberships;
+
+ /*
+ * Flag to indicate whether to expand nested memberships or not.
+ */
+ private Boolean includeInheritedAccess;
+
+ /*
+ * Flag to indicate whether to expand nested memberships or not.
+ */
+ private Boolean includeAccessBelowResource;
+
+ /*
+ * This is used to indicate the resource id(s) to exclude
+ */
+ private String excludeResourceId;
+
+ /*
+ * This is used to indicate the role definition id(s) to exclude
+ */
+ private String excludeRoleDefinitionId;
+
+ /**
+ * Creates an instance of AccessReviewScope class.
+ */
+ public AccessReviewScope() {
+ }
+
+ /**
+ * 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;
+ }
+
+ /**
+ * Get the expandNestedMemberships property: Flag to indicate whether to expand nested memberships or not.
+ *
+ * @return the expandNestedMemberships value.
+ */
+ public Boolean expandNestedMemberships() {
+ return this.expandNestedMemberships;
+ }
+
+ /**
+ * Set the expandNestedMemberships property: Flag to indicate whether to expand nested memberships or not.
+ *
+ * @param expandNestedMemberships the expandNestedMemberships value to set.
+ * @return the AccessReviewScope object itself.
+ */
+ public AccessReviewScope withExpandNestedMemberships(Boolean expandNestedMemberships) {
+ this.expandNestedMemberships = expandNestedMemberships;
+ return this;
+ }
+
+ /**
+ * Get the includeInheritedAccess property: Flag to indicate whether to expand nested memberships or not.
+ *
+ * @return the includeInheritedAccess value.
+ */
+ public Boolean includeInheritedAccess() {
+ return this.includeInheritedAccess;
+ }
+
+ /**
+ * Set the includeInheritedAccess property: Flag to indicate whether to expand nested memberships or not.
+ *
+ * @param includeInheritedAccess the includeInheritedAccess value to set.
+ * @return the AccessReviewScope object itself.
+ */
+ public AccessReviewScope withIncludeInheritedAccess(Boolean includeInheritedAccess) {
+ this.includeInheritedAccess = includeInheritedAccess;
+ return this;
+ }
+
+ /**
+ * Get the includeAccessBelowResource property: Flag to indicate whether to expand nested memberships or not.
+ *
+ * @return the includeAccessBelowResource value.
+ */
+ public Boolean includeAccessBelowResource() {
+ return this.includeAccessBelowResource;
+ }
+
+ /**
+ * Set the includeAccessBelowResource property: Flag to indicate whether to expand nested memberships or not.
+ *
+ * @param includeAccessBelowResource the includeAccessBelowResource value to set.
+ * @return the AccessReviewScope object itself.
+ */
+ public AccessReviewScope withIncludeAccessBelowResource(Boolean includeAccessBelowResource) {
+ this.includeAccessBelowResource = includeAccessBelowResource;
+ return this;
+ }
+
+ /**
+ * Get the excludeResourceId property: This is used to indicate the resource id(s) to exclude.
+ *
+ * @return the excludeResourceId value.
+ */
+ public String excludeResourceId() {
+ return this.excludeResourceId;
+ }
+
+ /**
+ * Set the excludeResourceId property: This is used to indicate the resource id(s) to exclude.
+ *
+ * @param excludeResourceId the excludeResourceId value to set.
+ * @return the AccessReviewScope object itself.
+ */
+ public AccessReviewScope withExcludeResourceId(String excludeResourceId) {
+ this.excludeResourceId = excludeResourceId;
+ return this;
+ }
+
+ /**
+ * Get the excludeRoleDefinitionId property: This is used to indicate the role definition id(s) to exclude.
+ *
+ * @return the excludeRoleDefinitionId value.
+ */
+ public String excludeRoleDefinitionId() {
+ return this.excludeRoleDefinitionId;
+ }
+
+ /**
+ * Set the excludeRoleDefinitionId property: This is used to indicate the role definition id(s) to exclude.
+ *
+ * @param excludeRoleDefinitionId the excludeRoleDefinitionId value to set.
+ * @return the AccessReviewScope object itself.
+ */
+ public AccessReviewScope withExcludeRoleDefinitionId(String excludeRoleDefinitionId) {
+ this.excludeRoleDefinitionId = excludeRoleDefinitionId;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeStringField("inactiveDuration", CoreUtils.durationToStringWithDays(this.inactiveDuration));
+ jsonWriter.writeBooleanField("expandNestedMemberships", this.expandNestedMemberships);
+ jsonWriter.writeBooleanField("includeInheritedAccess", this.includeInheritedAccess);
+ jsonWriter.writeBooleanField("includeAccessBelowResource", this.includeAccessBelowResource);
+ jsonWriter.writeStringField("excludeResourceId", this.excludeResourceId);
+ jsonWriter.writeStringField("excludeRoleDefinitionId", this.excludeRoleDefinitionId);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AccessReviewScope from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AccessReviewScope if the JsonReader was pointing to an instance of it, or null if it was
+ * pointing to JSON null.
+ * @throws IOException If an error occurs while reading the AccessReviewScope.
+ */
+ public static AccessReviewScope fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AccessReviewScope deserializedAccessReviewScope = new AccessReviewScope();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("resourceId".equals(fieldName)) {
+ deserializedAccessReviewScope.resourceId = reader.getString();
+ } else if ("roleDefinitionId".equals(fieldName)) {
+ deserializedAccessReviewScope.roleDefinitionId = reader.getString();
+ } else if ("principalType".equals(fieldName)) {
+ deserializedAccessReviewScope.principalType
+ = AccessReviewScopePrincipalType.fromString(reader.getString());
+ } else if ("assignmentState".equals(fieldName)) {
+ deserializedAccessReviewScope.assignmentState
+ = AccessReviewScopeAssignmentState.fromString(reader.getString());
+ } else if ("inactiveDuration".equals(fieldName)) {
+ deserializedAccessReviewScope.inactiveDuration
+ = reader.getNullable(nonNullReader -> Duration.parse(nonNullReader.getString()));
+ } else if ("expandNestedMemberships".equals(fieldName)) {
+ deserializedAccessReviewScope.expandNestedMemberships = reader.getNullable(JsonReader::getBoolean);
+ } else if ("includeInheritedAccess".equals(fieldName)) {
+ deserializedAccessReviewScope.includeInheritedAccess = reader.getNullable(JsonReader::getBoolean);
+ } else if ("includeAccessBelowResource".equals(fieldName)) {
+ deserializedAccessReviewScope.includeAccessBelowResource
+ = reader.getNullable(JsonReader::getBoolean);
+ } else if ("excludeResourceId".equals(fieldName)) {
+ deserializedAccessReviewScope.excludeResourceId = reader.getString();
+ } else if ("excludeRoleDefinitionId".equals(fieldName)) {
+ deserializedAccessReviewScope.excludeRoleDefinitionId = reader.getString();
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAccessReviewScope;
+ });
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AlertConfigurationInner.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AlertConfigurationInner.java
new file mode 100644
index 000000000000..df88e0b6e558
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AlertConfigurationInner.java
@@ -0,0 +1,144 @@
+// 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.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import java.io.IOException;
+
+/**
+ * Alert configuration.
+ */
+@Fluent
+public final class AlertConfigurationInner implements JsonSerializable {
+ /*
+ * The alert configuration ID.
+ */
+ private String id;
+
+ /*
+ * The alert configuration name.
+ */
+ private String name;
+
+ /*
+ * The alert configuration type.
+ */
+ private String type;
+
+ /*
+ * Alert configuration properties.
+ */
+ private AlertConfigurationPropertiesInner properties;
+
+ /**
+ * Creates an instance of AlertConfigurationInner class.
+ */
+ public AlertConfigurationInner() {
+ }
+
+ /**
+ * Get the id property: The alert configuration ID.
+ *
+ * @return the id value.
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get the name property: The alert configuration name.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the type property: The alert configuration type.
+ *
+ * @return the type value.
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the properties property: Alert configuration properties.
+ *
+ * @return the properties value.
+ */
+ public AlertConfigurationPropertiesInner properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: Alert configuration properties.
+ *
+ * @param properties the properties value to set.
+ * @return the AlertConfigurationInner object itself.
+ */
+ public AlertConfigurationInner withProperties(AlertConfigurationPropertiesInner properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (properties() != null) {
+ properties().validate();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeJsonField("properties", this.properties);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AlertConfigurationInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AlertConfigurationInner if the JsonReader was pointing to an instance of it, or null if it
+ * was pointing to JSON null.
+ * @throws IOException If an error occurs while reading the AlertConfigurationInner.
+ */
+ public static AlertConfigurationInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AlertConfigurationInner deserializedAlertConfigurationInner = new AlertConfigurationInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("id".equals(fieldName)) {
+ deserializedAlertConfigurationInner.id = reader.getString();
+ } else if ("name".equals(fieldName)) {
+ deserializedAlertConfigurationInner.name = reader.getString();
+ } else if ("type".equals(fieldName)) {
+ deserializedAlertConfigurationInner.type = reader.getString();
+ } else if ("properties".equals(fieldName)) {
+ deserializedAlertConfigurationInner.properties = AlertConfigurationPropertiesInner.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAlertConfigurationInner;
+ });
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AlertConfigurationPropertiesInner.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AlertConfigurationPropertiesInner.java
new file mode 100644
index 000000000000..dc22c66208c4
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AlertConfigurationPropertiesInner.java
@@ -0,0 +1,233 @@
+// 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.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.authorization.generated.models.AzureRolesAssignedOutsidePimAlertConfigurationProperties;
+import com.azure.resourcemanager.authorization.generated.models.DuplicateRoleCreatedAlertConfigurationProperties;
+import com.azure.resourcemanager.authorization.generated.models.TooManyOwnersAssignedToResourceAlertConfigurationProperties;
+import com.azure.resourcemanager.authorization.generated.models.TooManyPermanentOwnersAssignedToResourceAlertConfigurationProperties;
+import java.io.IOException;
+
+/**
+ * Alert configuration properties.
+ */
+@Fluent
+public class AlertConfigurationPropertiesInner implements JsonSerializable {
+ /*
+ * The alert configuration type.
+ */
+ private String alertConfigurationType = "AlertConfigurationProperties";
+
+ /*
+ * The alert definition ID.
+ */
+ private String alertDefinitionId;
+
+ /*
+ * The alert scope.
+ */
+ private String scope;
+
+ /*
+ * True if the alert is enabled, false will disable the scanning for the specific alert.
+ */
+ private Boolean isEnabled;
+
+ /*
+ * The alert definition.
+ */
+ private AlertDefinitionInner alertDefinition;
+
+ /**
+ * Creates an instance of AlertConfigurationPropertiesInner class.
+ */
+ public AlertConfigurationPropertiesInner() {
+ }
+
+ /**
+ * Get the alertConfigurationType property: The alert configuration type.
+ *
+ * @return the alertConfigurationType value.
+ */
+ public String alertConfigurationType() {
+ return this.alertConfigurationType;
+ }
+
+ /**
+ * Get the alertDefinitionId property: The alert definition ID.
+ *
+ * @return the alertDefinitionId value.
+ */
+ public String alertDefinitionId() {
+ return this.alertDefinitionId;
+ }
+
+ /**
+ * Set the alertDefinitionId property: The alert definition ID.
+ *
+ * @param alertDefinitionId the alertDefinitionId value to set.
+ * @return the AlertConfigurationPropertiesInner object itself.
+ */
+ AlertConfigurationPropertiesInner withAlertDefinitionId(String alertDefinitionId) {
+ this.alertDefinitionId = alertDefinitionId;
+ return this;
+ }
+
+ /**
+ * Get the scope property: The alert scope.
+ *
+ * @return the scope value.
+ */
+ public String scope() {
+ return this.scope;
+ }
+
+ /**
+ * Set the scope property: The alert scope.
+ *
+ * @param scope the scope value to set.
+ * @return the AlertConfigurationPropertiesInner object itself.
+ */
+ AlertConfigurationPropertiesInner withScope(String scope) {
+ this.scope = scope;
+ return this;
+ }
+
+ /**
+ * Get the isEnabled property: True if the alert is enabled, false will disable the scanning for the specific alert.
+ *
+ * @return the isEnabled value.
+ */
+ public Boolean isEnabled() {
+ return this.isEnabled;
+ }
+
+ /**
+ * Set the isEnabled property: True if the alert is enabled, false will disable the scanning for the specific alert.
+ *
+ * @param isEnabled the isEnabled value to set.
+ * @return the AlertConfigurationPropertiesInner object itself.
+ */
+ public AlertConfigurationPropertiesInner withIsEnabled(Boolean isEnabled) {
+ this.isEnabled = isEnabled;
+ return this;
+ }
+
+ /**
+ * Get the alertDefinition property: The alert definition.
+ *
+ * @return the alertDefinition value.
+ */
+ public AlertDefinitionInner alertDefinition() {
+ return this.alertDefinition;
+ }
+
+ /**
+ * Set the alertDefinition property: The alert definition.
+ *
+ * @param alertDefinition the alertDefinition value to set.
+ * @return the AlertConfigurationPropertiesInner object itself.
+ */
+ AlertConfigurationPropertiesInner withAlertDefinition(AlertDefinitionInner alertDefinition) {
+ this.alertDefinition = alertDefinition;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (alertDefinition() != null) {
+ alertDefinition().validate();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeStringField("alertConfigurationType", this.alertConfigurationType);
+ jsonWriter.writeBooleanField("isEnabled", this.isEnabled);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AlertConfigurationPropertiesInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AlertConfigurationPropertiesInner if the JsonReader was pointing to an instance of it, or
+ * null if it was pointing to JSON null.
+ * @throws IOException If an error occurs while reading the AlertConfigurationPropertiesInner.
+ */
+ public static AlertConfigurationPropertiesInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ String discriminatorValue = null;
+ try (JsonReader readerToUse = reader.bufferObject()) {
+ readerToUse.nextToken(); // Prepare for reading
+ while (readerToUse.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = readerToUse.getFieldName();
+ readerToUse.nextToken();
+ if ("alertConfigurationType".equals(fieldName)) {
+ discriminatorValue = readerToUse.getString();
+ break;
+ } else {
+ readerToUse.skipChildren();
+ }
+ }
+ // Use the discriminator value to determine which subtype should be deserialized.
+ if ("AzureRolesAssignedOutsidePimAlertConfiguration".equals(discriminatorValue)) {
+ return AzureRolesAssignedOutsidePimAlertConfigurationProperties.fromJson(readerToUse.reset());
+ } else if ("DuplicateRoleCreatedAlertConfiguration".equals(discriminatorValue)) {
+ return DuplicateRoleCreatedAlertConfigurationProperties.fromJson(readerToUse.reset());
+ } else if ("TooManyOwnersAssignedToResourceAlertConfiguration".equals(discriminatorValue)) {
+ return TooManyOwnersAssignedToResourceAlertConfigurationProperties.fromJson(readerToUse.reset());
+ } else if ("TooManyPermanentOwnersAssignedToResourceAlertConfiguration".equals(discriminatorValue)) {
+ return TooManyPermanentOwnersAssignedToResourceAlertConfigurationProperties
+ .fromJson(readerToUse.reset());
+ } else {
+ return fromJsonKnownDiscriminator(readerToUse.reset());
+ }
+ }
+ });
+ }
+
+ static AlertConfigurationPropertiesInner fromJsonKnownDiscriminator(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AlertConfigurationPropertiesInner deserializedAlertConfigurationPropertiesInner
+ = new AlertConfigurationPropertiesInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("alertConfigurationType".equals(fieldName)) {
+ deserializedAlertConfigurationPropertiesInner.alertConfigurationType = reader.getString();
+ } else if ("alertDefinitionId".equals(fieldName)) {
+ deserializedAlertConfigurationPropertiesInner.alertDefinitionId = reader.getString();
+ } else if ("scope".equals(fieldName)) {
+ deserializedAlertConfigurationPropertiesInner.scope = reader.getString();
+ } else if ("isEnabled".equals(fieldName)) {
+ deserializedAlertConfigurationPropertiesInner.isEnabled
+ = reader.getNullable(JsonReader::getBoolean);
+ } else if ("alertDefinition".equals(fieldName)) {
+ deserializedAlertConfigurationPropertiesInner.alertDefinition
+ = AlertDefinitionInner.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAlertConfigurationPropertiesInner;
+ });
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AlertDefinitionInner.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AlertDefinitionInner.java
new file mode 100644
index 000000000000..be6c0f2eb444
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AlertDefinitionInner.java
@@ -0,0 +1,215 @@
+// 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.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.authorization.generated.models.SeverityLevel;
+import java.io.IOException;
+
+/**
+ * Alert definition.
+ */
+@Immutable
+public final class AlertDefinitionInner implements JsonSerializable {
+ /*
+ * The alert definition ID.
+ */
+ private String id;
+
+ /*
+ * The alert definition name.
+ */
+ private String name;
+
+ /*
+ * The alert definition type.
+ */
+ private String type;
+
+ /*
+ * Alert definition properties.
+ */
+ private AlertDefinitionProperties innerProperties;
+
+ /**
+ * Creates an instance of AlertDefinitionInner class.
+ */
+ public AlertDefinitionInner() {
+ }
+
+ /**
+ * Get the id property: The alert definition ID.
+ *
+ * @return the id value.
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get the name property: The alert definition name.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the type property: The alert definition type.
+ *
+ * @return the type value.
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the innerProperties property: Alert definition properties.
+ *
+ * @return the innerProperties value.
+ */
+ private AlertDefinitionProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the displayName property: The alert display name.
+ *
+ * @return the displayName value.
+ */
+ public String displayName() {
+ return this.innerProperties() == null ? null : this.innerProperties().displayName();
+ }
+
+ /**
+ * Get the scope property: The alert scope.
+ *
+ * @return the scope value.
+ */
+ public String scope() {
+ return this.innerProperties() == null ? null : this.innerProperties().scope();
+ }
+
+ /**
+ * Get the description property: The alert description.
+ *
+ * @return the description value.
+ */
+ public String description() {
+ return this.innerProperties() == null ? null : this.innerProperties().description();
+ }
+
+ /**
+ * Get the severityLevel property: Severity level of the alert.
+ *
+ * @return the severityLevel value.
+ */
+ public SeverityLevel severityLevel() {
+ return this.innerProperties() == null ? null : this.innerProperties().severityLevel();
+ }
+
+ /**
+ * Get the securityImpact property: Security impact of the alert.
+ *
+ * @return the securityImpact value.
+ */
+ public String securityImpact() {
+ return this.innerProperties() == null ? null : this.innerProperties().securityImpact();
+ }
+
+ /**
+ * Get the mitigationSteps property: The methods to mitigate the alert.
+ *
+ * @return the mitigationSteps value.
+ */
+ public String mitigationSteps() {
+ return this.innerProperties() == null ? null : this.innerProperties().mitigationSteps();
+ }
+
+ /**
+ * Get the howToPrevent property: The ways to prevent the alert.
+ *
+ * @return the howToPrevent value.
+ */
+ public String howToPrevent() {
+ return this.innerProperties() == null ? null : this.innerProperties().howToPrevent();
+ }
+
+ /**
+ * Get the isRemediatable property: True if the alert can be remediated; false, otherwise.
+ *
+ * @return the isRemediatable value.
+ */
+ public Boolean isRemediatable() {
+ return this.innerProperties() == null ? null : this.innerProperties().isRemediatable();
+ }
+
+ /**
+ * Get the isConfigurable property: True if the alert configuration can be configured; false, otherwise.
+ *
+ * @return the isConfigurable value.
+ */
+ public Boolean isConfigurable() {
+ return this.innerProperties() == null ? null : this.innerProperties().isConfigurable();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeJsonField("properties", this.innerProperties);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AlertDefinitionInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AlertDefinitionInner if the JsonReader was pointing to an instance of it, or null if it
+ * was pointing to JSON null.
+ * @throws IOException If an error occurs while reading the AlertDefinitionInner.
+ */
+ public static AlertDefinitionInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AlertDefinitionInner deserializedAlertDefinitionInner = new AlertDefinitionInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("id".equals(fieldName)) {
+ deserializedAlertDefinitionInner.id = reader.getString();
+ } else if ("name".equals(fieldName)) {
+ deserializedAlertDefinitionInner.name = reader.getString();
+ } else if ("type".equals(fieldName)) {
+ deserializedAlertDefinitionInner.type = reader.getString();
+ } else if ("properties".equals(fieldName)) {
+ deserializedAlertDefinitionInner.innerProperties = AlertDefinitionProperties.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAlertDefinitionInner;
+ });
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AlertDefinitionProperties.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AlertDefinitionProperties.java
new file mode 100644
index 000000000000..2ef4f893369d
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AlertDefinitionProperties.java
@@ -0,0 +1,210 @@
+// 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.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.authorization.generated.models.SeverityLevel;
+import java.io.IOException;
+
+/**
+ * Alert definition properties.
+ */
+@Immutable
+public final class AlertDefinitionProperties implements JsonSerializable {
+ /*
+ * The alert display name.
+ */
+ private String displayName;
+
+ /*
+ * The alert scope.
+ */
+ private String scope;
+
+ /*
+ * The alert description.
+ */
+ private String description;
+
+ /*
+ * Severity level of the alert.
+ */
+ private SeverityLevel severityLevel;
+
+ /*
+ * Security impact of the alert.
+ */
+ private String securityImpact;
+
+ /*
+ * The methods to mitigate the alert.
+ */
+ private String mitigationSteps;
+
+ /*
+ * The ways to prevent the alert.
+ */
+ private String howToPrevent;
+
+ /*
+ * True if the alert can be remediated; false, otherwise.
+ */
+ private Boolean isRemediatable;
+
+ /*
+ * True if the alert configuration can be configured; false, otherwise.
+ */
+ private Boolean isConfigurable;
+
+ /**
+ * Creates an instance of AlertDefinitionProperties class.
+ */
+ public AlertDefinitionProperties() {
+ }
+
+ /**
+ * Get the displayName property: The alert display name.
+ *
+ * @return the displayName value.
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Get the scope property: The alert scope.
+ *
+ * @return the scope value.
+ */
+ public String scope() {
+ return this.scope;
+ }
+
+ /**
+ * Get the description property: The alert description.
+ *
+ * @return the description value.
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Get the severityLevel property: Severity level of the alert.
+ *
+ * @return the severityLevel value.
+ */
+ public SeverityLevel severityLevel() {
+ return this.severityLevel;
+ }
+
+ /**
+ * Get the securityImpact property: Security impact of the alert.
+ *
+ * @return the securityImpact value.
+ */
+ public String securityImpact() {
+ return this.securityImpact;
+ }
+
+ /**
+ * Get the mitigationSteps property: The methods to mitigate the alert.
+ *
+ * @return the mitigationSteps value.
+ */
+ public String mitigationSteps() {
+ return this.mitigationSteps;
+ }
+
+ /**
+ * Get the howToPrevent property: The ways to prevent the alert.
+ *
+ * @return the howToPrevent value.
+ */
+ public String howToPrevent() {
+ return this.howToPrevent;
+ }
+
+ /**
+ * Get the isRemediatable property: True if the alert can be remediated; false, otherwise.
+ *
+ * @return the isRemediatable value.
+ */
+ public Boolean isRemediatable() {
+ return this.isRemediatable;
+ }
+
+ /**
+ * Get the isConfigurable property: True if the alert configuration can be configured; false, otherwise.
+ *
+ * @return the isConfigurable value.
+ */
+ public Boolean isConfigurable() {
+ return this.isConfigurable;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AlertDefinitionProperties from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AlertDefinitionProperties if the JsonReader was pointing to an instance of it, or null if
+ * it was pointing to JSON null.
+ * @throws IOException If an error occurs while reading the AlertDefinitionProperties.
+ */
+ public static AlertDefinitionProperties fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AlertDefinitionProperties deserializedAlertDefinitionProperties = new AlertDefinitionProperties();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("displayName".equals(fieldName)) {
+ deserializedAlertDefinitionProperties.displayName = reader.getString();
+ } else if ("scope".equals(fieldName)) {
+ deserializedAlertDefinitionProperties.scope = reader.getString();
+ } else if ("description".equals(fieldName)) {
+ deserializedAlertDefinitionProperties.description = reader.getString();
+ } else if ("severityLevel".equals(fieldName)) {
+ deserializedAlertDefinitionProperties.severityLevel = SeverityLevel.fromString(reader.getString());
+ } else if ("securityImpact".equals(fieldName)) {
+ deserializedAlertDefinitionProperties.securityImpact = reader.getString();
+ } else if ("mitigationSteps".equals(fieldName)) {
+ deserializedAlertDefinitionProperties.mitigationSteps = reader.getString();
+ } else if ("howToPrevent".equals(fieldName)) {
+ deserializedAlertDefinitionProperties.howToPrevent = reader.getString();
+ } else if ("isRemediatable".equals(fieldName)) {
+ deserializedAlertDefinitionProperties.isRemediatable = reader.getNullable(JsonReader::getBoolean);
+ } else if ("isConfigurable".equals(fieldName)) {
+ deserializedAlertDefinitionProperties.isConfigurable = reader.getNullable(JsonReader::getBoolean);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAlertDefinitionProperties;
+ });
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AlertIncidentInner.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AlertIncidentInner.java
new file mode 100644
index 000000000000..959d03566d87
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AlertIncidentInner.java
@@ -0,0 +1,145 @@
+// 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.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.authorization.generated.models.AlertIncidentProperties;
+import java.io.IOException;
+
+/**
+ * Alert incident.
+ */
+@Fluent
+public final class AlertIncidentInner implements JsonSerializable {
+ /*
+ * The alert incident ID.
+ */
+ private String id;
+
+ /*
+ * The alert incident name.
+ */
+ private String name;
+
+ /*
+ * The alert incident type.
+ */
+ private String type;
+
+ /*
+ * Alert incident properties.
+ */
+ private AlertIncidentProperties properties;
+
+ /**
+ * Creates an instance of AlertIncidentInner class.
+ */
+ public AlertIncidentInner() {
+ }
+
+ /**
+ * Get the id property: The alert incident ID.
+ *
+ * @return the id value.
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get the name property: The alert incident name.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the type property: The alert incident type.
+ *
+ * @return the type value.
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the properties property: Alert incident properties.
+ *
+ * @return the properties value.
+ */
+ public AlertIncidentProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: Alert incident properties.
+ *
+ * @param properties the properties value to set.
+ * @return the AlertIncidentInner object itself.
+ */
+ public AlertIncidentInner withProperties(AlertIncidentProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (properties() != null) {
+ properties().validate();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeJsonField("properties", this.properties);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AlertIncidentInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AlertIncidentInner if the JsonReader was pointing to an instance of it, or null if it was
+ * pointing to JSON null.
+ * @throws IOException If an error occurs while reading the AlertIncidentInner.
+ */
+ public static AlertIncidentInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AlertIncidentInner deserializedAlertIncidentInner = new AlertIncidentInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("id".equals(fieldName)) {
+ deserializedAlertIncidentInner.id = reader.getString();
+ } else if ("name".equals(fieldName)) {
+ deserializedAlertIncidentInner.name = reader.getString();
+ } else if ("type".equals(fieldName)) {
+ deserializedAlertIncidentInner.type = reader.getString();
+ } else if ("properties".equals(fieldName)) {
+ deserializedAlertIncidentInner.properties = AlertIncidentProperties.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAlertIncidentInner;
+ });
+ }
+}
diff --git a/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AlertInner.java b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AlertInner.java
new file mode 100644
index 000000000000..dfcb7803c0fd
--- /dev/null
+++ b/sdk/authorization/azure-resourcemanager-authorization-generated/src/main/java/com/azure/resourcemanager/authorization/generated/fluent/models/AlertInner.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.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import java.io.IOException;
+import java.time.OffsetDateTime;
+import java.util.List;
+
+/**
+ * The alert.
+ */
+@Fluent
+public final class AlertInner implements JsonSerializable