{
  "openapi": "3.0.1",
  "info": {
    "title": "SO99Plus.WebAPI",
    "version": "1.1",
    "description": "SO99+ Web API is an OpenAPI 3.0 secure web service that allows you to interact with an SO99+ service in order to use predefined API functions.\n\n\n# 👩‍💻 User Interface\n \nThere is a a very simple User Interface to access the Open API 3.0 definition and try it. It's accessible via browser at the API Main URL.\n\n<!-- theme: info -->\n>The User Interface may not be available if the system administrator has turned it off due to security constraints.\n\n<!-- theme: warning -->\n>The interactive capabilities of the User Interface are meant for illustration purposes only. In order to exploit properly and fully the SO99+ Web API, you need to implement the invoking calls externally. \n\n\n# ✅ System Requirements\n\nThe following pre-requisites are needed in order for the SO99+ Web API to properly work:\n\n- ASP.NET Core Runtime 6.0.3 or above\n\n<!-- theme: info -->\n>On Windows, we recommend installing the Hosting Bundle, which includes the .NET Runtime and IIS support.\n>You can locate it here: https://dotnet.microsoft.com/en-us/download/dotnet/6.0\n\n- Microsoft Internet Information Server IIS 10.0 or above.\n\n<!-- theme: warning -->\n> Being a .NET Core In-Process application, a DEDICATED application pool is required, set up as \"No managed code\". Otherwise HTTP Error 500.35 – ANCM Multiple In-Process Applications in same Process may show up when running it.\n\n\n# ✅ SO99+ Requirements \n\nThe SO99+ service and the Web API applications should have matching versions.\n\nThe “Allow web API” flag for the DB needs to be active in order for the API calls to be allowed into SO99+. This is configured through the DB Management utility in the “Configuration application options” form.\n\n\n# 📬 API Operations\n\nCurrently we support the following API calls:\n\n- Batch execution:\n\nList, launch a batch and check whether a batch is running\n\n - Data pipeline  (No SO99+ required)\n \n Exchange data between ODATA, JSON and SQL endpoints.\n  \n- Data exchange \n \n Download/upload files and BLOBs\n\n- Export\n\nDump previously created reports in different formats\n\n- Import\n\nLaunch and check the result of an Import\n\n- Jobs\n\nCheck status of a Job\n\n- Fulfilment\n\nAllow to calculate Stock from SL and optimize SKU-Locations\n\n- Promotions\n\nEvaluate promotions (for DCH/PromoPlanning usage)",
    "contact": {
      "url": "www.toolsgroup.com",
      "name": "ToolsGroup"
    }
  },
  "servers": [
    {
      "url": "/{basePath}",
      "variables": {
        "basePath": {
          "default": ""
        }
      }
    }
  ],
  "paths": {
    "/api/Batch/List": {
      "get": {
        "tags": [
          "Batch"
        ],
        "summary": "Batch Profile List",
        "description": "This method returns an array list of active batch profiles. \n\nThis function requires System Read permissions.",
        "parameters": [
          {
            "$ref": "#/components/parameters/APIVersion"
          }
        ],
        "responses": {
          "200": {
            "description": "Response OK. Array of Batch Profile Names",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. (Wrong or missing parameters supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. (Wrong token supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKey": []
          },
          {
            "OAUTH2": [
              "SO99WebApiSystemRead"
            ]
          }
        ],
        "operationId": "get-BatchList"
      }
    },
    "/api/Batch/Launch": {
      "post": {
        "tags": [
          "Batch"
        ],
        "summary": "Batch Launch",
        "description": "Launch the Batch Profile associated with the Batch Profile Name.\nReturn true if launched, false otherwise.\n\nThis function requires System Write permissions.",
        "parameters": [
          {
            "name": "profileName",
            "in": "query",
            "description": "Profile name for the batch to launch.",
            "schema": {
              "type": "string",
              "description": "",
              "nullable": false
            },
            "required": true
          },
          {
            "$ref": "#/components/parameters/APIVersion"
          }
        ],
        "responses": {
          "200": {
            "description": "Response OK. Batch launch true or false",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. (Wrong or missing parameters supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. (Wrong token supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKey": []
          },
          {
            "OAUTH2": [
              "SO99WebApiSystemWrite"
            ]
          }
        ],
        "operationId": "post-BatchLaunch"
      }
    },
    "/api/Batch/Running": {
      "get": {
        "tags": [
          "Batch"
        ],
        "summary": "Batch Running",
        "description": "Returns a boolean indicating if a Batch is Running or not and a string with the Batch Profile Name currently running, if any. \n\nIf there's an error polling SO99+, the boolean will be false and the Profile Name will be \"<ERROR>\".\n\nThis function requires System Read permissions.",
        "parameters": [
          {
            "$ref": "#/components/parameters/APIVersion"
          }
        ],
        "responses": {
          "200": {
            "description": "Response OK. ",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "IsRunning": {
                      "type": "boolean"
                    },
                    "ProfileName": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Batch profile is running": {
                    "value": {
                      "IsRunning": true,
                      "ProfileName": "MyBatchProfile"
                    }
                  },
                  "No batch profile is running": {
                    "value": {
                      "IsRunning": false,
                      "ProfileName": ""
                    }
                  },
                  "Error during call": {
                    "value": {
                      "IsRunning": false,
                      "ProfileName": "<ERROR>"
                    }
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. (Wrong or missing parameters supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. (Wrong token supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKey": []
          },
          {
            "OAUTH2": [
              "SO99WebApiSystemRead"
            ]
          }
        ],
        "operationId": "get-BatchRunning"
      }
    },
    "/api/Batch/Cancel": {
      "post": {
        "tags": [
          "Batch"
        ],
        "summary": "Batch Cancel",
        "description": "<!-- theme: warning -->\n>This function has to be used with CAUTION\n\nReturn true if a batch has been effectively canceled, false otherwise.\n\nThis function requires System Write permissions.",
        "parameters": [
          {
            "name": "cancelStartedJobs",
            "in": "query",
            "description": "Set true to try to force the canceling of already running jobs.",
            "schema": {
              "type": "boolean",
              "description": "",
              "default": false
            },
            "required": true
          },
          {
            "$ref": "#/components/parameters/APIVersion"
          }
        ],
        "responses": {
          "200": {
            "description": "Response OK. Batch has been effectively cancelled if true.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. (Wrong or missing parameters supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. (Wrong token supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKey": []
          },
          {
            "OAUTH2": [
              "SO99WebApiSystemWrite"
            ]
          }
        ],
        "operationId": "post-BatchCancel"
      }
    },
    "/api/DataPipeline/Execute": {
      "post": {
        "tags": [
          "DataPipeline"
        ],
        "summary": "Launch a Data PipeLine process",
        "description": "Start a Data Pipeline process (Data Transfer) already pre-configured by a system administrator in the Web API configuration.\nThe process will run in the background.\nIf a callback URL is provided, it will be invoked when this Data Pipeline process ends.\n\nNo SO99+ is required for this.\n\nThis function requires System Write permissions.",
        "parameters": [
          {
            "name": "pipelineId",
            "in": "query",
            "schema": {
              "type": "string",
              "nullable": false
            },
            "required": true
          },
          {
            "$ref": "#/components/parameters/APIVersion"
          },
          {
            "$ref": "#/components/parameters/CallbackURL"
          }
        ],
        "responses": {
          "200": {
            "description": "Response OK. Return true if Execution has started, false otherwise. ",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. (Wrong or missing parameters supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. (Wrong token supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKey": []
          },
          {
            "OAUTH2": [
              "SO99WebApiSystemWrite"
            ]
          }
        ],
        "operationId": "post-DataPipelineExecute"
      }
    },
    "/api/Exchange/File": {
      "post": {
        "tags": [
          "Exchange"
        ],
        "summary": "Upload File to the Exchange Folder",
        "description": "Save in the SO99+ Exchange Folder the file sent, using the filename provided in the FileInfo\n\nThis function requires System Write permissions.",
        "parameters": [
          {
            "$ref": "#/components/parameters/APIVersion"
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Response OK. ProfileName",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. (Wrong or missing parameters supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. (Wrong token supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKey": []
          },
          {
            "OAUTH2": [
              "SO99WebApiSystemWrite"
            ]
          }
        ],
        "operationId": "post-ExchangeFile"
      },
      "get": {
        "tags": [
          "Exchange"
        ],
        "summary": "Download File from the Exchange Folder",
        "description": "Get a file, usually generated by SO99+ during a batch, from the Exchange Folder \n\nThis function requires System Write permissions.",
        "parameters": [
          {
            "name": "fileName",
            "in": "query",
            "schema": {
              "type": "string",
              "nullable": false
            }
          },
          {
            "$ref": "#/components/parameters/APIVersion"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/FileDownload"
          },
          "400": {
            "description": "Bad Request. (Wrong or missing parameters supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. (Wrong token supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKey": []
          },
          {
            "OAUTH2": [
              "SO99WebApiSystemWrite"
            ]
          }
        ],
        "operationId": "get-ExchangeFile"
      }
    },
    "/api/Exchange/FileDownload": {
      "get": {
        "tags": [
          "Exchange"
        ],
        "summary": "Download file from SO99+ Exchange folder",
        "description": "Will return a file with the data from a previously generated by SO99+ in the Exchange fodler. \nAvailable link for browser\nThis function needs to call from client with WRITE permissions",
        "parameters": [
          {
            "name": "fileName",
            "in": "query",
            "schema": {
              "type": "string",
              "nullable": false
            }
          },
          {
            "$ref": "#/components/parameters/APIVersion"
          }
        ],
        "responses": {
          "200": {
            "description": "Response OK. ProfileName",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. (Wrong or missing parameters supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. (Wrong token supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "deprecated": true,
        "security": [
          {
            "APIKey": []
          },
          {
            "OAUTH2": [
              "SO99WebApiSystemWrite"
            ]
          }
        ],
        "operationId": "get-ExchangeFileDownload"
      }
    },
    "/api/Exchange/BlobDownload": {
      "post": {
        "tags": [
          "Exchange"
        ],
        "summary": "Transfer from Blob Storage into Exchange folder",
        "description": "Will download from Blob Storage the BLOB with BLOBName and save it in the Exchange Folder with the same file name.\n\nThis function needs to call from client with WRITE permissions",
        "parameters": [
          {
            "name": "blobName",
            "in": "query",
            "schema": {
              "type": "string",
              "nullable": false
            }
          },
          {
            "$ref": "#/components/parameters/APIVersion"
          }
        ],
        "responses": {
          "200": {
            "description": "Response OK. Return true if ok, false otherwise.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. (Wrong or missing parameters supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. (Wrong token supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "operationId": "post-ExchangeBlobDownload",
        "security": [
          {
            "APIKey": []
          },
          {
            "OAUTH2": [
              "SO99WebApiSystemWrite"
            ]
          }
        ]
      }
    },
    "/api/Exchange/BlobDownloadByUri": {
      "post": {
        "tags": [
          "Exchange"
        ],
        "summary": "Transfer from Blob Storage using a public SAS URI into Exchange Folder",
        "description": "Will transfer from Blob Storage, using the public URI (with Key) provided into SO99+ Exchange folder\n\nThis function needs to call from client with WRITE permissions",
        "parameters": [
          {
            "$ref": "#/components/parameters/SAS-Uri"
          },
          {
            "name": "fileName",
            "in": "query",
            "schema": {
              "type": "string",
              "nullable": false
            }
          },
          {
            "$ref": "#/components/parameters/APIVersion"
          }
        ],
        "responses": {
          "200": {
            "description": "Response OK. Return true if ok, false otherwise.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. (Wrong or missing parameters supplied)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. (Wrong token supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKey": []
          },
          {
            "OAUTH2": [
              "SO99WebApiSystemWrite"
            ]
          }
        ],
        "operationId": "post-ExchangeBlobDownloadByUri"
      }
    },
    "/api/Exchange/BlobUpload": {
      "post": {
        "tags": [
          "Exchange"
        ],
        "summary": "Transfer from Exchange folder into BLOB Storage",
        "description": "Will upload to the Blob Storage the file present in the SO99+ Exchange Folder the file with BLOBName saved\n\nThis function needs to call from client with WRITE permissions",
        "parameters": [
          {
            "name": "fileName",
            "in": "query",
            "schema": {
              "type": "string",
              "nullable": false
            }
          },
          {
            "$ref": "#/components/parameters/APIVersion"
          }
        ],
        "responses": {
          "200": {
            "description": "Response OK. Return true if ok, false otherwise.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. (Wrong or missing parameters supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. (Wrong token supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "operationId": "post-ExchangeBlobUpload",
        "security": [
          {
            "APIKey": []
          },
          {
            "OAUTH2": [
              "SO99WebApiSystemWrite"
            ]
          }
        ]
      }
    },
    "/api/Export/ReportDumpText": {
      "post": {
        "tags": [
          "Export"
        ],
        "summary": "Export a Report to a Delimited Text file",
        "description": "Will launch the export for a Shared Report generating as output a Delimited Text file in the Exchange folder\n\nThis function needs to call from client with WRITE permissions",
        "parameters": [
          {
            "name": "reportName",
            "in": "query",
            "schema": {
              "type": "string",
              "nullable": false,
              "example": "MyReport"
            },
            "required": true,
            "description": "Shared Report name to Dump"
          },
          {
            "name": "fileName",
            "in": "query",
            "schema": {
              "type": "string",
              "nullable": false,
              "example": "MyReport.csv"
            },
            "required": true,
            "description": "File name for the Dumped Report"
          },
          {
            "name": "headerRow",
            "in": "query",
            "schema": {
              "type": "boolean"
            },
            "required": true,
            "description": "Include Header Row"
          },
          {
            "name": "fieldDelimiter",
            "in": "query",
            "schema": {
              "type": "string",
              "nullable": false,
              "example": ";"
            },
            "required": true,
            "description": "Field Delimiter"
          },
          {
            "name": "cultureId",
            "in": "query",
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "$ref": "#/components/parameters/APIVersion"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/JobLaunched"
          },
          "400": {
            "description": "Bad Request. (Wrong or missing parameters supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. (Wrong token supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKey": []
          },
          {
            "OAUTH2": [
              "SO99WebApiSystemWrite"
            ]
          }
        ],
        "operationId": "post-ExchangeReportDumpText"
      }
    },
    "/api/Export/ReportDumpExcel": {
      "post": {
        "tags": [
          "Export"
        ],
        "summary": "Export a Report to a Excel file",
        "description": "Will launch the export for a Shared Report generating as output an Excel file in the Exchange folder\n\nThis function needs to call from client with WRITE permissions",
        "parameters": [
          {
            "name": "reportName",
            "in": "query",
            "schema": {
              "type": "string",
              "nullable": false
            },
            "required": true
          },
          {
            "name": "fileName",
            "in": "query",
            "schema": {
              "type": "string",
              "nullable": false
            },
            "required": true
          },
          {
            "name": "headerRow",
            "in": "query",
            "schema": {
              "type": "boolean"
            },
            "required": true
          },
          {
            "name": "useValues",
            "in": "query",
            "schema": {
              "type": "boolean"
            },
            "required": true
          },
          {
            "name": "cultureId",
            "in": "query",
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "$ref": "#/components/parameters/APIVersion"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/JobLaunched"
          },
          "400": {
            "description": "Bad Request. (Wrong or missing parameters supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. (Wrong token supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKey": []
          },
          {
            "OAUTH2": [
              "SO99WebApiSystemWrite"
            ]
          }
        ],
        "deprecated": true,
        "operationId": "post-ExchangeReportDumpExcel"
      }
    },
    "/api/Export/ReportDumpSql": {
      "post": {
        "tags": [
          "Export"
        ],
        "summary": "Export a Report to a SQL destination",
        "description": "Will launch the export for the Shared Report generating as output a TableName in the specified DB Name and Connection Name.\n\nThis function needs to call from client with WRITE permissions",
        "parameters": [
          {
            "name": "reportName",
            "in": "query",
            "schema": {
              "type": "string",
              "nullable": false
            },
            "required": true
          },
          {
            "name": "tableName",
            "in": "query",
            "schema": {
              "type": "string",
              "nullable": false
            },
            "required": true
          },
          {
            "name": "dbName",
            "in": "query",
            "schema": {
              "type": "string",
              "nullable": false
            },
            "required": true
          },
          {
            "name": "connectionName",
            "in": "query",
            "schema": {
              "type": "string",
              "nullable": false
            },
            "required": true
          },
          {
            "$ref": "#/components/parameters/APIVersion"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/JobLaunched"
          },
          "400": {
            "description": "Bad Request. (Wrong or missing parameters supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. (Wrong token supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKey": []
          },
          {
            "OAUTH2": [
              "SO99WebApiSystemWrite"
            ]
          }
        ],
        "operationId": "post-ExchangeReportDumpSQL"
      }
    },
    "/api/Export/ReportDumpXml": {
      "post": {
        "tags": [
          "Export"
        ],
        "summary": "Export a Report to a XML file",
        "description": "Will launch the export for the Shared Report generating as output an XML file in the Exchange folder\n\nThis function needs to call from client with WRITE permissions",
        "parameters": [
          {
            "name": "reportName",
            "in": "query",
            "schema": {
              "type": "string",
              "nullable": false
            },
            "required": true
          },
          {
            "name": "fileName",
            "in": "query",
            "schema": {
              "type": "string",
              "nullable": false
            },
            "required": true
          },
          {
            "name": "cultureId",
            "in": "query",
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "$ref": "#/components/parameters/APIVersion"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/JobLaunched"
          },
          "400": {
            "description": "Bad Request. (Wrong or missing parameters supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. (Wrong token supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKey": []
          },
          {
            "OAUTH2": [
              "SO99WebApiSystemWrite"
            ]
          }
        ],
        "operationId": "post-ExchangeReportDumpXML"
      }
    },
    "/api/Import/Launch": {
      "post": {
        "tags": [
          "Import"
        ],
        "summary": "Launch an Import job",
        "description": "Launch an import job for a TableName, with a Specific Profile.\nThe input file should have been previously placed in the Exchange folder.\n\nThis function needs to call from client with WRITE permissions",
        "parameters": [
          {
            "name": "tableName",
            "in": "query",
            "schema": {
              "type": "string",
              "nullable": false
            },
            "required": true
          },
          {
            "name": "profile",
            "in": "query",
            "schema": {
              "type": "string",
              "nullable": false
            },
            "required": true
          },
          {
            "name": "filename",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "",
              "nullable": true
            }
          },
          {
            "$ref": "#/components/parameters/APIVersion"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/JobLaunched"
          },
          "400": {
            "description": "Bad Request. (Wrong or missing parameters supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. (Wrong token supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKey": []
          },
          {
            "OAUTH2": [
              "SO99WebApiSystemWrite"
            ]
          }
        ],
        "operationId": "post-ImportLaunch"
      }
    },
    "/api/Import/TableList": {
      "get": {
        "tags": [
          "Import"
        ],
        "summary": "List Tables available for Import",
        "description": "This method returns a list of Tables that can be imported by SO99+\r\nTo be able to call this function the client will need permissions of type SystemRead",
        "parameters": [
          {
            "$ref": "#/components/parameters/APIVersion"
          }
        ],
        "responses": {
          "200": {
            "description": "Response OK. Array of Tables with Name and Description",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "",
                  "minItems": 1,
                  "uniqueItems": true,
                  "x-examples": {
                    "example-1": [
                      {
                        "TableName": "C_CURRENTSTK",
                        "TableDesc": "Current Stock"
                      },
                      {
                        "TableName": "C_DELGRPARE",
                        "TableDesc": "Delivery Group/Area"
                      },
                      {
                        "TableName": "C_FREEATTR_ITM1",
                        "TableDesc": "(Item) Color"
                      },
                      {
                        "TableName": "C_ITEM_LOC_SUPP_TIMEDEP",
                        "TableDesc": "Time-dependent Item/Location/Supplier"
                      },
                      {
                        "TableName": "C_ITEMAREA",
                        "TableDesc": "Item/Area"
                      },
                      {
                        "TableName": "C_ITLOC_SLSTOCK",
                        "TableDesc": "SL and Stock Tracking"
                      },
                      {
                        "TableName": "C_ITLOC_STOCK",
                        "TableDesc": "Stock Tracking"
                      },
                      {
                        "TableName": "C_MASTERFILE",
                        "TableDesc": "Item Masterfile"
                      },
                      {
                        "TableName": "C_ONORDER",
                        "TableDesc": "On-Order Quantities"
                      },
                      {
                        "TableName": "C_ONORDER_MSRC",
                        "TableDesc": "On-Order Quantities (Multi sourcing)"
                      },
                      {
                        "TableName": "C_OUTSTORDER",
                        "TableDesc": "Outstanding Orders"
                      },
                      {
                        "TableName": "C_OUTSTORDER_DET",
                        "TableDesc": "Outstanding Order Details"
                      },
                      {
                        "TableName": "C_SUPP_LOC",
                        "TableDesc": "Supplier/Location"
                      },
                      {
                        "TableName": "ITEMHIST",
                        "TableDesc": "Monthly Demand by Sales Area"
                      }
                    ]
                  },
                  "items": {
                    "type": "object",
                    "properties": {
                      "TableName": {
                        "type": "string",
                        "minLength": 1
                      },
                      "TableDesc": {
                        "type": "string",
                        "minLength": 1
                      }
                    }
                  }
                },
                "examples": {
                  "Sample": {
                    "value": [
                      {
                        "TableName": "C_CURRENTSTK",
                        "TableDesc": "Current Stock"
                      },
                      {
                        "TableName": "C_DELGRPARE",
                        "TableDesc": "Delivery Group/Area"
                      },
                      {
                        "TableName": "C_FREEATTR_ITM1",
                        "TableDesc": "(Item) Color"
                      },
                      {
                        "TableName": "C_ITEM_LOC_SUPP_TIMEDEP",
                        "TableDesc": "Time-dependent Item/Location/Supplier"
                      },
                      {
                        "TableName": "C_ITEMAREA",
                        "TableDesc": "Item/Area"
                      },
                      {
                        "TableName": "C_ITLOC_SLSTOCK",
                        "TableDesc": "SL and Stock Tracking"
                      },
                      {
                        "TableName": "C_ITLOC_STOCK",
                        "TableDesc": "Stock Tracking"
                      },
                      {
                        "TableName": "C_MASTERFILE",
                        "TableDesc": "Item Masterfile"
                      },
                      {
                        "TableName": "C_ONORDER",
                        "TableDesc": "On-Order Quantities"
                      },
                      {
                        "TableName": "C_ONORDER_MSRC",
                        "TableDesc": "On-Order Quantities (Multi sourcing)"
                      },
                      {
                        "TableName": "C_OUTSTORDER",
                        "TableDesc": "Outstanding Orders"
                      },
                      {
                        "TableName": "C_OUTSTORDER_DET",
                        "TableDesc": "Outstanding Order Details"
                      },
                      {
                        "TableName": "C_SUPP_LOC",
                        "TableDesc": "Supplier/Location"
                      },
                      {
                        "TableName": "ITEMHIST",
                        "TableDesc": "Monthly Demand by Sales Area"
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. (Wrong or missing parameters supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. (Wrong token supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKey": []
          },
          {
            "OAUTH2": [
              "SO99WebApiSystemRead"
            ]
          }
        ],
        "operationId": "get-ImportTableList"
      }
    },
    "/api/Import/TableProfileList": {
      "get": {
        "tags": [
          "Import"
        ],
        "summary": "List available Import profiles for a Table",
        "description": "This method returns a list of Tables Profiles given a table name  \nTo be able to call this function the client will need permissions of type SystemRead",
        "parameters": [
          {
            "name": "tablename",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "",
              "nullable": false
            },
            "required": true
          },
          {
            "$ref": "#/components/parameters/APIVersion"
          }
        ],
        "responses": {
          "200": {
            "description": "Response OK. Array of Import Profiles for a specific Table",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "",
                  "minItems": 1,
                  "uniqueItems": true,
                  "items": {
                    "type": "object",
                    "required": [
                      "TableProfile"
                    ],
                    "properties": {
                      "TableProfile": {
                        "type": "string",
                        "minLength": 1
                      }
                    }
                  },
                  "x-examples": {
                    "example-1": [
                      {
                        "TableProfile": "TEST"
                      }
                    ]
                  }
                },
                "examples": {
                  "Sample": {
                    "value": [
                      {
                        "TableProfile": "TEST"
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. (Wrong or missing parameters supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. (Wrong token supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKey": []
          },
          {
            "OAUTH2": [
              "SO99WebApiSystemRead"
            ]
          }
        ],
        "operationId": "get-ImportTableProfilesList"
      }
    },
    "/api/Import/LogList": {
      "get": {
        "tags": [
          "Import"
        ],
        "summary": "List the Import Logs",
        "description": "This method returns a list of the import logs table\r\nTo be able to call this function the client will need permissions of type SystemRead",
        "parameters": [
          {
            "name": "tablename",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "",
              "nullable": true
            }
          },
          {
            "name": "tableProfile",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "",
              "nullable": true
            }
          },
          {
            "name": "userID",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "",
              "nullable": true
            }
          },
          {
            "name": "jobID",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "",
              "nullable": true
            }
          },
          {
            "name": "topRows",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 50
            }
          },
          {
            "$ref": "#/components/parameters/APIVersion"
          }
        ],
        "responses": {
          "200": {
            "description": "Response OK. Array of Logs",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "",
                  "minItems": 1,
                  "uniqueItems": true,
                  "x-examples": {
                    "example-1": [
                      {
                        "JOBID": "000009105",
                        "TABLENAME": "C_ITEM_LOC_SUPP_TIMEDEP",
                        "TABLEDESCR": "Time-dependent Item/Location/Supplier",
                        "IMPPROFILE": "DG_TIMEDEP",
                        "USERID": "SYSTEM",
                        "IMPFILENAME": "C:\\Development\\Davide\\timedepsup.csv",
                        "IMPLOGNAME": "D:\\Development\\Davide\\SO99+ 8.3.0 SP0\\bin\\Logs\\c_item_loc_supp_timedep_DG_TIMEDEP20191129164920.log",
                        "STARTED": "2019-11-29T16:49:20.67",
                        "ENDED": "2019-11-29T16:49:25.54",
                        "NRECREAD": 5,
                        "NRECDIS": 0,
                        "NRECADD": 5,
                        "NRECMOD": 0,
                        "DELETERULE": -1,
                        "NNOTIMP": 0,
                        "IMPRESULT": 0,
                        "RECORDS_R": 0,
                        "RECORDS_Y": 0,
                        "RECORDS_G": 0
                      },
                      {
                        "JOBID": "000008968",
                        "TABLENAME": "C_ITEM_LOC_SUPP_TIMEDEP",
                        "TABLEDESCR": "Time-dependent Item/Location/Supplier",
                        "IMPPROFILE": "DG_TIMEDEP",
                        "USERID": "SYSTEM",
                        "IMPFILENAME": "C:\\Development\\Davide\\timedepsup.csv",
                        "IMPLOGNAME": "D:\\Development\\Davide\\SO99+ 8.3.0 SP0\\bin\\Logs\\c_item_loc_supp_timedep_DG_TIMEDEP20191129163007.log",
                        "STARTED": "2019-11-29T16:30:07.683",
                        "ENDED": "2019-11-29T16:30:13.127",
                        "NRECREAD": 7,
                        "NRECDIS": 0,
                        "NRECADD": 7,
                        "NRECMOD": 0,
                        "DELETERULE": -1,
                        "NNOTIMP": 0,
                        "IMPRESULT": 0,
                        "RECORDS_R": 0,
                        "RECORDS_Y": 0,
                        "RECORDS_G": 0
                      },
                      {
                        "JOBID": "000008648",
                        "TABLENAME": "C_ITEM_LOC_SUPP_TIMEDEP",
                        "TABLEDESCR": "Time-dependent Item/Location/Supplier",
                        "IMPPROFILE": "DG_TIMEDEP",
                        "USERID": "SYSTEM",
                        "IMPFILENAME": "C:\\Development\\Davide\\timedepsup.csv",
                        "IMPLOGNAME": "D:\\Development\\Davide\\SO99+ 8.3.0 SP0\\bin\\Logs\\c_item_loc_supp_timedep_DG_TIMEDEP20191128153313.log",
                        "STARTED": "2019-11-28T15:33:13.94",
                        "ENDED": "2019-11-28T15:33:18.953",
                        "NRECREAD": 5,
                        "NRECDIS": 0,
                        "NRECADD": 5,
                        "NRECMOD": 0,
                        "DELETERULE": -1,
                        "NNOTIMP": 0,
                        "IMPRESULT": 0,
                        "RECORDS_R": 0,
                        "RECORDS_Y": 0,
                        "RECORDS_G": 0
                      },
                      {
                        "JOBID": "000008469",
                        "TABLENAME": "C_ITEM_LOC_SUPP_TIMEDEP",
                        "TABLEDESCR": "Time-dependent Item/Location/Supplier",
                        "IMPPROFILE": "DG_TIMEDEP",
                        "USERID": "SYSTEM",
                        "IMPFILENAME": "C:\\Development\\Davide\\timedepsup.csv",
                        "IMPLOGNAME": "D:\\Development\\Davide\\SO99+ 8.3.0 SP0\\bin\\Logs\\c_item_loc_supp_timedep_DG_TIMEDEP20191128150658.log",
                        "STARTED": "2019-11-28T15:06:58.507",
                        "ENDED": "2019-11-28T15:07:03.767",
                        "NRECREAD": 5,
                        "NRECDIS": 0,
                        "NRECADD": 5,
                        "NRECMOD": 0,
                        "DELETERULE": -1,
                        "NNOTIMP": 0,
                        "IMPRESULT": 0,
                        "RECORDS_R": 0,
                        "RECORDS_Y": 0,
                        "RECORDS_G": 0
                      },
                      {
                        "JOBID": "000008467",
                        "TABLENAME": "C_ITEM_LOC_SUPP_TIMEDEP",
                        "TABLEDESCR": "Time-dependent Item/Location/Supplier",
                        "IMPPROFILE": "DG_TIMEDEP",
                        "USERID": "SYSTEM",
                        "IMPFILENAME": "C:\\Development\\Davide\\timedepsup.csv",
                        "IMPLOGNAME": "D:\\Development\\Davide\\SO99+ 8.3.0 SP0\\bin\\Logs\\c_item_loc_supp_timedep_DG_TIMEDEP20191128150504.log",
                        "STARTED": "2019-11-28T15:05:04.177",
                        "ENDED": "2019-11-28T15:05:08.813",
                        "NRECREAD": 5,
                        "NRECDIS": 1,
                        "NRECADD": 4,
                        "NRECMOD": 0,
                        "DELETERULE": -1,
                        "NNOTIMP": 0,
                        "IMPRESULT": 0,
                        "RECORDS_R": 0,
                        "RECORDS_Y": 0,
                        "RECORDS_G": 0
                      },
                      {
                        "JOBID": "000008465",
                        "TABLENAME": "C_ITEM_LOC_SUPP_TIMEDEP",
                        "TABLEDESCR": "Time-dependent Item/Location/Supplier",
                        "IMPPROFILE": "DG_TIMEDEP",
                        "USERID": "SYSTEM",
                        "IMPFILENAME": "C:\\Development\\Davide\\timedepsup.csv",
                        "IMPLOGNAME": "D:\\Development\\Davide\\SO99+ 8.3.0 SP0\\bin\\Logs\\c_item_loc_supp_timedep_DG_TIMEDEP20191128150424.log",
                        "STARTED": "2019-11-28T15:04:24.123",
                        "ENDED": "2019-11-28T15:04:29.79",
                        "NRECREAD": 5,
                        "NRECDIS": 1,
                        "NRECADD": 4,
                        "NRECMOD": 0,
                        "DELETERULE": -1,
                        "NNOTIMP": 0,
                        "IMPRESULT": 0,
                        "RECORDS_R": 0,
                        "RECORDS_Y": 0,
                        "RECORDS_G": 0
                      },
                      {
                        "JOBID": "000000858",
                        "TABLENAME": "ITEMHIST",
                        "TABLEDESCR": "Monthly Demand by Sales Area",
                        "IMPPROFILE": "TEST",
                        "USERID": "SYSTEM",
                        "IMPFILENAME": "C:\\Development\\mdimauro\\Test\\ExportForecast.txt",
                        "IMPLOGNAME": "C:\\Development\\mdimauro\\trunk\\Win\\bin\\x86\\Logs\\ITEMHIST_TEST20210324150132.log",
                        "STARTED": "2021-03-24T15:01:32.167",
                        "ENDED": "2021-03-24T15:05:26.727",
                        "NRECREAD": 244800,
                        "NRECDIS": 235008,
                        "NRECADD": 7504,
                        "NRECMOD": 0,
                        "DELETERULE": 0,
                        "NNOTIMP": 0,
                        "IMPRESULT": 0,
                        "RECORDS_R": 235008,
                        "RECORDS_Y": 0,
                        "RECORDS_G": 0
                      },
                      {
                        "JOBID": "000000857",
                        "TABLENAME": "C_FREEATTR_ITM1",
                        "TABLEDESCR": "(Item) Color",
                        "IMPPROFILE": "TEST",
                        "USERID": "SYSTEM",
                        "IMPFILENAME": "",
                        "IMPLOGNAME": "C:\\Development\\mdimauro\\trunk\\Win\\bin\\x86\\Logs\\C_FREEATTR_ITM1_TEST20210316162826.log",
                        "STARTED": "2021-03-16T16:28:26.303",
                        "ENDED": "2021-03-16T16:28:26.647",
                        "NRECREAD": 0,
                        "NRECDIS": 0,
                        "NRECADD": 0,
                        "NRECMOD": 0,
                        "DELETERULE": 0,
                        "NNOTIMP": 0,
                        "IMPRESULT": 2,
                        "RECORDS_R": 0,
                        "RECORDS_Y": 0,
                        "RECORDS_G": 0
                      }
                    ]
                  },
                  "items": {
                    "type": "object",
                    "properties": {
                      "JOBID": {
                        "type": "string",
                        "minLength": 1
                      },
                      "TABLENAME": {
                        "type": "string",
                        "minLength": 1
                      },
                      "TABLEDESCR": {
                        "type": "string",
                        "minLength": 1
                      },
                      "IMPPROFILE": {
                        "type": "string",
                        "minLength": 1
                      },
                      "USERID": {
                        "type": "string",
                        "minLength": 1
                      },
                      "IMPFILENAME": {
                        "type": "string",
                        "minLength": 1
                      },
                      "IMPLOGNAME": {
                        "type": "string",
                        "minLength": 1
                      },
                      "STARTED": {
                        "type": "string",
                        "minLength": 1
                      },
                      "ENDED": {
                        "type": "string",
                        "minLength": 1
                      },
                      "NRECREAD": {
                        "type": "integer",
                        "minimum": 0
                      },
                      "NRECDIS": {
                        "type": "integer",
                        "minimum": 0
                      },
                      "NRECADD": {
                        "type": "integer",
                        "minimum": 0
                      },
                      "NRECMOD": {
                        "type": "integer",
                        "minimum": 0
                      },
                      "DELETERULE": {
                        "type": "integer"
                      },
                      "NNOTIMP": {
                        "type": "number"
                      },
                      "IMPRESULT": {
                        "type": "number"
                      },
                      "RECORDS_R": {
                        "type": "number"
                      },
                      "RECORDS_Y": {
                        "type": "number"
                      },
                      "RECORDS_G": {
                        "type": "number"
                      }
                    },
                    "required": [
                      "JOBID",
                      "TABLENAME",
                      "TABLEDESCR",
                      "IMPPROFILE",
                      "USERID",
                      "IMPFILENAME",
                      "IMPLOGNAME",
                      "STARTED",
                      "ENDED",
                      "NRECREAD",
                      "NRECDIS",
                      "NRECADD",
                      "NRECMOD",
                      "DELETERULE",
                      "NNOTIMP",
                      "IMPRESULT",
                      "RECORDS_R",
                      "RECORDS_Y",
                      "RECORDS_G"
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. (Wrong or missing parameters supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. (Wrong token supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKey": []
          },
          {
            "OAUTH2": [
              "SO99WebApiSystemRead"
            ]
          }
        ],
        "operationId": "get-ImportLogList"
      }
    },
    "/api/Import/LogZip": {
      "get": {
        "tags": [
          "Import"
        ],
        "summary": "Save a zipped Import Log file",
        "description": "This method saves an import log zip file in the SO99+ Exchange Folder. \nThe log file content is searched by the job id associated during launch.\n\nThen the file can be accesed by its name.\n\nThis method needs Read permissions.",
        "parameters": [
          {
            "name": "jobID",
            "in": "query",
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "$ref": "#/components/parameters/APIVersion"
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Filename saved",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. (Wrong or missing parameters supplied)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. (Wrong token supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKey": []
          },
          {
            "OAUTH2": [
              "SO99WebApiSystemRead"
            ]
          }
        ],
        "operationId": "get-ImportLogZip"
      }
    },
    "/api/Import/LogZipDownload": {
      "get": {
        "tags": [
          "Import"
        ],
        "summary": "Download a zipped Import Log file",
        "description": "This method saves an import log zip file in the SO99+ Exchange Folder. \nThe log file content is searched by the job id associated during launch.\n\nThen retrieves the file itself.\n\nThis method needs Read permissions.",
        "parameters": [
          {
            "name": "jobID",
            "in": "query",
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "$ref": "#/components/parameters/APIVersion"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/FileDownload"
          },
          "400": {
            "description": "Bad Request. (Wrong or missing parameters supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. (Wrong token supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKey": []
          },
          {
            "OAUTH2": [
              "SO99WebApiSystemRead"
            ]
          }
        ],
        "operationId": "get-ImportLogZipDownload"
      }
    },
    "/api/System/SO99ConnectionTest": {
      "get": {
        "tags": [
          "System"
        ],
        "summary": "SO99+ Connection Test",
        "description": "Allows to confirm if the SO99+ WebAPI is able to locate and connect to the SO99+ Server with the current configuration ",
        "parameters": [
          {
            "$ref": "#/components/parameters/APIVersion"
          }
        ],
        "responses": {
          "200": {
            "description": "A plain text string to indicate if Connection to SO99+ Server was successful.\n\nResult strings:\n\n\"SO99+ Connection: OK\" -> A session has been established\n\n\"SO99+ Connection: FAILED!\" -> Unable to open session\n\n\"SO99+ Connection: ERROR!\"-> Error during call to SO99+ API\n\nNote that if the Authentication fails, others strings may come instead.",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "enum": [
                    "SO99+ Connection: OK",
                    "SO99+ Connection: FAILED!",
                    "SO99+ Connection: ERROR!"
                  ]
                },
                "examples": {}
              }
            }
          },
          "400": {
            "description": "Bad Request. (Wrong or missing parameters supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. (Wrong token supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKey": []
          },
          {
            "OAUTH2": []
          }
        ],
        "operationId": "get-SystemConnectionTest"
      }
    },
    "/api/System/JobProgress": {
      "get": {
        "tags": [
          "System"
        ],
        "summary": "SO99+ Job Progress",
        "description": "Will return the Progress for a job and if the job has ended.\n\t\t\nProgress can be :\n- from 0 to 99 when the job is still in queue or in progress.\n- 100 when job ended fine\n- -1 if the job has been Aborted or Cancelled. (Ended is true)\n- -2 if there was an error trying to get the Progress (Ended is false)\n\t\t",
        "parameters": [
          {
            "name": "jobId",
            "in": "query",
            "schema": {
              "type": "string",
              "nullable": true
            },
            "description": "Job ID for the Job to check its progress",
            "required": true
          },
          {
            "$ref": "#/components/parameters/APIVersion"
          }
        ],
        "responses": {
          "200": {
            "description": "Response OK.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "",
                  "type": "object",
                  "x-examples": {
                    "example-1": {
                      "progress": -2,
                      "ended": false
                    }
                  },
                  "properties": {
                    "progress": {
                      "type": "number",
                      "minimum": -2,
                      "maximum": 100
                    },
                    "ended": {
                      "type": "boolean"
                    }
                  }
                },
                "examples": {
                  "Job in Progress": {
                    "value": {
                      "progress": 50,
                      "ended": false
                    }
                  },
                  "Job Ended": {
                    "value": {
                      "progress": 100,
                      "ended": true
                    }
                  },
                  "Job Cancelled": {
                    "value": {
                      "progress": -1,
                      "ended": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. (Wrong or missing parameters supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. (Wrong token supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKey": []
          },
          {
            "OAUTH2": [
              "SO99WebAPISystemRead"
            ]
          }
        ],
        "operationId": "get-SystemJobProgress"
      }
    },
    "/api/System/JobCancel": {
      "post": {
        "tags": [
          "System"
        ],
        "summary": "SO99+ Job Cancel",
        "description": "<!-- theme: warning -->\n>This function has to be used with CAUTION\n\nWill force the cancellation of a list of jobs.\n\nIt will return the list of jobs actually cancelled.\n\nJobs that are not on the output list were not cancelled. \nIt may simply be that they have already ended.\n",
        "parameters": [
          {
            "$ref": "#/components/parameters/APIVersion"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          },
          "description": "List of Jobs to cancel"
        },
        "responses": {
          "200": {
            "description": "Response OK. List of Jobs actually cancelled.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "",
                  "minItems": 1,
                  "uniqueItems": true,
                  "x-examples": {
                    "example-1": [
                      "000000001",
                      "000000002"
                    ]
                  },
                  "items": {
                    "type": "string"
                  }
                },
                "examples": {}
              }
            }
          },
          "400": {
            "description": "Bad Request. (Wrong or missing parameters supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. (Wrong token supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKey": []
          },
          {
            "OAUTH2": [
              "SO99WebAPISystemWrite"
            ]
          }
        ],
        "operationId": "post-SystemJobCancel"
      }
    },
    "/api/Demand/ForecastCalculation": {
      "post": {
        "summary": "ForecastCalculation",
        "responses": {
          "200": {
            "description": "OK\n\n[ForecastResponse](/schemas/ForecastCalculationOutput)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ForecastCalculationOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. (Wrong or missing parameters supplied)"
          },
          "401": {
            "description": "Unauthorized. (Wrong token supplied)"
          }
        },
        "operationId": "post-Demand-ForecastCalculation",
        "description": "Forecast Calculation by Product/Market",
        "security": [
          {
            "APIKey": []
          },
          {
            "OAUTH2": [
              "SO99WebApiDemandRead"
            ]
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ForecastCalculationInput"
              }
            }
          },
          "description": "[ForecastRequest](/schemas/ForecastCalculationInput) "
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/APIVersion"
          }
        ],
        "tags": [
          "Demand"
        ]
      },
      "parameters": []
    },
    "/api/Demand/SeasonalityIndicesCalculation": {
      "post": {
        "summary": "SeasonalityIndicesCalculation",
        "responses": {
          "200": {
            "description": "OK\n\n[SeasonalityResponse](/schemas/SeasonalityIndicesCalculationOutput)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SeasonalityIndicesCalculationOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. (Wrong or missing parameters supplied)"
          },
          "401": {
            "description": "Unauthorized. (Wrong token supplied)"
          }
        },
        "operationId": "post-Demand-SeasonalityIndicesCalculation",
        "description": "Seasonality Indices Calculation by Product/Market",
        "security": [
          {
            "APIKey": []
          },
          {
            "OAUTH2": [
              "SO99WebApiDemandRead"
            ]
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SeasonalityIndicesCalculationInput"
              }
            }
          },
          "description": "[SeasonalityRequest](/schemas/SeasonalityIndicesCalculationInput) "
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/APIVersion"
          }
        ],
        "tags": [
          "Demand"
        ]
      },
      "parameters": []
    },
    "/api/Promotions/ForecastUpliftEventGet": {
      "post": {
        "tags": [
          "Promotions"
        ],
        "summary": "Get Promotions Forecast Uplift Event.",
        "description": "This call may take several minutes to process",
        "parameters": [
          {
            "$ref": "#/components/parameters/APIVersion"
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ForecastUpliftInput"
                },
                "description": "",
                "nullable": false
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ForecastUpliftInput"
                },
                "description": "",
                "nullable": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Response OK.",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ForecastUpliftEvent"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ForecastUpliftEvent"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ForecastUpliftEvent"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. (Wrong or missing parameters supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. (Wrong token supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKey": []
          },
          {
            "OAUTH2": [
              "SO99WebApiDemandRead"
            ]
          }
        ],
        "operationId": "post-PromotionsForecastUpliftEventGet"
      }
    },
    "/api/Promotions/ForecastUpliftGet": {
      "post": {
        "tags": [
          "Promotions"
        ],
        "summary": "Get Promotions Forecast Uplift.",
        "description": "This call may take several minutes to process",
        "parameters": [
          {
            "$ref": "#/components/parameters/APIVersion"
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ForecastUpliftInput"
                },
                "description": "",
                "nullable": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Response OK.",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ForecastUplift"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ForecastUplift"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ForecastUplift"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. (Wrong or missing parameters supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. (Wrong token supplied)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKey": []
          },
          {
            "OAUTH2": [
              "SO99WebApiDemandRead"
            ]
          }
        ],
        "operationId": "post-PromotionsForecastUpliftGet"
      }
    },
    "/api/STS/Point": {
      "post": {
        "summary": "Calculate STS Single Point for a SKU-Location",
        "responses": {
          "200": {
            "description": "OK\n\nSee [STS Point](/schemas/STSPoint)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/STSPoint"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. (Wrong or missing parameters supplied)"
          },
          "401": {
            "description": "Unauthorized. (Wrong token supplied)"
          }
        },
        "operationId": "post-STS-Point",
        "tags": [
          "Fulfilment"
        ],
        "description": "For each item/location there is a precise relationship between Stock and Service which is called STS curve.\n\n![STS Curve](./images/STSPicture.png \"STS Curve\")\n\nA single point of the STS curve can be calculated using a set of [STS Point Input](/schemas/STSPointInput) parameters describing an item/location and a set of constraints regarding the service level and the stock.\n\nThis point is uniquely identified by one of the input parameters, \nwhich can be either:  \n\n- the Target Service level [%], if the Control Type is 0 or 1\nor \n- the Fixed Stock Value [Days], if the Control Type is 2 \nor \n- the Fixed Stock Value [Units], if the Control Type is 3.\n\nThe result in this case will be a particular [STS Point](/schemas/STSPointInput) of the Curve, that describes a Target Service Level [%] and its related Average Stock [Days], from wich derive several Resupply Parameters.\n",
        "security": [
          {
            "APIKey": []
          },
          {
            "OAUTH2": [
              "SO99WebApiFulfilmentRead"
            ]
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/STSPointInput"
              }
            }
          },
          "description": "See [STS Point Input](/schemas/STSPointInput) "
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/APIVersion"
          }
        ]
      },
      "parameters": []
    },
    "/api/STS/PointArray": {
      "post": {
        "summary": "Calculate STS Points for an Array of SKU-Locations",
        "responses": {
          "200": {
            "description": "OK\n\nArray of [STS Point](/schemas/STSPoint):\none for each item-location provided as [STS Point Input](/schemas/STSPointInput)  ",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/STSPoint"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. (Wrong or missing parameters supplied)"
          },
          "401": {
            "description": "Unauthorized. (Wrong token supplied)"
          }
        },
        "operationId": "post-STS-PointArray",
        "tags": [
          "Fulfilment"
        ],
        "description": "This is the equivalent function to [Get STS Single Point for a SKU-Location](/operations/post-STS-Point) but allows to provide an array of [STS Point Input](/schemas/STSPointInput) and retrieve an array of [STS Point](/schemas/STSPoint).",
        "security": [
          {
            "APIKey": []
          },
          {
            "OAUTH2": [
              "SO99WebApiFulfilmentRead"
            ]
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/STSPointInput"
                }
              }
            }
          },
          "description": "Array of [STS Point Input](/schemas/STSPointInput) "
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/APIVersion"
          }
        ]
      },
      "parameters": []
    },
    "/api/STS/Curve": {
      "post": {
        "summary": "Calculate Full STS Curve for a SKU-Location",
        "responses": {
          "200": {
            "description": "OK\n\nArray of [STS Point](/schemas/STSPoint), belonging to the same SKU-Location from the Minimum Target Service to the Maximum Target Service, one for each Step",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/STSPoint"
                  }
                },
                "examples": {
                  "STS Curve sample": {
                    "value": [
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 1,
                        "TARGAVSTK": 0.009419362,
                        "SSTOCKTARG": -7.1945763,
                        "REORDLEV": -0.19457626,
                        "ORDUPTOLEV": 0.80542374
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 3,
                        "TARGAVSTK": 0.028547024,
                        "SSTOCKTARG": -5.7039695,
                        "REORDLEV": 1.2960305,
                        "ORDUPTOLEV": 2.2960305
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 5,
                        "TARGAVSTK": 0.0480733,
                        "SSTOCKTARG": -4.3736677,
                        "REORDLEV": 2.6263323,
                        "ORDUPTOLEV": 3.6263323
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 7,
                        "TARGAVSTK": 0.06801498,
                        "SSTOCKTARG": -3.2036552,
                        "REORDLEV": 3.7963448,
                        "ORDUPTOLEV": 4.7963448
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 9,
                        "TARGAVSTK": 0.08839021,
                        "SSTOCKTARG": -2.1939135,
                        "REORDLEV": 4.8060865,
                        "ORDUPTOLEV": 5.8060865
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 11,
                        "TARGAVSTK": 0.10921817,
                        "SSTOCKTARG": -1.3444223,
                        "REORDLEV": 5.6555777,
                        "ORDUPTOLEV": 6.6555777
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 13,
                        "TARGAVSTK": 0.13051963,
                        "SSTOCKTARG": -0.65516233,
                        "REORDLEV": 6.3448377,
                        "ORDUPTOLEV": 7.3448377
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 15,
                        "TARGAVSTK": 0.15231647,
                        "SSTOCKTARG": -0.12611103,
                        "REORDLEV": 6.873889,
                        "ORDUPTOLEV": 7.873889
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 17,
                        "TARGAVSTK": 0.17463244,
                        "SSTOCKTARG": 0.24275494,
                        "REORDLEV": 7.242755,
                        "ORDUPTOLEV": 8.242755
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 19,
                        "TARGAVSTK": 0.19749263,
                        "SSTOCKTARG": 0.4514618,
                        "REORDLEV": 7.451462,
                        "ORDUPTOLEV": 8.451462
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 21,
                        "TARGAVSTK": 0.22092444,
                        "SSTOCKTARG": 0.52003574,
                        "REORDLEV": 7.5200357,
                        "ORDUPTOLEV": 8.520036
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 23,
                        "TARGAVSTK": 0.24495712,
                        "SSTOCKTARG": 0.56850624,
                        "REORDLEV": 7.5685062,
                        "ORDUPTOLEV": 8.568506
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 25,
                        "TARGAVSTK": 0.26962236,
                        "SSTOCKTARG": 0.6169052,
                        "REORDLEV": 7.616905,
                        "ORDUPTOLEV": 8.616905
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 27,
                        "TARGAVSTK": 0.29495424,
                        "SSTOCKTARG": 0.66526604,
                        "REORDLEV": 7.665266,
                        "ORDUPTOLEV": 8.665266
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 29,
                        "TARGAVSTK": 0.32098982,
                        "SSTOCKTARG": 0.7136278,
                        "REORDLEV": 7.713628,
                        "ORDUPTOLEV": 8.713628
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 31,
                        "TARGAVSTK": 0.3477695,
                        "SSTOCKTARG": 0.7620287,
                        "REORDLEV": 7.7620287,
                        "ORDUPTOLEV": 8.762029
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 33,
                        "TARGAVSTK": 0.37533692,
                        "SSTOCKTARG": 0.81051254,
                        "REORDLEV": 7.8105125,
                        "ORDUPTOLEV": 8.810513
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 35,
                        "TARGAVSTK": 0.40373978,
                        "SSTOCKTARG": 0.85912895,
                        "REORDLEV": 7.859129,
                        "ORDUPTOLEV": 8.859129
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 37,
                        "TARGAVSTK": 0.43303037,
                        "SSTOCKTARG": 0.9079275,
                        "REORDLEV": 7.9079275,
                        "ORDUPTOLEV": 8.9079275
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 39,
                        "TARGAVSTK": 0.46326596,
                        "SSTOCKTARG": 0.9569683,
                        "REORDLEV": 7.9569683,
                        "ORDUPTOLEV": 8.956968
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 41,
                        "TARGAVSTK": 0.4945096,
                        "SSTOCKTARG": 1.0063124,
                        "REORDLEV": 8.006312,
                        "ORDUPTOLEV": 9.006312
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 43,
                        "TARGAVSTK": 0.5268309,
                        "SSTOCKTARG": 1.0560293,
                        "REORDLEV": 8.056029,
                        "ORDUPTOLEV": 9.056029
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 45,
                        "TARGAVSTK": 0.56030667,
                        "SSTOCKTARG": 1.1061974,
                        "REORDLEV": 8.106197,
                        "ORDUPTOLEV": 9.106197
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 47,
                        "TARGAVSTK": 0.5950227,
                        "SSTOCKTARG": 1.1569014,
                        "REORDLEV": 8.156901,
                        "ORDUPTOLEV": 9.156901
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 49,
                        "TARGAVSTK": 0.63107413,
                        "SSTOCKTARG": 1.2082367,
                        "REORDLEV": 8.208237,
                        "ORDUPTOLEV": 9.208237
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 51,
                        "TARGAVSTK": 0.6685681,
                        "SSTOCKTARG": 1.2603102,
                        "REORDLEV": 8.26031,
                        "ORDUPTOLEV": 9.26031
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 53,
                        "TARGAVSTK": 0.7076247,
                        "SSTOCKTARG": 1.3132429,
                        "REORDLEV": 8.313243,
                        "ORDUPTOLEV": 9.313243
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 55,
                        "TARGAVSTK": 0.74838,
                        "SSTOCKTARG": 1.3671694,
                        "REORDLEV": 8.367169,
                        "ORDUPTOLEV": 9.367169
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 57,
                        "TARGAVSTK": 0.7909883,
                        "SSTOCKTARG": 1.422245,
                        "REORDLEV": 8.422245,
                        "ORDUPTOLEV": 9.422245
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 59,
                        "TARGAVSTK": 0.8356264,
                        "SSTOCKTARG": 1.4786453,
                        "REORDLEV": 8.478645,
                        "ORDUPTOLEV": 9.478645
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 61,
                        "TARGAVSTK": 0.88249743,
                        "SSTOCKTARG": 1.5365753,
                        "REORDLEV": 8.536575,
                        "ORDUPTOLEV": 9.536575
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 63,
                        "TARGAVSTK": 0.93183637,
                        "SSTOCKTARG": 1.5962696,
                        "REORDLEV": 8.59627,
                        "ORDUPTOLEV": 9.59627
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 65,
                        "TARGAVSTK": 0.9839176,
                        "SSTOCKTARG": 1.658001,
                        "REORDLEV": 8.658001,
                        "ORDUPTOLEV": 9.658001
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 67,
                        "TARGAVSTK": 1.0390644,
                        "SSTOCKTARG": 1.7220945,
                        "REORDLEV": 8.722095,
                        "ORDUPTOLEV": 9.722095
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 69,
                        "TARGAVSTK": 1.09766,
                        "SSTOCKTARG": 1.7889318,
                        "REORDLEV": 8.788932,
                        "ORDUPTOLEV": 9.788932
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 71,
                        "TARGAVSTK": 1.1601645,
                        "SSTOCKTARG": 1.8589745,
                        "REORDLEV": 8.858974,
                        "ORDUPTOLEV": 9.858974
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 73,
                        "TARGAVSTK": 1.2271377,
                        "SSTOCKTARG": 1.9327822,
                        "REORDLEV": 8.932782,
                        "ORDUPTOLEV": 9.932782
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 75,
                        "TARGAVSTK": 1.2992673,
                        "SSTOCKTARG": 2.0110407,
                        "REORDLEV": 9.011041,
                        "ORDUPTOLEV": 10.011041
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 77,
                        "TARGAVSTK": 1.3774143,
                        "SSTOCKTARG": 2.094614,
                        "REORDLEV": 9.094614,
                        "ORDUPTOLEV": 10.094614
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 79,
                        "TARGAVSTK": 1.4626755,
                        "SSTOCKTARG": 2.184596,
                        "REORDLEV": 9.184596,
                        "ORDUPTOLEV": 10.184596
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 81,
                        "TARGAVSTK": 1.5564759,
                        "SSTOCKTARG": 2.2824135,
                        "REORDLEV": 9.2824135,
                        "ORDUPTOLEV": 10.2824135
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 83,
                        "TARGAVSTK": 1.660719,
                        "SSTOCKTARG": 2.3899698,
                        "REORDLEV": 9.38997,
                        "ORDUPTOLEV": 10.38997
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 85,
                        "TARGAVSTK": 1.7780252,
                        "SSTOCKTARG": 2.5098858,
                        "REORDLEV": 9.509886,
                        "ORDUPTOLEV": 10.509886
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 87,
                        "TARGAVSTK": 1.9121424,
                        "SSTOCKTARG": 2.6459074,
                        "REORDLEV": 9.645907,
                        "ORDUPTOLEV": 10.645907
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 89,
                        "TARGAVSTK": 2.0687091,
                        "SSTOCKTARG": 2.8036747,
                        "REORDLEV": 9.803675,
                        "ORDUPTOLEV": 10.803675
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 91,
                        "TARGAVSTK": 2.2567828,
                        "SSTOCKTARG": 2.9922447,
                        "REORDLEV": 9.992245,
                        "ORDUPTOLEV": 10.992245
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 93,
                        "TARGAVSTK": 2.4923203,
                        "SSTOCKTARG": 3.2275743,
                        "REORDLEV": 10.227574,
                        "ORDUPTOLEV": 11.227574
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 95,
                        "TARGAVSTK": 2.8076696,
                        "SSTOCKTARG": 3.5420122,
                        "REORDLEV": 10.542012,
                        "ORDUPTOLEV": 11.542012
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 97,
                        "TARGAVSTK": 3.2864285,
                        "SSTOCKTARG": 4.0191545,
                        "REORDLEV": 11.019155,
                        "ORDUPTOLEV": 12.019155
                      },
                      {
                        "ITEM": "MYITEM",
                        "LOCATION": "CENTRAL",
                        "TARGSERVICE": 99,
                        "TARGAVSTK": 4.3160734,
                        "SSTOCKTARG": 5.04648,
                        "REORDLEV": 12.04648,
                        "ORDUPTOLEV": 13.04648
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. (Wrong or missing parameters supplied)"
          },
          "401": {
            "description": "Unauthorized. (Wrong token supplied)"
          }
        },
        "operationId": "post-STS-Curve",
        "tags": [
          "Fulfilment"
        ],
        "description": "For each item/location there is a precise relationship between Stock and Service which is called STS curve.\n\n![STS Curve](./images/STSPicture.png \"STS Curve\")\n\nThe full STS curve can be calculated using a limited set of [STS Curve Input](/schemas/STSCurveInput) parameters for an item/location and is described by a range of [STS Point] (/schemas/STSPoint). Each one describes a Target Service Level [%] and its related Average Stock [Days], from wich derive several Resupply Parameters.\n\nThis range can be specified as an additional Input Parameter.\n\nThe curve can be drawn\n- from a Minimum Service Level (min.value allowed = 0.0%) \n- to a Maximum Service Level (max.value allowed=99.9%)\n- for each Step \n“connecting” a series of points which are calculated “exactly” using the STS calculation formulae. \n",
        "security": [
          {
            "APIKey": []
          },
          {
            "OAUTH2": [
              "SO99WebApiFulfilmentRead"
            ]
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/STSCurveInput"
              }
            }
          },
          "description": "See [STS Curve Input](/schemas/STSCurveInput) "
        },
        "parameters": [
          {
            "schema": {
              "type": "number",
              "minimum": 0,
              "default": 0,
              "maximum": 99.9,
              "example": 10
            },
            "in": "query",
            "name": "MINTARGSERVICE",
            "description": "Minimum Service Level"
          },
          {
            "schema": {
              "type": "number",
              "maximum": 99.9,
              "minimum": 0,
              "default": 99.9,
              "example": 99.9
            },
            "in": "query",
            "name": "MAXTARGSERVICE",
            "description": "Maximum Service Level"
          },
          {
            "schema": {
              "type": "number",
              "default": 1,
              "minimum": 0.1,
              "maximum": 10,
              "example": 1
            },
            "in": "query",
            "name": "STEP",
            "description": "Step between Service Level"
          },
          {
            "$ref": "#/components/parameters/APIVersion"
          }
        ]
      },
      "parameters": []
    },
    "/api/SMO/OptimizeByObjectiveFunction": {
      "post": {
        "summary": "Stock mix optimization by a given function",
        "operationId": "post-api-SMO-OptimizeByObjectiveFunction",
        "tags": [
          "Fulfilment"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "",
                  "type": "object",
                  "x-examples": {
                    "example-1": {
                      "optimizedItemLocations": [
                        {
                          "item": "FA000",
                          "location": "CW",
                          "targservice": 90.30068,
                          "targavstk": 0.35960165,
                          "sstocktarg": 0.8006556,
                          "reordlev": 0.8006556,
                          "orduptolev": 0.8550281
                        }
                      ],
                      "globalTargetServiceLevel": 0.9,
                      "optimizedCurve": [
                        0,
                        0.0028493202
                      ],
                      "homogeneousCurve": [
                        0,
                        0.0028361117
                      ]
                    }
                  },
                  "properties": {
                    "OptimizedItemLocations": {
                      "type": "array",
                      "uniqueItems": true,
                      "minItems": 1,
                      "description": "An array of stock levels for each item/location combination included in the optimization",
                      "items": {
                        "$ref": "#/components/schemas/SMOOptimizedSKULocation"
                      }
                    },
                    "GlobalTargetServiceLevel": {
                      "type": "number",
                      "description": "The global service level reached after the optimization. It could be different from the input one due to some constraints."
                    },
                    "OptimizedCurve": {
                      "type": "array",
                      "description": "When the optimization minimises the cost then the curve will be a series of values expressing the Target Average Stock expressed in cost for a range of different Service Levels. \nIf the optimization is maximising the margin then the curve will be a series of values expressing the net margin per day.",
                      "items": {
                        "type": "number"
                      }
                    },
                    "HomogeneousCurve": {
                      "type": "array",
                      "description": "It represents a stock-to-service curve where the stock mix is obtained by giving the same individual service level for all the item/location combinations. \nIt can be used as a reference for comparison with the optimized stock-to-service curve.",
                      "items": {
                        "type": "number"
                      }
                    }
                  },
                  "required": [
                    "OptimizedItemLocations",
                    "GlobalTargetServiceLevel",
                    "OptimizedCurve",
                    "HomogeneousCurve"
                  ]
                }
              }
            }
          }
        },
        "description": "The Stock Mix Optimization (SMO) is an optimization process which, given a certain population of item-warehouse combinations for which the system is required to guarantee a certain global service level, computes the “optimal value” of the Service Level Target that should be assigned to each individual item / warehouse belonging to that population, in order to achieve such global service level, while, at the same time, optimizing a specific objective function, which can be chosen by the user.\n\nThe following two optimization processes are available:\n- Minimization of the total inventory cost\n- Maximization of the total net margin\n",
        "security": [
          {
            "APIKey": []
          },
          {
            "OAUTH2": [
              "SO99WebApiFulfilmentRead"
            ]
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SMOInput"
              }
            }
          },
          "description": "See [SMO Input](/schemas/SMOInput) "
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/APIVersion"
          }
        ]
      }
    },
    "/api/Batch/Status": {
      "parameters": [],
      "get": {
        "summary": "Batch Status",
        "operationId": "get-api-Batch-Status",
        "responses": {
          "200": {
            "$ref": "#/components/responses/BatchStatus"
          },
          "400": {
            "description": "Bad Request. (Wrong or missing parameters supplied)"
          },
          "401": {
            "description": "Unauthorized. (Wrong token supplied)"
          }
        },
        "description": "Batch status",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "header",
            "name": "Accept-Version",
            "description": "API Version to be used. If missing, it will use the latest one."
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "profileName",
            "description": "Name of the lot profile to consult its status.",
            "required": true
          }
        ],
        "security": [
          {
            "APIKey": []
          },
          {
            "OAUTH2": [
              "SO99WebApiSystemRead"
            ]
          }
        ],
        "tags": [
          "batch",
          "status"
        ]
      }
    },
    "/api/Batch/Log": {
      "parameters": [],
      "get": {
        "summary": "Batch Log",
        "operationId": "get-api-Batch-Log",
        "responses": {
          "200": {
            "$ref": "#/components/responses/FileDownload"
          },
          "400": {
            "description": "Bad Request. (Wrong or missing parameters supplied)"
          },
          "401": {
            "description": "Unauthorized. (Wrong token supplied)"
          }
        },
        "description": "Batch log",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "header",
            "name": "Accept-Version",
            "description": "API Version to be used. If missing, it will use the latest one."
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "profileName",
            "description": "Name of the lot profile to get its log.",
            "required": true
          }
        ],
        "security": [
          {
            "APIKey": []
          },
          {
            "OAUTH2": [
              "SO99WebApiSystemRead"
            ]
          }
        ],
        "tags": [
          "batch",
          "log"
        ]
      }
    },
    "/api/Import/Status": {
      "parameters": [],
      "get": {
        "summary": "Import Status",
        "operationId": "get-api-Import-Status",
        "responses": {
          "200": {
            "$ref": "#/components/responses/ImportStatus"
          },
          "400": {
            "description": "Bad Request. (Wrong or missing parameters supplied)"
          },
          "401": {
            "description": "Unauthorized. (Wrong token supplied)"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "description": "Get the summary of the result/status of the file import.",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "header",
            "name": "Accept-Version",
            "description": "API Version to be used. If missing, it will use the latest one."
          },
          {
            "schema": {
              "type": "array"
            },
            "in": "query",
            "name": "jobIds",
            "description": "Job Id´s",
            "required": true
          }
        ],
        "security": [
          {
            "APIKey": []
          },
          {
            "OAUTH2": [
              "SO99WebApiSystemRead"
            ]
          }
        ],
        "tags": [
          "Import"
        ]
      }
    },
    "/api/Import/LaunchMany": {
      "parameters": [],
      "post": {
        "summary": "Launch many Import jobs",
        "operationId": "post-api-Import-LaunchMany",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. (Wrong or missing parameters supplied)"
          },
          "401": {
            "description": "Unauthorized. (Wrong token supplied)"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "description": "Import launch many",
        "security": [
          {
            "APIKey": []
          },
          {
            "OAUTH2": [
              "SO99WebApiSystemWrite"
            ]
          }
        ],
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "Accept-Version",
            "description": "API Version to be used. If missing, it will use the latest one."
          }
        ],
        "tags": [
          "Import",
          "launchmany"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "description": "",
                "type": "array",
                "x-examples": {
                  "example-1": {
                    "FileTag": "string",
                    "Profile": "string",
                    "FileName": "string"
                  }
                },
                "items": {
                  "type": "object",
                  "properties": {
                    "TableName": {
                      "type": "string"
                    },
                    "Profile": {
                      "type": "string"
                    },
                    "FileName": {
                      "type": "string"
                    }
                  }
                }
              },
              "examples": {
                "example-1": {
                  "value": {}
                }
              }
            },
            "application/xml": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          },
          "description": "Import launch"
        }
      }
    }
  },
  "components": {
    "schemas": {
      "ForecastUpliftInput": {
        "type": "object",
        "properties": {
          "promotype": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "promoid": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "item": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "area": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "yeaR_OUT": {
            "type": "integer",
            "description": "",
            "format": "int32"
          },
          "montH_OUT": {
            "type": "integer",
            "description": "",
            "format": "int32"
          },
          "daY_OUT": {
            "type": "integer",
            "description": "",
            "format": "int32"
          },
          "yeartO_OUT": {
            "type": "integer",
            "description": "",
            "format": "int32"
          },
          "monthtO_OUT": {
            "type": "integer",
            "description": "",
            "format": "int32"
          },
          "daytO_OUT": {
            "type": "integer",
            "description": "",
            "format": "int32"
          },
          "yeaR_IN": {
            "type": "integer",
            "description": "",
            "format": "int32"
          },
          "montH_IN": {
            "type": "integer",
            "description": "",
            "format": "int32"
          },
          "daY_IN": {
            "type": "integer",
            "description": "",
            "format": "int32"
          },
          "yeartO_IN": {
            "type": "integer",
            "description": "",
            "format": "int32"
          },
          "monthtO_IN": {
            "type": "integer",
            "description": "",
            "format": "int32"
          },
          "daytO_IN": {
            "type": "integer",
            "description": "",
            "format": "int32"
          },
          "areawgt": {
            "type": "number",
            "description": "",
            "format": "float"
          },
          "uomfactor": {
            "type": "number",
            "description": "",
            "format": "float"
          },
          "promoattR1": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "promoattR2": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "promoattR3": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "promoattR4": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "promoattR5": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "promoattR6": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "promoattR7": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "promoattR8": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "promoattR9": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "promoattR10": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "promoattR11": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "promoattR12": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "promoattR13": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "promoattR14": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "promoattR15": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "promoattR16": {
            "type": "string",
            "description": "",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "ForecastUpliftInput Model",
        "x-tags": [
          "Promotions"
        ]
      },
      "ForecastUplift": {
        "type": "object",
        "properties": {
          "promoType": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "promoId": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "item": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "area": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "segment": {
            "type": "integer",
            "description": "",
            "format": "int32"
          },
          "year": {
            "type": "integer",
            "description": "",
            "format": "int32"
          },
          "month": {
            "type": "integer",
            "description": "",
            "format": "int32"
          },
          "baseline": {
            "type": "number",
            "description": "",
            "format": "float"
          },
          "uplift": {
            "type": "number",
            "description": "",
            "format": "float"
          },
          "promoQty": {
            "type": "number",
            "description": "",
            "format": "float"
          },
          "dateStart": {
            "type": "string",
            "description": "",
            "format": "date-time"
          },
          "dateEnd": {
            "type": "string",
            "description": "",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "Forecast Uplift Model",
        "x-tags": [
          "Promotions"
        ]
      },
      "ForecastUpliftEvent": {
        "type": "object",
        "properties": {
          "promotype": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "promoId": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "item": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "area": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "yearOut": {
            "type": "integer",
            "description": "",
            "format": "int32"
          },
          "monthOut": {
            "type": "integer",
            "description": "",
            "format": "int32"
          },
          "dayOut": {
            "type": "integer",
            "description": "",
            "format": "int32"
          },
          "yearToOut": {
            "type": "integer",
            "description": "",
            "format": "int32"
          },
          "monthToOut": {
            "type": "integer",
            "description": "",
            "format": "int32"
          },
          "dayToOut": {
            "type": "integer",
            "description": "",
            "format": "int32"
          },
          "yearIn": {
            "type": "integer",
            "description": "",
            "format": "int32"
          },
          "monthIn": {
            "type": "integer",
            "description": "",
            "format": "int32"
          },
          "dayIn": {
            "type": "integer",
            "description": "",
            "format": "int32"
          },
          "yearToIn": {
            "type": "integer",
            "description": "",
            "format": "int32"
          },
          "monthToIn": {
            "type": "integer",
            "description": "",
            "format": "int32"
          },
          "dayToIn": {
            "type": "integer",
            "description": "",
            "format": "int32"
          },
          "areaWgt": {
            "type": "number",
            "description": "",
            "format": "float"
          },
          "uomFactor": {
            "type": "number",
            "description": "",
            "format": "float"
          },
          "promoAttr1": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "promoAttr2": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "promoAttr3": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "promoAttr4": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "promoAttr5": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "promoAttr6": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "promoAttr7": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "promoAttr8": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "promoAttr9": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "promoAttr10": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "promoAttr11": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "promoAttr12": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "promoAttr13": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "promoAttr14": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "promoAttr15": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "promoAttr16": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "event": {
            "type": "string",
            "description": "",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "ForecastUpliftInput Model",
        "x-tags": [
          "Promotions"
        ]
      },
      "STSPointInput": {
        "title": "STS Point Input",
        "x-stoplight": {
          "id": "8u4t3tilliycj"
        },
        "type": "object",
        "description": "A single point of the STS curve can be calculated using a set of input parameters describing an item/location and a set of constraints regarding the service level and the stock.\n\n#### Control Type (CTRL_TYPE)  Values  \n\nValue | Description | Details\n------ | ------ | ----\n0 | Optimised | TARGSERVICE is required and all FIXED_STK fields are ignored\n1 | Fixed Service Level | TARGSERVICE is required and all FIXED_STK fields are ignored. FLAG_MINSTK, FLAG_MAXSTK and FLAG_MAXPHYSSTK are also ignored\n2 | Fixed Stock in Days | FIXED_STK and FIXED_STKVAL are required, FIXED_STKQ and TARGSERVICE are ignored \n3 | Fixed Stock in Units |  FIXED_STK and FIXED_STKQ are required, FIXED_STKVAL and TARGSERVICE are ignored \n\n#### Stock Level to Fix (FIXED_STK) Values\n\nUsed when CTRL_TYPE is 2 or 3\n\nValue | Description | Details\n------ | ------ | ----\n0 | Ignore \n1 | Order-up-to level \n2 | Reorder level\n3 | Safety Stock\n4 | Maximum Physical stock | Only allowed when CTRL_TYPE is 3\n\n",
        "x-tags": [
          "Fulfilment"
        ],
        "properties": {
          "ITEM": {
            "type": "string",
            "description": "Item Code",
            "example": "MYITEM"
          },
          "LOCATION": {
            "type": "string",
            "description": "Location Code",
            "example": "CENTRAL"
          },
          "AVEDEMQTY": {
            "type": "number",
            "description": "Daily Average Demand [Units]",
            "minimum": 0,
            "example": 10.2
          },
          "AVEVAR": {
            "type": "number",
            "description": "Daily Demand variability",
            "minimum": 0,
            "example": 0.5
          },
          "AVEDEMLOS": {
            "type": "number",
            "description": "Daily Average Order Lines ",
            "minimum": 0,
            "example": 3.2
          },
          "AVEVARLOS": {
            "type": "number",
            "description": "Daily Order Lines Variability\n",
            "minimum": 0,
            "example": 0.3
          },
          "REVIEWPER": {
            "type": "number",
            "description": "Review Period [Days]",
            "minimum": 0,
            "example": 1
          },
          "MINLEADTIME": {
            "type": "number",
            "minimum": 0,
            "description": "Minimum Lead Time [Days]",
            "example": 7
          },
          "AVEDELAY": {
            "type": "number",
            "minimum": 0,
            "description": "Average Delay [Days]",
            "example": 1
          },
          "INCRESLOT": {
            "type": "number",
            "description": "Incremental Supply Lot [Units]",
            "minimum": 0,
            "example": 5
          },
          "MINRESLOT": {
            "type": "number",
            "minimum": 0,
            "description": "Minimum Supply Lot [Units]",
            "example": 10
          },
          "MINRESINT": {
            "type": "number",
            "minimum": 0,
            "description": "Minimum Reorder Interval [Days] ",
            "example": 1
          },
          "CTRL_TYPE": {
            "type": "integer",
            "description": "Control Type\n\n0: Optimised\n1: Fixed Service Level\n2: Fixed stock in Days\n3: Fixed stock in Units\n",
            "enum": [
              0,
              1,
              2,
              3
            ],
            "example": 0,
            "minimum": 0,
            "maximum": 3,
            "default": 0
          },
          "TARGSERVICE": {
            "type": "number",
            "description": "Target Service Level [%]\nUsed when CTRL_TYPE is 0 or 1",
            "minimum": 0,
            "maximum": 99.9,
            "example": 98.5,
            "default": 0
          },
          "FIXED_STK": {
            "type": "integer",
            "description": "Stock Level to Fix \nUsed when CTRL_TYPE is 2 or 3\n\n0: Ignore\n1: Order-up-to level\n2: Reorder level\n3: Safety Stock\n4: Maximum Physical stock (Only when CTRL_TYPE is 3)\n",
            "enum": [
              0,
              1,
              2,
              3,
              4
            ],
            "maximum": 4,
            "minimum": 0,
            "default": 0
          },
          "FIXED_STKVAL": {
            "type": "number",
            "description": "Fixed Stock Value [Days]\nUsed when CTRL_TYPE is 2",
            "default": 0
          },
          "FIXED_STKQ": {
            "type": "number",
            "description": "Fixed Stock Value [Units]\nUsed when CTRL_TYPE is 3",
            "default": 0
          },
          "FLAG_MINSTK": {
            "type": "boolean",
            "description": "Apply Minimum Safety stock constraint (Compatible con CTRL_TYPE 0)",
            "default": false
          },
          "MIN_SAFETYSTK": {
            "type": "number",
            "default": 0,
            "description": "Minimum Safety Stock [Days]"
          },
          "FLAG_MAXSTK": {
            "type": "boolean",
            "default": false,
            "description": "Apply Maximum Order-up-to-level constraint  (Compatible con CTRL_TYPE 0 or 2)"
          },
          "MAX_ORDUPTO": {
            "type": "number",
            "default": 0,
            "description": "Maximum Order-up-to-level [Days]"
          },
          "FLAG_MAXPHYSSTK": {
            "type": "boolean",
            "default": false,
            "description": "Apply Maximum Physical Stock constraint (Compatible con CTRL_TYPE 0 or 2)"
          },
          "MAX_PHYSTK": {
            "type": "number",
            "default": 0,
            "description": "Maximum Physical Stock [Units]"
          }
        },
        "required": [
          "ITEM",
          "LOCATION",
          "AVEDEMQTY",
          "AVEVAR",
          "AVEDEMLOS",
          "AVEVARLOS",
          "REVIEWPER",
          "MINLEADTIME",
          "AVEDELAY",
          "INCRESLOT",
          "MINRESLOT",
          "MINRESINT"
        ]
      },
      "STSPoint": {
        "title": "STS Point",
        "x-stoplight": {
          "id": "nwivnqkkxdr3e"
        },
        "type": "object",
        "description": "An STS Point describes one particular point of the STS Curve, described by the related Service Level and the related Stock and Resupply Parameters",
        "x-tags": [
          "Fulfilment"
        ],
        "properties": {
          "ITEM": {
            "type": "string",
            "description": "Item Code",
            "example": "MYITEM"
          },
          "LOCATION": {
            "type": "string",
            "description": "Location Code",
            "example": "CENTRAL"
          },
          "TARGSERVICE": {
            "type": "number",
            "description": "Target Service Level [%]",
            "minimum": 0,
            "maximum": 100,
            "example": 92.4
          },
          "TARGAVSTK": {
            "type": "number",
            "description": "Average Stock [Days]",
            "example": 4.2
          },
          "SSTOCKTARG": {
            "type": "number",
            "description": "Safety Stock [Days]",
            "example": 1.5
          },
          "REORDLEV": {
            "type": "number",
            "description": "Reorder level [Days]",
            "example": 2.5
          },
          "ORDUPTOLEV": {
            "type": "number",
            "description": "Order-up-to level [Days]",
            "example": 6.5
          }
        },
        "required": [
          "ITEM",
          "LOCATION",
          "TARGSERVICE",
          "TARGAVSTK",
          "SSTOCKTARG",
          "REORDLEV",
          "ORDUPTOLEV"
        ]
      },
      "DemandData": {
        "title": "DemandData",
        "x-stoplight": {
          "id": "nwivnqkkxdr3e"
        },
        "type": "object",
        "description": "Demand Data represents the demand time series for a product/market combination.",
        "x-tags": [
          "Fulfilment"
        ],
        "x-examples": {
          "example-1": {
            "Date": "2023-06-10",
            "Quantity": 20,
            "OrderLines": 5
          }
        },
        "properties": {
          "Date": {
            "type": "string",
            "description": "Date",
            "example": "2023-06-10",
            "format": "date"
          },
          "Quantity": {
            "type": "number",
            "description": "Quantity",
            "example": 20,
            "minimum": 0,
            "format": "float"
          },
          "OrderLines": {
            "type": "number",
            "description": "Order Lines",
            "example": 5,
            "minimum": 0,
            "format": "float"
          }
        },
        "required": [
          "Date",
          "Quantity",
          "OrderLines"
        ]
      },
      "ForecastData": {
        "title": "ForecastData",
        "x-stoplight": {
          "id": "nwivnqkkxdr3e"
        },
        "type": "object",
        "description": "Forecast Data represents the forecast time series for a product/market combination.",
        "x-tags": [
          "Fulfilment"
        ],
        "x-examples": {
          "example-1": {
            "Date": "2023-06-10",
            "Quantity": 10,
            "OrderLines": 2
          }
        },
        "properties": {
          "Date": {
            "type": "string",
            "description": "Date",
            "format": "date",
            "example": "2023-06-10"
          },
          "Quantity": {
            "type": "number",
            "description": "Quantity",
            "example": 10,
            "minimum": 0,
            "format": "float"
          },
          "OrderLines": {
            "type": "number",
            "description": "Order Lines",
            "example": 2,
            "minimum": 0,
            "format": "float"
          }
        },
        "required": [
          "Date",
          "Quantity",
          "OrderLines"
        ]
      },
      "SeasonalityIndicesData": {
        "title": "Seasonality Indices by month",
        "x-stoplight": {
          "id": "nwivnqkkxdr3e"
        },
        "type": "object",
        "description": "Seasonality Indices month by month",
        "x-tags": [
          "Fulfilment"
        ],
        "x-examples": {
          "example-1": {
            "Date": "2023-06-10",
            "SeasIndex": 1
          }
        },
        "properties": {
          "Date": {
            "type": "string",
            "description": "Date",
            "format": "date",
            "example": "2023-06-10"
          },
          "SeasIndex": {
            "type": "number",
            "example": 1,
            "minimum": 0.01,
            "format": "float",
            "maximum": 12,
            "description": "Seasonality Index"
          }
        },
        "required": [
          "Date",
          "SeasIndex"
        ]
      },
      "CoefficientsData": {
        "title": "CoefficientsData",
        "x-stoplight": {
          "id": "nwivnqkkxdr3e"
        },
        "type": "object",
        "description": "Coefficients Data represents the coefficients time series for a product/market combination.",
        "x-tags": [
          "Fulfilment"
        ],
        "x-examples": {
          "example-1": {
            "Date": "2023-06-10",
            "Coefficient": 1.3
          }
        },
        "properties": {
          "Date": {
            "type": "string",
            "description": "Date",
            "format": "date",
            "example": "2023-06-10"
          },
          "Coefficient": {
            "type": "number",
            "example": 1.3,
            "description": "Coefficient",
            "format": "float",
            "minimum": 0
          }
        },
        "required": [
          "Date",
          "Coefficient"
        ]
      },
      "ProductMarketDemandData": {
        "title": "ProductMarketDemandData",
        "x-stoplight": {
          "id": "nwivnqkkxdr3e"
        },
        "type": "object",
        "description": "A Product/Market Demand Data represents the demand for a product/market combination.",
        "x-tags": [
          "Forecast"
        ],
        "x-examples": {
          "example-1": {
            "Product": "MYPRODUCT",
            "Market": "CENTRAL",
            "DemandData": [
              {
                "Date": "2018-06-10",
                "Quantity": 20,
                "OrderLines": 5
              }
            ],
            "CoefficientsData": [
              {
                "Date": "2018-06-10",
                "Coefficient": 1.3
              }
            ]
          }
        },
        "properties": {
          "Product": {
            "type": "string",
            "description": "Product Code",
            "example": "MYPRODUCT"
          },
          "Market": {
            "type": "string",
            "description": "Market Code",
            "example": "CENTRAL"
          },
          "DemandData": {
            "type": "array",
            "description": "Demand Data time series",
            "minItems": 1,
            "uniqueItems": true,
            "items": {
              "$ref": "#/components/schemas/DemandData"
            }
          },
          "CoefficientsData": {
            "type": "array",
            "description": "Coefficients Data time series",
            "minItems": 1,
            "uniqueItems": true,
            "items": {
              "$ref": "#/components/schemas/CoefficientsData"
            }
          }
        },
        "required": [
          "Product",
          "Market",
          "DemandData",
          "CoefficientsData"
        ]
      },
      "ProductMarketForecastData": {
        "title": "ProductMarketForecastData",
        "x-stoplight": {
          "id": "nwivnqkkxdr3e"
        },
        "type": "object",
        "description": "A Product/Market Forecast Data represents the forecast for a product/market combination.",
        "x-tags": [
          "Forecast"
        ],
        "x-examples": {
          "example-1": {
            "Product": "MYPRODUCT",
            "Market": "CENTRAL",
            "Forecast": [
              {
                "Date": "2018-06-10",
                "Quantity": 10,
                "OrderLines": 2
              }
            ]
          }
        },
        "properties": {
          "Product": {
            "type": "string",
            "description": "Product Code",
            "example": "MYPRODUCT"
          },
          "Market": {
            "type": "string",
            "description": "Market Code",
            "example": "CENTRAL"
          },
          "ForecastData": {
            "type": "array",
            "uniqueItems": true,
            "minItems": 1,
            "description": "Forecast Data time series",
            "items": {
              "$ref": "#/components/schemas/ForecastData"
            }
          }
        },
        "required": [
          "Product",
          "Market",
          "ForecastData"
        ]
      },
      "ProductMarketSeasonalityData": {
        "title": "ProductMarketSeasonalityData",
        "x-stoplight": {
          "id": "nwivnqkkxdr3e"
        },
        "type": "object",
        "description": "Seasonality indices for each product/market combination",
        "x-tags": [
          "Forecast"
        ],
        "x-examples": {
          "example-1": {
            "Product": "MYPRODUCT",
            "Market": "CENTRAL",
            "SeasCoefficients": [
              {
                "Date": "2023-06-10",
                "SeasIndex": 1
              }
            ]
          }
        },
        "properties": {
          "Product": {
            "type": "string",
            "description": "Product Code",
            "example": "MYPRODUCT"
          },
          "Market": {
            "type": "string",
            "description": "Market Code",
            "example": "CENTRAL"
          },
          "SeasCoefficients": {
            "type": "array",
            "uniqueItems": true,
            "minItems": 1,
            "description": "Seasonality Indices time series",
            "items": {
              "$ref": "#/components/schemas/SeasonalityIndicesData"
            }
          }
        },
        "required": [
          "Product",
          "Market",
          "SeasCoefficients"
        ]
      },
      "ForecastGeneralParameters": {
        "type": "object",
        "description": "General parameters for a Forecast Calculation request.\n\n#### DemandTimeSlot Values  \n\nValue | Description | Details\n------ | ------ | ----\n0 | Daily | Demand series time slot is daily\n1 | Weekly | Demand series time slot is weekly\n2 | Monthly | Demand series time slot is monthly\n\n#### FirstDayOfWeek Values\n\nValue | Description | Details\n------ | ------ | ----\n1 | Monday\n2 | Tuesday\n3 | Wednesday\n4 | Thursday\n5 | Friday\n6 | Saturday\n7 | Sunday",
        "x-examples": {
          "example-1": {
            "DemandTimeSlot": 0,
            "LastDemandDayDate": "2018-06-10",
            "NumberOfPastTimeSlotsToForecast": 730,
            "NumberOfFutureTimeSlotsToForecast": 365,
            "FirstDayOfWeek": 1
          }
        },
        "title": "General Parameters (for Forecast Calculation)",
        "properties": {
          "DemandTimeSlot": {
            "type": "integer",
            "description": "Deman Time Slot can be Daily (=0), Weekly (=1) or Monthly (=2)\n",
            "enum": [
              0,
              1,
              2
            ],
            "minimum": 0,
            "maximum": 2,
            "example": 0
          },
          "LastDemandDayDate": {
            "type": "string",
            "format": "date",
            "example": "2023-06-10"
          },
          "NumberOfPastTimeSlotsToForecast": {
            "type": "integer",
            "example": 730,
            "description": "Number of past time slots to forecast, expressed in the same time slot as the \"Demand Time Slot\" parameter"
          },
          "NumberOfFutureTimeSlotsToForecast": {
            "type": "integer",
            "example": 365,
            "minimum": 0,
            "description": "Number of future time slots to forecast, expressed in the same time slot as the \"Demand Time Slot\" parameter"
          },
          "FirstDayOfWeek": {
            "type": "integer",
            "description": "First day of week: from Monday (=1) to Sunday (=7)",
            "example": 1,
            "enum": [
              1,
              2,
              3,
              4,
              5,
              6,
              7
            ]
          }
        },
        "required": [
          "DemandTimeSlot",
          "LastDemandDayDate",
          "NumberOfPastTimeSlotsToForecast",
          "NumberOfFutureTimeSlotsToForecast",
          "FirstDayOfWeek"
        ]
      },
      "SeasonalityGeneralParameters": {
        "type": "object",
        "description": "General parameters for Seasonality Calculation request.\n ",
        "x-examples": {
          "example-1": {
            "FirstDemandDate": "2023-01-01",
            "LastDemandDayDate": "2023-10-27",
            "NumberOfInitialExcludedMonths": 0,
            "NumberOfFutureMonths": 12
          }
        },
        "title": "General Parameters (for Seasonality Calculation)",
        "properties": {
          "FirstDemandDate": {
            "type": "string",
            "format": "date",
            "example": "2023-01-01",
            "description": "First demand date"
          },
          "LastDemandDate": {
            "type": "string",
            "format": "date",
            "example": "2023-10-27",
            "description": "Last demand date"
          },
          "NumberOfInitialExcludedMonths": {
            "type": "integer",
            "example": 0,
            "description": "Number of initial months to exclude from calculation",
            "minimum": 0,
            "format": "int32"
          },
          "NumberOfFutureMonths": {
            "type": "integer",
            "example": 12,
            "minimum": 0,
            "description": "Number of future months",
            "format": "int32"
          }
        },
        "required": [
          "FirstDemandDate",
          "LastDemandDate",
          "NumberOfInitialExcludedMonths",
          "NumberOfFutureMonths"
        ]
      },
      "ForecastCalculationInput": {
        "description": "Input type for the ForecastCalulation API function. The request must include some global parameters and the complete list of product/market demand data.\n\n",
        "type": "object",
        "x-examples": {
          "example-1": {
            "ForecastGeneralParameters": {
              "DemandTimeSlot": 0,
              "LastDemandDayDate": "2023-06-10",
              "NumberOfPastTimeSlotsToForecast": 730,
              "NumberOfFutureTimeSlotsToForecast": 365,
              "FirstDayOfWeek": 1
            },
            "ProductMarketDemandData": [
              {
                "Product": "MYPRODUCT",
                "Market": "CENTRAL",
                "DemandData": [
                  {
                    "Date": "2023-06-10",
                    "Quantity": 20,
                    "OrderLines": 5
                  }
                ],
                "CoefficientsData": [
                  {
                    "Date": "2023-06-10",
                    "Coefficient": 1.3
                  }
                ]
              }
            ]
          }
        },
        "title": "ForecastCalculationInput",
        "properties": {
          "ForecastGeneralParameters": {
            "$ref": "#/components/schemas/ForecastGeneralParameters"
          },
          "ProductMarketDemandData": {
            "type": "array",
            "uniqueItems": true,
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/ProductMarketDemandData"
            }
          }
        },
        "required": [
          "ForecastGeneralParameters",
          "ProductMarketDemandData"
        ]
      },
      "SeasonalityIndicesCalculationInput": {
        "description": "Input type for the SeasonalityCalculation API function. The request must include some global parameters and the complete list of product/market demand data.\n\n",
        "type": "object",
        "x-examples": {
          "example-1": {
            "SeasonalityGeneralParameters": {
              "FirstDemandDate": "2023-01-01",
              "LastDemandDate": "2023-10-27",
              "NumberOfInitialExcludedMonths": 0,
              "NumberOfFutureMonths": 12
            },
            "ProductMarketDemandData": [
              {
                "Product": "MYPRODUCT",
                "Market": "CENTRAL",
                "DemandData": [
                  {
                    "Date": "2023-06-10",
                    "Quantity": 20,
                    "OrderLines": 5
                  }
                ],
                "CoefficientsData": [
                  {
                    "Date": "2023-06-10",
                    "Coefficient": 1.3
                  }
                ]
              }
            ]
          }
        },
        "title": "SeasonalityCalculationInput",
        "properties": {
          "SeasonalityGeneralParameters": {
            "$ref": "#/components/schemas/SeasonalityGeneralParameters"
          },
          "ProductMarketDemandData": {
            "type": "array",
            "uniqueItems": true,
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/ProductMarketDemandData"
            }
          }
        },
        "required": [
          "SeasonalityGeneralParameters",
          "ProductMarketDemandData"
        ]
      },
      "ForecastCalculationOutput": {
        "description": "Output type for the ForecastCalculation API function. The responde includes the complete list of product/market forecast data.\n\n",
        "type": "object",
        "x-examples": {
          "example-1": {
            "ProductMarketDemandData": [
              {
                "Product": "MYPRODUCT",
                "Market": "CENTRAL",
                "Forecast": [
                  {
                    "Date": "2018-03-20",
                    "Quantity": 10,
                    "OrderLines": 2
                  }
                ]
              }
            ]
          }
        },
        "title": "ForecastCalculationOutput",
        "properties": {
          "ProductMarketDemandData": {
            "type": "array",
            "uniqueItems": true,
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/ProductMarketForecastData"
            }
          }
        },
        "required": [
          "ProductMarketDemandData"
        ]
      },
      "SeasonalityIndicesCalculationOutput": {
        "description": "Output type for the SeasonalityIndicesCalculation API function. The responde includes the complete list of product/market indices data.\n\n",
        "type": "object",
        "x-examples": {
          "example-1": {
            "ProductMarketDemandData": [
              {
                "Product": "MYPRODUCT",
                "Market": "CENTRAL",
                "SeasCoefficients": [
                  {
                    "Date": "2023-06-10",
                    "SeasIndex": 1
                  }
                ]
              }
            ],
            "SeasonalityIndices": {
              "SeasIndices": [
                1,
                1,
                1,
                1,
                1,
                1,
                1,
                1,
                1,
                1,
                1,
                1
              ]
            }
          }
        },
        "title": "SeasonalityIndicesCalculationOutput",
        "properties": {
          "ProductMarketDemandData": {
            "type": "array",
            "uniqueItems": true,
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/ProductMarketSeasonalityData"
            }
          },
          "SeasonalityIndices": {
            "$ref": "#/components/schemas/SeasonalityIndices"
          }
        },
        "required": [
          "ProductMarketDemandData",
          "SeasonalityIndices"
        ]
      },
      "SeasonalityIndices": {
        "description": "Output type for the SeasonalityIndicesCalculation API function. The responde includes the complete list of product/market indices data.\n\n",
        "type": "object",
        "x-examples": {
          "example-1": {
            "SeasIndices": [
              1,
              1,
              1,
              1,
              1,
              1,
              1,
              1,
              1,
              1,
              1,
              1
            ]
          }
        },
        "title": "SeasonalityIndicesCalculationOutput",
        "properties": {
          "SeasIndices": {
            "type": "array",
            "minItems": 12,
            "maxItems": 12,
            "description": "Seasonality Indices",
            "items": {
              "type": "number",
              "format": "double",
              "minimum": 0.01,
              "maximum": 12,
              "example": 1
            }
          }
        },
        "required": [
          "SeasIndices"
        ]
      },
      "STSCurveInput": {
        "title": "STS Curve Input",
        "x-stoplight": {
          "id": "8u4t3tilliycj"
        },
        "type": "object",
        "description": "The full STS curve can be calculated using a limited set of input parameters describing an item/location.",
        "x-tags": [
          "Fulfilment"
        ],
        "properties": {
          "ITEM": {
            "type": "string",
            "description": "Item Code",
            "example": "MYITEM"
          },
          "LOCATION": {
            "type": "string",
            "description": "Location Code",
            "example": "CENTRAL"
          },
          "AVEDEMQTY": {
            "type": "number",
            "description": "Daily Average Demand [Units]",
            "minimum": 0,
            "example": 10.2
          },
          "AVEVAR": {
            "type": "number",
            "description": "Daily Demand variability",
            "minimum": 0,
            "example": 0.5
          },
          "AVEDEMLOS": {
            "type": "number",
            "description": "Daily Average Order Lines ",
            "minimum": 0,
            "example": 3.2
          },
          "AVEVARLOS": {
            "type": "number",
            "description": "Daily Order Lines Variability\n",
            "minimum": 0,
            "example": 0.3
          },
          "REVIEWPER": {
            "type": "number",
            "description": "Review Period [Days]",
            "minimum": 0,
            "example": 1
          },
          "MINLEADTIME": {
            "type": "number",
            "minimum": 0,
            "description": "Minimum Lead Time [Days]",
            "example": 7
          },
          "AVEDELAY": {
            "type": "number",
            "minimum": 0,
            "description": "Average Delay [Days]",
            "example": 1
          },
          "INCRESLOT": {
            "type": "number",
            "description": "Incremental Supply Lot [Units]",
            "minimum": 0,
            "example": 5
          },
          "MINRESLOT": {
            "type": "number",
            "minimum": 0,
            "description": "Minimum Supply Lot [Units]",
            "example": 10
          },
          "MINRESINT": {
            "type": "number",
            "minimum": 0,
            "description": "Minimum Reorder Interval [Days] ",
            "example": 1
          }
        },
        "required": [
          "ITEM",
          "LOCATION",
          "AVEDEMQTY",
          "AVEVAR",
          "AVEDEMLOS",
          "AVEVARLOS",
          "REVIEWPER",
          "MINLEADTIME",
          "AVEDELAY",
          "INCRESLOT",
          "MINRESLOT",
          "MINRESINT"
        ]
      },
      "SMOInput": {
        "description": "Input type for the OptimizeByObjectiveFunction API function. The request must include some global parameters and the complete list of item/location.\n\n",
        "type": "object",
        "x-examples": {
          "example-1": {
            "GlobalParameters": {
              "ObjectiveFunction": 0,
              "GlobalTargetServiceLevel": 90,
              "StockUpperBound": 0,
              "StorageCapacityUnitOfMeasure": 1,
              "CurveStep": 0.1
            },
            "ItemLocations": [
              {
                "ITEM": "FA329",
                "LOCATION": "CW",
                "AVEDEMQTY": 1.635104,
                "AVEVAR": 2.09612,
                "AVEDEMLOS": 0.3128552,
                "AVEVARLOS": 1.787838,
                "REVIEWPER": 7,
                "MINLEADTIME": 1,
                "AVEDELAY": 0.1,
                "INCRESLOT": 2,
                "MINRESLOT": 6,
                "MINRESINT": 7,
                "CTRL_TYPE": 2,
                "TARGSERVICE": 0,
                "FIXED_STK": 1,
                "FIXED_STKVAL": 0,
                "FIXED_STKQ": 0,
                "UNITCOST": 1,
                "UNITSTORAGEUTILISATION": 2,
                "UNITMARGIN": 1,
                "LOSTSALESPERCENTAGE": 0.5,
                "HOLDINGCOST": 1,
                "FLAG_MINSTK": false,
                "MIN_SAFETYSTK": 0,
                "FLAG_MAXSTK": false,
                "MAX_ORDUPTO": 0,
                "FLAG_MAXPHYSSTK": true,
                "MAX_PHYSTK": 1,
                "TARGAVSTK": 0,
                "SSTOCKTARG": 0,
                "REORDLEV": 0,
                "ORDUPTOLEV": 0
              }
            ]
          }
        },
        "properties": {
          "GlobalParameters": {
            "$ref": "#/components/schemas/SMOGlobalParameters"
          },
          "ItemLocations": {
            "type": "array",
            "uniqueItems": true,
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/SMOSKULocation"
            }
          }
        },
        "required": [
          "GlobalParameters",
          "ItemLocations"
        ],
        "title": "Stock Mix Optimization Input"
      },
      "SMOSKULocation": {
        "description": "Single item/location element for the Stock Mix Optimization Input.",
        "type": "object",
        "x-examples": {
          "example-1": {
            "ITEM": "FA329",
            "LOCATION": "CW",
            "AVEDEMQTY": 1.635104,
            "AVEVAR": 2.09612,
            "AVEDEMLOS": 0.3128552,
            "AVEVARLOS": 1.787838,
            "REVIEWPER": 7,
            "MINLEADTIME": 1,
            "AVEDELAY": 0.1,
            "INCRESLOT": 2,
            "MINRESLOT": 6,
            "MINRESINT": 7,
            "CTRL_TYPE": 2,
            "TARGSERVICE": 0,
            "FIXED_STK": 1,
            "FIXED_STKVAL": 0,
            "FIXED_STKQ": 0,
            "UNITCOST": 1,
            "UNITSTORAGEUTILISATION": 2,
            "UNITMARGIN": 1,
            "LOSTSALESPERCENTAGE": 0.5,
            "HOLDINGCOST": 1,
            "FLAG_MINSTK": false,
            "MIN_SAFETYSTK": 0,
            "FLAG_MAXSTK": false,
            "MAX_ORDUPTO": 0,
            "FLAG_MAXPHYSSTK": true,
            "MAX_PHYSTK": 1,
            "TARGAVSTK": 0,
            "SSTOCKTARG": 0,
            "REORDLEV": 0,
            "ORDUPTOLEV": 0
          }
        },
        "properties": {
          "ITEM": {
            "type": "string",
            "description": "Item Code",
            "example": "MYITEM"
          },
          "LOCATION": {
            "type": "string",
            "description": "Location Code",
            "example": "CENTRAL"
          },
          "AVEDEMQTY": {
            "type": "number",
            "description": "Daily Average Demand [Units]",
            "minimum": 0,
            "example": 10.2
          },
          "AVEVAR": {
            "type": "number",
            "description": "Daily Demand variability",
            "minimum": 0,
            "example": 0.5
          },
          "AVEDEMLOS": {
            "type": "number",
            "description": "Daily Average Order Lines ",
            "minimum": 0,
            "example": 3.2
          },
          "AVEVARLOS": {
            "type": "number",
            "description": "Daily Order Lines Variability\n",
            "minimum": 0,
            "example": 0.3
          },
          "REVIEWPER": {
            "type": "number",
            "description": "Review Period [Days]",
            "minimum": 0,
            "example": 1
          },
          "MINLEADTIME": {
            "type": "number",
            "minimum": 0,
            "description": "Minimum Lead Time [Days]",
            "example": 7
          },
          "AVEDELAY": {
            "type": "number",
            "minimum": 0,
            "description": "Average Delay [Days]",
            "example": 1
          },
          "INCRESLOT": {
            "type": "number",
            "description": "Incremental Supply Lot [Units]",
            "minimum": 0,
            "example": 5
          },
          "MINRESLOT": {
            "type": "number",
            "minimum": 0,
            "description": "Minimum Supply Lot [Units]",
            "example": 10
          },
          "MINRESINT": {
            "type": "number",
            "minimum": 0,
            "description": "Minimum Reorder Interval [Days] ",
            "example": 1
          },
          "CTRL_TYPE": {
            "type": "integer",
            "description": "Control Type\n\n0: Optimised\n1: Fixed Service Level\n2: Fixed stock in Days\n3: Fixed stock in Units\n4: Replenished to order (included in the SMO, the system assigns 0 SL)",
            "enum": [
              0,
              1,
              2,
              3,
              4
            ],
            "example": 0,
            "minimum": 0,
            "maximum": 4,
            "default": 0
          },
          "TARGSERVICE": {
            "type": "number",
            "description": "Target Service Level [%]\nUsed when CTRL_TYPE is 0 or 1",
            "minimum": 0,
            "maximum": 99.9,
            "example": 98.5,
            "default": 0
          },
          "FIXED_STK": {
            "type": "integer",
            "description": "Stock Level to Fix \nUsed when CTRL_TYPE is 2 or 3\n\n0: Ignore\n1: Order-up-to level\n2: Reorder level\n3: Safety Stock\n4: Maximum Physical stock (Only when CTRL_TYPE is 3)\n",
            "enum": [
              0,
              1,
              2,
              3,
              4
            ],
            "maximum": 4,
            "minimum": 0,
            "default": 0
          },
          "FIXED_STKVAL": {
            "type": "number",
            "description": "Fixed Stock Value [Days]\nUsed when CTRL_TYPE is 2",
            "default": 0
          },
          "FIXED_STKQ": {
            "type": "number",
            "description": "Fixed Stock Value [Units]\nUsed when CTRL_TYPE is 3",
            "default": 0
          },
          "UNITCOST": {
            "type": "number"
          },
          "UNITSTORAGEUTILISATION": {
            "type": "number"
          },
          "UNITMARGIN": {
            "type": "number"
          },
          "LOSTSALESPERCENTAGE": {
            "type": "number",
            "description": "The probability to lose sales if the stock is not available."
          },
          "HOLDINGCOST": {
            "type": "number",
            "description": "Fraction of the unit cost, representing the daily holding cost."
          },
          "FLAG_MINSTK": {
            "type": "boolean",
            "description": "Apply Minimum Safety stock constraint (Compatible with CTRL_TYPE 0)",
            "default": false
          },
          "MIN_SAFETYSTK": {
            "type": "number",
            "default": 0,
            "description": "Minimum Safety Stock [Days]"
          },
          "FLAG_MAXSTK": {
            "type": "boolean",
            "default": false,
            "description": "Apply Maximum Order-up-to-level constraint  (Compatible with CTRL_TYPE 0 or 2)"
          },
          "MAX_ORDUPTO": {
            "type": "number",
            "default": 0,
            "description": "Maximum Order-up-to-level [Days]"
          },
          "FLAG_MAXPHYSSTK": {
            "type": "boolean",
            "default": false,
            "description": "Apply Maximum Physical Stock constraint (Compatible con CTRL_TYPE 0 or 2)"
          },
          "MAX_PHYSTK": {
            "type": "number",
            "default": 0,
            "description": "Maximum Physical Stock [Units]"
          },
          "TARGAVSTK": {
            "type": "number"
          },
          "SSTOCKTARG": {
            "type": "number"
          },
          "REORDLEV": {
            "type": "number"
          },
          "ORDUPTOLEV": {
            "type": "number"
          }
        },
        "required": [
          "ITEM",
          "LOCATION",
          "AVEDEMQTY",
          "AVEVAR",
          "AVEDEMLOS",
          "AVEVARLOS",
          "REVIEWPER",
          "MINLEADTIME",
          "INCRESLOT",
          "MINRESLOT",
          "MINRESINT"
        ],
        "title": "SKU Location (for Stock Mix Optimization)"
      },
      "SMOGlobalParameters": {
        "description": "Global parameters for a StockMix optimization request.\n\n#### ObjectiveFunction  Values  \n\nValue | Description | Details\n------ | ------ | ----\n0 | Net margin| Maximization of the total net margin\n1 | Cost | Minimization of the total inventory cost\n\n#### StorageCapacityUnitOfMeasure Values\n\nValue | Description | Details\n------ | ------ | ----\n0 | Price \n1 | Units\n2 | Volume\n3 | Cube\n4 | Weight\n5 | Pallets",
        "type": "object",
        "x-examples": {
          "example-1": {
            "ObjectiveFunction": 0,
            "GlobalTargetServiceLevel": 90,
            "StockUpperBound": 0,
            "StorageCapacityUnitOfMeasure": 1,
            "CurveStep": 0.1
          }
        },
        "title": "Global Parameters (for Stock Mix Optimization)",
        "properties": {
          "ObjectiveFunction": {
            "type": "number",
            "enum": [
              0,
              1
            ],
            "example": 0,
            "description": "Objective function (“Cost” or “Margin”). The input type is an integer: (0) Margin,\t(1) Cost\n"
          },
          "GlobalTargetServiceLevel": {
            "type": "number",
            "minimum": 0,
            "maximum": 99.9
          },
          "StockUpperBound": {
            "type": "number",
            "description": "It represents the maximum Storage Capacity stock allowed for the sum of all combinations, expressed in the unit of measurement indicated by StorageCapacityUnitOfMeasure. If it is 0, the stock upper bound is not applied.",
            "minimum": 0
          },
          "StorageCapacityUnitOfMeasure": {
            "type": "number",
            "enum": [
              0,
              1,
              2,
              3,
              4,
              5
            ],
            "example": 0
          },
          "CurveStep": {
            "type": "number",
            "description": "A step parameter should be provided in order to define the Target SL interval between a point and the next one.",
            "minimum": 0.1,
            "maximum": 10,
            "example": 1
          }
        },
        "required": [
          "ObjectiveFunction",
          "GlobalTargetServiceLevel",
          "StockUpperBound",
          "StorageCapacityUnitOfMeasure",
          "CurveStep"
        ]
      },
      "SMOOptimizedSKULocation": {
        "description": "Optimized single SKU Location",
        "type": "object",
        "x-examples": {
          "example-1": {
            "item": "FA000",
            "location": "CW",
            "targservice": 90.30068,
            "targavstk": 0.35960165,
            "sstocktarg": 0.8006556,
            "reordlev": 0.8006556,
            "orduptolev": 0.8550281
          }
        },
        "properties": {
          "ITEM": {
            "type": "string"
          },
          "LOCATION": {
            "type": "string"
          },
          "TARGSERVICE": {
            "type": "number"
          },
          "TARGAVSTK": {
            "type": "number"
          },
          "SSTOCKTARG": {
            "type": "number"
          },
          "REORDLEV": {
            "type": "number"
          },
          "ORDUPTOLEV": {
            "type": "number"
          }
        },
        "required": [
          "ITEM",
          "LOCATION",
          "TARGSERVICE",
          "TARGAVSTK",
          "SSTOCKTARG",
          "REORDLEV",
          "ORDUPTOLEV"
        ]
      }
    },
    "parameters": {
      "APIVersion": {
        "name": "Accept-Version",
        "in": "header",
        "required": false,
        "schema": {
          "type": "string",
          "default": "1.1",
          "example": "1.1"
        },
        "description": "API Version to be used. If missing, it will use the latest one."
      },
      "SAS-Uri": {
        "name": "SAS",
        "in": "query",
        "required": true,
        "schema": {
          "type": "string"
        },
        "description": "Shared Access Signature URI for the BLOB file"
      },
      "CallbackURL": {
        "name": "CallbackURL",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "pattern": "https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{2,256}\\.[a-z]{2,4}\\b([-a-zA-Z0-9@:%_\\+.~#?&\\/\\/=]*)",
          "minLength": 12,
          "maxLength": 512
        },
        "description": "URL to call back once this long running process ends "
      }
    },
    "securitySchemes": {
      "APIKey": {
        "name": "Authorization",
        "type": "apiKey",
        "in": "header",
        "description": ""
      },
      "OAUTH2": {
        "type": "oauth2",
        "flows": {
          "clientCredentials": {
            "tokenUrl": "",
            "refreshUrl": "",
            "scopes": {
              "SO99WebApiSystemRead": "For basic system functions that only require read access",
              "SO99WebApiSystemWrite": "For system functions that require write access",
              "SO99WebApiDemandRead": "For basic demand functions that only require read access",
              "SO99WebApiDemandWrite": "For demand functions that require write access",
              "SO99WebApiFulfilmentRead": "For basic fulfilment functions that only require read access",
              "SO99WebApiFulfilmentWrite": "For fulfilment functions that require write access"
            }
          }
        },
        "description": ""
      }
    },
    "responses": {
      "FileDownload": {
        "description": "A file with the requested information\n\n<!-- theme: warning -->\n>The incorporated Try it! feature does not allow the actual file creation.\n>You have to get the code sample you prefer and edit it to include the saving of the file.",
        "content": {
          "application/octet-stream": {
            "schema": {
              "type": "object",
              "properties": {
                "file": {
                  "type": "string",
                  "format": "binary"
                }
              }
            },
            "examples": {}
          }
        },
        "headers": {
          "Content-Disposition": {
            "schema": {
              "type": "string"
            },
            "description": "File Name of the File being downloaded"
          }
        }
      },
      "JobLaunched": {
        "description": "Job has been launched and Job ID if launched ",
        "content": {
          "application/json": {
            "schema": {
              "description": "",
              "type": "object",
              "x-examples": {
                "example-1": {
                  "jobId": "000000016",
                  "launched": true
                }
              },
              "properties": {
                "jobId": {
                  "type": "string",
                  "minLength": 1
                },
                "launched": {
                  "type": "boolean"
                }
              },
              "required": [
                "jobId",
                "launched"
              ]
            },
            "examples": {
              "Launched succesfully": {
                "value": {
                  "jobId": "000000016",
                  "launched": true
                }
              }
            }
          }
        }
      },
      "BatchStatus": {
        "description": "Batch Status Response.\n\nDone is true when the batch is ended.\nRunning is true when the has started and is still running.\nErrors if the total number of errors during the last run of this batch.",
        "content": {
          "application/json": {
            "schema": {
              "description": "",
              "type": "object",
              "x-examples": {
                "example-1": {
                  "Done": true,
                  "Running": true,
                  "Errors": 0
                }
              },
              "properties": {
                "Done": {
                  "type": "boolean"
                },
                "Running": {
                  "type": "boolean"
                },
                "Errors": {
                  "type": "integer"
                }
              },
              "required": [
                "Done",
                "Running",
                "Errors"
              ]
            },
            "examples": {
              "Batch Run Succesfully": {
                "value": {
                  "Done": true,
                  "Running": false,
                  "Errors": 0
                }
              }
            }
          }
        }
      },
      "ImportStatus": {
        "description": "## Import Status Response\n\nRepresents the response of a file import operation from a REST WebService.\n\n- `Done` (boolean): Indicates whether the file import operation was completed successfully (`true`) or not (`false`).\n- `Failed` (boolean): Indicates whether the file import operation failed (`true`) or not (`false`).\n- `ImportFiles` (array): An array containing details about the imported files. Each element in the array represents a file import.\n\n    - `FileTag` (string): A tag or identifier associated with the imported file.\n    - `Percent` (integer): The percentage of the import process completed for the specific file.\n    - `Done` (boolean): Indicates whether the file import for this specific file was completed successfully (`true`) or not (`false`).\n    - `Failed` (boolean): Indicates whether the file import for this specific file failed (`true`) or not (`false`).\n    - `RecordsRead` (integer): The number of records read from the imported file.\n    - `RecordsDiscarded` (integer): The number of records discarded during the import process.\n    - `RecordsAdded` (integer): The number of records successfully added from the imported file.\n    - `RecordsModified` (integer): The number of records successfully modified from the imported file.\n\n\n",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "Done": {
                  "type": "boolean"
                },
                "Failed": {
                  "type": "boolean"
                },
                "ImportFiles": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "FileTag": {
                        "type": "string"
                      },
                      "Percent": {
                        "type": "integer"
                      },
                      "Done": {
                        "type": "boolean"
                      },
                      "Failed": {
                        "type": "boolean"
                      },
                      "RecordsRead": {
                        "type": "integer"
                      },
                      "RecordsDiscarded": {
                        "type": "integer"
                      },
                      "RecordsAdded": {
                        "type": "integer"
                      },
                      "RecordsModified": {
                        "type": "integer"
                      }
                    }
                  }
                }
              }
            },
            "examples": {
              "example-1": {
                "value": {
                  "Done": true,
                  "Failed": true,
                  "ImportFiles": [
                    {
                      "FileTag": "string",
                      "Percent": 0,
                      "Done": true,
                      "Failed": true,
                      "RecordsRead": 0,
                      "RecordsDiscarded": 0,
                      "RecordsAdded": 0,
                      "RecordsModified": 0
                    }
                  ]
                }
              }
            }
          }
        }
      }
    }
  },
  "security": [
    {
      "APIKey": []
    }
  ],
  "tags": [
    {
      "name": "Batch"
    },
    {
      "name": "DataPipeline"
    },
    {
      "name": "Exchange"
    },
    {
      "name": "Export"
    },
    {
      "name": "Import"
    },
    {
      "name": "Promotions"
    },
    {
      "name": "Fulfilment"
    },
    {
      "name": "System"
    }
  ]
}