{
  "components": {
    "schemas": {
      "Announcement": {
        "properties": {
          "audience_departments": {
            "description": "Empty = everyone",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "body": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "publish_at": {
            "format": "date-time",
            "type": "string"
          },
          "title": {
            "type": "string"
          }
        },
        "title": "Announcement",
        "type": "object"
      },
      "AnnouncementPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/Announcement"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "AnnouncementPage",
        "type": "object"
      },
      "Application": {
        "properties": {
          "applied_at": {
            "format": "date-time",
            "type": "string"
          },
          "candidate": {
            "$ref": "#/components/schemas/Candidate"
          },
          "id": {
            "type": "integer"
          },
          "job_id": {
            "type": "integer"
          },
          "stage_id": {
            "type": "integer"
          },
          "status": {
            "description": "active, hired, rejected, withdrawn",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string"
          }
        },
        "title": "Application",
        "type": "object"
      },
      "ApplicationCreate": {
        "properties": {
          "candidate": {
            "$ref": "#/components/schemas/Candidate",
            "description": "Matched to an existing candidate by email"
          },
          "consent": {
            "description": "Required: the candidate agreed",
            "type": "boolean"
          },
          "consent_text": {
            "type": "string"
          },
          "job_id": {
            "description": "Required",
            "type": "integer"
          }
        },
        "required": [
          "job_id",
          "consent"
        ],
        "title": "ApplicationCreate",
        "type": "object"
      },
      "ApplicationCreatePage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/ApplicationCreate"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "ApplicationCreatePage",
        "type": "object"
      },
      "ApplicationPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/Application"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "ApplicationPage",
        "type": "object"
      },
      "Appraisal": {
        "properties": {
          "cycle_id": {
            "type": "integer"
          },
          "employee_id": {
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "rating": {
            "type": "number"
          },
          "status": {
            "type": "string"
          }
        },
        "title": "Appraisal",
        "type": "object"
      },
      "AppraisalPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/Appraisal"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "AppraisalPage",
        "type": "object"
      },
      "Asset": {
        "properties": {
          "asset_tag": {
            "type": "string"
          },
          "assigned_to": {
            "description": "Employee code",
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "return_due_date": {
            "format": "date",
            "type": "string"
          },
          "status": {
            "description": "in_stock, assigned, retired",
            "type": "string"
          }
        },
        "title": "Asset",
        "type": "object"
      },
      "AssetPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/Asset"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "AssetPage",
        "type": "object"
      },
      "AttendanceDay": {
        "properties": {
          "date": {
            "format": "date",
            "type": "string"
          },
          "employee_id": {
            "type": "string"
          },
          "first_in": {
            "format": "date-time",
            "type": "string"
          },
          "last_out": {
            "format": "date-time",
            "type": "string"
          },
          "late_minutes": {
            "type": "integer"
          },
          "shift": {
            "type": "string"
          },
          "status": {
            "description": "present, absent, half_day, leave, holiday, weekoff",
            "type": "string"
          },
          "worked_minutes": {
            "type": "integer"
          }
        },
        "title": "AttendanceDay",
        "type": "object"
      },
      "AttendanceDayPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/AttendanceDay"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "AttendanceDayPage",
        "type": "object"
      },
      "BusinessUnitOut": {
        "properties": {
          "code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Code"
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "is_active": {
            "title": "Is Active",
            "type": "boolean"
          },
          "legal_entity_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Legal Entity Id"
          },
          "name": {
            "title": "Name",
            "type": "string"
          }
        },
        "required": [
          "id",
          "code",
          "name",
          "legal_entity_id",
          "is_active"
        ],
        "title": "BusinessUnitOut",
        "type": "object"
      },
      "BusinessUnitPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/BusinessUnitOut"
            },
            "title": "Items",
            "type": "array"
          },
          "page": {
            "title": "Page",
            "type": "integer"
          },
          "page_size": {
            "title": "Page Size",
            "type": "integer"
          },
          "total": {
            "title": "Total",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "total",
          "page",
          "page_size"
        ],
        "title": "BusinessUnitPage",
        "type": "object"
      },
      "Candidate": {
        "properties": {
          "current_company": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "first_name": {
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "last_name": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "resume_url": {
            "type": "string"
          },
          "total_experience_years": {
            "type": "number"
          }
        },
        "title": "Candidate",
        "type": "object"
      },
      "CandidatePage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/Candidate"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "CandidatePage",
        "type": "object"
      },
      "Challan": {
        "properties": {
          "amount": {
            "type": "number"
          },
          "id": {
            "type": "integer"
          },
          "kind": {
            "description": "PF, ESI, PT, TDS",
            "type": "string"
          },
          "month": {
            "type": "string"
          },
          "paid_on": {
            "format": "date",
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        },
        "title": "Challan",
        "type": "object"
      },
      "ChallanPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/Challan"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "ChallanPage",
        "type": "object"
      },
      "ChildWorkspace": {
        "properties": {
          "api_access": {
            "description": "Whether the branch holds the API Access add-on",
            "type": "boolean"
          },
          "id": {
            "description": "Workspace id",
            "type": "integer"
          },
          "name": {
            "description": "Display name",
            "type": "string"
          },
          "slug": {
            "description": "Short name",
            "type": "string"
          }
        },
        "title": "ChildWorkspace",
        "type": "object"
      },
      "ChildWorkspacePage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/ChildWorkspace"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "ChildWorkspacePage",
        "type": "object"
      },
      "DepartmentOut": {
        "properties": {
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "is_active": {
            "title": "Is Active",
            "type": "boolean"
          },
          "location": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Location"
          },
          "name": {
            "title": "Name",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "location",
          "is_active"
        ],
        "title": "DepartmentOut",
        "type": "object"
      },
      "DepartmentPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/DepartmentOut"
            },
            "title": "Items",
            "type": "array"
          },
          "page": {
            "title": "Page",
            "type": "integer"
          },
          "page_size": {
            "title": "Page Size",
            "type": "integer"
          },
          "total": {
            "title": "Total",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "total",
          "page",
          "page_size"
        ],
        "title": "DepartmentPage",
        "type": "object"
      },
      "DesignationOut": {
        "properties": {
          "department_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Department Id"
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "is_active": {
            "title": "Is Active",
            "type": "boolean"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "sub_department_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sub Department Id"
          }
        },
        "required": [
          "id",
          "name",
          "department_id",
          "sub_department_id",
          "is_active"
        ],
        "title": "DesignationOut",
        "type": "object"
      },
      "DesignationPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/DesignationOut"
            },
            "title": "Items",
            "type": "array"
          },
          "page": {
            "title": "Page",
            "type": "integer"
          },
          "page_size": {
            "title": "Page Size",
            "type": "integer"
          },
          "total": {
            "title": "Total",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "total",
          "page",
          "page_size"
        ],
        "title": "DesignationPage",
        "type": "object"
      },
      "Document": {
        "properties": {
          "document_type": {
            "description": "e.g. PAN, Aadhaar, offer letter",
            "type": "string"
          },
          "download_url": {
            "description": "Short-lived link",
            "type": "string"
          },
          "expires_on": {
            "format": "date",
            "type": "string"
          },
          "file_name": {
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "status": {
            "description": "pending, verified, rejected",
            "type": "string"
          },
          "uploaded_at": {
            "format": "date-time",
            "type": "string"
          }
        },
        "title": "Document",
        "type": "object"
      },
      "DocumentPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/Document"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "DocumentPage",
        "type": "object"
      },
      "Download": {
        "properties": {
          "download_url": {
            "description": "Short-lived link",
            "type": "string"
          },
          "expires_at": {
            "format": "date-time",
            "type": "string"
          }
        },
        "title": "Download",
        "type": "object"
      },
      "DownloadPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/Download"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "DownloadPage",
        "type": "object"
      },
      "EmergencyContact": {
        "properties": {
          "name": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "relationship": {
            "type": "string"
          }
        },
        "title": "EmergencyContact",
        "type": "object"
      },
      "EmergencyContactPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/EmergencyContact"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "EmergencyContactPage",
        "type": "object"
      },
      "Employee": {
        "properties": {
          "business_unit_id": {
            "type": "integer"
          },
          "date_of_exit": {
            "format": "date",
            "type": "string"
          },
          "date_of_joining": {
            "format": "date",
            "type": "string"
          },
          "department": {
            "description": "Department name",
            "type": "string"
          },
          "designation": {
            "type": "string"
          },
          "employee_id": {
            "description": "The employee code, e.g. EMP-0042",
            "type": "string"
          },
          "employment_status": {
            "description": "active, probation, notice, exited",
            "type": "string"
          },
          "employment_type": {
            "description": "full_time, part_time, contract, intern",
            "type": "string"
          },
          "first_name": {
            "type": "string"
          },
          "id": {
            "description": "Internal id",
            "type": "integer"
          },
          "last_name": {
            "type": "string"
          },
          "legal_entity_id": {
            "type": "integer"
          },
          "location": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "reporting_manager_id": {
            "description": "The manager's employee code",
            "type": "string"
          },
          "sub_department": {
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string"
          },
          "work_email": {
            "type": "string"
          }
        },
        "title": "Employee",
        "type": "object"
      },
      "EmployeeCreate": {
        "properties": {
          "date_of_joining": {
            "description": "Required",
            "format": "date",
            "type": "string"
          },
          "department": {
            "description": "From /department-masters",
            "type": "string"
          },
          "designation": {
            "description": "From /designation-masters",
            "type": "string"
          },
          "employment_type": {
            "type": "string"
          },
          "first_name": {
            "description": "Required",
            "type": "string"
          },
          "last_name": {
            "description": "Required",
            "type": "string"
          },
          "legal_entity_id": {
            "type": "integer"
          },
          "reporting_manager_id": {
            "description": "Employee code",
            "type": "string"
          },
          "send_invite": {
            "description": "Email the sign-in invitation",
            "type": "boolean"
          },
          "work_email": {
            "description": "Required; the sign-in",
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name",
          "work_email",
          "date_of_joining"
        ],
        "title": "EmployeeCreate",
        "type": "object"
      },
      "EmployeeCreatePage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/EmployeeCreate"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "EmployeeCreatePage",
        "type": "object"
      },
      "EmployeePage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/Employee"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "EmployeePage",
        "type": "object"
      },
      "Exit": {
        "properties": {
          "employee_id": {
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "last_working_day": {
            "format": "date",
            "type": "string"
          },
          "reason": {
            "type": "string"
          },
          "resignation_date": {
            "format": "date",
            "type": "string"
          },
          "status": {
            "description": "initiated, in_progress, completed, withdrawn",
            "type": "string"
          }
        },
        "title": "Exit",
        "type": "object"
      },
      "ExitPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/Exit"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "ExitPage",
        "type": "object"
      },
      "Feedback": {
        "properties": {
          "core_value": {
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "type": "string"
          },
          "from_employee_id": {
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "kind": {
            "description": "praise or feedback",
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "to_employee_id": {
            "type": "string"
          }
        },
        "title": "Feedback",
        "type": "object"
      },
      "FeedbackPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/Feedback"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "FeedbackPage",
        "type": "object"
      },
      "Form16": {
        "properties": {
          "download_url": {
            "description": "Short-lived link",
            "type": "string"
          },
          "employee_id": {
            "type": "string"
          },
          "financial_year": {
            "type": "string"
          }
        },
        "title": "Form16",
        "type": "object"
      },
      "Form16Page": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/Form16"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "Form16Page",
        "type": "object"
      },
      "HTTPValidationError": {
        "properties": {
          "detail": {
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
          }
        },
        "title": "HTTPValidationError",
        "type": "object"
      },
      "Holiday": {
        "properties": {
          "date": {
            "format": "date",
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "locations": {
            "description": "Where it applies; empty = everywhere",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "type": "string"
          },
          "optional": {
            "description": "Employees choose",
            "type": "boolean"
          }
        },
        "title": "Holiday",
        "type": "object"
      },
      "HolidayPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/Holiday"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "HolidayPage",
        "type": "object"
      },
      "Interview": {
        "properties": {
          "application_id": {
            "type": "integer"
          },
          "id": {
            "type": "integer"
          },
          "mode": {
            "type": "string"
          },
          "scheduled_at": {
            "format": "date-time",
            "type": "string"
          },
          "score": {
            "type": "number"
          },
          "status": {
            "type": "string"
          }
        },
        "title": "Interview",
        "type": "object"
      },
      "InterviewPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/Interview"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "InterviewPage",
        "type": "object"
      },
      "JobCreate": {
        "additionalProperties": false,
        "properties": {
          "currency_code": {
            "default": "INR",
            "pattern": "^[A-Z]{3}$",
            "title": "Currency Code",
            "type": "string"
          },
          "department": {
            "anyOf": [
              {
                "maxLength": 100,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Department"
          },
          "description": {
            "maxLength": 10000,
            "minLength": 1,
            "title": "Description",
            "type": "string"
          },
          "employment_type": {
            "anyOf": [
              {
                "maxLength": 50,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Employment Type"
          },
          "hiring_manager_employee_id": {
            "anyOf": [
              {
                "maxLength": 50,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Hiring Manager Employee Id"
          },
          "location": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Location"
          },
          "max_experience_years": {
            "anyOf": [
              {
                "maximum": 60.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Experience Years"
          },
          "min_experience_years": {
            "anyOf": [
              {
                "maximum": 60.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Min Experience Years"
          },
          "openings_count": {
            "default": 1,
            "maximum": 1000.0,
            "minimum": 1.0,
            "title": "Openings Count",
            "type": "integer"
          },
          "requirements": {
            "items": {
              "type": "string"
            },
            "maxItems": 50,
            "title": "Requirements",
            "type": "array"
          },
          "responsibilities": {
            "items": {
              "type": "string"
            },
            "maxItems": 50,
            "title": "Responsibilities",
            "type": "array"
          },
          "salary_max": {
            "anyOf": [
              {
                "maximum": 10000000000.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Salary Max"
          },
          "salary_min": {
            "anyOf": [
              {
                "maximum": 10000000000.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Salary Min"
          },
          "skills": {
            "items": {
              "type": "string"
            },
            "maxItems": 50,
            "title": "Skills",
            "type": "array"
          },
          "title": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          },
          "work_mode": {
            "anyOf": [
              {
                "maxLength": 50,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Work Mode"
          }
        },
        "required": [
          "title",
          "description"
        ],
        "title": "JobCreate",
        "type": "object"
      },
      "JobHistoryEntry": {
        "properties": {
          "department": {
            "type": "string"
          },
          "designation": {
            "type": "string"
          },
          "effective_date": {
            "format": "date",
            "type": "string"
          },
          "reason": {
            "description": "promotion, transfer, correction\u2026",
            "type": "string"
          },
          "reporting_manager_id": {
            "type": "string"
          }
        },
        "title": "JobHistoryEntry",
        "type": "object"
      },
      "JobHistoryEntryPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/JobHistoryEntry"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "JobHistoryEntryPage",
        "type": "object"
      },
      "JobOut": {
        "properties": {
          "closed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Closed At"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "currency_code": {
            "title": "Currency Code",
            "type": "string"
          },
          "department": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Department"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "employment_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Employment Type"
          },
          "hiring_manager_employee_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Hiring Manager Employee Id"
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "job_code": {
            "title": "Job Code",
            "type": "string"
          },
          "location": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Location"
          },
          "max_experience_years": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Experience Years"
          },
          "min_experience_years": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Min Experience Years"
          },
          "openings_count": {
            "title": "Openings Count",
            "type": "integer"
          },
          "published_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Published At"
          },
          "requirements": {
            "items": {
              "type": "string"
            },
            "title": "Requirements",
            "type": "array"
          },
          "responsibilities": {
            "items": {
              "type": "string"
            },
            "title": "Responsibilities",
            "type": "array"
          },
          "salary_max": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Salary Max"
          },
          "salary_min": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Salary Min"
          },
          "skills": {
            "items": {
              "type": "string"
            },
            "title": "Skills",
            "type": "array"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          },
          "work_mode": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Work Mode"
          }
        },
        "required": [
          "id",
          "job_code",
          "title",
          "department",
          "location",
          "employment_type",
          "work_mode",
          "status",
          "openings_count",
          "min_experience_years",
          "max_experience_years",
          "salary_min",
          "salary_max",
          "currency_code",
          "description",
          "requirements",
          "responsibilities",
          "skills",
          "hiring_manager_employee_id",
          "published_at",
          "closed_at",
          "created_at",
          "updated_at"
        ],
        "title": "JobOut",
        "type": "object"
      },
      "JobPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/JobOut"
            },
            "title": "Items",
            "type": "array"
          },
          "page": {
            "title": "Page",
            "type": "integer"
          },
          "page_size": {
            "title": "Page Size",
            "type": "integer"
          },
          "total": {
            "title": "Total",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "total",
          "page",
          "page_size"
        ],
        "title": "JobPage",
        "type": "object"
      },
      "JobUpdate": {
        "additionalProperties": false,
        "properties": {
          "currency_code": {
            "anyOf": [
              {
                "pattern": "^[A-Z]{3}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Currency Code"
          },
          "department": {
            "anyOf": [
              {
                "maxLength": 100,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Department"
          },
          "description": {
            "anyOf": [
              {
                "maxLength": 10000,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "employment_type": {
            "anyOf": [
              {
                "maxLength": 50,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Employment Type"
          },
          "hiring_manager_employee_id": {
            "anyOf": [
              {
                "maxLength": 50,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Hiring Manager Employee Id"
          },
          "location": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Location"
          },
          "max_experience_years": {
            "anyOf": [
              {
                "maximum": 60.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Experience Years"
          },
          "min_experience_years": {
            "anyOf": [
              {
                "maximum": 60.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Min Experience Years"
          },
          "openings_count": {
            "anyOf": [
              {
                "maximum": 1000.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Openings Count"
          },
          "requirements": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "maxItems": 50,
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Requirements"
          },
          "responsibilities": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "maxItems": 50,
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Responsibilities"
          },
          "salary_max": {
            "anyOf": [
              {
                "maximum": 10000000000.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Salary Max"
          },
          "salary_min": {
            "anyOf": [
              {
                "maximum": 10000000000.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Salary Min"
          },
          "skills": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "maxItems": 50,
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Skills"
          },
          "title": {
            "anyOf": [
              {
                "maxLength": 200,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Title"
          },
          "work_mode": {
            "anyOf": [
              {
                "maxLength": 50,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Work Mode"
          }
        },
        "title": "JobUpdate",
        "type": "object"
      },
      "LeaveBalance": {
        "properties": {
          "available": {
            "type": "number"
          },
          "employee_id": {
            "type": "string"
          },
          "entitled": {
            "description": "Days",
            "type": "number"
          },
          "leave_type": {
            "description": "Code",
            "type": "string"
          },
          "pending": {
            "description": "Awaiting approval",
            "type": "number"
          },
          "taken": {
            "type": "number"
          }
        },
        "title": "LeaveBalance",
        "type": "object"
      },
      "LeaveBalancePage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/LeaveBalance"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "LeaveBalancePage",
        "type": "object"
      },
      "LeavePolicy": {
        "properties": {
          "entitlements": {
            "description": "Days per leave type per year",
            "items": {
              "type": "object"
            },
            "type": "array"
          },
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          }
        },
        "title": "LeavePolicy",
        "type": "object"
      },
      "LeavePolicyPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/LeavePolicy"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "LeavePolicyPage",
        "type": "object"
      },
      "LeaveRequest": {
        "properties": {
          "applied_at": {
            "format": "date-time",
            "type": "string"
          },
          "days": {
            "type": "number"
          },
          "employee_id": {
            "type": "string"
          },
          "from_date": {
            "format": "date",
            "type": "string"
          },
          "half_day": {
            "type": "boolean"
          },
          "id": {
            "type": "integer"
          },
          "leave_type": {
            "description": "Code",
            "type": "string"
          },
          "reason": {
            "type": "string"
          },
          "status": {
            "description": "pending, level2_pending, approved, rejected, cancelled",
            "type": "string"
          },
          "to_date": {
            "format": "date",
            "type": "string"
          }
        },
        "title": "LeaveRequest",
        "type": "object"
      },
      "LeaveRequestPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/LeaveRequest"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "LeaveRequestPage",
        "type": "object"
      },
      "LeaveType": {
        "properties": {
          "code": {
            "description": "e.g. CL, SL, EL",
            "type": "string"
          },
          "half_day_allowed": {
            "type": "boolean"
          },
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "paid": {
            "type": "boolean"
          }
        },
        "title": "LeaveType",
        "type": "object"
      },
      "LeaveTypePage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/LeaveType"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "LeaveTypePage",
        "type": "object"
      },
      "LegalEntityOut": {
        "properties": {
          "code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Code"
          },
          "country": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Country"
          },
          "currency": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Currency"
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "name": {
            "title": "Name",
            "type": "string"
          }
        },
        "required": [
          "id",
          "code",
          "name",
          "country",
          "currency"
        ],
        "title": "LegalEntityOut",
        "type": "object"
      },
      "LegalEntityPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/LegalEntityOut"
            },
            "title": "Items",
            "type": "array"
          },
          "page": {
            "title": "Page",
            "type": "integer"
          },
          "page_size": {
            "title": "Page Size",
            "type": "integer"
          },
          "total": {
            "title": "Total",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "total",
          "page",
          "page_size"
        ],
        "title": "LegalEntityPage",
        "type": "object"
      },
      "Loan": {
        "properties": {
          "emi": {
            "type": "number"
          },
          "employee_id": {
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "outstanding": {
            "type": "number"
          },
          "principal": {
            "type": "number"
          },
          "status": {
            "type": "string"
          }
        },
        "title": "Loan",
        "type": "object"
      },
      "LoanPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/Loan"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "LoanPage",
        "type": "object"
      },
      "LoanRepayment": {
        "properties": {
          "amount": {
            "description": "Required",
            "type": "number"
          },
          "paid_on": {
            "description": "Required",
            "format": "date",
            "type": "string"
          },
          "reference": {
            "type": "string"
          }
        },
        "required": [
          "amount",
          "paid_on"
        ],
        "title": "LoanRepayment",
        "type": "object"
      },
      "LoanRepaymentPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/LoanRepayment"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "LoanRepaymentPage",
        "type": "object"
      },
      "Objective": {
        "properties": {
          "id": {
            "type": "integer"
          },
          "key_results": {
            "description": "Title, current and target value",
            "items": {
              "type": "object"
            },
            "type": "array"
          },
          "owner_employee_id": {
            "type": "string"
          },
          "progress_percent": {
            "type": "number"
          },
          "title": {
            "type": "string"
          }
        },
        "title": "Objective",
        "type": "object"
      },
      "ObjectivePage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/Objective"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "ObjectivePage",
        "type": "object"
      },
      "Offer": {
        "properties": {
          "application_id": {
            "type": "integer"
          },
          "id": {
            "type": "integer"
          },
          "joining_date": {
            "format": "date",
            "type": "string"
          },
          "proposed_ctc": {
            "type": "number"
          },
          "status": {
            "type": "string"
          }
        },
        "title": "Offer",
        "type": "object"
      },
      "OfferPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/Offer"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "OfferPage",
        "type": "object"
      },
      "OkrCycle": {
        "properties": {
          "ends_on": {
            "format": "date",
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "starts_on": {
            "format": "date",
            "type": "string"
          }
        },
        "title": "OkrCycle",
        "type": "object"
      },
      "OkrCyclePage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/OkrCycle"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "OkrCyclePage",
        "type": "object"
      },
      "PayrollRun": {
        "properties": {
          "approved_at": {
            "format": "date-time",
            "type": "string"
          },
          "employees": {
            "type": "integer"
          },
          "gross": {
            "type": "number"
          },
          "id": {
            "type": "integer"
          },
          "legal_entity_id": {
            "type": "integer"
          },
          "month": {
            "description": "YYYY-MM",
            "type": "string"
          },
          "net": {
            "type": "number"
          },
          "paid_at": {
            "format": "date-time",
            "type": "string"
          },
          "status": {
            "description": "draft, approved, paid",
            "type": "string"
          }
        },
        "title": "PayrollRun",
        "type": "object"
      },
      "PayrollRunPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PayrollRun"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "PayrollRunPage",
        "type": "object"
      },
      "Payslip": {
        "properties": {
          "deduction_lines": {
            "items": {
              "type": "object"
            },
            "type": "array"
          },
          "deductions": {
            "type": "number"
          },
          "earnings": {
            "description": "Component and amount",
            "items": {
              "type": "object"
            },
            "type": "array"
          },
          "employee_id": {
            "type": "string"
          },
          "gross": {
            "type": "number"
          },
          "id": {
            "type": "integer"
          },
          "month": {
            "description": "YYYY-MM",
            "type": "string"
          },
          "net": {
            "type": "number"
          },
          "released_at": {
            "format": "date-time",
            "type": "string"
          }
        },
        "title": "Payslip",
        "type": "object"
      },
      "PayslipPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/Payslip"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "PayslipPage",
        "type": "object"
      },
      "Regularization": {
        "properties": {
          "date": {
            "format": "date",
            "type": "string"
          },
          "employee_id": {
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "reason": {
            "type": "string"
          },
          "requested_in": {
            "format": "date-time",
            "type": "string"
          },
          "requested_out": {
            "format": "date-time",
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        },
        "title": "Regularization",
        "type": "object"
      },
      "RegularizationPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/Regularization"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "RegularizationPage",
        "type": "object"
      },
      "Reimbursement": {
        "properties": {
          "amount": {
            "type": "number"
          },
          "category": {
            "type": "string"
          },
          "employee_id": {
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "payroll_month": {
            "description": "When it is paid",
            "type": "string"
          },
          "spent_on": {
            "format": "date",
            "type": "string"
          },
          "status": {
            "description": "pending, approved, rejected, paid",
            "type": "string"
          }
        },
        "title": "Reimbursement",
        "type": "object"
      },
      "ReimbursementPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/Reimbursement"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "ReimbursementPage",
        "type": "object"
      },
      "Requisition": {
        "properties": {
          "department": {
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "openings": {
            "type": "integer"
          },
          "status": {
            "type": "string"
          },
          "title": {
            "type": "string"
          }
        },
        "title": "Requisition",
        "type": "object"
      },
      "RequisitionPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/Requisition"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "RequisitionPage",
        "type": "object"
      },
      "RosterEntry": {
        "properties": {
          "date": {
            "format": "date",
            "type": "string"
          },
          "employee_id": {
            "type": "string"
          },
          "shift": {
            "description": "Shift code",
            "type": "string"
          }
        },
        "title": "RosterEntry",
        "type": "object"
      },
      "RosterEntryPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/RosterEntry"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "RosterEntryPage",
        "type": "object"
      },
      "Salary": {
        "properties": {
          "annual_ctc": {
            "type": "number"
          },
          "components": {
            "description": "Component, monthly and annual amounts",
            "items": {
              "type": "object"
            },
            "type": "array"
          },
          "effective_from": {
            "format": "date",
            "type": "string"
          },
          "employee_id": {
            "type": "string"
          },
          "structure_id": {
            "type": "integer"
          }
        },
        "title": "Salary",
        "type": "object"
      },
      "SalaryPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/Salary"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "SalaryPage",
        "type": "object"
      },
      "SalaryRevision": {
        "properties": {
          "annual_ctc": {
            "description": "Required",
            "type": "number"
          },
          "effective_from": {
            "description": "Required",
            "format": "date",
            "type": "string"
          },
          "reason": {
            "type": "string"
          },
          "structure_id": {
            "type": "integer"
          }
        },
        "required": [
          "effective_from",
          "annual_ctc"
        ],
        "title": "SalaryRevision",
        "type": "object"
      },
      "SalaryRevisionPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/SalaryRevision"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "SalaryRevisionPage",
        "type": "object"
      },
      "SalaryStructure": {
        "properties": {
          "components": {
            "items": {
              "type": "object"
            },
            "type": "array"
          },
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          }
        },
        "title": "SalaryStructure",
        "type": "object"
      },
      "SalaryStructurePage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/SalaryStructure"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "SalaryStructurePage",
        "type": "object"
      },
      "Scorecard": {
        "properties": {
          "ratings": {
            "description": "Skill and level 1\u20135",
            "items": {
              "type": "object"
            },
            "type": "array"
          },
          "recommendation": {
            "description": "strong_no, no, yes, strong_yes",
            "type": "string"
          },
          "stage_name": {
            "type": "string"
          }
        },
        "title": "Scorecard",
        "type": "object"
      },
      "ScorecardPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/Scorecard"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "ScorecardPage",
        "type": "object"
      },
      "Settlement": {
        "properties": {
          "employee_id": {
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "last_working_date": {
            "format": "date",
            "type": "string"
          },
          "net_payable": {
            "description": "Negative when the employee owes",
            "type": "number"
          },
          "status": {
            "description": "draft, approved, paid",
            "type": "string"
          }
        },
        "title": "Settlement",
        "type": "object"
      },
      "SettlementPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/Settlement"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "SettlementPage",
        "type": "object"
      },
      "Skill": {
        "properties": {
          "level": {
            "description": "1\u20135",
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "verified": {
            "type": "boolean"
          }
        },
        "title": "Skill",
        "type": "object"
      },
      "SkillPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/Skill"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "SkillPage",
        "type": "object"
      },
      "StageOut": {
        "properties": {
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "is_default": {
            "title": "Is Default",
            "type": "boolean"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "sort_order": {
            "title": "Sort Order",
            "type": "integer"
          },
          "stage_key": {
            "title": "Stage Key",
            "type": "string"
          },
          "stage_type": {
            "title": "Stage Type",
            "type": "string"
          }
        },
        "required": [
          "id",
          "stage_key",
          "name",
          "stage_type",
          "sort_order",
          "is_default"
        ],
        "title": "StageOut",
        "type": "object"
      },
      "SubDepartment": {
        "properties": {
          "department_id": {
            "type": "integer"
          },
          "id": {
            "type": "integer"
          },
          "is_active": {
            "type": "boolean"
          },
          "name": {
            "type": "string"
          }
        },
        "title": "SubDepartment",
        "type": "object"
      },
      "SubDepartmentPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/SubDepartment"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "SubDepartmentPage",
        "type": "object"
      },
      "Swipe": {
        "properties": {
          "at": {
            "description": "When the punch happened",
            "format": "date-time",
            "type": "string"
          },
          "device_id": {
            "description": "Your device's id",
            "type": "string"
          },
          "direction": {
            "description": "in, out or unknown",
            "type": "string"
          },
          "employee_id": {
            "type": "string"
          },
          "source": {
            "type": "string"
          }
        },
        "title": "Swipe",
        "type": "object"
      },
      "SwipePage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/Swipe"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "SwipePage",
        "type": "object"
      },
      "TaxDeclaration": {
        "properties": {
          "employee_id": {
            "type": "string"
          },
          "financial_year": {
            "description": "e.g. 2026-27",
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "items": {
            "description": "Section, amount declared, amount verified",
            "items": {
              "type": "object"
            },
            "type": "array"
          },
          "regime": {
            "description": "old or new",
            "type": "string"
          },
          "status": {
            "description": "draft, submitted, verified, rejected",
            "type": "string"
          }
        },
        "title": "TaxDeclaration",
        "type": "object"
      },
      "TaxDeclarationPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/TaxDeclaration"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "TaxDeclarationPage",
        "type": "object"
      },
      "Ticket": {
        "properties": {
          "category": {
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "number": {
            "description": "e.g. AT-000345",
            "type": "string"
          },
          "priority": {
            "type": "string"
          },
          "raised_by": {
            "description": "Employee code",
            "type": "string"
          },
          "status": {
            "description": "open, in_progress, resolved, closed",
            "type": "string"
          },
          "subject": {
            "type": "string"
          }
        },
        "title": "Ticket",
        "type": "object"
      },
      "TicketPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/Ticket"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "TicketPage",
        "type": "object"
      },
      "TokenRequest": {
        "additionalProperties": false,
        "properties": {
          "api_key": {
            "description": "The key's API key (whrk_\u2026)",
            "maxLength": 100,
            "minLength": 1,
            "title": "Api Key",
            "type": "string"
          },
          "client_id": {
            "description": "The key's client ID (whr_live_\u2026)",
            "maxLength": 40,
            "minLength": 1,
            "title": "Client Id",
            "type": "string"
          },
          "client_secret": {
            "description": "The key's client secret (whrs_\u2026)",
            "maxLength": 100,
            "minLength": 1,
            "title": "Client Secret",
            "type": "string"
          },
          "scope": {
            "description": "`webhrapi` for everything the key may do, or a space-separated list of its scopes for a token that can do less",
            "maxLength": 1000,
            "minLength": 1,
            "title": "Scope",
            "type": "string"
          }
        },
        "required": [
          "client_id",
          "client_secret",
          "api_key",
          "scope"
        ],
        "title": "TokenRequest",
        "type": "object"
      },
      "TokenResponse": {
        "properties": {
          "access_token": {
            "title": "Access Token",
            "type": "string"
          },
          "expires_in": {
            "title": "Expires In",
            "type": "integer"
          },
          "scopes": {
            "items": {
              "type": "string"
            },
            "title": "Scopes",
            "type": "array"
          },
          "token_type": {
            "title": "Token Type",
            "type": "string"
          }
        },
        "required": [
          "access_token",
          "token_type",
          "expires_in",
          "scopes"
        ],
        "title": "TokenResponse",
        "type": "object"
      },
      "ValidationError": {
        "properties": {
          "ctx": {
            "title": "Context",
            "type": "object"
          },
          "input": {
            "title": "Input"
          },
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "title": "Location",
            "type": "array"
          },
          "msg": {
            "title": "Message",
            "type": "string"
          },
          "type": {
            "title": "Error Type",
            "type": "string"
          }
        },
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError",
        "type": "object"
      },
      "Webhook": {
        "properties": {
          "active": {
            "type": "boolean"
          },
          "events": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "id": {
            "type": "integer"
          },
          "signing_secret_hint": {
            "description": "Last 4 characters; the secret is shown once",
            "type": "string"
          },
          "url": {
            "description": "https only",
            "type": "string"
          }
        },
        "title": "Webhook",
        "type": "object"
      },
      "WebhookDelivery": {
        "properties": {
          "attempts": {
            "type": "integer"
          },
          "delivered_at": {
            "format": "date-time",
            "type": "string"
          },
          "event": {
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "status_code": {
            "description": "What your URL answered",
            "type": "integer"
          }
        },
        "title": "WebhookDelivery",
        "type": "object"
      },
      "WebhookDeliveryPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/WebhookDelivery"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "WebhookDeliveryPage",
        "type": "object"
      },
      "WebhookPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/Webhook"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "WebhookPage",
        "type": "object"
      },
      "WorkRequest": {
        "properties": {
          "employee_id": {
            "type": "string"
          },
          "from_date": {
            "format": "date",
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "reason": {
            "type": "string"
          },
          "request_type": {
            "description": "wfh, outstation or partial_day",
            "type": "string"
          },
          "status": {
            "description": "pending, approved, rejected, cancelled",
            "type": "string"
          },
          "to_date": {
            "format": "date",
            "type": "string"
          }
        },
        "title": "WorkRequest",
        "type": "object"
      },
      "WorkRequestPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/WorkRequest"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "WorkRequestPage",
        "type": "object"
      },
      "Workspace": {
        "properties": {
          "id": {
            "description": "Workspace id",
            "type": "integer"
          },
          "key_scopes": {
            "description": "What this key may do",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "modules": {
            "description": "Modules the workspace holds",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "description": "Display name",
            "type": "string"
          },
          "parent_workspace_id": {
            "description": "The group workspace above it, if any",
            "type": "integer"
          },
          "slug": {
            "description": "Short name, as in <slug>.webhr.in",
            "type": "string"
          }
        },
        "title": "Workspace",
        "type": "object"
      },
      "WorkspacePage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/Workspace"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          }
        },
        "title": "WorkspacePage",
        "type": "object"
      }
    },
    "securitySchemes": {
      "bearer": {
        "bearerFormat": "JWT",
        "description": "A token from POST /auth/token, valid for one hour.",
        "scheme": "bearer",
        "type": "http"
      }
    }
  },
  "info": {
    "description": "Recruitment and master data for your WebHR workspace. Authenticate with POST /auth/token.",
    "title": "WebHR Public API",
    "version": "v1"
  },
  "openapi": "3.1.0",
  "paths": {
    "/assets": {
      "get": {
        "operationId": "planned_get_assets",
        "parameters": [
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "assigned_to",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetPage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List assets",
        "tags": [
          "Assets"
        ],
        "x-scope": "assets:read",
        "x-status": "planned"
      }
    },
    "/assets/{asset_id}": {
      "get": {
        "operationId": "planned_get_assets_asset_id",
        "parameters": [
          {
            "in": "path",
            "name": "asset_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Asset"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Get an asset",
        "tags": [
          "Assets"
        ],
        "x-scope": "assets:read",
        "x-status": "planned"
      }
    },
    "/assets/{asset_id}/assign": {
      "post": {
        "operationId": "planned_post_assets_asset_id_assign",
        "parameters": [
          {
            "in": "path",
            "name": "asset_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Asset"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Assign an asset",
        "tags": [
          "Assets"
        ],
        "x-scope": "assets:update",
        "x-status": "planned"
      }
    },
    "/assets/{asset_id}/return": {
      "post": {
        "operationId": "planned_post_assets_asset_id_return",
        "parameters": [
          {
            "in": "path",
            "name": "asset_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Asset"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Take an asset back",
        "tags": [
          "Assets"
        ],
        "x-scope": "assets:update",
        "x-status": "planned"
      }
    },
    "/attendance": {
      "get": {
        "operationId": "planned_get_attendance",
        "parameters": [
          {
            "in": "query",
            "name": "employee_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "from_date",
            "required": false,
            "schema": {
              "format": "date",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "to_date",
            "required": false,
            "schema": {
              "format": "date",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AttendanceDayPage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List daily attendance",
        "tags": [
          "Attendance"
        ],
        "x-scope": "attendance:read",
        "x-status": "planned"
      }
    },
    "/attendance/regularization": {
      "get": {
        "operationId": "planned_get_attendance_regularization",
        "parameters": [
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegularizationPage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List regularisation requests",
        "tags": [
          "Attendance"
        ],
        "x-scope": "attendance:read",
        "x-status": "planned"
      }
    },
    "/attendance/roster": {
      "get": {
        "operationId": "planned_get_attendance_roster",
        "parameters": [
          {
            "in": "query",
            "name": "month",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "department",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RosterEntryPage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Get the shift roster",
        "tags": [
          "Attendance"
        ],
        "x-scope": "attendance:read",
        "x-status": "planned"
      }
    },
    "/attendance/roster/assign": {
      "post": {
        "operationId": "planned_post_attendance_roster_assign",
        "parameters": [
          {
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RosterEntry"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RosterEntryPage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Assign shifts",
        "tags": [
          "Attendance"
        ],
        "x-scope": "attendance:update",
        "x-status": "planned"
      }
    },
    "/attendance/swipes": {
      "get": {
        "operationId": "planned_get_attendance_swipes",
        "parameters": [
          {
            "in": "query",
            "name": "employee_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "from",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "to",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SwipePage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List raw punches",
        "tags": [
          "Attendance"
        ],
        "x-scope": "attendance:read",
        "x-status": "planned"
      },
      "post": {
        "operationId": "planned_post_attendance_swipes",
        "parameters": [
          {
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Swipe"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SwipePage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Send punches from your devices",
        "tags": [
          "Attendance"
        ],
        "x-scope": "attendance:create",
        "x-status": "planned"
      }
    },
    "/auth/token": {
      "post": {
        "description": "Swap a key's client_id, client_secret and api_key, with the scope wanted, for a token valid for one hour.",
        "operationId": "create_token_auth_token_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TokenRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TokenResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [],
        "summary": "Create Token",
        "tags": [
          "Authentication"
        ],
        "x-status": "live"
      }
    },
    "/department-masters": {
      "get": {
        "operationId": "list_departments_department_masters_get",
        "parameters": [
          {
            "in": "query",
            "name": "include_inactive",
            "required": false,
            "schema": {
              "default": false,
              "title": "Include Inactive",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "default": 1,
              "maximum": 100000,
              "minimum": 1,
              "title": "Page",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "default": 25,
              "maximum": 200,
              "minimum": 1,
              "title": "Page Size",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DepartmentPage"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Departments",
        "tags": [
          "Master data"
        ],
        "x-scope": "master_data:read",
        "x-status": "live"
      }
    },
    "/designation-masters": {
      "get": {
        "operationId": "list_designations_designation_masters_get",
        "parameters": [
          {
            "in": "query",
            "name": "include_inactive",
            "required": false,
            "schema": {
              "default": false,
              "title": "Include Inactive",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "default": 1,
              "maximum": 100000,
              "minimum": 1,
              "title": "Page",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "default": 25,
              "maximum": 200,
              "minimum": 1,
              "title": "Page Size",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DesignationPage"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Designations",
        "tags": [
          "Master data"
        ],
        "x-scope": "master_data:read",
        "x-status": "live"
      }
    },
    "/employees": {
      "get": {
        "operationId": "planned_get_employees",
        "parameters": [
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "department",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "designation",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "legal_entity_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "updated_since",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmployeePage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List employees",
        "tags": [
          "Employees"
        ],
        "x-scope": "employees:read",
        "x-status": "planned"
      },
      "post": {
        "operationId": "planned_post_employees",
        "parameters": [
          {
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmployeeCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Employee"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Create an employee",
        "tags": [
          "Employees"
        ],
        "x-scope": "employees:create",
        "x-status": "planned"
      }
    },
    "/employees/{employee_id}": {
      "get": {
        "operationId": "planned_get_employees_employee_id",
        "parameters": [
          {
            "in": "path",
            "name": "employee_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Employee"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Get an employee",
        "tags": [
          "Employees"
        ],
        "x-scope": "employees:read",
        "x-status": "planned"
      },
      "put": {
        "operationId": "planned_put_employees_employee_id",
        "parameters": [
          {
            "in": "path",
            "name": "employee_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmployeeCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Employee"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Update an employee",
        "tags": [
          "Employees"
        ],
        "x-scope": "employees:update",
        "x-status": "planned"
      }
    },
    "/employees/{employee_id}/direct-reports": {
      "get": {
        "operationId": "planned_get_employees_employee_id_direct_reports",
        "parameters": [
          {
            "in": "path",
            "name": "employee_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmployeePage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List direct reports",
        "tags": [
          "Employees"
        ],
        "x-scope": "employees:read",
        "x-status": "planned"
      }
    },
    "/employees/{employee_id}/documents": {
      "get": {
        "operationId": "planned_get_employees_employee_id_documents",
        "parameters": [
          {
            "in": "path",
            "name": "employee_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocumentPage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List an employee's documents",
        "tags": [
          "Documents & skills"
        ],
        "x-scope": "documents:read",
        "x-status": "planned"
      },
      "post": {
        "operationId": "planned_post_employees_employee_id_documents",
        "parameters": [
          {
            "in": "path",
            "name": "employee_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Document"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Document"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Upload a document",
        "tags": [
          "Documents & skills"
        ],
        "x-scope": "documents:create",
        "x-status": "planned"
      }
    },
    "/employees/{employee_id}/emergency-contacts": {
      "get": {
        "operationId": "planned_get_employees_employee_id_emergency_contacts",
        "parameters": [
          {
            "in": "path",
            "name": "employee_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmergencyContactPage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List emergency contacts",
        "tags": [
          "Employees"
        ],
        "x-scope": "employees.personal:read",
        "x-status": "planned"
      }
    },
    "/employees/{employee_id}/job-history": {
      "get": {
        "operationId": "planned_get_employees_employee_id_job_history",
        "parameters": [
          {
            "in": "path",
            "name": "employee_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobHistoryEntryPage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List job history",
        "tags": [
          "Employees"
        ],
        "x-scope": "employees:read",
        "x-status": "planned"
      }
    },
    "/employees/{employee_id}/leave-balance": {
      "get": {
        "operationId": "planned_get_employees_employee_id_leave_balance",
        "parameters": [
          {
            "in": "path",
            "name": "employee_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "year",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LeaveBalancePage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Get an employee's leave balance",
        "tags": [
          "Leave"
        ],
        "x-scope": "leave:read",
        "x-status": "planned"
      }
    },
    "/employees/{employee_id}/reporting-hierarchy": {
      "put": {
        "operationId": "planned_put_employees_employee_id_reporting_hierarchy",
        "parameters": [
          {
            "in": "path",
            "name": "employee_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JobHistoryEntry"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Employee"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Change the reporting manager",
        "tags": [
          "Employees"
        ],
        "x-scope": "employees:update",
        "x-status": "planned"
      }
    },
    "/employees/{employee_id}/salary": {
      "get": {
        "operationId": "planned_get_employees_employee_id_salary",
        "parameters": [
          {
            "in": "path",
            "name": "employee_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Salary"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Get an employee's salary",
        "tags": [
          "Salaries"
        ],
        "x-scope": "salaries:read",
        "x-status": "planned"
      },
      "post": {
        "operationId": "planned_post_employees_employee_id_salary",
        "parameters": [
          {
            "in": "path",
            "name": "employee_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SalaryRevision"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Salary"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Revise a salary",
        "tags": [
          "Salaries"
        ],
        "x-scope": "salaries:update",
        "x-status": "planned"
      }
    },
    "/employees/{employee_id}/salary-history": {
      "get": {
        "operationId": "planned_get_employees_employee_id_salary_history",
        "parameters": [
          {
            "in": "path",
            "name": "employee_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SalaryPage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List salary revisions",
        "tags": [
          "Salaries"
        ],
        "x-scope": "salaries:read",
        "x-status": "planned"
      }
    },
    "/employees/{employee_id}/skills": {
      "get": {
        "operationId": "planned_get_employees_employee_id_skills",
        "parameters": [
          {
            "in": "path",
            "name": "employee_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SkillPage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List an employee's skills",
        "tags": [
          "Documents & skills"
        ],
        "x-scope": "employees:read",
        "x-status": "planned"
      },
      "put": {
        "operationId": "planned_put_employees_employee_id_skills",
        "parameters": [
          {
            "in": "path",
            "name": "employee_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Skill"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SkillPage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Set an employee's skills",
        "tags": [
          "Documents & skills"
        ],
        "x-scope": "employees:update",
        "x-status": "planned"
      }
    },
    "/exit-management/exits": {
      "get": {
        "operationId": "planned_get_exit_management_exits",
        "parameters": [
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "updated_since",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExitPage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List exits",
        "tags": [
          "Exits"
        ],
        "x-scope": "exits:read",
        "x-status": "planned"
      },
      "post": {
        "operationId": "planned_post_exit_management_exits",
        "parameters": [
          {
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Exit"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Exit"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Start an exit",
        "tags": [
          "Exits"
        ],
        "x-scope": "exits:create",
        "x-status": "planned"
      }
    },
    "/exit-management/exits/{exit_id}": {
      "get": {
        "operationId": "planned_get_exit_management_exits_exit_id",
        "parameters": [
          {
            "in": "path",
            "name": "exit_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Exit"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Get an exit",
        "tags": [
          "Exits"
        ],
        "x-scope": "exits:read",
        "x-status": "planned"
      },
      "put": {
        "operationId": "planned_put_exit_management_exits_exit_id",
        "parameters": [
          {
            "in": "path",
            "name": "exit_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Exit"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Exit"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Update an exit",
        "tags": [
          "Exits"
        ],
        "x-scope": "exits:update",
        "x-status": "planned"
      }
    },
    "/helpdesk/tickets": {
      "get": {
        "operationId": "planned_get_helpdesk_tickets",
        "parameters": [
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "category",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "updated_since",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TicketPage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List tickets",
        "tags": [
          "Helpdesk"
        ],
        "x-scope": "helpdesk:read",
        "x-status": "planned"
      },
      "post": {
        "operationId": "planned_post_helpdesk_tickets",
        "parameters": [
          {
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Ticket"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ticket"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Raise a ticket",
        "tags": [
          "Helpdesk"
        ],
        "x-scope": "helpdesk:create",
        "x-status": "planned"
      }
    },
    "/helpdesk/tickets/{ticket_id}": {
      "get": {
        "operationId": "planned_get_helpdesk_tickets_ticket_id",
        "parameters": [
          {
            "in": "path",
            "name": "ticket_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ticket"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Get a ticket",
        "tags": [
          "Helpdesk"
        ],
        "x-scope": "helpdesk:read",
        "x-status": "planned"
      },
      "patch": {
        "operationId": "planned_patch_helpdesk_tickets_ticket_id",
        "parameters": [
          {
            "in": "path",
            "name": "ticket_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Ticket"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ticket"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Update a ticket",
        "tags": [
          "Helpdesk"
        ],
        "x-scope": "helpdesk:update",
        "x-status": "planned"
      }
    },
    "/holidays": {
      "get": {
        "operationId": "planned_get_holidays",
        "parameters": [
          {
            "in": "query",
            "name": "year",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "location",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HolidayPage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List holidays",
        "tags": [
          "Holidays"
        ],
        "x-scope": "holidays:read",
        "x-status": "planned"
      },
      "post": {
        "operationId": "planned_post_holidays",
        "parameters": [
          {
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Holiday"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Holiday"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Add a holiday",
        "tags": [
          "Holidays"
        ],
        "x-scope": "holidays:create",
        "x-status": "planned"
      }
    },
    "/hr-ops/announcements": {
      "get": {
        "operationId": "planned_get_hr_ops_announcements",
        "parameters": [
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnnouncementPage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List announcements",
        "tags": [
          "Announcements"
        ],
        "x-scope": "announcements:read",
        "x-status": "planned"
      },
      "post": {
        "operationId": "planned_post_hr_ops_announcements",
        "parameters": [
          {
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Announcement"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Announcement"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Publish an announcement",
        "tags": [
          "Announcements"
        ],
        "x-scope": "announcements:create",
        "x-status": "planned"
      }
    },
    "/hr-ops/loans": {
      "get": {
        "operationId": "planned_get_hr_ops_loans",
        "parameters": [
          {
            "in": "query",
            "name": "employee_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoanPage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List loans and advances",
        "tags": [
          "Loans"
        ],
        "x-scope": "loans:read",
        "x-status": "planned"
      }
    },
    "/hr-ops/loans/{loan_id}/repayments": {
      "post": {
        "operationId": "planned_post_hr_ops_loans_loan_id_repayments",
        "parameters": [
          {
            "in": "path",
            "name": "loan_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoanRepayment"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Loan"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Record a repayment",
        "tags": [
          "Loans"
        ],
        "x-scope": "loans:update",
        "x-status": "planned"
      }
    },
    "/hr-ops/requisitions": {
      "get": {
        "operationId": "planned_get_hr_ops_requisitions",
        "parameters": [
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RequisitionPage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List headcount requisitions",
        "tags": [
          "Requisitions"
        ],
        "x-scope": "recruitment.jobs:read",
        "x-status": "planned"
      }
    },
    "/leave-policies": {
      "get": {
        "operationId": "planned_get_leave_policies",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LeavePolicyPage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List leave policies",
        "tags": [
          "Leave"
        ],
        "x-scope": "leave:read",
        "x-status": "planned"
      }
    },
    "/leave-types": {
      "get": {
        "operationId": "planned_get_leave_types",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LeaveTypePage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List leave types",
        "tags": [
          "Leave"
        ],
        "x-scope": "leave:read",
        "x-status": "planned"
      }
    },
    "/leaves": {
      "get": {
        "operationId": "planned_get_leaves",
        "parameters": [
          {
            "in": "query",
            "name": "employee_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "from_date",
            "required": false,
            "schema": {
              "format": "date",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "to_date",
            "required": false,
            "schema": {
              "format": "date",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "updated_since",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LeaveRequestPage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List leave requests",
        "tags": [
          "Leave"
        ],
        "x-scope": "leave:read",
        "x-status": "planned"
      }
    },
    "/leaves/apply-on-behalf": {
      "post": {
        "operationId": "planned_post_leaves_apply_on_behalf",
        "parameters": [
          {
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LeaveRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LeaveRequest"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Apply leave for an employee",
        "tags": [
          "Leave"
        ],
        "x-scope": "leave:create",
        "x-status": "planned"
      }
    },
    "/leaves/{leave_id}/approve-level1": {
      "post": {
        "operationId": "planned_post_leaves_leave_id_approve_level1",
        "parameters": [
          {
            "in": "path",
            "name": "leave_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LeaveRequest"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Approve (first level)",
        "tags": [
          "Leave"
        ],
        "x-scope": "leave:approve",
        "x-status": "planned"
      }
    },
    "/leaves/{leave_id}/approve-level2": {
      "post": {
        "operationId": "planned_post_leaves_leave_id_approve_level2",
        "parameters": [
          {
            "in": "path",
            "name": "leave_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LeaveRequest"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Approve (second level)",
        "tags": [
          "Leave"
        ],
        "x-scope": "leave:approve",
        "x-status": "planned"
      }
    },
    "/leaves/{leave_id}/cancel": {
      "post": {
        "operationId": "planned_post_leaves_leave_id_cancel",
        "parameters": [
          {
            "in": "path",
            "name": "leave_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LeaveRequest"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Cancel a leave request",
        "tags": [
          "Leave"
        ],
        "x-scope": "leave:create",
        "x-status": "planned"
      }
    },
    "/leaves/{leave_id}/reject": {
      "post": {
        "operationId": "planned_post_leaves_leave_id_reject",
        "parameters": [
          {
            "in": "path",
            "name": "leave_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LeaveRequest"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Reject a leave request",
        "tags": [
          "Leave"
        ],
        "x-scope": "leave:approve",
        "x-status": "planned"
      }
    },
    "/org/business-units": {
      "get": {
        "operationId": "list_business_units_org_business_units_get",
        "parameters": [
          {
            "in": "query",
            "name": "include_inactive",
            "required": false,
            "schema": {
              "default": false,
              "title": "Include Inactive",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "default": 1,
              "maximum": 100000,
              "minimum": 1,
              "title": "Page",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "default": 25,
              "maximum": 200,
              "minimum": 1,
              "title": "Page Size",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BusinessUnitPage"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Business Units",
        "tags": [
          "Master data"
        ],
        "x-scope": "master_data:read",
        "x-status": "live"
      }
    },
    "/org/legal-entities": {
      "get": {
        "operationId": "list_legal_entities_org_legal_entities_get",
        "parameters": [
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "default": 1,
              "maximum": 100000,
              "minimum": 1,
              "title": "Page",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "default": 25,
              "maximum": 200,
              "minimum": 1,
              "title": "Page Size",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LegalEntityPage"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Legal Entities",
        "tags": [
          "Master data"
        ],
        "x-scope": "master_data:read",
        "x-status": "live"
      }
    },
    "/org/workspaces": {
      "get": {
        "operationId": "planned_get_org_workspaces",
        "parameters": [
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChildWorkspacePage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List branch workspaces (group keys)",
        "tags": [
          "Workspace"
        ],
        "x-scope": "workspace:read",
        "x-status": "planned"
      }
    },
    "/payroll": {
      "get": {
        "operationId": "planned_get_payroll",
        "parameters": [
          {
            "in": "query",
            "name": "month",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "legal_entity_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PayrollRunPage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List payroll runs",
        "tags": [
          "Payroll"
        ],
        "x-scope": "payroll:read",
        "x-status": "planned"
      }
    },
    "/payroll/form16/{employee_id}": {
      "get": {
        "operationId": "planned_get_payroll_form16_employee_id",
        "parameters": [
          {
            "in": "path",
            "name": "employee_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "financial_year",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Form16"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Get Form 16",
        "tags": [
          "Tax"
        ],
        "x-scope": "tax:read",
        "x-status": "planned"
      }
    },
    "/payroll/reimbursements": {
      "get": {
        "operationId": "planned_get_payroll_reimbursements",
        "parameters": [
          {
            "in": "query",
            "name": "employee_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "updated_since",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReimbursementPage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List expense claims",
        "tags": [
          "Expenses"
        ],
        "x-scope": "expenses:read",
        "x-status": "planned"
      },
      "post": {
        "operationId": "planned_post_payroll_reimbursements",
        "parameters": [
          {
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Reimbursement"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Reimbursement"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Submit an expense claim",
        "tags": [
          "Expenses"
        ],
        "x-scope": "expenses:create",
        "x-status": "planned"
      }
    },
    "/payroll/reimbursements/{claim_id}/decision": {
      "post": {
        "operationId": "planned_post_payroll_reimbursements_claim_id_decision",
        "parameters": [
          {
            "in": "path",
            "name": "claim_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Reimbursement"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Approve or reject a claim",
        "tags": [
          "Expenses"
        ],
        "x-scope": "expenses:approve",
        "x-status": "planned"
      }
    },
    "/payroll/{payroll_id}": {
      "get": {
        "operationId": "planned_get_payroll_payroll_id",
        "parameters": [
          {
            "in": "path",
            "name": "payroll_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PayrollRun"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Get a payroll run",
        "tags": [
          "Payroll"
        ],
        "x-scope": "payroll:read",
        "x-status": "planned"
      }
    },
    "/payslips": {
      "get": {
        "operationId": "planned_get_payslips",
        "parameters": [
          {
            "in": "query",
            "name": "employee_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "month",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PayslipPage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List payslips",
        "tags": [
          "Payslips"
        ],
        "x-scope": "payslips:read",
        "x-status": "planned"
      }
    },
    "/payslips/{payslip_id}": {
      "get": {
        "operationId": "planned_get_payslips_payslip_id",
        "parameters": [
          {
            "in": "path",
            "name": "payslip_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Payslip"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Get a payslip",
        "tags": [
          "Payslips"
        ],
        "x-scope": "payslips:read",
        "x-status": "planned"
      }
    },
    "/payslips/{payslip_id}/pdf": {
      "get": {
        "operationId": "planned_get_payslips_payslip_id_pdf",
        "parameters": [
          {
            "in": "path",
            "name": "payslip_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Download"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Download a payslip PDF",
        "tags": [
          "Payslips"
        ],
        "x-scope": "payslips:read",
        "x-status": "planned"
      }
    },
    "/performance/appraisals": {
      "get": {
        "operationId": "planned_get_performance_appraisals",
        "parameters": [
          {
            "in": "query",
            "name": "cycle_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AppraisalPage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List appraisals",
        "tags": [
          "Performance"
        ],
        "x-scope": "performance:read",
        "x-status": "planned"
      }
    },
    "/performance/feedback": {
      "get": {
        "operationId": "planned_get_performance_feedback",
        "parameters": [
          {
            "in": "query",
            "name": "updated_since",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FeedbackPage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List praise and feedback",
        "tags": [
          "Performance"
        ],
        "x-scope": "performance:read",
        "x-status": "planned"
      },
      "post": {
        "operationId": "planned_post_performance_feedback",
        "parameters": [
          {
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Feedback"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Feedback"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Give praise",
        "tags": [
          "Performance"
        ],
        "x-scope": "performance:create",
        "x-status": "planned"
      }
    },
    "/performance/okr-cycles": {
      "get": {
        "operationId": "planned_get_performance_okr_cycles",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OkrCyclePage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List OKR cycles",
        "tags": [
          "Performance"
        ],
        "x-scope": "performance:read",
        "x-status": "planned"
      }
    },
    "/performance/okrs": {
      "get": {
        "operationId": "planned_get_performance_okrs",
        "parameters": [
          {
            "in": "query",
            "name": "cycle_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "owner",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectivePage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List objectives",
        "tags": [
          "Performance"
        ],
        "x-scope": "performance:read",
        "x-status": "planned"
      }
    },
    "/performance/okrs/{objective_id}/progress": {
      "post": {
        "operationId": "planned_post_performance_okrs_objective_id_progress",
        "parameters": [
          {
            "in": "path",
            "name": "objective_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Objective"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Objective"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Update key-result progress",
        "tags": [
          "Performance"
        ],
        "x-scope": "performance:update",
        "x-status": "planned"
      }
    },
    "/recruitment/applications": {
      "get": {
        "operationId": "planned_get_recruitment_applications",
        "parameters": [
          {
            "in": "query",
            "name": "job_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "stage_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "updated_since",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationPage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List applications",
        "tags": [
          "Recruitment"
        ],
        "x-scope": "recruitment.applications:read",
        "x-status": "planned"
      },
      "post": {
        "operationId": "planned_post_recruitment_applications",
        "parameters": [
          {
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApplicationCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Application"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Add an application",
        "tags": [
          "Recruitment"
        ],
        "x-scope": "recruitment.applications:create",
        "x-status": "planned"
      }
    },
    "/recruitment/applications/{application_id}": {
      "get": {
        "operationId": "planned_get_recruitment_applications_application_id",
        "parameters": [
          {
            "in": "path",
            "name": "application_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Application"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Get an application",
        "tags": [
          "Recruitment"
        ],
        "x-scope": "recruitment.applications:read",
        "x-status": "planned"
      }
    },
    "/recruitment/applications/{application_id}/convert-to-employee": {
      "post": {
        "operationId": "planned_post_recruitment_applications_application_id_convert_to_employee",
        "parameters": [
          {
            "in": "path",
            "name": "application_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Employee"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Hire: create the employee",
        "tags": [
          "Recruitment"
        ],
        "x-scope": "recruitment.applications:update",
        "x-status": "planned"
      }
    },
    "/recruitment/applications/{application_id}/stage": {
      "post": {
        "operationId": "planned_post_recruitment_applications_application_id_stage",
        "parameters": [
          {
            "in": "path",
            "name": "application_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Application"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Move to a stage",
        "tags": [
          "Recruitment"
        ],
        "x-scope": "recruitment.applications:update",
        "x-status": "planned"
      }
    },
    "/recruitment/candidates": {
      "get": {
        "operationId": "planned_get_recruitment_candidates",
        "parameters": [
          {
            "in": "query",
            "name": "email",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "updated_since",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CandidatePage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List candidates",
        "tags": [
          "Recruitment"
        ],
        "x-scope": "recruitment.applications:read",
        "x-status": "planned"
      }
    },
    "/recruitment/interviews": {
      "get": {
        "operationId": "planned_get_recruitment_interviews",
        "parameters": [
          {
            "in": "query",
            "name": "application_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InterviewPage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List interviews",
        "tags": [
          "Recruitment"
        ],
        "x-scope": "recruitment.interviews:read",
        "x-status": "planned"
      }
    },
    "/recruitment/jobs": {
      "get": {
        "description": "Jobs, most recently changed first. `updated_since` returns only what changed since then.",
        "operationId": "list_jobs_recruitment_jobs_get",
        "parameters": [
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "enum": [
                    "draft",
                    "published",
                    "closed"
                  ],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          },
          {
            "in": "query",
            "name": "department",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maxLength": 100,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Department"
            }
          },
          {
            "in": "query",
            "name": "updated_since",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "date-time",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Updated Since"
            }
          },
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "default": 1,
              "maximum": 100000,
              "minimum": 1,
              "title": "Page",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "default": 25,
              "maximum": 200,
              "minimum": 1,
              "title": "Page Size",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobPage"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Jobs",
        "tags": [
          "Recruitment"
        ],
        "x-scope": "recruitment.jobs:read",
        "x-status": "live"
      },
      "post": {
        "description": "Always created as a draft; publish it with POST /jobs/{job_id}/publish.",
        "operationId": "create_job_recruitment_jobs_post",
        "parameters": [
          {
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Idempotency-Key"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JobCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Job",
        "tags": [
          "Recruitment"
        ],
        "x-scope": "recruitment.jobs:create",
        "x-status": "live"
      }
    },
    "/recruitment/jobs/{job_id}": {
      "get": {
        "operationId": "get_job_recruitment_jobs__job_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "job_id",
            "required": true,
            "schema": {
              "minimum": 1,
              "title": "Job Id",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Job",
        "tags": [
          "Recruitment"
        ],
        "x-scope": "recruitment.jobs:read",
        "x-status": "live"
      },
      "put": {
        "description": "Change a job's details. Its status changes only through /publish and /close.",
        "operationId": "update_job_recruitment_jobs__job_id__put",
        "parameters": [
          {
            "in": "path",
            "name": "job_id",
            "required": true,
            "schema": {
              "minimum": 1,
              "title": "Job Id",
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JobUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Job",
        "tags": [
          "Recruitment"
        ],
        "x-scope": "recruitment.jobs:update",
        "x-status": "live"
      }
    },
    "/recruitment/jobs/{job_id}/close": {
      "post": {
        "description": "Take the job off the careers page; existing applications stay.",
        "operationId": "close_job_recruitment_jobs__job_id__close_post",
        "parameters": [
          {
            "in": "path",
            "name": "job_id",
            "required": true,
            "schema": {
              "minimum": 1,
              "title": "Job Id",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Idempotency-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Close Job",
        "tags": [
          "Recruitment"
        ],
        "x-scope": "recruitment.jobs:update",
        "x-status": "live"
      }
    },
    "/recruitment/jobs/{job_id}/publish": {
      "post": {
        "description": "Put the job on the careers page.",
        "operationId": "publish_job_recruitment_jobs__job_id__publish_post",
        "parameters": [
          {
            "in": "path",
            "name": "job_id",
            "required": true,
            "schema": {
              "minimum": 1,
              "title": "Job Id",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Idempotency-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Publish Job",
        "tags": [
          "Recruitment"
        ],
        "x-scope": "recruitment.jobs:update",
        "x-status": "live"
      }
    },
    "/recruitment/offers": {
      "get": {
        "operationId": "planned_get_recruitment_offers",
        "parameters": [
          {
            "in": "query",
            "name": "application_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OfferPage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List offers",
        "tags": [
          "Recruitment"
        ],
        "x-scope": "recruitment.offers:read",
        "x-status": "planned"
      }
    },
    "/recruitment/stages": {
      "get": {
        "description": "The workspace's hiring pipeline, in order.",
        "operationId": "list_stages_recruitment_stages_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/StageOut"
                  },
                  "title": "Response List Stages Recruitment Stages Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "List Stages",
        "tags": [
          "Recruitment"
        ],
        "x-scope": "recruitment.jobs:read",
        "x-status": "live"
      }
    },
    "/recruitment/technical/applications/{application_id}": {
      "get": {
        "operationId": "planned_get_recruitment_technical_applications_application_id",
        "parameters": [
          {
            "in": "path",
            "name": "application_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScorecardPage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Get technical scorecards",
        "tags": [
          "Recruitment"
        ],
        "x-scope": "recruitment.technical:read",
        "x-status": "planned"
      }
    },
    "/salary-structures": {
      "get": {
        "operationId": "planned_get_salary_structures",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SalaryStructurePage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List salary structures",
        "tags": [
          "Salaries"
        ],
        "x-scope": "salaries:read",
        "x-status": "planned"
      }
    },
    "/settlements": {
      "get": {
        "operationId": "planned_get_settlements",
        "parameters": [
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SettlementPage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List final settlements",
        "tags": [
          "Settlements"
        ],
        "x-scope": "settlements:read",
        "x-status": "planned"
      }
    },
    "/settlements/{settlement_id}": {
      "get": {
        "operationId": "planned_get_settlements_settlement_id",
        "parameters": [
          {
            "in": "path",
            "name": "settlement_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Settlement"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Get a final settlement",
        "tags": [
          "Settlements"
        ],
        "x-scope": "settlements:read",
        "x-status": "planned"
      }
    },
    "/statutory/challans": {
      "get": {
        "operationId": "planned_get_statutory_challans",
        "parameters": [
          {
            "in": "query",
            "name": "kind",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "month",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChallanPage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List PF, ESI, PT and TDS challans",
        "tags": [
          "Statutory"
        ],
        "x-scope": "statutory:read",
        "x-status": "planned"
      }
    },
    "/sub-department-masters": {
      "get": {
        "operationId": "planned_get_sub_department_masters",
        "parameters": [
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubDepartmentPage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List sub-departments",
        "tags": [
          "Master data"
        ],
        "x-scope": "master_data:read",
        "x-status": "planned"
      }
    },
    "/tax-declarations": {
      "get": {
        "operationId": "planned_get_tax_declarations",
        "parameters": [
          {
            "in": "query",
            "name": "financial_year",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaxDeclarationPage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List tax declarations",
        "tags": [
          "Tax"
        ],
        "x-scope": "tax:read",
        "x-status": "planned"
      }
    },
    "/webhooks": {
      "get": {
        "operationId": "planned_get_webhooks",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookPage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List webhooks",
        "tags": [
          "Webhooks"
        ],
        "x-scope": "webhooks:read",
        "x-status": "planned"
      },
      "post": {
        "operationId": "planned_post_webhooks",
        "parameters": [
          {
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Webhook"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Webhook"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Add a webhook",
        "tags": [
          "Webhooks"
        ],
        "x-scope": "webhooks:manage",
        "x-status": "planned"
      }
    },
    "/webhooks/events": {
      "get": {
        "operationId": "planned_get_webhooks_events",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookPage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List the events you can subscribe to",
        "tags": [
          "Webhooks"
        ],
        "x-scope": "webhooks:read",
        "x-status": "planned"
      }
    },
    "/webhooks/{webhook_id}": {
      "delete": {
        "operationId": "planned_delete_webhooks_webhook_id",
        "parameters": [
          {
            "in": "path",
            "name": "webhook_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Webhook"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Remove a webhook",
        "tags": [
          "Webhooks"
        ],
        "x-scope": "webhooks:manage",
        "x-status": "planned"
      }
    },
    "/webhooks/{webhook_id}/deliveries": {
      "get": {
        "operationId": "planned_get_webhooks_webhook_id_deliveries",
        "parameters": [
          {
            "in": "path",
            "name": "webhook_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookDeliveryPage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List deliveries",
        "tags": [
          "Webhooks"
        ],
        "x-scope": "webhooks:read",
        "x-status": "planned"
      }
    },
    "/webhooks/{webhook_id}/deliveries/{delivery_id}/resend": {
      "post": {
        "operationId": "planned_post_webhooks_webhook_id_deliveries_delivery_id_resend",
        "parameters": [
          {
            "in": "path",
            "name": "webhook_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "delivery_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookDelivery"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Resend a delivery",
        "tags": [
          "Webhooks"
        ],
        "x-scope": "webhooks:manage",
        "x-status": "planned"
      }
    },
    "/work-requests/{request_type}": {
      "get": {
        "operationId": "planned_get_work_requests_request_type",
        "parameters": [
          {
            "in": "path",
            "name": "request_type",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "from_date",
            "required": false,
            "schema": {
              "format": "date",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkRequestPage"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List WFH, outstation or partial-day requests",
        "tags": [
          "Work requests"
        ],
        "x-scope": "work_requests:read",
        "x-status": "planned"
      }
    },
    "/work-requests/{request_type}/apply-on-behalf": {
      "post": {
        "operationId": "planned_post_work_requests_request_type_apply_on_behalf",
        "parameters": [
          {
            "in": "path",
            "name": "request_type",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WorkRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkRequest"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Raise a request for an employee",
        "tags": [
          "Work requests"
        ],
        "x-scope": "work_requests:create",
        "x-status": "planned"
      }
    },
    "/work-requests/{request_type}/{request_id}/decision": {
      "post": {
        "operationId": "planned_post_work_requests_request_type_request_id_decision",
        "parameters": [
          {
            "in": "path",
            "name": "request_type",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "request_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkRequest"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Approve or reject a request",
        "tags": [
          "Work requests"
        ],
        "x-scope": "work_requests:approve",
        "x-status": "planned"
      }
    },
    "/workspace": {
      "get": {
        "operationId": "planned_get_workspace",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Workspace"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Get this key's workspace",
        "tags": [
          "Workspace"
        ],
        "x-scope": "workspace:read",
        "x-status": "planned"
      }
    }
  },
  "security": [
    {
      "bearer": []
    }
  ],
  "servers": [
    {
      "description": "Production",
      "url": "https://api.webhr.in/api/v1"
    }
  ],
  "x-tagGroups": [
    {
      "name": "Getting started",
      "tags": [
        "Authentication",
        "Workspace"
      ]
    },
    {
      "name": "Core HR",
      "tags": [
        "Employees",
        "Master data",
        "Documents & skills",
        "Exits"
      ]
    },
    {
      "name": "Time & leave",
      "tags": [
        "Leave",
        "Holidays",
        "Attendance",
        "Work requests"
      ]
    },
    {
      "name": "Payroll & finance",
      "tags": [
        "Payroll",
        "Payslips",
        "Salaries",
        "Tax",
        "Settlements",
        "Loans",
        "Expenses",
        "Statutory"
      ]
    },
    {
      "name": "Talent",
      "tags": [
        "Recruitment",
        "Requisitions",
        "Performance"
      ]
    },
    {
      "name": "Service",
      "tags": [
        "Assets",
        "Helpdesk",
        "Announcements"
      ]
    },
    {
      "name": "Platform",
      "tags": [
        "Webhooks"
      ]
    }
  ]
}
