diff --git a/2026R1/LightingSystems-26-r1/AVX_REST_APIs_desc_content_lighting_system.md b/2026R1/LightingSystems-26-r1/AVX_REST_APIs_desc_content_lighting_system.md new file mode 100644 index 0000000000..278fde02af --- /dev/null +++ b/2026R1/LightingSystems-26-r1/AVX_REST_APIs_desc_content_lighting_system.md @@ -0,0 +1,145 @@ +# Lighting Systems REST API Description + +## Introduction + +With the Lighting Systems REST API, you can: + +- create a new lighting system and all its elements, then set their respective properties, +- upload a packed lighting system, then add/remove or edit its elements or properties, +- download the lighting system as a file once the lighting system and its elements are created and their properties are set. + +To use Lighting Systems REST API, you have to install the AVxcelerate Sensors package. + +To operate Lighting Systems REST API uses TCP port 5127. + +To access the Lighting Systems REST API, start the server using the script provided in the *Lighting\_System\_Creation\_API* folder: + +- on Windows: `lighting-systems-api.ps1` +- on Linux: `lighting-systems-api.sh` + +An interactive version of the API documentation, with a Swagger interface, is available when running the script with the \`start-doc\` argument. + +The **REFERENCE DOCUMENTATION** provided on the Developer Portal is not testable. + +## Resources + +In AVxcelerate Sensors Simulator, a lighting system defines the ego vehicle's lightings which are rendered in camera simulation outputs. + +A lighting system is composed of: + +- projectors, usually 2 \(front right and front left\) +- one or several modules in each projector +- one or several lamps in each module + +For more information about the Lighting System elements and their properties, refer to the **Advanced Lighting System** chapter in AVxcelerate Sensors Simulator User's Guide. + +In Lighting Systems REST API, a lighting system, as well as each element that it includes, has a unique identifier that is automatically generated and not editable. To read or update the properties of an element and to delete an element, the required input parameters are the element's identifier and the identifier of all its predecessors. For example, to update a lamp's properties, the required input parameters are the lighting system identifier, the projector identifier, the module identifier and the lamp identifier. To create a new element, the required input parameters are the identifier of all its predecessors. For example, to create a new lamp, the required input parameters are the lighting system identifier, the projector identifier and the module identifier. + +**Important Note**: The Lighting Systems REST API is a non-persistent service. Any data created or updated via REST calls is lost as soon as the service is stopped. To save your work, always download a packed version of the created or edited lighting system\(s\) before stopping the service. + +## Platform overview + +Creating advanced Lighting Systems is one of the steps needed to prepare a sensor simulation to be run in AVxcelerate Sensors Simulator. + +Once created, an advanced Lighting System can be downloaded as a packed file \(.lightingsystemx\) so that it can be set as a resource for simulation in AVxcelerate Sensors Simulator. + +![](images/Lighting_Systems_API.png) + +Using Lighting Systems REST API, you can develop applications for batch creation and management of advanced Lighting Systems. + +## Requests + +The easiest way to send API requests is using the Swagger UI interactive documentation, however you can also use Curl or Postman. + +Here are some request examples. + +**GET request** + +To list all the Lighting Systems: + +Curl + +``` +curl -X 'GET' \ + 'http://localhost:5126/avx-lightingsystem/v1/lightingsystems' \ + -H 'accept: application/json' +``` + +Postman + +**GET** `http://localhost:5126/avx-lightingsystem/v1/lightingsystems` + +**POST request** + +To create a new empty Lighting System: + +Curl + +``` +curl -X 'POST' \ + 'http://localhost:5126/avx-lightingsystem/v1/lightingsystems' \ + -H 'accept: application/json' \ + -d '' +``` + +Postman + +**POST** `http://localhost:5126/avx-lightingsystem/v1/lightingsystems` + +**PATCH request** + +To modify the name of a Lighting System: + +Curl + +``` +curl -X 'PATCH' \ + 'http://localhost:5126/avx-lightingsystem/v1/lightingsystems/a2d588b2-7ff4-4f99-a6d8-acac8b383790' \ + -H 'accept: application/json' \ + -H 'Content-Type: application/json-patch+json' \ + -d '{ + "name": "new LS name" +}' +``` + +Postman + +**PATCH** `http://localhost:5126/avx-lightingsystem/v1/lightingsystems/a2d588b2-7ff4-4f99-a6d8-acac8b383790` + +In the request body, select **Raw \> json**, then define the name, for example: + +``` +{ + "name": "new LS name" +} +``` + +**DELETE request** + +To delete a Lighting System: + +Curl + +``` +curl -X 'DELETE' \ + 'http://localhost:5126/avx-lightingsystem/v1/lightingsystems/2bbfca3b-356c-46bc-8ade-64ce2ad2a59a' \ + -H 'accept: application/json' +``` + +Postman + +**DELETE** `http://localhost:5126/avx-lightingsystem/v1/lightingsystems/2bbfca3b-356c-46bc-8ade-64ce2ad2a59a` + +## Responses + +The **REFERENCE DOCUMENTATION** provides response samples in json format for each endpoint. + +Here are the possible response types: + +|Response|Description| +|--------|-----------| +|`200 Success`|Success with or without response body.| +|`400 Bad Request`| | +|`404 Not Found`| | +|`Default Error`| | + diff --git a/2026R1/LightingSystems-26-r1/Lighting_System_REST_API_v1_261_changelog.md b/2026R1/LightingSystems-26-r1/Lighting_System_REST_API_v1_261_changelog.md new file mode 100644 index 0000000000..073c222616 --- /dev/null +++ b/2026R1/LightingSystems-26-r1/Lighting_System_REST_API_v1_261_changelog.md @@ -0,0 +1,26 @@ +# Changelog + +## v1 2026 R1 + +Here are the changes introduced in the Lighting System API v1 released in 2026 R1 compared to v1 released in 2024 R2. + +[Non-breaking change] The following new methods have been added to configure a pixel beam: + +- **GET /avx-lightingsystem/v1/lightingsystems/{lightingSystemIdentifier}/projectors/{projectorIdentifier}/modules/{moduleIdentifier}/pixelbeam** to list the pixel beam properties configured for the module. +- **PATCH /avx-lightingsystem/v1/lightingsystems/{lightingSystemIdentifier}/projectors/{projectorIdentifier}/modules/{moduleIdentifier}/pixelbeam** to configure a pixel beam for the module. + +[Breaking change] The name of the property required in the request body of the **POST /avx-lightingsystem/v1/lightingsystems/packed** method has changed: it is now `file` (multipart/form-data) instead of `fileName` (multipart/form-data). + +## v1 2024 R2 + +Here are the changes introduced in the Lighting System API v1 released in 2024 R2 compared to v1 released in 2024 R1. + +The following new methods have been added to manage tags associated with lamps. + +- **POST /avx-lightingsystem/v1/lightingsystems/{lightingSystemIdentifier}/projectors/{projectorIdentifier}/modules/{moduleIdentifier}/lamps/{lampIdentifier}/tags/{tagIdentifier}** to add a tag in a lamp. +- **POST/avx-lightingsystem/v1/lightingsystems/{lightingSystemIdentifier}/projectors/{projectorIdentifier}/modules/{moduleIdentifier}/lamps/{lampIdentifier}/addmultipletags** to add several tags in a lamp. +- **GET /avx-lightingsystem/v1/lightingsystems/{lightingSystemIdentifier}/projectors/{projectorIdentifier}/modules/{moduleIdentifier}/lamps/{lampIdentifier}/tags** to list of tags in a lamp. +- **DELETE /avx-lightingsystem/v1/lightingsystems/{lightingSystemIdentifier}/projectors/{projectorIdentifier}/modules/{moduleIdentifier}/lamps/{lampIdentifier}/tags/{tagIdentifier}** to remove a tag in a lamp. +- **DELETE /avx-lightingsystem/v1/lightingsystems/{lightingSystemIdentifier}/projectors/{projectorIdentifier}/modules/{moduleIdentifier}/lamps/{lampIdentifier}/tags/removemultipletags** to remove several tags in a lamp. + +The new *tags* property (array of strings) has been added to the **Lamp** schema. \ No newline at end of file diff --git a/2026R1/LightingSystems-26-r1/Lighting_Systems_v1_261.json b/2026R1/LightingSystems-26-r1/Lighting_Systems_v1_261.json new file mode 100644 index 0000000000..9d18e2a606 --- /dev/null +++ b/2026R1/LightingSystems-26-r1/Lighting_Systems_v1_261.json @@ -0,0 +1,2683 @@ +{ + "openapi": "3.0.1", + "info": { + "title": "Lighting Systems", + "description": "The Lighting Systems REST API allows you to create, update and manage advanced Lighting Systems.", + "version": "v1" + }, + "paths": { + "/avx-lightingsystem/v1/spectrums/{id}": { + "delete": { + "tags": [ + "Spectrum files" + ], + "summary": "Delete the spectrum file with the given identifier.", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Unique identifier of a spectrum file.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "get": { + "tags": [ + "Spectrum files" + ], + "summary": "Download the spectrum file with the given identifier.", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Unique identifier of a spectrum file.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/avx-lightingsystem/v1/ies/{id}": { + "delete": { + "tags": [ + "Ies files" + ], + "summary": "Delete the IES file with the given identifier.", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Unique identifier of an IES file.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "get": { + "tags": [ + "Ies files" + ], + "summary": "Download the IES file with the given identifier.", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Unique identifier of an IES file.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/avx-lightingsystem/v1/lightingsystems/{lightingSystemIdentifier}/projectors/{projectorIdentifier}/modules/{moduleIdentifier}/lamps/{lampIdentifier}": { + "delete": { + "tags": [ + "Lamps" + ], + "summary": "Delete a lamp.", + "parameters": [ + { + "name": "lightingSystemIdentifier", + "in": "path", + "description": "Identifier of the lighting system containing the lamp to delete.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "projectorIdentifier", + "in": "path", + "description": "Identifier of the projector containing the lamp to delete.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "moduleIdentifier", + "in": "path", + "description": "Identifier of the module containing the lamp to delete.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "lampIdentifier", + "in": "path", + "description": "Identifier of the lamp to delete.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "get": { + "tags": [ + "Lamps" + ], + "summary": "Read a lamp.", + "parameters": [ + { + "name": "lightingSystemIdentifier", + "in": "path", + "description": "Identifier of the lighting system.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "projectorIdentifier", + "in": "path", + "description": "Identifier of the projector.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "moduleIdentifier", + "in": "path", + "description": "Identifier of the module.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "lampIdentifier", + "in": "path", + "description": "Identifier of the lamp to read.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Lamp" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "patch": { + "tags": [ + "Lamps" + ], + "summary": "Update all properties of an existing Lamp.", + "parameters": [ + { + "name": "lightingSystemIdentifier", + "in": "path", + "description": "Identifier of the lighting system containing the lamp to update.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "projectorIdentifier", + "in": "path", + "description": "Identifier of the projector containing the lamp to update.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "moduleIdentifier", + "in": "path", + "description": "Identifier of the module containing the lamp to update.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "lampIdentifier", + "in": "path", + "description": "Identifier of the lamp to update.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "Object containing the properties of the lamp.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Lamp" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Lamp" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Lamp" + } + } + } + }, + "responses": { + "204": { + "description": "No Content" + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/avx-lightingsystem/v1/lightingsystems/{lightingSystemIdentifier}": { + "delete": { + "tags": [ + "Lighting systems" + ], + "summary": "Delete a lighting system with the given identifier.", + "parameters": [ + { + "name": "lightingSystemIdentifier", + "in": "path", + "description": "Unique identifier of a lighting system in the library.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "get": { + "tags": [ + "Lighting systems" + ], + "summary": "Read a lighting system with the given identifier.", + "parameters": [ + { + "name": "lightingSystemIdentifier", + "in": "path", + "description": "Unique identifier of a lighting system in the library.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LightingSystemName" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "patch": { + "tags": [ + "Lighting systems" + ], + "summary": "Update the name of an existing lighting system.", + "parameters": [ + { + "name": "lightingSystemIdentifier", + "in": "path", + "description": "Unique identifier of a lighting system.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "description": "New name.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LightingSystemName" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/LightingSystemName" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/LightingSystemName" + } + } + } + }, + "responses": { + "204": { + "description": "No Content" + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/avx-lightingsystem/v1/lightingsystems/{lightingSystemIdentifier}/projectors/{projectorIdentifier}/modules/{moduleIdentifier}": { + "delete": { + "tags": [ + "Modules" + ], + "summary": "Delete a module.", + "parameters": [ + { + "name": "lightingSystemIdentifier", + "in": "path", + "description": "Identifier of the lighting system containing the module to delete.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "projectorIdentifier", + "in": "path", + "description": "Identifier of the projector containing the module to delete.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "moduleIdentifier", + "in": "path", + "description": "Identifier of the module to delete.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "get": { + "tags": [ + "Modules" + ], + "summary": "Read a module.", + "parameters": [ + { + "name": "lightingSystemIdentifier", + "in": "path", + "description": "Identifier of the lighting system containing the module to read.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "projectorIdentifier", + "in": "path", + "description": "Identifier of the projector containing the module to read.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "moduleIdentifier", + "in": "path", + "description": "Identifier of the module to read.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Module" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "patch": { + "tags": [ + "Modules" + ], + "summary": "Update the properties of an existing Module.", + "parameters": [ + { + "name": "lightingSystemIdentifier", + "in": "path", + "description": "Identifier of the lighting system containing the module to update.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "projectorIdentifier", + "in": "path", + "description": "Identifier of the projector containing the module to update.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "moduleIdentifier", + "in": "path", + "description": "Identifier of the module to update.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "Object containing the properties of the module.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Module" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Module" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Module" + } + } + } + }, + "responses": { + "204": { + "description": "No Content" + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/avx-lightingsystem/v1/lightingsystems/{lightingSystemIdentifier}/projectors/{projectorIdentifier}": { + "delete": { + "tags": [ + "Projectors" + ], + "summary": "Delete a projector.", + "parameters": [ + { + "name": "lightingSystemIdentifier", + "in": "path", + "description": "Identifier of the lighting system containing the projector to delete.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "projectorIdentifier", + "in": "path", + "description": "Identifier of the projector to delete.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "get": { + "tags": [ + "Projectors" + ], + "summary": "Read a projector.", + "parameters": [ + { + "name": "lightingSystemIdentifier", + "in": "path", + "description": "Identifier of the lighting system containing the projector to read.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "projectorIdentifier", + "in": "path", + "description": "Identifier of the projector.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Projector" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "patch": { + "tags": [ + "Projectors" + ], + "summary": "Update the properties of an existing projector.", + "parameters": [ + { + "name": "lightingSystemIdentifier", + "in": "path", + "description": "Identifier of the lighting system containing the projector to update.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "projectorIdentifier", + "in": "path", + "description": "Identifier of the projector to update.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "Object containing the properties of the projector.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Projector" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Projector" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Projector" + } + } + } + }, + "responses": { + "204": { + "description": "No Content" + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/avx-lightingsystem/v1/lightingsystems/{lightingSystemIdentifier}/projectors/{projectorIdentifier}/modules/{moduleIdentifier}/lamps/{lampIdentifier}/tags/removemultipletags": { + "delete": { + "tags": [ + "Tags" + ], + "summary": "Remove several tags in a lamp.", + "parameters": [ + { + "name": "lightingSystemIdentifier", + "in": "path", + "description": "Identifier of the lighting system.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "projectorIdentifier", + "in": "path", + "description": "Identifier of the projector.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "moduleIdentifier", + "in": "path", + "description": "Identifier of the module.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "lampIdentifier", + "in": "path", + "description": "Identifier of the lamp.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "A list of tags.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/avx-lightingsystem/v1/lightingsystems/{lightingSystemIdentifier}/projectors/{projectorIdentifier}/modules/{moduleIdentifier}/lamps/{lampIdentifier}/tags/{tagIdentifier}": { + "delete": { + "tags": [ + "Tags" + ], + "summary": "Remove a tag in a lamp.", + "parameters": [ + { + "name": "lightingSystemIdentifier", + "in": "path", + "description": "Identifier of the lighting system.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "projectorIdentifier", + "in": "path", + "description": "Identifier of the projector.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "moduleIdentifier", + "in": "path", + "description": "Identifier of the module.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "lampIdentifier", + "in": "path", + "description": "Identifier of the lamp.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tagIdentifier", + "in": "path", + "description": "A tag.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "post": { + "tags": [ + "Tags" + ], + "summary": "Add a tag in a lamp.", + "parameters": [ + { + "name": "lightingSystemIdentifier", + "in": "path", + "description": "Identifier of the lighting system.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "projectorIdentifier", + "in": "path", + "description": "Identifier of the projector.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "moduleIdentifier", + "in": "path", + "description": "Identifier of the module.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "lampIdentifier", + "in": "path", + "description": "Identifier of the lamp.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tagIdentifier", + "in": "path", + "description": "A tag.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "201": { + "description": "Created" + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/avx-lightingsystem/v1/spectrums": { + "get": { + "tags": [ + "Spectrum files" + ], + "summary": "List all the spectrum files.", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BlobInfo" + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "post": { + "tags": [ + "Spectrum files" + ], + "summary": "Upload a spectrum file.", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + } + }, + "encoding": { + "file": { + "style": "form" + } + } + } + } + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UniqueIdentifier" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/avx-lightingsystem/v1/ies": { + "get": { + "tags": [ + "Ies files" + ], + "summary": "List all the IES files.", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BlobInfo" + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "post": { + "tags": [ + "Ies files" + ], + "summary": "Upload an IES file.", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + } + }, + "encoding": { + "file": { + "style": "form" + } + } + } + } + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UniqueIdentifier" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/avx-lightingsystem/v1/lightingsystems/{lightingSystemIdentifier}/projectors/{projectorIdentifier}/modules/{moduleIdentifier}/lamps": { + "get": { + "tags": [ + "Lamps" + ], + "summary": "List all lamps contained in the module of a lighting system.", + "parameters": [ + { + "name": "lightingSystemIdentifier", + "in": "path", + "description": "Identifier of the lighting system.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "projectorIdentifier", + "in": "path", + "description": "Identifier of the projector.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "moduleIdentifier", + "in": "path", + "description": "Identifier of the module.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IndexedIdentifier" + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "post": { + "tags": [ + "Lamps" + ], + "summary": "Create a new empty lamp.", + "parameters": [ + { + "name": "lightingSystemIdentifier", + "in": "path", + "description": "Identifier of the lighting system.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "projectorIdentifier", + "in": "path", + "description": "Identifier of the projector.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "moduleIdentifier", + "in": "path", + "description": "Identifier of the module in which the lamp will be created.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IndexedIdentifier" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/avx-lightingsystem/v1/lightingsystems": { + "get": { + "tags": [ + "Lighting systems" + ], + "summary": "List all lighting systems.", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UniqueIdentifier" + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "post": { + "tags": [ + "Lighting systems" + ], + "summary": "Create a new empty lighting system.", + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UniqueIdentifier" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/avx-lightingsystem/v1/lightingsystems/{lightingSystemIdentifier}/packed": { + "get": { + "tags": [ + "Lighting systems" + ], + "summary": "Download a packed lighting system to a file with the specified name or as json string.", + "description": "
If the Accept header is set to \"application/octet-stream\" the request result will be a *.lightingsystemx file.\r\n
\r\n ```curl -X GET \"http://localhost:5006/avx-lightingsystem/v1/lightingsystems/a91c4485-3019-4a14-b3ea-3af17654f8e6/packed?fileName=test\" -H \"accept: application/octet-stream\"```\r\n\r\n
If the Accept header is set to \"application/json\" the request result will be a json string.\r\n
\r\n ```curl -X GET \"http://localhost:5006/avx-lightingsystem/v1/lightingsystems/a91c4485-3019-4a14-b3ea-3af17654f8e6/packed\" -H \"accept: application/json\"```\r\n", + "parameters": [ + { + "name": "lightingSystemIdentifier", + "in": "path", + "description": "Identifier of the lighting system in the library.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fileName", + "in": "query", + "description": "Desired name for the packed lighting system file.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "404": { + "description": "Not Found", + "content": { + "application/octet-stream": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/octet-stream": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/avx-lightingsystem/v1/lightingsystems/{lightingSystemIdentifier}/projectors/{projectorIdentifier}/modules": { + "get": { + "tags": [ + "Modules" + ], + "summary": "List all the modules contained in one of the projectors of a lighting system.", + "parameters": [ + { + "name": "lightingSystemIdentifier", + "in": "path", + "description": "Identifier of the lighting system.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "projectorIdentifier", + "in": "path", + "description": "Identifier of the projector.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IndexedIdentifier" + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "post": { + "tags": [ + "Modules" + ], + "summary": "Create a new empty module.", + "parameters": [ + { + "name": "lightingSystemIdentifier", + "in": "path", + "description": "Identifier of the lighting system where the module will be created.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "projectorIdentifier", + "in": "path", + "description": "Identifier of the projector where the module will be instantiated.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IndexedIdentifier" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/avx-lightingsystem/v1/lightingsystems/{lightingSystemIdentifier}/projectors/{projectorIdentifier}/modules/{moduleIdentifier}/pixelbeam": { + "get": { + "tags": [ + "Modules" + ], + "parameters": [ + { + "name": "lightingSystemIdentifier", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "projectorIdentifier", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "moduleIdentifier", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PixelBeam" + } + } + } + } + } + }, + "patch": { + "tags": [ + "Modules" + ], + "summary": "Sets a pixel beam to a module.", + "parameters": [ + { + "name": "lightingSystemIdentifier", + "in": "path", + "description": "Identifier of the lighting system containing the module to update.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "projectorIdentifier", + "in": "path", + "description": "Identifier of the projector containing the module to update.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "moduleIdentifier", + "in": "path", + "description": "Identifier of the module to update.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "The pixel beam to set.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PixelBeam" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/PixelBeam" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/PixelBeam" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/avx-lightingsystem/v1/lightingsystems/{lightingSystemIdentifier}/projectors": { + "get": { + "tags": [ + "Projectors" + ], + "summary": "List all projectors.", + "parameters": [ + { + "name": "lightingSystemIdentifier", + "in": "path", + "description": "Identifier of the lighting system containing all the projectors.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IndexedIdentifier" + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "post": { + "tags": [ + "Projectors" + ], + "summary": "Create a new empty projector.", + "parameters": [ + { + "name": "lightingSystemIdentifier", + "in": "path", + "description": "Identifier of the lighting system in which the projector will be created.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IndexedIdentifier" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/avx-lightingsystem/v1/lightingsystems/{lightingSystemIdentifier}/projectors/{projectorIdentifier}/modules/{moduleIdentifier}/lamps/{lampIdentifier}/tags": { + "get": { + "tags": [ + "Tags" + ], + "summary": "List of tags in a lamp.", + "parameters": [ + { + "name": "lightingSystemIdentifier", + "in": "path", + "description": "Identifier of the lighting system.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "projectorIdentifier", + "in": "path", + "description": "Identifier of the projector.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "moduleIdentifier", + "in": "path", + "description": "Identifier of the module.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "lampIdentifier", + "in": "path", + "description": "Identifier of the lamp.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/avx-lightingsystem/v1/lightingsystems/packed": { + "post": { + "tags": [ + "Lighting systems" + ], + "summary": "Upload a packed lighting system.", + "description": "
If the Accept header is set to \"application/octet-stream\" the request input will be a *.lightingsystemx file.\r\n
\r\n ```curl -X GET \"http://localhost:5006/avx-lightingsystem/v1/lightingsystems/a91c4485-3019-4a14-b3ea-3af17654f8e6/packed\" -H \"accept: application/octet-stream\"```\r\n", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + } + }, + "encoding": { + "file": { + "style": "form" + } + } + } + } + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UniqueIdentifier" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/avx-lightingsystem/v1/lightingsystems/{lightingSystemIdentifier}/projectors/{projectorIdentifier}/modules/{moduleIdentifier}/lamps/{lampIdentifier}/addmultipletags": { + "post": { + "tags": [ + "Tags" + ], + "summary": "Add several tags in a lamp.", + "parameters": [ + { + "name": "lightingSystemIdentifier", + "in": "path", + "description": "Identifier of the lighting system.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "projectorIdentifier", + "in": "path", + "description": "Identifier of the projector.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "moduleIdentifier", + "in": "path", + "description": "Identifier of the module.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "lampIdentifier", + "in": "path", + "description": "Identifier of the lamp.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "List of tags.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "responses": { + "201": { + "description": "Created" + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "BlobInfo": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "IndexedIdentifier": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Lamp": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "intensityId": { + "$ref": "#/components/schemas/UniqueIdentifier" + }, + "flux": { + "type": "number", + "format": "double" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "LightingSystemName": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Module": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "translation": { + "$ref": "#/components/schemas/Translation" + }, + "rotation": { + "$ref": "#/components/schemas/Rotation" + }, + "spectrumId": { + "$ref": "#/components/schemas/UniqueIdentifier" + }, + "pixelBeam": { + "$ref": "#/components/schemas/PixelBeam" + } + }, + "additionalProperties": false + }, + "PixelBeam": { + "type": "object", + "properties": { + "minimumHorizontalAngleInDegrees": { + "type": "number", + "format": "double" + }, + "maximumHorizontalAngleInDegrees": { + "type": "number", + "format": "double" + }, + "minimumVerticalAngleInDegrees": { + "type": "number", + "format": "double" + }, + "maximumVerticalAngleInDegrees": { + "type": "number", + "format": "double" + }, + "widthInPixels": { + "type": "integer", + "format": "int32" + }, + "heightInPixels": { + "type": "integer", + "format": "int32" + }, + "mask": { + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "nullable": true + } + }, + "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": { } + }, + "Projector": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "translation": { + "$ref": "#/components/schemas/Translation" + }, + "rotation": { + "$ref": "#/components/schemas/Rotation" + } + }, + "additionalProperties": false + }, + "Rotation": { + "type": "object", + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "z": { + "type": "number", + "format": "double" + } + }, + "additionalProperties": false + }, + "Translation": { + "type": "object", + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "z": { + "type": "number", + "format": "double" + } + }, + "additionalProperties": false + }, + "UniqueIdentifier": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + } + }, + "additionalProperties": false + } + } + } +} \ No newline at end of file diff --git a/2026R1/LightingSystems-26-r1/images/Lighting_Systems_API.png b/2026R1/LightingSystems-26-r1/images/Lighting_Systems_API.png new file mode 100644 index 0000000000..42482014d5 Binary files /dev/null and b/2026R1/LightingSystems-26-r1/images/Lighting_Systems_API.png differ