{
  "swagger": "2.0",
  "info": {
    "description": "This is Data API server",
    "title": "DataAPI API",
    "contact": {},
    "version": "1.0"
  },
  "paths": {
    "/api/v1/orgs/{org_id}/projects/{project_id}/maintenance-tasks": {
      "get": {
        "operationId": "ListProjectMaintenanceTasks",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/centralListProjectMaintenanceTasksResp"
            }
          }
        },
        "parameters": [
          {
            "name": "org_id",
            "in": "path",
            "required": true,
            "type": "string",
            "format": "uint64"
          },
          {
            "name": "project_id",
            "in": "path",
            "required": true,
            "type": "string",
            "format": "uint64"
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int64"
          },
          {
            "name": "per_page",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "tags": ["ClusterService"]
      }
    },
    "/api/v1/orgs/{org_id}/projects/{project_id}/maintenance-tasks/{task_id}/defer": {
      "post": {
        "operationId": "DeferMaintenanceTask",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/centralDefaultResp"
            }
          }
        },
        "parameters": [
          {
            "name": "org_id",
            "in": "path",
            "required": true,
            "type": "string",
            "format": "uint64"
          },
          {
            "name": "project_id",
            "in": "path",
            "required": true,
            "type": "string",
            "format": "uint64"
          },
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "type": "string",
            "format": "uint64"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "object"
            }
          }
        ],
        "tags": ["ClusterService"]
      }
    },
    "/api/v1/orgs/{org_id}/projects/{project_id}/maintenance-window": {
      "get": {
        "operationId": "GetProjectMaintenanceWindow",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/centralGetProjectMaintenanceWindowResp"
            }
          }
        },
        "parameters": [
          {
            "name": "org_id",
            "in": "path",
            "required": true,
            "type": "string",
            "format": "uint64"
          },
          {
            "name": "project_id",
            "in": "path",
            "required": true,
            "type": "string",
            "format": "uint64"
          }
        ],
        "tags": ["ClusterService"]
      },
      "put": {
        "operationId": "UpdateProjectMaintenanceWindow",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/centralUpdateProjectMaintenanceWindowResp"
            }
          }
        },
        "parameters": [
          {
            "name": "org_id",
            "in": "path",
            "required": true,
            "type": "string",
            "format": "uint64"
          },
          {
            "name": "project_id",
            "in": "path",
            "required": true,
            "type": "string",
            "format": "uint64"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "object",
              "properties": {
                "maintenance_window": {
                  "$ref": "#/definitions/centralMaintenanceWindow"
                }
              },
              "required": ["maintenance_window"]
            }
          }
        ],
        "tags": ["ClusterService"]
      }
    }
  },
  "definitions": {
    "centralListProjectMaintenanceTasksResp": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/centralMaintenanceTask"
          }
        },
        "total": {
          "type": "integer",
          "format": "int32"
        },
        "base_resp": {
          "$ref": "#/definitions/centralBaseResp"
        }
      },
      "required": ["items", "total", "base_resp"]
    },
    "centralDefaultResp": {
      "type": "object",
      "properties": {
        "base_resp": {
          "$ref": "#/definitions/centralBaseResp"
        }
      },
      "required": ["base_resp"]
    },
    "centralGetProjectMaintenanceWindowResp": {
      "type": "object",
      "properties": {
        "maintenance_window": {
          "$ref": "#/definitions/centralMaintenanceWindow"
        },
        "next_maintenance_date": {
          "type": "string",
          "format": "date-time"
        },
        "base_resp": {
          "$ref": "#/definitions/centralBaseResp"
        }
      },
      "required": ["maintenance_window", "next_maintenance_date", "base_resp"]
    },
    "centralUpdateProjectMaintenanceWindowResp": {
      "type": "object",
      "properties": {
        "unchanged_tasks": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/centralUnchangedTask"
          }
        },
        "base_resp": {
          "$ref": "#/definitions/centralBaseResp"
        }
      },
      "required": ["base_resp"]
    },
    "centralMaintenanceWindow": {
      "type": "object",
      "properties": {
        "day_of_week": {
          "type": "integer",
          "format": "int32"
        },
        "hour_of_day": {
          "type": "integer",
          "format": "int32"
        },
        "minute_of_hour": {
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "centralBaseResp": {
      "type": "object",
      "properties": {
        "err_code": {
          "type": "string",
          "format": "int64"
        },
        "err_msg": {
          "type": "string"
        }
      }
    },
    "centralMaintenanceTask": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uint64"
        },
        "project_id": {
          "type": "string",
          "format": "uint64"
        },
        "created_at": {
          "type": "string",
          "format": "date-time"
        },
        "description": {
          "type": "string"
        },
        "status": {
          "$ref": "#/definitions/centralMaintenanceTaskStatus"
        },
        "scheduled_apply_time": {
          "type": "string",
          "format": "date-time"
        },
        "deadline": {
          "type": "string",
          "format": "date-time"
        }
      }
    },
    "centralMaintenanceTaskStatus": {
      "type": "string",
      "enum": ["STATUS_UNSPECIFIED", "STATUS_PENDING", "STATUS_RUNNING", "STATUS_DONE"],
      "default": "STATUS_UNSPECIFIED"
    },
    "centralUnchangedTask": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uint64"
        },
        "description": {
          "type": "string"
        }
      }
    }
  }
}
