/**
* 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;
import com.microsoft.azure.management.apigeneration.Beta;
import com.microsoft.azure.management.apigeneration.Fluent;
import com.microsoft.azure.management.graphrbac.implementation.GraphRbacManager;
import com.microsoft.azure.management.graphrbac.implementation.ServicePrincipalsInner;
import com.microsoft.azure.management.resources.fluentcore.arm.models.HasManager;
import com.microsoft.azure.management.resources.fluentcore.collection.SupportsListing;
import com.microsoft.azure.management.resources.fluentcore.model.HasInner;
import com.microsoft.rest.ServiceFuture;
import com.microsoft.rest.ServiceCallback;
import rx.Observable;
/**
* Entry point to service principal management API.
*/
@Fluent(ContainerName = "/Microsoft.Azure.Management.Fluent.Graph.RBAC")
@Beta
public interface ServicePrincipals extends
SupportsListing<ServicePrincipal>,
HasManager<GraphRbacManager>,
HasInner<ServicePrincipalsInner> {
/**
* Gets the information about a service principal.
*
* @param objectId the unique object id
* @return an immutable representation of the resource
*/
ServicePrincipal getByObjectId(String objectId);
/**
* Gets the information about a service principal.
*
* @param appId the application id (or the client id)
* @return an immutable representation of the resource
*/
ServicePrincipal getByAppId(String appId);
/**
* Gets the information about a service principal.
*
* @param spn the service principal name
* @return an immutable representation of the resource
*/
ServicePrincipal getByServicePrincipalName(String spn);
/**
* Gets the information about a service principal.
*
* @param spn the service principal name
* @param callback the call back to handle response
* @return the Future based service call
*/
ServiceFuture<ServicePrincipal> getByServicePrincipalNameAsync(String spn, final ServiceCallback<ServicePrincipal> callback);
/**
* Gets the information about a service principal.
*
* @param spn the service principal name
* @return the Observable to the request
*/
Observable<ServicePrincipal> getByServicePrincipalNameAsync(String spn);
}