{ "$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" ] } } } }