Beispiel #1
0
 /// <summary>
 /// Get all role definitions that are applicable at scope and above.
 /// </summary>
 /// <param name="roleScope"> The scope of the role assignments. </param>
 /// <param name="cancellationToken"> The cancellation token to use. </param>
 /// <exception cref="RequestFailedException">The server returned an error. See <see cref="Exception.Message"/> for details returned from the server.</exception>
 /// <exception cref="ArgumentNullException"><paramref name="roleScope"/> is null.</exception>
 public virtual Pageable <RoleDefinition> GetRoleDefinitions(RoleAssignmentScope roleScope, CancellationToken cancellationToken = default)
 {
     return(PageableHelpers.CreateEnumerable(_ =>
     {
         using DiagnosticScope scope = _diagnostics.CreateScope($"{nameof(KeyVaultAccessControlClient)}.{nameof(GetRoleDefinitions)}");
         scope.Start();
         try
         {
             var response = _definitionsRestClient.List(vaultBaseUrl: VaultUri.AbsoluteUri, scope: roleScope.ToString(), cancellationToken: cancellationToken);
             return Page.FromValues(response.Value.Value, response.Value.NextLink, response.GetRawResponse());
         }
         catch (Exception ex)
         {
             scope.Failed(ex);
             throw;
         }
     }, (nextLink, _) =>
     {
         using DiagnosticScope scope = _diagnostics.CreateScope($"{nameof(KeyVaultAccessControlClient)}.{nameof(GetRoleDefinitions)}");
         scope.Start();
         try
         {
             var response = _definitionsRestClient.ListNextPage(nextLink: nextLink, vaultBaseUrl: VaultUri.AbsoluteUri, scope: roleScope.ToString(), cancellationToken: cancellationToken);
             return Page.FromValues(response.Value.Value, response.Value.NextLink, response.GetRawResponse());
         }
         catch (Exception ex)
         {
             scope.Failed(ex);
             throw;
         }
     }));
 }
Beispiel #2
0
 /// <summary>0
 /// Gets the <see cref="RoleAssignment"/>s for a scope.
 /// </summary>
 /// <param name="roleScope"> The scope of the role assignments. </param>
 /// <param name="cancellationToken"> The cancellation token to use. </param>
 /// <exception cref="RequestFailedException">The server returned an error. See <see cref="Exception.Message"/> for details returned from the server.</exception>
 /// <exception cref="ArgumentNullException"><paramref name="roleScope"/> is null.</exception>
 public virtual AsyncPageable <RoleAssignment> GetRoleAssignmentsAsync(RoleAssignmentScope roleScope, CancellationToken cancellationToken = default)
 {
     return(PageableHelpers.CreateAsyncEnumerable(async _ =>
     {
         using DiagnosticScope scope = _diagnostics.CreateScope($"{nameof(KeyVaultAccessControlClient)}.{nameof(GetRoleAssignments)}");
         scope.Start();
         try
         {
             var response = await _assignmentsRestClient.ListForScopeAsync(vaultBaseUrl: VaultUri.AbsoluteUri, scope: roleScope.ToString(), cancellationToken: cancellationToken)
                            .ConfigureAwait(false);
             return Page.FromValues(response.Value.Value, response.Value.NextLink, response.GetRawResponse());
         }
         catch (Exception ex)
         {
             scope.Failed(ex);
             throw;
         }
     }, async(nextLink, _) =>
     {
         using DiagnosticScope scope = _diagnostics.CreateScope($"{nameof(KeyVaultAccessControlClient)}.{nameof(GetRoleAssignments)}");
         scope.Start();
         try
         {
             var response = await _assignmentsRestClient.ListForScopeNextPageAsync(nextLink: nextLink, vaultBaseUrl: VaultUri.AbsoluteUri, scope: roleScope.ToString(), cancellationToken: cancellationToken)
                            .ConfigureAwait(false);
             return Page.FromValues(response.Value.Value, response.Value.NextLink, response.GetRawResponse());
         }
         catch (Exception ex)
         {
             scope.Failed(ex);
             throw;
         }
     }));
 }
Beispiel #3
0
 /// <summary>
 /// Delete the specified role assignment.
 /// </summary>
 /// <param name="roleScope"> The scope of the role assignment. </param>
 /// <param name="roleAssignmentName"> The name of the role assignment to get. </param>
 /// <param name="cancellationToken"> The cancellation token to use. </param>
 /// <exception cref="RequestFailedException">The server returned an error. See <see cref="Exception.Message"/> for details returned from the server.</exception>
 /// <exception cref="ArgumentNullException"><paramref name="roleScope"/> or <paramref name="roleAssignmentName"/> is null.</exception>
 public virtual Response <RoleAssignment> DeleteRoleAssignment(RoleAssignmentScope roleScope, string roleAssignmentName, CancellationToken cancellationToken = default)
 {
     using DiagnosticScope scope = _diagnostics.CreateScope($"{nameof(KeyVaultAccessControlClient)}.{nameof(DeleteRoleAssignment)}");
     scope.Start();
     try
     {
         return(_assignmentsRestClient.Delete(VaultUri.AbsoluteUri, roleScope.ToString(), roleAssignmentName, cancellationToken));
     }
     catch (Exception ex)
     {
         scope.Failed(ex);
         throw;
     }
 }
Beispiel #4
0
 /// <summary>
 /// Creates a <see cref="RoleAssignment"/>.
 /// </summary>
 /// <param name="roleScope"> The scope of the role assignment to create. </param>
 /// <param name="properties"> Properties for the role assignment. </param>
 /// <param name="name">The Name used to create the role assignment.</param>
 /// <param name="cancellationToken"> The cancellation token to use. </param>
 /// <exception cref="RequestFailedException">The server returned an error. See <see cref="Exception.Message"/> for details returned from the server.</exception>
 /// <exception cref="ArgumentNullException"><paramref name="roleScope"/> or <paramref name="properties"/> is null.</exception>
 public virtual Response <RoleAssignment> CreateRoleAssignment(RoleAssignmentScope roleScope, RoleAssignmentProperties properties, Guid name = default, CancellationToken cancellationToken = default)
 {
     using DiagnosticScope scope = _diagnostics.CreateScope($"{nameof(KeyVaultAccessControlClient)}.{nameof(CreateRoleAssignment)}");
     scope.Start();
     try
     {
         var _name = name == default ? Guid.NewGuid().ToString() : name.ToString();
         return(_assignmentsRestClient.Create(VaultUri.AbsoluteUri, roleScope.ToString(), _name, properties, cancellationToken));
     }
     catch (Exception ex)
     {
         scope.Failed(ex);
         throw;
     }
 }
Beispiel #5
0
 /// <summary>
 /// Get the specified role assignment.
 /// </summary>
 /// <param name="roleScope"> The scope of the role assignment. </param>
 /// <param name="roleAssignmentName"> The name of the role assignment to get. </param>
 /// <param name="cancellationToken"> The cancellation token to use. </param>
 /// <exception cref="RequestFailedException">The server returned an error. See <see cref="Exception.Message"/> for details returned from the server.</exception>
 /// <exception cref="ArgumentNullException"><paramref name="roleScope"/> or <paramref name="roleAssignmentName"/> is null.</exception>
 public virtual async Task <Response <RoleAssignment> > GetRoleAssignmentAsync(RoleAssignmentScope roleScope, string roleAssignmentName, CancellationToken cancellationToken = default)
 {
     using DiagnosticScope scope = _diagnostics.CreateScope($"{nameof(KeyVaultAccessControlClient)}.{nameof(GetRoleAssignment)}");
     scope.Start();
     try
     {
         return(await _assignmentsRestClient.GetAsync(VaultUri.AbsoluteUri, roleScope.ToString(), roleAssignmentName, cancellationToken)
                .ConfigureAwait(false));
     }
     catch (Exception ex)
     {
         scope.Failed(ex);
         throw;
     }
 }
 /// <summary>
 /// Creates a <see cref="RoleAssignment"/>.
 /// </summary>
 /// <param name="roleScope"> The scope of the role assignment to create. </param>
 /// <param name="properties"> Properties for the role assignment. </param>
 /// <param name="name">The name used to create the role assignment.</param>
 /// <param name="cancellationToken"> The cancellation token to use. </param>
 /// <exception cref="RequestFailedException">The server returned an error. See <see cref="Exception.Message"/> for details returned from the server.</exception>
 /// <exception cref="ArgumentNullException"><paramref name="roleScope"/> or <paramref name="properties"/> is null.</exception>
 public virtual async Task <Response <RoleAssignment> > CreateRoleAssignmentAsync(RoleAssignmentScope roleScope, RoleAssignmentProperties properties, Guid name = default, CancellationToken cancellationToken = default)
 {
     using DiagnosticScope scope = _diagnostics.CreateScope($"{nameof(KeyVaultAccessControlClient)}.{nameof(CreateRoleAssignment)}");
     scope.Start();
     try
     {
         var _name = name == default ? Guid.NewGuid().ToString() : name.ToString();
         return(await _assignmentsRestClient.CreateAsync(VaultUri.AbsoluteUri, roleScope.ToString(), _name, new RoleAssignmentCreateParameters(properties), cancellationToken)
                .ConfigureAwait(false));
     }
     catch (Exception ex)
     {
         scope.Failed(ex);
         throw;
     }
 }