diff --git a/Leanetec.EConnect.sln b/Leanetec.EConnect.sln index 4029f75..14cedb5 100644 --- a/Leanetec.EConnect.sln +++ b/Leanetec.EConnect.sln @@ -9,6 +9,12 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{02EA681E-C7D EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Leanetec.EConnect.Client", "src\Leanetec.EConnect.Client\Leanetec.EConnect.Client.csproj", "{9242EEA9-447B-44A6-A66D-D671DD16D0BB}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docs", "docs", "{AC628874-E7B7-4CA6-8614-03DCCC9DE5CA}" + ProjectSection(SolutionItems) = preProject + docs\econnect-api_swagger.json = docs\econnect-api_swagger.json + docs\econnect-api_swagger.pdf = docs\econnect-api_swagger.pdf + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU diff --git a/docs/econnect-api_swagger.json b/docs/econnect-api_swagger.json new file mode 100644 index 0000000..f478982 --- /dev/null +++ b/docs/econnect-api_swagger.json @@ -0,0 +1,4309 @@ +{ + "openapi": "3.0.1", + "info": { + "title": "eConnect API", + "contact": { + "name": "Leanetec GmbH", + "url": "https://www.leanetec.com", + "email": "support@leanetec.com" + }, + "version": "v1" + }, + "paths": { + "/api/v1/alive": { + "get": { + "tags": [ + "Alive" + ], + "summary": "Returns simple 200 result without content while the application is up", + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/api/v1/alive/is-user": { + "get": { + "tags": [ + "Alive" + ], + "summary": "Returns simple 200 result without content while the application is up\r\nand the logged in user is a normal user.", + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/api/v1/alive/is-admin": { + "get": { + "tags": [ + "Alive" + ], + "summary": "Returns simple 200 result without content while the application is up\r\nand the logged in user is an admin user.", + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/api/v1/article": { + "get": { + "tags": [ + "Article" + ], + "summary": "Get a list of all business partner articles that exist", + "parameters": [ + { + "name": "languageCode", + "in": "query", + "description": "The language code for localisation", + "schema": { + "type": "string" + } + }, + { + "name": "isActive", + "in": "query", + "description": "Flag to get an (in-)active subset of articles", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BpArticleResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "post": { + "tags": [ + "Article" + ], + "summary": "Create a new article for your business partner", + "requestBody": { + "description": "Object which represents the new article", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BpArticleDto" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "integer", + "format": "int32" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/api/v1/article/{articleId}": { + "get": { + "tags": [ + "Article" + ], + "summary": "Get a specific business partner article based on the article id", + "description": "Please note that the returned article may be inactive.", + "parameters": [ + { + "name": "articleId", + "in": "path", + "description": "Unique ID of the article", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "languageCode", + "in": "query", + "description": "The language code for localisation", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BpArticleResult" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "put": { + "tags": [ + "Article" + ], + "summary": "Update an article identified by the article id", + "parameters": [ + { + "name": "articleId", + "in": "path", + "description": "Id of the article to update", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "Object which holds data for updating the article", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BpArticleDto" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "delete": { + "tags": [ + "Article" + ], + "summary": "Delete the article with the given article id", + "parameters": [ + { + "name": "articleId", + "in": "path", + "description": "Article id of the article to delete", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/api/v1/article/{articleId}/referenced": { + "get": { + "tags": [ + "Article" + ], + "summary": "Checks if the article is referenced by any tenant", + "parameters": [ + { + "name": "articleId", + "in": "path", + "description": "ID of the article of check for references", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "boolean" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/api/internal/v1/article/{businessPartnerId}": { + "get": { + "tags": [ + "Article" + ], + "summary": "Internal route to get articles of a specific business partner", + "parameters": [ + { + "name": "businessPartnerId", + "in": "path", + "description": "ID of the business parter", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "languageCode", + "in": "query", + "description": "The language code for localisation", + "schema": { + "type": "string" + } + }, + { + "name": "isActive", + "in": "query", + "description": "Flag to get an (in-)active subset of articles", + "schema": { + "type": "boolean" + } + }, + { + "name": "isDeleted", + "in": "query", + "description": "Flag to get an (non-)deleted subset of articles", + "schema": { + "type": "boolean" + } + }, + { + "name": "salesServiceCategoryId", + "in": "query", + "description": "Filter articles based on a specific sales service category", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "uomId", + "in": "query", + "description": "Filter articles based on a unit of measurement", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "ewcWasteTypeCode", + "in": "query", + "description": "Filter articles based on the selected waste type (only applicable to waste disposal service category)", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InternalBpArticleResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/api/internal/v1/article/{businessPartnerId}/{articleCode}": { + "get": { + "tags": [ + "Article" + ], + "summary": "Internal route to get a specific business partner article based on the article code", + "description": "This will only search for and return active and non-deleted articles.", + "parameters": [ + { + "name": "businessPartnerId", + "in": "path", + "description": "ID of the business parter", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "articleCode", + "in": "path", + "description": "Article code of the article to get", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "languageCode", + "in": "query", + "description": "The language code for localisation", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalBpArticleResult" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/api/v1/article-sales-service-category": { + "get": { + "tags": [ + "ArticleSalesServiceCategory" + ], + "summary": "Get a list of article relevant sales service categories", + "parameters": [ + { + "name": "languageCode", + "in": "query", + "description": "The language code for localisation", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ArticleSalesServiceCategoryResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/api/v1/aval": { + "get": { + "tags": [ + "Aval" + ], + "summary": "Gets a list of aval containers with volume information", + "parameters": [ + { + "name": "languageCode", + "in": "query", + "description": "The language code for localisation", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AvalContainerResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/api/v1/business-partner/self": { + "get": { + "tags": [ + "BusinessPartner" + ], + "summary": "Gets information about the currently assigned business partner", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetSelfBusinessPartnerResult" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/api/v1/order/document/list": { + "get": { + "tags": [ + "Documents" + ], + "summary": "Gets a list of all known documents of a service order", + "parameters": [ + { + "name": "tenantId", + "in": "query", + "description": "The unique id of the tenant", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "orderId", + "in": "query", + "description": "The unique id of the service order", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ListOrderDocumentsResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "500": { + "description": "Server Error" + } + } + } + }, + "/api/v1/order/document": { + "get": { + "tags": [ + "Documents" + ], + "summary": "Downloads a document of a service order with the given document id", + "parameters": [ + { + "name": "tenantId", + "in": "query", + "description": "The unique id of the tenant", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "orderId", + "in": "query", + "description": "The unique id of the service order", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "documentId", + "in": "query", + "description": "The unique id of the document to delete", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized", + "content": { + "application/octet-stream": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/octet-stream": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/octet-stream": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "500": { + "description": "Server Error" + } + } + }, + "post": { + "tags": [ + "Documents" + ], + "summary": "Uploads a new document for the service order", + "parameters": [ + { + "name": "tenantId", + "in": "query", + "description": "The unique id of the tenant", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "orderId", + "in": "query", + "description": "The unique id of the service order", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "required": [ + "file" + ], + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + } + }, + "encoding": { + "file": { + "style": "form" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "500": { + "description": "Server Error" + } + } + }, + "delete": { + "tags": [ + "Documents" + ], + "summary": "Deletes a document of a service order with the given document id", + "description": "The document can not be deleted, if the related service order is already set to status \"Completed\"", + "parameters": [ + { + "name": "tenantId", + "in": "query", + "description": "The unique id of the tenant", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "orderId", + "in": "query", + "description": "The unique id of the service order", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "documentId", + "in": "query", + "description": "The unique id of the document to delete", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "boolean" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "500": { + "description": "Server Error" + } + } + } + }, + "/api/v1/notification/{notificationId}/{actionType}": { + "get": { + "tags": [ + "Notification" + ], + "parameters": [ + { + "name": "notificationId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "actionType", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "actionData", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "string" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/api/action": { + "get": { + "tags": [ + "NotificationEmail" + ], + "parameters": [ + { + "name": "notificationAction", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "notificationData", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "notificationId", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/identity/unsubscribe": { + "get": { + "tags": [ + "NotificationEmail" + ], + "parameters": [ + { + "name": "u", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "e", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/v1/notification-settings": { + "get": { + "tags": [ + "NotificationSettings" + ], + "summary": "Gets notification settings", + "parameters": [ + { + "name": "languageCode", + "in": "query", + "description": "The language code for localisation", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GetNotificationSettingsResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/api/v1/notification-settings/email": { + "put": { + "tags": [ + "NotificationSettings" + ], + "summary": "Updates the \"email\" value for a specific event", + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PutEmailNotificationSettingsRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/api/v1/notification-settings/web": { + "put": { + "tags": [ + "NotificationSettings" + ], + "summary": "Updates the \"web\" value for a specific event", + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PutWebNotificationSettingsRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/api/v1/order": { + "get": { + "tags": [ + "Order" + ], + "summary": "Gets a list of all orders for all available tenants", + "parameters": [ + { + "name": "status[]", + "in": "query", + "description": "Get order with any of the given status ids", + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + { + "name": "languageCode", + "in": "query", + "description": "The language code for localisation", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrderResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/api/v1/order/table": { + "post": { + "tags": [ + "Order" + ], + "summary": "Gets a paginated subset of orders for all available tenants", + "parameters": [ + { + "name": "languageCode", + "in": "query", + "description": "The language code for localisation", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Objet containing relevant server-side table parameters", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrderTableRequestFilterServerSideTableQuery" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrderResultServerSideTableResponse" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/api/v1/order/{tenantNumber}/{orderId}": { + "get": { + "tags": [ + "Order" + ], + "summary": "Gets a single order including the articles (order lines)", + "parameters": [ + { + "name": "tenantNumber", + "in": "path", + "description": "Tenant number of the tenant the order originated from", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "orderId", + "in": "path", + "description": "Order ID within the tenant", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "languageCode", + "in": "query", + "description": "The language code for localisation", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrderDetailResult" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/api/v1/order/{tenantNumber}/{orderId}/lines": { + "get": { + "tags": [ + "Order" + ], + "summary": "Gets the articles (order lines) of a specific order", + "parameters": [ + { + "name": "tenantNumber", + "in": "path", + "description": "Tenant number of the tenant the order originated from", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "orderId", + "in": "path", + "description": "Order ID within the tenant", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "bookingId", + "in": "query", + "description": "Booking ID within the tenant", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "languageCode", + "in": "query", + "description": "The language code for localisation", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrderLineResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/api/v1/order/{tenantNumber}/{orderId}/confirm": { + "put": { + "tags": [ + "Order" + ], + "summary": "Sets an order as \"Confirmed\"", + "description": "This only works for orders in status \"pending\" and \"pending confirmation\".", + "parameters": [ + { + "name": "tenantNumber", + "in": "path", + "description": "Tenant number of the tenant the order originated from", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "orderId", + "in": "path", + "description": "Order ID within the tenant", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "Details about the confirmed quantity of each order line", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConfirmOrderPayload" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/api/v1/order/{tenantNumber}/{orderId}/cancel": { + "delete": { + "tags": [ + "Order" + ], + "summary": "Sets an order as \"Cancelled\"", + "description": "This only works for order in status \"pending\", \"pending confirmation\" and \"confirmed\"\r\nwhile the related booking has not started yet.", + "parameters": [ + { + "name": "tenantNumber", + "in": "path", + "description": "Tenant number of the tenant the order originated from", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "orderId", + "in": "path", + "description": "Order ID within the tenant", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/api/v1/order/{tenantNumber}/{orderId}/complete": { + "put": { + "tags": [ + "Order" + ], + "summary": "Sets an order as \"Completed\"", + "description": "This only works for orders in status \"confirmed\".", + "parameters": [ + { + "name": "tenantNumber", + "in": "path", + "description": "Tenant number of the tenant the order originated from", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "orderId", + "in": "path", + "description": "Order ID within the tenant", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "Details about the actually delivered quantities", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CompleteOrderPayload" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/api/v1/order/{tenantNumber}/{orderId}/reset": { + "put": { + "tags": [ + "Order" + ], + "summary": "Resets the status of the order under certain conditions", + "parameters": [ + { + "name": "tenantNumber", + "in": "path", + "description": "Tenant number of the tenant the order originated from", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "orderId", + "in": "path", + "description": "Order ID within the tenant", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/api/v1/order/{tenantNumber}/{orderId}/delivery/estimated": { + "put": { + "tags": [ + "Order" + ], + "parameters": [ + { + "name": "tenantNumber", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "orderId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateEstimatedDeliveryPayload" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "string", + "format": "date-time" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/api/v1/order/{tenantNumber}/{orderId}/articles": { + "get": { + "tags": [ + "Order" + ], + "parameters": [ + { + "name": "tenantNumber", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "orderId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/api/v1/order-status": { + "get": { + "tags": [ + "OrderStatus" + ], + "summary": "Gets a list of possible service orders states", + "parameters": [ + { + "name": "languageCode", + "in": "query", + "description": "The language code for localisation", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrderStatusResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/api/v1/tenant": { + "get": { + "tags": [ + "Tenant" + ], + "summary": "Gets a list of tenants that are currently available for the service provider", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TenantResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/api/v1/tenant-berth": { + "get": { + "tags": [ + "TenantBerth" + ], + "summary": "Gets a list of berths a specific tenant, with location details", + "parameters": [ + { + "name": "tenantNumber", + "in": "query", + "description": "tenant number of the customer to read out the data of the berths from this tenant", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "isBookable", + "in": "query", + "description": "is bookable to filter the list", + "schema": { + "type": "boolean" + } + }, + { + "name": "languageCode", + "in": "query", + "description": "The language code for localisation", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TenantBerthWithLocationDetailResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/api/v1/tenant-berth/locations": { + "get": { + "tags": [ + "TenantBerth" + ], + "summary": "Gets a list of locations based on available berths of a specific tenant", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BerthLocationResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/api/v1/uom": { + "get": { + "tags": [ + "Uom" + ], + "summary": "Gets a list of units of measurement", + "parameters": [ + { + "name": "languageCode", + "in": "query", + "description": "The language code for localisation", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UnitOfMeasurementsResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/api/v1/waste": { + "get": { + "tags": [ + "Waste" + ], + "summary": "Gets a list of existing waste types", + "parameters": [ + { + "name": "languageCode", + "in": "query", + "description": "The language code for localisation", + "schema": { + "type": "string" + } + }, + { + "name": "isActive", + "in": "query", + "description": "Flag to get an (in-)active subset of waste types", + "schema": { + "type": "boolean" + } + }, + { + "name": "isVisible", + "in": "query", + "description": "Flag to get an (in-)visible subset of waste types", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WasteTypeResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "ArticleSalesServiceCategoryResult": { + "required": [ + "article_sales_service_category_desc", + "article_sales_service_category_id", + "article_sales_service_category_name", + "is_active", + "is_econnect" + ], + "type": "object", + "properties": { + "article_sales_service_category_id": { + "type": "integer", + "description": "The unique article sales service category id of the article.", + "format": "int32" + }, + "article_sales_service_category_type": { + "type": "string", + "description": "The unique type of the article sales service category as defined in the generic type list system table.", + "nullable": true + }, + "article_sales_service_category_name": { + "minLength": 1, + "type": "string", + "description": "The name of the article sales service category." + }, + "article_sales_service_category_desc": { + "minLength": 1, + "type": "string", + "description": "The description of the article sales service category." + }, + "is_active": { + "type": "boolean", + "description": "Boolean value to indicate that this is a currently active (valid) entry." + }, + "is_econnect": { + "type": "boolean", + "description": "Boolean value to indicate that entries with this flag are available in the eConnect portal." + } + }, + "additionalProperties": false, + "description": "Object which contains the result from getting available article service categories" + }, + "AvalContainerResult": { + "required": [ + "aval_cntr_type_name", + "aval_data_version", + "aval_id", + "aval_id_part", + "aval_volume_results" + ], + "type": "object", + "properties": { + "aval_id": { + "minLength": 1, + "type": "string", + "description": "Full AvaL id up to the container type" + }, + "aval_id_part": { + "type": "integer", + "description": "The unique partial id of the AvaL waste container type (PK includes the AvaL data/catalogue version).", + "format": "int32" + }, + "aval_data_version": { + "minLength": 1, + "type": "string", + "description": "The data version (catalogue version: AB.1) for which the AvaL waste container structure is valid (combined primary key)." + }, + "aval_cntr_type_name": { + "minLength": 1, + "type": "string", + "description": "The language specific translations of the waste container type name.\r\nBy default the aval_cntr_type_name is used (fallback) but otherwise it is possible to get the description from this KEY = value array storage column type using the key (country_alpha2 = country_name)." + }, + "aval_volume_results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AvalVolumeResult" + }, + "description": "Get all volumes that match a type range" + } + }, + "additionalProperties": false, + "description": "Object which contains the result from getting available AvaL containers" + }, + "AvalVolumeResult": { + "type": "object", + "properties": { + "aval_id": { + "type": "string", + "description": "Full AvaL id combining the container type and volume, excluding container design", + "nullable": true + }, + "aval_id_part": { + "type": "integer", + "description": "The unique partial id of the AvaL waste container type (PK includes the AvaL data/catalogue version).", + "format": "int32" + }, + "aval_data_version": { + "type": "string", + "description": "The data version (catalogue version: AB.1) for which the AvaL waste container structure is valid (combined primary key).", + "nullable": true + }, + "aval_cntr_volume_name": { + "type": "string", + "description": "Container and volume name using the containers abbreviation and the volume name", + "nullable": true + }, + "is_selectable": { + "type": "boolean", + "description": "Boolean value to indicate that this is leaf element that can be selected by the user." + } + }, + "additionalProperties": false, + "description": "Object which contains information about a AvaL volume" + }, + "BerthLocationResult": { + "type": "object", + "properties": { + "location_alpha5": { + "type": "string", + "description": "Alpha5 value representing the UN-Location", + "nullable": true + }, + "location_name": { + "type": "string", + "description": "The name of the UN-Location", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Object which holds information about a UN-Location, based on the available berths of a tenant" + }, + "BpArticleDto": { + "required": [ + "article_code", + "article_name", + "article_sales_service_category_id", + "is_active", + "requires_transport_unit", + "uom_id" + ], + "type": "object", + "properties": { + "article_name": { + "minLength": 1, + "type": "string", + "description": "Name of the article" + }, + "article_desc": { + "type": "string", + "description": "Description of the article", + "nullable": true + }, + "article_code": { + "minLength": 1, + "type": "string", + "description": "Unique article code" + }, + "article_sales_service_category_id": { + "type": "integer", + "description": "Sales service category of this article", + "format": "int32" + }, + "uom_id": { + "type": "integer", + "description": "Unit of measurement of this article", + "format": "int32" + }, + "requires_transport_unit": { + "type": "boolean", + "description": "Indicator whether or not this articles uses transport units" + }, + "ewc_waste_type_code": { + "type": "string", + "description": "Code of the EWC waste type if this article is related to waste disposal", + "nullable": true + }, + "ewc_waste_type_data_version": { + "type": "string", + "description": "Data version of the EWC waste type if this article is related to waste disposal", + "nullable": true + }, + "is_active": { + "type": "boolean", + "description": "Indicator whether or not this article is active - inactive articles won't be selectable elsewhere in the application" + }, + "transport_units": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of available transport units ids for this article", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Object which represents a service provider specific article" + }, + "BpArticleResult": { + "required": [ + "article_sales_service_category", + "bp_article_code", + "bp_article_id", + "bp_article_name", + "is_active", + "requires_transport_unit", + "uom" + ], + "type": "object", + "properties": { + "bp_article_id": { + "type": "integer", + "description": "The unique internal id of the article", + "format": "int32" + }, + "bp_article_name": { + "minLength": 1, + "type": "string", + "description": "Name of the article" + }, + "bp_article_desc": { + "type": "string", + "description": "Description of the article", + "nullable": true + }, + "bp_article_code": { + "minLength": 1, + "type": "string", + "description": "Unique service provider article code" + }, + "is_active": { + "type": "boolean", + "description": "Indicator whether or not this article is active - inactive articles won't be selectable elsewhere in the application" + }, + "requires_transport_unit": { + "type": "boolean", + "description": "Indicator whether or not this articles uses transport units" + }, + "article_sales_service_category": { + "$ref": "#/components/schemas/BpArticleSalesServiceCategoryResult" + }, + "uom": { + "$ref": "#/components/schemas/BpArticleUomResult" + }, + "waste_type": { + "$ref": "#/components/schemas/BpArticleWasteTypeResult" + }, + "transport_units": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BpArticleTransportUnit" + }, + "description": "List of available transport units for this article", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Object wich contains information about a service provider article" + }, + "BpArticleSalesServiceCategoryResult": { + "required": [ + "article_sales_service_category_id", + "article_sales_service_category_name" + ], + "type": "object", + "properties": { + "article_sales_service_category_id": { + "type": "integer", + "description": "The unique article sales service category id of the article.", + "format": "int32" + }, + "article_sales_service_category_name": { + "minLength": 1, + "type": "string", + "description": "The name of the article sales service category." + } + }, + "additionalProperties": false, + "description": "Object holding information about a sales service category of an article" + }, + "BpArticleTransportUnit": { + "required": [ + "aval_desc", + "aval_id" + ], + "type": "object", + "properties": { + "aval_id": { + "minLength": 1, + "type": "string", + "description": "The unique AvaL id of this transport unit" + }, + "aval_desc": { + "minLength": 1, + "type": "string", + "description": "The description of this transport unit" + } + }, + "additionalProperties": false, + "description": "Represents a wrapper for transport units like AvaL containers" + }, + "BpArticleUomResult": { + "required": [ + "uom_abbreviation", + "uom_id", + "uom_name" + ], + "type": "object", + "properties": { + "uom_id": { + "type": "integer", + "description": "Unique internal id of the unit of measurement", + "format": "int32" + }, + "uom_name": { + "minLength": 1, + "type": "string", + "description": "Name of the unit of measurement" + }, + "uom_abbreviation": { + "minLength": 1, + "type": "string", + "description": "Abbreviation of the units name" + } + }, + "additionalProperties": false, + "description": "Unit of measurement of an article" + }, + "BpArticleWasteTypeResult": { + "required": [ + "waste_type_code", + "waste_type_data_version", + "waste_type_desc" + ], + "type": "object", + "properties": { + "waste_type_code": { + "minLength": 1, + "type": "string", + "description": "The unique code of the waste type in combination with the data version." + }, + "waste_type_data_version": { + "minLength": 1, + "type": "string", + "description": "The data version for which the waste type id is valid (combined primary key)." + }, + "waste_type_desc": { + "minLength": 1, + "type": "string", + "description": "The description of the waste type.\r\nThe language specific translations of the waste type description.\r\nBy default the waste_type_desc is used (fallback) but otherwise it is possible to get the description from this KEY = value array storage JsonPropertyName type using the key (country_alpha2 = country_name)." + } + }, + "additionalProperties": false, + "description": "Object holding information about the waste type of an article" + }, + "CompleteAddedArticle": { + "type": "object", + "properties": { + "article_id": { + "type": "integer", + "description": "ID of the article as specified in the tenant schema (!)", + "format": "int32" + }, + "article_spec_id": { + "type": "integer", + "description": "Article spec id of the added article", + "format": "int32" + }, + "transport_unit_id": { + "type": "integer", + "description": "Transport unit to use for the added article", + "format": "int32" + }, + "quantity": { + "type": "number", + "description": "Delivered quantity of the added article", + "format": "double" + }, + "timestamp": { + "type": "string", + "description": "Article version timestamp to set for the added article", + "format": "date-time" + }, + "article_code": { + "type": "string", + "description": "Business partner article code of the added article", + "nullable": true + }, + "uom_id": { + "type": "integer", + "description": "Unit of measurement for the added article", + "format": "int32" + } + }, + "additionalProperties": false, + "description": "Object which holds information required to add articles to an service order during the completion process" + }, + "CompleteOrderLine": { + "type": "object", + "properties": { + "order_line_id": { + "type": "integer", + "description": "The unique id of the order line (article)", + "format": "int64" + }, + "quantity_delivered": { + "type": "number", + "description": "Represents the amount of actually delivered articles", + "format": "double" + } + }, + "additionalProperties": false, + "description": "Object which holds information required to set the delivered quantity of an article" + }, + "CompleteOrderPayload": { + "type": "object", + "properties": { + "order_lines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CompleteOrderLine" + }, + "description": "Existing order lines with maybe updated delivery quantities", + "nullable": true + }, + "added_articles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CompleteAddedArticle" + }, + "description": "Additional articles that were added by eConnect", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Object which holds information about articles within a service order about to be set\r\nas completed" + }, + "ConfirmOrderPayload": { + "type": "object", + "properties": { + "order_line_id": { + "type": "integer", + "description": "The unique id of the order line (article)", + "format": "int64" + }, + "quantity_confirmed": { + "type": "number", + "description": "Represents the amount of confirmed articles", + "format": "double" + } + }, + "additionalProperties": false, + "description": "Object which holds information required to set the confirmed quantity of an article" + }, + "GetNotificationSettingsResult": { + "type": "object", + "properties": { + "event_id": { + "type": "integer", + "format": "int32" + }, + "event_name": { + "type": "string", + "nullable": true + }, + "event_desc": { + "type": "string", + "nullable": true + }, + "event_notification_email": { + "type": "boolean" + }, + "event_notification_web": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "GetSelfBusinessPartnerResult": { + "type": "object", + "properties": { + "business_partner_name": { + "type": "string", + "description": "The name of the business partner", + "nullable": true + }, + "vat_number": { + "type": "string", + "description": "The VAT number of the business partner", + "nullable": true + }, + "tax_number": { + "type": "string", + "description": "The Tax number of the business partner", + "nullable": true + }, + "telephone": { + "type": "string", + "description": "The telephone number of the business partner", + "nullable": true + }, + "website": { + "type": "string", + "description": "The website url of the business partner", + "nullable": true + }, + "email": { + "type": "string", + "description": "The email address of the business partner", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Object which holds information about the business partner a service provider is assigned to" + }, + "InternalBpArticleResult": { + "type": "object", + "properties": { + "article_code": { + "type": "string", + "nullable": true + }, + "article_name": { + "type": "string", + "nullable": true + }, + "ewc_waste_type_code": { + "type": "string", + "nullable": true + }, + "is_active": { + "type": "boolean" + }, + "is_deleted": { + "type": "boolean" + }, + "transport_units": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "ListOrderDocumentsResult": { + "type": "object", + "properties": { + "fileName": { + "type": "string", + "description": "The name of the file", + "nullable": true + }, + "id": { + "type": "integer", + "description": "The unique internal id of the file", + "format": "int64" + }, + "fileSizeInBytes": { + "type": "integer", + "description": "The size of the file in bytes", + "format": "int64" + }, + "parentFolderId": { + "type": "integer", + "description": "The internal unique id of the folder containing this file", + "format": "int64" + }, + "createdOn": { + "type": "string", + "description": "The string representation of the timstamp when this file has been created (uploaded)", + "nullable": true + }, + "lastUpdateOn": { + "type": "string", + "description": "The string representation of the timstamp when this file has been updated", + "nullable": true + }, + "fileMimeType": { + "type": "string", + "description": "The MIME type of the file", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Object which holds information about a file of a service order" + }, + "OrderDetailBerthContact": { + "type": "object", + "properties": { + "berth_name": { + "type": "string", + "description": "Name of the berth", + "nullable": true + }, + "owner_bp_name": { + "type": "string", + "description": "The name of the owner business partner of the berth", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Object which holds detailled information about an order, in this case contact data of the berth" + }, + "OrderDetailResult": { + "type": "object", + "properties": { + "tenant_number": { + "type": "integer", + "description": "The unique internal id of the tenant", + "format": "int32" + }, + "tenant_name": { + "type": "string", + "description": "The name of the tenant", + "nullable": true + }, + "tenant_schema": { + "type": "string", + "description": "The unique internal schema name of the tenant", + "nullable": true + }, + "service_order_created_by": { + "type": "string", + "description": "E-mail address of the user who created the service order", + "nullable": true + }, + "service_order_created_display_name": { + "type": "string", + "description": "Display name of the user who created the service order", + "nullable": true + }, + "service_order_created_on": { + "type": "string", + "description": "Date and time value when the service order has been created", + "format": "date-time" + }, + "service_order_last_update_by": { + "type": "string", + "description": "E-mail address of the user who made recent updates to the service order", + "nullable": true + }, + "service_order_last_update_display_name": { + "type": "string", + "description": "Display name of the user who made recent updates to the service order", + "nullable": true + }, + "service_order_last_update_on": { + "type": "string", + "description": "Date and time value when the service order has been recently updated", + "format": "date-time" + }, + "berth_booking_order_id": { + "type": "integer", + "description": "Unique internal tenant id of the service order", + "format": "int64" + }, + "service_order_is_deleted": { + "type": "boolean", + "description": "Boolean value to indicate if the service order has been deleted (soft delete)" + }, + "service_order_status_id": { + "type": "integer", + "description": "Id value of the status of the service order", + "format": "int32" + }, + "service_order_status_name": { + "type": "string", + "description": "Status name of the service order", + "nullable": true + }, + "service_provider_bp_id": { + "type": "integer", + "description": "Tenant specific unique Id of the business partner (service provider) which is involved in the service order", + "format": "int32" + }, + "service_provider_sys_bp_id": { + "type": "integer", + "description": "Global unique Id of the business partner (service provider) which is involved in the service order (unique across all tenants)", + "format": "int32" + }, + "berth_booking_id": { + "type": "integer", + "description": "Id of the related booking of the service order", + "format": "int64" + }, + "booking_start_on": { + "type": "string", + "description": "Date and time value when the related booking starts", + "format": "date-time" + }, + "booking_end_on": { + "type": "string", + "description": "Date and time value when the related booking ends", + "format": "date-time" + }, + "vessel_id": { + "type": "integer", + "description": "Unique tenant specific internal id of the related vessel", + "format": "int32" + }, + "vessel_name": { + "type": "string", + "description": "The name of the vessel", + "nullable": true + }, + "vessel_owner_business_partner_name": { + "type": "string", + "description": "The name of the owner (business partner) of the vessel", + "nullable": true + }, + "berth_id": { + "type": "integer", + "description": "Unique tenant specific internal id of the related berth", + "format": "int32" + }, + "berth_name": { + "type": "string", + "description": "The name of the berth", + "nullable": true + }, + "berth_geo_latitude": { + "type": "number", + "description": "The geographical latitude value of the berths position", + "format": "double" + }, + "berth_geo_longitude": { + "type": "number", + "description": "The geographical longitude value of the berths position", + "format": "double" + }, + "berth_unlocode_alpha5": { + "type": "string", + "description": "The alpha5 code of the berths UN-location", + "nullable": true + }, + "berth_unlocode_name": { + "type": "string", + "description": "The name of the berths UN-location", + "nullable": true + }, + "berth_address_street": { + "type": "string", + "description": "The optional street of the berth", + "nullable": true + }, + "berth_address_postal_code": { + "type": "string", + "description": "The optional postal code of the berth", + "nullable": true + }, + "berth_address_city": { + "type": "string", + "description": "The optional city of the berth", + "nullable": true + }, + "berth_address_local_district": { + "type": "string", + "description": "The optional local district of the berth", + "nullable": true + }, + "berth_address_region": { + "type": "string", + "description": "The optional address related region of the berth", + "nullable": true + }, + "desired_delivery_date": { + "type": "string", + "description": "The optional desired delivered date set by the booking portal user", + "format": "date-time", + "nullable": true + }, + "estimated_delivery_date": { + "type": "string", + "description": "The optional estimated delivery date set by the eConnect user", + "format": "date-time", + "nullable": true + }, + "order_lines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrderLineResult" + }, + "description": "List of order lines (articles) of the service order", + "nullable": true + }, + "berth_contact": { + "$ref": "#/components/schemas/OrderDetailBerthContact" + }, + "vessel_contact": { + "$ref": "#/components/schemas/OrderDetailVesselContact" + } + }, + "additionalProperties": false, + "description": "Object which contains detailled information about an order" + }, + "OrderDetailVesselContact": { + "type": "object", + "properties": { + "vessel_name": { + "type": "string", + "description": "The name of the vessel", + "nullable": true + }, + "owner_bp_name": { + "type": "string", + "description": "The name of the owner (business partner) of the vessel", + "nullable": true + }, + "vessel_email": { + "type": "string", + "description": "The optional email address of the vessel", + "nullable": true + }, + "vessel_phone_number": { + "type": "string", + "description": "The optional phone number of the vessel", + "nullable": true + }, + "vessel_mobile_phone_number": { + "type": "string", + "description": "The optional mobile phone number of the vessel", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Object which holds information about the related vessel of an order, in this case contact data" + }, + "OrderLineResult": { + "type": "object", + "properties": { + "article_id": { + "type": "integer", + "description": "The unique id of the global business partner article within the partner portal.", + "format": "int32" + }, + "article_name": { + "type": "string", + "description": "The article name the business partner uses for the article.", + "nullable": true + }, + "article_code": { + "type": "string", + "description": "The article code the business partner uses for the article.", + "nullable": true + }, + "article_waste_type_code": { + "type": "string", + "description": "The unique code of the waste type in combination with the data version.", + "nullable": true + }, + "article_waste_type_desc": { + "type": "string", + "description": "The description of the waste type.", + "nullable": true + }, + "aval_cntr_name": { + "type": "string", + "description": "The AvaL name of the container", + "nullable": true + }, + "aval_cntr_code": { + "type": "string", + "description": "The AvaL code of the container", + "nullable": true + }, + "article_tu_id": { + "type": "integer", + "description": "The unique internal id of the transport unit (e.g. AvaL)", + "format": "int32", + "nullable": true + }, + "article_tu_uom_id": { + "type": "integer", + "description": "The internal id of the transport units (e.g. AvaL) unit of measurement", + "format": "int32", + "nullable": true + }, + "article_tu_uom_name": { + "type": "string", + "description": "The name of the unit of measurement of the transport unit (e.g. AvaL)", + "nullable": true + }, + "article_tu_quantity": { + "type": "number", + "description": "The amount of transport units (e.g. AvaL)", + "format": "double", + "nullable": true + }, + "berth_booking_order_line_id": { + "type": "integer", + "description": "The unique tenant specific internal id of the order line (article)", + "format": "int64" + }, + "article_uom_id": { + "type": "integer", + "description": "The unique internal id of the articles unit of measurement", + "format": "int32" + }, + "article_uom_abbreviation": { + "type": "string", + "description": "The abbrevation of the articles unit of measurement", + "nullable": true + }, + "article_uom_name": { + "type": "string", + "description": "The name of the articles unit of measurement", + "nullable": true + }, + "last_update_ordered_on": { + "type": "string", + "description": "Date and time value when the amount of ordered articles has been last changed", + "format": "date-time" + }, + "quantity_ordered": { + "type": "number", + "description": "Amount of articles ordered", + "format": "double" + }, + "last_update_confirmed_on": { + "type": "string", + "description": "Date and time value when the amount of confirmed articles has been last changed", + "format": "date-time", + "nullable": true + }, + "quantity_confirmed": { + "type": "number", + "description": "Amount of articles confirmed", + "format": "double" + }, + "last_update_delivered_on": { + "type": "string", + "description": "Date and time value when the amount of delivered articles has been last changed", + "format": "date-time", + "nullable": true + }, + "quantity_delivered": { + "type": "number", + "description": "Amount of articles actually delivered", + "format": "double", + "nullable": true + }, + "service_order_line_is_deleted": { + "type": "boolean", + "description": "Value to indicate if this order line (article) has been deleted or not" + } + }, + "additionalProperties": false, + "description": "Object which holds information about an order line (article)" + }, + "OrderResult": { + "type": "object", + "properties": { + "tenant_number": { + "type": "integer", + "description": "The unique internal id of the tenant", + "format": "int32" + }, + "tenant_name": { + "type": "string", + "description": "The name of the tenant", + "nullable": true + }, + "tenant_schema": { + "type": "string", + "description": "The unique internal schema name of the tenant", + "nullable": true + }, + "service_order_created_by": { + "type": "string", + "description": "E-mail address of the user who created the service order", + "nullable": true + }, + "service_order_created_display_name": { + "type": "string", + "description": "Display name of the user who created the service order", + "nullable": true + }, + "service_order_created_on": { + "type": "string", + "description": "Date and time value when the service order has been created", + "format": "date-time" + }, + "service_order_last_update_by": { + "type": "string", + "description": "E-mail address of the user who made recent updates to the service order", + "nullable": true + }, + "service_order_last_update_display_name": { + "type": "string", + "description": "Display name of the user who made recent updates to the service order", + "nullable": true + }, + "service_order_last_update_on": { + "type": "string", + "description": "Date and time value when the service order has been recently updated", + "format": "date-time" + }, + "berth_booking_order_id": { + "type": "integer", + "description": "Unique internal tenant id of the service order", + "format": "int64" + }, + "service_order_is_deleted": { + "type": "boolean", + "description": "Boolean value to indicate if the service order has been deleted (soft delete)" + }, + "service_order_status_id": { + "type": "integer", + "description": "Id value of the status of the service order", + "format": "int32" + }, + "service_order_status_name": { + "type": "string", + "description": "Status name of the service order", + "nullable": true + }, + "service_provider_bp_id": { + "type": "integer", + "description": "Tenant specific unique Id of the business partner (service provider) which is involved in the service order", + "format": "int32" + }, + "service_provider_sys_bp_id": { + "type": "integer", + "description": "Global unique Id of the business partner (service provider) which is involved in the service order (unique across all tenants)", + "format": "int32" + }, + "berth_booking_id": { + "type": "integer", + "description": "Id of the related booking of the service order", + "format": "int64" + }, + "booking_start_on": { + "type": "string", + "description": "Date and time value when the related booking starts", + "format": "date-time" + }, + "booking_end_on": { + "type": "string", + "description": "Date and time value when the related booking ends", + "format": "date-time" + }, + "vessel_id": { + "type": "integer", + "description": "Unique tenant specific internal id of the related vessel", + "format": "int32" + }, + "vessel_name": { + "type": "string", + "description": "The name of the vessel", + "nullable": true + }, + "vessel_owner_business_partner_name": { + "type": "string", + "description": "The name of the owner (business partner) of the vessel", + "nullable": true + }, + "berth_id": { + "type": "integer", + "description": "Unique tenant specific internal id of the related berth", + "format": "int32" + }, + "berth_name": { + "type": "string", + "description": "The name of the berth", + "nullable": true + }, + "berth_geo_latitude": { + "type": "number", + "description": "The geographical latitude value of the berths position", + "format": "double" + }, + "berth_geo_longitude": { + "type": "number", + "description": "The geographical longitude value of the berths position", + "format": "double" + }, + "berth_unlocode_alpha5": { + "type": "string", + "description": "The alpha5 code of the berths UN-location", + "nullable": true + }, + "berth_unlocode_name": { + "type": "string", + "description": "The name of the berths UN-location", + "nullable": true + }, + "berth_address_street": { + "type": "string", + "description": "The optional street of the berth", + "nullable": true + }, + "berth_address_postal_code": { + "type": "string", + "description": "The optional postal code of the berth", + "nullable": true + }, + "berth_address_city": { + "type": "string", + "description": "The optional city of the berth", + "nullable": true + }, + "berth_address_local_district": { + "type": "string", + "description": "The optional local district of the berth", + "nullable": true + }, + "berth_address_region": { + "type": "string", + "description": "The optional address related region of the berth", + "nullable": true + }, + "desired_delivery_date": { + "type": "string", + "description": "The optional desired delivered date set by the booking portal user", + "format": "date-time", + "nullable": true + }, + "estimated_delivery_date": { + "type": "string", + "description": "The optional estimated delivery date set by the eConnect user", + "format": "date-time", + "nullable": true + }, + "order_lines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrderLineResult" + }, + "description": "List of order lines (articles) of the service order", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Object which holds information about an order" + }, + "OrderResultServerSideTableResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrderResult" + }, + "nullable": true + }, + "rowsNumber": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "OrderStatusResult": { + "type": "object", + "properties": { + "service_order_status_id": { + "type": "integer", + "description": "The unique id of the service order status", + "format": "int32" + }, + "service_order_status_name": { + "type": "string", + "description": "The name of the service order status", + "nullable": true + }, + "service_order_status_desc": { + "type": "string", + "description": "The description of the service order status", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Object which holds information about a service order status" + }, + "OrderTableRequestFilter": { + "type": "object", + "properties": { + "search": { + "type": "string", + "description": "Global search term", + "nullable": true + }, + "status": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "description": "List of order status ids to filter the results", + "nullable": true + }, + "completable": { + "type": "boolean", + "description": "Boolean value to filter results for orders that can be completed, based on the \"confirmed\" status and the fact that the related booking is already in the past", + "nullable": true + }, + "period": { + "type": "string", + "description": "String value which holds a predefined period to filter the results", + "nullable": true + }, + "tenants": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "description": "List of tenant ids to filter the results", + "nullable": true + }, + "locations": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of un location codes to filter the results", + "nullable": true + }, + "customPeriod": { + "$ref": "#/components/schemas/OrderTableRequestFilterCustomPeriod" + }, + "includeOrderLines": { + "type": "boolean", + "description": "Boolean value to indicate if order lines (articles) should be queried as well, currently used for export functions", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Objects which holds information about filterable items for a server side process order table" + }, + "OrderTableRequestFilterCustomPeriod": { + "type": "object", + "properties": { + "start": { + "type": "string", + "description": "Date and time value (with tz offset) to start at", + "format": "date-time" + }, + "end": { + "type": "string", + "description": "Date and time value (with tz offset) to end at", + "format": "date-time" + } + }, + "additionalProperties": false, + "description": "Object which holds information about a custom period (date time value) to filter order results" + }, + "OrderTableRequestFilterServerSideTableQuery": { + "type": "object", + "properties": { + "language_code": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "pagination": { + "$ref": "#/components/schemas/ServerSideTablePagination" + }, + "filter": { + "$ref": "#/components/schemas/OrderTableRequestFilter" + } + }, + "additionalProperties": false + }, + "ProblemDetails": { + "type": "object", + "properties": { + "type": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "status": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "detail": { + "type": "string", + "nullable": true + }, + "instance": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": { } + }, + "PutEmailNotificationSettingsRequest": { + "type": "object", + "properties": { + "event_id": { + "type": "integer", + "format": "int32" + }, + "value": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "PutWebNotificationSettingsRequest": { + "type": "object", + "properties": { + "event_id": { + "type": "integer", + "format": "int32" + }, + "value": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "ServerSideTablePagination": { + "type": "object", + "properties": { + "sortBy": { + "type": "string", + "nullable": true + }, + "descending": { + "type": "boolean" + }, + "page": { + "type": "integer", + "format": "int32" + }, + "rowsPerPage": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "TenantBerthWithLocationDetailResult": { + "required": [ + "berth_address_city", + "berth_address_local_district", + "berth_address_postal_code", + "berth_address_region", + "berth_address_street", + "berth_id", + "berth_installation_type_name", + "berth_name", + "berth_name_simple", + "country_alpha2", + "country_name", + "geo_latitude", + "geo_longitude", + "is_active", + "is_bookable", + "is_deleted", + "is_seasonal", + "nts_position_name", + "season_end_on", + "season_start_on", + "tenant_number", + "unlocode_alpha5", + "waterway_distance_mark", + "waterway_generic_name" + ], + "type": "object", + "properties": { + "tenant_number": { + "type": "integer", + "description": "The unique internal id of the tenant", + "format": "int32" + }, + "berth_id": { + "type": "integer", + "description": "Unique tenant specific internal id of the related berth", + "format": "int32" + }, + "berth_name": { + "minLength": 1, + "type": "string", + "description": "The name of the berth" + }, + "berth_name_simple": { + "minLength": 1, + "type": "string", + "description": "The simplified name of the berth" + }, + "berth_installation_type_name": { + "minLength": 1, + "type": "string", + "description": "The name of the intallation type of the berth (like fixed or floating)" + }, + "waterway_generic_name": { + "minLength": 1, + "type": "string", + "description": "The name of the waterway (river) where the berth is located" + }, + "waterway_distance_mark": { + "type": "number", + "description": "The distance mark (km) where the berth is located at the waterway", + "format": "double" + }, + "nts_position_name": { + "minLength": 1, + "type": "string", + "description": "Riverside position of the berth, e.g. left, right, etc." + }, + "geo_latitude": { + "type": "number", + "description": "The geographical latitude value of the berths position", + "format": "double" + }, + "geo_longitude": { + "type": "number", + "description": "The geographical longitude value of the berths position", + "format": "double" + }, + "berth_address_street": { + "minLength": 1, + "type": "string", + "description": "The optional street of the berth" + }, + "berth_address_postal_code": { + "minLength": 1, + "type": "string", + "description": "The optional postal code of the berth" + }, + "berth_address_city": { + "minLength": 1, + "type": "string", + "description": "The optional city of the berth" + }, + "berth_address_local_district": { + "minLength": 1, + "type": "string", + "description": "The optional local district of the berth" + }, + "berth_address_region": { + "minLength": 1, + "type": "string", + "description": "The optional address related region of the berth" + }, + "country_name": { + "minLength": 1, + "type": "string", + "description": "The name of the country where the berth is located" + }, + "country_alpha2": { + "minLength": 1, + "type": "string", + "description": "The alpha2 value of the country where the berth is located" + }, + "unlocode_alpha5": { + "minLength": 1, + "type": "string", + "description": "The alpha5 code of the Un-Location" + }, + "is_active": { + "type": "boolean", + "description": "Boolean value to indicate if the berth is set as active" + }, + "is_deleted": { + "type": "boolean", + "description": "Boolean value to indicate if the berth is set as deleted" + }, + "is_bookable": { + "type": "boolean", + "description": "Boolean value to indicate if the berth is bookable at all" + }, + "is_seasonal": { + "type": "boolean", + "description": "Boolean value to indicate if the berth can only be booked in a specified season (date time values)" + }, + "season_start_on": { + "type": "string", + "description": "Date and time value of the start of the bookable berth season", + "format": "date-time" + }, + "season_end_on": { + "type": "string", + "description": "Date and time value of the end of the bookable berth season", + "format": "date-time" + } + }, + "additionalProperties": false, + "description": "Object which holds information about the tenants berth, including details about the location" + }, + "TenantResult": { + "type": "object", + "properties": { + "tenant_number": { + "type": "integer", + "description": "Unique internal id of the tenant", + "format": "int32" + }, + "tenant_name": { + "type": "string", + "description": "The name of the tenant", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Object which holds information about a tenant" + }, + "UnitOfMeasurementsResult": { + "required": [ + "uom_id", + "uom_name" + ], + "type": "object", + "properties": { + "uom_id": { + "type": "integer", + "description": "The unique internal id of the unit of measurement", + "format": "int32" + }, + "uom_name": { + "minLength": 1, + "type": "string", + "description": "The name of the unit of measurement" + }, + "uom_abbreviation": { + "type": "string", + "description": "The abbreviation of the unit of measurement", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Object which holds information about a unit of measurement (UOM)" + }, + "UpdateEstimatedDeliveryPayload": { + "type": "object", + "properties": { + "estimated_delivery_date": { + "type": "string", + "format": "date-time", + "nullable": true + } + }, + "additionalProperties": false + }, + "WasteTypeResult": { + "required": [ + "is_active", + "is_hazardous_waste", + "is_selectable", + "is_visible", + "waste_type_code", + "waste_type_data_version", + "waste_type_desc" + ], + "type": "object", + "properties": { + "waste_type_code": { + "minLength": 1, + "type": "string", + "description": "The unique code of the waste type in combination with the data version." + }, + "waste_type_data_version": { + "minLength": 1, + "type": "string", + "description": "The data version for which the waste type id is valid (combined primary key)." + }, + "parent_waste_type_code": { + "type": "string", + "description": "The reference to the parent waste type code entry (combined with the waste_type_data_version), if this is NULL this row is a ROOT element.", + "nullable": true + }, + "waste_type_desc": { + "minLength": 1, + "type": "string", + "description": "The description of the waste type.\r\nThe language specific translations of the waste type description.\r\nBy default the waste_type_desc is used (fallback) but otherwise it is possible to get the description from this KEY = value array storage JsonPropertyName type using the key (country_alpha2 = country_name)." + }, + "is_hazardous_waste": { + "type": "boolean", + "description": "Boolean value to indicate that this is when set to TRUE, otherwise it is not hazardous (DEFAULT=FALSE)" + }, + "is_active": { + "type": "boolean", + "description": "Boolean value to indicate that this is a currently active (valid) entry." + }, + "is_visible": { + "type": "boolean", + "description": "Boolean value to indicate that this entry is shown in the user interface (for example to unfold sub-elements)." + }, + "is_selectable": { + "type": "boolean", + "description": "Boolean value to indicate that this is leaf element that can be selected by the user." + } + }, + "additionalProperties": false, + "description": "Object which holds information about available waste types" + } + }, + "securitySchemes": { + "Bearer": { + "type": "apiKey", + "description": "JWT Authorization header using the Bearer scheme. \\r\\n\\r\\n \n Enter 'Bearer' [space] and then your token in the text input below.\n \\r\\n\\r\\nExample: 'Bearer 12345abcdef'", + "name": "Authorization", + "in": "header" + } + } + }, + "security": [ + { + "Bearer": [ ] + } + ] +} \ No newline at end of file diff --git a/docs/econnect-api_swagger.pdf b/docs/econnect-api_swagger.pdf new file mode 100644 index 0000000..4be7225 --- /dev/null +++ b/docs/econnect-api_swagger.pdf @@ -0,0 +1 @@ + \ No newline at end of file