> For AI agents: [llms.txt](https://docs.trustedauth.com/llms.txt) provides a Markdown index of this documentation.

# Manage User

This is a sample of how to manage users through the IDaaS Administration API. To run this sample, you must have a valid
IDaaS Administration API application in your IDaaS tenant. For more information, see the quick start guide.

Sample code only

This sample is for demonstration purposes only. It is not intended for production use. In production, you should use a
secure method to store the client secret and the application id.

## Initialize the Administration API client

To perform user management operations, you must first initialize the Administration API client. The following code shows
how to initialize the client.

**Java**

```java
import com.entrustdatacard.intellitrust.admin.ApiClient;
import com.entrustdatacard.intellitrust.admin.api.*;
import com.entrustdatacard.intellitrust.admin.model.*;

public class Main {
    private static final String SHARED_SECRET = "YOUR_SHARED_SECRET";
    private static final String HOST_NAME = "YOUR_HOST_NAME";
    private static final String APPLICATION_ID = "YOUR_APPLICATION_ID";

    public static void main(String[] args) throws Exception {
        ApiClient apiClient = new ApiClient();
        apiClient.setBasePath(HOST_NAME);

        AdminAuthApi adminAuthApi = new AdminAuthApi(apiClient);

        AdminApiAuthentication authParams = new AdminApiAuthentication()
                .applicationId(APPLICATION_ID)
                .sharedSecret(SHARED_SECRET);
        AdminApiAuthenticationResult authResult = adminAuthApi.authenticateAdminApiUsingPOST(authParams);

        apiClient.setApiKey(authResult.getAuthToken());
    }
}
```

**CSharp**

```csharp
using com.entrustdatacard.intellitrust.admin.api;
using com.entrustdatacard.intellitrust.admin.Client;
using com.entrustdatacard.intellitrust.admin.model;

namespace Samples
{
  internal class AdminApiSample
  {
    private static readonly string SHARED_SECRET = "YOUR_SHARED_SECRET";
    private static readonly string HOST_NAME = "YOUR_HOST_NAME";
    private static readonly string APPLICATION_ID = "YOUR_APPLICATION_ID";

    public static void Main()
    {
        Configuration configuration = new Configuration();
        configuration.BasePath = HOST_NAME;
        AdminAuthApi adminAuthApi = new AdminAuthApi(configuration);

        var authParams = new AdminApiAuthentication(APPLICATION_ID, false, SHARED_SECRET);
        var authResult = adminAuthApi.AuthenticateAdminApiUsingPOST(authParams);
        configuration.AddApiKey("Authorization", authResult.AuthToken);
    }
}
```

**Python**

```python
from IntelliTrust_Python_Administration import ApiClient, Configuration
import IntelliTrust_Python_Administration.api as apis
import IntelliTrust_Python_Administration.models as models

conf = Configuration(
    host = "YOUR_HOST_NAME",
)
with ApiClient(conf) as api_client:
    admin_api = apis.AdminAuthApi(api_client)
    auth_parms = models.AdminApiAuthentication(
        application_id = "YOUR_APPLICATION_ID",
        shared_secret = "YOUR_SHARED_SECRET",
    )
    auth_result = admin_api.authenticate_admin_api_using_post(auth_parms)

    api_client.set_default_header("Authorization", auth_result.auth_token)
```

## Create a User

To create a user, IDaaS provides the Create User API. The following code shows how to create a user.

**Java**

```java
import com.entrustdatacard.intellitrust.admin.ApiClient;
import com.entrustdatacard.intellitrust.admin.api.*;
import com.entrustdatacard.intellitrust.admin.model.*;

public class Main {
    private static final String SHARED_SECRET = "YOUR_SHARED_SECRET";
    private static final String HOST_NAME = "YOUR_HOST_NAME";
    private static final String APPLICATION_ID = "YOUR_APPLICATION_ID";

    public static void main(String[] args) throws Exception {
        ApiClient apiClient = new ApiClient();
        apiClient.setBasePath(HOST_NAME);

        AdminAuthApi adminAuthApi = new AdminAuthApi(apiClient);

        AdminApiAuthentication authParams = new AdminApiAuthentication()
                .applicationId(APPLICATION_ID)
                .sharedSecret(SHARED_SECRET);
        AdminApiAuthenticationResult authResult = adminAuthApi.authenticateAdminApiUsingPOST(authParams);

        apiClient.setApiKey(authResult.getAuthToken());

        UsersApi usersApi = new UsersApi(apiClient);
        UserParms userParms = new UserParms()
                .firstName("John")
                .lastName("Doe")
                .email("user@entrust.com")
                .userId("jdoe")
                .mobile("+16138691234");

        User user = usersApi.createUserUsingPOST(userParms);
        System.out.println(user);
    }
}
```

**CSharp**

```csharp
using com.entrustdatacard.intellitrust.admin.api;
using com.entrustdatacard.intellitrust.admin.Client;
using com.entrustdatacard.intellitrust.admin.model;

namespace Samples
{
  internal class AdminApiSample
  {
    private static readonly string SHARED_SECRET = "YOUR_SHARED_SECRET";
    private static readonly string HOST_NAME = "YOUR_HOST_NAME";
    private static readonly string APPLICATION_ID = "YOUR_APPLICATION_ID";

    public static void Main()
    {
        Configuration configuration = new Configuration();
        configuration.BasePath = HOST_NAME;
        AdminAuthApi adminAuthApi = new AdminAuthApi(configuration);

        var authParams = new AdminApiAuthentication(APPLICATION_ID, false, SHARED_SECRET);
        var authResult = adminAuthApi.AuthenticateAdminApiUsingPOST(authParams);
        configuration.AddApiKey("Authorization", authResult.AuthToken);

        var usersApi = new UsersApi(configuration);
        var userParms = new UserParms();
        userParms.FirstName = "John";
        userParms.LastName = "Doe";
        userParms.Email = "john.doe@entrust.com";
        userParms.UserId = "jdoe111";
        userParms.Mobile = "+16138691234";

        var user = usersApi.CreateUserUsingPOST(userParms);

        Console.WriteLine(user);
    }
}
```

**Python**

```python
from IntelliTrust_Python_Administration import ApiClient, Configuration
import IntelliTrust_Python_Administration.api as apis
import IntelliTrust_Python_Administration.models as models

conf = Configuration(
    host = "YOUR_HOST_NAME",
)
with ApiClient(conf) as api_client:
    admin_api = apis.AdminAuthApi(api_client)
    auth_parms = models.AdminApiAuthentication(
        application_id = "YOUR_APPLICATION_ID",
        shared_secret = "YOUR_SHARED_SECRET",
    )
    auth_result = admin_api.authenticate_admin_api_using_post(auth_parms)

    api_client.set_default_header("Authorization", auth_result.auth_token)

    users_api = apis.UsersApi(api_client)
    user_parms = models.UserParms(
        first_name = "John",
        last_name = "Doe",
        email = "john.doe@entrust.com",
        user_id = "jdoe",
        mobile = "+16138691234",
    )
    user = users_api.create_user_using_post(user_parms)

    print(user)
```

## Get a user

To get a user, IDaaS provides the Get User API. The following code shows how to get a user.

**Java**

```java
import com.entrustdatacard.intellitrust.admin.ApiClient;
import com.entrustdatacard.intellitrust.admin.api.*;
import com.entrustdatacard.intellitrust.admin.model.*;

public class Main {
    private static final String SHARED_SECRET = "YOUR_SHARED_SECRET";
    private static final String HOST_NAME = "YOUR_HOST_NAME";
    private static final String APPLICATION_ID = "YOUR_APPLICATION_ID";

    public static void main(String args[]) throws Exception {
        // initialize the API client with the IDaaS hostname
        ApiClient apiClient = new ApiClient();
        apiClient.setBasePath(HOST_NAME);
        AdminAuthApi adminAuthApi = new AdminAuthApi(apiClient);

        // make a request to authenticate to the admin API application in IDaaS
        AdminApiAuthentication authParms =
                new AdminApiAuthentication()
                        .applicationId(APPLICATION_ID)
                        .sharedSecret(SHARED_SECRET);
        AdminApiAuthenticationResult authResult = adminAuthApi.authenticateAdminApiUsingPOST(authParms);
        // after authenticating to IDaaS, set the auth token in the API client so that it is used to authenticate
        // subsequent admin calls
        apiClient.setApiKey(authResult.getAuthToken());

        UsersApi usersApi = new UsersApi(apiClient);

        UserGetParms userGetParms = new UserGetParms()
            .userId("jdoe");
        User user = usersApi.userByUseridUsingPOST(userGetParms);
        System.out.println("User ID: " + user.getUserId());
        System.out.println("First Name: " + user.getFirstName());
        System.out.println("Last Name: " + user.getLastName());
    }
}
```

**CSharp**

```csharp
using com.entrustdatacard.intellitrust.admin.api;
using com.entrustdatacard.intellitrust.admin.Client;
using com.entrustdatacard.intellitrust.admin.model;

namespace Samples
{
    internal class AdminApiSample
    {
        private static readonly string SHARED_SECRET = "YOUR_SHARED_SECRET";
        private static readonly string HOST_NAME = "YOUR_HOST_NAME";
        private static readonly string APPLICATION_ID = "YOUR_APPLICATION_ID";

        public static void Main()
        {
            Configuration configuration = new Configuration();
            configuration.BasePath = HOST_NAME;
            AdminAuthApi adminAuthApi = new AdminAuthApi(configuration);

            var authParams = new AdminApiAuthentication(APPLICATION_ID, false, SHARED_SECRET);
            var authResult = adminAuthApi.AuthenticateAdminApiUsingPOST(authParams);
            configuration.AddApiKey("Authorization", authResult.AuthToken);

            var usersApi = new UsersApi(configuration);

            var userGetParms = new UserGetParms(userId: "jdoe");
            var user = usersApi.UserByUseridUsingPOST(userGetParms);
            Console.WriteLine("User ID: " + user.UserId);
            Console.WriteLine("First Name: " + user.FirstName);
            Console.WriteLine("Last Name: " + user.LastName);
        }
    }
}
```

**Python**

```python
from IntelliTrust_Python_Administration import ApiClient, Configuration
import IntelliTrust_Python_Administration.models as models
import IntelliTrust_Python_Administration.api as apis

conf = Configuration(
    host = "YOUR_HOST_NAME",
)
with ApiClient(conf) as api_client:
    admin_api = apis.AdminAuthApi(api_client)
    auth_parms = models.AdminApiAuthentication(
        application_id = "YOUR_APPLICATION_ID",
        shared_secret = "YOUR_SHARED_SECRET",
    )
    auth_result = admin_api.authenticate_admin_api_using_post(auth_parms)

    api_client.set_default_header("Authorization", auth_result.auth_token)

    users_api = apis.UsersApi(api_client)
    user_get_parms = models.UserGetParms(
        user_id = "jdoe",
    )
    user = users_api.user_by_userid_using_post(user_get_parms)
    print("User ID: " + user.user_id)
    print("First Name: " + user.first_name)
    print("Last Name: " + user.last_name)
```

## Update an Existing User

To update a user, IDaaS provides the Update User API. The following code shows how to update a user.

**Java**

```java
import com.entrustdatacard.intellitrust.admin.ApiClient;
import com.entrustdatacard.intellitrust.admin.api.*;
import com.entrustdatacard.intellitrust.admin.api.UsersApi;
import com.entrustdatacard.intellitrust.admin.model.*;

public class Main {
    private static final String SHARED_SECRET = "YOUR_SHARED_SECRET";
    private static final String HOST_NAME = "YOUR_HOST_NAME";
    private static final String APPLICATION_ID = "YOUR_APPLICATION_ID";

    public static void main(String args[]) throws Exception {
        // initialize the API client with the IDaaS hostname
        ApiClient apiClient = new ApiClient();
        apiClient.setBasePath(HOST_NAME);
        AdminAuthApi adminAuthApi = new AdminAuthApi(apiClient);

        // make a request to authenticate to the admin API application in IDaaS
        AdminApiAuthentication authParms =
                new AdminApiAuthentication()
                        .applicationId(APPLICATION_ID)
                        .sharedSecret(SHARED_SECRET);
        AdminApiAuthenticationResult authResult = adminAuthApi.authenticateAdminApiUsingPOST(authParms);
        // after authenticating to IDaaS, set the auth token in the API client so that it is used to authenticate
        // subsequent admin calls
        apiClient.setApiKey(authResult.getAuthToken());

        UsersApi usersApi = new UsersApi(apiClient);

        UserGetParms userGetParms = new UserGetParms()
            .userId("jdoe");
        User user = usersApi.userByUseridUsingPOST(userGetParms);

        user.setFirstName("Jane");

        UserParms userParms = new UserParms()
          .firstName(user.getFirstName())
          .lastName(user.getLastName())
          .email(user.getEmail())
          .userId(user.getUserId())
          .mobile(user.getMobile());

        usersApi.updateUserUsingPUT(user.getId(), userParms);

        user = usersApi.userByUseridUsingPOST(userGetParms);
        System.out.println(user.getFirstName());
    }
}
```

**CSharp**

```csharp
using com.entrustdatacard.intellitrust.admin.api;
using com.entrustdatacard.intellitrust.admin.Client;
using com.entrustdatacard.intellitrust.admin.model;

namespace Samples
{
    internal class AdminApiSample
    {
        private static readonly string SHARED_SECRET = "YOUR_SHARED_SECRET";
        private static readonly string HOST_NAME = "YOUR_HOST_NAME";
        private static readonly string APPLICATION_ID = "YOUR_APPLICATION_ID";

        public static void Main()
        {
            Configuration configuration = new Configuration();
            configuration.BasePath = HOST_NAME;
            AdminAuthApi adminAuthApi = new AdminAuthApi(configuration);

            var authParams = new AdminApiAuthentication(APPLICATION_ID, false, SHARED_SECRET);
            var authResult = adminAuthApi.AuthenticateAdminApiUsingPOST(authParams);
            configuration.AddApiKey("Authorization", authResult.AuthToken);

            var usersApi = new UsersApi(configuration);
            var userGetParms = new UserGetParms(userId: "jdoe");
            var user = usersApi.UserByUseridUsingPOST(userGetParms);

            user.FirstName = "Jane";

            var userParms = new UserParms(
                firstName: user.FirstName,
                lastName: user.LastName,
                email: user.Email,
                userId: user.UserId,
                mobile: user.Mobile
            );

            usersApi.UpdateUserUsingPUT(user.Id, userParms);

            user = usersApi.UserByUseridUsingPOST(userGetParms);
            Console.WriteLine(user.FirstName);
        }
    }
}
```

**Python**

```python
from IntelliTrust_Python_Administration import ApiClient, Configuration
import IntelliTrust_Python_Administration.models as models
import IntelliTrust_Python_Administration.api as apis

conf = Configuration(
    host = "YOUR_HOST_NAME",
)
with ApiClient(conf) as api_client:
    admin_api = apis.AdminAuthApi(api_client)
    auth_parms = models.AdminApiAuthentication(
        application_id = "YOUR_APPLICATION_ID",
        shared_secret = "YOUR_SHARED_SECRET",
    )
    auth_result = admin_api.authenticate_admin_api_using_post(auth_parms)

    api_client.set_default_header("Authorization", auth_result.auth_token)

    users_api = apis.UsersApi(api_client)
    user_get_parms = models.UserGetParms(
        user_id = "jdoe",
    )
    user = users_api.user_by_userid_using_post(user_get_parms)
    user.first_name = "Jane"
    user_parms = models.UserParms(
        first_name = user.first_name,
        last_name = user.last_name,
        email = user.email,
        user_id = user.user_id,
        mobile = user.mobile,
    )
    users_api.update_user_using_put(user.id, user_parms)

    update_user = users_api.user_by_userid_using_post(user_get_parms)
    print(update_user.first_name)
```

## Delete a User

To delete a user, IDaaS provides the Delete User API. The following code shows how to delete a user.

**Java**

```java
import com.entrustdatacard.intellitrust.admin.ApiClient;
import com.entrustdatacard.intellitrust.admin.api.*;
import com.entrustdatacard.intellitrust.admin.api.UsersApi;
import com.entrustdatacard.intellitrust.admin.model.*;

public class Main {
    private static final String SHARED_SECRET = "YOUR_SHARED_SECRET";
    private static final String HOST_NAME = "YOUR_HOST_NAME";
    private static final String APPLICATION_ID = "YOUR_APPLICATION_ID";

    public static void main(String args[]) throws Exception {
        // initialize the API client with the IDaaS hostname
        ApiClient apiClient = new ApiClient();
        apiClient.setBasePath(HOST_NAME);
        AdminAuthApi adminAuthApi = new AdminAuthApi(apiClient);

        // make a request to authenticate to the admin API application in IDaaS
        AdminApiAuthentication authParms =
                new AdminApiAuthentication()
                        .applicationId(APPLICATION_ID)
                        .sharedSecret(SHARED_SECRET);
        AdminApiAuthenticationResult authResult = adminAuthApi.authenticateAdminApiUsingPOST(authParms);
        // after authenticating to IDaaS, set the auth token in the API client so that it is used to authenticate
        // subsequent admin calls
        apiClient.setApiKey(authResult.getAuthToken());

        UsersApi usersApi = new UsersApi(apiClient);

        UserGetParms userGetParms = new UserGetParms()
                .userId("jdoe");

        User user = usersApi.userByUseridUsingPOST(userGetParms);

        String userUUID = user.getId();

        usersApi.deleteUserUsingDELETE(userUUID);
    }
}
```

**CSharp**

```csharp
using com.entrustdatacard.intellitrust.admin.api;
using com.entrustdatacard.intellitrust.admin.Client;
using com.entrustdatacard.intellitrust.admin.model;

namespace Samples
{
    internal class AdminApiSample
    {
        private static readonly string SHARED_SECRET = "YOUR_SHARED_SECRET";
        private static readonly string HOST_NAME = "YOUR_HOST_NAME";
        private static readonly string APPLICATION_ID = "YOUR_APPLICATION_ID";

        public static void Main()
        {
            Configuration configuration = new Configuration();
            configuration.BasePath = HOST_NAME;
            AdminAuthApi adminAuthApi = new AdminAuthApi(configuration);

            var authParams = new AdminApiAuthentication(APPLICATION_ID, false, SHARED_SECRET);
            var authResult = adminAuthApi.AuthenticateAdminApiUsingPOST(authParams);
            configuration.AddApiKey("Authorization", authResult.AuthToken);

            var usersApi = new UsersApi(configuration);
            var userGetParms = new UserGetParms(userId: "jdoe");
            var user = usersApi.UserByUseridUsingPOST(userGetParms);

            usersApi.DeleteUserUsingDELETE(user.Id);
        }
    }
}
```

**Python**

```python
from IntelliTrust_Python_Administration import ApiClient, Configuration
import IntelliTrust_Python_Administration.models as models
import IntelliTrust_Python_Administration.api as apis

conf = Configuration(
    host = "YOUR_HOST_NAME",
)
with ApiClient(conf) as api_client:
    admin_api = apis.AdminAuthApi(api_client)
    auth_parms = models.AdminApiAuthentication(
        application_id = "YOUR_APPLICATION_ID",
        shared_secret = "YOUR_SHARED_SECRET",
    )
    auth_result = admin_api.authenticate_admin_api_using_post(auth_parms)

    api_client.set_default_header("Authorization", auth_result.auth_token)

    users_api = apis.UsersApi(api_client)
    user_get_parms = models.UserGetParms(
        user_id = "jdoe",
    )
    user = users_api.user_by_userid_using_post(user_get_parms)
    users_api.delete_user_using_delete(user.id)
```
