{
  "openapi": "3.0.2",
  "info": {
    "title": "SAP Advanced Financial Closing Scheduling Service Provider Interface",
    "description": "The Scheduling Service Provider Interface of SAP Advanced Financial Closing allows the integration of third-party scheduling systems with SAP Advanced Financial Closing. It includes the retrieval of job definitions, as well as the scheduling and synchronization of jobs. <a href=\"https://api.sap.com/api/SSPIV1/overview\" target=\"_blank\">See OpenAPI Specification on SAP Business Accelerator Hub</a>.",
    "version": "1.0.0"
  },
  "x-sap-shortText": "Defines how an application can integrate with job scheduling provider service",
  "servers": [
    {
      "url": "/api/job-scheduling/v1"
    }
  ],
  "tags": [
    {
      "name": "Capabilities"
    },
    {
      "name": "Job Definition"
    },
    {
      "name": "Job"
    },
    {
      "name": "Job Result"
    },
    {
      "name": "Notification"
    }
  ],
  "paths": {
    "/Capabilities": {
      "get": {
        "summary": "Retrieves capabilities.",
        "tags": ["Capabilities"],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Retrieved capabilities",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/sapafcsdk.scheduling.ProviderService.Capabilities"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "406": {
            "$ref": "#/components/responses/406"
          },
          "409": {
            "$ref": "#/components/responses/409"
          },
          "411": {
            "$ref": "#/components/responses/411"
          },
          "413": {
            "$ref": "#/components/responses/413"
          },
          "415": {
            "$ref": "#/components/responses/415"
          },
          "429": {
            "$ref": "#/components/responses/429"
          },
          "500": {
            "$ref": "#/components/responses/500"
          },
          "501": {
            "$ref": "#/components/responses/501"
          },
          "503": {
            "$ref": "#/components/responses/503"
          }
        },
        "description": "The operation allows you to retrieve capabilities."
      }
    },
    "/Job": {
      "get": {
        "summary": "Retrieves a list of job.",
        "tags": ["Job"],
        "parameters": [
          {
            "name": "skip",
            "in": "query",
            "required": false,
            "description": "The number of query results to skip. A value less than 0 SHALL be interpreted as 0. Example: ?skip=10",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "top",
            "in": "query",
            "required": false,
            "description": "Non-negative integer. Specifies the desired maximum number of query results to return per page. Example: ?top=10",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "referenceID",
            "in": "query",
            "required": false,
            "description": "Allows filtering of query results by referenceID. Example: ?referenceID=01234567-89ab-cdef-0123-456789abcdef",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "name",
            "in": "query",
            "required": false,
            "description": "Allows filtering of query results by name. Example: ?name=JOB_1 (optional)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Retrieved job",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "title": "Collection of Job",
                  "items": {
                    "$ref": "#/components/schemas/sapafcsdk.scheduling.ProviderService.Job"
                  }
                }
              }
            },
            "headers": {
              "x-total-count": {
                "description": "Total number of records.",
                "schema": {
                  "type": "number"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "406": {
            "$ref": "#/components/responses/406"
          },
          "409": {
            "$ref": "#/components/responses/409"
          },
          "411": {
            "$ref": "#/components/responses/411"
          },
          "413": {
            "$ref": "#/components/responses/413"
          },
          "415": {
            "$ref": "#/components/responses/415"
          },
          "429": {
            "$ref": "#/components/responses/429"
          },
          "500": {
            "$ref": "#/components/responses/500"
          },
          "501": {
            "$ref": "#/components/responses/501"
          },
          "503": {
            "$ref": "#/components/responses/503"
          }
        },
        "description": "The operation allows you to retrieve a list of job based on the provided parameters."
      },
      "post": {
        "summary": "Creates a single job.",
        "tags": ["Job"],
        "requestBody": {
          "description": "New job",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/sapafcsdk.scheduling.ProviderService.Job-create"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created job",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/sapafcsdk.scheduling.ProviderService.Job"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "406": {
            "$ref": "#/components/responses/406"
          },
          "409": {
            "$ref": "#/components/responses/409"
          },
          "411": {
            "$ref": "#/components/responses/411"
          },
          "413": {
            "$ref": "#/components/responses/413"
          },
          "415": {
            "$ref": "#/components/responses/415"
          },
          "429": {
            "$ref": "#/components/responses/429"
          },
          "500": {
            "$ref": "#/components/responses/500"
          },
          "501": {
            "$ref": "#/components/responses/501"
          },
          "503": {
            "$ref": "#/components/responses/503"
          }
        },
        "description": "The operation allows you to create a single job."
      }
    },
    "/Job/{ID}": {
      "parameters": [
        {
          "description": "key: ID",
          "in": "path",
          "name": "ID",
          "required": true,
          "schema": {
            "type": "string",
            "maxLength": 255
          }
        }
      ],
      "get": {
        "summary": "Retrieves a single job.",
        "tags": ["Job"],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Retrieved job",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/sapafcsdk.scheduling.ProviderService.Job"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "406": {
            "$ref": "#/components/responses/406"
          },
          "409": {
            "$ref": "#/components/responses/409"
          },
          "411": {
            "$ref": "#/components/responses/411"
          },
          "413": {
            "$ref": "#/components/responses/413"
          },
          "415": {
            "$ref": "#/components/responses/415"
          },
          "429": {
            "$ref": "#/components/responses/429"
          },
          "500": {
            "$ref": "#/components/responses/500"
          },
          "501": {
            "$ref": "#/components/responses/501"
          },
          "503": {
            "$ref": "#/components/responses/503"
          }
        },
        "description": "The operation allows you to retrieve a single job."
      }
    },
    "/Job/{ID}/parameters": {
      "parameters": [
        {
          "description": "key: ID",
          "in": "path",
          "name": "ID",
          "required": true,
          "schema": {
            "type": "string",
            "maxLength": 255
          }
        }
      ],
      "get": {
        "summary": "Retrieves a list of parameters of a job.",
        "tags": ["Job"],
        "parameters": [
          {
            "name": "skip",
            "in": "query",
            "required": false,
            "description": "The number of query results to skip. A value less than 0 SHALL be interpreted as 0. Example: ?skip=10",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "top",
            "in": "query",
            "required": false,
            "description": "Non-negative integer. Specifies the desired maximum number of query results to return per page. Example: ?top=10",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Retrieved parameters",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "title": "Collection of JobParameter",
                  "items": {
                    "$ref": "#/components/schemas/sapafcsdk.scheduling.ProviderService.JobParameter"
                  }
                }
              }
            },
            "headers": {
              "x-total-count": {
                "description": "Total number of records.",
                "schema": {
                  "type": "number"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "406": {
            "$ref": "#/components/responses/406"
          },
          "409": {
            "$ref": "#/components/responses/409"
          },
          "411": {
            "$ref": "#/components/responses/411"
          },
          "413": {
            "$ref": "#/components/responses/413"
          },
          "415": {
            "$ref": "#/components/responses/415"
          },
          "429": {
            "$ref": "#/components/responses/429"
          },
          "500": {
            "$ref": "#/components/responses/500"
          },
          "501": {
            "$ref": "#/components/responses/501"
          },
          "503": {
            "$ref": "#/components/responses/503"
          }
        },
        "description": "The operation allows you to retrieve a list of parameters of a job based on the provided parameters."
      }
    },
    "/Job/{ID}/results": {
      "parameters": [
        {
          "description": "key: ID",
          "in": "path",
          "name": "ID",
          "required": true,
          "schema": {
            "type": "string",
            "maxLength": 255
          }
        }
      ],
      "get": {
        "summary": "Retrieves a list of results of a job.",
        "tags": ["Job"],
        "parameters": [
          {
            "name": "skip",
            "in": "query",
            "required": false,
            "description": "The number of query results to skip. A value less than 0 SHALL be interpreted as 0. Example: ?skip=10",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "top",
            "in": "query",
            "required": false,
            "description": "Non-negative integer. Specifies the desired maximum number of query results to return per page. Example: ?top=10",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Retrieved results",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "title": "Collection of JobResult",
                  "items": {
                    "$ref": "#/components/schemas/sapafcsdk.scheduling.ProviderService.JobResult"
                  }
                }
              }
            },
            "headers": {
              "x-total-count": {
                "description": "Total number of records.",
                "schema": {
                  "type": "number"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "406": {
            "$ref": "#/components/responses/406"
          },
          "409": {
            "$ref": "#/components/responses/409"
          },
          "411": {
            "$ref": "#/components/responses/411"
          },
          "413": {
            "$ref": "#/components/responses/413"
          },
          "415": {
            "$ref": "#/components/responses/415"
          },
          "429": {
            "$ref": "#/components/responses/429"
          },
          "500": {
            "$ref": "#/components/responses/500"
          },
          "501": {
            "$ref": "#/components/responses/501"
          },
          "503": {
            "$ref": "#/components/responses/503"
          }
        },
        "description": "The operation allows you to retrieve a list of results of a job based on the provided parameters."
      }
    },
    "/JobDefinition": {
      "get": {
        "summary": "Retrieves a list of job definition.",
        "tags": ["Job Definition"],
        "parameters": [
          {
            "name": "skip",
            "in": "query",
            "required": false,
            "description": "The number of query results to skip. A value less than 0 SHALL be interpreted as 0. Example: ?skip=10",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "top",
            "in": "query",
            "required": false,
            "description": "Non-negative integer. Specifies the desired maximum number of query results to return per page. Example: ?top=10",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "in": "query",
            "required": false,
            "description": "Allows case-sensitive filtering of query results by search on name. Wildcard support at start and end via &ast;. Example: ?name=JOB&ast; (optional)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Allows case-insensitive filtering of query results by search on name, description and long description. Example: ?search=Job (optional)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Retrieved job definition",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "title": "Collection of JobDefinition",
                  "items": {
                    "$ref": "#/components/schemas/sapafcsdk.scheduling.ProviderService.JobDefinition"
                  }
                }
              }
            },
            "headers": {
              "x-total-count": {
                "description": "Total number of records.",
                "schema": {
                  "type": "number"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "406": {
            "$ref": "#/components/responses/406"
          },
          "409": {
            "$ref": "#/components/responses/409"
          },
          "411": {
            "$ref": "#/components/responses/411"
          },
          "413": {
            "$ref": "#/components/responses/413"
          },
          "415": {
            "$ref": "#/components/responses/415"
          },
          "429": {
            "$ref": "#/components/responses/429"
          },
          "500": {
            "$ref": "#/components/responses/500"
          },
          "501": {
            "$ref": "#/components/responses/501"
          },
          "503": {
            "$ref": "#/components/responses/503"
          }
        },
        "description": "The operation allows you to retrieve a list of job definition based on the provided parameters."
      }
    },
    "/JobDefinition/{name}": {
      "parameters": [
        {
          "description": "key: name",
          "in": "path",
          "name": "name",
          "required": true,
          "schema": {
            "type": "string",
            "maxLength": 255
          }
        }
      ],
      "get": {
        "summary": "Retrieves a single job definition.",
        "tags": ["Job Definition"],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Retrieved job definition",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/sapafcsdk.scheduling.ProviderService.JobDefinition"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "406": {
            "$ref": "#/components/responses/406"
          },
          "409": {
            "$ref": "#/components/responses/409"
          },
          "411": {
            "$ref": "#/components/responses/411"
          },
          "413": {
            "$ref": "#/components/responses/413"
          },
          "415": {
            "$ref": "#/components/responses/415"
          },
          "429": {
            "$ref": "#/components/responses/429"
          },
          "500": {
            "$ref": "#/components/responses/500"
          },
          "501": {
            "$ref": "#/components/responses/501"
          },
          "503": {
            "$ref": "#/components/responses/503"
          }
        },
        "description": "The operation allows you to retrieve a single job definition."
      }
    },
    "/JobDefinition/{name}/parameters": {
      "parameters": [
        {
          "description": "key: name",
          "in": "path",
          "name": "name",
          "required": true,
          "schema": {
            "type": "string",
            "maxLength": 255
          }
        }
      ],
      "get": {
        "summary": "Retrieves a list of parameters of a job definition.",
        "tags": ["Job Definition"],
        "parameters": [
          {
            "name": "skip",
            "in": "query",
            "required": false,
            "description": "The number of query results to skip. A value less than 0 SHALL be interpreted as 0. Example: ?skip=10",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "top",
            "in": "query",
            "required": false,
            "description": "Non-negative integer. Specifies the desired maximum number of query results to return per page. Example: ?top=10",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Retrieved parameters",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "title": "Collection of JobParameterDefinition",
                  "items": {
                    "$ref": "#/components/schemas/sapafcsdk.scheduling.ProviderService.JobParameterDefinition"
                  }
                }
              }
            },
            "headers": {
              "x-total-count": {
                "description": "Total number of records.",
                "schema": {
                  "type": "number"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "406": {
            "$ref": "#/components/responses/406"
          },
          "409": {
            "$ref": "#/components/responses/409"
          },
          "411": {
            "$ref": "#/components/responses/411"
          },
          "413": {
            "$ref": "#/components/responses/413"
          },
          "415": {
            "$ref": "#/components/responses/415"
          },
          "429": {
            "$ref": "#/components/responses/429"
          },
          "500": {
            "$ref": "#/components/responses/500"
          },
          "501": {
            "$ref": "#/components/responses/501"
          },
          "503": {
            "$ref": "#/components/responses/503"
          }
        },
        "description": "The operation allows you to retrieve a list of parameters of a job definition based on the provided parameters."
      }
    },
    "/JobDefinition/{name}/texts": {
      "parameters": [
        {
          "description": "key: name",
          "in": "path",
          "name": "name",
          "required": true,
          "schema": {
            "type": "string",
            "maxLength": 255
          }
        }
      ],
      "get": {
        "summary": "Retrieves a list of texts of a job definition.",
        "tags": ["Job Definition"],
        "parameters": [
          {
            "name": "skip",
            "in": "query",
            "required": false,
            "description": "The number of query results to skip. A value less than 0 SHALL be interpreted as 0. Example: ?skip=10",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "top",
            "in": "query",
            "required": false,
            "description": "Non-negative integer. Specifies the desired maximum number of query results to return per page. Example: ?top=10",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Retrieved texts",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "title": "Collection of JobDefinitionText",
                  "items": {
                    "$ref": "#/components/schemas/sapafcsdk.scheduling.ProviderService.JobDefinitionText"
                  }
                }
              }
            },
            "headers": {
              "x-total-count": {
                "description": "Total number of records.",
                "schema": {
                  "type": "number"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "406": {
            "$ref": "#/components/responses/406"
          },
          "409": {
            "$ref": "#/components/responses/409"
          },
          "411": {
            "$ref": "#/components/responses/411"
          },
          "413": {
            "$ref": "#/components/responses/413"
          },
          "415": {
            "$ref": "#/components/responses/415"
          },
          "429": {
            "$ref": "#/components/responses/429"
          },
          "500": {
            "$ref": "#/components/responses/500"
          },
          "501": {
            "$ref": "#/components/responses/501"
          },
          "503": {
            "$ref": "#/components/responses/503"
          }
        },
        "description": "The operation allows you to retrieve a list of texts of a job definition based on the provided parameters."
      }
    },
    "/JobResult/{ID}": {
      "parameters": [
        {
          "description": "key: ID",
          "in": "path",
          "name": "ID",
          "required": true,
          "schema": {
            "type": "string",
            "maxLength": 255
          }
        }
      ],
      "get": {
        "summary": "Retrieves a single job result.",
        "tags": ["Job Result"],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Retrieved job result",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/sapafcsdk.scheduling.ProviderService.JobResult"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "406": {
            "$ref": "#/components/responses/406"
          },
          "409": {
            "$ref": "#/components/responses/409"
          },
          "411": {
            "$ref": "#/components/responses/411"
          },
          "413": {
            "$ref": "#/components/responses/413"
          },
          "415": {
            "$ref": "#/components/responses/415"
          },
          "429": {
            "$ref": "#/components/responses/429"
          },
          "500": {
            "$ref": "#/components/responses/500"
          },
          "501": {
            "$ref": "#/components/responses/501"
          },
          "503": {
            "$ref": "#/components/responses/503"
          }
        },
        "description": "The operation allows you to retrieve a single job result."
      }
    },
    "/JobResult/{ID}/messages": {
      "parameters": [
        {
          "description": "key: ID",
          "in": "path",
          "name": "ID",
          "required": true,
          "schema": {
            "type": "string",
            "maxLength": 255
          }
        }
      ],
      "get": {
        "summary": "Retrieves a list of messages of a job result.",
        "tags": ["Job Result"],
        "parameters": [
          {
            "name": "skip",
            "in": "query",
            "required": false,
            "description": "The number of query results to skip. A value less than 0 SHALL be interpreted as 0. Example: ?skip=10",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "top",
            "in": "query",
            "required": false,
            "description": "Non-negative integer. Specifies the desired maximum number of query results to return per page. Example: ?top=10",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Retrieved messages",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "title": "Collection of JobResultMessage",
                  "items": {
                    "$ref": "#/components/schemas/sapafcsdk.scheduling.ProviderService.JobResultMessage"
                  }
                }
              }
            },
            "headers": {
              "x-total-count": {
                "description": "Total number of records.",
                "schema": {
                  "type": "number"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "406": {
            "$ref": "#/components/responses/406"
          },
          "409": {
            "$ref": "#/components/responses/409"
          },
          "411": {
            "$ref": "#/components/responses/411"
          },
          "413": {
            "$ref": "#/components/responses/413"
          },
          "415": {
            "$ref": "#/components/responses/415"
          },
          "429": {
            "$ref": "#/components/responses/429"
          },
          "500": {
            "$ref": "#/components/responses/500"
          },
          "501": {
            "$ref": "#/components/responses/501"
          },
          "503": {
            "$ref": "#/components/responses/503"
          }
        },
        "description": "The operation allows you to retrieve a list of messages of a job result based on the provided parameters."
      }
    },
    "/notify": {
      "post": {
        "summary": "Invokes action notify",
        "tags": ["Notification"],
        "responses": {
          "204": {
            "description": "Success"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "406": {
            "$ref": "#/components/responses/406"
          },
          "409": {
            "$ref": "#/components/responses/409"
          },
          "411": {
            "$ref": "#/components/responses/411"
          },
          "413": {
            "$ref": "#/components/responses/413"
          },
          "415": {
            "$ref": "#/components/responses/415"
          },
          "429": {
            "$ref": "#/components/responses/429"
          },
          "500": {
            "$ref": "#/components/responses/500"
          },
          "501": {
            "$ref": "#/components/responses/501"
          },
          "503": {
            "$ref": "#/components/responses/503"
          }
        },
        "requestBody": {
          "description": "Action parameters",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "notifications": {
                    "type": "array",
                    "items": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/sapafcsdk.scheduling.ProviderService.Notification"
                        }
                      ],
                      "nullable": true
                    }
                  }
                }
              },
              "examples": {
                "obsolete": {
                  "summary": "Notification for task list status change to obsolete",
                  "value": {
                    "notifications": [
                      {
                        "name": "taskListStatusChanged",
                        "ID": "3a89dfec-59f9-4a91-90fe-3c7ca7407103",
                        "code": "TASKLIST-1",
                        "value": "obsolete"
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "description": "The operation allows you to invoke action notify."
      }
    },
    "/JobResult/{ID}/data": {
      "parameters": [
        {
          "description": "key: ID",
          "in": "path",
          "name": "ID",
          "required": true,
          "schema": {
            "type": "string",
            "maxLength": 500
          }
        }
      ],
      "get": {
        "summary": "Retrieves data of a job result.",
        "tags": ["Job Result"],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Retrieved data",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "406": {
            "$ref": "#/components/responses/406"
          },
          "409": {
            "$ref": "#/components/responses/409"
          },
          "411": {
            "$ref": "#/components/responses/411"
          },
          "413": {
            "$ref": "#/components/responses/413"
          },
          "415": {
            "$ref": "#/components/responses/415"
          },
          "429": {
            "$ref": "#/components/responses/429"
          },
          "500": {
            "$ref": "#/components/responses/500"
          },
          "501": {
            "$ref": "#/components/responses/501"
          },
          "503": {
            "$ref": "#/components/responses/503"
          }
        },
        "description": "The operation allows you to retrieve data of a job result."
      }
    },
    "/Job/{ID}/cancel": {
      "post": {
        "summary": "Invokes action cancel",
        "tags": ["Job"],
        "responses": {
          "204": {
            "description": "Success"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "406": {
            "$ref": "#/components/responses/406"
          },
          "409": {
            "$ref": "#/components/responses/409"
          },
          "411": {
            "$ref": "#/components/responses/411"
          },
          "413": {
            "$ref": "#/components/responses/413"
          },
          "415": {
            "$ref": "#/components/responses/415"
          },
          "429": {
            "$ref": "#/components/responses/429"
          },
          "500": {
            "$ref": "#/components/responses/500"
          },
          "501": {
            "$ref": "#/components/responses/501"
          },
          "503": {
            "$ref": "#/components/responses/503"
          }
        },
        "parameters": [
          {
            "description": "key: ID",
            "in": "path",
            "name": "ID",
            "required": true,
            "schema": {
              "type": "string",
              "maxLength": 255
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "description": "The operation allows you to invoke action cancel based on the provided parameters."
      }
    }
  },
  "components": {
    "schemas": {
      "sapafcsdk.scheduling.ProviderService.Capabilities": {
        "title": "Capabilities",
        "type": "object",
        "properties": {
          "supportsNotification": {
            "type": "boolean"
          },
          "applicationUrl": {
            "type": "string"
          }
        }
      },
      "sapafcsdk.scheduling.ProviderService.Job": {
        "title": "Job",
        "type": "object",
        "properties": {
          "ID": {
            "type": "string",
            "maxLength": 255
          },
          "name": {
            "type": "string",
            "maxLength": 255
          },
          "referenceID": {
            "type": "string",
            "format": "uuid",
            "example": "01234567-89ab-cdef-0123-456789abcdef"
          },
          "version": {
            "type": "string",
            "maxLength": 255
          },
          "status": {
            "type": "string",
            "maxLength": 255,
            "enum": [
              "requested",
              "running",
              "completed",
              "completedWithWarning",
              "completedWithError",
              "failed",
              "cancelRequested",
              "canceled"
            ],
            "description": "Final statuses are 'completed', 'completedWithWarning', 'completedWithError', 'failed', and 'canceled', no further status transitions are then allowed"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "example": "2017-04-13T15:51:04.0000000Z"
          },
          "createdBy": {
            "type": "string",
            "maxLength": 255
          },
          "modifiedAt": {
            "type": "string",
            "format": "date-time",
            "example": "2017-04-13T15:51:04.0000000Z"
          },
          "modifiedBy": {
            "type": "string",
            "maxLength": 255
          },
          "link": {
            "type": "string",
            "maxLength": 5000
          },
          "startDateTime": {
            "type": "string",
            "format": "date-time",
            "example": "2017-04-13T15:51:04Z"
          },
          "testRun": {
            "type": "boolean"
          },
          "errorOnlyRun": {
            "type": "boolean"
          }
        },
        "required": ["ID", "name", "referenceID", "version", "status"]
      },
      "sapafcsdk.scheduling.ProviderService.Job-create": {
        "title": "Job (for create)",
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 255
          },
          "referenceID": {
            "type": "string",
            "format": "uuid",
            "example": "01234567-89ab-cdef-0123-456789abcdef"
          },
          "startDateTime": {
            "type": "string",
            "format": "date-time",
            "example": "2017-04-13T15:51:04Z"
          },
          "errorOnlyRun": {
            "type": "boolean"
          },
          "parameters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/sapafcsdk.scheduling.ProviderService.JobParameter-create"
            }
          }
        },
        "required": ["name", "referenceID"]
      },
      "sapafcsdk.scheduling.ProviderService.JobDefinition": {
        "title": "JobDefinition",
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 255
          },
          "description": {
            "type": "string",
            "maxLength": 5000
          },
          "longDescription": {
            "type": "string",
            "maxLength": 5000
          },
          "version": {
            "type": "string",
            "maxLength": 255
          },
          "vendorName": {
            "type": "string"
          },
          "vendorSystem": {
            "type": "string"
          },
          "supportsStartDateTime": {
            "type": "boolean"
          },
          "supportsTestRun": {
            "type": "boolean"
          },
          "supportsErrorOnlyRun": {
            "type": "boolean"
          }
        },
        "required": ["name", "version"]
      },
      "sapafcsdk.scheduling.ProviderService.JobDefinitionText": {
        "title": "JobDefinitionText",
        "type": "object",
        "properties": {
          "locale": {
            "type": "string",
            "maxLength": 14
          },
          "name": {
            "type": "string",
            "maxLength": 255
          },
          "description": {
            "type": "string",
            "maxLength": 5000
          },
          "longDescription": {
            "type": "string",
            "maxLength": 5000
          }
        }
      },
      "sapafcsdk.scheduling.ProviderService.JobParameter": {
        "title": "JobParameter",
        "type": "object",
        "properties": {
          "ID": {
            "type": "string",
            "maxLength": 255
          },
          "jobID": {
            "type": "string",
            "maxLength": 255
          },
          "name": {
            "type": "string",
            "maxLength": 255
          },
          "value": {
            "oneOf": [
              {
                "type": "string",
                "maxLength": 5000
              },
              {
                "type": "boolean"
              },
              {
                "type": "number"
              }
            ]
          }
        },
        "required": ["ID", "name", "value"]
      },
      "sapafcsdk.scheduling.ProviderService.JobParameter-create": {
        "title": "JobParameter (for create)",
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 255
          },
          "value": {
            "oneOf": [
              {
                "type": "string",
                "maxLength": 5000
              },
              {
                "type": "boolean"
              },
              {
                "type": "number"
              }
            ]
          }
        },
        "required": ["name", "value"]
      },
      "sapafcsdk.scheduling.ProviderService.JobParameterDefinition": {
        "title": "JobParameterDefinition",
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 255
          },
          "jobName": {
            "type": "string",
            "maxLength": 255
          },
          "description": {
            "type": "string",
            "maxLength": 5000
          },
          "type": {
            "type": "string",
            "maxLength": 255,
            "enum": ["readOnlyValue", "writableValue", "mapping"]
          },
          "dataType": {
            "type": "string",
            "maxLength": 255,
            "enum": ["string", "number", "date", "datetime", "boolean"]
          },
          "mappingType": {
            "type": "string",
            "maxLength": 255,
            "enum": [
              "accountingPrinciple",
              "companyCode",
              "plant",
              "controllingArea",
              "fiscalPeriod",
              "fiscalYearPeriod",
              "fiscalYear",
              "keyDate",
              "chartOfAccounts",
              "fiscalYearVariant",
              "ledger",
              "testRun",
              "postingPeriodVariant",
              "processingUser",
              "interestedUser",
              "userResponsible",
              "processingUserEmail",
              "interestedUserEmail",
              "userResponsibleEmail",
              "executionID",
              "customField1",
              "customField2",
              "customField3",
              "taskListID",
              "taskListUUID",
              "taskListDescription",
              "taskID",
              "taskUUID",
              "taskDescription"
            ]
          },
          "value": {
            "oneOf": [
              {
                "type": "string",
                "maxLength": 5000
              },
              {
                "type": "boolean"
              },
              {
                "type": "number"
              }
            ]
          },
          "enumValues": {
            "oneOf": [
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "maxLength": 5000
                }
              },
              {
                "type": "array",
                "items": {
                  "type": "boolean"
                }
              },
              {
                "type": "array",
                "items": {
                  "type": "number"
                }
              }
            ]
          },
          "required": {
            "type": "boolean",
            "default": false
          }
        },
        "required": ["name", "dataType", "type"]
      },
      "sapafcsdk.scheduling.ProviderService.JobResult": {
        "title": "JobResult",
        "type": "object",
        "properties": {
          "ID": {
            "type": "string",
            "maxLength": 255
          },
          "jobID": {
            "type": "string",
            "maxLength": 255
          },
          "type": {
            "type": "string",
            "maxLength": 255,
            "enum": ["link", "data", "message"]
          },
          "name": {
            "type": "string",
            "maxLength": 255
          },
          "link": {
            "type": "string",
            "maxLength": 5000
          },
          "mimeType": {
            "type": "string",
            "maxLength": 255
          },
          "filename": {
            "type": "string",
            "maxLength": 5000
          }
        },
        "required": ["ID", "type", "name"]
      },
      "sapafcsdk.scheduling.ProviderService.JobResultMessage": {
        "title": "JobResultMessage",
        "type": "object",
        "properties": {
          "ID": {
            "type": "string",
            "maxLength": 255
          },
          "resultID": {
            "type": "string",
            "maxLength": 255
          },
          "severity": {
            "type": "string",
            "maxLength": 255,
            "enum": ["success", "info", "warning", "error"]
          },
          "code": {
            "type": "string",
            "maxLength": 255
          },
          "values": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 5000,
              "nullable": true
            }
          },
          "text": {
            "type": "string",
            "maxLength": 5000
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "example": "2017-04-13T15:51:04.0000000Z"
          }
        },
        "required": ["ID", "severity", "code", "text", "createdAt"]
      },
      "sapafcsdk.scheduling.ProviderService.Notification": {
        "title": "Notification",
        "type": "object",
        "properties": {
          "name": {
            "$ref": "#/components/schemas/sapafcsdk.scheduling.ProviderService.NotificationName",
            "enum": ["taskListStatusChanged"]
          },
          "ID": {
            "type": "string",
            "maxLength": 255
          },
          "code": {
            "type": "string",
            "maxLength": 255
          },
          "value": {
            "type": "string",
            "maxLength": 5000,
            "x-extensible-enum": ["released", "active", "paused", "completed", "obsolete"]
          }
        }
      },
      "sapafcsdk.scheduling.ProviderService.NotificationName": {
        "type": "string",
        "maxLength": 255,
        "enum": ["taskListStatusChanged"],
        "title": "NotificationName"
      },
      "error": {
        "type": "object",
        "required": ["code", "message"],
        "properties": {
          "code": {
            "type": "string",
            "maxLength": 255,
            "description": "A machine-readable error code.",
            "x-extensible-enum": [
              "unexpectedError",
              "accessOnlyViaParent",
              "accessOnlyByKey",
              "cancelJobSuccess",
              "jobNotFound",
              "statusValueMissing",
              "invalidJobStatus",
              "statusTransitionNotAllowed",
              "invalidOption",
              "jobDefinitionNotFound",
              "jobResultsReadOnly",
              "startDateTimeNotSupported",
              "errorOnlyRunNotSupported",
              "referenceIDMissing",
              "referenceIDNoUUID",
              "jobParameterNameMissing",
              "jobParameterNotKnown",
              "jobParameterRequired",
              "jobParameterReadOnly",
              "jobParameterValueRequired",
              "jobParameterValueInvalidType",
              "jobParameterValueInvalidEnum",
              "jobCannotBeCanceled",
              "jobResultNotFound",
              "resultNameMissing",
              "resultTypeMissing",
              "invalidResultType",
              "linkMissing",
              "mimeTypeMissing",
              "filenameMissing",
              "dataMissing",
              "messagesMissing",
              "codeMissing",
              "textMissing",
              "localeMissing",
              "invalidLocale",
              "severityMissing",
              "invalidMessageSeverity",
              "linkNotAllowed",
              "mimeTypeNotAllowed",
              "filenameNotAllowed",
              "dataNotAllowed",
              "messagesNotAllowed",
              "jobCompleted",
              "jobCompletedWithWarning",
              "jobCompletedWithError",
              "jobFailed",
              "jobAdvancedMock",
              "jobBasicMock",
              "jobTestRun"
            ]
          },
          "message": {
            "type": "string",
            "description": "A human-readable error message.",
            "maxLength": 5000
          }
        }
      }
    },
    "parameters": {},
    "responses": {
      "400": {
        "description": "Incorrect request. Format or structure invalid",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            }
          }
        }
      },
      "401": {
        "description": "Unauthorized. Action requires user authentication",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            }
          }
        }
      },
      "403": {
        "description": "Access forbidden. The caller does not have the required permissions to access the resource",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            }
          }
        }
      },
      "404": {
        "description": "Resource not found. The caller either provided a wrong URL or the requested resource does not exist (any longer).",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            }
          }
        }
      },
      "406": {
        "description": "Not acceptable. The caller provided content negotiation headers such as Accept, Accept-Charset, Accept-Encoding, and Accept- Language, for which the server could not produce a matching result.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            }
          }
        }
      },
      "409": {
        "description": "Request conflict. State of the resource does not permit the request.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            }
          }
        }
      },
      "411": {
        "description": "Length required. Content-Length header required.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            }
          }
        }
      },
      "413": {
        "description": "Payload Too Large. The request entity is larger than limits defined by the server.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            }
          }
        }
      },
      "415": {
        "description": "Unsupported Media Type. The server refuses to accept the request because the payload has an unsupported format.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            }
          }
        }
      },
      "429": {
        "description": "Too many requests. The caller has sent too many requests in a given amount of time",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            }
          }
        }
      },
      "500": {
        "description": "Internal server error. The requested operation led to an error during execution",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            }
          }
        }
      },
      "501": {
        "description": "Not implemented. The server does not support the functionality required to fulfill the request",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            }
          }
        }
      },
      "503": {
        "description": "Service unavailable. The server is not able to handle the request at present. If no Retry-After is given, the client SHOULD handle the response as it would for a 500 response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            }
          }
        },
        "headers": {
          "Retry-After": {
            "description": "Indicates how long the client should wait before making a follow-up request, specified as a number of seconds",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        }
      }
    },
    "securitySchemes": {
      "oauth2": {
        "description": "To access this API, use the OAuth 2.0 client credentials grant flow.",
        "type": "oauth2",
        "flows": {
          "clientCredentials": {
            "tokenUrl": "https://{subdomain}.authentication.{region}.hana.ondemand.com/oauth/token",
            "scopes": {}
          }
        }
      },
      "bearer": {
        "description": "To access this API, use the HTTP bearer authentication.",
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    }
  },
  "security": [
    {
      "oauth2": []
    },
    {
      "bearer": []
    }
  ],
  "x-sap-direction": "outbound",
  "externalDocs": {
    "description": "SAP Advanced Financial Closing SDK for CDS",
    "url": "https://github.com/cap-js-community/sap-afc-sdk"
  }
}
