WorkOS · Schema

RemoveRoleDto

AuthenticationIdentity ProviderSSOSAMLOIDCSCIMDirectory SyncAuthorizationFGAAudit LogsMFAB2B SaaSAgentsMCP
View JSON Schema on GitHub

JSON Schema

workos-removeroledto-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/RemoveRoleDto",
  "title": "RemoveRoleDto",
  "allOf": [
    {
      "type": "object",
      "properties": {
        "role_slug": {
          "type": "string",
          "description": "The slug of the role to remove.",
          "example": "editor"
        }
      },
      "required": [
        "role_slug"
      ]
    },
    {
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "resource_id": {
              "type": "string",
              "description": "The ID of the resource. Mutually exclusive with `resource_external_id` and `resource_type_slug`.",
              "example": "authz_resource_01HXYZ123456789ABCDEFGH"
            }
          },
          "required": [
            "resource_id"
          ],
          "not": {
            "anyOf": [
              {
                "properties": {
                  "resource_external_id": {
                    "x-exclude-from-lint": true
                  }
                },
                "required": [
                  "resource_external_id"
                ]
              },
              {
                "properties": {
                  "resource_type_slug": {
                    "x-exclude-from-lint": true
                  }
                },
                "required": [
                  "resource_type_slug"
                ]
              }
            ]
          }
        },
        {
          "type": "object",
          "properties": {
            "resource_external_id": {
              "type": "string",
              "description": "The external ID of the resource. Required with `resource_type_slug`. Mutually exclusive with `resource_id`.",
              "example": "external_01HXYZ123456789ABCDEFGH"
            },
            "resource_type_slug": {
              "type": "string",
              "description": "The resource type slug. Required with `resource_external_id`. Mutually exclusive with `resource_id`.",
              "example": "project"
            }
          },
          "required": [
            "resource_external_id",
            "resource_type_slug"
          ],
          "not": {
            "anyOf": [
              {
                "properties": {
                  "resource_id": {
                    "x-exclude-from-lint": true
                  }
                },
                "required": [
                  "resource_id"
                ]
              }
            ]
          }
        }
      ]
    }
  ],
  "x-mutually-exclusive-body-groups": {
    "resource_target": {
      "optional": false,
      "variants": {
        "by_id": [
          "resource_id"
        ],
        "by_external_id": [
          "resource_external_id",
          "resource_type_slug"
        ]
      }
    }
  }
}