internal ServicePrincipalImpl(ServicePrincipalInner innerObject, GraphRbacManager manager)
     : base(innerObject.DisplayName, innerObject)
 {
     this.manager          = manager;
     this.createParameters = new ServicePrincipalCreateParametersInner
     {
         AccountEnabled = true
     };
     this.cachedRoleAssignments          = new Dictionary <string, IRoleAssignment>();
     this.rolesToCreate                  = new Dictionary <string, BuiltInRole>();
     this.rolesToDelete                  = new HashSet <string>();
     this.cachedCertificateCredentials   = new Dictionary <string, ICertificateCredential>();
     this.cachedPasswordCredentials      = new Dictionary <string, IPasswordCredential>();
     this.certificateCredentialsToCreate = new List <ICertificateCredential>();
     this.passwordCredentialsToCreate    = new List <IPasswordCredential>();
     this.certificateCredentialsToDelete = new HashSet <string>();
     this.passwordCredentialsToDelete    = new HashSet <string>();
 }
 /// <summary>
 /// Creates a service principal in the directory.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='parameters'>
 /// Parameters to create a service principal.
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <ServicePrincipalInner> CreateAsync(this IServicePrincipalsOperations operations, ServicePrincipalCreateParametersInner parameters, CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.CreateWithHttpMessagesAsync(parameters, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }