{
  "components": {
    "schemas": {
      "AccessChange": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/AccessChange.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "action": {
            "enum": [
              "grant",
              "revoke",
              "suspend"
            ],
            "type": "string"
          },
          "bindingId": {
            "type": "string"
          },
          "commandId": {
            "format": "uuid",
            "type": "string"
          },
          "role": {
            "enum": [
              "owner",
              "administrator",
              "author",
              "learner",
              "unit_manager",
              ""
            ],
            "type": "string"
          },
          "unitId": {
            "type": "string"
          },
          "userId": {
            "format": "uuid",
            "type": "string"
          },
          "version": {
            "format": "int64",
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "commandId",
          "userId",
          "version",
          "action",
          "role",
          "unitId",
          "bindingId"
        ],
        "type": "object"
      },
      "AddressChange": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/AddressChange.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "action": {
            "enum": [
              "slug",
              "add-domain",
              "verify-domain",
              "remove-domain"
            ],
            "type": "string"
          },
          "revision": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "value": {
            "maxLength": 253,
            "type": "string"
          }
        },
        "required": [
          "revision",
          "action",
          "value"
        ],
        "type": "object"
      },
      "Addresses": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/Addresses.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "allowCustomDomains": {
            "type": "boolean"
          },
          "allowSlugChanges": {
            "type": "boolean"
          },
          "domains": {
            "items": {
              "$ref": "#/components/schemas/DomainClaim"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "name": {
            "type": "string"
          },
          "organisationId": {
            "format": "uuid",
            "type": "string"
          },
          "revision": {
            "format": "int64",
            "type": "integer"
          },
          "slug": {
            "type": "string"
          }
        },
        "required": [
          "organisationId",
          "name",
          "slug",
          "revision",
          "allowSlugChanges",
          "allowCustomDomains",
          "domains"
        ],
        "type": "object"
      },
      "Ai-verify-sourcesRequest": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/Ai-verify-sourcesRequest.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "sources": {
            "items": {
              "$ref": "#/components/schemas/SourceRef"
            },
            "maxItems": 3,
            "minItems": 1,
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "sources"
        ],
        "type": "object"
      },
      "Answer": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/Answer.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "model": {
            "type": "string"
          },
          "points": {
            "items": {
              "$ref": "#/components/schemas/AnswerPoint"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "requestId": {
            "type": "string"
          },
          "supported": {
            "type": "boolean"
          }
        },
        "required": [
          "requestId",
          "model",
          "supported",
          "points"
        ],
        "type": "object"
      },
      "AnswerPoint": {
        "additionalProperties": false,
        "properties": {
          "citations": {
            "items": {
              "$ref": "#/components/schemas/Citation"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text",
          "citations"
        ],
        "type": "object"
      },
      "Audit": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "type": "string"
          },
          "actor": {
            "type": "string"
          },
          "at": {
            "type": "string"
          },
          "resource": {
            "type": "string"
          }
        },
        "required": [
          "action",
          "actor",
          "resource",
          "at"
        ],
        "type": "object"
      },
      "Binding": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string"
          },
          "role": {
            "type": "string"
          },
          "unit": {
            "type": "string"
          },
          "unitId": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "role",
          "unitId",
          "unit"
        ],
        "type": "object"
      },
      "Capability": {
        "additionalProperties": false,
        "properties": {
          "configured": {
            "type": "boolean"
          },
          "provider": {
            "type": "string"
          },
          "purpose": {
            "type": "string"
          }
        },
        "required": [
          "provider",
          "configured",
          "purpose"
        ],
        "type": "object"
      },
      "Caption": {
        "additionalProperties": false,
        "properties": {
          "label": {
            "type": "string"
          },
          "language": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "url",
          "language",
          "label"
        ],
        "type": "object"
      },
      "Channel": {
        "additionalProperties": false,
        "properties": {
          "available": {
            "type": "boolean"
          },
          "detail": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "available",
          "detail"
        ],
        "type": "object"
      },
      "Citation": {
        "additionalProperties": false,
        "properties": {
          "quote": {
            "type": "string"
          },
          "revision": {
            "format": "int64",
            "type": "integer"
          },
          "sourceId": {
            "type": "string"
          },
          "title": {
            "type": "string"
          }
        },
        "required": [
          "sourceId",
          "revision",
          "title",
          "quote"
        ],
        "type": "object"
      },
      "Client-operator-accessResponse": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/Client-operator-accessResponse.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "allowed": {
            "type": "boolean"
          }
        },
        "required": [
          "allowed"
        ],
        "type": "object"
      },
      "ClientPolicy": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/ClientPolicy.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "allowCustomDomains": {
            "type": "boolean"
          },
          "allowSlugChanges": {
            "type": "boolean"
          },
          "revision": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "revision",
          "allowSlugChanges",
          "allowCustomDomains"
        ],
        "type": "object"
      },
      "Clients": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/Clients.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/Addresses"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "next": {
            "type": "string"
          }
        },
        "required": [
          "items",
          "next"
        ],
        "type": "object"
      },
      "Command": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/Command.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "action": {
            "enum": [
              "save",
              "publish",
              "assign",
              "progress",
              "save_resource",
              "archive_resource",
              "bookmark_resource",
              "bookmark_course"
            ],
            "type": "string"
          },
          "answer": {
            "format": "int64",
            "type": "integer"
          },
          "bookmarked": {
            "type": "boolean"
          },
          "commandId": {
            "format": "uuid",
            "type": "string"
          },
          "course": {
            "$ref": "#/components/schemas/Course"
          },
          "courseId": {
            "type": "string"
          },
          "dueAt": {
            "type": "string"
          },
          "enrolmentId": {
            "type": "string"
          },
          "lessonId": {
            "type": "string"
          },
          "resource": {
            "$ref": "#/components/schemas/Resource"
          },
          "resourceId": {
            "type": "string"
          },
          "revision": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "userIds": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "action",
          "commandId"
        ],
        "type": "object"
      },
      "Company": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/Company.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "accent": {
            "enum": [
              "violet",
              "mint",
              "blue",
              "peach",
              "rose",
              "sand"
            ],
            "type": "string"
          },
          "logo": {
            "maxLength": 350000,
            "type": "string"
          },
          "name": {
            "maxLength": 160,
            "minLength": 1,
            "type": "string"
          },
          "revision": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "supportEmail": {
            "maxLength": 254,
            "type": "string"
          },
          "supportUrl": {
            "maxLength": 2048,
            "type": "string"
          },
          "timezone": {
            "maxLength": 80,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "name",
          "timezone",
          "logo",
          "accent",
          "supportEmail",
          "supportUrl",
          "revision"
        ],
        "type": "object"
      },
      "CompanyDirectory": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/CompanyDirectory.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/DirectoryEntry"
            },
            "type": "array"
          },
          "next": {
            "type": "string"
          },
          "total": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "total",
          "next"
        ],
        "type": "object"
      },
      "Connection": {
        "additionalProperties": false,
        "properties": {
          "active": {
            "type": "boolean"
          },
          "hasKey": {
            "type": "boolean"
          },
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "model": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "privacyReviewed": {
            "type": "boolean"
          },
          "provider": {
            "type": "string"
          },
          "revision": {
            "format": "int64",
            "type": "integer"
          },
          "testedAt": {
            "type": "string"
          },
          "testedRevision": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "revision",
          "name",
          "provider",
          "model",
          "hasKey",
          "privacyReviewed",
          "active",
          "testedRevision",
          "testedAt"
        ],
        "type": "object"
      },
      "ConnectionAction": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/ConnectionAction.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "action": {
            "enum": [
              "test",
              "activate",
              "disable",
              "remove-key"
            ],
            "type": "string"
          },
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "requestId": {
            "format": "uuid",
            "type": "string"
          },
          "revision": {
            "format": "int64",
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "id",
          "revision",
          "action",
          "requestId"
        ],
        "type": "object"
      },
      "ConnectionChange": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/ConnectionChange.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "key": {
            "maxLength": 8192,
            "type": "string",
            "writeOnly": true
          },
          "model": {
            "maxLength": 160,
            "minLength": 1,
            "type": "string"
          },
          "name": {
            "maxLength": 80,
            "minLength": 1,
            "type": "string"
          },
          "privacyReviewed": {
            "type": "boolean"
          },
          "provider": {
            "enum": [
              "openrouter",
              "openai",
              "anthropic",
              "deepseek"
            ],
            "type": "string"
          },
          "revision": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "id",
          "revision",
          "name",
          "provider",
          "model",
          "privacyReviewed"
        ],
        "type": "object"
      },
      "Course": {
        "additionalProperties": false,
        "properties": {
          "category": {
            "maxLength": 60,
            "type": "string"
          },
          "colour": {
            "enum": [
              "violet",
              "peach",
              "mint",
              "blue",
              "rose",
              "sand"
            ],
            "type": "string"
          },
          "description": {
            "maxLength": 600,
            "type": "string"
          },
          "duration": {
            "format": "int64",
            "maximum": 600,
            "minimum": 1,
            "type": "integer"
          },
          "id": {
            "type": "string"
          },
          "lessons": {
            "items": {
              "$ref": "#/components/schemas/Lesson"
            },
            "maxItems": 100,
            "type": [
              "array",
              "null"
            ]
          },
          "modules": {
            "items": {
              "$ref": "#/components/schemas/Module"
            },
            "maxItems": 30,
            "type": [
              "array",
              "null"
            ]
          },
          "revision": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "status": {
            "enum": [
              "draft",
              "published"
            ],
            "type": "string"
          },
          "title": {
            "maxLength": 160,
            "type": "string"
          },
          "versionId": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "title",
          "description",
          "category",
          "colour",
          "duration",
          "revision",
          "versionId",
          "status",
          "lessons"
        ],
        "type": "object"
      },
      "Delivery": {
        "additionalProperties": false,
        "properties": {
          "channel": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "read": {
            "type": "boolean"
          },
          "reason": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          }
        },
        "required": [
          "userId",
          "name",
          "channel",
          "state",
          "reason",
          "read"
        ],
        "type": "object"
      },
      "Destination": {
        "additionalProperties": false,
        "properties": {
          "enabled": {
            "type": "boolean"
          },
          "events": {
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "type": [
              "array",
              "null"
            ]
          },
          "provider": {
            "enum": [
              "mixpanel",
              "ga4",
              "klaviyo",
              "meta"
            ],
            "type": "string"
          }
        },
        "required": [
          "provider",
          "enabled",
          "events"
        ],
        "type": "object"
      },
      "DirBulk": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DirBulk.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "action": {
            "enum": [
              "assign_course",
              "assign_pathway",
              "recommend_collection",
              "add_group",
              "remove_group"
            ],
            "type": "string"
          },
          "dueAt": {
            "type": "string"
          },
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "resourceId": {
            "format": "uuid",
            "type": "string"
          },
          "userIds": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "type": [
              "array",
              "null"
            ]
          },
          "versionId": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "action",
          "resourceId",
          "versionId",
          "userIds",
          "dueAt"
        ],
        "type": "object"
      },
      "DirGroup": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DirGroup.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "archived": {
            "type": "boolean"
          },
          "canEdit": {
            "type": "boolean"
          },
          "description": {
            "maxLength": 1600,
            "type": "string"
          },
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "managed": {
            "type": "boolean"
          },
          "members": {
            "format": "int64",
            "type": "integer"
          },
          "name": {
            "maxLength": 160,
            "type": "string"
          },
          "revision": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "id",
          "name",
          "description",
          "revision",
          "archived",
          "managed",
          "members",
          "canEdit"
        ],
        "type": "object"
      },
      "DirGroups": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DirGroups.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "canCreate": {
            "type": "boolean"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/DirGroup"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "total": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "total",
          "canCreate"
        ],
        "type": "object"
      },
      "DirOption": {
        "additionalProperties": false,
        "properties": {
          "detail": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "versionId": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "detail",
          "versionId"
        ],
        "type": "object"
      },
      "DirOptions": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DirOptions.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/DirOption"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "more": {
            "type": "boolean"
          }
        },
        "required": [
          "items",
          "more"
        ],
        "type": "object"
      },
      "DirPeople": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DirPeople.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "canAssign": {
            "type": "boolean"
          },
          "canManageGroups": {
            "type": "boolean"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/DirPerson"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "limit": {
            "format": "int64",
            "type": "integer"
          },
          "offset": {
            "format": "int64",
            "type": "integer"
          },
          "total": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "total",
          "offset",
          "limit",
          "canAssign",
          "canManageGroups"
        ],
        "type": "object"
      },
      "DirPerson": {
        "additionalProperties": false,
        "properties": {
          "active": {
            "format": "int64",
            "type": "integer"
          },
          "completed": {
            "format": "int64",
            "type": "integer"
          },
          "groupCount": {
            "format": "int64",
            "type": "integer"
          },
          "groups": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "overdue": {
            "format": "int64",
            "type": "integer"
          },
          "roles": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "suspended": {
            "type": "boolean"
          },
          "teams": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "suspended",
          "roles",
          "teams",
          "groups",
          "groupCount",
          "active",
          "completed",
          "overdue"
        ],
        "type": "object"
      },
      "DirResult": {
        "additionalProperties": false,
        "properties": {
          "message": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          }
        },
        "required": [
          "userId",
          "status",
          "message"
        ],
        "type": "object"
      },
      "DirResults": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DirResults.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/DirResult"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "items"
        ],
        "type": "object"
      },
      "DirectoryEntry": {
        "additionalProperties": false,
        "properties": {
          "kind": {
            "enum": [
              "company",
              "showcase",
              "test"
            ],
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "organisationId": {
            "format": "uuid",
            "type": "string"
          },
          "slug": {
            "type": "string"
          }
        },
        "required": [
          "organisationId",
          "name",
          "slug",
          "kind"
        ],
        "type": "object"
      },
      "DomainClaim": {
        "additionalProperties": false,
        "properties": {
          "hostname": {
            "type": "string"
          },
          "record": {
            "type": "string"
          },
          "status": {
            "enum": [
              "pending",
              "verified"
            ],
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "required": [
          "hostname",
          "record",
          "value",
          "status"
        ],
        "type": "object"
      },
      "Draft": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/Draft.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "body": {
            "maxLength": 8000,
            "minLength": 1,
            "type": "string"
          },
          "channels": {
            "items": {
              "type": "string"
            },
            "maxItems": 2,
            "minItems": 1,
            "type": [
              "array",
              "null"
            ]
          },
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "recipients": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "type": [
              "array",
              "null"
            ]
          },
          "revision": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "subject": {
            "maxLength": 160,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "id",
          "revision",
          "subject",
          "body",
          "recipients",
          "channels"
        ],
        "type": "object"
      },
      "Enrolment": {
        "additionalProperties": false,
        "properties": {
          "category": {
            "type": "string"
          },
          "certificateState": {
            "type": "string"
          },
          "colour": {
            "type": "string"
          },
          "completed": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "contentAvailable": {
            "type": "boolean"
          },
          "courseId": {
            "type": "string"
          },
          "dueAt": {
            "type": "string"
          },
          "duration": {
            "format": "int64",
            "type": "integer"
          },
          "id": {
            "type": "string"
          },
          "lessons": {
            "items": {
              "$ref": "#/components/schemas/Lesson"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "modules": {
            "items": {
              "$ref": "#/components/schemas/Module"
            },
            "maxItems": 30,
            "type": [
              "array",
              "null"
            ]
          },
          "state": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "userId",
          "courseId",
          "title",
          "state",
          "dueAt",
          "completed",
          "lessons",
          "category",
          "colour",
          "duration",
          "contentAvailable",
          "certificateState"
        ],
        "type": "object"
      },
      "ErrorDetail": {
        "additionalProperties": false,
        "properties": {
          "location": {
            "description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
            "type": "string"
          },
          "message": {
            "description": "Error message text",
            "type": "string"
          },
          "value": {
            "description": "The value at the given location"
          }
        },
        "type": "object"
      },
      "ErrorModel": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/ErrorModel.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "detail": {
            "description": "A human-readable explanation specific to this occurrence of the problem.",
            "examples": [
              "Property foo is required but is missing."
            ],
            "type": "string"
          },
          "errors": {
            "description": "Optional list of individual error details",
            "items": {
              "$ref": "#/components/schemas/ErrorDetail"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "instance": {
            "description": "A URI reference that identifies the specific occurrence of the problem.",
            "examples": [
              "https://example.com/error-log/abc123"
            ],
            "format": "uri",
            "type": "string"
          },
          "status": {
            "description": "HTTP status code",
            "examples": [
              400
            ],
            "format": "int64",
            "type": "integer"
          },
          "title": {
            "description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
            "examples": [
              "Bad Request"
            ],
            "type": "string"
          },
          "type": {
            "default": "about:blank",
            "description": "A URI reference to human-readable documentation for the error.",
            "examples": [
              "https://example.com/errors/example"
            ],
            "format": "uri",
            "type": "string"
          }
        },
        "type": "object"
      },
      "Event": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/Event.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "activityId": {
            "type": "string"
          },
          "duration": {
            "format": "double",
            "maximum": 86400,
            "minimum": 0,
            "type": "number"
          },
          "enrolmentId": {
            "type": "string"
          },
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "name": {
            "maxLength": 40,
            "type": "string"
          },
          "page": {
            "maxLength": 40,
            "type": "string"
          },
          "playbackId": {
            "type": "string"
          },
          "position": {
            "format": "double",
            "maximum": 86400,
            "minimum": 0,
            "type": "number"
          },
          "rate": {
            "format": "double",
            "maximum": 4,
            "minimum": 0,
            "type": "number"
          },
          "sequence": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "id",
          "name",
          "page"
        ],
        "type": "object"
      },
      "Info": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/Info.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "build_time": {
            "type": "string"
          },
          "commit": {
            "type": "string"
          },
          "version": {
            "type": "string"
          }
        },
        "required": [
          "version",
          "commit",
          "build_time"
        ],
        "type": "object"
      },
      "IntegrationAccount": {
        "additionalProperties": false,
        "properties": {
          "enabled": {
            "type": "boolean"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "ownerId": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "enabled",
          "ownerId"
        ],
        "type": "object"
      },
      "IntegrationAssignment": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/IntegrationAssignment.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "courseId": {
            "format": "uuid",
            "type": "string"
          },
          "dueAt": {
            "format": "date-time",
            "type": "string"
          },
          "requestId": {
            "format": "uuid",
            "type": "string"
          },
          "userId": {
            "format": "uuid",
            "type": "string"
          },
          "versionId": {
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "requestId",
          "userId",
          "courseId",
          "versionId"
        ],
        "type": "object"
      },
      "IntegrationAttempt": {
        "additionalProperties": false,
        "properties": {
          "attempts": {
            "format": "int64",
            "type": "integer"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "endpointId": {
            "type": "string"
          },
          "eventId": {
            "type": "string"
          },
          "eventType": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "nextAttemptAt": {
            "format": "date-time",
            "type": "string"
          },
          "originalDeliveryId": {
            "type": "string"
          },
          "outcome": {
            "type": "string"
          },
          "status": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "endpointId",
          "eventId",
          "eventType",
          "attempts",
          "outcome",
          "createdAt",
          "nextAttemptAt"
        ],
        "type": "object"
      },
      "IntegrationChange": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/IntegrationChange.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "action": {
            "enum": [
              "create-token",
              "rotate-token",
              "revoke-token",
              "disable-account",
              "create-hook",
              "enable-hook",
              "disable-hook",
              "rotate-hook",
              "test-hook",
              "retry"
            ],
            "type": "string"
          },
          "days": {
            "format": "int64",
            "maximum": 365,
            "minimum": 0,
            "type": "integer"
          },
          "events": {
            "items": {
              "type": "string"
            },
            "maxItems": 10,
            "type": [
              "array",
              "null"
            ]
          },
          "id": {
            "type": "string"
          },
          "name": {
            "maxLength": 100,
            "type": "string"
          },
          "revision": {
            "format": "int64",
            "type": "integer"
          },
          "scopes": {
            "items": {
              "type": "string"
            },
            "maxItems": 10,
            "type": [
              "array",
              "null"
            ]
          },
          "url": {
            "maxLength": 2000,
            "type": "string"
          }
        },
        "required": [
          "action"
        ],
        "type": "object"
      },
      "IntegrationHook": {
        "additionalProperties": false,
        "properties": {
          "authorised": {
            "type": "boolean"
          },
          "enabled": {
            "type": "boolean"
          },
          "events": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "revision": {
            "format": "int64",
            "type": "integer"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "authorised",
          "id",
          "name",
          "url",
          "events",
          "enabled",
          "revision"
        ],
        "type": "object"
      },
      "IntegrationPage": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/IntegrationPage.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "items": {
            "items": {},
            "type": "array"
          },
          "nextCursor": {
            "type": "string"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "IntegrationResult": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/IntegrationResult.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "secret": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "message"
        ],
        "type": "object"
      },
      "IntegrationToken": {
        "additionalProperties": false,
        "properties": {
          "accountId": {
            "type": "string"
          },
          "authorised": {
            "type": "boolean"
          },
          "expiresAt": {
            "format": "date-time",
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "lastUsedAt": {
            "format": "date-time",
            "type": "string"
          },
          "prefix": {
            "type": "string"
          },
          "requests": {
            "format": "int64",
            "type": "integer"
          },
          "revokedAt": {
            "format": "date-time",
            "type": "string"
          },
          "scopes": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "authorised",
          "id",
          "accountId",
          "prefix",
          "scopes",
          "expiresAt",
          "requests"
        ],
        "type": "object"
      },
      "IntegrationUsage": {
        "additionalProperties": false,
        "properties": {
          "day": {
            "type": "string"
          },
          "requests": {
            "format": "int64",
            "type": "integer"
          },
          "tokenId": {
            "type": "string"
          }
        },
        "required": [
          "tokenId",
          "day",
          "requests"
        ],
        "type": "object"
      },
      "IntegrationView": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/IntegrationView.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "accounts": {
            "items": {
              "$ref": "#/components/schemas/IntegrationAccount"
            },
            "type": "array"
          },
          "allowedHosts": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "deliveries": {
            "items": {
              "$ref": "#/components/schemas/IntegrationAttempt"
            },
            "type": "array"
          },
          "enabled": {
            "type": "boolean"
          },
          "events": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "hooks": {
            "items": {
              "$ref": "#/components/schemas/IntegrationHook"
            },
            "type": "array"
          },
          "scopes": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "tokens": {
            "items": {
              "$ref": "#/components/schemas/IntegrationToken"
            },
            "type": "array"
          },
          "usage": {
            "items": {
              "$ref": "#/components/schemas/IntegrationUsage"
            },
            "type": "array"
          }
        },
        "required": [
          "usage",
          "accounts",
          "tokens",
          "hooks",
          "deliveries",
          "scopes",
          "events",
          "allowedHosts",
          "enabled"
        ],
        "type": "object"
      },
      "Launch": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/Launch.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "attempt": {
            "format": "int64",
            "type": "integer"
          },
          "expiresAt": {
            "type": "string"
          },
          "preview": {
            "type": "boolean"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "url",
          "expiresAt",
          "preview",
          "attempt"
        ],
        "type": "object"
      },
      "LaunchRequest": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/LaunchRequest.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "activityId": {
            "type": "string"
          },
          "enrolmentId": {
            "type": "string"
          },
          "packageId": {
            "type": "string"
          },
          "restart": {
            "type": "boolean"
          }
        },
        "required": [
          "restart"
        ],
        "type": "object"
      },
      "Lesson": {
        "additionalProperties": false,
        "properties": {
          "answer": {
            "format": "int64",
            "type": "integer"
          },
          "body": {
            "maxLength": 20000,
            "type": "string"
          },
          "bodyFormat": {
            "enum": [
              "plain",
              "html"
            ],
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "kind": {
            "enum": [
              "text",
              "quiz",
              "video",
              "scorm"
            ],
            "type": "string"
          },
          "moduleId": {
            "type": "string"
          },
          "options": {
            "items": {
              "type": "string"
            },
            "maxItems": 4,
            "type": [
              "array",
              "null"
            ]
          },
          "packageId": {
            "type": "string"
          },
          "title": {
            "maxLength": 160,
            "type": "string"
          },
          "video": {
            "$ref": "#/components/schemas/Video"
          }
        },
        "required": [
          "id",
          "title",
          "kind",
          "body"
        ],
        "type": "object"
      },
      "LiveOutputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/LiveOutputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "status": {
            "description": "Process is alive",
            "enum": [
              "ok"
            ],
            "type": "string"
          }
        },
        "required": [
          "status"
        ],
        "type": "object"
      },
      "ManagementView": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/ManagementView.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "connections": {
            "items": {
              "$ref": "#/components/schemas/Connection"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "dailyLimit": {
            "format": "int64",
            "type": "integer"
          },
          "deploymentAvailable": {
            "type": "boolean"
          },
          "deploymentModel": {
            "type": "string"
          },
          "deploymentProvider": {
            "type": "string"
          },
          "globalEnabled": {
            "type": "boolean"
          },
          "keysAvailable": {
            "type": "boolean"
          },
          "policy": {
            "$ref": "#/components/schemas/Policy"
          },
          "providers": {
            "items": {
              "$ref": "#/components/schemas/ProviderInfo"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "routing": {
            "$ref": "#/components/schemas/Routing"
          },
          "usage": {
            "items": {
              "$ref": "#/components/schemas/Usage"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "dailyLimit",
          "globalEnabled",
          "keysAvailable",
          "policy",
          "routing",
          "providers",
          "connections",
          "deploymentProvider",
          "deploymentModel",
          "deploymentAvailable",
          "usage"
        ],
        "type": "object"
      },
      "Member": {
        "additionalProperties": false,
        "properties": {
          "bindings": {
            "items": {
              "$ref": "#/components/schemas/Binding"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "suspended": {
            "type": "boolean"
          },
          "version": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "name",
          "suspended",
          "version",
          "bindings"
        ],
        "type": "object"
      },
      "MembershipBody": {
        "additionalProperties": false,
        "properties": {
          "current": {
            "description": "True when this session is already bound here",
            "type": "boolean"
          },
          "name": {
            "description": "Organisation name",
            "type": "string"
          },
          "organisation_id": {
            "description": "Organisation the signed-in subject can enter",
            "type": "string"
          }
        },
        "required": [
          "organisation_id",
          "name",
          "current"
        ],
        "type": "object"
      },
      "MembershipsOutputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/MembershipsOutputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "memberships": {
            "items": {
              "$ref": "#/components/schemas/MembershipBody"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "memberships"
        ],
        "type": "object"
      },
      "Message": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/Message.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "body": {
            "type": "string"
          },
          "channels": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "createdAt": {
            "type": "string"
          },
          "deliveries": {
            "items": {
              "$ref": "#/components/schemas/Delivery"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "id": {
            "type": "string"
          },
          "read": {
            "type": "boolean"
          },
          "recipientIds": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "revision": {
            "format": "int64",
            "type": "integer"
          },
          "sender": {
            "type": "string"
          },
          "senderId": {
            "type": "string"
          },
          "sentAt": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "subject": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "subject",
          "body",
          "sender",
          "senderId",
          "revision",
          "state",
          "createdAt",
          "sentAt",
          "read",
          "channels"
        ],
        "type": "object"
      },
      "MessagePreferenceInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/MessagePreferenceInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "email": {
            "type": "boolean"
          }
        },
        "required": [
          "email"
        ],
        "type": "object"
      },
      "MessageSendInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/MessageSendInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "revision": {
            "format": "int64",
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "revision"
        ],
        "type": "object"
      },
      "Module": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "summary": {
            "maxLength": 1200,
            "type": "string"
          },
          "title": {
            "maxLength": 160,
            "type": "string"
          }
        },
        "required": [
          "id",
          "title",
          "summary"
        ],
        "type": "object"
      },
      "OutputAssignPathwayBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/OutputAssignPathwayBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "OutputCancelPathwayBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/OutputCancelPathwayBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "OutputFollowCollectionBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/OutputFollowCollectionBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "Package": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/Package.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "bytes": {
            "format": "int64",
            "type": "integer"
          },
          "createdAt": {
            "type": "string"
          },
          "familyId": {
            "type": "string"
          },
          "filename": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "sha256": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "usage": {
            "format": "int64",
            "type": "integer"
          },
          "version": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "familyId",
          "version",
          "title",
          "filename",
          "bytes",
          "sha256",
          "state",
          "createdAt",
          "usage"
        ],
        "type": "object"
      },
      "Page": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/Page.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "canSend": {
            "type": "boolean"
          },
          "channels": {
            "items": {
              "$ref": "#/components/schemas/Channel"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "emailOptIn": {
            "type": "boolean"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/Message"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "next": {
            "type": "string"
          }
        },
        "required": [
          "items",
          "next",
          "canSend",
          "channels",
          "emailOptIn"
        ],
        "type": "object"
      },
      "People": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/People.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "canManage": {
            "type": "boolean"
          },
          "members": {
            "items": {
              "$ref": "#/components/schemas/Member"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "next": {
            "type": "string"
          },
          "selfId": {
            "type": "string"
          },
          "units": {
            "items": {
              "$ref": "#/components/schemas/Unit"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "members",
          "units",
          "next",
          "canManage",
          "selfId"
        ],
        "type": "object"
      },
      "Person": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "unit": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "unit"
        ],
        "type": "object"
      },
      "PersonAudit": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "type": "string"
          },
          "actorId": {
            "type": "string"
          },
          "at": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          }
        },
        "required": [
          "action",
          "actorId",
          "at",
          "reason"
        ],
        "type": "object"
      },
      "PersonLearning": {
        "additionalProperties": false,
        "properties": {
          "course": {
            "type": "string"
          },
          "cycle": {
            "format": "int64",
            "type": "integer"
          },
          "dueAt": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "state": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "course",
          "state",
          "cycle",
          "dueAt"
        ],
        "type": "object"
      },
      "PlanAssign": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PlanAssign.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "dueAt": {
            "type": "string"
          },
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "userId": {
            "format": "uuid",
            "type": "string"
          },
          "versionId": {
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "id",
          "versionId",
          "userId",
          "dueAt"
        ],
        "type": "object"
      },
      "PlanAssignment": {
        "additionalProperties": false,
        "properties": {
          "assignedAt": {
            "type": "string"
          },
          "canCancel": {
            "type": "boolean"
          },
          "completed": {
            "format": "int64",
            "type": "integer"
          },
          "dueAt": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "pathwayId": {
            "type": "string"
          },
          "progress": {
            "format": "int64",
            "type": "integer"
          },
          "required": {
            "format": "int64",
            "type": "integer"
          },
          "stages": {
            "items": {
              "$ref": "#/components/schemas/PlanStageProgress"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "state": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          },
          "userName": {
            "type": "string"
          },
          "version": {
            "format": "int64",
            "type": "integer"
          },
          "versionId": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "pathwayId",
          "versionId",
          "version",
          "title",
          "userId",
          "userName",
          "assignedAt",
          "dueAt",
          "state",
          "required",
          "completed",
          "progress",
          "stages",
          "canCancel"
        ],
        "type": "object"
      },
      "PlanAssignmentsView": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PlanAssignmentsView.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/PlanAssignment"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "limited": {
            "type": "boolean"
          }
        },
        "required": [
          "items",
          "limited"
        ],
        "type": "object"
      },
      "PlanCollection": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PlanCollection.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "archived": {
            "type": "boolean"
          },
          "audienceUnit": {
            "type": "string"
          },
          "colour": {
            "type": "string"
          },
          "courses": {
            "items": {
              "$ref": "#/components/schemas/PlanCourseRef"
            },
            "maxItems": 30,
            "type": [
              "array",
              "null"
            ]
          },
          "description": {
            "maxLength": 1600,
            "type": "string"
          },
          "following": {
            "type": "boolean"
          },
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "published": {
            "type": "boolean"
          },
          "recommended": {
            "type": "boolean"
          },
          "revision": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "title": {
            "maxLength": 160,
            "type": "string"
          }
        },
        "required": [
          "id",
          "revision",
          "title",
          "description",
          "colour",
          "audienceUnit",
          "published",
          "archived",
          "following",
          "courses"
        ],
        "type": "object"
      },
      "PlanCollectionsView": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PlanCollectionsView.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "canEdit": {
            "type": "boolean"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/PlanCollection"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "limited": {
            "type": "boolean"
          },
          "units": {
            "items": {
              "$ref": "#/components/schemas/PlanUnit"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "items",
          "units",
          "canEdit",
          "limited"
        ],
        "type": "object"
      },
      "PlanCourseProgress": {
        "additionalProperties": false,
        "properties": {
          "credited": {
            "type": "boolean"
          },
          "enrolmentId": {
            "type": "string"
          },
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "required": {
            "type": "boolean"
          },
          "state": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "versionId": {
            "type": "string"
          }
        },
        "required": [
          "state",
          "enrolmentId",
          "credited",
          "id",
          "title",
          "versionId",
          "required"
        ],
        "type": "object"
      },
      "PlanCourseRef": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "required": {
            "type": "boolean"
          },
          "title": {
            "type": "string"
          },
          "versionId": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "title",
          "versionId",
          "required"
        ],
        "type": "object"
      },
      "PlanFollow": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PlanFollow.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "following": {
            "type": "boolean"
          },
          "id": {
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "id",
          "following"
        ],
        "type": "object"
      },
      "PlanID": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PlanID.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "PlanLaunch": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PlanLaunch.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "assignmentId": {
            "format": "uuid",
            "type": "string"
          },
          "courseId": {
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "assignmentId",
          "courseId"
        ],
        "type": "object"
      },
      "PlanLaunchResult": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PlanLaunchResult.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "enrolmentId": {
            "type": "string"
          }
        },
        "required": [
          "enrolmentId"
        ],
        "type": "object"
      },
      "PlanPathway": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PlanPathway.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "allowPrior": {
            "type": "boolean"
          },
          "archived": {
            "type": "boolean"
          },
          "colour": {
            "type": "string"
          },
          "description": {
            "maxLength": 1600,
            "type": "string"
          },
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "priorDays": {
            "format": "int64",
            "maximum": 3650,
            "minimum": 0,
            "type": "integer"
          },
          "publishedRevision": {
            "format": "int64",
            "type": "integer"
          },
          "publishedTitle": {
            "type": "string"
          },
          "revision": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "sequential": {
            "type": "boolean"
          },
          "stages": {
            "items": {
              "$ref": "#/components/schemas/PlanStage"
            },
            "maxItems": 12,
            "type": [
              "array",
              "null"
            ]
          },
          "title": {
            "maxLength": 160,
            "type": "string"
          },
          "version": {
            "format": "int64",
            "type": "integer"
          },
          "versionId": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "revision",
          "title",
          "description",
          "colour",
          "sequential",
          "allowPrior",
          "priorDays",
          "stages",
          "versionId",
          "version",
          "archived"
        ],
        "type": "object"
      },
      "PlanPathwaysView": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PlanPathwaysView.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "canAssign": {
            "type": "boolean"
          },
          "canEdit": {
            "type": "boolean"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/PlanPathway"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "limited": {
            "type": "boolean"
          }
        },
        "required": [
          "items",
          "canEdit",
          "canAssign",
          "limited"
        ],
        "type": "object"
      },
      "PlanPublish": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PlanPublish.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "revision": {
            "format": "int64",
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "id",
          "revision"
        ],
        "type": "object"
      },
      "PlanStage": {
        "additionalProperties": false,
        "properties": {
          "courses": {
            "items": {
              "$ref": "#/components/schemas/PlanCourseRef"
            },
            "maxItems": 20,
            "type": [
              "array",
              "null"
            ]
          },
          "dueDays": {
            "format": "int64",
            "maximum": 3650,
            "minimum": 0,
            "type": "integer"
          },
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "title": {
            "maxLength": 160,
            "type": "string"
          }
        },
        "required": [
          "id",
          "title",
          "dueDays",
          "courses"
        ],
        "type": "object"
      },
      "PlanStageProgress": {
        "additionalProperties": false,
        "properties": {
          "courses": {
            "items": {
              "$ref": "#/components/schemas/PlanCourseProgress"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "dueAt": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "title": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "title",
          "dueAt",
          "state",
          "courses"
        ],
        "type": "object"
      },
      "PlanUnit": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "type": "object"
      },
      "PlatformCompany": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PlatformCompany.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "addresses": {
            "$ref": "#/components/schemas/Addresses"
          },
          "audit": {
            "items": {
              "$ref": "#/components/schemas/Audit"
            },
            "type": "array"
          },
          "completions": {
            "format": "int64",
            "type": "integer"
          },
          "courses": {
            "format": "int64",
            "type": "integer"
          },
          "enrolments": {
            "format": "int64",
            "type": "integer"
          },
          "kind": {
            "enum": [
              "company",
              "showcase",
              "test"
            ],
            "type": "string"
          },
          "members": {
            "format": "int64",
            "type": "integer"
          },
          "organisationId": {
            "format": "uuid",
            "type": "string"
          },
          "profile": {
            "$ref": "#/components/schemas/Company"
          },
          "ssoConnections": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "organisationId",
          "kind",
          "profile",
          "addresses",
          "members",
          "courses",
          "enrolments",
          "completions",
          "ssoConnections",
          "audit"
        ],
        "type": "object"
      },
      "PlatformCompanyChange": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PlatformCompanyChange.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "kind": {
            "enum": [
              "company",
              "showcase",
              "test"
            ],
            "type": "string"
          },
          "profile": {
            "$ref": "#/components/schemas/Company"
          }
        },
        "required": [
          "profile",
          "kind"
        ],
        "type": "object"
      },
      "PlatformPerson": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PlatformPerson.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "actEnabled": {
            "type": "boolean"
          },
          "audit": {
            "items": {
              "$ref": "#/components/schemas/PersonAudit"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "canSupport": {
            "type": "boolean"
          },
          "company": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "identityProviders": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "learning": {
            "items": {
              "$ref": "#/components/schemas/PersonLearning"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "learningMore": {
            "type": "boolean"
          },
          "organisationId": {
            "type": "string"
          },
          "profile": {
            "$ref": "#/components/schemas/ProfileDetails"
          },
          "revision": {
            "format": "int64",
            "type": "integer"
          },
          "roles": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "suspended": {
            "type": "boolean"
          },
          "teams": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "organisationId",
          "company",
          "profile",
          "revision",
          "suspended",
          "roles",
          "teams",
          "identityProviders",
          "learning",
          "learningMore",
          "audit",
          "canSupport",
          "actEnabled"
        ],
        "type": "object"
      },
      "PlatformPersonAccess": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PlatformPersonAccess.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "actEnabled": {
            "type": "boolean"
          },
          "operator": {
            "type": "boolean"
          },
          "organisationId": {
            "type": "string"
          }
        },
        "required": [
          "organisationId",
          "operator",
          "actEnabled"
        ],
        "type": "object"
      },
      "PlatformPersonChange": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PlatformPersonChange.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "profile": {
            "$ref": "#/components/schemas/ProfileDetails"
          },
          "reason": {
            "maxLength": 500,
            "minLength": 10,
            "type": "string"
          },
          "revision": {
            "format": "int64",
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "revision",
          "reason",
          "profile"
        ],
        "type": "object"
      },
      "Playback": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/Playback.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "captions": {
            "items": {
              "$ref": "#/components/schemas/Caption"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "expiresAt": {
            "type": "string"
          },
          "position": {
            "format": "double",
            "type": "number"
          },
          "url": {
            "type": "string"
          },
          "video": {
            "$ref": "#/components/schemas/Video"
          },
          "watchedSeconds": {
            "format": "double",
            "type": "number"
          }
        },
        "required": [
          "video",
          "position",
          "watchedSeconds"
        ],
        "type": "object"
      },
      "Policy": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/Policy.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "allowCompanyKeys": {
            "type": "boolean"
          },
          "dailyLimit": {
            "format": "int64",
            "maximum": 1000,
            "minimum": 1,
            "type": "integer"
          },
          "enabled": {
            "type": "boolean"
          },
          "providers": {
            "items": {
              "type": "string"
            },
            "maxItems": 4,
            "minItems": 1,
            "type": [
              "array",
              "null"
            ]
          },
          "revision": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "revision",
          "enabled",
          "allowCompanyKeys",
          "providers",
          "dailyLimit"
        ],
        "type": "object"
      },
      "Preference": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/Preference.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "analytics": {
            "type": "boolean"
          },
          "marketing": {
            "type": "boolean"
          }
        },
        "required": [
          "analytics",
          "marketing"
        ],
        "type": "object"
      },
      "ProfileDetails": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/ProfileDetails.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "address": {
            "maxLength": 1000,
            "type": "string"
          },
          "email": {
            "maxLength": 254,
            "type": "string"
          },
          "name": {
            "maxLength": 160,
            "minLength": 1,
            "type": "string"
          },
          "phone": {
            "maxLength": 60,
            "type": "string"
          }
        },
        "required": [
          "name",
          "email",
          "phone",
          "address"
        ],
        "type": "object"
      },
      "ProfileOutputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/ProfileOutputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "address": {
            "description": "Postal address",
            "type": "string"
          },
          "email": {
            "description": "Contact email",
            "type": "string"
          },
          "name": {
            "description": "Display name",
            "type": "string"
          },
          "phone": {
            "description": "Telephone number",
            "type": "string"
          }
        },
        "required": [
          "name",
          "email",
          "phone",
          "address"
        ],
        "type": "object"
      },
      "Proposal": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/Proposal.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "course": {
            "$ref": "#/components/schemas/Course"
          },
          "model": {
            "type": "string"
          },
          "requestId": {
            "type": "string"
          },
          "sources": {
            "items": {
              "$ref": "#/components/schemas/SourceRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "course",
          "model",
          "requestId"
        ],
        "type": "object"
      },
      "ProviderInfo": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "output": {
            "type": "string"
          },
          "privacy": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "output",
          "privacy"
        ],
        "type": "object"
      },
      "Question": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/Question.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "configuration": {
            "maxLength": 300,
            "type": "string"
          },
          "consent": {
            "type": "boolean"
          },
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "question": {
            "maxLength": 1000,
            "minLength": 10,
            "type": "string"
          },
          "sources": {
            "items": {
              "$ref": "#/components/schemas/SourceRef"
            },
            "maxItems": 3,
            "minItems": 1,
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "question",
          "sources",
          "consent"
        ],
        "type": "object"
      },
      "ReadyOutputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/ReadyOutputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "status": {
            "description": "Process may receive traffic",
            "enum": [
              "ready"
            ],
            "type": "string"
          }
        },
        "required": [
          "status"
        ],
        "type": "object"
      },
      "Receipt": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "occurredAt": {
            "type": "string"
          },
          "page": {
            "type": "string"
          },
          "provider": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          },
          "state": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "page",
          "occurredAt",
          "provider",
          "state",
          "reason"
        ],
        "type": "object"
      },
      "ReportCreateInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/ReportCreateInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "requestId": {
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "requestId"
        ],
        "type": "object"
      },
      "ReportHistoryItem": {
        "additionalProperties": false,
        "properties": {
          "createdAt": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "state": {
            "enum": [
              "queued",
              "ready",
              "failed"
            ],
            "type": "string"
          }
        },
        "required": [
          "id",
          "state",
          "createdAt"
        ],
        "type": "object"
      },
      "ReportStatus": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/ReportStatus.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "state": {
            "enum": [
              "queued",
              "ready",
              "failed"
            ],
            "type": "string"
          }
        },
        "required": [
          "id",
          "state"
        ],
        "type": "object"
      },
      "Request": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/Request.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "audience": {
            "maxLength": 200,
            "minLength": 2,
            "type": "string"
          },
          "brief": {
            "maxLength": 4000,
            "minLength": 20,
            "type": "string"
          },
          "configuration": {
            "maxLength": 300,
            "type": "string"
          },
          "consent": {
            "type": "boolean"
          },
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "sources": {
            "items": {
              "$ref": "#/components/schemas/SourceRef"
            },
            "maxItems": 3,
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "brief",
          "audience"
        ],
        "type": "object"
      },
      "Resource": {
        "additionalProperties": false,
        "properties": {
          "body": {
            "maxLength": 30000,
            "type": "string"
          },
          "bookmarked": {
            "type": "boolean"
          },
          "category": {
            "maxLength": 60,
            "type": "string"
          },
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "kind": {
            "enum": [
              "guide",
              "checklist",
              "template",
              "policy"
            ],
            "type": "string"
          },
          "revision": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "summary": {
            "maxLength": 600,
            "type": "string"
          },
          "title": {
            "maxLength": 160,
            "type": "string"
          }
        },
        "required": [
          "id",
          "title",
          "summary",
          "category",
          "kind",
          "body",
          "revision",
          "bookmarked"
        ],
        "type": "object"
      },
      "Routing": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/Routing.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "answer": {
            "type": "string"
          },
          "course": {
            "type": "string"
          },
          "dailyLimit": {
            "format": "int64",
            "maximum": 1000,
            "minimum": 1,
            "type": "integer"
          },
          "revision": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "revision",
          "course",
          "answer",
          "dailyLimit"
        ],
        "type": "object"
      },
      "SSOAction": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/SSOAction.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "action": {
            "enum": [
              "check",
              "publish",
              "disable"
            ],
            "type": "string"
          },
          "revision": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "revision",
          "action"
        ],
        "type": "object"
      },
      "SSOChange": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/SSOChange.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "config": {
            "$ref": "#/components/schemas/SSOConfig"
          },
          "domains": {
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "type": [
              "array",
              "null"
            ]
          },
          "revision": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "revision",
          "config"
        ],
        "type": "object"
      },
      "SSOChoice": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "protocol": {
            "type": "string"
          },
          "signInUrl": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "protocol",
          "signInUrl"
        ],
        "type": "object"
      },
      "SSOChoices": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/SSOChoices.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "company": {
            "type": "string"
          },
          "connections": {
            "items": {
              "$ref": "#/components/schemas/SSOChoice"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "company",
          "connections"
        ],
        "type": "object"
      },
      "SSOConfig": {
        "additionalProperties": false,
        "properties": {
          "certificate": {
            "maxLength": 12000,
            "type": "string"
          },
          "clientId": {
            "maxLength": 254,
            "type": "string"
          },
          "clientSecret": {
            "maxLength": 4096,
            "type": "string"
          },
          "issuer": {
            "maxLength": 2048,
            "type": "string"
          },
          "jwksUrl": {
            "maxLength": 2048,
            "type": "string"
          },
          "name": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string"
          },
          "protocol": {
            "enum": [
              "saml",
              "oidc"
            ],
            "type": "string"
          },
          "ssoUrl": {
            "maxLength": 2048,
            "type": "string"
          },
          "tokenUrl": {
            "maxLength": 2048,
            "type": "string"
          }
        },
        "required": [
          "protocol",
          "name",
          "issuer",
          "ssoUrl",
          "tokenUrl",
          "jwksUrl",
          "certificate",
          "clientId"
        ],
        "type": "object"
      },
      "SSOConnections": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/SSOConnections.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "canManage": {
            "type": "boolean"
          },
          "connections": {
            "items": {
              "$ref": "#/components/schemas/SSOSummary"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "limit": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "connections",
          "canManage",
          "limit"
        ],
        "type": "object"
      },
      "SSOSummary": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "lastSignIn": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "protocol": {
            "type": "string"
          },
          "revision": {
            "format": "int64",
            "type": "integer"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "protocol",
          "status",
          "revision",
          "lastSignIn"
        ],
        "type": "object"
      },
      "SSOView": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/SSOView.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "callbackUrl": {
            "type": "string"
          },
          "canManage": {
            "type": "boolean"
          },
          "checkedRevision": {
            "format": "int64",
            "type": "integer"
          },
          "config": {
            "$ref": "#/components/schemas/SSOConfig"
          },
          "domains": {
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "type": [
              "array",
              "null"
            ]
          },
          "entityId": {
            "type": "string"
          },
          "hasSecret": {
            "type": "boolean"
          },
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "lastSignIn": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "publishedRevision": {
            "format": "int64",
            "type": "integer"
          },
          "revision": {
            "format": "int64",
            "type": "integer"
          },
          "signInUrl": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "publishedRevision",
          "id",
          "domains",
          "canManage",
          "config",
          "hasSecret",
          "revision",
          "checkedRevision",
          "status",
          "message",
          "callbackUrl",
          "entityId",
          "signInUrl",
          "lastSignIn"
        ],
        "type": "object"
      },
      "SessionOutputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/SessionOutputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "organisation_id": {
            "description": "Organisation bound to this session",
            "type": "string"
          },
          "user_id": {
            "description": "Local user bound to this session",
            "type": "string"
          }
        },
        "required": [
          "organisation_id",
          "user_id"
        ],
        "type": "object"
      },
      "Settings": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/Settings.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "destinations": {
            "items": {
              "$ref": "#/components/schemas/Destination"
            },
            "maxItems": 4,
            "type": [
              "array",
              "null"
            ]
          },
          "revision": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "revision",
          "destinations"
        ],
        "type": "object"
      },
      "SourceRef": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "revision": {
            "format": "int64",
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "id",
          "revision"
        ],
        "type": "object"
      },
      "State": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/State.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "accent": {
            "type": "string"
          },
          "canAdmin": {
            "type": "boolean"
          },
          "courses": {
            "items": {
              "$ref": "#/components/schemas/Course"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "drafts": {
            "items": {
              "$ref": "#/components/schemas/Course"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "enrolments": {
            "items": {
              "$ref": "#/components/schemas/Enrolment"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "limited": {
            "type": "boolean"
          },
          "logo": {
            "type": "string"
          },
          "organisation": {
            "type": "string"
          },
          "people": {
            "items": {
              "$ref": "#/components/schemas/Person"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "resources": {
            "items": {
              "$ref": "#/components/schemas/Resource"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "roles": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "savedCourseIds": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "supportEmail": {
            "type": "string"
          },
          "supportUrl": {
            "type": "string"
          },
          "timezone": {
            "type": "string"
          },
          "user": {
            "$ref": "#/components/schemas/Person"
          }
        },
        "required": [
          "resources",
          "savedCourseIds",
          "canAdmin",
          "logo",
          "accent",
          "supportEmail",
          "supportUrl",
          "timezone",
          "drafts",
          "limited",
          "organisation",
          "user",
          "roles",
          "courses",
          "people",
          "enrolments"
        ],
        "type": "object"
      },
      "Status": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/Status.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "answerConfiguration": {
            "type": "string"
          },
          "answerModel": {
            "type": "string"
          },
          "answerProvider": {
            "type": "string"
          },
          "courseConfiguration": {
            "type": "string"
          },
          "courseEnabled": {
            "type": "boolean"
          },
          "courseProvider": {
            "type": "string"
          },
          "dailyLimit": {
            "format": "int64",
            "type": "integer"
          },
          "enabled": {
            "type": "boolean"
          },
          "model": {
            "type": "string"
          },
          "resourcesEnabled": {
            "type": "boolean"
          }
        },
        "required": [
          "courseProvider",
          "answerProvider",
          "answerModel",
          "courseConfiguration",
          "answerConfiguration",
          "courseEnabled",
          "resourcesEnabled",
          "enabled",
          "model",
          "dailyLimit"
        ],
        "type": "object"
      },
      "Support-startResponse": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/Support-startResponse.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "Support-stopResponse": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/Support-stopResponse.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "SupportPeople": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/SupportPeople.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/SupportPerson"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "more": {
            "type": "boolean"
          }
        },
        "required": [
          "items",
          "more"
        ],
        "type": "object"
      },
      "SupportPerson": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "roles": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "suspended": {
            "type": "boolean"
          }
        },
        "required": [
          "suspended",
          "id",
          "name",
          "roles"
        ],
        "type": "object"
      },
      "SupportStart": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/SupportStart.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "confirm": {
            "type": "boolean"
          },
          "mode": {
            "enum": [
              "view",
              "act"
            ],
            "type": "string"
          },
          "organisationId": {
            "format": "uuid",
            "type": "string"
          },
          "reason": {
            "maxLength": 500,
            "minLength": 10,
            "type": "string"
          },
          "userId": {
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "organisationId",
          "userId",
          "reason"
        ],
        "type": "object"
      },
      "SupportState": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/SupportState.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "actEnabled": {
            "type": "boolean"
          },
          "active": {
            "type": "boolean"
          },
          "company": {
            "type": "string"
          },
          "expiresAt": {
            "type": "string"
          },
          "mode": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "present": {
            "type": "boolean"
          },
          "reason": {
            "type": "string"
          }
        },
        "required": [
          "mode",
          "actEnabled",
          "present",
          "active",
          "name",
          "company",
          "expiresAt",
          "reason"
        ],
        "type": "object"
      },
      "SwitchInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/SwitchInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "organisation_id": {
            "description": "Organisation to enter",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "organisation_id"
        ],
        "type": "object"
      },
      "Unit": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "type": "object"
      },
      "Usage": {
        "additionalProperties": false,
        "properties": {
          "attempts": {
            "format": "int64",
            "type": "integer"
          },
          "failed": {
            "format": "int64",
            "type": "integer"
          },
          "inputTokens": {
            "format": "int64",
            "type": "integer"
          },
          "kind": {
            "type": "string"
          },
          "measured": {
            "format": "int64",
            "type": "integer"
          },
          "model": {
            "type": "string"
          },
          "outputTokens": {
            "format": "int64",
            "type": "integer"
          },
          "pending": {
            "format": "int64",
            "type": "integer"
          },
          "provider": {
            "type": "string"
          },
          "succeeded": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "provider",
          "model",
          "kind",
          "attempts",
          "succeeded",
          "failed",
          "pending",
          "inputTokens",
          "outputTokens",
          "measured"
        ],
        "type": "object"
      },
      "Video": {
        "additionalProperties": false,
        "properties": {
          "captionsReviewed": {
            "type": "boolean"
          },
          "hash": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "maxLength": 32,
            "type": "string"
          },
          "provider": {
            "enum": [
              "youtube",
              "vimeo",
              "vimeo_api"
            ],
            "type": "string"
          }
        },
        "required": [
          "provider",
          "id",
          "captionsReviewed"
        ],
        "type": "object"
      },
      "View": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/View.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "canManage": {
            "type": "boolean"
          },
          "capabilities": {
            "items": {
              "$ref": "#/components/schemas/Capability"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "events": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "organisationId": {
            "type": "string"
          },
          "preferences": {
            "$ref": "#/components/schemas/Preference"
          },
          "settings": {
            "$ref": "#/components/schemas/Settings"
          },
          "vimeoApi": {
            "type": "boolean"
          }
        },
        "required": [
          "organisationId",
          "preferences",
          "settings",
          "capabilities",
          "canManage",
          "vimeoApi",
          "events"
        ],
        "type": "object"
      }
    },
    "securitySchemes": {
      "browserSession": {
        "description": "Secure HTTP-only browser session issued by /auth/login and its callback. Not an API key for third-party services. Company and role checks apply.",
        "in": "cookie",
        "name": "__Host-session",
        "type": "apiKey"
      },
      "companyBearer": {
        "description": "Company service-account token; scoped partner routes only. Never use a browser session cookie in an external integration.",
        "scheme": "bearer",
        "type": "http"
      },
      "csrfCookie": {
        "description": "CSRF cookie issued with the session. Required alongside the session and CSRF header for protected writes.",
        "in": "cookie",
        "name": "__Host-csrf",
        "type": "apiKey"
      },
      "csrfHeader": {
        "description": "Same-origin app copies the __Host-csrf cookie into this header. The server validates it against the stored session secret and requires a matching Origin.",
        "in": "header",
        "name": "X-CSRF-Token",
        "type": "apiKey"
      }
    }
  },
  "info": {
    "title": "ZubLMS API",
    "version": "0.0.0-dev"
  },
  "openapi": "3.1.0",
  "paths": {
    "/api/v1/activity/config": {
      "get": {
        "description": " Anonymous access uses an installation-selected organisation and a secure visitor cookie. Anonymous writes require exact same-origin Origin; authenticated writes require session CSRF verification.",
        "operationId": "activity-config",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-activity",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "User-Agent",
            "schema": {
              "maxLength": 512,
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-Activity-Path",
            "schema": {
              "maxLength": 256,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/View"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          },
          {}
        ],
        "summary": "Current event destinations and privacy choices",
        "tags": [
          "Activity \u0026 video"
        ]
      }
    },
    "/api/v1/activity/events": {
      "post": {
        "description": "Browser-observed engagement is not an authoritative completion or assessment. Optional forwarding requires consent at capture and dispatch. Events have stable IDs; changed replay payloads conflict. No free-form properties, URLs, search text or profile data are accepted. Anonymous access uses an installation-selected organisation and a secure visitor cookie. Anonymous writes require exact same-origin Origin; authenticated writes require session CSRF verification.",
        "operationId": "activity-capture",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-activity",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "User-Agent",
            "schema": {
              "maxLength": 512,
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-Activity-Path",
            "schema": {
              "maxLength": 256,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Event"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          },
          {}
        ],
        "summary": "Record an allowlisted activity or video engagement event",
        "tags": [
          "Activity \u0026 video"
        ]
      }
    },
    "/api/v1/activity/history": {
      "get": {
        "operationId": "activity-history",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-activity",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "User-Agent",
            "schema": {
              "maxLength": 512,
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-Activity-Path",
            "schema": {
              "maxLength": 256,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Receipt"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Recent company activity and provider submission status",
        "tags": [
          "Activity \u0026 video"
        ]
      }
    },
    "/api/v1/activity/preferences": {
      "put": {
        "description": " Anonymous access uses an installation-selected organisation and a secure visitor cookie. Anonymous writes require exact same-origin Origin; authenticated writes require session CSRF verification.",
        "operationId": "activity-preferences",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-activity",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "User-Agent",
            "schema": {
              "maxLength": 512,
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-Activity-Path",
            "schema": {
              "maxLength": 256,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Preference"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Preference"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Domain": {
                "schema": {
                  "type": "string"
                }
              },
              "Expires": {
                "schema": {
                  "type": "string"
                }
              },
              "HttpOnly": {
                "schema": {
                  "type": "boolean"
                }
              },
              "MaxAge": {
                "schema": {
                  "format": "int64",
                  "type": "integer"
                }
              },
              "Name": {
                "schema": {
                  "type": "string"
                }
              },
              "Partitioned": {
                "schema": {
                  "type": "boolean"
                }
              },
              "Path": {
                "schema": {
                  "type": "string"
                }
              },
              "Quoted": {
                "schema": {
                  "type": "boolean"
                }
              },
              "Raw": {
                "schema": {
                  "type": "string"
                }
              },
              "RawExpires": {
                "schema": {
                  "type": "string"
                }
              },
              "SameSite": {
                "schema": {
                  "format": "int64",
                  "type": "integer"
                }
              },
              "Secure": {
                "schema": {
                  "type": "boolean"
                }
              },
              "Set-Cookie": {
                "schema": {
                  "type": "string"
                }
              },
              "Unparsed": {
                "schema": {
                  "type": "string"
                }
              },
              "Value": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          },
          {}
        ],
        "summary": "Choose optional analytics and marketing event sharing",
        "tags": [
          "Activity \u0026 video"
        ]
      }
    },
    "/api/v1/activity/settings": {
      "put": {
        "operationId": "activity-settings",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-activity",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "User-Agent",
            "schema": {
              "maxLength": 512,
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-Activity-Path",
            "schema": {
              "maxLength": 256,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Settings"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Choose company destinations and allowed event types",
        "tags": [
          "Activity \u0026 video"
        ]
      }
    },
    "/api/v1/activity/video/{enrolment}/{activity}": {
      "get": {
        "operationId": "video-playback",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-activity",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "User-Agent",
            "schema": {
              "maxLength": 512,
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-Activity-Path",
            "schema": {
              "maxLength": 256,
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "enrolment",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "activity",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Playback"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Resolve authorised video playback and last observed position",
        "tags": [
          "Activity \u0026 video"
        ]
      }
    },
    "/api/v1/ai/course-proposals": {
      "post": {
        "operationId": "ai-course-proposal",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Request"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Proposal"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Generate an unsaved course proposal for review; never publishes; requests count against a company daily limit",
        "tags": [
          "AI assistance"
        ]
      }
    },
    "/api/v1/ai/drafting": {
      "get": {
        "operationId": "ai-drafting-status",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Check optional AI drafting and resource assistance availability for the current author",
        "tags": [
          "AI assistance"
        ]
      }
    },
    "/api/v1/ai/resource-answers": {
      "post": {
        "operationId": "ai-resource-answer",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Question"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Answer from explicitly selected current resources with verified quotations; author pilot",
        "tags": [
          "AI assistance"
        ]
      }
    },
    "/api/v1/ai/sources/verify": {
      "post": {
        "operationId": "ai-verify-sources",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Ai-verify-sourcesRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Recheck source access and revisions before using a proposal; no model call",
        "tags": [
          "AI assistance"
        ]
      }
    },
    "/api/v1/clients": {
      "get": {
        "operationId": "clients-list",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "after",
            "schema": {
              "maxLength": 36,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Clients"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": []
          }
        ],
        "summary": "List 25 clients for a platform operator",
        "tags": [
          "Company addresses"
        ]
      }
    },
    "/api/v1/clients/access": {
      "get": {
        "operationId": "client-operator-access",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Client-operator-accessResponse"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": []
          }
        ],
        "summary": "Check explicit platform operator access",
        "tags": [
          "Company addresses"
        ]
      }
    },
    "/api/v1/clients/directory": {
      "get": {
        "operationId": "platform-company-directory",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "after",
            "schema": {
              "maxLength": 36,
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "search",
            "schema": {
              "maxLength": 160,
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "kind",
            "schema": {
              "default": "active",
              "enum": [
                "active",
                "all",
                "company",
                "showcase",
                "test"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyDirectory"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": []
          }
        ],
        "summary": "Search the platform company directory with classification filters and cursor pagination",
        "tags": [
          "Platform console"
        ]
      }
    },
    "/api/v1/clients/{client}": {
      "get": {
        "operationId": "platform-company-detail",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "client",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformCompany"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": []
          }
        ],
        "summary": "Read a company profile, usage counts, workspace policy and recent audit history as an explicit operator",
        "tags": [
          "Platform console"
        ]
      },
      "put": {
        "operationId": "platform-company-save",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "client",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlatformCompanyChange"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformCompany"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Update company profile and directory classification with revision checking and operator audit",
        "tags": [
          "Platform console"
        ]
      }
    },
    "/api/v1/clients/{client}/address-policy": {
      "put": {
        "operationId": "client-address-policy",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "client",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ClientPolicy"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Addresses"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Allow or freeze company slug and custom-domain self-service independently",
        "tags": [
          "Company addresses"
        ]
      }
    },
    "/api/v1/clients/{client}/ai-policy": {
      "get": {
        "operationId": "ai-governance",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "client",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Policy"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": []
          }
        ],
        "summary": "Platform operator: read organisation AI policy",
        "tags": [
          "AI governance"
        ]
      },
      "put": {
        "operationId": "ai-governance-save",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "client",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Policy"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Platform operator: allow providers, company keys and a maximum daily cap",
        "tags": [
          "AI governance"
        ]
      }
    },
    "/api/v1/clients/{client}/people": {
      "get": {
        "operationId": "support-people",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "client",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "search",
            "schema": {
              "maxLength": 160,
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "offset",
            "schema": {
              "format": "int64",
              "maximum": 1000000,
              "minimum": 0,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SupportPeople"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": []
          }
        ],
        "summary": "Platform operator: find company members for profile management and support",
        "tags": [
          "Platform support"
        ]
      }
    },
    "/api/v1/clients/{client}/people/{person}": {
      "get": {
        "operationId": "platform-person-profile",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "client",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "person",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "offset",
            "schema": {
              "format": "int64",
              "maximum": 1000000,
              "minimum": 0,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformPerson"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": []
          }
        ],
        "summary": "Operator: read a company member profile, identity providers and paginated learning history",
        "tags": [
          "Platform support"
        ]
      },
      "put": {
        "operationId": "platform-person-save",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "client",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "person",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlatformPersonChange"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Operator: update contact profile with recent authentication, reason and expected revision; sign-in identity unchanged",
        "tags": [
          "Platform support"
        ]
      }
    },
    "/api/v1/collections": {
      "get": {
        "operationId": "learning-collections",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlanCollectionsView"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Browse authorised collections",
        "tags": [
          "Learning plans"
        ]
      },
      "post": {
        "operationId": "learning-savecollection",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlanCollection"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlanCollection"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Save a collection revision",
        "tags": [
          "Learning plans"
        ]
      }
    },
    "/api/v1/collections/follow": {
      "post": {
        "operationId": "learning-followcollection",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlanFollow"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OutputFollowCollectionBody"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Follow or unfollow a collection without enrolment",
        "tags": [
          "Learning plans"
        ]
      }
    },
    "/api/v1/company": {
      "get": {
        "operationId": "company-read",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Company"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": []
          }
        ],
        "summary": "Read company settings",
        "tags": [
          "Company administration"
        ]
      },
      "put": {
        "operationId": "company-update",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Company"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Company"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Update company settings",
        "tags": [
          "Company administration"
        ]
      }
    },
    "/api/v1/company/access": {
      "post": {
        "operationId": "company-access",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AccessChange"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Change member access as an organisation owner",
        "tags": [
          "Company administration"
        ]
      }
    },
    "/api/v1/company/addresses": {
      "get": {
        "operationId": "company-addresses",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Addresses"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": []
          }
        ],
        "summary": "Read company slug, domain verification and self-service policy",
        "tags": [
          "Company addresses"
        ]
      },
      "post": {
        "operationId": "company-address-change",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddressChange"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Addresses"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Change a slug or manage a DNS ownership claim; does not provision HTTPS",
        "tags": [
          "Company addresses"
        ]
      }
    },
    "/api/v1/company/ai": {
      "get": {
        "operationId": "ai-management",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ManagementView"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": []
          }
        ],
        "summary": "Read redacted AI connections, policy, routing and today’s usage",
        "tags": [
          "AI governance"
        ]
      }
    },
    "/api/v1/company/ai/connections": {
      "put": {
        "operationId": "ai-connection-save",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConnectionChange"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Create or rotate an encrypted connection; invalidates test and activation",
        "tags": [
          "AI governance"
        ]
      }
    },
    "/api/v1/company/ai/connections/actions": {
      "post": {
        "operationId": "ai-connection-action",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConnectionAction"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Test with synthetic content, activate, disable or remove credentials; recent sign-in required",
        "tags": [
          "AI governance"
        ]
      }
    },
    "/api/v1/company/ai/routing": {
      "put": {
        "operationId": "ai-routing-save",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Routing"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Choose one explicit connection per feature and a company daily cap; no fallback",
        "tags": [
          "AI governance"
        ]
      }
    },
    "/api/v1/company/audit": {
      "get": {
        "operationId": "company-audit",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Audit"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": []
          }
        ],
        "summary": "Read the latest 100 company administration events",
        "tags": [
          "Company administration"
        ]
      }
    },
    "/api/v1/company/integrations": {
      "get": {
        "operationId": "company-integrations",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IntegrationView"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": []
          }
        ],
        "summary": "Read service accounts, token metadata and recent webhook deliveries",
        "tags": [
          "Company integrations"
        ]
      }
    },
    "/api/v1/company/integrations/actions": {
      "post": {
        "operationId": "company-integration-change",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IntegrationChange"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IntegrationResult"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Manage company tokens and webhooks; recent authentication required; secrets shown once",
        "tags": [
          "Company integrations"
        ]
      }
    },
    "/api/v1/company/people": {
      "get": {
        "operationId": "company-people",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "after",
            "schema": {
              "maxLength": 36,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/People"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": []
          }
        ],
        "summary": "Read company members and role scopes",
        "tags": [
          "Company administration"
        ]
      }
    },
    "/api/v1/company/sso": {
      "get": {
        "operationId": "company-sso-read",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SSOView"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": []
          }
        ],
        "summary": "Read redacted SSO setup",
        "tags": [
          "Company administration"
        ]
      },
      "put": {
        "operationId": "company-sso-save",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SSOChange"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SSOView"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Save an encrypted SSO draft",
        "tags": [
          "Company administration"
        ]
      }
    },
    "/api/v1/company/sso/actions": {
      "post": {
        "operationId": "company-sso-action",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SSOAction"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SSOView"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Validate or submit SSO for operator review",
        "tags": [
          "Company administration"
        ]
      }
    },
    "/api/v1/company/sso/connections": {
      "get": {
        "operationId": "company-sso-connections",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SSOConnections"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": []
          }
        ],
        "summary": "List company SSO connections without secrets",
        "tags": [
          "Company administration"
        ]
      }
    },
    "/api/v1/company/sso/connections/{connection}": {
      "get": {
        "operationId": "company-sso-connection",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connection",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SSOView"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": []
          }
        ],
        "summary": "Read one connection or prepare an unused UUID draft",
        "tags": [
          "Company administration"
        ]
      },
      "put": {
        "operationId": "company-sso-connection-save",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connection",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SSOChange"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SSOView"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Save one encrypted SSO connection and exact domain routes",
        "tags": [
          "Company administration"
        ]
      }
    },
    "/api/v1/company/sso/connections/{connection}/actions": {
      "post": {
        "operationId": "company-sso-connection-action",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connection",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SSOAction"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SSOView"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Validate, request activation or block one SSO connection",
        "tags": [
          "Company administration"
        ]
      }
    },
    "/api/v1/enrolments/{id}/certificate": {
      "get": {
        "operationId": "certificate-download",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "format",
            "schema": {
              "default": "pdf",
              "enum": [
                "pdf",
                "html"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": []
          }
        ],
        "summary": "Download current authorised completion evidence",
        "tags": [
          "Evidence"
        ]
      }
    },
    "/api/v1/learning-groups": {
      "get": {
        "operationId": "directory-groups",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "search",
            "schema": {
              "maxLength": 160,
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "status",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "offset",
            "schema": {
              "format": "int64",
              "maximum": 1000000,
              "minimum": 0,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DirGroups"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Browse learning groups",
        "tags": [
          "People and groups"
        ]
      },
      "post": {
        "operationId": "directory-savegroup",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DirGroup"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DirGroup"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Save a manual learning group revision",
        "tags": [
          "People and groups"
        ]
      }
    },
    "/api/v1/messages": {
      "get": {
        "operationId": "messages-list",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "folder",
            "schema": {
              "default": "inbox",
              "enum": [
                "inbox",
                "sent",
                "drafts"
              ],
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "after",
            "schema": {
              "maxLength": 300,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": []
          }
        ],
        "summary": "Read your inbox, sent messages or drafts",
        "tags": [
          "Messaging"
        ]
      },
      "put": {
        "operationId": "messages-save",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Draft"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Message"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Save your draft with a revision check",
        "tags": [
          "Messaging"
        ]
      }
    },
    "/api/v1/messages/preferences": {
      "put": {
        "operationId": "messages-preferences",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MessagePreferenceInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Choose whether to receive optional message email alerts",
        "tags": [
          "Messaging"
        ]
      }
    },
    "/api/v1/messages/{id}": {
      "get": {
        "operationId": "messages-read",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Message"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": []
          }
        ],
        "summary": "Read a message you sent or received",
        "tags": [
          "Messaging"
        ]
      }
    },
    "/api/v1/messages/{id}/read": {
      "post": {
        "operationId": "messages-mark-read",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Mark your own in-app message as read",
        "tags": [
          "Messaging"
        ]
      }
    },
    "/api/v1/messages/{id}/send": {
      "post": {
        "description": "In-app receipt and optional email jobs commit atomically. Repeat the same message ID and revision after an ambiguous response. Optional email is a private-link alert, requires recipient opt-in and provider configuration, and SMTP acceptance is not delivery confirmation.",
        "operationId": "messages-send",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MessageSendInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Send the reviewed draft to its selected audience",
        "tags": [
          "Messaging"
        ]
      }
    },
    "/api/v1/packages": {
      "get": {
        "operationId": "packages-list",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Package"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                }
              }
            },
            "description": "OK",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "List up to 200 package versions for authors",
        "tags": [
          "Learning packages"
        ]
      },
      "post": {
        "operationId": "packages-import",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-Request-ID",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "family",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-Package-Name",
            "schema": {
              "maxLength": 180,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/octet-stream": {
              "schema": {
                "contentMediaType": "application/octet-stream",
                "format": "binary",
                "type": "string"
              }
            },
            "application/zip": {
              "schema": {
                "contentMediaType": "application/octet-stream",
                "format": "binary",
                "type": "string"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Package"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Validate and scan a SCORM 1.2 ZIP; body is application/zip, maximum 50 MiB",
        "tags": [
          "Learning packages"
        ]
      }
    },
    "/api/v1/packages/launch": {
      "post": {
        "operationId": "packages-launch",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LaunchRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Launch"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Open an isolated author preview or a pinned learner activity; restart preserves prior attempt history",
        "tags": [
          "Learning packages"
        ]
      }
    },
    "/api/v1/packages/{id}/approve": {
      "post": {
        "operationId": "packages-approve",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Make a reviewed and scanned immutable version available to course authors",
        "tags": [
          "Learning packages"
        ]
      }
    },
    "/api/v1/packages/{id}/original": {
      "get": {
        "operationId": "packages-original",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Download the original ZIP as an authorised author",
        "tags": [
          "Learning packages"
        ]
      }
    },
    "/api/v1/partner/enrolments": {
      "post": {
        "operationId": "partner-assign",
        "parameters": [
          {
            "in": "header",
            "name": "Authorization",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IntegrationAssignment"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "OK",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "companyBearer": []
          }
        ],
        "summary": "Assign a published course version; scoped token and stable request UUID required",
        "tags": [
          "Company integrations"
        ]
      }
    },
    "/api/v1/partner/{resource}": {
      "get": {
        "operationId": "partner-data",
        "parameters": [
          {
            "in": "header",
            "name": "Authorization",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "resource",
            "required": true,
            "schema": {
              "enum": [
                "people",
                "teams",
                "groups",
                "courses",
                "course-versions",
                "collections",
                "pathways",
                "pathway-assignments",
                "enrolments",
                "completions",
                "certificates",
                "resources"
              ],
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "cursor",
            "schema": {
              "maxLength": 1000,
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "id",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "limit",
            "schema": {
              "format": "int64",
              "maximum": 100,
              "minimum": 0,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IntegrationPage"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "companyBearer": []
          }
        ],
        "summary": "Read a scoped company dataset with a signed cursor (up to 100 records)",
        "tags": [
          "Company integrations"
        ]
      }
    },
    "/api/v1/pathways": {
      "get": {
        "operationId": "learning-pathways",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlanPathwaysView"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Browse programme drafts or published pathways",
        "tags": [
          "Learning plans"
        ]
      },
      "post": {
        "operationId": "learning-savepathway",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlanPathway"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlanPathway"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Save a pathway draft revision",
        "tags": [
          "Learning plans"
        ]
      }
    },
    "/api/v1/pathways/assignments": {
      "get": {
        "operationId": "learning-pathwayassignments",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlanAssignmentsView"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Read owned or manager-scoped pathway progress",
        "tags": [
          "Learning plans"
        ]
      },
      "post": {
        "operationId": "learning-assignpathway",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlanAssign"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OutputAssignPathwayBody"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Assign a published pathway version",
        "tags": [
          "Learning plans"
        ]
      }
    },
    "/api/v1/pathways/cancel": {
      "post": {
        "operationId": "learning-cancelpathway",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlanID"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OutputCancelPathwayBody"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Cancel a pathway assignment while retaining course history",
        "tags": [
          "Learning plans"
        ]
      }
    },
    "/api/v1/pathways/launch": {
      "post": {
        "operationId": "learning-launchpathway",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlanLaunch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlanLaunchResult"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Launch an available pathway course",
        "tags": [
          "Learning plans"
        ]
      }
    },
    "/api/v1/pathways/publish": {
      "post": {
        "operationId": "learning-publishpathway",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlanPublish"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlanPathway"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Publish an immutable pathway version",
        "tags": [
          "Learning plans"
        ]
      }
    },
    "/api/v1/people": {
      "get": {
        "operationId": "directory-people",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "search",
            "schema": {
              "maxLength": 160,
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "unit",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "group",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "role",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "status",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "sort",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "direction",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "offset",
            "schema": {
              "format": "int64",
              "maximum": 1000000,
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "limit",
            "schema": {
              "format": "int64",
              "maximum": 100,
              "minimum": 0,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DirPeople"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Search the authorised people directory",
        "tags": [
          "People and groups"
        ]
      }
    },
    "/api/v1/people/actions": {
      "post": {
        "operationId": "directory-bulk",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DirBulk"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DirResults"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Apply a reviewed action to at most 100 explicit people, with retry receipts",
        "tags": [
          "People and groups"
        ]
      }
    },
    "/api/v1/people/options": {
      "get": {
        "operationId": "directory-options",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "kind",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "search",
            "schema": {
              "maxLength": 160,
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "offset",
            "schema": {
              "format": "int64",
              "maximum": 1000000,
              "minimum": 0,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DirOptions"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Find available people action targets",
        "tags": [
          "People and groups"
        ]
      }
    },
    "/api/v1/reports": {
      "get": {
        "operationId": "report-history",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ReportHistoryItem"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                }
              }
            },
            "description": "OK",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": []
          }
        ],
        "summary": "Read own recent report requests",
        "tags": [
          "Reports"
        ]
      }
    },
    "/api/v1/reports/enrolments": {
      "post": {
        "operationId": "report-request",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReportCreateInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportStatus"
                }
              }
            },
            "description": "Accepted"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Queue a scoped enrolment CSV",
        "tags": [
          "Reports"
        ]
      }
    },
    "/api/v1/reports/{id}": {
      "get": {
        "operationId": "report-status",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportStatus"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": []
          }
        ],
        "summary": "Read own report request status",
        "tags": [
          "Reports"
        ]
      }
    },
    "/api/v1/reports/{id}/download": {
      "get": {
        "operationId": "report-download",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": []
          }
        ],
        "summary": "Download a current scoped report",
        "tags": [
          "Reports"
        ]
      }
    },
    "/api/v1/support/access": {
      "get": {
        "operationId": "platform-person-access",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformPersonAccess"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": []
          }
        ],
        "summary": "Read platform profile-management capability for this session",
        "tags": [
          "Platform support"
        ]
      }
    },
    "/api/v1/support/stop": {
      "post": {
        "operationId": "support-stop",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Support-stopResponse"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "End support view and return to the administrator",
        "tags": [
          "Platform support"
        ]
      }
    },
    "/api/v1/support/view": {
      "get": {
        "operationId": "support-state",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SupportState"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": []
          }
        ],
        "summary": "Read this session's support session",
        "tags": [
          "Platform support"
        ]
      },
      "post": {
        "operationId": "support-start",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SupportStart"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Support-startResponse"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Start a 15 minute audited support session (view or explicitly enabled act mode)",
        "tags": [
          "Platform support"
        ]
      }
    },
    "/api/v1/workspace": {
      "get": {
        "operationId": "workspace-read",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/State"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": []
          }
        ],
        "summary": "Current authorised native workspace",
        "tags": [
          "Workspace"
        ]
      }
    },
    "/api/v1/workspace/commands": {
      "post": {
        "operationId": "workspace-command",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Command"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Apply an authenticated native workspace action",
        "tags": [
          "Workspace"
        ]
      }
    },
    "/auth/backchannel-logout": {
      "post": {
        "description": "OIDC back-channel logout form. Verifies the configured issuer, client audience, signature, expiry and logout event. Does not use browser cookies. Duplicate valid notifications are idempotent.",
        "operationId": "browser-backchannel-logout",
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "properties": {
                  "logout_token": {
                    "description": "Signed OIDC logout token",
                    "type": "string"
                  }
                },
                "required": [
                  "logout_token"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Matching sessions revoked or notification already applied"
          },
          "400": {
            "description": "Invalid logout token or form"
          },
          "503": {
            "description": "Revocation unavailable; provider should retry"
          }
        },
        "summary": "Receive signed provider session revocation",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/auth/callback": {
      "get": {
        "description": "Exchanges one authorisation code and sets a host-only session cookie.",
        "operationId": "browser-callback",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "code",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "state",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "303": {
            "description": "See Other",
            "headers": {
              "Domain": {
                "schema": {
                  "type": "string"
                }
              },
              "Expires": {
                "schema": {
                  "type": "string"
                }
              },
              "HttpOnly": {
                "schema": {
                  "type": "boolean"
                }
              },
              "Location": {
                "schema": {
                  "type": "string"
                }
              },
              "MaxAge": {
                "schema": {
                  "format": "int64",
                  "type": "integer"
                }
              },
              "Name": {
                "schema": {
                  "type": "string"
                }
              },
              "Partitioned": {
                "schema": {
                  "type": "boolean"
                }
              },
              "Path": {
                "schema": {
                  "type": "string"
                }
              },
              "Quoted": {
                "schema": {
                  "type": "boolean"
                }
              },
              "Raw": {
                "schema": {
                  "type": "string"
                }
              },
              "RawExpires": {
                "schema": {
                  "type": "string"
                }
              },
              "SameSite": {
                "schema": {
                  "format": "int64",
                  "type": "integer"
                }
              },
              "Secure": {
                "schema": {
                  "type": "boolean"
                }
              },
              "Set-Cookie": {
                "schema": {
                  "type": "string"
                }
              },
              "Unparsed": {
                "schema": {
                  "type": "string"
                }
              },
              "Value": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "summary": "Complete browser sign-in",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/auth/company-sso": {
      "get": {
        "operationId": "company-sso-login",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "connection",
            "schema": {
              "maxLength": 36,
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "domain",
            "schema": {
              "maxLength": 253,
              "type": "string"
            }
          }
        ],
        "responses": {
          "302": {
            "description": "Found",
            "headers": {
              "Location": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": []
          }
        ],
        "summary": "Start one explicitly selected or uniquely resolved company SSO connection",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/auth/company-sso/options": {
      "get": {
        "operationId": "company-sso-choices",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SSOChoices"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": []
          }
        ],
        "summary": "List active sign-in choices for the resolved company",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/auth/login": {
      "get": {
        "description": "Redirects to the configured identity provider. The tenant comes from the verified host.",
        "operationId": "browser-login",
        "responses": {
          "302": {
            "description": "Found",
            "headers": {
              "Location": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "summary": "Start browser sign-in",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/auth/logout": {
      "post": {
        "description": "Requires the session CSRF secret and a matching Origin.",
        "operationId": "browser-logout",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "headers": {
              "Domain": {
                "schema": {
                  "type": "string"
                }
              },
              "Expires": {
                "schema": {
                  "type": "string"
                }
              },
              "HttpOnly": {
                "schema": {
                  "type": "boolean"
                }
              },
              "MaxAge": {
                "schema": {
                  "format": "int64",
                  "type": "integer"
                }
              },
              "Name": {
                "schema": {
                  "type": "string"
                }
              },
              "Partitioned": {
                "schema": {
                  "type": "boolean"
                }
              },
              "Path": {
                "schema": {
                  "type": "string"
                }
              },
              "Quoted": {
                "schema": {
                  "type": "boolean"
                }
              },
              "Raw": {
                "schema": {
                  "type": "string"
                }
              },
              "RawExpires": {
                "schema": {
                  "type": "string"
                }
              },
              "SameSite": {
                "schema": {
                  "format": "int64",
                  "type": "integer"
                }
              },
              "Secure": {
                "schema": {
                  "type": "boolean"
                }
              },
              "Set-Cookie": {
                "schema": {
                  "type": "string"
                }
              },
              "Unparsed": {
                "schema": {
                  "type": "string"
                }
              },
              "Value": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "End the browser session",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/auth/memberships": {
      "get": {
        "description": "Lists organisations linked to the session's identity. The list comes from the session, not from a client-supplied tenant.",
        "operationId": "browser-memberships",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MembershipsOutputBody"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": []
          }
        ],
        "summary": "Organisations for this sign-in",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/auth/profile": {
      "get": {
        "description": "Decrypts the signed-in user's profile. A key outage returns nothing.",
        "operationId": "browser-profile",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileOutputBody"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": []
          }
        ],
        "summary": "Current encrypted profile",
        "tags": [
          "Authentication"
        ]
      },
      "put": {
        "description": "Updates only the signed-in member's personal details. Requires the stored CSRF secret and matching Origin. Contact email does not change the sign-in identity.",
        "operationId": "browser-profile-update",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProfileDetails"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Update your profile",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/auth/session": {
      "get": {
        "description": "Returns the bound user. A suspended user is refused.",
        "operationId": "browser-session",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SessionOutputBody"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": []
          }
        ],
        "summary": "Current browser session",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/auth/switch": {
      "post": {
        "description": "Rotates the browser session into another membership. The previous cookie stops working.",
        "operationId": "browser-switch",
        "parameters": [
          {
            "in": "cookie",
            "name": "__Host-session",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "__Host-csrf",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-CSRF-Token",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Origin",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SwitchInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content",
            "headers": {
              "Domain": {
                "schema": {
                  "type": "string"
                }
              },
              "Expires": {
                "schema": {
                  "type": "string"
                }
              },
              "HttpOnly": {
                "schema": {
                  "type": "boolean"
                }
              },
              "MaxAge": {
                "schema": {
                  "format": "int64",
                  "type": "integer"
                }
              },
              "Name": {
                "schema": {
                  "type": "string"
                }
              },
              "Partitioned": {
                "schema": {
                  "type": "boolean"
                }
              },
              "Path": {
                "schema": {
                  "type": "string"
                }
              },
              "Quoted": {
                "schema": {
                  "type": "boolean"
                }
              },
              "Raw": {
                "schema": {
                  "type": "string"
                }
              },
              "RawExpires": {
                "schema": {
                  "type": "string"
                }
              },
              "SameSite": {
                "schema": {
                  "format": "int64",
                  "type": "integer"
                }
              },
              "Secure": {
                "schema": {
                  "type": "boolean"
                }
              },
              "Set-Cookie": {
                "schema": {
                  "type": "string"
                }
              },
              "Unparsed": {
                "schema": {
                  "type": "string"
                }
              },
              "Value": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "browserSession": [],
            "csrfCookie": [],
            "csrfHeader": []
          }
        ],
        "summary": "Switch organisation",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/auth/workspaces/{slug}": {
      "get": {
        "operationId": "workspace-slug-login",
        "parameters": [
          {
            "in": "path",
            "name": "slug",
            "required": true,
            "schema": {
              "maxLength": 63,
              "type": "string"
            }
          }
        ],
        "responses": {
          "302": {
            "description": "Found",
            "headers": {
              "Location": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "summary": "Start sign-in for a reserved company slug; membership is still required",
        "tags": [
          "Company addresses"
        ]
      }
    },
    "/health/live": {
      "get": {
        "description": "Process-only liveness check. Does not inspect dependencies.",
        "operationId": "health-live",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LiveOutputBody"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "summary": "Liveness probe",
        "tags": [
          "Runtime"
        ]
      }
    },
    "/health/ready": {
      "get": {
        "description": "Local configuration and schema readiness. Remote dependency outages use capability health, not this probe.",
        "operationId": "health-ready",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReadyOutputBody"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "summary": "Readiness probe",
        "tags": [
          "Runtime"
        ]
      }
    },
    "/version": {
      "get": {
        "description": "Build identity without secrets.",
        "operationId": "version",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Info"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "summary": "Build version",
        "tags": [
          "Runtime"
        ]
      }
    }
  }
}
