# Users

## List Organization Users

`List<OrganizationMember> organizations().users().listMembers(UserListMembersParamsparams = UserListMembersParams.none(), RequestOptionsrequestOptions = RequestOptions.none())`

**get** `/api/v1/organizations/{organization_id}/users`

Get all users in an organization.

### Parameters

- `UserListMembersParams params`

  - `Optional<String> organizationId`

### Example

```java
package ai.llamaindex.llamacloudadmin.example;

import ai.llamaindex.llamacloudadmin.client.LlamaCloudAdminClient;
import ai.llamaindex.llamacloudadmin.client.okhttp.LlamaCloudAdminOkHttpClient;
import ai.llamaindex.llamacloudadmin.models.organizations.OrganizationMember;
import ai.llamaindex.llamacloudadmin.models.organizations.users.UserListMembersParams;

public final class Main {
    private Main() {}

    public static void main(String[] args) {
        LlamaCloudAdminClient client = LlamaCloudAdminOkHttpClient.fromEnv();

        List<OrganizationMember> organizationMembers = client.organizations().users().listMembers("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");
    }
}
```

#### Response

```json
[
  {
    "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "organization_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "roles": [
      {
        "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
        "organization_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
        "role": {
          "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
          "name": "x",
          "permissions": [
            {
              "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
              "access": true,
              "description": "description",
              "name": "x",
              "created_at": "2019-12-27T18:11:19.117Z",
              "updated_at": "2019-12-27T18:11:19.117Z"
            }
          ],
          "created_at": "2019-12-27T18:11:19.117Z",
          "updated_at": "2019-12-27T18:11:19.117Z"
        },
        "user_id": "user_id",
        "created_at": "2019-12-27T18:11:19.117Z",
        "project_ids": [
          "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
        ],
        "updated_at": "2019-12-27T18:11:19.117Z"
      }
    ],
    "created_at": "2019-12-27T18:11:19.117Z",
    "email": "dev@stainless.com",
    "invited_by_user_email": "dev@stainless.com",
    "invited_by_user_id": "invited_by_user_id",
    "pending": true,
    "updated_at": "2019-12-27T18:11:19.117Z",
    "user_id": "user_id"
  }
]
```

## Add Users To Organization

`List<OrganizationMember> organizations().users().add(UserAddParamsparams, RequestOptionsrequestOptions = RequestOptions.none())`

**put** `/api/v1/organizations/{organization_id}/users`

Add a user to an organization.

### Parameters

- `UserAddParams params`

  - `Optional<String> organizationId`

  - `List<Body> body`

    - `Optional<List<String>> projectIds`

      The project IDs to add the user to.

    - `Optional<String> email`

      The user's email address.

    - `Optional<String> roleId`

      The role ID to assign to the user.

    - `Optional<String> userId`

      The user's ID.

### Example

```java
package ai.llamaindex.llamacloudadmin.example;

import ai.llamaindex.llamacloudadmin.client.LlamaCloudAdminClient;
import ai.llamaindex.llamacloudadmin.client.okhttp.LlamaCloudAdminOkHttpClient;
import ai.llamaindex.llamacloudadmin.models.organizations.OrganizationMember;
import ai.llamaindex.llamacloudadmin.models.organizations.users.UserAddParams;

public final class Main {
    private Main() {}

    public static void main(String[] args) {
        LlamaCloudAdminClient client = LlamaCloudAdminOkHttpClient.fromEnv();

        UserAddParams params = UserAddParams.builder()
            .organizationId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
            .addBody(UserAddParams.Body.builder()
                .addProjectId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
                .build())
            .build();
        List<OrganizationMember> organizationMembers = client.organizations().users().add(params);
    }
}
```

#### Response

```json
[
  {
    "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "organization_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "roles": [
      {
        "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
        "organization_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
        "role": {
          "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
          "name": "x",
          "permissions": [
            {
              "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
              "access": true,
              "description": "description",
              "name": "x",
              "created_at": "2019-12-27T18:11:19.117Z",
              "updated_at": "2019-12-27T18:11:19.117Z"
            }
          ],
          "created_at": "2019-12-27T18:11:19.117Z",
          "updated_at": "2019-12-27T18:11:19.117Z"
        },
        "user_id": "user_id",
        "created_at": "2019-12-27T18:11:19.117Z",
        "project_ids": [
          "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
        ],
        "updated_at": "2019-12-27T18:11:19.117Z"
      }
    ],
    "created_at": "2019-12-27T18:11:19.117Z",
    "email": "dev@stainless.com",
    "invited_by_user_email": "dev@stainless.com",
    "invited_by_user_id": "invited_by_user_id",
    "pending": true,
    "updated_at": "2019-12-27T18:11:19.117Z",
    "user_id": "user_id"
  }
]
```

## Remove Users From Organization

`organizations().users().delete(UserDeleteParamsparams, RequestOptionsrequestOptions = RequestOptions.none())`

**delete** `/api/v1/organizations/{organization_id}/users/{member_user_id}`

Remove users from an organization.

### Parameters

- `UserDeleteParams params`

  - `String organizationId`

  - `Optional<String> memberUserId`

  - `Optional<List<String>> body`

### Example

```java
package ai.llamaindex.llamacloudadmin.example;

import ai.llamaindex.llamacloudadmin.client.LlamaCloudAdminClient;
import ai.llamaindex.llamacloudadmin.client.okhttp.LlamaCloudAdminOkHttpClient;
import ai.llamaindex.llamacloudadmin.models.organizations.users.UserDeleteParams;

public final class Main {
    private Main() {}

    public static void main(String[] args) {
        LlamaCloudAdminClient client = LlamaCloudAdminOkHttpClient.fromEnv();

        UserDeleteParams params = UserDeleteParams.builder()
            .organizationId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
            .memberUserId("member_user_id")
            .build();
        client.organizations().users().delete(params);
    }
}
```

## Assign Role To User In Organization

`UserOrganizationRole organizations().users().assignRole(UserAssignRoleParamsparams, RequestOptionsrequestOptions = RequestOptions.none())`

**put** `/api/v1/organizations/{organization_id}/users/roles`

Assign a role to a user in an organization.

### Parameters

- `UserAssignRoleParams params`

  - `Optional<String> pathOrganizationId`

  - `String bodyOrganizationId`

    The organization's ID.

  - `String roleId`

    The role's ID.

  - `String userId`

    The user's ID.

### Returns

- `class UserOrganizationRole:`

  Schema for a user's role in an organization.

  - `String id`

    Unique identifier

  - `String organizationId`

    The organization's ID.

  - `Role role`

    The role.

    - `String id`

      Unique identifier

    - `String name`

      A name for the role.

    - `List<Permission> permissions`

      The actual permissions of the role.

      - `String id`

        Unique identifier

      - `boolean access`

        Whether the permission is granted or not.

      - `Optional<String> description`

        A description for the permission.

      - `String name`

        A name for the permission.

      - `Optional<LocalDateTime> createdAt`

        Creation datetime

      - `Optional<LocalDateTime> updatedAt`

        Update datetime

    - `Optional<LocalDateTime> createdAt`

      Creation datetime

    - `Optional<LocalDateTime> updatedAt`

      Update datetime

  - `String userId`

    The user's ID.

  - `Optional<LocalDateTime> createdAt`

    Creation datetime

  - `Optional<List<String>> projectIds`

    The project ID scope.

  - `Optional<LocalDateTime> updatedAt`

    Update datetime

### Example

```java
package ai.llamaindex.llamacloudadmin.example;

import ai.llamaindex.llamacloudadmin.client.LlamaCloudAdminClient;
import ai.llamaindex.llamacloudadmin.client.okhttp.LlamaCloudAdminOkHttpClient;
import ai.llamaindex.llamacloudadmin.models.organizations.UserOrganizationRole;
import ai.llamaindex.llamacloudadmin.models.organizations.users.UserAssignRoleParams;

public final class Main {
    private Main() {}

    public static void main(String[] args) {
        LlamaCloudAdminClient client = LlamaCloudAdminOkHttpClient.fromEnv();

        UserAssignRoleParams params = UserAssignRoleParams.builder()
            .pathOrganizationId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
            .bodyOrganizationId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
            .roleId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
            .userId("user_id")
            .build();
        UserOrganizationRole userOrganizationRole = client.organizations().users().assignRole(params);
    }
}
```

#### Response

```json
{
  "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
  "organization_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
  "role": {
    "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "name": "x",
    "permissions": [
      {
        "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
        "access": true,
        "description": "description",
        "name": "x",
        "created_at": "2019-12-27T18:11:19.117Z",
        "updated_at": "2019-12-27T18:11:19.117Z"
      }
    ],
    "created_at": "2019-12-27T18:11:19.117Z",
    "updated_at": "2019-12-27T18:11:19.117Z"
  },
  "user_id": "user_id",
  "created_at": "2019-12-27T18:11:19.117Z",
  "project_ids": [
    "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
  ],
  "updated_at": "2019-12-27T18:11:19.117Z"
}
```

## List Projects By User

`List<UserListProjectsResponse> organizations().users().listProjects(UserListProjectsParamsparams, RequestOptionsrequestOptions = RequestOptions.none())`

**get** `/api/v1/organizations/{organization_id}/users/{user_id}/projects`

List all projects for a user in an organization.

### Parameters

- `UserListProjectsParams params`

  - `String organizationId`

  - `Optional<String> userId`

### Example

```java
package ai.llamaindex.llamacloudadmin.example;

import ai.llamaindex.llamacloudadmin.client.LlamaCloudAdminClient;
import ai.llamaindex.llamacloudadmin.client.okhttp.LlamaCloudAdminOkHttpClient;
import ai.llamaindex.llamacloudadmin.models.organizations.users.UserListProjectsParams;
import ai.llamaindex.llamacloudadmin.models.organizations.users.UserListProjectsResponse;

public final class Main {
    private Main() {}

    public static void main(String[] args) {
        LlamaCloudAdminClient client = LlamaCloudAdminOkHttpClient.fromEnv();

        UserListProjectsParams params = UserListProjectsParams.builder()
            .organizationId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
            .userId("user_id")
            .build();
        List<UserListProjectsResponse> response = client.organizations().users().listProjects(params);
    }
}
```

#### Response

```json
[
  {
    "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "name": "x",
    "organization_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "created_at": "2019-12-27T18:11:19.117Z",
    "is_default": true,
    "updated_at": "2019-12-27T18:11:19.117Z"
  }
]
```

## Add User To Project

`JsonValue organizations().users().addToProject(UserAddToProjectParamsparams, RequestOptionsrequestOptions = RequestOptions.none())`

**put** `/api/v1/organizations/{organization_id}/users/{user_id}/projects`

Add a user to a project.

### Parameters

- `UserAddToProjectParams params`

  - `String organizationId`

  - `Optional<String> userId`

  - `Optional<String> projectId`

### Returns

- `class UserAddToProjectResponse:`

### Example

```java
package ai.llamaindex.llamacloudadmin.example;

import ai.llamaindex.llamacloudadmin.client.LlamaCloudAdminClient;
import ai.llamaindex.llamacloudadmin.client.okhttp.LlamaCloudAdminOkHttpClient;
import ai.llamaindex.llamacloudadmin.models.organizations.users.UserAddToProjectParams;
import ai.llamaindex.llamacloudadmin.models.organizations.users.UserAddToProjectResponse;

public final class Main {
    private Main() {}

    public static void main(String[] args) {
        LlamaCloudAdminClient client = LlamaCloudAdminOkHttpClient.fromEnv();

        UserAddToProjectParams params = UserAddToProjectParams.builder()
            .organizationId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
            .userId("user_id")
            .build();
        UserAddToProjectResponse response = client.organizations().users().addToProject(params);
    }
}
```

#### Response

```json
{}
```

## Remove User From Project

`JsonValue organizations().users().removeFromProject(UserRemoveFromProjectParamsparams, RequestOptionsrequestOptions = RequestOptions.none())`

**delete** `/api/v1/organizations/{organization_id}/users/{user_id}/projects/{project_id}`

Remove a user from a project.

### Parameters

- `UserRemoveFromProjectParams params`

  - `String organizationId`

  - `String userId`

  - `Optional<String> projectId`

### Returns

- `class UserRemoveFromProjectResponse:`

### Example

```java
package ai.llamaindex.llamacloudadmin.example;

import ai.llamaindex.llamacloudadmin.client.LlamaCloudAdminClient;
import ai.llamaindex.llamacloudadmin.client.okhttp.LlamaCloudAdminOkHttpClient;
import ai.llamaindex.llamacloudadmin.models.organizations.users.UserRemoveFromProjectParams;
import ai.llamaindex.llamacloudadmin.models.organizations.users.UserRemoveFromProjectResponse;

public final class Main {
    private Main() {}

    public static void main(String[] args) {
        LlamaCloudAdminClient client = LlamaCloudAdminOkHttpClient.fromEnv();

        UserRemoveFromProjectParams params = UserRemoveFromProjectParams.builder()
            .organizationId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
            .userId("user_id")
            .projectId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
            .build();
        UserRemoveFromProjectResponse response = client.organizations().users().removeFromProject(params);
    }
}
```

#### Response

```json
{}
```
