{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/gloat/main/json-schema/gloat-job-title-read-schema.json",
  "title": "JobTitleRead",
  "x-generated": "2026-10-14",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/gloat-skills-foundation-api-openapi.yml#/components/schemas/JobTitleRead",
  "properties": {
    "skills": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/SkillAPI"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "title": "Skills"
    },
    "skillComponents": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/SkillComponent-Output"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "title": "Skillcomponents"
    },
    "titleId": {
      "type": "string",
      "title": "Titleid"
    },
    "name": {
      "type": "string",
      "title": "Name"
    },
    "jobCode": {
      "anyOf": [
        {
          "$ref": "#/$defs/SimpleJobCodeResponse-Output"
        },
        {
          "type": "null"
        }
      ]
    },
    "family": {
      "anyOf": [
        {
          "$ref": "#/$defs/JobCodeFamilyAPI-Output"
        },
        {
          "type": "null"
        }
      ]
    },
    "gradeLevel": {
      "type": "string",
      "title": "Gradelevel"
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Description"
    },
    "descriptionSource": {
      "anyOf": [
        {
          "$ref": "#/$defs/DescriptionSource"
        },
        {
          "type": "null"
        }
      ]
    },
    "promoted": {
      "type": "boolean",
      "title": "Promoted"
    },
    "status": {
      "$ref": "#/$defs/Status"
    },
    "jobType": {
      "anyOf": [
        {
          "$ref": "#/$defs/JobType"
        },
        {
          "type": "null"
        }
      ]
    },
    "id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Id"
    },
    "lastUpdated": {
      "anyOf": [
        {
          "$ref": "#/$defs/ChangeInfoRead"
        },
        {
          "type": "null"
        }
      ]
    },
    "created": {
      "anyOf": [
        {
          "$ref": "#/$defs/ChangeInfoRead"
        },
        {
          "type": "null"
        }
      ]
    },
    "areRequiredSkillsDescriptionBased": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Arerequiredskillsdescriptionbased",
      "default": false
    }
  },
  "type": "object",
  "$defs": {
    "ChangeInfoRead": {
      "properties": {
        "date": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ],
          "title": "Date"
        },
        "userId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Userid"
        },
        "userName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Username"
        }
      },
      "type": "object",
      "title": "ChangeInfoRead"
    },
    "DescriptionSource": {
      "type": "string",
      "enum": [
        "source",
        "ai"
      ],
      "title": "DescriptionSource"
    },
    "DisplayedTerm": {
      "properties": {
        "id": {
          "type": "string",
          "title": "Id"
        },
        "display": {
          "type": "string",
          "title": "Display"
        },
        "language": {
          "type": "string",
          "title": "Language"
        }
      },
      "additionalProperties": true,
      "type": "object",
      "required": [
        "id",
        "display",
        "language"
      ],
      "title": "DisplayedTerm",
      "description": "Represents a displayed term with basic properties.\n\nThis model is configured to allow additional fields beyond those explicitly defined.\nThis flexibility enables the incorporation of extra keys from the ontology without enforcing a rigid schema."
    },
    "ImportanceEnum": {
      "type": "string",
      "enum": [
        "low",
        "medium",
        "high",
        "crucial"
      ],
      "title": "ImportanceEnum"
    },
    "JobCodeFamilyAPI-Output": {
      "properties": {
        "id": {
          "type": "string",
          "title": "Id"
        },
        "name": {
          "type": "string",
          "title": "Name"
        }
      },
      "type": "object",
      "required": [
        "id",
        "name"
      ],
      "title": "JobCodeFamilyAPI"
    },
    "JobType": {
      "type": "string",
      "enum": [
        "manager",
        "individual"
      ],
      "title": "JobType"
    },
    "SimpleJobCodeResponse-Output": {
      "properties": {
        "id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Id"
        },
        "code": {
          "type": "string",
          "title": "Code"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Name"
        }
      },
      "type": "object",
      "required": [
        "code"
      ],
      "title": "SimpleJobCodeResponse"
    },
    "SkillAPI": {
      "properties": {
        "name": {
          "type": "string",
          "title": "Name"
        },
        "language": {
          "type": "string",
          "title": "Language",
          "default": "en"
        },
        "level": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Level"
        },
        "source": {
          "$ref": "#/$defs/SkillSource",
          "default": "company"
        },
        "importance": {
          "anyOf": [
            {
              "$ref": "#/$defs/ImportanceEnum"
            },
            {
              "type": "null"
            }
          ]
        },
        "entitySource": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "job_title",
                "job_code",
                "job_family"
              ]
            },
            {
              "type": "null"
            }
          ],
          "title": "Entitysource"
        },
        "isDeleted": {
          "type": "boolean",
          "title": "Isdeleted",
          "default": false
        },
        "isCascaded": {
          "type": "boolean",
          "title": "Iscascaded",
          "default": false
        },
        "createdAt": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ],
          "title": "Createdat"
        },
        "modifiedAt": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ],
          "title": "Modifiedat"
        },
        "externalId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Externalid"
        },
        "taxonomy": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Taxonomy"
        }
      },
      "type": "object",
      "required": [
        "name"
      ],
      "title": "SkillAPI",
      "description": "Skill model for API responses (GET) - no validation to support legacy data"
    },
    "SkillComponent-Output": {
      "properties": {
        "skill": {
          "anyOf": [
            {
              "$ref": "#/$defs/DisplayedTerm"
            },
            {
              "type": "null"
            }
          ]
        },
        "tags": {
          "items": {
            "$ref": "#/$defs/Tag"
          },
          "type": "array",
          "title": "Tags"
        },
        "entity": {
          "additionalProperties": true,
          "type": "object",
          "title": "Entity"
        },
        "is_unknown_skill": {
          "type": "boolean",
          "title": "Is Unknown Skill",
          "readOnly": true
        },
        "name": {
          "type": "string",
          "title": "Name",
          "readOnly": true
        }
      },
      "type": "object",
      "required": [
        "tags",
        "is_unknown_skill",
        "name"
      ],
      "title": "SkillComponent",
      "description": "Represents a grouped skill component.\n\nAttributes:\n  - skill: The associated DisplayedTerm (if found).\n  - tags: A list of Tag objects grouped for this skill.\n  - entity: A dictionary containing additional merged entity data."
    },
    "SkillSource": {
      "type": "string",
      "enum": [
        "company",
        "enrichment"
      ],
      "title": "SkillSource"
    },
    "Status": {
      "type": "string",
      "enum": [
        "Active",
        "Inactive",
        "Draft"
      ],
      "title": "Status",
      "description": "a class represents the status"
    },
    "Tag": {
      "properties": {
        "name": {
          "type": "string",
          "title": "Name"
        },
        "language": {
          "type": "string",
          "title": "Language"
        }
      },
      "additionalProperties": true,
      "type": "object",
      "required": [
        "name",
        "language"
      ],
      "title": "Tag",
      "description": "Represents a tag with basic attributes.\n\nThe model accepts extra entity data beyond the defined fields, allowing for the inclusion of\nadditional metadata without a strict format requirement."
    }
  }
}