{
  "openapi": "3.1.0",
  "info": {
    "version": "v0.0.117 build:4434 sha:1cc399dd9e8a15d49b49ff9c74215cff74f1e2ff",
    "title": "Taxonomy Model API",
    "description": "Taxonomy Model API Documentation",
    "license": {
      "name": "MIT",
      "url": "https://github.com/tabiya-tech/taxonomy-model-application/blob/main/LICENSE"
    }
  },
  "components": {
    "responses": {
      "AcceptOnlyJSONResponse": {
        "description": "Only 'application/json' is supported as request payload.",
        "content": {
          "application /json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorSchema"
            }
          }
        }
      },
      "InternalServerErrorResponse": {
        "description": "The server encountered an unexpected condition.",
        "content": {
          "application /json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorSchema"
            }
          }
        }
      },
      "UnAuthorizedResponse": {
        "description": "The request failed because it lacks valid authentication credentials for the target resource.",
        "content": {
          "application /json": {
            "schema": {
              "type": "object",
              "properties": {
                "message": {
                  "type": "string",
                  "example": "Unauthorized"
                }
              }
            }
          }
        }
      },
      "ForbiddenResponse": {
        "description": "The request has not been applied because you don't have the right permissions to access this resource.",
        "content": {
          "application /json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorSchema"
            }
          }
        }
      }
    },
    "schemas": {
      "AllForbidden401ResponseSchema": {
        "$id": "/components/schemas/ALLUnauthorized401ErrorSchema",
        "type": "object",
        "properties": {
          "errorCode": {
            "description": "A code that API consumers can use to determine the Unauthorized 401 for ALL error that occurred",
            "type": "string",
            "enum": [
              "FORBIDDEN"
            ],
            "pattern": "\\S"
          },
          "message": {
            "description": "A human readable description of the error",
            "type": "string",
            "maxLength": 256
          },
          "details": {
            "description": "Additional details about the error. Might be an empty string if no additional details are available",
            "type": "string",
            "maxLength": 4000
          }
        },
        "required": [
          "errorCode",
          "message",
          "details"
        ],
        "additionalProperties": false
      },
      "AllForbidden403ResponseSchema": {
        "$id": "/components/schemas/ALLForbidden403ErrorSchema",
        "type": "object",
        "properties": {
          "errorCode": {
            "description": "A code that API consumers can use to determine the Forbidden 403 for ALL error that occurred",
            "type": "string",
            "enum": [
              "FORBIDDEN"
            ],
            "pattern": "\\S"
          },
          "message": {
            "description": "A human readable description of the error",
            "type": "string",
            "maxLength": 256
          },
          "details": {
            "description": "Additional details about the error. Might be an empty string if no additional details are available",
            "type": "string",
            "maxLength": 4000
          }
        },
        "required": [
          "errorCode",
          "message",
          "details"
        ],
        "additionalProperties": false
      },
      "AllContentType415ResponseSchema": {
        "$id": "/components/schemas/ALLContentType415ErrorSchema",
        "type": "object",
        "properties": {
          "errorCode": {
            "description": "A code that API consumers can use to determine the ContentType 415 for ALL error that occurred",
            "type": "string",
            "enum": [
              "MALFORMED_BODY"
            ],
            "pattern": "\\S"
          },
          "message": {
            "description": "A human readable description of the error",
            "type": "string",
            "maxLength": 256
          },
          "details": {
            "description": "Additional details about the error. Might be an empty string if no additional details are available",
            "type": "string",
            "maxLength": 4000
          }
        },
        "required": [
          "errorCode",
          "message",
          "details"
        ],
        "additionalProperties": false
      },
      "All500ResponseSchema": {
        "$id": "/components/schemas/POSTAll500ErrorSchema",
        "type": "object",
        "properties": {
          "errorCode": {
            "description": "A code that API consumers can use to determine the All 500 for POST error that occurred",
            "type": "string",
            "enum": [
              "INTERNAL_SERVER_ERROR"
            ],
            "pattern": "\\S"
          },
          "message": {
            "description": "A human readable description of the error",
            "type": "string",
            "maxLength": 256
          },
          "details": {
            "description": "Additional details about the error. Might be an empty string if no additional details are available",
            "type": "string",
            "maxLength": 4000
          }
        },
        "required": [
          "errorCode",
          "message",
          "details"
        ],
        "additionalProperties": false
      },
      "AllNotFound404ResponseSchema": {
        "$id": "/components/schemas/ALLNotFound404ErrorSchema",
        "type": "object",
        "properties": {
          "errorCode": {
            "description": "A code that API consumers can use to determine the NotFound 404 for ALL error that occurred",
            "type": "string",
            "enum": [
              "NOT_FOUND"
            ],
            "pattern": "\\S"
          },
          "message": {
            "description": "A human readable description of the error",
            "type": "string",
            "maxLength": 256
          },
          "details": {
            "description": "Additional details about the error. Might be an empty string if no additional details are available",
            "type": "string",
            "maxLength": 4000
          }
        },
        "required": [
          "errorCode",
          "message",
          "details"
        ],
        "additionalProperties": false
      },
      "ErrorSchema": {
        "type": "object",
        "properties": {
          "errorCode": {
            "description": "A code that API consumers can use to determine the type of error that occurred",
            "type": "string",
            "enum": [
              "MALFORMED_BODY",
              "METHOD_NOT_ALLOWED",
              "NOT_FOUND",
              "INTERNAL_SERVER_ERROR",
              "UNSUPPORTED_MEDIA_TYPE",
              "TOO_LARGE_PAYLOAD",
              "BAD_REQUEST",
              "INVALID_JSON_SCHEMA",
              "FORBIDDEN",
              "FAILED_TO_TRIGGER_IMPORT",
              "FAILED_TO_TRIGGER_EXPORT",
              "DB_FAILED_TO_CREATE_MODEL",
              "MODEL_COULD_NOT_VALIDATE",
              "OCCUPATION_GROUP_COULD_NOT_VALIDATE",
              "UNABLE_TO_ALTER_RELEASED_MODEL",
              "POST_MODEL_NOT_FOUND",
              "DB_FAILED_TO_CREATE_OCCUPATION_GROUP",
              "INVALID_LIMIT_PARAMETER",
              "INVALID_NEXT_CURSOR_PARAMETER",
              "OCCUPATION_GROUP_NOT_FOUND",
              "GET_MODEL_NOT_FOUND",
              "DB_FAILED_TO_RETRIEVE_OCCUPATION_GROUPS",
              "OCCUPATION_COULD_NOT_VALIDATE",
              "UNABLE_TO_ALTER_RELEASED_MODEL_FOR_OCCUPATION",
              "INVALID_MODEL_ID_FOR_OCCUPATION_POST",
              "POST_MODEL_NOT_FOUND_FOR_OCCUPATION",
              "DB_FAILED_TO_CREATE_OCCUPATION",
              "INVALID_LIMIT_PARAMETER_FOR_OCCUPATION",
              "INVALID_NEXT_CURSOR_PARAMETER_FOR_OCCUPATION",
              "INVALID_OCCUPATION_ID",
              "INVALID_MODEL_ID_FOR_OCCUPATION",
              "OCCUPATION_NOT_FOUND_FOR_OCCUPATION",
              "GET_MODEL_NOT_FOUND_FOR_OCCUPATION",
              "DB_FAILED_TO_RETRIEVE_OCCUPATIONS_FOR_OCCUPATION",
              "SKILL_GROUP_COULD_NOT_VALIDATE",
              "DB_FAILED_TO_CREATE_SKILL_GROUP",
              "DB_FAILED_TO_RETRIEVE_A_SINGLE_SKILL_GROUP",
              "DB_FAILED_TO_CREATE_SKILL_GROUP_ON_ALREADY_RELEASED_MODEL",
              "SKILL_GROUP_NOT_FOUND",
              "DB_FAILED_TO_RETRIEVE_SKILL_GROUPS",
              "SKILL_COULD_NOT_VALIDATE",
              "MODEL_NOT_FOUND",
              "DB_FAILED_TO_CREATE_SKILL",
              "MODEL_NOT_FOUND_FOR_SKILL_LIST",
              "DB_FAILED_TO_RETRIEVE_SKILLS",
              "INVALID_SKILL_ID",
              "SKILL_NOT_FOUND",
              "MODEL_NOT_FOUND_FOR_SKILL_GET",
              "DB_FAILED_TO_RETRIEVE_SKILL"
            ],
            "pattern": "\\S"
          },
          "message": {
            "description": "A human readable description of the error",
            "type": "string",
            "maxLength": 256
          },
          "details": {
            "description": "Additional details about the error. Might be an empty string if no additional details are available",
            "type": "string",
            "maxLength": 4000
          }
        },
        "required": [
          "errorCode",
          "message",
          "details"
        ],
        "additionalProperties": false
      },
      "ErrorSchemaPOST": {
        "type": "object",
        "properties": {
          "errorCode": {
            "description": "A code that API consumers can use to determine the type of error that occurred on POST method",
            "type": "string",
            "enum": [
              "INTERNAL_SERVER_ERROR",
              "METHOD_NOT_ALLOWED",
              "NOT_FOUND",
              "UNSUPPORTED_MEDIA_TYPE",
              "BAD_REQUEST",
              "FORBIDDEN",
              "MALFORMED_BODY",
              "TOO_LARGE_PAYLOAD",
              "INVALID_JSON_SCHEMA",
              "FAILED_TO_TRIGGER_EXPORT",
              "DB_FAILED_TO_CREATE_MODEL",
              "MODEL_COULD_NOT_VALIDATE",
              "OCCUPATION_GROUP_COULD_NOT_VALIDATE",
              "UNABLE_TO_ALTER_RELEASED_MODEL",
              "POST_MODEL_NOT_FOUND",
              "DB_FAILED_TO_CREATE_OCCUPATION_GROUP",
              "SKILL_GROUP_COULD_NOT_VALIDATE",
              "DB_FAILED_TO_CREATE_SKILL_GROUP",
              "DB_FAILED_TO_RETRIEVE_A_SINGLE_SKILL_GROUP",
              "DB_FAILED_TO_CREATE_SKILL_GROUP_ON_ALREADY_RELEASED_MODEL",
              "SKILL_COULD_NOT_VALIDATE",
              "MODEL_NOT_FOUND",
              "DB_FAILED_TO_CREATE_SKILL",
              "OCCUPATION_COULD_NOT_VALIDATE",
              "UNABLE_TO_ALTER_RELEASED_MODEL_FOR_OCCUPATION",
              "INVALID_MODEL_ID_FOR_OCCUPATION_POST",
              "POST_MODEL_NOT_FOUND_FOR_OCCUPATION",
              "DB_FAILED_TO_CREATE_OCCUPATION"
            ],
            "pattern": "\\S"
          },
          "message": {
            "description": "A human readable description of the error",
            "type": "string",
            "maxLength": 256
          },
          "details": {
            "description": "Additional details about the error. Might be an empty string if no additional details are available",
            "type": "string",
            "maxLength": 4000
          }
        },
        "required": [
          "errorCode",
          "message",
          "details"
        ],
        "additionalProperties": false
      },
      "ErrorSchemaGET": {
        "type": "object",
        "properties": {
          "errorCode": {
            "description": "A code that API consumers can use to determine the type of error that occurred on GET method",
            "type": "string",
            "enum": [
              "INTERNAL_SERVER_ERROR",
              "METHOD_NOT_ALLOWED",
              "NOT_FOUND",
              "UNSUPPORTED_MEDIA_TYPE",
              "BAD_REQUEST",
              "FORBIDDEN",
              "INVALID_QUERY_PARAMETER",
              "DB_FAILED_TO_RETRIEVE_MODELS",
              "INVALID_LIMIT_PARAMETER",
              "INVALID_NEXT_CURSOR_PARAMETER",
              "OCCUPATION_GROUP_NOT_FOUND",
              "GET_MODEL_NOT_FOUND",
              "DB_FAILED_TO_RETRIEVE_OCCUPATION_GROUPS",
              "INVALID_LIMIT_PARAMETER_FOR_OCCUPATION",
              "INVALID_NEXT_CURSOR_PARAMETER_FOR_OCCUPATION",
              "INVALID_OCCUPATION_ID",
              "INVALID_MODEL_ID_FOR_OCCUPATION",
              "OCCUPATION_NOT_FOUND_FOR_OCCUPATION",
              "GET_MODEL_NOT_FOUND_FOR_OCCUPATION",
              "DB_FAILED_TO_RETRIEVE_OCCUPATIONS_FOR_OCCUPATION",
              "MODEL_NOT_FOUND_FOR_SKILL_LIST",
              "DB_FAILED_TO_RETRIEVE_SKILLS",
              "INVALID_SKILL_ID",
              "SKILL_NOT_FOUND",
              "MODEL_NOT_FOUND_FOR_SKILL_GET",
              "DB_FAILED_TO_RETRIEVE_SKILL",
              "SKILL_GROUP_NOT_FOUND",
              "DB_FAILED_TO_RETRIEVE_SKILL_GROUPS"
            ],
            "pattern": "\\S"
          },
          "message": {
            "description": "A human readable description of the error",
            "type": "string",
            "maxLength": 256
          },
          "details": {
            "description": "Additional details about the error. Might be an empty string if no additional details are available",
            "type": "string",
            "maxLength": 4000
          }
        },
        "required": [
          "errorCode",
          "message",
          "details"
        ],
        "additionalProperties": false
      },
      "ErrorSchemaPATCH": {
        "type": "object",
        "properties": {
          "errorCode": {
            "description": "A code that API consumers can use to determine the type of error that occurred on PATCH method",
            "type": "string",
            "enum": [
              "INTERNAL_SERVER_ERROR",
              "METHOD_NOT_ALLOWED",
              "NOT_FOUND",
              "UNSUPPORTED_MEDIA_TYPE",
              "BAD_REQUEST",
              "FORBIDDEN",
              "MALFORMED_BODY",
              "TOO_LARGE_PAYLOAD",
              "INVALID_JSON_SCHEMA"
            ],
            "pattern": "\\S"
          },
          "message": {
            "description": "A human readable description of the error",
            "type": "string",
            "maxLength": 256
          },
          "details": {
            "description": "Additional details about the error. Might be an empty string if no additional details are available",
            "type": "string",
            "maxLength": 4000
          }
        },
        "required": [
          "errorCode",
          "message",
          "details"
        ],
        "additionalProperties": false
      },
      "POSTOccupationGroup400ErrorSchema": {
        "$id": "/components/schemas/POSTOccupationGroup400ErrorSchema",
        "type": "object",
        "properties": {
          "errorCode": {
            "description": "A code that API consumers can use to determine the OccupationGroup 400 for POST error that occurred",
            "type": "string",
            "enum": [
              "OCCUPATION_GROUP_COULD_NOT_VALIDATE",
              "UNABLE_TO_ALTER_RELEASED_MODEL"
            ],
            "pattern": "\\S"
          },
          "message": {
            "description": "A human readable description of the error",
            "type": "string",
            "maxLength": 256
          },
          "details": {
            "description": "Additional details about the error. Might be an empty string if no additional details are available",
            "type": "string",
            "maxLength": 4000
          }
        },
        "required": [
          "errorCode",
          "message",
          "details"
        ],
        "additionalProperties": false
      },
      "GETOccupationGroup400ErrorSchema": {
        "$id": "/components/schemas/GETOccupationGroup400ErrorSchema",
        "type": "object",
        "properties": {
          "errorCode": {
            "description": "A code that API consumers can use to determine the OccupationGroup 400 for GET error that occurred",
            "type": "string",
            "enum": [
              "INVALID_LIMIT_PARAMETER",
              "INVALID_NEXT_CURSOR_PARAMETER"
            ],
            "pattern": "\\S"
          },
          "message": {
            "description": "A human readable description of the error",
            "type": "string",
            "maxLength": 256
          },
          "details": {
            "description": "Additional details about the error. Might be an empty string if no additional details are available",
            "type": "string",
            "maxLength": 4000
          }
        },
        "required": [
          "errorCode",
          "message",
          "details"
        ],
        "additionalProperties": false
      },
      "GETOccupationGroup404ErrorSchema": {
        "$id": "/components/schemas/GETOccupationGroup404ErrorSchema",
        "type": "object",
        "properties": {
          "errorCode": {
            "description": "A code that API consumers can use to determine the OccupationGroup 404 for GET error that occurred",
            "type": "string",
            "enum": [
              "OCCUPATION_GROUP_NOT_FOUND",
              "GET_MODEL_NOT_FOUND"
            ],
            "pattern": "\\S"
          },
          "message": {
            "description": "A human readable description of the error",
            "type": "string",
            "maxLength": 256
          },
          "details": {
            "description": "Additional details about the error. Might be an empty string if no additional details are available",
            "type": "string",
            "maxLength": 4000
          }
        },
        "required": [
          "errorCode",
          "message",
          "details"
        ],
        "additionalProperties": false
      },
      "GETOccupationGroups404ErrorSchema": {
        "$id": "/components/schemas/GETOccupationGroups404ErrorSchema",
        "type": "object",
        "properties": {
          "errorCode": {
            "description": "A code that API consumers can use to determine the OccupationGroups 404 for GET error that occurred",
            "type": "string",
            "enum": [
              "GET_MODEL_NOT_FOUND"
            ],
            "pattern": "\\S"
          },
          "message": {
            "description": "A human readable description of the error",
            "type": "string",
            "maxLength": 256
          },
          "details": {
            "description": "Additional details about the error. Might be an empty string if no additional details are available",
            "type": "string",
            "maxLength": 4000
          }
        },
        "required": [
          "errorCode",
          "message",
          "details"
        ],
        "additionalProperties": false
      },
      "POSTOccupation400ErrorSchema": {
        "$id": "/components/schemas/POSTOccupation400ErrorSchema",
        "type": "object",
        "properties": {
          "errorCode": {
            "description": "A code that API consumers can use to determine the Occupation 400 for POST error that occurred",
            "type": "string",
            "enum": [
              "OCCUPATION_COULD_NOT_VALIDATE",
              "UNABLE_TO_ALTER_RELEASED_MODEL_FOR_OCCUPATION",
              "INVALID_MODEL_ID_FOR_OCCUPATION_POST"
            ],
            "pattern": "\\S"
          },
          "message": {
            "description": "A human readable description of the error",
            "type": "string",
            "maxLength": 256
          },
          "details": {
            "description": "Additional details about the error. Might be an empty string if no additional details are available",
            "type": "string",
            "maxLength": 4000
          }
        },
        "required": [
          "errorCode",
          "message",
          "details"
        ],
        "additionalProperties": false
      },
      "GETOccupation400ErrorSchema": {
        "$id": "/components/schemas/GETOccupation400ErrorSchema",
        "type": "object",
        "properties": {
          "errorCode": {
            "description": "A code that API consumers can use to determine the Occupation 400 for GET error that occurred",
            "type": "string",
            "enum": [
              "INVALID_LIMIT_PARAMETER_FOR_OCCUPATION",
              "INVALID_NEXT_CURSOR_PARAMETER_FOR_OCCUPATION",
              "INVALID_OCCUPATION_ID",
              "INVALID_MODEL_ID_FOR_OCCUPATION"
            ],
            "pattern": "\\S"
          },
          "message": {
            "description": "A human readable description of the error",
            "type": "string",
            "maxLength": 256
          },
          "details": {
            "description": "Additional details about the error. Might be an empty string if no additional details are available",
            "type": "string",
            "maxLength": 4000
          }
        },
        "required": [
          "errorCode",
          "message",
          "details"
        ],
        "additionalProperties": false
      },
      "GETOccupation404ErrorSchema": {
        "$id": "/components/schemas/GETOccupation404ErrorSchema",
        "type": "object",
        "properties": {
          "errorCode": {
            "description": "A code that API consumers can use to determine the Occupation 404 for GET error that occurred",
            "type": "string",
            "enum": [
              "OCCUPATION_NOT_FOUND_FOR_OCCUPATION",
              "GET_MODEL_NOT_FOUND_FOR_OCCUPATION"
            ],
            "pattern": "\\S"
          },
          "message": {
            "description": "A human readable description of the error",
            "type": "string",
            "maxLength": 256
          },
          "details": {
            "description": "Additional details about the error. Might be an empty string if no additional details are available",
            "type": "string",
            "maxLength": 4000
          }
        },
        "required": [
          "errorCode",
          "message",
          "details"
        ],
        "additionalProperties": false
      },
      "GETOccupations404ErrorSchema": {
        "$id": "/components/schemas/GETOccupations404ErrorSchema",
        "type": "object",
        "properties": {
          "errorCode": {
            "description": "A code that API consumers can use to determine the Occupations 404 for GET error that occurred",
            "type": "string",
            "enum": [
              "GET_MODEL_NOT_FOUND_FOR_OCCUPATION"
            ],
            "pattern": "\\S"
          },
          "message": {
            "description": "A human readable description of the error",
            "type": "string",
            "maxLength": 256
          },
          "details": {
            "description": "Additional details about the error. Might be an empty string if no additional details are available",
            "type": "string",
            "maxLength": 4000
          }
        },
        "required": [
          "errorCode",
          "message",
          "details"
        ],
        "additionalProperties": false
      },
      "GETSkillGroup400ErrorSchema": {
        "$id": "/components/schemas/GETSkillGroup400ErrorSchema",
        "type": "object",
        "properties": {
          "errorCode": {
            "description": "A code that API consumers can use to determine the SkillGroup 400 for GET error that occurred",
            "type": "string",
            "enum": [
              "INVALID_LIMIT_PARAMETER",
              "INVALID_NEXT_CURSOR_PARAMETER"
            ],
            "pattern": "\\S"
          },
          "message": {
            "description": "A human readable description of the error",
            "type": "string",
            "maxLength": 256
          },
          "details": {
            "description": "Additional details about the error. Might be an empty string if no additional details are available",
            "type": "string",
            "maxLength": 4000
          }
        },
        "required": [
          "errorCode",
          "message",
          "details"
        ],
        "additionalProperties": false
      },
      "GETSkillGroup404ErrorSchema": {
        "$id": "/components/schemas/GETSkillGroup404ErrorSchema",
        "type": "object",
        "properties": {
          "errorCode": {
            "description": "A code that API consumers can use to determine the SkillGroup 404 for GET error that occurred",
            "type": "string",
            "enum": [
              "SKILL_GROUP_NOT_FOUND",
              "GET_MODEL_NOT_FOUND"
            ],
            "pattern": "\\S"
          },
          "message": {
            "description": "A human readable description of the error",
            "type": "string",
            "maxLength": 256
          },
          "details": {
            "description": "Additional details about the error. Might be an empty string if no additional details are available",
            "type": "string",
            "maxLength": 4000
          }
        },
        "required": [
          "errorCode",
          "message",
          "details"
        ],
        "additionalProperties": false
      },
      "GETSkillGroups404ErrorSchema": {
        "$id": "/components/schemas/GETSkillGroups404ErrorSchema",
        "type": "object",
        "properties": {
          "errorCode": {
            "description": "A code that API consumers can use to determine the SkillGroups 404 for GET error that occurred",
            "type": "string",
            "enum": [
              "GET_MODEL_NOT_FOUND"
            ],
            "pattern": "\\S"
          },
          "message": {
            "description": "A human readable description of the error",
            "type": "string",
            "maxLength": 256
          },
          "details": {
            "description": "Additional details about the error. Might be an empty string if no additional details are available",
            "type": "string",
            "maxLength": 4000
          }
        },
        "required": [
          "errorCode",
          "message",
          "details"
        ],
        "additionalProperties": false
      },
      "POSTSkill400ErrorSchema": {
        "$id": "/components/schemas/POSTSkill400ErrorSchema",
        "type": "object",
        "properties": {
          "errorCode": {
            "description": "A code that API consumers can use to determine the Skill 400 for POST error that occurred",
            "type": "string",
            "enum": [
              "SKILL_COULD_NOT_VALIDATE",
              "UNABLE_TO_ALTER_RELEASED_MODEL"
            ],
            "pattern": "\\S"
          },
          "message": {
            "description": "A human readable description of the error",
            "type": "string",
            "maxLength": 256
          },
          "details": {
            "description": "Additional details about the error. Might be an empty string if no additional details are available",
            "type": "string",
            "maxLength": 4000
          }
        },
        "required": [
          "errorCode",
          "message",
          "details"
        ],
        "additionalProperties": false
      },
      "GETSkill400ErrorSchema": {
        "$id": "/components/schemas/GETSkill400ErrorSchema",
        "type": "object",
        "properties": {
          "errorCode": {
            "description": "A code that API consumers can use to determine the Skill 400 for GET error that occurred",
            "type": "string",
            "enum": [
              "INVALID_SKILL_ID"
            ],
            "pattern": "\\S"
          },
          "message": {
            "description": "A human readable description of the error",
            "type": "string",
            "maxLength": 256
          },
          "details": {
            "description": "Additional details about the error. Might be an empty string if no additional details are available",
            "type": "string",
            "maxLength": 4000
          }
        },
        "required": [
          "errorCode",
          "message",
          "details"
        ],
        "additionalProperties": false
      },
      "GETSkill404ErrorSchema": {
        "$id": "/components/schemas/GETSkill404ErrorSchema",
        "type": "object",
        "properties": {
          "errorCode": {
            "description": "A code that API consumers can use to determine the Skill 404 for GET error that occurred",
            "type": "string",
            "enum": [
              "SKILL_NOT_FOUND",
              "MODEL_NOT_FOUND_FOR_SKILL_GET"
            ],
            "pattern": "\\S"
          },
          "message": {
            "description": "A human readable description of the error",
            "type": "string",
            "maxLength": 256
          },
          "details": {
            "description": "Additional details about the error. Might be an empty string if no additional details are available",
            "type": "string",
            "maxLength": 4000
          }
        },
        "required": [
          "errorCode",
          "message",
          "details"
        ],
        "additionalProperties": false
      },
      "GETSkills404ErrorSchema": {
        "$id": "/components/schemas/GETSkills404ErrorSchema",
        "type": "object",
        "properties": {
          "errorCode": {
            "description": "A code that API consumers can use to determine the Skills 404 for GET error that occurred",
            "type": "string",
            "enum": [
              "MODEL_NOT_FOUND_FOR_SKILL_LIST"
            ],
            "pattern": "\\S"
          },
          "message": {
            "description": "A human readable description of the error",
            "type": "string",
            "maxLength": 256
          },
          "details": {
            "description": "Additional details about the error. Might be an empty string if no additional details are available",
            "type": "string",
            "maxLength": 4000
          }
        },
        "required": [
          "errorCode",
          "message",
          "details"
        ],
        "additionalProperties": false
      },
      "PresignedSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "url": {
            "description": "The url to upload the files to",
            "type": "string",
            "format": "uri",
            "pattern": "^https://.*",
            "maxLength": 4096
          },
          "fields": {
            "description": "The fields should be added to the form-data when uploading the files",
            "type": "array",
            "minItems": 1,
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "pattern": "\\S"
                },
                "value": {
                  "type": "string",
                  "pattern": "\\S"
                }
              },
              "required": [
                "name",
                "value"
              ]
            }
          },
          "folder": {
            "description": "The folder name to upload the files to",
            "type": "string",
            "pattern": "\\S",
            "maxLength": 256
          }
        },
        "required": [
          "url",
          "fields",
          "folder"
        ]
      },
      "ModelInfoResponseSchemaPOST": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "The id of the model. It can be used to retrieve the model from the server.",
            "type": "string",
            "pattern": "^[0-9a-f]{24}$"
          },
          "UUID": {
            "description": "The UUID of the model. It can be used to identify the model across systems.",
            "type": "string",
            "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
          },
          "path": {
            "description": "The path to the model resource using the resource id",
            "type": "string",
            "format": "uri",
            "pattern": "^https://.*",
            "maxLength": 4096
          },
          "tabiyaPath": {
            "description": "The path to the model resource using the resource UUID",
            "type": "string",
            "format": "uri",
            "pattern": "^https://.*",
            "maxLength": 4096
          },
          "released": {
            "description": "Whether the model is released or not",
            "type": "boolean"
          },
          "releaseNotes": {
            "description": "The release notes of the model",
            "type": "string",
            "maxLength": 100000
          },
          "version": {
            "description": "The version of the model. It should follow the conventions of semantic versioning.",
            "type": "string",
            "maxLength": 256
          },
          "exportProcessState": {
            "description": "The export process state of the model.",
            "type": "array",
            "minItems": 0,
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "id": {
                  "description": "The identifier of the specific export state.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{24}$"
                },
                "status": {
                  "description": "The status of the export process of the model.",
                  "type": "string",
                  "enum": [
                    "pending",
                    "running",
                    "completed"
                  ]
                },
                "result": {
                  "description": "The result of the export process of the model. It can be errored, export errors or export warnings.",
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "errored": {
                      "description": "if the export process has completed or it was did not complete due to some unexpected error.",
                      "type": "boolean"
                    },
                    "exportErrors": {
                      "description": "if the export encountered errors while export the csv files.",
                      "type": "boolean"
                    },
                    "exportWarnings": {
                      "description": "if the export encountered warnings while export the csv files.",
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "errored",
                    "exportErrors",
                    "exportWarnings"
                  ]
                },
                "downloadUrl": {
                  "description": "The url to download the exported model. It can be empty if the export process is still in running or it has not completed successfully.",
                  "type": "string",
                  "anyOf": [
                    {
                      "pattern": "^$"
                    },
                    {
                      "format": "uri",
                      "pattern": "^https://.*"
                    }
                  ],
                  "maxLength": 4096
                },
                "timestamp": {
                  "description": "The timestamp of the export process.",
                  "type": "string",
                  "format": "date-time"
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time"
                },
                "updatedAt": {
                  "type": "string",
                  "format": "date-time"
                }
              },
              "required": [
                "id",
                "status",
                "downloadUrl",
                "timestamp",
                "result",
                "createdAt",
                "updatedAt"
              ]
            }
          },
          "importProcessState": {
            "description": "The import process state of the model.",
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "description": "The identifier of the specific import state.",
                "type": "string",
                "pattern": "^[0-9a-f]{24}$"
              },
              "status": {
                "description": "The status of the import process of the model.",
                "type": "string",
                "enum": [
                  "pending",
                  "running",
                  "completed"
                ]
              },
              "result": {
                "description": "The result of the import process of the model. It can be errored, parsing errors or parsing warnings.",
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "errored": {
                    "description": "if the import process has completed or it was did not complete due to some unexpected error.",
                    "type": "boolean"
                  },
                  "parsingErrors": {
                    "description": "if the import encountered errors while parsing the csv files.",
                    "type": "boolean"
                  },
                  "parsingWarnings": {
                    "description": "if the import encountered warnings while parsing the csv files.",
                    "type": "boolean"
                  }
                },
                "required": [
                  "errored",
                  "parsingErrors",
                  "parsingWarnings"
                ]
              },
              "createdAt": {
                "type": "string",
                "format": "date-time"
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time"
              }
            },
            "required": [
              "id",
              "status",
              "result"
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "name": {
            "description": "The name of the model",
            "type": "string",
            "pattern": "\\S",
            "maxLength": 256
          },
          "description": {
            "description": "The description of the model",
            "type": "string",
            "maxLength": 6000
          },
          "license": {
            "description": "The license of the model",
            "type": "string",
            "maxLength": 100000
          },
          "locale": {
            "$ref": "#/components/schemas/LocaleSchema"
          },
          "UUIDHistory": {
            "description": "The UUIDs history of the model.",
            "type": "array",
            "minItems": 0,
            "items": {
              "type": "string",
              "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
            }
          },
          "modelHistory": {
            "description": "The history of the model based on its UUIDHistory.",
            "type": "array",
            "minItems": 1,
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "id": {
                  "description": "The identifier of the specific model.",
                  "type": [
                    "string",
                    "null"
                  ],
                  "pattern": "^[0-9a-f]{24}$"
                },
                "UUID": {
                  "description": "The UUID of the model.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
                },
                "name": {
                  "description": "The name of the model.",
                  "type": [
                    "string",
                    "null"
                  ],
                  "pattern": "\\S",
                  "maxLength": 256
                },
                "version": {
                  "description": "The version of the model.",
                  "type": [
                    "string",
                    "null"
                  ],
                  "maxLength": 256
                },
                "localeShortCode": {
                  "description": "The short code of the locale",
                  "type": [
                    "string",
                    "null"
                  ],
                  "pattern": "\\S",
                  "maxLength": 20
                }
              },
              "required": [
                "id",
                "UUID",
                "name",
                "version",
                "localeShortCode"
              ]
            }
          }
        },
        "required": [
          "name",
          "description",
          "locale",
          "license",
          "id",
          "UUID",
          "path",
          "tabiyaPath",
          "released",
          "releaseNotes",
          "version",
          "exportProcessState",
          "importProcessState",
          "createdAt",
          "updatedAt",
          "modelHistory"
        ]
      },
      "ModelInfoRequestSchemaPOST": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "name": {
            "description": "The name of the model",
            "type": "string",
            "pattern": "\\S",
            "maxLength": 256
          },
          "description": {
            "description": "The description of the model",
            "type": "string",
            "maxLength": 6000
          },
          "license": {
            "description": "The license of the model",
            "type": "string",
            "maxLength": 100000
          },
          "locale": {
            "$ref": "#/components/schemas/LocaleSchema"
          },
          "UUIDHistory": {
            "description": "The UUIDs history of the model.",
            "type": "array",
            "minItems": 0,
            "items": {
              "type": "string",
              "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
            }
          }
        },
        "required": [
          "name",
          "description",
          "locale",
          "license",
          "UUIDHistory"
        ]
      },
      "ModelInfoResponseSchemaGET": {
        "type": "array",
        "items": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "id": {
              "description": "The id of the model. It can be used to retrieve the model from the server.",
              "type": "string",
              "pattern": "^[0-9a-f]{24}$"
            },
            "UUID": {
              "description": "The UUID of the model. It can be used to identify the model across systems.",
              "type": "string",
              "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
            },
            "path": {
              "description": "The path to the model resource using the resource id",
              "type": "string",
              "format": "uri",
              "pattern": "^https://.*",
              "maxLength": 4096
            },
            "tabiyaPath": {
              "description": "The path to the model resource using the resource UUID",
              "type": "string",
              "format": "uri",
              "pattern": "^https://.*",
              "maxLength": 4096
            },
            "released": {
              "description": "Whether the model is released or not",
              "type": "boolean"
            },
            "releaseNotes": {
              "description": "The release notes of the model",
              "type": "string",
              "maxLength": 100000
            },
            "version": {
              "description": "The version of the model. It should follow the conventions of semantic versioning.",
              "type": "string",
              "maxLength": 256
            },
            "exportProcessState": {
              "description": "The export process state of the model.",
              "type": "array",
              "minItems": 0,
              "items": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "id": {
                    "description": "The identifier of the specific export state.",
                    "type": "string",
                    "pattern": "^[0-9a-f]{24}$"
                  },
                  "status": {
                    "description": "The status of the export process of the model.",
                    "type": "string",
                    "enum": [
                      "pending",
                      "running",
                      "completed"
                    ]
                  },
                  "result": {
                    "description": "The result of the export process of the model. It can be errored, export errors or export warnings.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "errored": {
                        "description": "if the export process has completed or it was did not complete due to some unexpected error.",
                        "type": "boolean"
                      },
                      "exportErrors": {
                        "description": "if the export encountered errors while export the csv files.",
                        "type": "boolean"
                      },
                      "exportWarnings": {
                        "description": "if the export encountered warnings while export the csv files.",
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "errored",
                      "exportErrors",
                      "exportWarnings"
                    ]
                  },
                  "downloadUrl": {
                    "description": "The url to download the exported model. It can be empty if the export process is still in running or it has not completed successfully.",
                    "type": "string",
                    "anyOf": [
                      {
                        "pattern": "^$"
                      },
                      {
                        "format": "uri",
                        "pattern": "^https://.*"
                      }
                    ],
                    "maxLength": 4096
                  },
                  "timestamp": {
                    "description": "The timestamp of the export process.",
                    "type": "string",
                    "format": "date-time"
                  },
                  "createdAt": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "updatedAt": {
                    "type": "string",
                    "format": "date-time"
                  }
                },
                "required": [
                  "id",
                  "status",
                  "downloadUrl",
                  "timestamp",
                  "result",
                  "createdAt",
                  "updatedAt"
                ]
              }
            },
            "importProcessState": {
              "description": "The import process state of the model.",
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "id": {
                  "description": "The identifier of the specific import state.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{24}$"
                },
                "status": {
                  "description": "The status of the import process of the model.",
                  "type": "string",
                  "enum": [
                    "pending",
                    "running",
                    "completed"
                  ]
                },
                "result": {
                  "description": "The result of the import process of the model. It can be errored, parsing errors or parsing warnings.",
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "errored": {
                      "description": "if the import process has completed or it was did not complete due to some unexpected error.",
                      "type": "boolean"
                    },
                    "parsingErrors": {
                      "description": "if the import encountered errors while parsing the csv files.",
                      "type": "boolean"
                    },
                    "parsingWarnings": {
                      "description": "if the import encountered warnings while parsing the csv files.",
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "errored",
                    "parsingErrors",
                    "parsingWarnings"
                  ]
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time"
                },
                "updatedAt": {
                  "type": "string",
                  "format": "date-time"
                }
              },
              "required": [
                "id",
                "status",
                "result"
              ]
            },
            "createdAt": {
              "type": "string",
              "format": "date-time"
            },
            "updatedAt": {
              "type": "string",
              "format": "date-time"
            },
            "name": {
              "description": "The name of the model",
              "type": "string",
              "pattern": "\\S",
              "maxLength": 256
            },
            "description": {
              "description": "The description of the model",
              "type": "string",
              "maxLength": 6000
            },
            "license": {
              "description": "The license of the model",
              "type": "string",
              "maxLength": 100000
            },
            "locale": {
              "$ref": "#/components/schemas/LocaleSchema"
            },
            "UUIDHistory": {
              "description": "The UUIDs history of the model.",
              "type": "array",
              "minItems": 0,
              "items": {
                "type": "string",
                "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
              }
            },
            "modelHistory": {
              "description": "The history of the model based on its UUIDHistory.",
              "type": "array",
              "minItems": 1,
              "items": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "id": {
                    "description": "The identifier of the specific model.",
                    "type": [
                      "string",
                      "null"
                    ],
                    "pattern": "^[0-9a-f]{24}$"
                  },
                  "UUID": {
                    "description": "The UUID of the model.",
                    "type": "string",
                    "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
                  },
                  "name": {
                    "description": "The name of the model.",
                    "type": [
                      "string",
                      "null"
                    ],
                    "pattern": "\\S",
                    "maxLength": 256
                  },
                  "version": {
                    "description": "The version of the model.",
                    "type": [
                      "string",
                      "null"
                    ],
                    "maxLength": 256
                  },
                  "localeShortCode": {
                    "description": "The short code of the locale",
                    "type": [
                      "string",
                      "null"
                    ],
                    "pattern": "\\S",
                    "maxLength": 20
                  }
                },
                "required": [
                  "id",
                  "UUID",
                  "name",
                  "version",
                  "localeShortCode"
                ]
              }
            }
          },
          "required": [
            "name",
            "description",
            "locale",
            "license",
            "id",
            "UUID",
            "path",
            "tabiyaPath",
            "released",
            "releaseNotes",
            "version",
            "exportProcessState",
            "importProcessState",
            "createdAt",
            "updatedAt",
            "modelHistory"
          ]
        }
      },
      "LocaleSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "UUID": {
            "description": "The UUID of the locale",
            "type": "string",
            "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
          },
          "shortCode": {
            "description": "The short code of the locale",
            "type": "string",
            "pattern": "\\S",
            "maxLength": 20
          },
          "name": {
            "description": "The name of the locale",
            "type": "string",
            "pattern": "\\S",
            "maxLength": 256
          }
        },
        "required": [
          "UUID",
          "shortCode",
          "name"
        ]
      },
      "ImportSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "modelId": {
            "description": "The identifier of the model for importing the files to.",
            "type": "string",
            "pattern": "^[0-9a-f]{24}$"
          },
          "filePaths": {
            "description": "A key value map of the files to import. The key represents the type of the file, and the value the path to the file. The path is relative to the root of the upload bucket and starts with the folder name that the presigned url was generated for.",
            "type": "object",
            "examples": [
              {
                "OCCUPATION_GROUPS": "some-random-folder/OccupationGroups_en.csv",
                "ESCO_SKILL_GROUPS": "some-random-folder/skillGroups_en.csv"
              }
            ],
            "anyOf": [
              {
                "properties": {
                  "OCCUPATION_GROUPS": {
                    "type": "string",
                    "maxLength": 255,
                    "pattern": "\\S"
                  }
                },
                "required": [
                  "OCCUPATION_GROUPS"
                ]
              },
              {
                "properties": {
                  "OCCUPATIONS": {
                    "type": "string",
                    "maxLength": 255,
                    "pattern": "\\S"
                  }
                },
                "required": [
                  "OCCUPATIONS"
                ]
              },
              {
                "properties": {
                  "ESCO_SKILL_GROUPS": {
                    "type": "string",
                    "maxLength": 255,
                    "pattern": "\\S"
                  }
                },
                "required": [
                  "ESCO_SKILL_GROUPS"
                ]
              },
              {
                "properties": {
                  "ESCO_SKILLS": {
                    "type": "string",
                    "maxLength": 255,
                    "pattern": "\\S"
                  }
                },
                "required": [
                  "ESCO_SKILLS"
                ]
              },
              {
                "properties": {
                  "OCCUPATION_HIERARCHY": {
                    "type": "string",
                    "maxLength": 255,
                    "pattern": "\\S"
                  }
                },
                "required": [
                  "OCCUPATION_HIERARCHY"
                ]
              },
              {
                "properties": {
                  "ESCO_SKILL_HIERARCHY": {
                    "type": "string",
                    "maxLength": 255,
                    "pattern": "\\S"
                  }
                },
                "required": [
                  "ESCO_SKILL_HIERARCHY"
                ]
              },
              {
                "properties": {
                  "ESCO_SKILL_SKILL_RELATIONS": {
                    "type": "string",
                    "maxLength": 255,
                    "pattern": "\\S"
                  }
                },
                "required": [
                  "ESCO_SKILL_SKILL_RELATIONS"
                ]
              },
              {
                "properties": {
                  "OCCUPATION_SKILL_RELATIONS": {
                    "type": "string",
                    "maxLength": 255,
                    "pattern": "\\S"
                  }
                },
                "required": [
                  "OCCUPATION_SKILL_RELATIONS"
                ]
              }
            ]
          },
          "isOriginalESCOModel": {
            "description": "Flag indicating if the model is an original ESCO model.",
            "type": "boolean"
          }
        },
        "required": [
          "modelId",
          "filePaths",
          "isOriginalESCOModel"
        ]
      },
      "ExportSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "modelId": {
            "description": "The identifier of the model to be exported.",
            "type": "string",
            "pattern": "^[0-9a-f]{24}$"
          }
        },
        "required": [
          "modelId"
        ]
      },
      "InfoSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "date": {
            "type": "string",
            "format": "date-time",
            "description": "The date and time when the application was built."
          },
          "version": {
            "type": "string",
            "description": "The name of the git tag/branch the application was built from.",
            "maxLength": 256
          },
          "buildNumber": {
            "type": "string",
            "description": "The build number of the application.",
            "maxLength": 256
          },
          "sha": {
            "type": "string",
            "description": "The git SHA of the commit used to build the application.",
            "maxLength": 40
          },
          "path": {
            "type": "string",
            "description": "The URL path of the endpoint.",
            "format": "uri",
            "pattern": "^https://.*",
            "maxLength": 4096
          },
          "database": {
            "type": "string",
            "enum": [
              "connected",
              "not connected"
            ],
            "description": "The database connection status."
          }
        },
        "required": [
          "date",
          "version",
          "buildNumber",
          "sha",
          "path",
          "database"
        ]
      },
      "AuthContextSchema": {
        "$id": "/components/schemas/AuthCognitoRequestContextSchema",
        "type": "object",
        "oneOf": [
          {
            "$id": "/components/schemas/AuthCognitoHumanInTheLoopRequestContext",
            "type": "object",
            "properties": {
              "authType": {
                "description": "The type of authentication which is Human in the loop in this case",
                "const": "human-in-the-loop"
              },
              "groups": {
                "type": "string",
                "description": "The coman separated list of the AWS Cognito groups the user belongs to",
                "maxLength": 256
              }
            },
            "required": [
              "authType"
            ]
          },
          {
            "$id": "/components/schemas/AuthCognitoMachine2MachineRequestContext",
            "type": "object",
            "properties": {
              "authType": {
                "description": "The type of authentication which is Machine to machine in this case",
                "const": "machine-to-machine"
              },
              "clientId": {
                "type": "string",
                "description": "The client id of the machine to machine application",
                "maxLength": 256
              }
            },
            "required": [
              "authType",
              "clientId"
            ]
          }
        ]
      },
      "OccupationGroupRequestSchemaPOST": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "UUIDHistory": {
            "description": "The UUIDs history of the occupation group.",
            "type": "array",
            "minItems": 0,
            "maxItems": 10000,
            "uniqueItems": true,
            "items": {
              "type": "string",
              "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
              "maxLength": 36
            }
          },
          "originUri": {
            "description": "The origin URI of the occupation group.",
            "type": "string",
            "maxLength": 4096,
            "format": "uri",
            "pattern": "\\S"
          },
          "code": {
            "description": "The code of the occupation group.",
            "type": "string",
            "maxLength": 256
          },
          "description": {
            "description": "The description of the occupation group.",
            "type": "string",
            "maxLength": 6000
          },
          "preferredLabel": {
            "description": "The preferred label of the occupation group.",
            "type": "string",
            "maxLength": 256,
            "pattern": "\\S"
          },
          "altLabels": {
            "description": "The alternative labels of the occupation group.",
            "type": "array",
            "minItems": 0,
            "maxItems": 100,
            "uniqueItems": true,
            "items": {
              "type": "string",
              "maxLength": 256
            }
          },
          "groupType": {
            "description": "The type of the occupation group, e.g., ISCOGroup or LocalGroup.",
            "type": "string",
            "enum": [
              "iscogroup",
              "localgroup"
            ]
          },
          "modelId": {
            "description": "The identifier of the model for occupation group.",
            "type": "string",
            "pattern": "^[0-9a-f]{24}$"
          }
        },
        "if": {
          "properties": {
            "groupType": {
              "enum": [
                "iscogroup"
              ]
            }
          }
        },
        "then": {
          "properties": {
            "code": {
              "type": "string",
              "maxLength": 256,
              "pattern": "^\\d{1,4}$"
            }
          }
        },
        "else": {
          "properties": {
            "code": {
              "type": "string",
              "maxLength": 256,
              "pattern": "^(?:\\d{1,4})?[a-zA-Z]+[a-zA-Z\\d]*$"
            }
          }
        },
        "required": [
          "preferredLabel",
          "groupType",
          "originUri",
          "UUIDHistory",
          "code",
          "description",
          "altLabels",
          "modelId"
        ]
      },
      "OccupationGroupResponseSchemaPOST": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "The id of the occupation group. It can be used to retrieve the occupation group from the server.",
            "type": "string",
            "pattern": "^[0-9a-f]{24}$"
          },
          "UUID": {
            "description": "The UUID of the occupation group. It can be used to identify the occupation group across systems.",
            "type": "string",
            "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
          },
          "originUUID": {
            "description": "The last UUID in the UUIDHistory of occupation group. It can be used to identify the occupation group across systems.",
            "type": "string",
            "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
          },
          "path": {
            "description": "The path to the occupation group resource using the resource id",
            "type": "string",
            "format": "uri",
            "pattern": "^https://.*",
            "maxLength": 4096
          },
          "tabiyaPath": {
            "description": "The path to the occupation group resource using the resource UUID",
            "type": "string",
            "format": "uri",
            "pattern": "^https://.*",
            "maxLength": 4096
          },
          "parent": {
            "description": "The parent occupation group of this occupation group.",
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": false,
            "properties": {
              "id": {
                "description": "The id of the parent occupation group.",
                "type": "string",
                "pattern": "^[0-9a-f]{24}$"
              },
              "UUID": {
                "description": "The UUID of the occupation group. It can be used to identify the parent occupation group.",
                "type": "string",
                "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
              },
              "code": {
                "description": "The code of the parent occupation group.",
                "type": "string",
                "maxLength": 256
              },
              "preferredLabel": {
                "description": "The preferred label of the parent occupation group.",
                "type": "string",
                "maxLength": 256,
                "pattern": "\\S"
              },
              "objectType": {
                "description": "The type of the occupation group, e.g., ISCOGroup or LocalGroup.",
                "type": "string",
                "enum": [
                  "iscogroup",
                  "localgroup"
                ]
              }
            },
            "if": {
              "properties": {
                "objectType": {
                  "enum": [
                    "iscogroup"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "code": {
                  "type": "string",
                  "maxLength": 256,
                  "pattern": "^\\d{1,4}$"
                }
              }
            },
            "else": {
              "properties": {
                "code": {
                  "type": "string",
                  "maxLength": 256,
                  "pattern": "^(?:\\d{1,4})?[a-zA-Z]+[a-zA-Z\\d]*$"
                }
              }
            }
          },
          "children": {
            "description": "The children of this occupation group, which can be either occupation groups or occupations.",
            "type": "array",
            "minItems": 0,
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "id": {
                  "description": "The id of the parent occupation group.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{24}$"
                },
                "UUID": {
                  "description": "The UUID of the occupation group. It can be used to identify the parent occupation group.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
                },
                "code": {
                  "description": "The code of the parent occupation group.",
                  "type": "string",
                  "maxLength": 256
                },
                "preferredLabel": {
                  "description": "The preferred label of the parent occupation group.",
                  "type": "string",
                  "maxLength": 256,
                  "pattern": "\\S"
                },
                "objectType": {
                  "description": "The type of the occupation group, e.g., ISCOGroup, LocalGroup, ESCOOccupation, LocalOccupation.",
                  "type": "string",
                  "enum": [
                    "iscogroup",
                    "localgroup",
                    "escooccupation",
                    "localoccupation"
                  ]
                }
              },
              "allOf": [
                {
                  "if": {
                    "properties": {
                      "objectType": {
                        "const": "iscogroup"
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "code": {
                        "type": "string",
                        "maxLength": 256,
                        "pattern": "^\\d{1,4}$"
                      }
                    }
                  }
                },
                {
                  "if": {
                    "properties": {
                      "objectType": {
                        "const": "localgroup"
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "code": {
                        "type": "string",
                        "maxLength": 256,
                        "pattern": "^(?:\\d{1,4})?[a-zA-Z]+[a-zA-Z\\d]*$"
                      }
                    }
                  }
                },
                {
                  "if": {
                    "properties": {
                      "objectType": {
                        "const": "escooccupation"
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "code": {
                        "type": "string",
                        "maxLength": 256,
                        "pattern": "^\\d{4}(?:\\.\\d+)+$"
                      }
                    }
                  }
                },
                {
                  "if": {
                    "properties": {
                      "objectType": {
                        "const": "localoccupation"
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "code": {
                        "type": "string",
                        "maxLength": 256,
                        "pattern": "^(?:\\d{4}(?:\\.\\d+)*(?:_\\d+)+|[a-zA-Z\\d]+(?:_\\d+)+)$"
                      }
                    }
                  }
                }
              ]
            }
          },
          "UUIDHistory": {
            "description": "The UUIDs history of the occupation group.",
            "type": "array",
            "minItems": 0,
            "maxItems": 10000,
            "uniqueItems": true,
            "items": {
              "type": "string",
              "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
              "maxLength": 36
            }
          },
          "originUri": {
            "description": "The origin URI of the occupation group.",
            "type": "string",
            "maxLength": 4096,
            "format": "uri",
            "pattern": "\\S"
          },
          "code": {
            "description": "The code of the occupation group.",
            "type": "string",
            "maxLength": 256
          },
          "description": {
            "description": "The description of the occupation group.",
            "type": "string",
            "maxLength": 6000
          },
          "preferredLabel": {
            "description": "The preferred label of the occupation group.",
            "type": "string",
            "maxLength": 256,
            "pattern": "\\S"
          },
          "altLabels": {
            "description": "The alternative labels of the occupation group.",
            "type": "array",
            "minItems": 0,
            "maxItems": 100,
            "uniqueItems": true,
            "items": {
              "type": "string",
              "maxLength": 256
            }
          },
          "groupType": {
            "description": "The type of the occupation group, e.g., ISCOGroup or LocalGroup.",
            "type": "string",
            "enum": [
              "iscogroup",
              "localgroup"
            ]
          },
          "modelId": {
            "description": "The identifier of the model for occupation group.",
            "type": "string",
            "pattern": "^[0-9a-f]{24}$"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "if": {
          "properties": {
            "groupType": {
              "enum": [
                "iscogroup"
              ]
            }
          }
        },
        "then": {
          "properties": {
            "code": {
              "type": "string",
              "maxLength": 256,
              "pattern": "^\\d{1,4}$"
            }
          }
        },
        "else": {
          "properties": {
            "code": {
              "type": "string",
              "maxLength": 256,
              "pattern": "^(?:\\d{1,4})?[a-zA-Z]+[a-zA-Z\\d]*$"
            }
          }
        },
        "required": [
          "id",
          "UUID",
          "originUUID",
          "path",
          "UUIDHistory",
          "tabiyaPath",
          "originUri",
          "code",
          "description",
          "preferredLabel",
          "parent",
          "children",
          "altLabels",
          "groupType",
          "modelId",
          "createdAt",
          "updatedAt"
        ]
      },
      "OccupationGroupRequestParamSchemaGET": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "modelId": {
            "description": "The identifier of the model for occupation group.",
            "type": "string",
            "pattern": "^[0-9a-f]{24}$"
          }
        },
        "required": [
          "modelId"
        ]
      },
      "OccupationGroupRequestQueryParamSchemaGET": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "limit": {
            "description": "The maximum number of items to return.",
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "default": 10
          },
          "cursor": {
            "description": "A base64 string representing the cursor for pagination.",
            "type": "string",
            "maxLength": 1720,
            "pattern": "\\S"
          }
        }
      },
      "OccupationGroupResponseSchemaGET": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "id": {
                  "description": "The id of the occupation group. It can be used to retrieve the occupation group from the server.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{24}$"
                },
                "UUID": {
                  "description": "The UUID of the occupation group. It can be used to identify the occupation group across systems.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
                },
                "originUUID": {
                  "description": "The last UUID in the UUIDHistory of occupation group. It can be used to identify the occupation group across systems.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
                },
                "path": {
                  "description": "The path to the occupation group resource using the resource id",
                  "type": "string",
                  "format": "uri",
                  "pattern": "^https://.*",
                  "maxLength": 4096
                },
                "tabiyaPath": {
                  "description": "The path to the occupation group resource using the resource UUID",
                  "type": "string",
                  "format": "uri",
                  "pattern": "^https://.*",
                  "maxLength": 4096
                },
                "parent": {
                  "description": "The parent occupation group of this occupation group.",
                  "type": [
                    "object",
                    "null"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "id": {
                      "description": "The id of the parent occupation group.",
                      "type": "string",
                      "pattern": "^[0-9a-f]{24}$"
                    },
                    "UUID": {
                      "description": "The UUID of the occupation group. It can be used to identify the parent occupation group.",
                      "type": "string",
                      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
                    },
                    "code": {
                      "description": "The code of the parent occupation group.",
                      "type": "string",
                      "maxLength": 256
                    },
                    "preferredLabel": {
                      "description": "The preferred label of the parent occupation group.",
                      "type": "string",
                      "maxLength": 256,
                      "pattern": "\\S"
                    },
                    "objectType": {
                      "description": "The type of the occupation group, e.g., ISCOGroup or LocalGroup.",
                      "type": "string",
                      "enum": [
                        "iscogroup",
                        "localgroup"
                      ]
                    }
                  },
                  "if": {
                    "properties": {
                      "objectType": {
                        "enum": [
                          "iscogroup"
                        ]
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "code": {
                        "type": "string",
                        "maxLength": 256,
                        "pattern": "^\\d{1,4}$"
                      }
                    }
                  },
                  "else": {
                    "properties": {
                      "code": {
                        "type": "string",
                        "maxLength": 256,
                        "pattern": "^(?:\\d{1,4})?[a-zA-Z]+[a-zA-Z\\d]*$"
                      }
                    }
                  }
                },
                "children": {
                  "description": "The children of this occupation group, which can be either occupation groups or occupations.",
                  "type": "array",
                  "minItems": 0,
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "description": "The id of the parent occupation group.",
                        "type": "string",
                        "pattern": "^[0-9a-f]{24}$"
                      },
                      "UUID": {
                        "description": "The UUID of the occupation group. It can be used to identify the parent occupation group.",
                        "type": "string",
                        "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
                      },
                      "code": {
                        "description": "The code of the parent occupation group.",
                        "type": "string",
                        "maxLength": 256
                      },
                      "preferredLabel": {
                        "description": "The preferred label of the parent occupation group.",
                        "type": "string",
                        "maxLength": 256,
                        "pattern": "\\S"
                      },
                      "objectType": {
                        "description": "The type of the occupation group, e.g., ISCOGroup, LocalGroup, ESCOOccupation, LocalOccupation.",
                        "type": "string",
                        "enum": [
                          "iscogroup",
                          "localgroup",
                          "escooccupation",
                          "localoccupation"
                        ]
                      }
                    },
                    "allOf": [
                      {
                        "if": {
                          "properties": {
                            "objectType": {
                              "const": "iscogroup"
                            }
                          }
                        },
                        "then": {
                          "properties": {
                            "code": {
                              "type": "string",
                              "maxLength": 256,
                              "pattern": "^\\d{1,4}$"
                            }
                          }
                        }
                      },
                      {
                        "if": {
                          "properties": {
                            "objectType": {
                              "const": "localgroup"
                            }
                          }
                        },
                        "then": {
                          "properties": {
                            "code": {
                              "type": "string",
                              "maxLength": 256,
                              "pattern": "^(?:\\d{1,4})?[a-zA-Z]+[a-zA-Z\\d]*$"
                            }
                          }
                        }
                      },
                      {
                        "if": {
                          "properties": {
                            "objectType": {
                              "const": "escooccupation"
                            }
                          }
                        },
                        "then": {
                          "properties": {
                            "code": {
                              "type": "string",
                              "maxLength": 256,
                              "pattern": "^\\d{4}(?:\\.\\d+)+$"
                            }
                          }
                        }
                      },
                      {
                        "if": {
                          "properties": {
                            "objectType": {
                              "const": "localoccupation"
                            }
                          }
                        },
                        "then": {
                          "properties": {
                            "code": {
                              "type": "string",
                              "maxLength": 256,
                              "pattern": "^(?:\\d{4}(?:\\.\\d+)*(?:_\\d+)+|[a-zA-Z\\d]+(?:_\\d+)+)$"
                            }
                          }
                        }
                      }
                    ]
                  }
                },
                "UUIDHistory": {
                  "description": "The UUIDs history of the occupation group.",
                  "type": "array",
                  "minItems": 0,
                  "maxItems": 10000,
                  "uniqueItems": true,
                  "items": {
                    "type": "string",
                    "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
                    "maxLength": 36
                  }
                },
                "originUri": {
                  "description": "The origin URI of the occupation group.",
                  "type": "string",
                  "maxLength": 4096,
                  "format": "uri",
                  "pattern": "\\S"
                },
                "code": {
                  "description": "The code of the occupation group.",
                  "type": "string",
                  "maxLength": 256
                },
                "description": {
                  "description": "The description of the occupation group.",
                  "type": "string",
                  "maxLength": 6000
                },
                "preferredLabel": {
                  "description": "The preferred label of the occupation group.",
                  "type": "string",
                  "maxLength": 256,
                  "pattern": "\\S"
                },
                "altLabels": {
                  "description": "The alternative labels of the occupation group.",
                  "type": "array",
                  "minItems": 0,
                  "maxItems": 100,
                  "uniqueItems": true,
                  "items": {
                    "type": "string",
                    "maxLength": 256
                  }
                },
                "groupType": {
                  "description": "The type of the occupation group, e.g., ISCOGroup or LocalGroup.",
                  "type": "string",
                  "enum": [
                    "iscogroup",
                    "localgroup"
                  ]
                },
                "modelId": {
                  "description": "The identifier of the model for occupation group.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{24}$"
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time"
                },
                "updatedAt": {
                  "type": "string",
                  "format": "date-time"
                }
              },
              "if": {
                "properties": {
                  "groupType": {
                    "enum": [
                      "iscogroup"
                    ]
                  }
                }
              },
              "then": {
                "properties": {
                  "code": {
                    "type": "string",
                    "maxLength": 256,
                    "pattern": "^\\d{1,4}$"
                  }
                }
              },
              "else": {
                "properties": {
                  "code": {
                    "type": "string",
                    "maxLength": 256,
                    "pattern": "^(?:\\d{1,4})?[a-zA-Z]+[a-zA-Z\\d]*$"
                  }
                }
              },
              "required": [
                "id",
                "UUID",
                "originUUID",
                "path",
                "UUIDHistory",
                "tabiyaPath",
                "originUri",
                "code",
                "description",
                "preferredLabel",
                "parent",
                "children",
                "altLabels",
                "groupType",
                "modelId",
                "createdAt",
                "updatedAt"
              ]
            }
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "description": "The maximum number of occupation groups that could be returned in the response.",
            "maximum": 100,
            "default": 10
          },
          "nextCursor": {
            "type": [
              "string",
              "null"
            ],
            "description": "A base64 string representing the cursor for the next page of results. Null if there is no next page.",
            "maxLength": 1720,
            "pattern": "\\S"
          }
        },
        "required": [
          "data",
          "limit"
        ],
        "additionalProperties": false
      },
      "OccupationGroupRequestByIdParamSchemaGET": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "modelId": {
            "description": "The identifier of the model for occupation group.",
            "type": "string",
            "pattern": "^[0-9a-f]{24}$"
          },
          "id": {
            "description": "The id of the occupation group. It can be used to retrieve the occupation group from the server.",
            "type": "string",
            "pattern": "^[0-9a-f]{24}$"
          }
        },
        "required": [
          "modelId",
          "id"
        ]
      },
      "OccupationRequestSchemaPOST": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "UUIDHistory": {
            "description": "The UUIDs history of the occupation.",
            "type": "array",
            "minItems": 0,
            "maxItems": 10000,
            "uniqueItems": true,
            "items": {
              "type": "string",
              "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
              "maxLength": 50
            }
          },
          "originUri": {
            "description": "The origin URI of the occupation.",
            "type": "string",
            "format": "uri",
            "maxLength": 4096,
            "pattern": "\\S"
          },
          "occupationType": {
            "description": "The occupation classification type (e.g., ESCOOccupation or LocalOccupation).",
            "type": "string",
            "enum": [
              "escooccupation",
              "localoccupation"
            ]
          },
          "code": {
            "description": "The code of the occupation.",
            "type": "string",
            "maxLength": 256
          },
          "occupationGroupCode": {
            "description": "The code of the parent occupation group.",
            "type": "string",
            "maxLength": 256
          },
          "preferredLabel": {
            "description": "The preferred label of the occupation.",
            "type": "string",
            "maxLength": 256,
            "pattern": "\\S"
          },
          "altLabels": {
            "description": "Alternative labels for the occupation.",
            "type": "array",
            "minItems": 0,
            "maxItems": 100,
            "uniqueItems": true,
            "items": {
              "type": "string",
              "maxLength": 256
            }
          },
          "definition": {
            "description": "The formal definition of the occupation.",
            "type": "string",
            "maxLength": 4000
          },
          "description": {
            "description": "Additional descriptive information about the occupation.",
            "type": "string",
            "maxLength": 6000
          },
          "regulatedProfessionNote": {
            "description": "Regulatory information for legally regulated professions.",
            "type": "string",
            "maxLength": 4000
          },
          "scopeNote": {
            "description": "Scope clarification for the occupation's application.",
            "type": "string",
            "maxLength": 4000
          },
          "isLocalized": {
            "description": "Indicates if the occupation has localized variants. Must be false for LocalOccupation.",
            "type": "boolean"
          },
          "modelId": {
            "description": "The identifier of the model containing this occupation.",
            "type": "string",
            "pattern": "^[0-9a-f]{24}$"
          }
        },
        "if": {
          "properties": {
            "occupationType": {
              "const": "escooccupation"
            }
          }
        },
        "then": {
          "properties": {
            "code": {
              "type": "string",
              "maxLength": 100,
              "pattern": "^\\d{4}(?:\\.\\d+)+$"
            },
            "occupationGroupCode": {
              "type": "string",
              "maxLength": 100,
              "pattern": "^\\d{1,4}$"
            }
          }
        },
        "else": {
          "properties": {
            "code": {
              "type": "string",
              "maxLength": 100,
              "pattern": "^(?:\\d{4}(?:\\.\\d+)*(?:_\\d+)+|[a-zA-Z\\d]+(?:_\\d+)+)$"
            },
            "occupationGroupCode": {
              "type": "string",
              "maxLength": 100,
              "pattern": "^(?:\\d{1,4})?[a-zA-Z]+[a-zA-Z\\d]*$"
            }
          }
        },
        "required": [
          "code",
          "occupationGroupCode",
          "preferredLabel",
          "originUri",
          "UUIDHistory",
          "altLabels",
          "definition",
          "description",
          "regulatedProfessionNote",
          "scopeNote",
          "modelId",
          "occupationType",
          "isLocalized"
        ]
      },
      "OccupationResponseSchemaPOST": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "The unique identifier of the occupation.",
            "type": "string",
            "pattern": "^[0-9a-f]{24}$"
          },
          "UUID": {
            "description": "The UUID of the occupation for cross-system identification.",
            "type": "string",
            "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
          },
          "originUUID": {
            "description": "The original UUID of the occupation, i.e., the first UUID in UUIDHistory",
            "type": "string",
            "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
            "maxLength": 50
          },
          "path": {
            "description": "Resource path using the occupation's ID.",
            "type": "string",
            "format": "uri",
            "pattern": "^https://.*",
            "maxLength": 4096
          },
          "tabiyaPath": {
            "description": "Resource path using the occupation's UUID.",
            "type": "string",
            "format": "uri",
            "pattern": "^https://.*",
            "maxLength": 4096
          },
          "parent": {
            "description": "The parent occupation of this occupation.",
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": false,
            "properties": {
              "id": {
                "description": "The id of the parent occupation.",
                "type": "string",
                "pattern": "^[0-9a-f]{24}$"
              },
              "UUID": {
                "description": "The UUID of the occupation. It can be used to identify the parent occupation.",
                "type": "string",
                "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
              },
              "code": {
                "description": "The code of the parent occupation.",
                "type": "string",
                "maxLength": 256
              },
              "occupationGroupCode": {
                "description": "The code of the parent occupation group.",
                "type": "string",
                "maxLength": 256
              },
              "preferredLabel": {
                "description": "The preferred label of the parent occupation.",
                "type": "string",
                "maxLength": 256,
                "pattern": "\\S"
              },
              "objectType": {
                "description": "The type of the occupation, e.g., ISCOGroup or LocalGroup.",
                "type": "string",
                "enum": [
                  "iscogroup",
                  "localgroup",
                  "escooccupation",
                  "localoccupation"
                ]
              }
            },
            "allOf": [
              {
                "if": {
                  "properties": {
                    "objectType": {
                      "const": "iscogroup"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "code": {
                      "type": "string",
                      "pattern": "^\\d{1,4}$",
                      "maxLength": 256
                    },
                    "occupationGroupCode": {
                      "type": "string",
                      "pattern": "^\\d{1,4}$",
                      "maxLength": 256
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "objectType": {
                      "const": "localgroup"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "code": {
                      "type": "string",
                      "pattern": "^(?:\\d{1,4})?[a-zA-Z]+[a-zA-Z\\d]*$",
                      "maxLength": 256
                    },
                    "occupationGroupCode": {
                      "type": "string",
                      "pattern": "^(?:\\d{1,4})?[a-zA-Z]+[a-zA-Z\\d]*$",
                      "maxLength": 256
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "objectType": {
                      "const": "escooccupation"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "code": {
                      "type": "string",
                      "pattern": "^\\d{4}(?:\\.\\d+)+$",
                      "maxLength": 256
                    },
                    "occupationGroupCode": {
                      "type": "string",
                      "pattern": "^\\d{1,4}$",
                      "maxLength": 256
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "objectType": {
                      "const": "localoccupation"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "code": {
                      "type": "string",
                      "pattern": "^(?:\\d{4}(?:\\.\\d+)*(?:_\\d+)+|[a-zA-Z\\d]+(?:_\\d+)+)$",
                      "maxLength": 256
                    },
                    "occupationGroupCode": {
                      "type": "string",
                      "pattern": "^(?:\\d{1,4})?[a-zA-Z]+[a-zA-Z\\d]*$",
                      "maxLength": 256
                    }
                  }
                }
              }
            ]
          },
          "children": {
            "description": "The children of this occupation.",
            "type": "array",
            "minItems": 0,
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "id": {
                  "description": "The id of the child occupation.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{24}$"
                },
                "UUID": {
                  "description": "The UUID of the child occupation.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
                },
                "code": {
                  "description": "The code of the child occupation.",
                  "type": "string",
                  "maxLength": 256
                },
                "occupationGroupCode": {
                  "description": "The code of the child occupation group.",
                  "type": "string",
                  "maxLength": 256
                },
                "preferredLabel": {
                  "description": "The preferred label of the child occupation.",
                  "type": "string",
                  "maxLength": 256,
                  "pattern": "\\S"
                },
                "objectType": {
                  "description": "The type of the occupation, e.g., ISCOGroup or LocalGroup.",
                  "type": "string",
                  "enum": [
                    "escooccupation",
                    "localoccupation"
                  ]
                }
              },
              "allOf": [
                {
                  "if": {
                    "properties": {
                      "objectType": {
                        "const": "escooccupation"
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "code": {
                        "type": "string",
                        "pattern": "^\\d{4}(?:\\.\\d+)+$",
                        "maxLength": 256
                      },
                      "occupationGroupCode": {
                        "type": "string",
                        "pattern": "^\\d{1,4}$",
                        "maxLength": 256
                      }
                    }
                  }
                },
                {
                  "if": {
                    "properties": {
                      "objectType": {
                        "const": "localoccupation"
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "code": {
                        "type": "string",
                        "pattern": "^(?:\\d{4}(?:\\.\\d+)*(?:_\\d+)+|[a-zA-Z\\d]+(?:_\\d+)+)$",
                        "maxLength": 256
                      },
                      "occupationGroupCode": {
                        "type": "string",
                        "pattern": "^(?:\\d{1,4})?[a-zA-Z]+[a-zA-Z\\d]*$",
                        "maxLength": 256
                      }
                    }
                  }
                }
              ]
            }
          },
          "requiresSkills": {
            "description": "Skills required for this occupation with relationship metadata.",
            "type": "array",
            "minItems": 0,
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "id": {
                  "description": "The ID of the required skill.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{24}$"
                },
                "UUID": {
                  "description": "The UUID of the required skill.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
                },
                "preferredLabel": {
                  "description": "The preferred label of the required skill.",
                  "type": "string",
                  "maxLength": 256,
                  "pattern": "\\S"
                },
                "isLocalized": {
                  "description": "Indicates if the required skill is localized.",
                  "type": "boolean"
                },
                "objectType": {
                  "description": "The object type of the required skill.",
                  "type": "string",
                  "enum": [
                    "skill"
                  ]
                },
                "relationType": {
                  "description": "Used for ESCOOccupations only.",
                  "type": [
                    "string",
                    "null"
                  ],
                  "enum": [
                    "",
                    "essential",
                    "optional",
                    null
                  ]
                },
                "signallingValue": {
                  "description": "Used for LocalOccupations only.",
                  "type": [
                    "number",
                    "null"
                  ],
                  "minimum": 0,
                  "maximum": 100
                },
                "signallingValueLabel": {
                  "description": "Used for LocalOccupations only.",
                  "type": [
                    "string",
                    "null"
                  ],
                  "maxLength": 256,
                  "pattern": "\\S"
                }
              },
              "required": [
                "id",
                "UUID",
                "preferredLabel",
                "isLocalized",
                "objectType"
              ]
            }
          },
          "UUIDHistory": {
            "description": "The UUIDs history of the occupation.",
            "type": "array",
            "minItems": 0,
            "maxItems": 10000,
            "uniqueItems": true,
            "items": {
              "type": "string",
              "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
              "maxLength": 50
            }
          },
          "originUri": {
            "description": "The origin URI of the occupation.",
            "type": "string",
            "format": "uri",
            "maxLength": 4096,
            "pattern": "\\S"
          },
          "occupationType": {
            "description": "The occupation classification type (e.g., ESCOOccupation or LocalOccupation).",
            "type": "string",
            "enum": [
              "escooccupation",
              "localoccupation"
            ]
          },
          "code": {
            "description": "The code of the occupation.",
            "type": "string",
            "maxLength": 256
          },
          "occupationGroupCode": {
            "description": "The code of the parent occupation group.",
            "type": "string",
            "maxLength": 256
          },
          "preferredLabel": {
            "description": "The preferred label of the occupation.",
            "type": "string",
            "maxLength": 256,
            "pattern": "\\S"
          },
          "altLabels": {
            "description": "Alternative labels for the occupation.",
            "type": "array",
            "minItems": 0,
            "maxItems": 100,
            "uniqueItems": true,
            "items": {
              "type": "string",
              "maxLength": 256
            }
          },
          "definition": {
            "description": "The formal definition of the occupation.",
            "type": "string",
            "maxLength": 4000
          },
          "description": {
            "description": "Additional descriptive information about the occupation.",
            "type": "string",
            "maxLength": 6000
          },
          "regulatedProfessionNote": {
            "description": "Regulatory information for legally regulated professions.",
            "type": "string",
            "maxLength": 4000
          },
          "scopeNote": {
            "description": "Scope clarification for the occupation's application.",
            "type": "string",
            "maxLength": 4000
          },
          "isLocalized": {
            "description": "Indicates if the occupation has localized variants. Must be false for LocalOccupation.",
            "type": "boolean"
          },
          "modelId": {
            "description": "The identifier of the model containing this occupation.",
            "type": "string",
            "pattern": "^[0-9a-f]{24}$"
          },
          "createdAt": {
            "description": "Timestamp of record creation.",
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "description": "Timestamp of last record modification.",
            "type": "string",
            "format": "date-time"
          }
        },
        "allOf": [
          {
            "if": {
              "properties": {
                "occupationType": {
                  "const": "escooccupation"
                }
              }
            },
            "then": {
              "properties": {
                "code": {
                  "type": "string",
                  "pattern": "^\\d{4}(?:\\.\\d+)+$",
                  "maxLength": 256
                },
                "occupationGroupCode": {
                  "type": "string",
                  "pattern": "^\\d{1,4}$",
                  "maxLength": 256
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "occupationType": {
                  "const": "localoccupation"
                }
              }
            },
            "then": {
              "properties": {
                "code": {
                  "type": "string",
                  "pattern": "^(?:\\d{4}(?:\\.\\d+)*(?:_\\d+)+|[a-zA-Z\\d]+(?:_\\d+)+)$",
                  "maxLength": 256
                },
                "occupationGroupCode": {
                  "type": "string",
                  "pattern": "^(?:\\d{1,4})?[a-zA-Z]+[a-zA-Z\\d]*$",
                  "maxLength": 256
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "occupationType": {
                  "const": "escooccupation"
                }
              }
            },
            "then": {
              "properties": {
                "requiresSkills": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "relationType": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "relationType"
                    ]
                  }
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "occupationType": {
                  "const": "localoccupation"
                }
              }
            },
            "then": {
              "properties": {
                "requiresSkills": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "signallingValue": {
                        "type": "number"
                      },
                      "signallingValueLabel": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "signallingValue",
                      "signallingValueLabel"
                    ]
                  }
                }
              }
            }
          }
        ],
        "required": [
          "id",
          "UUID",
          "originUUID",
          "UUIDHistory",
          "path",
          "tabiyaPath",
          "code",
          "occupationGroupCode",
          "originUri",
          "preferredLabel",
          "altLabels",
          "definition",
          "description",
          "regulatedProfessionNote",
          "scopeNote",
          "occupationType",
          "modelId",
          "isLocalized",
          "parent",
          "requiresSkills",
          "children",
          "createdAt",
          "updatedAt"
        ]
      },
      "OccupationRequestParamSchemaGET": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "modelId": {
            "description": "The identifier of the model for occupation.",
            "type": "string",
            "pattern": "^[0-9a-f]{24}$"
          }
        },
        "required": [
          "modelId"
        ]
      },
      "OccupationRequestByIdParamSchemaGET": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "modelId": {
            "description": "The identifier of the model for occupation.",
            "type": "string",
            "pattern": "^[0-9a-f]{24}$"
          },
          "id": {
            "description": "The id of the occupation. It can be used to retrieve the occupation from the server.",
            "type": "string",
            "pattern": "^[0-9a-f]{24}$"
          }
        },
        "required": [
          "modelId",
          "id"
        ]
      },
      "OccupationRequestQueryParamSchemaGET": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "limit": {
            "description": "The maximum number of items to return.",
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "default": 10
          },
          "cursor": {
            "description": "A base64 string representing the cursor for pagination.",
            "type": "string",
            "maxLength": 1024,
            "pattern": "\\S"
          }
        }
      },
      "OccupationResponseSchemaGET": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$id": "/components/schemas/OccupationItem",
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "id": {
                  "description": "The unique identifier of the occupation.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{24}$"
                },
                "UUID": {
                  "description": "The UUID of the occupation for cross-system identification.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
                },
                "originUUID": {
                  "description": "The original UUID of the occupation, i.e., the first UUID in UUIDHistory",
                  "type": "string",
                  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
                  "maxLength": 50
                },
                "path": {
                  "description": "Resource path using the occupation's ID.",
                  "type": "string",
                  "format": "uri",
                  "pattern": "^https://.*",
                  "maxLength": 4096
                },
                "tabiyaPath": {
                  "description": "Resource path using the occupation's UUID.",
                  "type": "string",
                  "format": "uri",
                  "pattern": "^https://.*",
                  "maxLength": 4096
                },
                "parent": {
                  "description": "The parent occupation of this occupation.",
                  "type": [
                    "object",
                    "null"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "id": {
                      "description": "The id of the parent occupation.",
                      "type": "string",
                      "pattern": "^[0-9a-f]{24}$"
                    },
                    "UUID": {
                      "description": "The UUID of the occupation. It can be used to identify the parent occupation.",
                      "type": "string",
                      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
                    },
                    "code": {
                      "description": "The code of the parent occupation.",
                      "type": "string",
                      "maxLength": 256
                    },
                    "occupationGroupCode": {
                      "description": "The code of the parent occupation group.",
                      "type": "string",
                      "maxLength": 256
                    },
                    "preferredLabel": {
                      "description": "The preferred label of the parent occupation.",
                      "type": "string",
                      "maxLength": 256,
                      "pattern": "\\S"
                    },
                    "objectType": {
                      "description": "The type of the occupation, e.g., ISCOGroup or LocalGroup.",
                      "type": "string",
                      "enum": [
                        "iscogroup",
                        "localgroup",
                        "escooccupation",
                        "localoccupation"
                      ]
                    }
                  },
                  "allOf": [
                    {
                      "if": {
                        "properties": {
                          "objectType": {
                            "const": "iscogroup"
                          }
                        }
                      },
                      "then": {
                        "properties": {
                          "code": {
                            "type": "string",
                            "pattern": "^\\d{1,4}$",
                            "maxLength": 256
                          },
                          "occupationGroupCode": {
                            "type": "string",
                            "pattern": "^\\d{1,4}$",
                            "maxLength": 256
                          }
                        }
                      }
                    },
                    {
                      "if": {
                        "properties": {
                          "objectType": {
                            "const": "localgroup"
                          }
                        }
                      },
                      "then": {
                        "properties": {
                          "code": {
                            "type": "string",
                            "pattern": "^(?:\\d{1,4})?[a-zA-Z]+[a-zA-Z\\d]*$",
                            "maxLength": 256
                          },
                          "occupationGroupCode": {
                            "type": "string",
                            "pattern": "^(?:\\d{1,4})?[a-zA-Z]+[a-zA-Z\\d]*$",
                            "maxLength": 256
                          }
                        }
                      }
                    },
                    {
                      "if": {
                        "properties": {
                          "objectType": {
                            "const": "escooccupation"
                          }
                        }
                      },
                      "then": {
                        "properties": {
                          "code": {
                            "type": "string",
                            "pattern": "^\\d{4}(?:\\.\\d+)+$",
                            "maxLength": 256
                          },
                          "occupationGroupCode": {
                            "type": "string",
                            "pattern": "^\\d{1,4}$",
                            "maxLength": 256
                          }
                        }
                      }
                    },
                    {
                      "if": {
                        "properties": {
                          "objectType": {
                            "const": "localoccupation"
                          }
                        }
                      },
                      "then": {
                        "properties": {
                          "code": {
                            "type": "string",
                            "pattern": "^(?:\\d{4}(?:\\.\\d+)*(?:_\\d+)+|[a-zA-Z\\d]+(?:_\\d+)+)$",
                            "maxLength": 256
                          },
                          "occupationGroupCode": {
                            "type": "string",
                            "pattern": "^(?:\\d{1,4})?[a-zA-Z]+[a-zA-Z\\d]*$",
                            "maxLength": 256
                          }
                        }
                      }
                    }
                  ]
                },
                "children": {
                  "description": "The children of this occupation.",
                  "type": "array",
                  "minItems": 0,
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "description": "The id of the child occupation.",
                        "type": "string",
                        "pattern": "^[0-9a-f]{24}$"
                      },
                      "UUID": {
                        "description": "The UUID of the child occupation.",
                        "type": "string",
                        "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
                      },
                      "code": {
                        "description": "The code of the child occupation.",
                        "type": "string",
                        "maxLength": 256
                      },
                      "occupationGroupCode": {
                        "description": "The code of the child occupation group.",
                        "type": "string",
                        "maxLength": 256
                      },
                      "preferredLabel": {
                        "description": "The preferred label of the child occupation.",
                        "type": "string",
                        "maxLength": 256,
                        "pattern": "\\S"
                      },
                      "objectType": {
                        "description": "The type of the occupation, e.g., ISCOGroup or LocalGroup.",
                        "type": "string",
                        "enum": [
                          "escooccupation",
                          "localoccupation"
                        ]
                      }
                    },
                    "allOf": [
                      {
                        "if": {
                          "properties": {
                            "objectType": {
                              "const": "escooccupation"
                            }
                          }
                        },
                        "then": {
                          "properties": {
                            "code": {
                              "type": "string",
                              "pattern": "^\\d{4}(?:\\.\\d+)+$",
                              "maxLength": 256
                            },
                            "occupationGroupCode": {
                              "type": "string",
                              "pattern": "^\\d{1,4}$",
                              "maxLength": 256
                            }
                          }
                        }
                      },
                      {
                        "if": {
                          "properties": {
                            "objectType": {
                              "const": "localoccupation"
                            }
                          }
                        },
                        "then": {
                          "properties": {
                            "code": {
                              "type": "string",
                              "pattern": "^(?:\\d{4}(?:\\.\\d+)*(?:_\\d+)+|[a-zA-Z\\d]+(?:_\\d+)+)$",
                              "maxLength": 256
                            },
                            "occupationGroupCode": {
                              "type": "string",
                              "pattern": "^(?:\\d{1,4})?[a-zA-Z]+[a-zA-Z\\d]*$",
                              "maxLength": 256
                            }
                          }
                        }
                      }
                    ]
                  }
                },
                "requiresSkills": {
                  "description": "Skills required for this occupation with relationship metadata.",
                  "type": "array",
                  "minItems": 0,
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "description": "The ID of the required skill.",
                        "type": "string",
                        "pattern": "^[0-9a-f]{24}$"
                      },
                      "UUID": {
                        "description": "The UUID of the required skill.",
                        "type": "string",
                        "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
                      },
                      "preferredLabel": {
                        "description": "The preferred label of the required skill.",
                        "type": "string",
                        "maxLength": 256,
                        "pattern": "\\S"
                      },
                      "isLocalized": {
                        "description": "Indicates if the required skill is localized.",
                        "type": "boolean"
                      },
                      "objectType": {
                        "description": "The object type of the required skill.",
                        "type": "string",
                        "enum": [
                          "skill"
                        ]
                      },
                      "relationType": {
                        "description": "Used for ESCOOccupations only.",
                        "type": [
                          "string",
                          "null"
                        ],
                        "enum": [
                          "",
                          "essential",
                          "optional",
                          null
                        ]
                      },
                      "signallingValue": {
                        "description": "Used for LocalOccupations only.",
                        "type": [
                          "number",
                          "null"
                        ],
                        "minimum": 0,
                        "maximum": 100
                      },
                      "signallingValueLabel": {
                        "description": "Used for LocalOccupations only.",
                        "type": [
                          "string",
                          "null"
                        ],
                        "maxLength": 256,
                        "pattern": "\\S"
                      }
                    },
                    "required": [
                      "id",
                      "UUID",
                      "preferredLabel",
                      "isLocalized",
                      "objectType"
                    ]
                  }
                },
                "UUIDHistory": {
                  "description": "The UUIDs history of the occupation.",
                  "type": "array",
                  "minItems": 0,
                  "maxItems": 10000,
                  "uniqueItems": true,
                  "items": {
                    "type": "string",
                    "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
                    "maxLength": 50
                  }
                },
                "originUri": {
                  "description": "The origin URI of the occupation.",
                  "type": "string",
                  "format": "uri",
                  "maxLength": 4096,
                  "pattern": "\\S"
                },
                "occupationType": {
                  "description": "The occupation classification type (e.g., ESCOOccupation or LocalOccupation).",
                  "type": "string",
                  "enum": [
                    "escooccupation",
                    "localoccupation"
                  ]
                },
                "code": {
                  "description": "The code of the occupation.",
                  "type": "string",
                  "maxLength": 256
                },
                "occupationGroupCode": {
                  "description": "The code of the parent occupation group.",
                  "type": "string",
                  "maxLength": 256
                },
                "preferredLabel": {
                  "description": "The preferred label of the occupation.",
                  "type": "string",
                  "maxLength": 256,
                  "pattern": "\\S"
                },
                "altLabels": {
                  "description": "Alternative labels for the occupation.",
                  "type": "array",
                  "minItems": 0,
                  "maxItems": 100,
                  "uniqueItems": true,
                  "items": {
                    "type": "string",
                    "maxLength": 256
                  }
                },
                "definition": {
                  "description": "The formal definition of the occupation.",
                  "type": "string",
                  "maxLength": 4000
                },
                "description": {
                  "description": "Additional descriptive information about the occupation.",
                  "type": "string",
                  "maxLength": 6000
                },
                "regulatedProfessionNote": {
                  "description": "Regulatory information for legally regulated professions.",
                  "type": "string",
                  "maxLength": 4000
                },
                "scopeNote": {
                  "description": "Scope clarification for the occupation's application.",
                  "type": "string",
                  "maxLength": 4000
                },
                "isLocalized": {
                  "description": "Indicates if the occupation has localized variants. Must be false for LocalOccupation.",
                  "type": "boolean"
                },
                "modelId": {
                  "description": "The identifier of the model containing this occupation.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{24}$"
                },
                "createdAt": {
                  "description": "Timestamp of record creation.",
                  "type": "string",
                  "format": "date-time"
                },
                "updatedAt": {
                  "description": "Timestamp of last record modification.",
                  "type": "string",
                  "format": "date-time"
                }
              },
              "allOf": [
                {
                  "if": {
                    "properties": {
                      "occupationType": {
                        "const": "escooccupation"
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "code": {
                        "type": "string",
                        "pattern": "^\\d{4}(?:\\.\\d+)+$",
                        "maxLength": 256
                      },
                      "occupationGroupCode": {
                        "type": "string",
                        "pattern": "^\\d{1,4}$",
                        "maxLength": 256
                      }
                    }
                  }
                },
                {
                  "if": {
                    "properties": {
                      "occupationType": {
                        "const": "localoccupation"
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "code": {
                        "type": "string",
                        "pattern": "^(?:\\d{4}(?:\\.\\d+)*(?:_\\d+)+|[a-zA-Z\\d]+(?:_\\d+)+)$",
                        "maxLength": 256
                      },
                      "occupationGroupCode": {
                        "type": "string",
                        "pattern": "^(?:\\d{1,4})?[a-zA-Z]+[a-zA-Z\\d]*$",
                        "maxLength": 256
                      }
                    }
                  }
                },
                {
                  "if": {
                    "properties": {
                      "occupationType": {
                        "const": "escooccupation"
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "requiresSkills": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "relationType": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "relationType"
                          ]
                        }
                      }
                    }
                  }
                },
                {
                  "if": {
                    "properties": {
                      "occupationType": {
                        "const": "localoccupation"
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "requiresSkills": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "signallingValue": {
                              "type": "number"
                            },
                            "signallingValueLabel": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "signallingValue",
                            "signallingValueLabel"
                          ]
                        }
                      }
                    }
                  }
                }
              ],
              "required": [
                "id",
                "UUID",
                "originUUID",
                "UUIDHistory",
                "path",
                "tabiyaPath",
                "code",
                "occupationGroupCode",
                "originUri",
                "preferredLabel",
                "altLabels",
                "definition",
                "description",
                "regulatedProfessionNote",
                "scopeNote",
                "occupationType",
                "modelId",
                "isLocalized",
                "parent",
                "requiresSkills",
                "children",
                "createdAt",
                "updatedAt"
              ]
            },
            "description": "Array of occupation data for the current page"
          },
          "limit": {
            "type": "integer",
            "description": "Number of data returned in this page.",
            "minimum": 1,
            "maximum": 100,
            "default": 10
          },
          "nextCursor": {
            "type": [
              "string",
              "null"
            ],
            "description": "Cursor to fetch the next page of results. Opaque token encoding the last item's sort key(s). Returns null if this is the last page.",
            "maxLength": 1024,
            "pattern": "\\S"
          }
        },
        "required": [
          "data",
          "limit"
        ]
      },
      "SkillGroupRequestSchemaPOST": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "UUIDHistory": {
            "description": "The UUIDs history of the skill group.",
            "type": "array",
            "minItems": 0,
            "maxItems": 10000,
            "uniqueItems": true,
            "items": {
              "type": "string",
              "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
              "maxLength": 36
            }
          },
          "originUri": {
            "description": "The origin URI of the skill group.",
            "type": "string",
            "maxLength": 4096,
            "format": "uri",
            "pattern": "\\S"
          },
          "code": {
            "description": "The code of the skill group.",
            "type": "string",
            "maxLength": 256,
            "pattern": "^([a-zA-Z]\\d+(\\.\\d+)*|[a-zA-Z])$"
          },
          "description": {
            "description": "The description of the skill group.",
            "type": "string",
            "maxLength": 6000
          },
          "scopeNote": {
            "description": "The scope note of the skill group.",
            "type": "string",
            "maxLength": 4000
          },
          "preferredLabel": {
            "description": "The preferred label of the skill group.",
            "type": "string",
            "maxLength": 256,
            "pattern": "\\S"
          },
          "altLabels": {
            "description": "The alternative labels of the skill group.",
            "type": "array",
            "minItems": 0,
            "maxItems": 100,
            "uniqueItems": true,
            "items": {
              "type": "string",
              "maxLength": 256
            }
          },
          "modelId": {
            "description": "The identifier of the model for skill group.",
            "type": "string",
            "pattern": "^[0-9a-f]{24}$"
          }
        },
        "required": [
          "preferredLabel",
          "originUri",
          "UUIDHistory",
          "code",
          "description",
          "altLabels",
          "modelId",
          "scopeNote"
        ]
      },
      "SkillGroupResponseSchemaPOST": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "The id of the skill group. It can be used to retrieve the skill group from the server.",
            "type": "string",
            "pattern": "^[0-9a-f]{24}$"
          },
          "UUID": {
            "description": "The UUID of the skill group. It can be used to identify the skill group across systems.",
            "type": "string",
            "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
          },
          "originUUID": {
            "description": "The last UUID in the UUIDHistory of skill group. It can be used to identify the skill group across systems.",
            "type": "string",
            "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
          },
          "path": {
            "description": "The path to the skill group resource using the resource id",
            "type": "string",
            "format": "uri",
            "pattern": "^https://.*",
            "maxLength": 4096
          },
          "tabiyaPath": {
            "description": "The path to the skill group resource using the resource UUID",
            "type": "string",
            "format": "uri",
            "pattern": "^https://.*",
            "maxLength": 4096
          },
          "parents": {
            "description": "The parent skill group of this skill group.",
            "type": "array",
            "minItems": 0,
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "id": {
                  "description": "The id of the parent skill group.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{24}$"
                },
                "UUID": {
                  "description": "The UUID of the parent skill group. It can be used to identify the parent skill group.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
                },
                "code": {
                  "description": "The code of the parent skill group.",
                  "type": "string",
                  "maxLength": 256,
                  "pattern": "^([a-zA-Z]\\d+(\\.\\d+)*|[a-zA-Z])$"
                },
                "preferredLabel": {
                  "description": "The preferred label of the parent skill group.",
                  "type": "string",
                  "maxLength": 256,
                  "pattern": "\\S"
                },
                "objectType": {
                  "description": "The type of the skill group, e.g., SkillGroup.",
                  "type": "string",
                  "enum": [
                    "skillgroup"
                  ]
                }
              },
              "required": [
                "id",
                "UUID",
                "code",
                "preferredLabel",
                "objectType"
              ]
            }
          },
          "children": {
            "description": "The children of this skill group. which can be either skill groups or skills.",
            "type": "array",
            "minItems": 0,
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "id": {
                  "description": "The id of the child skill group or skill.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{24}$"
                },
                "UUID": {
                  "description": "The UUID of the child skill group or skill. It can be used to identify the child skill group or skill.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
                },
                "preferredLabel": {
                  "description": "The preferred label of the child skill group.",
                  "type": "string",
                  "maxLength": 256,
                  "pattern": "\\S"
                },
                "objectType": {
                  "description": "The type of the skill group, e.g., SkillGroup, Skill.",
                  "type": "string",
                  "enum": [
                    "skill",
                    "skillgroup"
                  ]
                },
                "code": {
                  "description": "Code of the skill group child",
                  "type": "string",
                  "maxLength": 256,
                  "pattern": "^([a-zA-Z]\\d+(\\.\\d+)*|[a-zA-Z])$"
                },
                "isLocalized": {
                  "description": "Indicates if the skill child is localized",
                  "type": "boolean"
                }
              },
              "allOf": [
                {
                  "if": {
                    "properties": {
                      "objectType": {
                        "const": "skillgroup"
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "code": {
                        "type": "string",
                        "maxLength": 256,
                        "pattern": "^([a-zA-Z]\\d+(\\.\\d+)*|[a-zA-Z])$"
                      }
                    },
                    "required": [
                      "code"
                    ],
                    "not": {
                      "properties": {
                        "isLocalized": {}
                      },
                      "required": [
                        "isLocalized"
                      ]
                    }
                  }
                },
                {
                  "if": {
                    "properties": {
                      "objectType": {
                        "const": "skill"
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "isLocalized": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "isLocalized"
                    ],
                    "not": {
                      "properties": {},
                      "required": [
                        "code"
                      ]
                    }
                  }
                }
              ],
              "required": [
                "id",
                "UUID",
                "preferredLabel",
                "objectType"
              ]
            }
          },
          "UUIDHistory": {
            "description": "The UUIDs history of the skill group.",
            "type": "array",
            "minItems": 0,
            "maxItems": 10000,
            "uniqueItems": true,
            "items": {
              "type": "string",
              "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
              "maxLength": 36
            }
          },
          "originUri": {
            "description": "The origin URI of the skill group.",
            "type": "string",
            "maxLength": 4096,
            "format": "uri",
            "pattern": "\\S"
          },
          "code": {
            "description": "The code of the skill group.",
            "type": "string",
            "maxLength": 256,
            "pattern": "^([a-zA-Z]\\d+(\\.\\d+)*|[a-zA-Z])$"
          },
          "description": {
            "description": "The description of the skill group.",
            "type": "string",
            "maxLength": 6000
          },
          "scopeNote": {
            "description": "The scope note of the skill group.",
            "type": "string",
            "maxLength": 4000
          },
          "preferredLabel": {
            "description": "The preferred label of the skill group.",
            "type": "string",
            "maxLength": 256,
            "pattern": "\\S"
          },
          "altLabels": {
            "description": "The alternative labels of the skill group.",
            "type": "array",
            "minItems": 0,
            "maxItems": 100,
            "uniqueItems": true,
            "items": {
              "type": "string",
              "maxLength": 256
            }
          },
          "modelId": {
            "description": "The identifier of the model for skill group.",
            "type": "string",
            "pattern": "^[0-9a-f]{24}$"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "UUID",
          "originUUID",
          "path",
          "tabiyaPath",
          "originUri",
          "code",
          "description",
          "preferredLabel",
          "parents",
          "children",
          "altLabels",
          "modelId",
          "scopeNote",
          "createdAt",
          "updatedAt",
          "UUIDHistory"
        ]
      },
      "SkillGroupResponseSchemaGETById": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "The id of the skill group. It can be used to retrieve the skill group from the server.",
            "type": "string",
            "pattern": "^[0-9a-f]{24}$"
          },
          "UUID": {
            "description": "The UUID of the skill group. It can be used to identify the skill group across systems.",
            "type": "string",
            "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
          },
          "originUUID": {
            "description": "The last UUID in the UUIDHistory of skill group. It can be used to identify the skill group across systems.",
            "type": "string",
            "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
          },
          "path": {
            "description": "The path to the skill group resource using the resource id",
            "type": "string",
            "format": "uri",
            "pattern": "^https://.*",
            "maxLength": 4096
          },
          "tabiyaPath": {
            "description": "The path to the skill group resource using the resource UUID",
            "type": "string",
            "format": "uri",
            "pattern": "^https://.*",
            "maxLength": 4096
          },
          "parents": {
            "description": "The parent skill group of this skill group.",
            "type": "array",
            "minItems": 0,
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "id": {
                  "description": "The id of the parent skill group.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{24}$"
                },
                "UUID": {
                  "description": "The UUID of the parent skill group. It can be used to identify the parent skill group.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
                },
                "code": {
                  "description": "The code of the parent skill group.",
                  "type": "string",
                  "maxLength": 256,
                  "pattern": "^([a-zA-Z]\\d+(\\.\\d+)*|[a-zA-Z])$"
                },
                "preferredLabel": {
                  "description": "The preferred label of the parent skill group.",
                  "type": "string",
                  "maxLength": 256,
                  "pattern": "\\S"
                },
                "objectType": {
                  "description": "The type of the skill group, e.g., SkillGroup.",
                  "type": "string",
                  "enum": [
                    "skillgroup"
                  ]
                }
              },
              "required": [
                "id",
                "UUID",
                "code",
                "preferredLabel",
                "objectType"
              ]
            }
          },
          "children": {
            "description": "The children of this skill group. which can be either skill groups or skills.",
            "type": "array",
            "minItems": 0,
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "id": {
                  "description": "The id of the child skill group or skill.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{24}$"
                },
                "UUID": {
                  "description": "The UUID of the child skill group or skill. It can be used to identify the child skill group or skill.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
                },
                "preferredLabel": {
                  "description": "The preferred label of the child skill group.",
                  "type": "string",
                  "maxLength": 256,
                  "pattern": "\\S"
                },
                "objectType": {
                  "description": "The type of the skill group, e.g., SkillGroup, Skill.",
                  "type": "string",
                  "enum": [
                    "skill",
                    "skillgroup"
                  ]
                },
                "code": {
                  "description": "Code of the skill group child",
                  "type": "string",
                  "maxLength": 256,
                  "pattern": "^([a-zA-Z]\\d+(\\.\\d+)*|[a-zA-Z])$"
                },
                "isLocalized": {
                  "description": "Indicates if the skill child is localized",
                  "type": "boolean"
                }
              },
              "allOf": [
                {
                  "if": {
                    "properties": {
                      "objectType": {
                        "const": "skillgroup"
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "code": {
                        "type": "string",
                        "maxLength": 256,
                        "pattern": "^([a-zA-Z]\\d+(\\.\\d+)*|[a-zA-Z])$"
                      }
                    },
                    "required": [
                      "code"
                    ],
                    "not": {
                      "properties": {
                        "isLocalized": {}
                      },
                      "required": [
                        "isLocalized"
                      ]
                    }
                  }
                },
                {
                  "if": {
                    "properties": {
                      "objectType": {
                        "const": "skill"
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "isLocalized": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "isLocalized"
                    ],
                    "not": {
                      "properties": {},
                      "required": [
                        "code"
                      ]
                    }
                  }
                }
              ],
              "required": [
                "id",
                "UUID",
                "preferredLabel",
                "objectType"
              ]
            }
          },
          "UUIDHistory": {
            "description": "The UUIDs history of the skill group.",
            "type": "array",
            "minItems": 0,
            "maxItems": 10000,
            "uniqueItems": true,
            "items": {
              "type": "string",
              "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
              "maxLength": 36
            }
          },
          "originUri": {
            "description": "The origin URI of the skill group.",
            "type": "string",
            "maxLength": 4096,
            "format": "uri",
            "pattern": "\\S"
          },
          "code": {
            "description": "The code of the skill group.",
            "type": "string",
            "maxLength": 256,
            "pattern": "^([a-zA-Z]\\d+(\\.\\d+)*|[a-zA-Z])$"
          },
          "description": {
            "description": "The description of the skill group.",
            "type": "string",
            "maxLength": 6000
          },
          "scopeNote": {
            "description": "The scope note of the skill group.",
            "type": "string",
            "maxLength": 4000
          },
          "preferredLabel": {
            "description": "The preferred label of the skill group.",
            "type": "string",
            "maxLength": 256,
            "pattern": "\\S"
          },
          "altLabels": {
            "description": "The alternative labels of the skill group.",
            "type": "array",
            "minItems": 0,
            "maxItems": 100,
            "uniqueItems": true,
            "items": {
              "type": "string",
              "maxLength": 256
            }
          },
          "modelId": {
            "description": "The identifier of the model for skill group.",
            "type": "string",
            "pattern": "^[0-9a-f]{24}$"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "UUID",
          "originUUID",
          "path",
          "tabiyaPath",
          "originUri",
          "code",
          "description",
          "preferredLabel",
          "parents",
          "children",
          "altLabels",
          "modelId",
          "scopeNote",
          "createdAt",
          "updatedAt",
          "UUIDHistory"
        ]
      },
      "SkillGroupRequestParamSchemaGET": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "modelId": {
            "description": "The identifier of the model for skill group.",
            "type": "string",
            "pattern": "^[0-9a-f]{24}$"
          }
        },
        "required": [
          "modelId"
        ]
      },
      "SkillGroupRequestQueryParamSchemaGET": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "limit": {
            "description": "The maximum number of items to return.",
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "default": 20
          },
          "cursor": {
            "description": "A base64 string representing the cursor for pagination.",
            "type": "string",
            "maxLength": 1720,
            "pattern": "\\S"
          }
        }
      },
      "SkillGroupResponseSchemaGET": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "id": {
                  "description": "The id of the skill group. It can be used to retrieve the skill group from the server.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{24}$"
                },
                "UUID": {
                  "description": "The UUID of the skill group. It can be used to identify the skill group across systems.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
                },
                "originUUID": {
                  "description": "The last UUID in the UUIDHistory of skill group. It can be used to identify the skill group across systems.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
                },
                "path": {
                  "description": "The path to the skill group resource using the resource id",
                  "type": "string",
                  "format": "uri",
                  "pattern": "^https://.*",
                  "maxLength": 4096
                },
                "tabiyaPath": {
                  "description": "The path to the skill group resource using the resource UUID",
                  "type": "string",
                  "format": "uri",
                  "pattern": "^https://.*",
                  "maxLength": 4096
                },
                "parents": {
                  "description": "The parent skill group of this skill group.",
                  "type": "array",
                  "minItems": 0,
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "description": "The id of the parent skill group.",
                        "type": "string",
                        "pattern": "^[0-9a-f]{24}$"
                      },
                      "UUID": {
                        "description": "The UUID of the parent skill group. It can be used to identify the parent skill group.",
                        "type": "string",
                        "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
                      },
                      "code": {
                        "description": "The code of the parent skill group.",
                        "type": "string",
                        "maxLength": 256,
                        "pattern": "^([a-zA-Z]\\d+(\\.\\d+)*|[a-zA-Z])$"
                      },
                      "preferredLabel": {
                        "description": "The preferred label of the parent skill group.",
                        "type": "string",
                        "maxLength": 256,
                        "pattern": "\\S"
                      },
                      "objectType": {
                        "description": "The type of the skill group, e.g., SkillGroup.",
                        "type": "string",
                        "enum": [
                          "skillgroup"
                        ]
                      }
                    },
                    "required": [
                      "id",
                      "UUID",
                      "code",
                      "preferredLabel",
                      "objectType"
                    ]
                  }
                },
                "children": {
                  "description": "The children of this skill group. which can be either skill groups or skills.",
                  "type": "array",
                  "minItems": 0,
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "description": "The id of the child skill group or skill.",
                        "type": "string",
                        "pattern": "^[0-9a-f]{24}$"
                      },
                      "UUID": {
                        "description": "The UUID of the child skill group or skill. It can be used to identify the child skill group or skill.",
                        "type": "string",
                        "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
                      },
                      "preferredLabel": {
                        "description": "The preferred label of the child skill group.",
                        "type": "string",
                        "maxLength": 256,
                        "pattern": "\\S"
                      },
                      "objectType": {
                        "description": "The type of the skill group, e.g., SkillGroup, Skill.",
                        "type": "string",
                        "enum": [
                          "skill",
                          "skillgroup"
                        ]
                      },
                      "code": {
                        "description": "Code of the skill group child",
                        "type": "string",
                        "maxLength": 256,
                        "pattern": "^([a-zA-Z]\\d+(\\.\\d+)*|[a-zA-Z])$"
                      },
                      "isLocalized": {
                        "description": "Indicates if the skill child is localized",
                        "type": "boolean"
                      }
                    },
                    "allOf": [
                      {
                        "if": {
                          "properties": {
                            "objectType": {
                              "const": "skillgroup"
                            }
                          }
                        },
                        "then": {
                          "properties": {
                            "code": {
                              "type": "string",
                              "maxLength": 256,
                              "pattern": "^([a-zA-Z]\\d+(\\.\\d+)*|[a-zA-Z])$"
                            }
                          },
                          "required": [
                            "code"
                          ],
                          "not": {
                            "properties": {
                              "isLocalized": {}
                            },
                            "required": [
                              "isLocalized"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "properties": {
                            "objectType": {
                              "const": "skill"
                            }
                          }
                        },
                        "then": {
                          "properties": {
                            "isLocalized": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "isLocalized"
                          ],
                          "not": {
                            "properties": {},
                            "required": [
                              "code"
                            ]
                          }
                        }
                      }
                    ],
                    "required": [
                      "id",
                      "UUID",
                      "preferredLabel",
                      "objectType"
                    ]
                  }
                },
                "UUIDHistory": {
                  "description": "The UUIDs history of the skill group.",
                  "type": "array",
                  "minItems": 0,
                  "maxItems": 10000,
                  "uniqueItems": true,
                  "items": {
                    "type": "string",
                    "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
                    "maxLength": 36
                  }
                },
                "originUri": {
                  "description": "The origin URI of the skill group.",
                  "type": "string",
                  "maxLength": 4096,
                  "format": "uri",
                  "pattern": "\\S"
                },
                "code": {
                  "description": "The code of the skill group.",
                  "type": "string",
                  "maxLength": 256,
                  "pattern": "^([a-zA-Z]\\d+(\\.\\d+)*|[a-zA-Z])$"
                },
                "description": {
                  "description": "The description of the skill group.",
                  "type": "string",
                  "maxLength": 6000
                },
                "scopeNote": {
                  "description": "The scope note of the skill group.",
                  "type": "string",
                  "maxLength": 4000
                },
                "preferredLabel": {
                  "description": "The preferred label of the skill group.",
                  "type": "string",
                  "maxLength": 256,
                  "pattern": "\\S"
                },
                "altLabels": {
                  "description": "The alternative labels of the skill group.",
                  "type": "array",
                  "minItems": 0,
                  "maxItems": 100,
                  "uniqueItems": true,
                  "items": {
                    "type": "string",
                    "maxLength": 256
                  }
                },
                "modelId": {
                  "description": "The identifier of the model for skill group.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{24}$"
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time"
                },
                "updatedAt": {
                  "type": "string",
                  "format": "date-time"
                }
              },
              "required": [
                "id",
                "UUID",
                "originUUID",
                "path",
                "tabiyaPath",
                "originUri",
                "code",
                "description",
                "preferredLabel",
                "parents",
                "children",
                "altLabels",
                "modelId",
                "scopeNote",
                "createdAt",
                "updatedAt",
                "UUIDHistory"
              ]
            }
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "description": "The maximum number of skill groups that could be returned in the response.",
            "maximum": 100,
            "default": 20
          },
          "nextCursor": {
            "type": [
              "string",
              "null"
            ],
            "description": "A base64 string representing the cursor for the next page of results. Null if there is no next page.",
            "maxLength": 1720,
            "pattern": "\\S"
          }
        },
        "required": [
          "data",
          "limit"
        ],
        "additionalProperties": false
      },
      "SkillGroupRequestByIdParamSchemaGET": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "modelId": {
            "description": "The identifier of the model for skill group.",
            "type": "string",
            "pattern": "^[0-9a-f]{24}$"
          },
          "id": {
            "description": "The id of the skill group. It can be used to retrieve the skill group from the server.",
            "type": "string",
            "pattern": "^[0-9a-f]{24}$"
          }
        },
        "required": [
          "modelId",
          "id"
        ]
      },
      "SkillRequestSchemaPOST": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "UUIDHistory": {
            "description": "The UUIDs history of the skill.",
            "type": "array",
            "minItems": 0,
            "maxItems": 10000,
            "uniqueItems": true,
            "items": {
              "type": "string",
              "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
              "maxLength": 50
            }
          },
          "originUri": {
            "description": "The origin URI of the skill.",
            "type": "string",
            "format": "uri",
            "maxLength": 4096,
            "pattern": "\\S"
          },
          "preferredLabel": {
            "description": "The preferred label of the skill.",
            "type": "string",
            "maxLength": 256,
            "pattern": "\\S"
          },
          "altLabels": {
            "description": "Alternative labels for the skill.",
            "type": "array",
            "minItems": 0,
            "maxItems": 100,
            "uniqueItems": true,
            "items": {
              "type": "string",
              "maxLength": 256
            }
          },
          "definition": {
            "description": "The formal definition of the skill.",
            "type": "string",
            "maxLength": 4000
          },
          "description": {
            "description": "Additional descriptive information about the skill.",
            "type": "string",
            "maxLength": 6000
          },
          "scopeNote": {
            "description": "Scope clarification for the skill's application.",
            "type": "string",
            "maxLength": 4000
          },
          "skillType": {
            "description": "The type of the skill (e.g., skill/competence, knowledge, language, attitude).",
            "type": "string",
            "enum": [
              "skill/competence",
              "knowledge",
              "language",
              "attitude"
            ]
          },
          "reuseLevel": {
            "description": "The reuse level of the skill (e.g., sector-specific, transversal).",
            "type": "string",
            "enum": [
              "sector-specific",
              "occupation-specific",
              "cross-sector",
              "transversal"
            ]
          },
          "isLocalized": {
            "description": "Indicates if the skill has localized variants.",
            "type": "boolean"
          },
          "modelId": {
            "description": "The identifier of the model containing this skill.",
            "type": "string",
            "pattern": "^[0-9a-f]{24}$"
          }
        },
        "required": [
          "preferredLabel",
          "originUri",
          "UUIDHistory",
          "altLabels",
          "definition",
          "description",
          "scopeNote",
          "modelId",
          "skillType",
          "reuseLevel",
          "isLocalized"
        ]
      },
      "SkillRequestParamSchemaPOST": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "modelId": {
            "description": "The identifier of the model for skill.",
            "type": "string",
            "pattern": "^[0-9a-f]{24}$"
          }
        },
        "required": [
          "modelId"
        ]
      },
      "SkillResponseSchemaPOST": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "The unique identifier of the skill.",
            "type": "string",
            "pattern": "^[0-9a-f]{24}$"
          },
          "UUID": {
            "description": "The UUID of the skill for cross-system identification.",
            "type": "string",
            "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
          },
          "originUUID": {
            "description": "The original UUID of the skill, i.e., the first UUID in UUIDHistory",
            "type": "string",
            "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
            "maxLength": 50
          },
          "path": {
            "description": "Resource path using the skill's ID.",
            "type": "string",
            "format": "uri",
            "pattern": "^https://.*",
            "maxLength": 4096
          },
          "tabiyaPath": {
            "description": "Resource path using the skill's UUID.",
            "type": "string",
            "format": "uri",
            "pattern": "^https://.*",
            "maxLength": 4096
          },
          "parent": {
            "description": "The parent skill or skill group of this skill.",
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": false,
            "properties": {
              "id": {
                "description": "The id of the parent skill or skill group.",
                "type": "string",
                "pattern": "^[0-9a-f]{24}$"
              },
              "UUID": {
                "description": "The UUID of the parent skill or skill group.",
                "type": "string",
                "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
              },
              "preferredLabel": {
                "description": "The preferred label of the parent skill or skill group.",
                "type": "string",
                "maxLength": 256,
                "pattern": "\\S"
              },
              "objectType": {
                "description": "The type of the parent, e.g., Skill or SkillGroup.",
                "type": "string",
                "enum": [
                  "skillgroup",
                  "skill"
                ]
              },
              "code": {
                "description": "The code of the parent skill group.",
                "type": "string",
                "maxLength": 256
              }
            },
            "if": {
              "properties": {
                "objectType": {
                  "enum": [
                    "skillgroup"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "code": {
                  "type": "string",
                  "maxLength": 256,
                  "pattern": "^([a-zA-Z]\\d+(\\.\\d+)*|[a-zA-Z])$"
                }
              },
              "required": [
                "code"
              ]
            },
            "required": [
              "id",
              "UUID",
              "preferredLabel",
              "objectType"
            ]
          },
          "children": {
            "description": "The children of this skill.",
            "type": "array",
            "minItems": 0,
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "id": {
                  "description": "The id of the child skill.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{24}$"
                },
                "UUID": {
                  "description": "The UUID of the child skill.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
                },
                "preferredLabel": {
                  "description": "The preferred label of the child skill.",
                  "type": "string",
                  "maxLength": 256,
                  "pattern": "\\S"
                },
                "objectType": {
                  "description": "The type of the child, e.g., Skill.",
                  "type": "string",
                  "enum": [
                    "skill"
                  ]
                },
                "isLocalized": {
                  "description": "Indicates if the child skill is localized.",
                  "type": "boolean"
                }
              },
              "allOf": [
                {
                  "if": {
                    "properties": {
                      "objectType": {
                        "const": "skill"
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "isLocalized": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "isLocalized"
                    ]
                  }
                }
              ],
              "required": [
                "id",
                "UUID",
                "preferredLabel",
                "objectType"
              ]
            }
          },
          "requiresSkills": {
            "description": "Skills required by this skill with relationship metadata.",
            "type": "array",
            "minItems": 0,
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "id": {
                  "description": "The ID of the required skill.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{24}$"
                },
                "UUID": {
                  "description": "The UUID of the required skill.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
                },
                "preferredLabel": {
                  "description": "The preferred label of the required skill.",
                  "type": "string",
                  "maxLength": 256,
                  "pattern": "\\S"
                },
                "isLocalized": {
                  "description": "Indicates if the required skill is localized.",
                  "type": "boolean"
                },
                "objectType": {
                  "description": "The object type of the required skill.",
                  "type": "string",
                  "enum": [
                    "skill"
                  ]
                },
                "relationType": {
                  "description": "The type of relationship between skills.",
                  "type": "string",
                  "enum": [
                    "essential",
                    "optional"
                  ]
                }
              },
              "required": [
                "id",
                "UUID",
                "preferredLabel",
                "isLocalized",
                "objectType",
                "relationType"
              ]
            }
          },
          "requiredBySkills": {
            "description": "Skills that require this skill with relationship metadata.",
            "type": "array",
            "minItems": 0,
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "id": {
                  "description": "The ID of the requiring skill.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{24}$"
                },
                "UUID": {
                  "description": "The UUID of the requiring skill.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
                },
                "preferredLabel": {
                  "description": "The preferred label of the requiring skill.",
                  "type": "string",
                  "maxLength": 256,
                  "pattern": "\\S"
                },
                "isLocalized": {
                  "description": "Indicates if the requiring skill is localized.",
                  "type": "boolean"
                },
                "objectType": {
                  "description": "The object type of the requiring skill.",
                  "type": "string",
                  "enum": [
                    "skill"
                  ]
                },
                "relationType": {
                  "description": "The type of relationship between skills.",
                  "type": "string",
                  "enum": [
                    "essential",
                    "optional"
                  ]
                }
              },
              "required": [
                "id",
                "UUID",
                "preferredLabel",
                "isLocalized",
                "objectType",
                "relationType"
              ]
            }
          },
          "requiredByOccupations": {
            "description": "Occupations that require this skill with relationship metadata.",
            "type": "array",
            "minItems": 0,
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "id": {
                  "description": "The ID of the requiring occupation.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{24}$"
                },
                "UUID": {
                  "description": "The UUID of the requiring occupation.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
                },
                "preferredLabel": {
                  "description": "The preferred label of the requiring occupation.",
                  "type": "string",
                  "maxLength": 256,
                  "pattern": "\\S"
                },
                "isLocalized": {
                  "description": "Indicates if the requiring occupation is localized.",
                  "type": "boolean"
                },
                "objectType": {
                  "description": "The object type of the requiring occupation.",
                  "type": "string",
                  "enum": [
                    "escooccupation",
                    "localoccupation"
                  ]
                },
                "relationType": {
                  "description": "Used for ESCOOccupations only.",
                  "type": [
                    "string",
                    "null"
                  ],
                  "enum": [
                    "",
                    "essential",
                    "optional",
                    null
                  ]
                },
                "signallingValue": {
                  "description": "Used for LocalOccupations only.",
                  "type": [
                    "number",
                    "null"
                  ],
                  "minimum": 0,
                  "maximum": 100
                },
                "signallingValueLabel": {
                  "description": "Used for LocalOccupations only.",
                  "type": [
                    "string",
                    "null"
                  ],
                  "maxLength": 256,
                  "enum": [
                    "",
                    "low",
                    "medium",
                    "high",
                    null
                  ]
                }
              },
              "required": [
                "id",
                "UUID",
                "preferredLabel",
                "isLocalized",
                "objectType"
              ],
              "allOf": [
                {
                  "if": {
                    "properties": {
                      "objectType": {
                        "const": "escooccupation"
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "relationType": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "relationType"
                    ]
                  }
                },
                {
                  "if": {
                    "properties": {
                      "objectType": {
                        "const": "localoccupation"
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "signallingValue": {
                        "type": "number"
                      },
                      "signallingValueLabel": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "signallingValue",
                      "signallingValueLabel"
                    ]
                  }
                }
              ]
            }
          },
          "UUIDHistory": {
            "description": "The UUIDs history of the skill.",
            "type": "array",
            "minItems": 0,
            "maxItems": 10000,
            "uniqueItems": true,
            "items": {
              "type": "string",
              "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
              "maxLength": 50
            }
          },
          "originUri": {
            "description": "The origin URI of the skill.",
            "type": "string",
            "format": "uri",
            "maxLength": 4096,
            "pattern": "\\S"
          },
          "preferredLabel": {
            "description": "The preferred label of the skill.",
            "type": "string",
            "maxLength": 256,
            "pattern": "\\S"
          },
          "altLabels": {
            "description": "Alternative labels for the skill.",
            "type": "array",
            "minItems": 0,
            "maxItems": 100,
            "uniqueItems": true,
            "items": {
              "type": "string",
              "maxLength": 256
            }
          },
          "definition": {
            "description": "The formal definition of the skill.",
            "type": "string",
            "maxLength": 4000
          },
          "description": {
            "description": "Additional descriptive information about the skill.",
            "type": "string",
            "maxLength": 6000
          },
          "scopeNote": {
            "description": "Scope clarification for the skill's application.",
            "type": "string",
            "maxLength": 4000
          },
          "skillType": {
            "description": "The type of the skill (e.g., skill/competence, knowledge, language, attitude).",
            "type": "string",
            "enum": [
              "skill/competence",
              "knowledge",
              "language",
              "attitude"
            ]
          },
          "reuseLevel": {
            "description": "The reuse level of the skill (e.g., sector-specific, transversal).",
            "type": "string",
            "enum": [
              "sector-specific",
              "occupation-specific",
              "cross-sector",
              "transversal"
            ]
          },
          "isLocalized": {
            "description": "Indicates if the skill has localized variants.",
            "type": "boolean"
          },
          "modelId": {
            "description": "The identifier of the model containing this skill.",
            "type": "string",
            "pattern": "^[0-9a-f]{24}$"
          },
          "createdAt": {
            "description": "Timestamp of record creation.",
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "description": "Timestamp of last record modification.",
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "UUID",
          "originUUID",
          "UUIDHistory",
          "path",
          "tabiyaPath",
          "preferredLabel",
          "originUri",
          "altLabels",
          "definition",
          "description",
          "scopeNote",
          "skillType",
          "reuseLevel",
          "isLocalized",
          "modelId",
          "parent",
          "children",
          "requiresSkills",
          "requiredBySkills",
          "requiredByOccupations",
          "createdAt",
          "updatedAt"
        ]
      },
      "SkillResponseSchemaGETById": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "The unique identifier of the skill.",
            "type": "string",
            "pattern": "^[0-9a-f]{24}$"
          },
          "UUID": {
            "description": "The UUID of the skill for cross-system identification.",
            "type": "string",
            "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
          },
          "originUUID": {
            "description": "The original UUID of the skill, i.e., the first UUID in UUIDHistory",
            "type": "string",
            "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
            "maxLength": 50
          },
          "path": {
            "description": "Resource path using the skill's ID.",
            "type": "string",
            "format": "uri",
            "pattern": "^https://.*",
            "maxLength": 4096
          },
          "tabiyaPath": {
            "description": "Resource path using the skill's UUID.",
            "type": "string",
            "format": "uri",
            "pattern": "^https://.*",
            "maxLength": 4096
          },
          "parent": {
            "description": "The parent skill or skill group of this skill.",
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": false,
            "properties": {
              "id": {
                "description": "The id of the parent skill or skill group.",
                "type": "string",
                "pattern": "^[0-9a-f]{24}$"
              },
              "UUID": {
                "description": "The UUID of the parent skill or skill group.",
                "type": "string",
                "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
              },
              "preferredLabel": {
                "description": "The preferred label of the parent skill or skill group.",
                "type": "string",
                "maxLength": 256,
                "pattern": "\\S"
              },
              "objectType": {
                "description": "The type of the parent, e.g., Skill or SkillGroup.",
                "type": "string",
                "enum": [
                  "skillgroup",
                  "skill"
                ]
              },
              "code": {
                "description": "The code of the parent skill group.",
                "type": "string",
                "maxLength": 256
              }
            },
            "if": {
              "properties": {
                "objectType": {
                  "enum": [
                    "skillgroup"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "code": {
                  "type": "string",
                  "maxLength": 256,
                  "pattern": "^([a-zA-Z]\\d+(\\.\\d+)*|[a-zA-Z])$"
                }
              },
              "required": [
                "code"
              ]
            },
            "required": [
              "id",
              "UUID",
              "preferredLabel",
              "objectType"
            ]
          },
          "children": {
            "description": "The children of this skill.",
            "type": "array",
            "minItems": 0,
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "id": {
                  "description": "The id of the child skill.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{24}$"
                },
                "UUID": {
                  "description": "The UUID of the child skill.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
                },
                "preferredLabel": {
                  "description": "The preferred label of the child skill.",
                  "type": "string",
                  "maxLength": 256,
                  "pattern": "\\S"
                },
                "objectType": {
                  "description": "The type of the child, e.g., Skill.",
                  "type": "string",
                  "enum": [
                    "skill"
                  ]
                },
                "isLocalized": {
                  "description": "Indicates if the child skill is localized.",
                  "type": "boolean"
                }
              },
              "allOf": [
                {
                  "if": {
                    "properties": {
                      "objectType": {
                        "const": "skill"
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "isLocalized": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "isLocalized"
                    ]
                  }
                }
              ],
              "required": [
                "id",
                "UUID",
                "preferredLabel",
                "objectType"
              ]
            }
          },
          "requiresSkills": {
            "description": "Skills required by this skill with relationship metadata.",
            "type": "array",
            "minItems": 0,
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "id": {
                  "description": "The ID of the required skill.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{24}$"
                },
                "UUID": {
                  "description": "The UUID of the required skill.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
                },
                "preferredLabel": {
                  "description": "The preferred label of the required skill.",
                  "type": "string",
                  "maxLength": 256,
                  "pattern": "\\S"
                },
                "isLocalized": {
                  "description": "Indicates if the required skill is localized.",
                  "type": "boolean"
                },
                "objectType": {
                  "description": "The object type of the required skill.",
                  "type": "string",
                  "enum": [
                    "skill"
                  ]
                },
                "relationType": {
                  "description": "The type of relationship between skills.",
                  "type": "string",
                  "enum": [
                    "essential",
                    "optional"
                  ]
                }
              },
              "required": [
                "id",
                "UUID",
                "preferredLabel",
                "isLocalized",
                "objectType",
                "relationType"
              ]
            }
          },
          "requiredBySkills": {
            "description": "Skills that require this skill with relationship metadata.",
            "type": "array",
            "minItems": 0,
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "id": {
                  "description": "The ID of the requiring skill.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{24}$"
                },
                "UUID": {
                  "description": "The UUID of the requiring skill.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
                },
                "preferredLabel": {
                  "description": "The preferred label of the requiring skill.",
                  "type": "string",
                  "maxLength": 256,
                  "pattern": "\\S"
                },
                "isLocalized": {
                  "description": "Indicates if the requiring skill is localized.",
                  "type": "boolean"
                },
                "objectType": {
                  "description": "The object type of the requiring skill.",
                  "type": "string",
                  "enum": [
                    "skill"
                  ]
                },
                "relationType": {
                  "description": "The type of relationship between skills.",
                  "type": "string",
                  "enum": [
                    "essential",
                    "optional"
                  ]
                }
              },
              "required": [
                "id",
                "UUID",
                "preferredLabel",
                "isLocalized",
                "objectType",
                "relationType"
              ]
            }
          },
          "requiredByOccupations": {
            "description": "Occupations that require this skill with relationship metadata.",
            "type": "array",
            "minItems": 0,
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "id": {
                  "description": "The ID of the requiring occupation.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{24}$"
                },
                "UUID": {
                  "description": "The UUID of the requiring occupation.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
                },
                "preferredLabel": {
                  "description": "The preferred label of the requiring occupation.",
                  "type": "string",
                  "maxLength": 256,
                  "pattern": "\\S"
                },
                "isLocalized": {
                  "description": "Indicates if the requiring occupation is localized.",
                  "type": "boolean"
                },
                "objectType": {
                  "description": "The object type of the requiring occupation.",
                  "type": "string",
                  "enum": [
                    "escooccupation",
                    "localoccupation"
                  ]
                },
                "relationType": {
                  "description": "Used for ESCOOccupations only.",
                  "type": [
                    "string",
                    "null"
                  ],
                  "enum": [
                    "",
                    "essential",
                    "optional",
                    null
                  ]
                },
                "signallingValue": {
                  "description": "Used for LocalOccupations only.",
                  "type": [
                    "number",
                    "null"
                  ],
                  "minimum": 0,
                  "maximum": 100
                },
                "signallingValueLabel": {
                  "description": "Used for LocalOccupations only.",
                  "type": [
                    "string",
                    "null"
                  ],
                  "maxLength": 256,
                  "enum": [
                    "",
                    "low",
                    "medium",
                    "high",
                    null
                  ]
                }
              },
              "required": [
                "id",
                "UUID",
                "preferredLabel",
                "isLocalized",
                "objectType"
              ],
              "allOf": [
                {
                  "if": {
                    "properties": {
                      "objectType": {
                        "const": "escooccupation"
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "relationType": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "relationType"
                    ]
                  }
                },
                {
                  "if": {
                    "properties": {
                      "objectType": {
                        "const": "localoccupation"
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "signallingValue": {
                        "type": "number"
                      },
                      "signallingValueLabel": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "signallingValue",
                      "signallingValueLabel"
                    ]
                  }
                }
              ]
            }
          },
          "UUIDHistory": {
            "description": "The UUIDs history of the skill.",
            "type": "array",
            "minItems": 0,
            "maxItems": 10000,
            "uniqueItems": true,
            "items": {
              "type": "string",
              "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
              "maxLength": 50
            }
          },
          "originUri": {
            "description": "The origin URI of the skill.",
            "type": "string",
            "format": "uri",
            "maxLength": 4096,
            "pattern": "\\S"
          },
          "preferredLabel": {
            "description": "The preferred label of the skill.",
            "type": "string",
            "maxLength": 256,
            "pattern": "\\S"
          },
          "altLabels": {
            "description": "Alternative labels for the skill.",
            "type": "array",
            "minItems": 0,
            "maxItems": 100,
            "uniqueItems": true,
            "items": {
              "type": "string",
              "maxLength": 256
            }
          },
          "definition": {
            "description": "The formal definition of the skill.",
            "type": "string",
            "maxLength": 4000
          },
          "description": {
            "description": "Additional descriptive information about the skill.",
            "type": "string",
            "maxLength": 6000
          },
          "scopeNote": {
            "description": "Scope clarification for the skill's application.",
            "type": "string",
            "maxLength": 4000
          },
          "skillType": {
            "description": "The type of the skill (e.g., skill/competence, knowledge, language, attitude).",
            "type": "string",
            "enum": [
              "skill/competence",
              "knowledge",
              "language",
              "attitude"
            ]
          },
          "reuseLevel": {
            "description": "The reuse level of the skill (e.g., sector-specific, transversal).",
            "type": "string",
            "enum": [
              "sector-specific",
              "occupation-specific",
              "cross-sector",
              "transversal"
            ]
          },
          "isLocalized": {
            "description": "Indicates if the skill has localized variants.",
            "type": "boolean"
          },
          "modelId": {
            "description": "The identifier of the model containing this skill.",
            "type": "string",
            "pattern": "^[0-9a-f]{24}$"
          },
          "createdAt": {
            "description": "Timestamp of record creation.",
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "description": "Timestamp of last record modification.",
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "UUID",
          "originUUID",
          "UUIDHistory",
          "path",
          "tabiyaPath",
          "preferredLabel",
          "originUri",
          "altLabels",
          "definition",
          "description",
          "scopeNote",
          "skillType",
          "reuseLevel",
          "isLocalized",
          "modelId",
          "parent",
          "children",
          "requiresSkills",
          "requiredBySkills",
          "requiredByOccupations",
          "createdAt",
          "updatedAt"
        ]
      },
      "SkillRequestParamSchemaGET": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "modelId": {
            "description": "The identifier of the model for skill.",
            "type": "string",
            "pattern": "^[0-9a-f]{24}$"
          }
        },
        "required": [
          "modelId"
        ]
      },
      "SkillRequestQueryParamSchemaGET": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "limit": {
            "description": "The maximum number of items to return.",
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "default": 10
          },
          "cursor": {
            "description": "A base64 string representing the cursor for pagination.",
            "type": "string",
            "maxLength": 1720,
            "pattern": "\\S"
          }
        }
      },
      "SkillResponseSchemaGET": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$id": "/components/schemas/SkillItem",
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "id": {
                  "description": "The unique identifier of the skill.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{24}$"
                },
                "UUID": {
                  "description": "The UUID of the skill for cross-system identification.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
                },
                "originUUID": {
                  "description": "The original UUID of the skill, i.e., the first UUID in UUIDHistory",
                  "type": "string",
                  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
                  "maxLength": 50
                },
                "path": {
                  "description": "Resource path using the skill's ID.",
                  "type": "string",
                  "format": "uri",
                  "pattern": "^https://.*",
                  "maxLength": 4096
                },
                "tabiyaPath": {
                  "description": "Resource path using the skill's UUID.",
                  "type": "string",
                  "format": "uri",
                  "pattern": "^https://.*",
                  "maxLength": 4096
                },
                "parent": {
                  "description": "The parent skill or skill group of this skill.",
                  "type": [
                    "object",
                    "null"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "id": {
                      "description": "The id of the parent skill or skill group.",
                      "type": "string",
                      "pattern": "^[0-9a-f]{24}$"
                    },
                    "UUID": {
                      "description": "The UUID of the parent skill or skill group.",
                      "type": "string",
                      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
                    },
                    "preferredLabel": {
                      "description": "The preferred label of the parent skill or skill group.",
                      "type": "string",
                      "maxLength": 256,
                      "pattern": "\\S"
                    },
                    "objectType": {
                      "description": "The type of the parent, e.g., Skill or SkillGroup.",
                      "type": "string",
                      "enum": [
                        "skillgroup",
                        "skill"
                      ]
                    },
                    "code": {
                      "description": "The code of the parent skill group.",
                      "type": "string",
                      "maxLength": 256
                    }
                  },
                  "if": {
                    "properties": {
                      "objectType": {
                        "enum": [
                          "skillgroup"
                        ]
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "code": {
                        "type": "string",
                        "maxLength": 256,
                        "pattern": "^([a-zA-Z]\\d+(\\.\\d+)*|[a-zA-Z])$"
                      }
                    },
                    "required": [
                      "code"
                    ]
                  },
                  "required": [
                    "id",
                    "UUID",
                    "preferredLabel",
                    "objectType"
                  ]
                },
                "children": {
                  "description": "The children of this skill.",
                  "type": "array",
                  "minItems": 0,
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "description": "The id of the child skill.",
                        "type": "string",
                        "pattern": "^[0-9a-f]{24}$"
                      },
                      "UUID": {
                        "description": "The UUID of the child skill.",
                        "type": "string",
                        "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
                      },
                      "preferredLabel": {
                        "description": "The preferred label of the child skill.",
                        "type": "string",
                        "maxLength": 256,
                        "pattern": "\\S"
                      },
                      "objectType": {
                        "description": "The type of the child, e.g., Skill.",
                        "type": "string",
                        "enum": [
                          "skill"
                        ]
                      },
                      "isLocalized": {
                        "description": "Indicates if the child skill is localized.",
                        "type": "boolean"
                      }
                    },
                    "allOf": [
                      {
                        "if": {
                          "properties": {
                            "objectType": {
                              "const": "skill"
                            }
                          }
                        },
                        "then": {
                          "properties": {
                            "isLocalized": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "isLocalized"
                          ]
                        }
                      }
                    ],
                    "required": [
                      "id",
                      "UUID",
                      "preferredLabel",
                      "objectType"
                    ]
                  }
                },
                "requiresSkills": {
                  "description": "Skills required by this skill with relationship metadata.",
                  "type": "array",
                  "minItems": 0,
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "description": "The ID of the required skill.",
                        "type": "string",
                        "pattern": "^[0-9a-f]{24}$"
                      },
                      "UUID": {
                        "description": "The UUID of the required skill.",
                        "type": "string",
                        "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
                      },
                      "preferredLabel": {
                        "description": "The preferred label of the required skill.",
                        "type": "string",
                        "maxLength": 256,
                        "pattern": "\\S"
                      },
                      "isLocalized": {
                        "description": "Indicates if the required skill is localized.",
                        "type": "boolean"
                      },
                      "objectType": {
                        "description": "The object type of the required skill.",
                        "type": "string",
                        "enum": [
                          "skill"
                        ]
                      },
                      "relationType": {
                        "description": "The type of relationship between skills.",
                        "type": "string",
                        "enum": [
                          "essential",
                          "optional"
                        ]
                      }
                    },
                    "required": [
                      "id",
                      "UUID",
                      "preferredLabel",
                      "isLocalized",
                      "objectType",
                      "relationType"
                    ]
                  }
                },
                "requiredBySkills": {
                  "description": "Skills that require this skill with relationship metadata.",
                  "type": "array",
                  "minItems": 0,
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "description": "The ID of the requiring skill.",
                        "type": "string",
                        "pattern": "^[0-9a-f]{24}$"
                      },
                      "UUID": {
                        "description": "The UUID of the requiring skill.",
                        "type": "string",
                        "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
                      },
                      "preferredLabel": {
                        "description": "The preferred label of the requiring skill.",
                        "type": "string",
                        "maxLength": 256,
                        "pattern": "\\S"
                      },
                      "isLocalized": {
                        "description": "Indicates if the requiring skill is localized.",
                        "type": "boolean"
                      },
                      "objectType": {
                        "description": "The object type of the requiring skill.",
                        "type": "string",
                        "enum": [
                          "skill"
                        ]
                      },
                      "relationType": {
                        "description": "The type of relationship between skills.",
                        "type": "string",
                        "enum": [
                          "essential",
                          "optional"
                        ]
                      }
                    },
                    "required": [
                      "id",
                      "UUID",
                      "preferredLabel",
                      "isLocalized",
                      "objectType",
                      "relationType"
                    ]
                  }
                },
                "requiredByOccupations": {
                  "description": "Occupations that require this skill with relationship metadata.",
                  "type": "array",
                  "minItems": 0,
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "description": "The ID of the requiring occupation.",
                        "type": "string",
                        "pattern": "^[0-9a-f]{24}$"
                      },
                      "UUID": {
                        "description": "The UUID of the requiring occupation.",
                        "type": "string",
                        "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
                      },
                      "preferredLabel": {
                        "description": "The preferred label of the requiring occupation.",
                        "type": "string",
                        "maxLength": 256,
                        "pattern": "\\S"
                      },
                      "isLocalized": {
                        "description": "Indicates if the requiring occupation is localized.",
                        "type": "boolean"
                      },
                      "objectType": {
                        "description": "The object type of the requiring occupation.",
                        "type": "string",
                        "enum": [
                          "escooccupation",
                          "localoccupation"
                        ]
                      },
                      "relationType": {
                        "description": "Used for ESCOOccupations only.",
                        "type": [
                          "string",
                          "null"
                        ],
                        "enum": [
                          "",
                          "essential",
                          "optional",
                          null
                        ]
                      },
                      "signallingValue": {
                        "description": "Used for LocalOccupations only.",
                        "type": [
                          "number",
                          "null"
                        ],
                        "minimum": 0,
                        "maximum": 100
                      },
                      "signallingValueLabel": {
                        "description": "Used for LocalOccupations only.",
                        "type": [
                          "string",
                          "null"
                        ],
                        "maxLength": 256,
                        "enum": [
                          "",
                          "low",
                          "medium",
                          "high",
                          null
                        ]
                      }
                    },
                    "required": [
                      "id",
                      "UUID",
                      "preferredLabel",
                      "isLocalized",
                      "objectType"
                    ],
                    "allOf": [
                      {
                        "if": {
                          "properties": {
                            "objectType": {
                              "const": "escooccupation"
                            }
                          }
                        },
                        "then": {
                          "properties": {
                            "relationType": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "relationType"
                          ]
                        }
                      },
                      {
                        "if": {
                          "properties": {
                            "objectType": {
                              "const": "localoccupation"
                            }
                          }
                        },
                        "then": {
                          "properties": {
                            "signallingValue": {
                              "type": "number"
                            },
                            "signallingValueLabel": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "signallingValue",
                            "signallingValueLabel"
                          ]
                        }
                      }
                    ]
                  }
                },
                "UUIDHistory": {
                  "description": "The UUIDs history of the skill.",
                  "type": "array",
                  "minItems": 0,
                  "maxItems": 10000,
                  "uniqueItems": true,
                  "items": {
                    "type": "string",
                    "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
                    "maxLength": 50
                  }
                },
                "originUri": {
                  "description": "The origin URI of the skill.",
                  "type": "string",
                  "format": "uri",
                  "maxLength": 4096,
                  "pattern": "\\S"
                },
                "preferredLabel": {
                  "description": "The preferred label of the skill.",
                  "type": "string",
                  "maxLength": 256,
                  "pattern": "\\S"
                },
                "altLabels": {
                  "description": "Alternative labels for the skill.",
                  "type": "array",
                  "minItems": 0,
                  "maxItems": 100,
                  "uniqueItems": true,
                  "items": {
                    "type": "string",
                    "maxLength": 256
                  }
                },
                "definition": {
                  "description": "The formal definition of the skill.",
                  "type": "string",
                  "maxLength": 4000
                },
                "description": {
                  "description": "Additional descriptive information about the skill.",
                  "type": "string",
                  "maxLength": 6000
                },
                "scopeNote": {
                  "description": "Scope clarification for the skill's application.",
                  "type": "string",
                  "maxLength": 4000
                },
                "skillType": {
                  "description": "The type of the skill (e.g., skill/competence, knowledge, language, attitude).",
                  "type": "string",
                  "enum": [
                    "skill/competence",
                    "knowledge",
                    "language",
                    "attitude"
                  ]
                },
                "reuseLevel": {
                  "description": "The reuse level of the skill (e.g., sector-specific, transversal).",
                  "type": "string",
                  "enum": [
                    "sector-specific",
                    "occupation-specific",
                    "cross-sector",
                    "transversal"
                  ]
                },
                "isLocalized": {
                  "description": "Indicates if the skill has localized variants.",
                  "type": "boolean"
                },
                "modelId": {
                  "description": "The identifier of the model containing this skill.",
                  "type": "string",
                  "pattern": "^[0-9a-f]{24}$"
                },
                "createdAt": {
                  "description": "Timestamp of record creation.",
                  "type": "string",
                  "format": "date-time"
                },
                "updatedAt": {
                  "description": "Timestamp of last record modification.",
                  "type": "string",
                  "format": "date-time"
                }
              },
              "required": [
                "id",
                "UUID",
                "originUUID",
                "UUIDHistory",
                "path",
                "tabiyaPath",
                "preferredLabel",
                "originUri",
                "altLabels",
                "definition",
                "description",
                "scopeNote",
                "skillType",
                "reuseLevel",
                "isLocalized",
                "modelId",
                "parent",
                "children",
                "requiresSkills",
                "requiredBySkills",
                "requiredByOccupations",
                "createdAt",
                "updatedAt"
              ]
            },
            "description": "Array of skill items for the current page"
          },
          "limit": {
            "type": "integer",
            "description": "Number of items returned in this page.",
            "minimum": 1,
            "maximum": 100,
            "default": 10
          },
          "nextCursor": {
            "type": [
              "string",
              "null"
            ],
            "description": "Cursor to fetch the next page of results. Opaque token encoding the last item's sort key(s). Returns null if this is the last page.",
            "maxLength": 1720,
            "pattern": "\\S"
          }
        },
        "required": [
          "data",
          "limit"
        ]
      },
      "SkillRequestByIdParamSchemaGET": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "modelId": {
            "description": "The identifier of the model for skill.",
            "type": "string",
            "pattern": "^[0-9a-f]{24}$"
          },
          "id": {
            "description": "The id of the skill. It can be used to retrieve the skill from the server.",
            "type": "string",
            "pattern": "^[0-9a-f]{24}$"
          }
        },
        "required": [
          "modelId",
          "id"
        ]
      }
    },
    "securitySchemes": {
      "jwt_auth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "description": "OAuth2.0 JWT Based authentication. We support two kinds. Human in the loop and Machine to Machine tokens"
      },
      "api_key": {
        "type": "apiKey",
        "in": "header",
        "name": "X-API-Key",
        "description": "AWS API Akey. Contact administrators in order to get an API key."
      }
    }
  },
  "servers": [
    {
      "url": "/api/app",
      "description": "Internal Tools"
    },
    {
      "url": "/api/partner",
      "description": "Partner Integration"
    }
  ],
  "security": [
    {
      "api_key": []
    },
    {
      "jwt_auth": []
    }
  ],
  "paths": {
    "/info": {
      "get": {
        "operationId": "GetInfo",
        "tags": [
          "info"
        ],
        "summary": "Get information about the deployed api.",
        "description": "Retrieve information about the deployed api, including build details and database connection status.",
        "responses": {
          "200": {
            "description": "The deployed api information.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InfoSchema"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorizedResponse"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorResponse"
          }
        }
      }
    },
    "/models/{modelId}/occupationGroups": {
      "post": {
        "operationId": "POSTOccupationGroup",
        "tags": [
          "occupationGroups"
        ],
        "summary": "Create a new taxonomy occupation group.",
        "description": "Create a new taxonomy occupation group in a specific taxonomy model.",
        "security": [
          {
            "api_key": []
          },
          {
            "jwt_auth": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "modelId",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OccupationGroupRequestParamSchemaGET/properties/modelId"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OccupationGroupRequestSchemaPOST"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successfully created the occupation group,",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OccupationGroupResponseSchemaPOST"
                }
              }
            }
          },
          "400": {
            "description": "Failed to create the occupation group. Additional information can be found in the response body.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/POSTOccupationGroup400ErrorSchema"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorizedResponse"
          },
          "403": {
            "description": "The request has not been applied because you don't have the right permissions to access this resource.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AllForbidden403ResponseSchema"
                }
              }
            }
          },
          "415": {
            "description": "The request is not supported because the media type is not acceptable.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AllContentType415ResponseSchema"
                }
              }
            }
          },
          "500": {
            "description": "The server encountered an unexpected condition.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/All500ResponseSchema"
                }
              }
            }
          }
        }
      },
      "get": {
        "operationId": "GETOccupationGroups",
        "tags": [
          "occupationGroups"
        ],
        "summary": "Get a list of paginated occupation groups and cursor if there is one in a taxonomy model.",
        "description": "Retrieve a list of paginated occupation groups in a specific taxonomy model.",
        "security": [
          {
            "api_key": []
          },
          {
            "jwt_auth": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "modelId",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OccupationGroupRequestParamSchemaGET/properties/modelId"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/OccupationGroupRequestQueryParamSchemaGET/properties/limit"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "schema": {
              "$ref": "#/components/schemas/OccupationGroupRequestQueryParamSchemaGET/properties/cursor"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved the paginated occupation groups.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OccupationGroupResponseSchemaGET"
                }
              }
            }
          },
          "400": {
            "description": "Failed to retrieve the occupation groups. Additional information can be found in the response body.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GETOccupationGroup400ErrorSchema"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorizedResponse"
          },
          "404": {
            "description": "Occupation groups not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GETOccupationGroups404ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "The server encountered an unexpected condition.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/All500ResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/models/{modelId}/occupationGroups/{id}": {
      "get": {
        "operationId": "GETOccupationGroupById",
        "tags": [
          "occupationGroups"
        ],
        "summary": "Get an occupation group by its identifier in a taxonomy model.",
        "description": "Retrieve an occupation group by its unique identifier in a specific taxonomy model.",
        "security": [
          {
            "api_key": []
          },
          {
            "jwt_auth": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "modelId",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OccupationGroupRequestByIdParamSchemaGET/properties/modelId"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OccupationGroupRequestByIdParamSchemaGET/properties/id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved the occupation group.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OccupationGroupResponseSchemaPOST"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorizedResponse"
          },
          "404": {
            "description": "Occupation group not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GETOccupationGroup404ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "The server encountered an unexpected condition.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/All500ResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/models/{modelId}/occupations": {
      "post": {
        "operationId": "POSTOccupation",
        "tags": [
          "occupations"
        ],
        "summary": "Create a new taxonomy occupation.",
        "description": "Create a new taxonomy occupation in a specific taxonomy model.",
        "security": [
          {
            "api_key": []
          },
          {
            "jwt_auth": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "modelId",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OccupationRequestParamSchemaGET/properties/modelId"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OccupationRequestSchemaPOST"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successfully created the occupation,",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OccupationResponseSchemaPOST"
                }
              }
            }
          },
          "400": {
            "description": "Failed to create the occupation. Additional information can be found in the response body.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/POSTOccupation400ErrorSchema"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorizedResponse"
          },
          "403": {
            "description": "The request has not been applied because you don't have the right permissions to access this resource.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AllForbidden403ResponseSchema"
                }
              }
            }
          },
          "415": {
            "description": "The request is not supported because the media type is not acceptable.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AllContentType415ResponseSchema"
                }
              }
            }
          },
          "500": {
            "description": "The server encountered an unexpected condition.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/All500ResponseSchema"
                }
              }
            }
          }
        }
      },
      "get": {
        "operationId": "GETOccupations",
        "tags": [
          "occupations"
        ],
        "summary": "Get a list of paginated occupations and cursor if there is one in a taxonomy model.",
        "description": "Retrieve a list of paginated occupations in a specific taxonomy model.",
        "security": [
          {
            "api_key": []
          },
          {
            "jwt_auth": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "modelId",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OccupationRequestParamSchemaGET/properties/modelId"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/OccupationRequestQueryParamSchemaGET/properties/limit"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "schema": {
              "$ref": "#/components/schemas/OccupationRequestQueryParamSchemaGET/properties/cursor"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved the paginated occupations.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OccupationResponseSchemaGET"
                }
              }
            }
          },
          "400": {
            "description": "Failed to retrieve the occupations. Additional information can be found in the response body.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GETOccupation400ErrorSchema"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorizedResponse"
          },
          "404": {
            "description": "Occupations not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GETOccupations404ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "The server encountered an unexpected condition.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/All500ResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/models/{modelId}/occupations/{id}": {
      "get": {
        "operationId": "GETOccupationById",
        "tags": [
          "occupations"
        ],
        "summary": "Get a single occupation by its ID in a taxonomy model.",
        "description": "Retrieve a single occupation by its ID in a specific taxonomy model.",
        "security": [
          {
            "api_key": []
          },
          {
            "jwt_auth": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "modelId",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OccupationRequestParamSchemaGET/properties/modelId"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The unique ID of the occupation."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved the occupation.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OccupationResponseSchemaPOST"
                }
              }
            }
          },
          "400": {
            "description": "Failed to retrieve the occupation. Additional information can be found in the response body.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GETOccupation400ErrorSchema"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorizedResponse"
          },
          "404": {
            "description": "Occupation not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GETOccupation404ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "The server encountered an unexpected condition.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/All500ResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/models/{modelId}/skills": {
      "get": {
        "operationId": "GETSkills",
        "tags": [
          "skills"
        ],
        "summary": "Get a list of paginated skills and cursor if there is one in a taxonomy model.",
        "description": "Retrieve a list of paginated skills in a specific taxonomy model.",
        "security": [
          {
            "jwt_auth": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "modelId",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/SkillRequestParamSchemaGET/properties/modelId"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/SkillRequestQueryParamSchemaGET/properties/limit"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "schema": {
              "$ref": "#/components/schemas/SkillRequestQueryParamSchemaGET/properties/cursor"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved the paginated skills.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SkillResponseSchemaGET"
                }
              }
            }
          },
          "400": {
            "description": "Failed to retrieve the skills. Additional information can be found in the response body.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GETSkill400ErrorSchema"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorizedResponse"
          },
          "404": {
            "description": "Model not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GETSkills404ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "The server encountered an unexpected condition.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/All500ResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/models/{modelId}/skills/{id}": {
      "get": {
        "operationId": "GETSkillById",
        "tags": [
          "skills"
        ],
        "summary": "Get a skill by its identifier in a taxonomy model.",
        "description": "Retrieve a skill by its unique identifier in a specific taxonomy model.",
        "security": [
          {
            "jwt_auth": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "modelId",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/SkillRequestByIdParamSchemaGET/properties/modelId"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/SkillRequestByIdParamSchemaGET/properties/id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved the skill.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SkillResponseSchemaGETById"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorizedResponse"
          },
          "404": {
            "description": "Skill not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GETSkill404ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "The server encountered an unexpected condition.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/All500ResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/models/{modelId}/skillGroups": {
      "get": {
        "operationId": "GETSkillGroups",
        "tags": [
          "skillGroups"
        ],
        "summary": "Get a list of paginated skill groups and cursor if there is one in a taxonomy model.",
        "description": "Retrieve a list of paginated skill groups in a specific taxonomy model.",
        "security": [
          {
            "api_key": []
          },
          {
            "jwt_auth": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "modelId",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/SkillGroupRequestParamSchemaGET/properties/modelId"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/SkillGroupRequestQueryParamSchemaGET/properties/limit"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "schema": {
              "$ref": "#/components/schemas/SkillGroupRequestQueryParamSchemaGET/properties/cursor"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved the paginated skill groups.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SkillGroupResponseSchemaGET"
                }
              }
            }
          },
          "400": {
            "description": "Failed to retrieve the skill groups. Additional information can be found in the response body.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GETSkillGroup400ErrorSchema"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorizedResponse"
          },
          "404": {
            "description": "Model not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GETSkillGroups404ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "The server encountered an unexpected condition.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/All500ResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/models/{modelId}/skillGroups/{id}": {
      "get": {
        "operationId": "GETSkillGroupById",
        "tags": [
          "skillGroups"
        ],
        "summary": "Get an skill group by its identifier in a taxonomy model.",
        "description": "Retrieve an skill group by its unique identifier in a specific taxonomy model.",
        "security": [
          {
            "api_key": []
          },
          {
            "jwt_auth": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "modelId",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/SkillGroupRequestByIdParamSchemaGET/properties/modelId"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/SkillGroupRequestByIdParamSchemaGET/properties/id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved the skill group.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SkillGroupResponseSchemaGETById"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorizedResponse"
          },
          "404": {
            "description": "Skill group not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GETSkillGroup404ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "The server encountered an unexpected condition.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/All500ResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/export": {
      "post": {
        "operationId": "POSTExport",
        "tags": [
          "export"
        ],
        "summary": "Trigger the export process.",
        "description": "Asynchronously trigger the export process for a given model.",
        "security": [
          {
            "api_key": []
          },
          {
            "jwt_auth": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExportSchema"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "description": "Successfully triggered the export process."
          },
          "400": {
            "description": "Failed to trigger the export process. Additional information can be found in the response body.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorizedResponse"
          },
          "403": {
            "$ref": "#/components/responses/ForbiddenResponse"
          },
          "404": {
            "description": "Model could not be found.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "415": {
            "$ref": "#/components/responses/AcceptOnlyJSONResponse"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorResponse"
          }
        }
      }
    },
    "/import": {
      "post": {
        "operationId": "PostImport",
        "tags": [
          "import"
        ],
        "summary": "Trigger the import process.",
        "description": "Asynchronously trigger the import process for a given model.",
        "security": [
          {
            "api_key": []
          },
          {
            "jwt_auth": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ImportSchema"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "description": "Import process was successfully triggered. The import process is running asynchronously."
          },
          "400": {
            "description": "Failed to trigger the import process. Additional information can be found in the response body.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorizedResponse"
          },
          "403": {
            "$ref": "#/components/responses/ForbiddenResponse"
          },
          "415": {
            "$ref": "#/components/responses/AcceptOnlyJSONResponse"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorResponse"
          }
        }
      }
    },
    "/models": {
      "post": {
        "operationId": "POSTModel",
        "tags": [
          "model"
        ],
        "summary": "Create a new taxonomy model.",
        "description": "Create a new taxonomy model that can be used to import data into it.",
        "security": [
          {
            "api_key": []
          },
          {
            "jwt_auth": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ModelInfoRequestSchemaPOST"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successfully created the model,",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ModelInfoResponseSchemaPOST"
                }
              }
            }
          },
          "400": {
            "description": "Failed to create the model. Additional information can be found in the response body.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorizedResponse"
          },
          "403": {
            "$ref": "#/components/responses/ForbiddenResponse"
          },
          "415": {
            "$ref": "#/components/responses/AcceptOnlyJSONResponse"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorResponse"
          }
        }
      },
      "get": {
        "operationId": "GETModel",
        "tags": [
          "model"
        ],
        "summary": "Get a taxonomy model information",
        "description": "Retrieve information about a specific taxonomy model.",
        "security": [
          {
            "api_key": []
          },
          {
            "jwt_auth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved the taxonomy model information.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ModelInfoResponseSchemaGET"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorizedResponse"
          },
          "500": {
            "description": "Internal server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        }
      }
    },
    "/presigned": {
      "get": {
        "operationId": "GetPresignedUrl",
        "tags": [
          "import"
        ],
        "summary": "Get a presigned url that can be used to upload files to the import.",
        "description": "Returns a presigned url that can be used to upload files to the import. There url expires after 1 hour. The maximum file size is 10 MB.\n",
        "security": [
          {
            "api_key": []
          },
          {
            "jwt_auth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully created the presigned url.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PresignedSchema"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorizedResponse"
          },
          "403": {
            "$ref": "#/components/responses/ForbiddenResponse"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorResponse"
          }
        }
      }
    }
  },
  "tags": []
}