Table of Contents

Class User

Namespace
Microsoft.Azure.Cosmos
Assembly
Microsoft.Azure.Cosmos.Client.dll

Operations for reading, replacing, or deleting a specific existing user by id and query a user's permissions.

public abstract class User
Inheritance
User
Inherited Members
Extension Methods

Constructors

User()

protected User()

Properties

Id

The Id of the Cosmos user

public abstract string Id { get; }

Property Value

string

Methods

CreatePermissionAsync(PermissionProperties, int?, RequestOptions, CancellationToken)

Creates a permission as an asynchronous operation in the Azure Cosmos service.

public abstract Task<PermissionResponse> CreatePermissionAsync(PermissionProperties permissionProperties, int? tokenExpiryInSeconds = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default)

Parameters

permissionProperties PermissionProperties

The PermissionProperties object.

tokenExpiryInSeconds int?

(Optional) The expiry time for resource token in seconds. This value can range from 10 seconds, to 24 hours (or 86,400 seconds). The default value for this is 1 hour (or 3,600 seconds). This does not change the default value for future tokens.

requestOptions RequestOptions

(Optional) The options for the permission request.

cancellationToken CancellationToken

(Optional) CancellationToken representing request cancellation.

Returns

Task<PermissionResponse>

A Task containing a PermissionResponse which wraps a PermissionProperties containing the read resource record.

Examples

PermissionProperties permissionProperties = new PermissionProperties("permissionId", PermissionMode.All, database.GetContainer("containerId"), new PartitionKey("tenantId"))";

PermissionResponse response = await this.cosmosDatabase.GetUser("userId").CreatePermissionAsync(permissionProperties, tokenExpiryInSeconds: 9000);

DeleteAsync(RequestOptions, CancellationToken)

Delete a UserProperties from the Azure Cosmos DB service as an asynchronous operation.

public abstract Task<UserResponse> DeleteAsync(RequestOptions requestOptions = null, CancellationToken cancellationToken = default)

Parameters

requestOptions RequestOptions

(Optional) The options for the user request.

cancellationToken CancellationToken

(Optional) CancellationToken representing request cancellation.

Returns

Task<UserResponse>

A Task containing a UserResponse which will contain information about the request issued.

Examples

User user = this.database.GetUser("userId");
UserResponse response = await user.DeleteUserAsync();

GetPermission(string)

Returns a reference to a permission object.

public abstract Permission GetPermission(string id)

Parameters

id string

The cosmos permission id.

Returns

Permission

Cosmos permission reference

Examples

User user = this.cosmosClient.GetDatabase("myDatabaseId").GetUser("userId");
PermissionResponse response = await user.GetPermssion("permissionId");

Remarks

Returns a Permission reference. Reference doesn't guarantee existence. Please ensure permssion already exists or is created through a create operation.

GetPermissionQueryIterator<T>(QueryDefinition, string, QueryRequestOptions)

This method creates a query for permissions under a database using a SQL statement with parameterized values. It returns a FeedIterator. For more information on preparing SQL statements with parameterized values, please see QueryDefinition overload.

public abstract FeedIterator<T> GetPermissionQueryIterator<T>(QueryDefinition queryDefinition, string continuationToken = null, QueryRequestOptions requestOptions = null)

Parameters

queryDefinition QueryDefinition

The cosmos SQL query definition.

continuationToken string

(Optional) The continuation token in the Azure Cosmos DB service.

requestOptions QueryRequestOptions

(Optional) The options for the user query request QueryRequestOptions

Returns

FeedIterator<T>

An iterator to go through the permissions

Type Parameters

T

Examples

This create the type feed iterator for permissions with queryDefinition as input.

QueryDefinition queryDefinition = new QueryDefinition("SELECT * FROM c where c.status like @status")
    .WithParameter("@status", "start%");
using (FeedIterator<PermissionProperties> resultSet = this.user.GetPermissionQueryIterator<PermissionProperties>(queryDefinition))
{
    while (feedIterator.HasMoreResults)
    {
        foreach (PermissionProperties properties in await feedIterator.ReadNextAsync())
        {
            Console.WriteLine(properties.Id);
        }
    }
}

Remarks

Reading permissions will generate a new ResourceTokens. Prior ResourceTokens will still be valid.

GetPermissionQueryIterator<T>(string, string, QueryRequestOptions)

This method creates a query for permission under a user using a SQL statement. It returns a FeedIterator.

public abstract FeedIterator<T> GetPermissionQueryIterator<T>(string queryText = null, string continuationToken = null, QueryRequestOptions requestOptions = null)

Parameters

queryText string

The cosmos SQL query text.

continuationToken string

(Optional) The continuation token in the Azure Cosmos DB service.

requestOptions QueryRequestOptions

(Optional) The options for the user query request QueryRequestOptions

Returns

FeedIterator<T>

An iterator to go through the permission

Type Parameters

T

Examples

  1. This create the type feed iterator for permission with queryText as input,
string queryText = "SELECT * FROM c where c.status like 'start%'";
using (FeedIterator<PermissionProperties> feedIterator = this.users.GetPermissionQueryIterator<PermissionProperties>(queryText))
{
    while (feedIterator.HasMoreResults)
    {
        FeedResponse<PermissionProperties> response = await feedIterator.ReadNextAsync();
        foreach (var permission in response)
        {
            Console.WriteLine(permission);
        }
    }
}
  1. This create the type feed iterator for permissions without queryText, retrieving all permissions.
using (FeedIterator<PermissionProperties> feedIterator = this.user.GetPermissionQueryIterator<PermissionProperties>())
{
    while (feedIterator.HasMoreResults)
    {
        FeedResponse<PermissionProperties> response = await feedIterator.ReadNextAsync();
        foreach (var permission in response)
        {
            Console.WriteLine(permission);
        }
    }
}

ReadAsync(RequestOptions, CancellationToken)

Reads a UserProperties from the Azure Cosmos service as an asynchronous operation.

public abstract Task<UserResponse> ReadAsync(RequestOptions requestOptions = null, CancellationToken cancellationToken = default)

Parameters

requestOptions RequestOptions

(Optional) The options for the user request.

cancellationToken CancellationToken

(Optional) CancellationToken representing request cancellation.

Returns

Task<UserResponse>

A Task containing a UserResponse which wraps a UserProperties containing the read resource record.

Examples

User user = this.database.GetUser("userId");
UserProperties userProperties = await user.ReadUserAsync();

ReplaceAsync(UserProperties, RequestOptions, CancellationToken)

Replace a UserProperties from the Azure Cosmos service as an asynchronous operation.

public abstract Task<UserResponse> ReplaceAsync(UserProperties userProperties, RequestOptions requestOptions = null, CancellationToken cancellationToken = default)

Parameters

userProperties UserProperties

The UserProperties object.

requestOptions RequestOptions

(Optional) The options for the user request.

cancellationToken CancellationToken

(Optional) CancellationToken representing request cancellation.

Returns

Task<UserResponse>

A Task containing a UserResponse which wraps a UserProperties containing the replace resource record.

Examples

UserProperties userProperties = userReadResponse;
userProperties.Id = "newuser";
UserResponse response = await user.ReplaceUserAsync(userProperties);
UserProperties replacedProperties = response;

UpsertPermissionAsync(PermissionProperties, int?, RequestOptions, CancellationToken)

Upsert a permission as an asynchronous operation in the Azure Cosmos service.

public abstract Task<PermissionResponse> UpsertPermissionAsync(PermissionProperties permissionProperties, int? tokenExpiryInSeconds = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default)

Parameters

permissionProperties PermissionProperties

The PermissionProperties object.

tokenExpiryInSeconds int?

(Optional) The expiry time for resource token in seconds. This value can range from 10 seconds, to 24 hours (or 86,400 seconds). The default value for this is 1 hour (or 3,600 seconds). This does not change the default value for future tokens.

requestOptions RequestOptions

(Optional) The options for the permission request.

cancellationToken CancellationToken

(Optional) CancellationToken representing request cancellation.

Returns

Task<PermissionResponse>

A Task containing a PermissionResponse which wraps a PermissionProperties containing the read resource record.

Examples

PermissionProperties permissionProperties = new PermissionProperties("permissionId", PermissionMode.All, database.GetContainer("containerId"), new PartitionKey("tenantId"))";

PermissionResponse response = await this.cosmosDatabase.GetUser("userId").UpsertPermissionAsync(permissionProperties, tokenExpiryInSeconds: 9000);