{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/harness/main/json-schema/harness-fixed-schedule-schema.json",
  "title": "FixedSchedule",
  "x-generated": "2026-10-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/harness-autostopping-fixed-schedules-api-openapi.yml#/components/schemas/FixedSchedule",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Name of the schedule"
    },
    "id": {
      "type": "number",
      "description": "ID of fixed schedule",
      "readOnly": true
    },
    "account": {
      "type": "string",
      "description": "ID of account"
    },
    "description": {
      "type": "string",
      "description": "Description of fixed schedule"
    },
    "resources": {
      "type": "array",
      "description": "List of resources to be controlled by the schedule",
      "items": {
        "$ref": "#/$defs/StaticScheduleResource"
      }
    },
    "details": {
      "$ref": "#/$defs/OccurrenceSchedule"
    }
  },
  "$defs": {
    "OccurrenceSchedule": {
      "type": "object",
      "properties": {
        "uptime": {
          "$ref": "#/$defs/TimeSchedule"
        },
        "downtime": {
          "$ref": "#/$defs/TimeSchedule"
        },
        "timezone": {
          "type": "string",
          "description": "Time zone in which the schedule should be applied"
        }
      },
      "description": "Details of time schedule by which the resource should be controlled"
    },
    "StaticScheduleResource": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "ID of the resource to be controlled by schedule. For AutoStopping rule, this would be the ID of the rule"
        },
        "type": {
          "type": "string",
          "description": "Type of the resource to be controlled",
          "enum": [
            "autostop_rule"
          ]
        }
      },
      "description": "Details of an independent resource that can be controlled by a schedule"
    },
    "TimeInDay": {
      "type": "object",
      "properties": {
        "hour": {
          "type": "number",
          "description": "Hour"
        },
        "min": {
          "type": "number",
          "description": "Minutes"
        }
      }
    },
    "TimeSchedule": {
      "type": "object",
      "properties": {
        "period": {
          "type": "object",
          "properties": {
            "start": {
              "type": "string",
              "description": "Start time of the period"
            },
            "end": {
              "type": "string",
              "description": "End time of the period"
            }
          },
          "description": "For schedules that uses an exact time period"
        },
        "days": {
          "type": "object",
          "properties": {
            "days": {
              "type": "array",
              "description": "Days of week on which the schedule should be executed",
              "items": {
                "type": "number"
              }
            },
            "all_day": {
              "type": "boolean",
              "description": "Equivalent to selecting all days"
            },
            "start_time": {
              "$ref": "#/$defs/TimeInDay"
            },
            "end_time": {
              "$ref": "#/$defs/TimeInDay"
            }
          },
          "description": "For specifying a recurring schedule in terms of week days"
        }
      },
      "description": "Specifies the occurrence schedule. Occurrence schedule can either be specified as period or as days"
    }
  }
}