---
type: api
title: Updates role mappings
description: Updates the role assignments applicable when logging via SSO. Currently unavailable in self-hosted ECE.
url: https://www.elastic.co/elastic/docs-builder/docs/4371/api/doc/cloud/operation/operation-update-role-mappings
resource: https://www.elastic.co/elastic/docs-builder/docs/4371/api/doc/cloud/operation/operation-update-role-mappings
products:
  - Elastic Cloud Hosted
---

# Updates role mappings

- Server: `https://api.elastic-cloud.com/api/v1`

## Paths

- `PUT` `/organizations/{organization_id}/role_mappings`

#### Path Parameters

- `organization_id` (string)
  Identifier for the Organization

## Description

Updates the role assignments applicable when logging via SSO. Currently unavailable in self-hosted ECE.

## Request Body

`application/json`

The role  mappings to update

- `mappings` ([] RoleMapping) — required
  The rules for mapping role assignments in the organization
  - `enabled` (boolean) — required
    Whether or not the role mapping is enabled
  - `name` (string) — required
    The name of the role mapping
  - `rule` ({} RoleMappingRule) — required
    - `any` ([] RoleMappingPropertyRule) — optional
      The rules that must match. Only one rule must match for the role assignment to be applied.
      - `group` (string) — optional
        The group to match. Can have wildcards. Must specify either `group` or `email` but not both.
      - `email` (string) — optional
        The email to match. Can have wildcards. Must specify either `group` or `email` but not both.
    - `all` ([] RoleMappingPropertyRule) — optional
      The rules that must match. All rules must match for the role assignment to be applied.
      - `group` (string) — optional
        The group to match. Can have wildcards. Must specify either `group` or `email` but not both.
      - `email` (string) — optional
        The email to match. Can have wildcards. Must specify either `group` or `email` but not both.
  - `role_assignments` ({} RoleAssignments) — required
    Roles assigned to users, API keys or organization invitations. Currently unavailable in self-hosted ECE.
    - `platform` ([] PlatformRoleAssignment) — optional
      Assignments for roles with platform scope.
      - `role_id` (string) — required
        The ID of the role that is assigned.
    - `organization` ([] OrganizationRoleAssignment) — optional
      Assignments for roles with organization scope.
      - `role_id` (string) — required
        The ID of the role that is assigned.
      - `organization_id` (string) — required
        The ID of the organization the role is scoped to.
      - `application_roles` ([] string) — optional
        If provided, the user assigned this role assignment will be granted this application role when signing in to a deployment or project
    - `deployment` ([] DeploymentRoleAssignment) — optional
      Assignments for roles with deployment scope.
      - `role_id` (string) — required
        The ID of the role that is assigned.
      - `organization_id` (string) — required
        The ID of the organization the role is scoped to.
      - `all` (boolean) — optional
        When true, the role applies to all deployments in the organization, otherwise the role is scoped to the deployments specified in `deployment_ids`.
      - `deployment_ids` ([] string) — optional
        The IDs of the deployments the role is scoped to. Must be absent if `all` is true, and present if `all` is false.
      - `application_roles` ([] string) — optional
        If provided, the user assigned this role assignment will be granted this application role when signing in to the deployment(s) specified in the role assignment.
    - `project` ({} ProjectRoleAssignments) — optional
      Assignments for roles with project scope.
      - `elasticsearch` ([] ProjectRoleAssignment) — optional
        The Elasticsearch project-scoped role assignments to set
        - `role_id` (string) — required
          The ID of the role that is assigned.
        - `organization_id` (string) — required
          The ID of the organization the role is scoped to.
        - `all` (boolean) — optional
          When true, the role applies to all projects in the organization, otherwise the role is scoped to the projects specified in `project_ids`.
        - `project_ids` ([] string) — optional
          The IDs of the projects the role is scoped to. Must be absent if `all` is true, and present if `all` is false.
        - `application_roles` ([] string) — optional
          If provided, the user assigned this role assignment will be granted this application role when signing in to the project(s) specified in the role assignment.
      - `observability` ([] ProjectRoleAssignment) — optional
        The Observability project-scoped role assignments to set
        - `role_id` (string) — required
          The ID of the role that is assigned.
        - `organization_id` (string) — required
          The ID of the organization the role is scoped to.
        - `all` (boolean) — optional
          When true, the role applies to all projects in the organization, otherwise the role is scoped to the projects specified in `project_ids`.
        - `project_ids` ([] string) — optional
          The IDs of the projects the role is scoped to. Must be absent if `all` is true, and present if `all` is false.
        - `application_roles` ([] string) — optional
          If provided, the user assigned this role assignment will be granted this application role when signing in to the project(s) specified in the role assignment.
      - `security` ([] ProjectRoleAssignment) — optional
        The Security project-scoped role assignments to set
        - `role_id` (string) — required
          The ID of the role that is assigned.
        - `organization_id` (string) — required
          The ID of the organization the role is scoped to.
        - `all` (boolean) — optional
          When true, the role applies to all projects in the organization, otherwise the role is scoped to the projects specified in `project_ids`.
        - `project_ids` ([] string) — optional
          The IDs of the projects the role is scoped to. Must be absent if `all` is true, and present if `all` is false.
        - `application_roles` ([] string) — optional
          If provided, the user assigned this role assignment will be granted this application role when signing in to the project(s) specified in the role assignment.
      - `workplaceai` ([] ProjectRoleAssignment) — optional
        The WorkplaceAI project-scoped role assignments to set
        - `role_id` (string) — required
          The ID of the role that is assigned.
        - `organization_id` (string) — required
          The ID of the organization the role is scoped to.
        - `all` (boolean) — optional
          When true, the role applies to all projects in the organization, otherwise the role is scoped to the projects specified in `project_ids`.
        - `project_ids` ([] string) — optional
          The IDs of the projects the role is scoped to. Must be absent if `all` is true, and present if `all` is false.
        - `application_roles` ([] string) — optional
          If provided, the user assigned this role assignment will be granted this application role when signing in to the project(s) specified in the role assignment.

## Responses

#### `200`

An empty response

`application/json`

Type: `EmptyResponse`

#### `400`

* Invalid rule. (code: `org.role_mapping_rule.ambiguous_rule`)
* Empty rule. (code: `org.role_mapping_rule.empty_rule`)
* Validation error. (code: `org.role_mapping_rule.syntax_error`)
* Validation error. (code: `org.role_mapping_rule.email_syntax_error`)
* Validation error. (code: `org.role_mapping_rule.too_many_role_mappings`)

`application/json`

- `errors` ([] BasicFailedReplyElement)
  A list of errors that occurred in the failing request
  - `code` (string)
    A structured code representing the error type that occurred
  - `message` (string)
    A human readable message describing the error that occurred
  - `fields` ([] string)
    If the error can be tied to a specific field or fields in the user request, this lists those fields
##### Response Headers

- `x-cloud-error-codes` (enum)
  The error codes associated with the response

#### `404`

Organization not found. (code: `organization.not_found`)

`application/json`

- `errors` ([] BasicFailedReplyElement)
  A list of errors that occurred in the failing request
  - `code` (string)
    A structured code representing the error type that occurred
  - `message` (string)
    A human readable message describing the error that occurred
  - `fields` ([] string)
    If the error can be tied to a specific field or fields in the user request, this lists those fields
##### Response Headers

- `x-cloud-error-codes` (enum)
  The error codes associated with the response

#### `409`

Concurrent organization modification. (code: `org.domain_claim.concurrent_organization_modification`)

`application/json`

- `errors` ([] BasicFailedReplyElement)
  A list of errors that occurred in the failing request
  - `code` (string)
    A structured code representing the error type that occurred
  - `message` (string)
    A human readable message describing the error that occurred
  - `fields` ([] string)
    If the error can be tied to a specific field or fields in the user request, this lists those fields
##### Response Headers

- `x-cloud-error-codes` (enum)
  The error codes associated with the response

## Code Examples

#### Console

```console
PUT /organizations/{organization_id}/role_mappings
```

#### curl

```curl
curl -X PUT "https://api.elastic-cloud.com/api/v1/organizations/{organization_id}/role_mappings"
```

