From e43bc48da367c3b0d63516dc9e081ac87e4d5c5a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 16:44:23 +0200 Subject: [PATCH] [create-pull-request] automated change (#316) Co-authored-by: shopwareBot --- adminapi.json | 2096 ++++++++++++++++++++++++------------------------- 1 file changed, 1048 insertions(+), 1048 deletions(-) diff --git a/adminapi.json b/adminapi.json index f3e8589..34b507b 100644 --- a/adminapi.json +++ b/adminapi.json @@ -7,7 +7,7 @@ "name": "MIT", "url": "https://github.com/shopware/shopware/blob/trunk/LICENSE" }, - "version": "6.6.9999999.9999999-dev" + "version": "6.6.7.0" }, "servers": [ { @@ -65490,335 +65490,6 @@ } } }, - "/_info/flow-actions.json": { - "get": { - "tags": [ - "System Info & Health Check" - ], - "summary": "Get actions for flow builder", - "description": "Get a list of action for flow builder.", - "operationId": "flow-actions", - "responses": { - "200": { - "description": "Returns a list of action for flow builder.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/flowBuilderActionsResponse" - } - } - } - } - } - } - }, - "/_action/number-range/reserve/{type}/{saleschannel}": { - "get": { - "tags": [ - "Document Management" - ], - "summary": "Reserve or preview a number-range / document number.", - "description": "This endpoint provides functionality to reserve or preview a document number which can be used to create a new document using the `/_action/order/{orderId}/document/{documentTypeName}` endpoint.\n\nThe number generated by the endpoint will be reserved and the number pointer will be incremented with every call. For preview purposes, you can add the `?preview=1` parameter to the request. In that case, the number will not be incremented.", - "operationId": "numberRangeReserve", - "parameters": [ - { - "name": "type", - "in": "path", - "description": "`technicalName` of the document type (e.g. `document_invoice`). Available types can be fetched with the `/api/document-type endpoint`.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "saleschannel", - "in": "path", - "description": "Sales channel for the number range. Number ranges can be defined per sales channel, so you can pass a sales channel ID here.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "preview", - "in": "query", - "description": "If this parameter has a true value, the number will not actually be incremented, but only previewed.", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "description": "The generated number", - "content": { - "application/json": { - "schema": { - "properties": { - "number": { - "description": "The generated (or previewed) document number.", - "type": "string" - } - }, - "type": "object" - } - } - } - }, - "400": { - "description": "Number range not found" - } - } - } - }, - "/_info/routes": { - "get": { - "summary": "Get API routes", - "operationId": "getRoutes", - "responses": { - "200": { - "description": "Successful operation", - "content": { - "application/json": { - "schema": { - "type": "object", - "required": [ - "endpoints" - ], - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "object", - "required": [ - "methods", - "path" - ], - "properties": { - "methods": { - "type": "array", - "items": { - "type": "string" - } - }, - "path": { - "type": "string" - } - } - } - } - } - } - } - } - } - } - } - }, - "/_action/index": { - "post": { - "tags": [ - "System Operations" - ], - "summary": "Run indexer", - "description": "Runs all registered indexer in the shop asynchronously.", - "operationId": "index", - "requestBody": { - "content": { - "application/json": { - "schema": { - "properties": { - "skip": { - "description": "Array of indexers/updaters to be skipped.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "type": "object" - } - } - } - }, - "responses": { - "204": { - "description": "Returns a no content response indicating that the indexing progress startet." - } - } - } - }, - "/_action/cache": { - "delete": { - "tags": [ - "System Operations" - ], - "summary": "Clear caches", - "description": "The cache is immediately cleared synchronously for all used adapters.", - "operationId": "clearCache", - "responses": { - "204": { - "description": "Returns a no content response indicating that the cache has been cleared." - } - } - } - }, - "/_action/document/{documentId}/{deepLinkCode}": { - "get": { - "tags": [ - "Document Management" - ], - "summary": "Download a document", - "description": "Download a document by its identifier and deep link code.", - "operationId": "downloadDocument", - "parameters": [ - { - "name": "documentId", - "in": "path", - "description": "Identifier of the document to be downloaded.", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "name": "deepLinkCode", - "in": "path", - "description": "A unique hash code which was generated when the document was created.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "download", - "in": "query", - "description": "This parameter controls the `Content-Disposition` header. If set to `true` the header will be set to `attachment` else `inline`.", - "schema": { - "type": "boolean", - "default": false - } - } - ], - "responses": { - "200": { - "description": "The document.", - "content": { - "application/octet-stream": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - } - } - }, - "/_action/document/{documentId}/upload": { - "post": { - "tags": [ - "Document Management" - ], - "summary": "Upload a file for a document", - "description": "Uploads a file for a document. This prevents the document from being dynamically generated and delivers the uploaded file instead, when the document is downloaded.\n\nNote:\n* The document is required to be `static`\n* A document can only have one media file\n\nThe are two methods of providing a file to this route:\n * Use a typical file upload and provide the file in the request\n * Fetch the file from an url. This only works if the `shopware.media.enable_url_upload_feature` variable is set to true in the shop environment.\nTo use file upload via url, the content type has to be `application/json` and the parameter `url` has to be provided.", - "operationId": "uploadToDocument", - "parameters": [ - { - "name": "documentId", - "in": "path", - "description": "Identifier of the document the new file should be added to.", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "name": "fileName", - "in": "query", - "description": "Name of the uploaded file.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "extension", - "in": "query", - "description": "Extension of the uploaded file. For example `pdf`", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/octet-stream": { - "schema": { - "type": "string", - "format": "binary" - } - }, - "application/json": { - "schema": { - "required": [ - "url" - ], - "properties": { - "url": { - "description": "The url of the document that will be downloaded.", - "type": "string" - } - }, - "type": "object" - } - } - } - }, - "responses": { - "200": { - "description": "Document uploaded successful", - "content": { - "application/json": { - "schema": { - "properties": { - "documentId": { - "description": "Identifier of the document.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "documentDeepLink": { - "description": "A unique hash code which is required to open the document.", - "type": "string" - } - }, - "type": "object" - } - } - } - } - } - } - }, - "/_action/container_cache": { - "delete": { - "tags": [ - "System Operations" - ], - "summary": "Clear container caches", - "description": "The container cache is immediately cleared synchronously.", - "operationId": "clearContainerCache", - "responses": { - "204": { - "description": "Returns a no content response indicating that the container cache is cleared." - } - } - } - }, "/_action/mail-template/send": { "post": { "tags": [ @@ -66092,60 +65763,76 @@ } } }, - "/oauth/token": { + "/_info/openapi3.json": { + "get": { + "tags": [ + "System Info & Health Check" + ], + "summary": "Get OpenAPI Specification", + "description": "Get information about the admin API in OpenAPI format.", + "operationId": "api-info", + "parameters": [ + { + "name": "type", + "in": "query", + "description": "Type of the api", + "schema": { + "type": "string", + "enum": [ + "jsonapi", + "json" + ] + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/OpenApi3" + } + } + } + }, + "/_proxy/generate-imitate-customer-token": { "post": { "tags": [ - "Authorization & Authentication" + "Customer impersonation" ], - "summary": "Fetch an access token", - "description": "Fetch a access token that can be used to perform authenticated requests. For more information take a look at the [Authentication documentation](https://shopware.stoplight.io/docs/admin-api/docs/concepts/authentication-authorisation.md).", - "operationId": "token", + "summary": "Generate a customer impersonation token", + "description": "Generates a customer impersonation token for the given customer and sales channel.\n\nThe token can be used to authenticate as the customer in the sales channel.", + "operationId": "generateImitateCustomerToken", "requestBody": { "required": true, "content": { "application/json": { "schema": { - "oneOf": [ - { - "$ref": "#/components/schemas/OAuthPasswordGrant" - }, - { - "$ref": "#/components/schemas/OAuthRefreshTokenGrant" + "required": [ + "customerId", + "salesChannelId" + ], + "properties": { + "customerId": { + "description": "ID of the customer", + "type": "string" }, - { - "$ref": "#/components/schemas/OAuthClientCredentialsGrant" + "salesChannelId": { + "description": "ID of the sales channel", + "type": "string" } - ] + }, + "type": "object" } } } }, "responses": { "200": { - "description": "Authorized successfully.", + "description": "The generated customer impersonation token.", "content": { "application/json": { "schema": { - "required": [ - "token_type", - "expires_in", - "access_token" - ], "properties": { - "token_type": { - "description": "Type of the token.", - "type": "string" - }, - "expires_in": { - "description": "Token lifetime in seconds.", - "type": "integer" - }, - "access_token": { - "description": "The access token that can be used for subsequent requests", - "type": "string" - }, - "refresh_token": { - "description": "The refresh token that can be used to refresh the access token. This field is not returned on grant type `refresh_token`.", + "token": { + "description": "The generated customer impersonation token", "type": "string" } }, @@ -66153,26 +65840,38 @@ } } } - }, - "400": { - "$ref": "#/components/responses/400" } } } }, - "/_action/order_transaction_capture_refund/{refundId}": { + "/_action/indexing": { "post": { "tags": [ - "Order Management" + "System Operations" ], - "summary": "Refund an order transaction capture", - "description": "Refunds an order transaction capture.", - "operationId": "orderTransactionCaptureRefund", + "summary": "Run indexer", + "description": "Runs all registered indexer in the shop asynchronously.", + "operationId": "indexing", + "responses": { + "200": { + "description": "Returns an empty response indicating that the indexing process started." + } + } + } + }, + "/_action/indexing/{indexer}": { + "post": { + "tags": [ + "System Operations" + ], + "summary": "Iterate an indexer", + "description": "Starts a defined indexer with an offset.\n\nfor the next request. `finish: true` in the response indicates that the indexer is finished", + "operationId": "iterate", "parameters": [ { - "name": "refundId", + "name": "indexer", "in": "path", - "description": "Identifier of the order transaction capture refund.", + "description": "Name of the indexer to iterate.", "required": true, "schema": { "type": "string", @@ -66180,37 +65879,35 @@ } } ], - "responses": { - "204": { - "description": "Refund was successful" - }, - "400": { - "description": "Something went wrong, while processing the refund" - }, - "404": { - "description": "Refund with id not found" + "requestBody": { + "content": { + "application/json": { + "schema": { + "properties": { + "offset": { + "description": "The offset for the iteration.", + "type": "integer" + } + }, + "type": "object" + } + } } - } - } - }, - "/_action/scheduled-task/run": { - "post": { - "tags": [ - "System Operations" - ], - "summary": "Run scheduled tasks.", - "description": "Starts the scheduled task worker to handle the next scheduled tasks.", - "operationId": "runScheduledTasks", + }, "responses": { "200": { - "description": "Returns a success message indicating a successful run.", + "description": "Returns information about the iteration.", "content": { "application/json": { "schema": { "properties": { - "message": { - "description": "Success message", - "type": "string" + "finish": { + "description": "Indicates if the indexing process finished.", + "type": "boolean" + }, + "offset": { + "description": "Offset to be used for the next iteration.", + "type": "integer" } }, "type": "object" @@ -66221,27 +65918,21 @@ } } }, - "/_action/scheduled-task/min-run-interval": { + "/_info/flow-actions.json": { "get": { "tags": [ - "System Operations" + "System Info & Health Check" ], - "summary": "Get the minimum schedules task interval", - "description": "Fetches the smallest interval that a scheduled task uses.", - "operationId": "getMinRunInterval", + "summary": "Get actions for flow builder", + "description": "Get a list of action for flow builder.", + "operationId": "flow-actions", "responses": { "200": { - "description": "Returns the minimum interval.", + "description": "Returns a list of action for flow builder.", "content": { "application/json": { "schema": { - "properties": { - "minRunInterval": { - "description": "Minimal interval in seconds.", - "type": "string" - } - }, - "type": "object" + "$ref": "#/components/schemas/flowBuilderActionsResponse" } } } @@ -66249,207 +65940,113 @@ } } }, - "/_action/order/{orderId}/order-address": { + "/_action/index": { "post": { "tags": [ - "Order address" - ], - "summary": "Update order addresses", - "description": "Endpoint which takes a list of mapping objects as payload and updates the order addresses accordingly", - "operationId": "updateOrderAddresses", - "parameters": [ - { - "name": "orderId", - "in": "path", - "description": "Identifier of the order.", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - } + "System Operations" ], + "summary": "Run indexer", + "description": "Runs all registered indexer in the shop asynchronously.", + "operationId": "index", "requestBody": { "content": { "application/json": { "schema": { - "type": "object", "properties": { - "mapping": { + "skip": { + "description": "Array of indexers/updaters to be skipped.", "type": "array", "items": { - "type": "object", - "properties": { - "customerAddressId": { - "type": "string", - "description": "The ID of the customer address" - }, - "type": { - "type": "string", - "description": "The type of the address" - }, - "deliveryId": { - "type": "string", - "description": "The ID of the delivery (optional)", - "nullable": true - } - }, - "required": [ - "customerAddressId", - "type" - ] - }, - "description": "The mapping of order addresses" + "type": "string" + } } - } + }, + "type": "object" } } - }, - "required": true + } }, "responses": { "204": { - "description": "Returns a no content response indicating that the update has been made." + "description": "Returns a no content response indicating that the indexing progress startet." } } } }, - "/_action/order_delivery/{orderDeliveryId}/state/{transition}": { + "/_action/order_transaction_capture_refund/{refundId}": { "post": { "tags": [ "Order Management" ], - "summary": "Transition an order delivery to a new state", - "description": "Changes the order delivery state and informs the customer via email if configured.", - "operationId": "orderDeliveryStateTransition", + "summary": "Refund an order transaction capture", + "description": "Refunds an order transaction capture.", + "operationId": "orderTransactionCaptureRefund", "parameters": [ { - "name": "orderDeliveryId", + "name": "refundId", "in": "path", - "description": "Identifier of the order delivery.", + "description": "Identifier of the order transaction capture refund.", "required": true, "schema": { "type": "string", "pattern": "^[0-9a-f]{32}$" } - }, - { - "name": "transition", - "in": "path", - "description": "The `action_name` of the `state_machine_transition`. For example `process` if the order state should change from open to in progress.\n\nNote: If you choose a transition which is not possible, you will get an error that lists possible transition for the actual state.", - "required": true, - "schema": { - "type": "string" - } } ], - "requestBody": { - "required": false, - "content": { - "application/json": { - "schema": { - "properties": { - "sendMail": { - "description": "Controls if a mail should be send to the customer." - }, - "documentIds": { - "description": "A list of document identifiers that should be attached", - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - "mediaIds": { - "description": "A list of media identifiers that should be attached", - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - "stateFieldName": { - "description": "This is the state column within the order delivery database table. There should be no need to change it from the default.", - "type": "string", - "default": "stateId" - } - }, - "type": "object" - } - } - } - }, "responses": { - "200": { - "description": "Todo: Use ref of `state_machine_transition` here" + "204": { + "description": "Refund was successful" + }, + "400": { + "description": "Something went wrong, while processing the refund" + }, + "404": { + "description": "Refund with id not found" } } } }, - "/_action/indexing": { - "post": { + "/_action/cleanup": { + "delete": { "tags": [ "System Operations" ], - "summary": "Run indexer", - "description": "Runs all registered indexer in the shop asynchronously.", - "operationId": "indexing", + "summary": "Clear old cache folders", + "description": "Removes cache folders that are not needed anymore.", + "operationId": "clearOldCacheFolders", "responses": { - "200": { - "description": "Returns an empty response indicating that the indexing process started." + "204": { + "description": "Returns a no content response indicating that the cleanup finished." } } } }, - "/_action/indexing/{indexer}": { - "post": { + "/_action/cache_info": { + "get": { "tags": [ "System Operations" ], - "summary": "Iterate an indexer", - "description": "Starts a defined indexer with an offset.\n\nfor the next request. `finish: true` in the response indicates that the indexer is finished", - "operationId": "iterate", - "parameters": [ - { - "name": "indexer", - "in": "path", - "description": "Name of the indexer to iterate.", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "properties": { - "offset": { - "description": "The offset for the iteration.", - "type": "integer" - } - }, - "type": "object" - } - } - } - }, + "summary": "Get cache information", + "description": "Get information about the cache configuration", + "operationId": "info", "responses": { "200": { - "description": "Returns information about the iteration.", + "description": "Information about the cache state.", "content": { "application/json": { "schema": { "properties": { - "finish": { - "description": "Indicates if the indexing process finished.", + "environment": { + "description": "The active environment.", + "type": "string" + }, + "httpCache": { + "description": "State of the HTTP cache.", "type": "boolean" }, - "offset": { - "description": "Offset to be used for the next iteration.", - "type": "integer" + "cacheAdapter": { + "description": "The active cache adapter.", + "type": "string" } }, "type": "object" @@ -66460,51 +66057,21 @@ } } }, - "/_proxy/generate-imitate-customer-token": { - "post": { + "/_info/config": { + "get": { "tags": [ - "Customer impersonation" + "System Info & Health Check" ], - "summary": "Generate a customer impersonation token", - "description": "Generates a customer impersonation token for the given customer and sales channel.\n\nThe token can be used to authenticate as the customer in the sales channel.", - "operationId": "generateImitateCustomerToken", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "required": [ - "customerId", - "salesChannelId" - ], - "properties": { - "customerId": { - "description": "ID of the customer", - "type": "string" - }, - "salesChannelId": { - "description": "ID of the sales channel", - "type": "string" - } - }, - "type": "object" - } - } - } - }, + "summary": "Get API information", + "description": "Get information about the API", + "operationId": "config", "responses": { "200": { - "description": "The generated customer impersonation token.", + "description": "Returns information about the API.", "content": { "application/json": { "schema": { - "properties": { - "token": { - "description": "The generated customer impersonation token", - "type": "string" - } - }, - "type": "object" + "$ref": "#/components/schemas/infoConfigResponse" } } } @@ -66512,34 +66079,19 @@ } } }, - "/_action/index-products": { - "post": { - "tags": [ - "System Operations" - ], - "summary": "Send product indexing message", - "description": "Dispatches a product indexing message to the message bus, with the provided ids", - "operationId": "productIndexing", - "responses": { - "204": { - "description": "Returns an empty response indicating that the message dispatched." - } - } - } - }, - "/_action/order_transaction/{orderTransactionId}/state/{transition}": { + "/_action/order_delivery/{orderDeliveryId}/state/{transition}": { "post": { "tags": [ "Order Management" ], - "summary": "Transition an order transaction to a new state", - "description": "Changes the order transaction state and informs the customer via email if configured.", - "operationId": "orderTransactionStateTransition", + "summary": "Transition an order delivery to a new state", + "description": "Changes the order delivery state and informs the customer via email if configured.", + "operationId": "orderDeliveryStateTransition", "parameters": [ { - "name": "orderTransactionId", + "name": "orderDeliveryId", "in": "path", - "description": "Identifier of the order transaction.", + "description": "Identifier of the order delivery.", "required": true, "schema": { "type": "string", @@ -66549,7 +66101,7 @@ { "name": "transition", "in": "path", - "description": "The `action_name` of the `state_machine_transition`. For example `process` if the order state should change from open to in progress.\n\nNote: If you choose a transition that is not available, you will get an error that lists possible transitions for the current state.", + "description": "The `action_name` of the `state_machine_transition`. For example `process` if the order state should change from open to in progress.\n\nNote: If you choose a transition which is not possible, you will get an error that lists possible transition for the actual state.", "required": true, "schema": { "type": "string" @@ -66563,7 +66115,7 @@ "schema": { "properties": { "sendMail": { - "description": "Controls if a mail should be sent to the customer." + "description": "Controls if a mail should be send to the customer." }, "documentIds": { "description": "A list of document identifiers that should be attached", @@ -66582,7 +66134,7 @@ } }, "stateFieldName": { - "description": "This is the state column within the order transaction database table. There should be no need to change it from the default.", + "description": "This is the state column within the order delivery database table. There should be no need to change it from the default.", "type": "string", "default": "stateId" } @@ -66594,231 +66146,37 @@ }, "responses": { "200": { - "description": "Returns information about the transition that was made. `#/components/schemas/StateMachineTransition`" - } - } - } - }, - "/_action/cache_info": { - "get": { - "tags": [ - "System Operations" - ], - "summary": "Get cache information", - "description": "Get information about the cache configuration", - "operationId": "info", - "responses": { - "200": { - "description": "Information about the cache state.", - "content": { - "application/json": { - "schema": { - "properties": { - "environment": { - "description": "The active environment.", - "type": "string" - }, - "httpCache": { - "description": "State of the HTTP cache.", - "type": "boolean" - }, - "cacheAdapter": { - "description": "The active cache adapter.", - "type": "string" - } - }, - "type": "object" - } - } - } - } - } - } - }, - "/_action/message-queue/consume": { - "post": { - "tags": [ - "System Operations" - ], - "summary": "Consume messages from the message queue.", - "description": "This route can be used to consume messages from the message queue. It is intended to be used if\nno cronjob is configured to consume messages regularly.", - "operationId": "consumeMessages", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "required": [ - "receiver" - ], - "properties": { - "receiver": { - "description": "The name of the transport in the messenger that should be processed.\nSee the [Symfony Messenger documentation](https://symfony.com/doc/current/messenger.html) for more information", - "type": "string" - } - }, - "type": "object" - } - } - } - }, - "responses": { - "200": { - "description": "Returns information about handled messages", - "content": { - "application/json": { - "schema": { - "properties": { - "handledMessages": { - "description": "The number of messages processed.", - "type": "integer" - } - }, - "type": "object" - } - } - } + "description": "Todo: Use ref of `state_machine_transition` here" } } } }, - "/_action/cleanup": { + "/_action/cache": { "delete": { "tags": [ "System Operations" ], - "summary": "Clear old cache folders", - "description": "Removes cache folders that are not needed anymore.", - "operationId": "clearOldCacheFolders", + "summary": "Clear caches", + "description": "The cache is immediately cleared synchronously for all used adapters.", + "operationId": "clearCache", "responses": { "204": { - "description": "Returns a no content response indicating that the cleanup finished." + "description": "Returns a no content response indicating that the cache has been cleared." } } } }, - "/_action/media/{mediaId}/upload": { + "/_action/index-products": { "post": { "tags": [ - "Asset Management" - ], - "summary": "Upload a file to a media entity", - "description": "Adds a new file to a media entity. If the entity has an existing file, it will be replaced.\n\nThe are two methods of providing a file to this route:\n * Use a typical file upload and provide the file in the request\n * Fetch the file from an url. This only works if the `shopware.media.enable_url_upload_feature` variable is set to true in the shop environment.\nTo use file upload via url, the content type has to be `application/json` and the parameter `url` has to be provided.", - "operationId": "upload", - "parameters": [ - { - "name": "mediaId", - "in": "path", - "description": "Identifier of the media entity.", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "name": "fileName", - "in": "query", - "description": "Name of the uploaded file. If not provided the media identifier will be used as name", - "schema": { - "type": "string" - } - }, - { - "name": "extension", - "in": "query", - "description": "Extension of the uploaded file. For example `png`", - "required": true, - "schema": { - "type": "string" - } - } + "System Operations" ], - "requestBody": { - "content": { - "application/octet-stream": { - "schema": { - "type": "string", - "format": "binary" - } - }, - "application/json": { - "schema": { - "required": [ - "url" - ], - "properties": { - "url": { - "description": "The url of the media file that will be downloaded.", - "type": "string" - } - }, - "type": "object" - } - } - } - }, + "summary": "Send product indexing message", + "description": "Dispatches a product indexing message to the message bus, with the provided ids", + "operationId": "productIndexing", "responses": { "204": { - "description": "Media file uploaded successful", - "headers": { - "Location": { - "description": "Contains the url to the uploaded media for a redirect.", - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/_info/config": { - "get": { - "tags": [ - "System Info & Health Check" - ], - "summary": "Get API information", - "description": "Get information about the API", - "operationId": "config", - "responses": { - "200": { - "description": "Returns information about the API.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/infoConfigResponse" - } - } - } - } - } - } - }, - "/_info/version": { - "get": { - "tags": [ - "System Info & Health Check" - ], - "summary": "Get the Shopware version", - "description": "Get the version of the Shopware instance", - "operationId": "infoShopwareVersion", - "responses": { - "200": { - "description": "Returns the version of the Shopware instance.", - "content": { - "application/json": { - "schema": { - "properties": { - "version": { - "description": "The Shopware version.", - "type": "string" - } - }, - "type": "object" - } - } - } + "description": "Returns an empty response indicating that the message dispatched." } } } @@ -67007,113 +66365,141 @@ } } }, - "/_info/health-check": { - "get": { + "/_action/container_cache": { + "delete": { "tags": [ - "System Info & Health Check" + "System Operations" ], - "summary": "Check that the Application is running", - "operationId": "healthCheck", + "summary": "Clear container caches", + "description": "The container cache is immediately cleared synchronously.", + "operationId": "clearContainerCache", "responses": { - "200": { - "description": "Returns empty response" - }, - "500": { - "description": "Application is not working properly" + "204": { + "description": "Returns a no content response indicating that the container cache is cleared." } } } }, - "/_info/system-health-check": { - "get": { + "/_action/scheduled-task/run": { + "post": { "tags": [ - "System Info & Health Check" - ], - "summary": "Perform a detailed system health check", - "operationId": "systemHealthCheck", - "parameters": [ - { - "name": "verbose", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": false - }, - "description": "Include detailed information in the response" - } + "System Operations" ], + "summary": "Run scheduled tasks.", + "description": "Starts the scheduled task worker to handle the next scheduled tasks.", + "operationId": "runScheduledTasks", "responses": { "200": { - "description": "Returns the system health check results", + "description": "Returns a success message indicating a successful run.", "content": { "application/json": { "schema": { - "type": "object", "properties": { - "checks": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "healthy": { - "type": "boolean" - }, - "status": { - "type": "string" - }, - "message": { - "type": "string" - }, - "extra": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - } - } - } + "message": { + "description": "Success message", + "type": "string" } - } + }, + "type": "object" } } } - }, - "500": { - "description": "Application is not working properly" } } } }, - "/_info/openapi3.json": { + "/_action/scheduled-task/min-run-interval": { "get": { "tags": [ - "System Info & Health Check" + "System Operations" ], - "summary": "Get OpenAPI Specification", - "description": "Get information about the admin API in OpenAPI format.", - "operationId": "api-info", - "parameters": [ - { - "name": "type", - "in": "query", - "description": "Type of the api", - "schema": { - "type": "string", - "enum": [ - "jsonapi", - "json" - ] + "summary": "Get the minimum schedules task interval", + "description": "Fetches the smallest interval that a scheduled task uses.", + "operationId": "getMinRunInterval", + "responses": { + "200": { + "description": "Returns the minimum interval.", + "content": { + "application/json": { + "schema": { + "properties": { + "minRunInterval": { + "description": "Minimal interval in seconds.", + "type": "string" + } + }, + "type": "object" + } + } } } + } + } + }, + "/oauth/token": { + "post": { + "tags": [ + "Authorization & Authentication" ], + "summary": "Fetch an access token", + "description": "Fetch a access token that can be used to perform authenticated requests. For more information take a look at the [Authentication documentation](https://shopware.stoplight.io/docs/admin-api/docs/concepts/authentication-authorisation.md).", + "operationId": "token", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "$ref": "#/components/schemas/OAuthPasswordGrant" + }, + { + "$ref": "#/components/schemas/OAuthRefreshTokenGrant" + }, + { + "$ref": "#/components/schemas/OAuthClientCredentialsGrant" + } + ] + } + } + } + }, "responses": { "200": { - "$ref": "#/components/responses/OpenApi3" + "description": "Authorized successfully.", + "content": { + "application/json": { + "schema": { + "required": [ + "token_type", + "expires_in", + "access_token" + ], + "properties": { + "token_type": { + "description": "Type of the token.", + "type": "string" + }, + "expires_in": { + "description": "Token lifetime in seconds.", + "type": "integer" + }, + "access_token": { + "description": "The access token that can be used for subsequent requests", + "type": "string" + }, + "refresh_token": { + "description": "The refresh token that can be used to refresh the access token. This field is not returned on grant type `refresh_token`.", + "type": "string" + } + }, + "type": "object" + } + } + } + }, + "400": { + "$ref": "#/components/responses/400" } } } @@ -67217,6 +66603,154 @@ } } }, + "/_info/version": { + "get": { + "tags": [ + "System Info & Health Check" + ], + "summary": "Get the Shopware version", + "description": "Get the version of the Shopware instance", + "operationId": "infoShopwareVersion", + "responses": { + "200": { + "description": "Returns the version of the Shopware instance.", + "content": { + "application/json": { + "schema": { + "properties": { + "version": { + "description": "The Shopware version.", + "type": "string" + } + }, + "type": "object" + } + } + } + } + } + } + }, + "/_info/routes": { + "get": { + "summary": "Get API routes", + "operationId": "getRoutes", + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "endpoints" + ], + "properties": { + "endpoints": { + "type": "array", + "items": { + "type": "object", + "required": [ + "methods", + "path" + ], + "properties": { + "methods": { + "type": "array", + "items": { + "type": "string" + } + }, + "path": { + "type": "string" + } + } + } + } + } + } + } + } + } + } + } + }, + "/_action/media/{mediaId}/upload": { + "post": { + "tags": [ + "Asset Management" + ], + "summary": "Upload a file to a media entity", + "description": "Adds a new file to a media entity. If the entity has an existing file, it will be replaced.\n\nThe are two methods of providing a file to this route:\n * Use a typical file upload and provide the file in the request\n * Fetch the file from an url. This only works if the `shopware.media.enable_url_upload_feature` variable is set to true in the shop environment.\nTo use file upload via url, the content type has to be `application/json` and the parameter `url` has to be provided.", + "operationId": "upload", + "parameters": [ + { + "name": "mediaId", + "in": "path", + "description": "Identifier of the media entity.", + "required": true, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + { + "name": "fileName", + "in": "query", + "description": "Name of the uploaded file. If not provided the media identifier will be used as name", + "schema": { + "type": "string" + } + }, + { + "name": "extension", + "in": "query", + "description": "Extension of the uploaded file. For example `png`", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/octet-stream": { + "schema": { + "type": "string", + "format": "binary" + } + }, + "application/json": { + "schema": { + "required": [ + "url" + ], + "properties": { + "url": { + "description": "The url of the media file that will be downloaded.", + "type": "string" + } + }, + "type": "object" + } + } + } + }, + "responses": { + "204": { + "description": "Media file uploaded successful", + "headers": { + "Location": { + "description": "Contains the url to the uploaded media for a redirect.", + "schema": { + "type": "string" + } + } + } + } + } + } + }, "/_info/events.json": { "get": { "tags": [ @@ -67238,6 +66772,472 @@ } } } + }, + "/_action/document/{documentId}/{deepLinkCode}": { + "get": { + "tags": [ + "Document Management" + ], + "summary": "Download a document", + "description": "Download a document by its identifier and deep link code.", + "operationId": "downloadDocument", + "parameters": [ + { + "name": "documentId", + "in": "path", + "description": "Identifier of the document to be downloaded.", + "required": true, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + { + "name": "deepLinkCode", + "in": "path", + "description": "A unique hash code which was generated when the document was created.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "download", + "in": "query", + "description": "This parameter controls the `Content-Disposition` header. If set to `true` the header will be set to `attachment` else `inline`.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "The document.", + "content": { + "application/octet-stream": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + } + }, + "/_action/document/{documentId}/upload": { + "post": { + "tags": [ + "Document Management" + ], + "summary": "Upload a file for a document", + "description": "Uploads a file for a document. This prevents the document from being dynamically generated and delivers the uploaded file instead, when the document is downloaded.\n\nNote:\n* The document is required to be `static`\n* A document can only have one media file\n\nThe are two methods of providing a file to this route:\n * Use a typical file upload and provide the file in the request\n * Fetch the file from an url. This only works if the `shopware.media.enable_url_upload_feature` variable is set to true in the shop environment.\nTo use file upload via url, the content type has to be `application/json` and the parameter `url` has to be provided.", + "operationId": "uploadToDocument", + "parameters": [ + { + "name": "documentId", + "in": "path", + "description": "Identifier of the document the new file should be added to.", + "required": true, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + { + "name": "fileName", + "in": "query", + "description": "Name of the uploaded file.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "extension", + "in": "query", + "description": "Extension of the uploaded file. For example `pdf`", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/octet-stream": { + "schema": { + "type": "string", + "format": "binary" + } + }, + "application/json": { + "schema": { + "required": [ + "url" + ], + "properties": { + "url": { + "description": "The url of the document that will be downloaded.", + "type": "string" + } + }, + "type": "object" + } + } + } + }, + "responses": { + "200": { + "description": "Document uploaded successful", + "content": { + "application/json": { + "schema": { + "properties": { + "documentId": { + "description": "Identifier of the document.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "documentDeepLink": { + "description": "A unique hash code which is required to open the document.", + "type": "string" + } + }, + "type": "object" + } + } + } + } + } + } + }, + "/_action/number-range/reserve/{type}/{saleschannel}": { + "get": { + "tags": [ + "Document Management" + ], + "summary": "Reserve or preview a number-range / document number.", + "description": "This endpoint provides functionality to reserve or preview a document number which can be used to create a new document using the `/_action/order/{orderId}/document/{documentTypeName}` endpoint.\n\nThe number generated by the endpoint will be reserved and the number pointer will be incremented with every call. For preview purposes, you can add the `?preview=1` parameter to the request. In that case, the number will not be incremented.", + "operationId": "numberRangeReserve", + "parameters": [ + { + "name": "type", + "in": "path", + "description": "`technicalName` of the document type (e.g. `document_invoice`). Available types can be fetched with the `/api/document-type endpoint`.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "saleschannel", + "in": "path", + "description": "Sales channel for the number range. Number ranges can be defined per sales channel, so you can pass a sales channel ID here.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "preview", + "in": "query", + "description": "If this parameter has a true value, the number will not actually be incremented, but only previewed.", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "The generated number", + "content": { + "application/json": { + "schema": { + "properties": { + "number": { + "description": "The generated (or previewed) document number.", + "type": "string" + } + }, + "type": "object" + } + } + } + }, + "400": { + "description": "Number range not found" + } + } + } + }, + "/_action/message-queue/consume": { + "post": { + "tags": [ + "System Operations" + ], + "summary": "Consume messages from the message queue.", + "description": "This route can be used to consume messages from the message queue. It is intended to be used if\nno cronjob is configured to consume messages regularly.", + "operationId": "consumeMessages", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "required": [ + "receiver" + ], + "properties": { + "receiver": { + "description": "The name of the transport in the messenger that should be processed.\nSee the [Symfony Messenger documentation](https://symfony.com/doc/current/messenger.html) for more information", + "type": "string" + } + }, + "type": "object" + } + } + } + }, + "responses": { + "200": { + "description": "Returns information about handled messages", + "content": { + "application/json": { + "schema": { + "properties": { + "handledMessages": { + "description": "The number of messages processed.", + "type": "integer" + } + }, + "type": "object" + } + } + } + } + } + } + }, + "/_info/health-check": { + "get": { + "tags": [ + "System Info & Health Check" + ], + "summary": "Check that the Application is running", + "operationId": "healthCheck", + "responses": { + "200": { + "description": "Returns empty response" + }, + "500": { + "description": "Application is not working properly" + } + } + } + }, + "/_info/system-health-check": { + "get": { + "tags": [ + "System Info & Health Check" + ], + "summary": "Perform a detailed system health check", + "operationId": "systemHealthCheck", + "parameters": [ + { + "name": "verbose", + "in": "query", + "required": false, + "schema": { + "type": "boolean", + "default": false + }, + "description": "Include detailed information in the response" + } + ], + "responses": { + "200": { + "description": "Returns the system health check results", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "checks": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "healthy": { + "type": "boolean" + }, + "status": { + "type": "string" + }, + "message": { + "type": "string" + }, + "extra": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": true + } + } + } + } + } + } + } + } + } + }, + "500": { + "description": "Application is not working properly" + } + } + } + }, + "/_action/order/{orderId}/order-address": { + "post": { + "tags": [ + "Order address" + ], + "summary": "Update order addresses", + "description": "Endpoint which takes a list of mapping objects as payload and updates the order addresses accordingly", + "operationId": "updateOrderAddresses", + "parameters": [ + { + "name": "orderId", + "in": "path", + "description": "Identifier of the order.", + "required": true, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "mapping": { + "type": "array", + "items": { + "type": "object", + "properties": { + "customerAddressId": { + "type": "string", + "description": "The ID of the customer address" + }, + "type": { + "type": "string", + "description": "The type of the address" + }, + "deliveryId": { + "type": "string", + "description": "The ID of the delivery (optional)", + "nullable": true + } + }, + "required": [ + "customerAddressId", + "type" + ] + }, + "description": "The mapping of order addresses" + } + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Returns a no content response indicating that the update has been made." + } + } + } + }, + "/_action/order_transaction/{orderTransactionId}/state/{transition}": { + "post": { + "tags": [ + "Order Management" + ], + "summary": "Transition an order transaction to a new state", + "description": "Changes the order transaction state and informs the customer via email if configured.", + "operationId": "orderTransactionStateTransition", + "parameters": [ + { + "name": "orderTransactionId", + "in": "path", + "description": "Identifier of the order transaction.", + "required": true, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + { + "name": "transition", + "in": "path", + "description": "The `action_name` of the `state_machine_transition`. For example `process` if the order state should change from open to in progress.\n\nNote: If you choose a transition that is not available, you will get an error that lists possible transitions for the current state.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "properties": { + "sendMail": { + "description": "Controls if a mail should be sent to the customer." + }, + "documentIds": { + "description": "A list of document identifiers that should be attached", + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + "mediaIds": { + "description": "A list of media identifiers that should be attached", + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + "stateFieldName": { + "description": "This is the state column within the order transaction database table. There should be no need to change it from the default.", + "type": "string", + "default": "stateId" + } + }, + "type": "object" + } + } + } + }, + "responses": { + "200": { + "description": "Returns information about the transition that was made. `#/components/schemas/StateMachineTransition`" + } + } + } } }, "components": { @@ -107755,130 +107755,6 @@ } } }, - "OAuthScopes": { - "description": "OAuth scopes that should be requested.", - "type": "string", - "enum": [ - "write", - "user-verified", - "admin", - "write user-verified", - "write admin", - "user-verified admin", - "write user-verified admin" - ] - }, - "OAuthGrant": { - "type": "object", - "properties": { - "grant_type": { - "description": "OAuth grant type that should be requested. See [OAuth 2.0 grant](https://oauth2.thephpleague.com/authorization-server/which-grant/) for more information.", - "type": "string" - } - }, - "required": [ - "grant_type" - ], - "discriminator": { - "propertyName": "grant_type", - "mapping": { - "client_credentials": "#/components/schemas/OAuthClientCredentialsGrant", - "password": "#/components/schemas/OAuthPasswordGrant", - "refresh_token": "#/components/schemas/OAuthRefreshTokenGrant" - } - } - }, - "OAuthClientCredentialsGrant": { - "allOf": [ - { - "$ref": "#/components/schemas/OAuthGrant" - }, - { - "type": "object", - "properties": { - "client_id": { - "description": "OAuth client id.", - "type": "string" - }, - "client_secret": { - "description": "Password of the client that should be authenticated.", - "type": "string" - } - }, - "required": [ - "client_id", - "client_secret" - ] - } - ] - }, - "OAuthPasswordGrant": { - "allOf": [ - { - "$ref": "#/components/schemas/OAuthGrant" - }, - { - "type": "object", - "properties": { - "client_id": { - "description": "OAuth client id.", - "type": "string", - "enum": [ - "administration" - ] - }, - "scopes": { - "$ref": "#/components/schemas/OAuthScopes" - }, - "username": { - "description": "Username of the user that should be authenticated.", - "type": "string" - }, - "password": { - "description": "Password of the user that should be authenticated.", - "type": "string" - } - }, - "required": [ - "client_id", - "scopes", - "username", - "password" - ] - } - ] - }, - "OAuthRefreshTokenGrant": { - "allOf": [ - { - "$ref": "#/components/schemas/OAuthGrant" - }, - { - "type": "object", - "properties": { - "client_id": { - "description": "OAuth client id.", - "type": "string", - "enum": [ - "administration" - ] - }, - "scopes": { - "$ref": "#/components/schemas/OAuthScopes" - }, - "refresh_token": { - "description": "The refresh token that should be used to refresh the access token.", - "type": "string" - } - }, - "required": [ - "client_id", - "scopes", - "refresh_token" - ] - } - ] - }, "Price": { "type": "object", "description": "Price object", @@ -107958,6 +107834,32 @@ "net" ] }, + "flowBuilderActionsResponse": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the flow action" + }, + "requirements": { + "type": "array", + "description": "When requirement fit with aware from `events.json` actions will be shown", + "items": { + "type": "string" + } + }, + "extensions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Extensions data of event" + } + } + } + }, "businessEventsResponse": { "type": "array", "items": { @@ -108009,6 +107911,130 @@ } } }, + "OAuthScopes": { + "description": "OAuth scopes that should be requested.", + "type": "string", + "enum": [ + "write", + "user-verified", + "admin", + "write user-verified", + "write admin", + "user-verified admin", + "write user-verified admin" + ] + }, + "OAuthGrant": { + "type": "object", + "properties": { + "grant_type": { + "description": "OAuth grant type that should be requested. See [OAuth 2.0 grant](https://oauth2.thephpleague.com/authorization-server/which-grant/) for more information.", + "type": "string" + } + }, + "required": [ + "grant_type" + ], + "discriminator": { + "propertyName": "grant_type", + "mapping": { + "client_credentials": "#/components/schemas/OAuthClientCredentialsGrant", + "password": "#/components/schemas/OAuthPasswordGrant", + "refresh_token": "#/components/schemas/OAuthRefreshTokenGrant" + } + } + }, + "OAuthClientCredentialsGrant": { + "allOf": [ + { + "$ref": "#/components/schemas/OAuthGrant" + }, + { + "type": "object", + "properties": { + "client_id": { + "description": "OAuth client id.", + "type": "string" + }, + "client_secret": { + "description": "Password of the client that should be authenticated.", + "type": "string" + } + }, + "required": [ + "client_id", + "client_secret" + ] + } + ] + }, + "OAuthPasswordGrant": { + "allOf": [ + { + "$ref": "#/components/schemas/OAuthGrant" + }, + { + "type": "object", + "properties": { + "client_id": { + "description": "OAuth client id.", + "type": "string", + "enum": [ + "administration" + ] + }, + "scopes": { + "$ref": "#/components/schemas/OAuthScopes" + }, + "username": { + "description": "Username of the user that should be authenticated.", + "type": "string" + }, + "password": { + "description": "Password of the user that should be authenticated.", + "type": "string" + } + }, + "required": [ + "client_id", + "scopes", + "username", + "password" + ] + } + ] + }, + "OAuthRefreshTokenGrant": { + "allOf": [ + { + "$ref": "#/components/schemas/OAuthGrant" + }, + { + "type": "object", + "properties": { + "client_id": { + "description": "OAuth client id.", + "type": "string", + "enum": [ + "administration" + ] + }, + "scopes": { + "$ref": "#/components/schemas/OAuthScopes" + }, + "refresh_token": { + "description": "The refresh token that should be used to refresh the access token.", + "type": "string" + } + }, + "required": [ + "client_id", + "scopes", + "refresh_token" + ] + } + ] + }, "Criteria": { "type": "object", "description": "Criteria to query entities.", @@ -108179,32 +108205,6 @@ } } }, - "flowBuilderActionsResponse": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Name of the flow action" - }, - "requirements": { - "type": "array", - "description": "When requirement fit with aware from `events.json` actions will be shown", - "items": { - "type": "string" - } - }, - "extensions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Extensions data of event" - } - } - } - }, "Cart": { "properties": { "id": {