Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT License. See License.txt in the project root for license information.
/** * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for * license information. */
package com.microsoft.azure.management.graphrbac.implementation; import com.microsoft.azure.AzureEnvironment; import com.microsoft.azure.AzureResponseBuilder; import com.microsoft.azure.credentials.AzureTokenCredentials; import com.microsoft.azure.management.graphrbac.ActiveDirectoryApplications; import com.microsoft.azure.management.graphrbac.ActiveDirectoryGroups; import com.microsoft.azure.management.graphrbac.ActiveDirectoryUsers; import com.microsoft.azure.management.graphrbac.RoleAssignments; import com.microsoft.azure.management.graphrbac.RoleDefinitions; import com.microsoft.azure.management.graphrbac.ServicePrincipals; import com.microsoft.azure.management.resources.fluentcore.arm.AzureConfigurable; import com.microsoft.azure.management.resources.fluentcore.arm.implementation.AzureConfigurableImpl; import com.microsoft.azure.management.resources.fluentcore.model.HasInner; import com.microsoft.azure.management.resources.fluentcore.utils.ProviderRegistrationInterceptor; import com.microsoft.azure.management.resources.fluentcore.utils.ResourceManagerThrottlingInterceptor; import com.microsoft.azure.serializer.AzureJacksonAdapter; import com.microsoft.rest.RestClient; import com.microsoft.rest.interceptors.RequestIdHeaderInterceptor;
Entry point to Azure Graph RBAC management.
/** * Entry point to Azure Graph RBAC management. */
public final class GraphRbacManager implements HasInner<GraphRbacManagementClientImpl> { private String tenantId; // The sdk clients private final GraphRbacManagementClientImpl graphRbacManagementClient; private final AuthorizationManagementClientImpl authorizationManagementClient; // The collections private ActiveDirectoryUsers activeDirectoryUsers; private ActiveDirectoryGroups activeDirectoryGroups; private ServicePrincipals servicePrincipals; private ActiveDirectoryApplications applications; private RoleAssignments roleAssignments; private RoleDefinitions roleDefinitions; @Override public GraphRbacManagementClientImpl inner() { return graphRbacManagementClient; }
Creates an instance of GraphRbacManager that exposes Graph RBAC management API entry points.
Params:
  • credentials – the credentials to use
Returns:the GraphRbacManager instance
/** * Creates an instance of GraphRbacManager that exposes Graph RBAC management API entry points. * * @param credentials the credentials to use * @return the GraphRbacManager instance */
public static GraphRbacManager authenticate(AzureTokenCredentials credentials) { return new GraphRbacManager(new RestClient.Builder() .withBaseUrl(credentials.environment().graphEndpoint()) .withInterceptor(new RequestIdHeaderInterceptor()) .withCredentials(credentials) .withSerializerAdapter(new AzureJacksonAdapter()) .withResponseBuilderFactory(new AzureResponseBuilder.Factory()) .withInterceptor(new ProviderRegistrationInterceptor(credentials)) .withInterceptor(new ResourceManagerThrottlingInterceptor()) .build(), credentials.domain()); }
Creates an instance of GraphRbacManager that exposes Graph RBAC management API entry points.
Params:
  • restClient – the RestClient to be used for API calls
  • tenantId – the tenantId in Active Directory
Returns:the interface exposing Graph RBAC management API entry points that work across subscriptions
/** * Creates an instance of GraphRbacManager that exposes Graph RBAC management API entry points. * * @param restClient the RestClient to be used for API calls * @param tenantId the tenantId in Active Directory * @return the interface exposing Graph RBAC management API entry points that work across subscriptions */
public static GraphRbacManager authenticate(RestClient restClient, String tenantId) { return new GraphRbacManager(restClient, tenantId); }
Get a Configurable instance that can be used to create GraphRbacManager with optional configuration.
Returns:the instance allowing configurations
/** * Get a Configurable instance that can be used to create GraphRbacManager with optional configuration. * * @return the instance allowing configurations */
public static Configurable configure() { return new GraphRbacManager.ConfigurableImpl(); }
The interface allowing configurations to be set.
/** * The interface allowing configurations to be set. */
public interface Configurable extends AzureConfigurable<Configurable> {
Creates an instance of GraphRbacManager that exposes resource management API entry points.
Params:
  • credentials – the credentials to use
Returns:the interface exposing resource management API entry points that work across subscriptions
/** * Creates an instance of GraphRbacManager that exposes resource management API entry points. * * @param credentials the credentials to use * @return the interface exposing resource management API entry points that work across subscriptions */
GraphRbacManager authenticate(AzureTokenCredentials credentials); }
The implementation for Configurable interface.
/** * The implementation for Configurable interface. */
private static class ConfigurableImpl extends AzureConfigurableImpl<Configurable> implements Configurable { public GraphRbacManager authenticate(AzureTokenCredentials credentials) { return GraphRbacManager.authenticate( buildRestClient(credentials, AzureEnvironment.Endpoint.RESOURCE_MANAGER), credentials.domain()); } } private GraphRbacManager(RestClient restClient, String tenantId) { String graphEndpoint = AzureEnvironment.AZURE.graphEndpoint(); if (restClient.credentials() instanceof AzureTokenCredentials) { graphEndpoint = ((AzureTokenCredentials) restClient.credentials()).environment().graphEndpoint(); } this.graphRbacManagementClient = new GraphRbacManagementClientImpl( restClient.newBuilder().withBaseUrl(graphEndpoint).build()).withTenantID(tenantId); this.authorizationManagementClient = new AuthorizationManagementClientImpl(restClient); this.tenantId = tenantId; }
Returns:wrapped inner authorization client providing direct access to auto-generated API implementation, based on Azure REST API
/** * @return wrapped inner authorization client providing direct access to * auto-generated API implementation, based on Azure REST API */
public AuthorizationManagementClientImpl roleInner() { return authorizationManagementClient; }
Returns:the tenant ID the graph client is associated with
/** * @return the tenant ID the graph client is associated with */
public String tenantId() { return tenantId; }
Returns:the Active Directory user management API entry point
/** * @return the Active Directory user management API entry point */
public ActiveDirectoryUsers users() { if (activeDirectoryUsers == null) { activeDirectoryUsers = new ActiveDirectoryUsersImpl(this); } return activeDirectoryUsers; }
Returns:the Active Directory group management API entry point
/** * @return the Active Directory group management API entry point */
public ActiveDirectoryGroups groups() { if (activeDirectoryGroups == null) { activeDirectoryGroups = new ActiveDirectoryGroupsImpl(this); } return activeDirectoryGroups; }
Returns:the service principal management API entry point
/** * @return the service principal management API entry point */
public ServicePrincipals servicePrincipals() { if (servicePrincipals == null) { servicePrincipals = new ServicePrincipalsImpl(graphRbacManagementClient.servicePrincipals(), this); } return servicePrincipals; }
Returns:the application management API entry point
/** * @return the application management API entry point */
public ActiveDirectoryApplications applications() { if (applications == null) { applications = new ActiveDirectoryApplicationsImpl(graphRbacManagementClient.applications(), this); } return applications; }
Returns:the role assignment management API entry point
/** * @return the role assignment management API entry point */
public RoleAssignments roleAssignments() { if (roleAssignments == null) { roleAssignments = new RoleAssignmentsImpl(this); } return roleAssignments; }
Returns:the role definition management API entry point
/** * @return the role definition management API entry point */
public RoleDefinitions roleDefinitions() { if (roleDefinitions == null) { roleDefinitions = new RoleDefinitionsImpl(this); } return roleDefinitions; } }