WorkOS · Schema

CreateAuthorizationResourceDto

AuthenticationIdentity ProviderSSOSAMLOIDCSCIMDirectory SyncAuthorizationFGAAudit LogsMFAB2B SaaSAgentsMCP
View JSON Schema on GitHub

JSON Schema

workos-createauthorizationresourcedto-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/CreateAuthorizationResourceDto",
  "title": "CreateAuthorizationResourceDto",
  "allOf": [
    {
      "type": "object",
      "properties": {
        "external_id": {
          "type": "string",
          "maxLength": 128,
          "pattern": "^[\\x00-\\x7F]+$",
          "description": "An external identifier for the resource.",
          "example": "my-workspace-01"
        },
        "name": {
          "type": "string",
          "maxLength": 48,
          "description": "A display name for the resource.",
          "example": "Acme Workspace"
        },
        "description": {
          "type": [
            "string",
            "null"
          ],
          "maxLength": 150,
          "description": "An optional description of the resource.",
          "example": "Primary workspace for the Acme team"
        },
        "resource_type_slug": {
          "type": "string",
          "description": "The slug of the resource type.",
          "example": "workspace"
        },
        "organization_id": {
          "type": "string",
          "description": "The ID of the organization this resource belongs to.",
          "example": "org_01EHQMYV6MBK39QC5PZXHY59C3"
        }
      },
      "required": [
        "external_id",
        "name",
        "resource_type_slug",
        "organization_id"
      ]
    },
    {
      "oneOf": [
        {
          "type": "object",
          "not": {
            "anyOf": [
              {
                "properties": {
                  "parent_resource_id": {
                    "x-exclude-from-lint": true
                  }
                },
                "required": [
                  "parent_resource_id"
                ]
              },
              {
                "properties": {
                  "parent_resource_external_id": {
                    "x-exclude-from-lint": true
                  }
                },
                "required": [
                  "parent_resource_external_id"
                ]
              },
              {
                "properties": {
                  "parent_resource_type_slug": {
                    "x-exclude-from-lint": true
                  }
                },
                "required": [
                  "parent_resource_type_slug"
                ]
              }
            ]
          }
        },
        {
          "type": "object",
          "properties": {
            "parent_resource_id": {
              "type": [
                "string",
                "null"
              ],
              "description": "The ID of the parent resource. Mutually exclusive with `parent_resource_external_id` and `parent_resource_type_slug`.",
              "example": "authz_resource_01HXYZ123456789ABCDEFGHIJ"
            }
          },
          "required": [
            "parent_resource_id"
          ],
          "not": {
            "anyOf": [
              {
                "properties": {
                  "parent_resource_external_id": {
                    "x-exclude-from-lint": true
                  }
                },
                "required": [
                  "parent_resource_external_id"
                ]
              },
              {
                "properties": {
                  "parent_resource_type_slug": {
                    "x-exclude-from-lint": true
                  }
                },
                "required": [
                  "parent_resource_type_slug"
                ]
              }
            ]
          }
        },
        {
          "type": "object",
          "properties": {
            "parent_resource_external_id": {
              "type": "string",
              "description": "The external ID of the parent resource. Required with `parent_resource_type_slug`. Mutually exclusive with `parent_resource_id`.",
              "example": "parent-workspace-01"
            },
            "parent_resource_type_slug": {
              "type": "string",
              "description": "The resource type slug of the parent resource. Required with `parent_resource_external_id`. Mutually exclusive with `parent_resource_id`.",
              "example": "workspace"
            }
          },
          "required": [
            "parent_resource_external_id",
            "parent_resource_type_slug"
          ],
          "not": {
            "anyOf": [
              {
                "properties": {
                  "parent_resource_id": {
                    "x-exclude-from-lint": true
                  }
                },
                "required": [
                  "parent_resource_id"
                ]
              }
            ]
          }
        }
      ]
    }
  ],
  "x-mutually-exclusive-body-groups": {
    "parent_resource": {
      "optional": true,
      "variants": {
        "by_id": [
          "parent_resource_id"
        ],
        "by_external_id": [
          "parent_resource_external_id",
          "parent_resource_type_slug"
        ]
      }
    }
  }
}