{
    "swagger":"2.0",
    "info":{
        "description":"Manage Scheduler",
        "version":"2022.10.18",
        "title":"REST API for Scheduler in OIG",
        "x-summary":"Manage Scheduler"
    },
    "basePath":"/iam/governance/selfservice/api/v1/scheduler",
    "securityDefinitions":{
        "basicAuth":{
            "type":"basic"
        }
    },
    "security":[
        {
            "basicAuth":[
            ]
        }
    ],
    "tags":[
        {
            "name":"History",
            "description":"Access to the global execution history in the scheduler"
        },
        {
            "name":"Job Actions",
            "description":"Perform action on jobs in the scheduler"
        },
        {
            "name":"Job Executions",
            "description":"Access to the history of jobs in the scheduler"
        },
        {
            "name":"Job Triggers",
            "description":"Access to the trigger for jobs in the scheduler"
        },
        {
            "name":"Jobs",
            "description":"Access to the jobs in the scheduler"
        },
        {
            "name":"Tasks",
            "description":"Access to the tasks in the scheduler"
        }
    ],
    "schemes":[
        "https",
        "http"
    ],
    "paths":{
        "/jobs":{
            "get":{
                "tags":[
                    "Jobs"
                ],
                "summary":"Search for jobs",
                "description":"Retrieves the details of a job that matches the provided search criteria.",
                "operationId":"searchJobs",
                "produces":[
                    "application/json"
                ],
                "parameters":[
                    {
                        "in":"query",
                        "name":"q",
                        "type":"string",
                        "description":"Search query in the format `field eq search_text`. `field` can be *Job::Name*, *Task::Name*, *Status*. `search_text` supports wildcard character *  and the space character should be replaced by double colon(::)"
                    },
                    {
                        "in":"query",
                        "name":"limit",
                        "type":"integer",
                        "description":"The numbers of items to return"
                    },
                    {
                        "in":"query",
                        "name":"offset",
                        "type":"string",
                        "description":"The number of items to skip before starting to collect the result set"
                    },
                    {
                        "in":"query",
                        "name":"orderBy",
                        "type":"string",
                        "description":"The sort field and the sort order in the format `field:order`. Available values of `field` are *jobName*, *taskName* and *status*. Available values of `order` are *desc* and *asc*."
                    }
                ],
                "responses":{
                    "200":{
                        "description":"OK",
                        "schema":{
                            "$ref":"#/definitions/JobSearchResult"
                        }
                    },
                    "400":{
                        "description":"Invalid input"
                    }
                },
                "x-internal-id":"jobs-get",
                "x-filename-id":"jobs-get"
            },
            "post":{
                "tags":[
                    "Jobs"
                ],
                "summary":"Create a new job",
                "description":"Creates a new job in the scheduler with the provided details.",
                "operationId":"createJob",
                "produces":[
                    "application/json"
                ],
                "consumes":[
                    "application/json"
                ],
                "responses":{
                    "200":{
                        "description":"OK",
                        "schema":{
                            "$ref":"#/definitions/Success"
                        }
                    },
                    "400":{
                        "description":"Invalid input"
                    }
                },
                "parameters":[
                    {
                        "in":"body",
                        "name":"Job Details",
                        "schema":{
                            "type":"object",
                            "$ref":"#/definitions/JobDetails"
                        }
                    }
                ],
                "x-internal-id":"jobs-post",
                "x-filename-id":"jobs-post"
            }
        },
        "/jobs/{jobName}":{
            "get":{
                "tags":[
                    "Jobs"
                ],
                "summary":"Get job details",
                "description":"Retrieves the details of a job such as a parameter, failed notification, and other details.",
                "operationId":"addPet",
                "produces":[
                    "application/json"
                ],
                "parameters":[
                    {
                        "in":"path",
                        "name":"jobName",
                        "required":true,
                        "type":"string",
                        "description":"Name of the job"
                    }
                ],
                "responses":{
                    "200":{
                        "description":"OK",
                        "schema":{
                            "$ref":"#/definitions/JobDetails"
                        }
                    },
                    "400":{
                        "description":"Invalid input"
                    }
                },
                "x-internal-id":"jobs-{jobName}-get",
                "x-filename-id":"jobs-jobname-get"
            },
            "put":{
                "tags":[
                    "Jobs"
                ],
                "summary":"Update job details",
                "description":"Updates the details of a job such as a parameter value or retry count.",
                "operationId":"updateJob",
                "produces":[
                    "application/json"
                ],
                "consumes":[
                    "application/json"
                ],
                "parameters":[
                    {
                        "in":"path",
                        "name":"jobName",
                        "required":true,
                        "type":"string",
                        "description":"Name of the job"
                    },
                    {
                        "in":"body",
                        "name":"Job Details",
                        "schema":{
                            "type":"object",
                            "$ref":"#/definitions/JobDetails"
                        }
                    }
                ],
                "responses":{
                    "200":{
                        "description":"OK",
                        "schema":{
                            "$ref":"#/definitions/Success"
                        }
                    },
                    "400":{
                        "description":"Invalid input"
                    }
                },
                "x-internal-id":"jobs-{jobName}-put",
                "x-filename-id":"jobs-jobname-put"
            },
            "delete":{
                "tags":[
                    "Jobs"
                ],
                "summary":"Delete job",
                "description":"Deletes a job from the scheduler.",
                "operationId":"deleteJob",
                "produces":[
                    "application/json"
                ],
                "parameters":[
                    {
                        "in":"path",
                        "name":"jobName",
                        "required":true,
                        "type":"string",
                        "description":"Name of the job"
                    }
                ],
                "responses":{
                    "200":{
                        "description":"OK",
                        "schema":{
                            "$ref":"#/definitions/Success"
                        }
                    },
                    "400":{
                        "description":"Invalid input"
                    }
                },
                "x-internal-id":"jobs-{jobName}-delete",
                "x-filename-id":"jobs-jobname-delete"
            }
        },
        "/jobs/{jobName}/run":{
            "post":{
                "tags":[
                    "Job Actions"
                ],
                "summary":"Execute job",
                "description":"Queues the job for manual execution.",
                "operationId":"executeJob",
                "produces":[
                    "application/json"
                ],
                "parameters":[
                    {
                        "in":"path",
                        "name":"jobName",
                        "required":true,
                        "type":"string",
                        "description":"Name of the job"
                    }
                ],
                "responses":{
                    "200":{
                        "description":"OK",
                        "schema":{
                            "$ref":"#/definitions/Success"
                        }
                    },
                    "400":{
                        "description":"Invalid input"
                    }
                },
                "x-internal-id":"jobs-{jobName}-run-post",
                "x-filename-id":"jobs-jobname-run-post"
            }
        },
        "/jobs/{jobName}/stop":{
            "post":{
                "tags":[
                    "Job Actions"
                ],
                "summary":"Stop job",
                "description":"Stops an already running job.",
                "operationId":"stopJob",
                "produces":[
                    "application/json"
                ],
                "parameters":[
                    {
                        "in":"path",
                        "name":"jobName",
                        "required":true,
                        "type":"string",
                        "description":"Name of the job"
                    }
                ],
                "responses":{
                    "200":{
                        "description":"OK",
                        "schema":{
                            "$ref":"#/definitions/Success"
                        }
                    },
                    "400":{
                        "description":"Invalid input"
                    }
                },
                "x-internal-id":"jobs-{jobName}-stop-post",
                "x-filename-id":"jobs-jobname-stop-post"
            }
        },
        "/jobs/{jobName}/enable":{
            "post":{
                "tags":[
                    "Job Actions"
                ],
                "summary":"Enable job",
                "description":"Enables the trigger of a job.",
                "operationId":"enableJob",
                "produces":[
                    "application/json"
                ],
                "parameters":[
                    {
                        "in":"path",
                        "name":"jobName",
                        "required":true,
                        "type":"string",
                        "description":"Name of the job"
                    }
                ],
                "responses":{
                    "200":{
                        "description":"OK",
                        "schema":{
                            "$ref":"#/definitions/Success"
                        }
                    },
                    "400":{
                        "description":"Invalid input"
                    }
                },
                "x-internal-id":"jobs-{jobName}-enable-post",
                "x-filename-id":"jobs-jobname-enable-post"
            }
        },
        "/jobs/{jobName}/disable":{
            "post":{
                "tags":[
                    "Job Actions"
                ],
                "summary":"Disable job",
                "description":"Disables the trigger of a job.",
                "operationId":"disableJob",
                "produces":[
                    "application/json"
                ],
                "parameters":[
                    {
                        "in":"path",
                        "name":"jobName",
                        "required":true,
                        "type":"string",
                        "description":"Name of the job"
                    }
                ],
                "responses":{
                    "200":{
                        "description":"OK",
                        "schema":{
                            "$ref":"#/definitions/Success"
                        }
                    },
                    "400":{
                        "description":"Invalid input"
                    }
                },
                "x-internal-id":"jobs-{jobName}-disable-post",
                "x-filename-id":"jobs-jobname-disable-post"
            }
        },
        "/jobs/{jobName}/trigger":{
            "get":{
                "tags":[
                    "Job Triggers"
                ],
                "summary":"Get trigger details of the job",
                "description":"Returns the trigger details of a job such as schedule and interval type.",
                "operationId":"getTrigger",
                "produces":[
                    "application/json"
                ],
                "parameters":[
                    {
                        "in":"path",
                        "name":"jobName",
                        "required":true,
                        "type":"string",
                        "description":"Name of the job"
                    }
                ],
                "responses":{
                    "200":{
                        "description":"OK",
                        "schema":{
                            "$ref":"#/definitions/Trigger"
                        }
                    },
                    "400":{
                        "description":"Invalid input"
                    }
                },
                "x-internal-id":"jobs-{jobName}-trigger-get",
                "x-filename-id":"jobs-jobname-trigger-get"
            },
            "put":{
                "tags":[
                    "Job Triggers"
                ],
                "summary":"Add/Update the trigger details",
                "description":"Adds or updates the trigger of a job.",
                "operationId":"updateTrigger",
                "produces":[
                    "application/json"
                ],
                "consumes":[
                    "application/json"
                ],
                "parameters":[
                    {
                        "in":"path",
                        "name":"jobName",
                        "required":true,
                        "type":"string",
                        "description":"Name of the job"
                    },
                    {
                        "in":"body",
                        "name":"Trigger Details",
                        "schema":{
                            "type":"object",
                            "$ref":"#/definitions/Trigger"
                        }
                    }
                ],
                "responses":{
                    "200":{
                        "description":"OK",
                        "schema":{
                            "$ref":"#/definitions/Success"
                        }
                    },
                    "400":{
                        "description":"Invalid input"
                    }
                },
                "x-internal-id":"jobs-{jobName}-trigger-put",
                "x-filename-id":"jobs-jobname-trigger-put"
            },
            "delete":{
                "tags":[
                    "Job Triggers"
                ],
                "summary":"Delete the trigger",
                "description":"Deletes the trigger of a job.",
                "operationId":"deleteTrigger",
                "produces":[
                    "application/json"
                ],
                "parameters":[
                    {
                        "in":"path",
                        "name":"jobName",
                        "required":true,
                        "type":"string",
                        "description":"Name of the job"
                    }
                ],
                "responses":{
                    "200":{
                        "description":"OK",
                        "schema":{
                            "$ref":"#/definitions/Success"
                        }
                    },
                    "400":{
                        "description":"Invalid input"
                    }
                },
                "x-internal-id":"jobs-{jobName}-trigger-delete",
                "x-filename-id":"jobs-jobname-trigger-delete"
            }
        },
        "/jobs/{jobName}/history":{
            "get":{
                "tags":[
                    "Job Executions"
                ],
                "summary":"Get execution history of a job",
                "description":"Returns a paginated list of execution history details of a job.",
                "operationId":"getHistory",
                "produces":[
                    "application/json"
                ],
                "parameters":[
                    {
                        "in":"query",
                        "name":"limit",
                        "type":"integer",
                        "description":"The numbers of items to return"
                    },
                    {
                        "in":"query",
                        "name":"offset",
                        "type":"string",
                        "description":"The number of items to skip before starting to collect the result set"
                    },
                    {
                        "in":"query",
                        "name":"orderBy",
                        "type":"string",
                        "description":"The sort field and the sort order in the format `field:order`. Available values of `field` are *startTime*, *endTime* and *status*. Available values of `order` are *desc* and *asc*."
                    },
                    {
                        "in":"path",
                        "name":"jobName",
                        "required":true,
                        "type":"string",
                        "description":"Name of the job"
                    }
                ],
                "responses":{
                    "200":{
                        "description":"OK",
                        "schema":{
                            "type":"object",
                            "properties":{
                                "count":{
                                    "type":"integer",
                                    "format":"int32"
                                },
                                "limit":{
                                    "type":"integer",
                                    "format":"int32"
                                },
                                "totalResult":{
                                    "type":"integer",
                                    "format":"int32"
                                },
                                "hasMore":{
                                    "type":"boolean"
                                },
                                "histories":{
                                    "$ref":"#/definitions/History"
                                }
                            }
                        }
                    },
                    "400":{
                        "description":"Invalid input"
                    }
                },
                "x-internal-id":"jobs-{jobName}-history-get",
                "x-filename-id":"jobs-jobname-history-get"
            }
        },
        "/jobs/{jobName}/history/last":{
            "get":{
                "tags":[
                    "Job Executions"
                ],
                "summary":"Get the last execution history of a job",
                "description":"Returns the details about the last execution history of a job.",
                "operationId":"lastHistory",
                "produces":[
                    "application/json"
                ],
                "parameters":[
                    {
                        "in":"path",
                        "name":"jobName",
                        "required":true,
                        "type":"string",
                        "description":"Name of the job"
                    }
                ],
                "responses":{
                    "200":{
                        "description":"OK",
                        "schema":{
                            "$ref":"#/definitions/History"
                        }
                    },
                    "400":{
                        "description":"Invalid input"
                    }
                },
                "x-internal-id":"jobs-{jobName}-history-last-get",
                "x-filename-id":"jobs-jobname-history-last-get"
            }
        },
        "/jobs/{jobName}/history/{historyID}":{
            "get":{
                "tags":[
                    "Job Executions"
                ],
                "summary":"Get the milestones of the specific execution history",
                "description":"Returns a paginated list of milestone details associated with a specific execution history.",
                "operationId":"milestone",
                "produces":[
                    "application/json"
                ],
                "parameters":[
                    {
                        "in":"path",
                        "name":"jobName",
                        "required":true,
                        "type":"string",
                        "description":"Name of the job"
                    },
                    {
                        "in":"path",
                        "name":"historyID",
                        "required":true,
                        "type":"integer",
                        "description":"ID of the execution history"
                    }
                ],
                "responses":{
                    "200":{
                        "description":"OK",
                        "schema":{
                            "type":"object",
                            "properties":{
                                "count":{
                                    "type":"integer",
                                    "format":"int32"
                                },
                                "limit":{
                                    "type":"integer",
                                    "format":"int32"
                                },
                                "totalResult":{
                                    "type":"integer",
                                    "format":"int32"
                                },
                                "hasMore":{
                                    "type":"boolean"
                                },
                                "milestones":{
                                    "type":"object",
                                    "$ref":"#/definitions/Milestones"
                                }
                            }
                        }
                    },
                    "400":{
                        "description":"Invalid input"
                    }
                },
                "x-internal-id":"jobs-{jobName}-history-{historyID}-get",
                "x-filename-id":"jobs-jobname-history-historyid-get"
            }
        },
        "/tasks":{
            "get":{
                "tags":[
                    "Tasks"
                ],
                "summary":"Search for tasks",
                "description":"Retrieves a paginated list of task details that matches the search criteria.",
                "operationId":"searchTasks",
                "produces":[
                    "application/json"
                ],
                "parameters":[
                    {
                        "in":"query",
                        "name":"q",
                        "type":"string",
                        "description":"Search query(Support wildcard character *)"
                    },
                    {
                        "in":"query",
                        "name":"limit",
                        "type":"integer",
                        "description":"The numbers of items to return"
                    },
                    {
                        "in":"query",
                        "name":"offset",
                        "type":"string",
                        "description":"The number of items to skip before starting to collect the result set"
                    }
                ],
                "responses":{
                    "200":{
                        "description":"OK",
                        "schema":{
                            "$ref":"#/definitions/TaskSearchResult"
                        }
                    },
                    "400":{
                        "description":"Invalid input"
                    }
                },
                "x-internal-id":"tasks-get",
                "x-filename-id":"tasks-get"
            }
        },
        "/tasks/{taskName}":{
            "get":{
                "tags":[
                    "Tasks"
                ],
                "summary":"Get the details of a task",
                "description":"Retrieves the details associated with a task such as a parameter.",
                "operationId":"getTask",
                "produces":[
                    "application/json"
                ],
                "parameters":[
                    {
                        "in":"path",
                        "name":"taskName",
                        "required":true,
                        "type":"string",
                        "description":"Name of the task"
                    }
                ],
                "responses":{
                    "200":{
                        "description":"OK",
                        "schema":{
                            "$ref":"#/definitions/Task"
                        }
                    },
                    "400":{
                        "description":"Invalid input"
                    }
                },
                "x-internal-id":"tasks-{taskName}-get",
                "x-filename-id":"tasks-taskname-get"
            }
        },
        "/history/summary":{
            "get":{
                "tags":[
                    "History"
                ],
                "summary":"Get the summary of all job executions within a time range",
                "description":"Returns a summary of all executions in a specified time period. ",
                "operationId":"summary",
                "produces":[
                    "application/json"
                ],
                "parameters":[
                    {
                        "in":"query",
                        "name":"startDate",
                        "type":"string",
                        "format":"date-time",
                        "description":"Start of the time range in the format - yyyy-MM-dd'T'HH:mm:ss'Z'"
                    },
                    {
                        "in":"query",
                        "name":"endDate",
                        "type":"string",
                        "format":"date-time",
                        "description":"End of the time range in the format - yyyy-MM-dd'T'HH:mm:ss'Z'"
                    }
                ],
                "responses":{
                    "200":{
                        "description":"OK",
                        "schema":{
                            "$ref":"#/definitions/Summary"
                        }
                    },
                    "400":{
                        "description":"Invalid input"
                    }
                },
                "x-internal-id":"history-summary-get",
                "x-filename-id":"history-summary-get"
            }
        },
        "/history/":{
            "get":{
                "tags":[
                    "History"
                ],
                "summary":"Get all job executions within a time range",
                "description":"Retrieves a paginated list of all execution history within a specified time range.",
                "operationId":"allHistory",
                "produces":[
                    "application/json"
                ],
                "parameters":[
                    {
                        "in":"query",
                        "name":"startDate",
                        "type":"string",
                        "format":"date-time",
                        "description":"Start of the time range in the format - yyyy-MM-dd'T'HH:mm:ss'Z'"
                    },
                    {
                        "in":"query",
                        "name":"endDate",
                        "type":"string",
                        "format":"date-time",
                        "description":"End of the time range in the format - yyyy-MM-dd'T'HH:mm:ss'Z'"
                    },
                    {
                        "in":"query",
                        "name":"limit",
                        "type":"integer",
                        "description":"The numbers of items to return."
                    },
                    {
                        "in":"query",
                        "name":"status",
                        "type":"integer",
                        "description":"Filter by the status of job execution."
                    },
                    {
                        "in":"query",
                        "name":"offset",
                        "type":"string",
                        "description":"The number of items to skip before starting to collect the result set."
                    },
                    {
                        "in":"query",
                        "name":"orderBy",
                        "type":"string",
                        "description":"The sort field and the sort order in the format `field:order`. Available values of `field` are *startTime*, *endTime* and *status*. Available values of `order` are *desc* and *asc*."
                    }
                ],
                "responses":{
                    "200":{
                        "description":"OK",
                        "schema":{
                            "type":"object",
                            "properties":{
                                "count":{
                                    "type":"integer",
                                    "format":"int32"
                                },
                                "limit":{
                                    "type":"integer",
                                    "format":"int32"
                                },
                                "totalResult":{
                                    "type":"integer",
                                    "format":"int32"
                                },
                                "hasMore":{
                                    "type":"boolean"
                                },
                                "histories":{
                                    "$ref":"#/definitions/History"
                                }
                            }
                        }
                    },
                    "400":{
                        "description":"Invalid input"
                    }
                },
                "x-internal-id":"history--get",
                "x-filename-id":"history-get"
            }
        }
    },
    "definitions":{
        "JobDetails":{
            "required":[
                "taskName",
                "jobName",
                "retryCount"
            ],
            "type":"object",
            "properties":{
                "jobName":{
                    "type":"string"
                },
                "taskName":{
                    "type":"string"
                },
                "jobScheduleType":{
                    "type":"string"
                },
                "cronScheduleType":{
                    "type":"string"
                },
                "retryCount":{
                    "type":"integer",
                    "format":"int32"
                },
                "concurrent":{
                    "type":"boolean"
                },
                "isEnabled":{
                    "type":"boolean"
                },
                "notification":{
                    "type":"object",
                    "properties":{
                        "receiverID":{
                            "type":"string"
                        },
                        "receiverType":{
                            "type":"string"
                        }
                    }
                },
                "status":{
                    "type":"string",
                    "description":"Order Status",
                    "enum":[
                        "STOPPED",
                        "RUNNING",
                        "INTERRUPTED"
                    ]
                },
                "parameters":{
                    "type":"array",
                    "items":{
                        "$ref":"#/definitions/JobParameter"
                    }
                }
            }
        },
        "JobParameter":{
            "required":[
                "value"
            ],
            "type":"object",
            "properties":{
                "value":{
                    "type":"string"
                },
                "helpText":{
                    "type":"string"
                },
                "dataType":{
                    "type":"string",
                    "enum":[
                        "String",
                        "Number",
                        "Boolean",
                        "ITResource"
                    ]
                },
                "required":{
                    "type":"boolean"
                }
            }
        },
        "Trigger":{
            "type":"object",
            "properties":{
                "triggerName":{
                    "type":"string"
                },
                "jobName":{
                    "type":"string"
                },
                "startTime":{
                    "type":"string",
                    "format":"date-time",
                    "description":"Format: yyyy-MM-dd'T'HH:mm:ss'Z'"
                },
                "endTime":{
                    "type":"string",
                    "format":"date-time",
                    "description":"Format: yyyy-MM-dd'T'HH:mm:ss'Z'"
                },
                "nextFireTime":{
                    "type":"string",
                    "format":"date-time",
                    "description":"Format: yyyy-MM-dd'T'HH:mm:ss'Z'"
                },
                "triggerType":{
                    "type":"string",
                    "enum":[
                        "Cron",
                        "Periodic",
                        "Single",
                        "None"
                    ]
                },
                "intervalType":{
                    "type":"string"
                },
                "intervalValues":{
                    "type":"array",
                    "items":{
                        "type":"string"
                    }
                }
            }
        },
        "History":{
            "type":"object",
            "properties":{
                "id":{
                    "type":"integer",
                    "format":"int32"
                },
                "jobName":{
                    "type":"string"
                },
                "jobStartTime":{
                    "type":"string",
                    "format":"date-time",
                    "description":"Format: yyyy-MM-dd'T'HH:mm:ss'Z'"
                },
                "jobEndTime":{
                    "type":"string",
                    "format":"date-time",
                    "description":"Format: yyyy-MM-dd'T'HH:mm:ss'Z'"
                },
                "status":{
                    "type":"string",
                    "enum":[
                        "STOPPED",
                        "RUNNING",
                        "INTERRUPTED",
                        "FAILED"
                    ]
                },
                "errorMessage":{
                    "type":"string"
                },
                "exceptionObject":{
                    "type":"string"
                },
                "customStatus":{
                    "type":"string"
                },
                "params":{
                    "type":"array",
                    "items":{
                        "type":"object",
                        "properties":{
                            "parameterName":{
                                "type":"string"
                            }
                        }
                    }
                }
            }
        },
        "Task":{
            "type":"object",
            "properties":{
                "name":{
                    "type":"string",
                    "example":"doggie"
                },
                "className":{
                    "type":"string"
                },
                "description":{
                    "type":"string"
                },
                "parameters":{
                    "type":"array",
                    "items":{
                        "$ref":"#/definitions/JobParameter"
                    }
                }
            }
        },
        "Summary":{
            "type":"object",
            "properties":{
                "failedJobs":{
                    "type":"integer",
                    "format":"int32"
                },
                "runningJobs":{
                    "type":"integer",
                    "format":"int32"
                },
                "interruptedJobs":{
                    "type":"integer",
                    "format":"int32"
                },
                "stoppedJobs":{
                    "type":"integer",
                    "format":"int32"
                }
            }
        },
        "JobSearchResult":{
            "type":"object",
            "properties":{
                "count":{
                    "type":"integer",
                    "format":"int32"
                },
                "limit":{
                    "type":"integer",
                    "format":"int32"
                },
                "totalResult":{
                    "type":"integer",
                    "format":"int32"
                },
                "hasMore":{
                    "type":"boolean"
                },
                "jobs":{
                    "type":"array",
                    "items":{
                        "type":"object",
                        "properties":{
                            "name":{
                                "type":"string"
                            },
                            "taskName":{
                                "type":"string"
                            },
                            "enabled":{
                                "type":"boolean"
                            },
                            "status":{
                                "type":"string",
                                "enum":[
                                    "STOPPED",
                                    "RUNNING",
                                    "INTERRUPTED",
                                    "FAILED"
                                ]
                            },
                            "haveHistory":{
                                "type":"boolean"
                            },
                            "nextScheduleTime":{
                                "type":"string",
                                "format":"date-time",
                                "description":"Format: yyyy-MM-dd'T'HH:mm:ss'Z'"
                            }
                        }
                    }
                }
            }
        },
        "TaskSearchResult":{
            "type":"object",
            "properties":{
                "count":{
                    "type":"integer",
                    "format":"int32"
                },
                "limit":{
                    "type":"integer",
                    "format":"int32"
                },
                "totalResult":{
                    "type":"integer",
                    "format":"int32"
                },
                "hasMore":{
                    "type":"boolean"
                },
                "tasks":{
                    "type":"array",
                    "items":{
                        "type":"object",
                        "properties":{
                            "name":{
                                "type":"string"
                            }
                        }
                    }
                }
            }
        },
        "Success":{
            "type":"object",
            "properties":{
                "jobName":{
                    "type":"string"
                },
                "status":{
                    "type":"string",
                    "description":"Status of the executed action"
                }
            }
        },
        "Milestones":{
            "type":"object",
            "properties":{
                "id":{
                    "type":"integer",
                    "format":"int32"
                },
                "jobHistoryId":{
                    "type":"integer",
                    "format":"int32"
                },
                "errorLevelString":{
                    "type":"string"
                },
                "exceptionMessage":{
                    "type":"string"
                },
                "createBy":{
                    "type":"string"
                },
                "createTime":{
                    "type":"string",
                    "format":"date-time",
                    "description":"Format: yyyy-MM-dd'T'HH:mm:ss'Z'"
                },
                "parameters":{
                    "type":"array",
                    "items":{
                        "type":"object",
                        "properties":{
                            "key":{
                                "type":"string"
                            }
                        }
                    }
                }
            }
        }
    }
}