{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "#/components/schemas/CheckAuthorizationDto", "title": "CheckAuthorizationDto", "allOf": [ { "type": "object", "properties": { "permission_slug": { "type": "string", "description": "The slug of the permission to check.", "example": "posts:create" } }, "required": [ "permission_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": "resource_01HXYZ123456789ABCDEFGHIJ" } }, "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": "my-custom-id" }, "resource_type_slug": { "type": "string", "description": "The slug of the resource type. Required with `resource_external_id`. Mutually exclusive with `resource_id`.", "example": "document" } }, "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" ] } } } }