{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/deputy/json-schema/deputy-availability-list-response-schema.json",
  "title": "AvailabilityListResponse",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/deputy-availability-api-openapi.yml#/components/schemas/AvailabilityListResponse",
  "type": "object",
  "properties": {
    "success": {
      "type": "boolean"
    },
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/modelEmployeeAvailability"
      }
    }
  },
  "$defs": {
    "modelAvailabilityDetail": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "format": "int32"
        },
        "tag": {
          "type": "string"
        },
        "kind": {
          "type": "string"
        },
        "start": {
          "type": "string"
        },
        "end": {
          "type": "string"
        },
        "comment": {
          "type": "string"
        },
        "isAllDay": {
          "type": "boolean"
        },
        "isOvernight": {
          "type": "boolean"
        },
        "recurrenceDetail": {
          "$ref": "#/$defs/modelRecurrenceDetail"
        }
      },
      "title": "Details of a specific availability or unavailability"
    },
    "modelDateOfMonthRecurrenceAvailability": {
      "type": "object",
      "properties": {
        "date": {
          "type": "integer",
          "format": "int32"
        },
        "availability": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/modelAvailabilityDetail"
          }
        }
      },
      "title": "Contains recurrence availability details"
    },
    "modelEmployeeAvailability": {
      "type": "object",
      "properties": {
        "employee": {
          "type": "integer",
          "format": "int32"
        },
        "lastModifiedAt": {
          "type": "string"
        },
        "canAddAvailability": {
          "type": "boolean"
        },
        "hasSetUpAvailability": {
          "type": "boolean"
        },
        "oneOff": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/modelOneOffAvailability"
          }
        },
        "dateOfMonthRecurrences": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/modelDateOfMonthRecurrenceAvailability"
          }
        },
        "weekdayRecurrences": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/modelWeekdayRecurrenceAvailability"
          }
        },
        "timeZone": {
          "type": "string"
        }
      },
      "title": "Contains the availability data for a specific employee"
    },
    "modelOneOffAvailability": {
      "type": "object",
      "properties": {
        "date": {
          "type": "string"
        },
        "availability": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/modelAvailabilityDetail"
          }
        }
      },
      "title": "Contains one-off availability details"
    },
    "modelRecurrenceDetail": {
      "type": "object",
      "properties": {
        "start": {
          "type": "string"
        },
        "end": {
          "type": "string"
        },
        "frequency": {
          "type": "string"
        },
        "interval": {
          "type": "integer",
          "format": "int32"
        },
        "weekOfTheMonth": {
          "type": "integer",
          "format": "int32"
        },
        "isEndingSoon": {
          "type": "boolean"
        }
      },
      "title": "Details of a specific availability or unavailability"
    },
    "modelWeekdayRecurrenceAvailability": {
      "type": "object",
      "properties": {
        "dayOfWeek": {
          "type": "string"
        },
        "availability": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/modelAvailabilityDetail"
          }
        }
      },
      "title": "Contains recurrence availability details"
    }
  }
}