@northern.tech/testing 0.18.2 → 0.18.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/dist/mockData.d.cts +25 -51
  2. package/dist/mockData.d.ts +25 -51
  3. package/dist/requestHandlers/deploymentHandlers.cjs +3 -3
  4. package/dist/requestHandlers/deploymentHandlers.cjs.map +1 -1
  5. package/dist/requestHandlers/deploymentHandlers.d.cts +1 -2
  6. package/dist/requestHandlers/deploymentHandlers.d.ts +1 -2
  7. package/dist/requestHandlers/deploymentHandlers.js +3 -3
  8. package/dist/requestHandlers/deploymentHandlers.js.map +1 -1
  9. package/dist/requestHandlers/deviceHandlers.cjs +1 -1
  10. package/dist/requestHandlers/deviceHandlers.d.cts +4 -5
  11. package/dist/requestHandlers/deviceHandlers.d.ts +4 -5
  12. package/dist/requestHandlers/deviceHandlers.js +1 -1
  13. package/dist/requestHandlers/monitorHandlers.cjs +1 -1
  14. package/dist/requestHandlers/monitorHandlers.d.cts +1 -2
  15. package/dist/requestHandlers/monitorHandlers.d.ts +1 -2
  16. package/dist/requestHandlers/monitorHandlers.js +1 -1
  17. package/dist/requestHandlers/organizationHandlers.cjs +1 -1
  18. package/dist/requestHandlers/organizationHandlers.d.cts +1 -2
  19. package/dist/requestHandlers/organizationHandlers.d.ts +1 -2
  20. package/dist/requestHandlers/organizationHandlers.js +1 -1
  21. package/dist/requestHandlers/releaseHandlers.cjs +1 -1
  22. package/dist/requestHandlers/releaseHandlers.d.cts +1 -2
  23. package/dist/requestHandlers/releaseHandlers.d.ts +1 -2
  24. package/dist/requestHandlers/releaseHandlers.js +1 -1
  25. package/dist/requestHandlers/userHandlers.cjs +2 -2
  26. package/dist/requestHandlers/userHandlers.cjs.map +1 -1
  27. package/dist/requestHandlers/userHandlers.d.cts +1 -2
  28. package/dist/requestHandlers/userHandlers.d.ts +1 -2
  29. package/dist/requestHandlers/userHandlers.js +2 -2
  30. package/dist/requestHandlers/userHandlers.js.map +1 -1
  31. package/dist/requestHandlers/validation.cjs +1 -1
  32. package/dist/requestHandlers/validation.d.cts +2 -3
  33. package/dist/requestHandlers/validation.d.ts +2 -3
  34. package/dist/requestHandlers/validation.js +1 -1
  35. package/dist/setupTests.d.cts +7 -7
  36. package/dist/setupTests.d.ts +7 -7
  37. package/dist/theme/light.d.cts +1 -2
  38. package/dist/theme/light.d.ts +1 -2
  39. package/dist/theme/mui.d.cts +1 -0
  40. package/dist/theme/mui.d.ts +1 -0
  41. package/dist/utils.d.cts +2 -3
  42. package/dist/utils.d.ts +2 -3
  43. package/dist/validation-2v8lSCSx.cjs +75 -0
  44. package/dist/validation-2v8lSCSx.cjs.map +1 -0
  45. package/dist/validation-BQQeMmiR.js +64 -0
  46. package/dist/validation-BQQeMmiR.js.map +1 -0
  47. package/package.json +4 -3
  48. package/dist/validation-CRPLRTor.js +0 -64
  49. package/dist/validation-CRPLRTor.js.map +0 -1
  50. package/dist/validation-D5btBOXJ.cjs +0 -75
  51. package/dist/validation-D5btBOXJ.cjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"validation-CRPLRTor.js","names":["specYaml"],"sources":["../src/openapi.yaml","../src/requestHandlers/validation.ts"],"sourcesContent":["\"openapi: 3.0.1\\ninfo:\\n contact:\\n email: support@mender.io\\n name: support@mender.io\\n url: https://hosted.mender.io\\n description: |\\n Combined API specification for the features of the different Mender backend services, suitable for code generation applications\\n title: Mender API\\n version: '1'\\nservers:\\n - url: https://hosted.mender.io/\\ntags:\\n - name: Mender_API_Mender API\\n x-displayName: Mender API\\n - name: Audit_Logs_Internal API\\n x-displayName: Internal API\\n - name: Audit_Logs_Auditlogs Internal\\n x-displayName: Auditlogs Internal\\n - name: Audit_Logs_Management API\\n x-displayName: Management API\\n - name: Audit_Logs_Auditlogs Management\\n x-displayName: Auditlogs Management\\n - name: Deployments_Device API\\n x-displayName: Device API\\n - name: Deployments_v2_Device API\\n x-displayName: Device API\\n - name: Deployments_Internal_API_Internal API\\n x-displayName: Internal API\\n - name: Deployments_Management API\\n x-displayName: Management API\\n - name: Deployments_v1alpha1_Management API\\n x-displayName: Management API\\n - name: Deployments_v2_Management API\\n x-displayName: Management API\\n - name: Device_Authentication_Device API\\n x-displayName: Device API\\n - name: Device_Authentication_Internal API\\n x-displayName: Internal API\\n - name: Device_Authentication_Management API\\n x-displayName: Management API\\n - name: Device_configure_Device API\\n x-displayName: Device API\\n - name: Device_configure_Internal API\\n x-displayName: Internal API\\n - name: Device_configure_Management API\\n x-displayName: Management API\\n - name: Device_connect_Device API\\n x-displayName: Device API\\n - name: Device_connect_Internal API\\n x-displayName: Internal API\\n - name: Device_connect_Management API\\n x-displayName: Management API\\n - name: Device_monitor_Devices API\\n x-displayName: Devices API\\n - name: Device_monitor_Internal API\\n x-displayName: Internal API\\n - name: Device_monitor_Management API\\n x-displayName: Management API\\n - name: Device_inventory_Device API\\n x-displayName: Device API\\n - name: Device_inventory_Internal API\\n x-displayName: Internal API\\n - name: Device_inventory_filters_and_search_Internal API\\n x-displayName: Internal API\\n - name: Device_inventory_Management API\\n x-displayName: Management API\\n - name: Device_inventory_filters_and_search_Management API\\n x-displayName: Management API\\n - name: Inventory_v2alpha1_Management API\\n x-displayName: Management API\\n - name: IoT_Manager_Internal API\\n x-displayName: Internal API\\n - name: IoT_Manager_Management API\\n x-displayName: Management API\\n - name: Tenants_APIs_Internal API\\n x-displayName: Internal API\\n - name: Tenants_APIs_Tenantadm Internal\\n x-displayName: Tenantadm Internal\\n - name: Tenants_APIs_Management API\\n x-displayName: Management API\\n - name: Tenants_APIs_Tenantadm Management\\n x-displayName: Tenantadm Management\\n - name: Tenants_APIs_v2_Management API\\n x-displayName: Management API\\n - name: Tenants_APIs_v2_Tenantadm Management v2\\n x-displayName: Tenantadm Management v2\\n - name: User_administration_and_authentication_Internal API\\n x-displayName: Internal API\\n - name: User_Administration_Management API\\n x-displayName: Management API\\n - name: User_Administration_v2_Management API\\n x-displayName: Management API\\n - name: Workflows_other\\n x-displayName: other\\npaths:\\n /api/internal/v1/auditlogs/alive:\\n get:\\n tags:\\n - Audit_Logs_Auditlogs Internal\\n summary: Get liveliness status of service\\n operationId: Ping\\n responses:\\n '204':\\n description: Successful response.\\n content: {}\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/auditlogs/health:\\n get:\\n tags:\\n - Audit_Logs_Auditlogs Internal\\n summary: Get status of service\\n operationId: Auditlogs Internal Check Health\\n responses:\\n '204':\\n description: Successful response.\\n content: {}\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n '503':\\n description: Service unavailable\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n /api/internal/v1/auditlogs/tenants/{tenant_id}:\\n delete:\\n tags:\\n - Audit_Logs_Auditlogs Internal\\n summary: Delete all the logs for given tenant.\\n operationId: Delete Audit Logs\\n parameters:\\n - name: tenant_id\\n in: path\\n description: Tenant ID.\\n required: true\\n schema:\\n type: string\\n responses:\\n '204':\\n description: All the tenant logs have been successfully deleted.\\n content: {}\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/auditlogs/tenants/{tenant_id}/logs:\\n get:\\n tags:\\n - Audit_Logs_Auditlogs Internal\\n summary: Returns a list of audit log objects.\\n operationId: Get Audit Logs (internal)\\n parameters:\\n - name: tenant_id\\n in: path\\n description: Tenant ID.\\n required: true\\n schema:\\n type: string\\n - name: page\\n in: query\\n description: Starting page.\\n schema:\\n type: integer\\n default: 1\\n - name: per_page\\n in: query\\n description: Number of results per page.\\n schema:\\n type: integer\\n default: 10\\n - name: created_before\\n in: query\\n description: List only log entries created before and equal to Unix timestamp (UTC)\\n schema:\\n type: integer\\n - name: created_after\\n in: query\\n description: List only log entries created after and equal to Unix timestamp (UTC)\\n schema:\\n type: integer\\n - name: actor_id\\n in: query\\n description: If present, limits the results only to logs where actor has given id.\\n schema:\\n type: string\\n - name: actor_type\\n in: query\\n description: If present, limits the results only to logs where actor is of a given type.\\n schema:\\n type: string\\n enum:\\n - user\\n - device\\n - name: actor_email\\n in: query\\n description: If present, limits the results only to logs where actors has given email address.\\n schema:\\n type: string\\n - name: object_id\\n in: query\\n description: If present, limits the results only to logs where object has given id.\\n schema:\\n type: string\\n - name: object_type\\n in: query\\n description: If present, limits the results only to logs where object is of a given type.\\n schema:\\n type: string\\n enum:\\n - user\\n - deployment\\n - artifact\\n - device\\n - name: object_deployment_name\\n in: query\\n description: If present, limits the results only to logs where object is a deployment with a given name.\\n schema:\\n type: string\\n - name: sort\\n in: query\\n description: |\\n Supports sorting the log list by creation date.\\n By default logs are sorted by creation date in descending order (newest first).\\n schema:\\n type: string\\n enum:\\n - asc\\n - desc\\n responses:\\n '200':\\n description: Successful response.\\n headers:\\n X-Total-Count:\\n description: Total number of devices matched query.\\n schema:\\n type: string\\n Link:\\n description: |\\n Standard header used for page navigation, page relations: 'first', 'next' and 'prev'.\\n schema:\\n type: string\\n content:\\n application/json:\\n schema:\\n title: ListOfLogs\\n type: array\\n description: A list of audit logs is returned.\\n items:\\n $ref: '#/components/schemas/AuditLog'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n post:\\n tags:\\n - Audit_Logs_Auditlogs Internal\\n summary: Log event.\\n operationId: Save Audit Log\\n parameters:\\n - name: tenant_id\\n in: path\\n description: Tenant ID.\\n required: true\\n schema:\\n type: string\\n requestBody:\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/AuditLog'\\n required: true\\n responses:\\n '201':\\n description: Event has been successfully logged.\\n content: {}\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/management/v1/auditlogs/logs:\\n get:\\n tags:\\n - Audit_Logs_Auditlogs Management\\n summary: Returns a paged list of audit log objects.\\n operationId: Get Audit Logs\\n parameters:\\n - name: page\\n in: query\\n description: Starting page.\\n schema:\\n type: integer\\n default: 1\\n - name: per_page\\n in: query\\n description: Number of results per page.\\n schema:\\n type: integer\\n default: 10\\n - name: created_before\\n in: query\\n description: List only log entries created before and equal to Unix timestamp (UTC)\\n schema:\\n type: integer\\n - name: created_after\\n in: query\\n description: List only log entries created after and equal to Unix timestamp (UTC)\\n schema:\\n type: integer\\n - name: actor_id\\n in: query\\n description: If present, limits the results only to logs where the actor has a given id.\\n schema:\\n type: string\\n - name: actor_type\\n in: query\\n description: If present, limits the results only to logs where the actor is of a given type.\\n schema:\\n type: string\\n enum:\\n - user\\n - device\\n - name: actor_email\\n in: query\\n description: If present, limits the results only to logs where the actor has a given email address.\\n schema:\\n type: string\\n - name: object_id\\n in: query\\n description: If present, limits the results only to logs where the object has a given id.\\n schema:\\n type: string\\n - name: object_type\\n in: query\\n description: If present, limits the results only to logs where the object is of a given type.\\n schema:\\n type: string\\n enum:\\n - tenant\\n - user\\n - deployment\\n - artifact\\n - device\\n - name: object_deployment_name\\n in: query\\n description: If present, limits the results only to logs where the object is a deployment and has a given name.\\n schema:\\n type: string\\n - name: sort\\n in: query\\n description: |\\n Supports sorting the log list by creation date.\\n By default logs are sorted by creation date in descending order (newest first).\\n schema:\\n type: string\\n enum:\\n - asc\\n - desc\\n responses:\\n '200':\\n description: Successful response.\\n headers:\\n X-Total-Count:\\n description: Total number of devices matched query.\\n schema:\\n type: string\\n Link:\\n description: |\\n Standard header used for page navigation, page relations: 'first', 'next' and 'prev'.\\n schema:\\n type: string\\n content:\\n application/json:\\n schema:\\n title: ListOfLogs\\n type: array\\n description: A list of audit logs is returned.\\n items:\\n $ref: '#/components/schemas/AuditLog'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '429':\\n description: |\\n The user has sent too many requests in a given amount of time.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n x-mender-plan:\\n - enterprise\\n /api/management/v1/auditlogs/logs/export:\\n get:\\n tags:\\n - Audit_Logs_Auditlogs Management\\n summary: Returns a paged list of audit log objects in text/csv format.\\n operationId: Export Audit Logs\\n parameters:\\n - name: limit\\n in: query\\n description: Limit number of logs returned\\n schema:\\n type: integer\\n - name: created_before\\n in: query\\n description: List only log entries created before and equal to Unix timestamp (UTC)\\n schema:\\n type: integer\\n - name: created_after\\n in: query\\n description: List only log entries created after and equal to Unix timestamp (UTC)\\n schema:\\n type: integer\\n - name: actor_id\\n in: query\\n description: If present, limits the results only to logs where the actor has a given id.\\n schema:\\n type: string\\n - name: actor_type\\n in: query\\n description: If present, limits the results only to logs where the actor is of a given type.\\n schema:\\n type: string\\n enum:\\n - user\\n - device\\n - name: actor_email\\n in: query\\n description: If present, limits the results only to logs where the actors has a given email address.\\n schema:\\n type: string\\n - name: object_id\\n in: query\\n description: If present, limits the results only to logs where the object has a given id.\\n schema:\\n type: string\\n - name: object_type\\n in: query\\n description: If present, limits the results only to logs where the object is of a given type.\\n schema:\\n type: string\\n enum:\\n - user\\n - deployment\\n - artifact\\n - device\\n - name: object_deployment_name\\n in: query\\n description: If present, limits the results only to logs where the object is a deployment and has a given name.\\n schema:\\n type: string\\n - name: sort\\n in: query\\n description: |\\n Supports sorting the log list by creation date.\\n By default logs are sorted by creation date in descending order (newest first).\\n schema:\\n type: string\\n enum:\\n - asc\\n - desc\\n - name: format_separator\\n in: query\\n description: |\\n Format string used to separate nested fields in the exported csv header\\n schema:\\n type: string\\n default: .\\n - name: ignore\\n in: query\\n description: |\\n Header fields to ignore in the exported document (e.g. ignore=actor.id)\\n schema:\\n type: string\\n responses:\\n '200':\\n description: |\\n Successful response.\\n\\n Document follows in response body (chunked encoding).\\n content:\\n text/csv:\\n schema:\\n type: string\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '429':\\n description: |\\n The user has sent too many requests in a given amount of time.\\n content:\\n text/csv:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n x-mender-plan:\\n - enterprise\\n /api/devices/v1/deployments/artifacts:\\n get:\\n description: |\\n Returns a collection of up to 100 artifacts matching the provided release name and device type.\\n operationId: Device List Artifacts\\n parameters:\\n - description: name of the release\\n in: query\\n name: release_name\\n required: true\\n schema:\\n type: string\\n - description: Device type of device\\n in: query\\n name: device_type\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n content:\\n application/json:\\n example:\\n - id: 0c13a0e6-6b63-475d-8260-ee42a590e8ff\\n name: Application 1.0.0\\n description: Johns Monday test build\\n device_types_compatible:\\n - Beagle Bone\\n info:\\n format: mender\\n version: 3\\n updates:\\n - type_info:\\n type: rootfs-image\\n files:\\n - name: rootfs-image-1\\n checksum: cc436f982bc60a8255fe1926a450db5f195a19ad\\n size: 123\\n date: 2016-03-11T13:03:17.063+0000\\n meta_data: []\\n artifact_provides:\\n artifact_name: test\\n rootfs-image.checksum: 32714818ad6f98ee0185a52e23a475d89122e3efd2b2c26c733781c28e798c99\\n rootfs-image.version: test\\n artifact_depends:\\n device_type:\\n - test\\n clears_artifact_provides:\\n - rootfs-image.*\\n size: 36891648\\n modified: '2016-03-11T13:03:17.063493443Z'\\n schema:\\n type: array\\n items:\\n $ref: '#/components/schemas/Artifact'\\n description: Successful response.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - DeviceJWT: []\\n summary: List artifacts filtering by release name and device type\\n tags:\\n - Deployments_Device API\\n /api/devices/v1/deployments/artifacts/{id}:\\n get:\\n description: |\\n Returns the details of a selected artifact.\\n operationId: Device Show Artifact\\n parameters:\\n - description: Artifact identifier.\\n in: path\\n name: id\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n content:\\n application/json:\\n example:\\n id: 0c13a0e6-6b63-475d-8260-ee42a590e8ff\\n name: Application 1.0.0\\n description: Johns Monday test build\\n device_types_compatible:\\n - Beagle Bone\\n info:\\n format: mender\\n version: 3\\n updates:\\n - type_info:\\n type: rootfs-image\\n files:\\n - name: rootfs-image-1\\n checksum: cc436f982bc60a8255fe1926a450db5f195a19ad\\n size: 123\\n date: 2016-03-11T13:03:17.063+0000\\n meta_data: []\\n artifact_provides:\\n artifact_name: test\\n rootfs-image.checksum: 32714818ad6f98ee0185a52e23a475d89122e3efd2b2c26c733781c28e798c99\\n rootfs-image.version: test\\n artifact_depends:\\n device_type:\\n - test\\n clears_artifact_provides:\\n - rootfs-image.*\\n size: 36891648\\n modified: '2016-03-11T13:03:17.063493443Z'\\n schema:\\n $ref: '#/components/schemas/Artifact'\\n description: Successful response.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - DeviceJWT: []\\n summary: Get the details of a selected artifact\\n tags:\\n - Deployments_Device API\\n /api/devices/v1/deployments/artifacts/{id}/download:\\n get:\\n description: |\\n Generates signed URL for downloading artifact file. URI can be used only\\n with GET HTTP method. Link supports such HTTP headers: 'Range',\\n 'If-Modified-Since', 'If-Unmodified-Since' It is valid for specified\\n period of time.\\n operationId: Devices Download Artifact\\n parameters:\\n - description: Artifact identifier.\\n in: path\\n name: id\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/ArtifactLink'\\n description: Successful response.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - DeviceJWT: []\\n summary: Get the download link of a selected artifact\\n tags:\\n - Deployments_Device API\\n /api/devices/v1/deployments/device/deployments/next:\\n get:\\n description: |\\n On success, either an empty response or a DeploymentInstructions object\\n is returned depending on whether there are any pending updates.\\n operationId: Device Check Update\\n parameters:\\n - description: currently installed artifact\\n in: query\\n name: artifact_name\\n required: true\\n schema:\\n type: string\\n - description: Device type of device\\n in: query\\n name: device_type\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n content:\\n application/json:\\n example:\\n id: w81s4fae-7dec-11d0-a765-00a0c91e6bf6\\n artifact:\\n artifact_name: my-app-0.1\\n source:\\n uri: https://aws.myupdatebucket.com/image123\\n expire: '2016-03-11T13:03:17.063493443Z'\\n device_types_compatible:\\n - rspi\\n - rspi2\\n - rspi0\\n schema:\\n $ref: '#/components/schemas/DeploymentInstructions'\\n description: Successful response.\\n '204':\\n content: {}\\n description: No updates for device.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '409':\\n $ref: '#/components/responses/ConflictError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - DeviceJWT: []\\n summary: Get next update\\n tags:\\n - Deployments_Device API\\n post:\\n description: |\\n Returns the next update to be installed on the device.\\n Next update will be chosen based on parameters provided in the request\\n body. Request body should contain artifact_provides object.\\n operationId: Check Update Depends\\n requestBody:\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/CheckUpdateDependsRequest'\\n description: |\\n Key-value map of strings which describes the artifact(s) installed on the device and the\\n device itself. It is used to determine the next deployment. The keys device_type and\\n artifact_name are mandatory, additional free-form key-value pairs can be specified.\\n required: true\\n responses:\\n '200':\\n content:\\n application/json:\\n example:\\n id: w81s4fae-7dec-11d0-a765-00a0c91e6bf6\\n artifact:\\n artifact_name: my-app-0.1\\n source:\\n uri: https://aws.my.update.bucket.com/image_123\\n expire: '2016-03-11T13:03:17.063493443Z'\\n device_types_compatible:\\n - rspi\\n - rspi2\\n - rspi0\\n schema:\\n $ref: '#/components/schemas/DeploymentInstructions'\\n description: Successful response.\\n '204':\\n content: {}\\n description: No updates for device.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '409':\\n $ref: '#/components/responses/ConflictError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - DeviceJWT: []\\n summary: Get a next update satisfying dependencies\\n tags:\\n - Deployments_Device API\\n /api/devices/v1/deployments/device/deployments/{id}/status:\\n put:\\n description: |\\n Updates the status of a deployment on a particular device. Final status\\n of the deployment is required to be set to indicate the success or failure\\n of the installation process. The status can not be changed when deployment\\n status is set to aborted. Reporting of intermediate steps such as\\n installing, downloading, rebooting is optional.\\n operationId: Update Deployment Status\\n parameters:\\n - description: Deployment identifier.\\n in: path\\n name: id\\n required: true\\n schema:\\n type: string\\n requestBody:\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/DeploymentStatus'\\n description: Deployment status.\\n required: true\\n responses:\\n '204':\\n content: {}\\n description: Status updated successfully.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '409':\\n content: {}\\n description: Status already set to aborted.\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - DeviceJWT: []\\n summary: Update the device deployment status\\n tags:\\n - Deployments_Device API\\n /api/devices/v1/deployments/device/deployments/{id}/log:\\n put:\\n description: |\\n Set the log of a selected deployment. Messages are split by line in the payload.\\n operationId: Report Deployment Log\\n parameters:\\n - description: Deployment identifier.\\n in: path\\n name: id\\n required: true\\n schema:\\n type: string\\n requestBody:\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/DeploymentLog'\\n description: Deployment log\\n required: true\\n responses:\\n '204':\\n content: {}\\n description: The deployment log uploaded successfully.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - DeviceJWT: []\\n summary: Upload the device deployment log\\n tags:\\n - Deployments_Device API\\n /api/devices/v1/deployments/download/configuration/{deployment_id}/{device_type}/{device_id}:\\n get:\\n operationId: Fetch Configuration\\n parameters:\\n - description: Deployment UUID\\n in: path\\n name: deployment_id\\n required: true\\n schema:\\n type: string\\n - description: Device type of the calling device\\n in: path\\n name: device_type\\n required: true\\n schema:\\n type: string\\n - description: Device UUID\\n in: path\\n name: device_id\\n required: true\\n schema:\\n type: string\\n - description: Time of link expire\\n in: query\\n name: x-men-expire\\n required: true\\n schema:\\n format: date-time\\n type: string\\n - description: Signature of the URL link\\n in: query\\n name: x-men-signature\\n required: true\\n schema:\\n type: string\\n - description: Device tenant ID\\n in: query\\n name: tenant_id\\n schema:\\n type: string\\n responses:\\n '200':\\n content:\\n application/json:\\n schema:\\n description: Artifact file\\n format: binary\\n type: string\\n description: Successful response\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '403':\\n content: {}\\n description: The download link has expired or the signature is invalid.\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security: []\\n summary: |\\n Internally generated download link for deploying device configurations.\\n All parameters are generated internally when fetching a configuration deployment.\\n tags:\\n - Deployments_Device API\\n /api/devices/v2/deployments/device/deployments/next:\\n post:\\n description: |\\n Returns the next update to be installed on the device.\\n Next update will be chosen based on parameters provided in the request\\n body.\\n operationId: Check Update\\n requestBody:\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/CheckUpdateRequest'\\n description: |\\n Request which describes the artifact(s) installed on the devices and the supported features. The device_provides attribute contains a key-value map of strings which describes the artifact(s) installed on the device and the device itself. It is used to determine the next deployment. The keys device_type and artifact_name are mandatory, additional free-form key-value pairs can be specified.\\n required: true\\n responses:\\n '200':\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/DeploymentInstructionsV2'\\n description: Successful response.\\n '204':\\n content: {}\\n description: No updates for device.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '409':\\n $ref: '#/components/responses/ConflictError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - DeviceJWT: []\\n summary: Get a next update satisfying dependencies\\n tags:\\n - Deployments_v2_Device API\\n /api/devices/v2/deployments/device/deployments/{id}/update_control_map:\\n get:\\n description: |\\n Returns the update control map assigned to given, active deployment.\\n operationId: Get Update Control Map\\n parameters:\\n - description: Deployment identifier.\\n in: path\\n name: id\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/UpdateControlMap'\\n description: Successful response.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '404':\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n description: |\\n Device deployment with given ID does not exist\\n or has been finished.\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - DeviceJWT: []\\n summary: Get the update control map object\\n tags:\\n - Deployments_v2_Device API\\n /api/internal/v1/deployments/health:\\n get:\\n operationId: Deployments Internal Check Health\\n responses:\\n '204':\\n content: {}\\n description: |\\n Service is healthy and all dependencies are up and running.\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n '503':\\n content:\\n application/json:\\n example:\\n error: 'error reaching MongoDB: context deadline exceeded'\\n request_id: ffd712be-d697-4cb7-814b-88ff1e2eb5f6\\n schema:\\n $ref: '#/components/schemas/Error'\\n description: |\\n Service unhealthy / not ready to accept traffic. At least one dependency is not running.\\n summary: Check the health of the service\\n tags:\\n - Deployments_Internal_API_Internal API\\n /api/internal/v1/deployments/alive:\\n get:\\n operationId: Deployments Internal Check Liveliness\\n responses:\\n '204':\\n content: {}\\n description: Service is up and running.\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n summary: |\\n Trivial endpoint that unconditionally returns an empty 204 response whenever the API handler is running correctly.\\n tags:\\n - Deployments_Internal_API_Internal API\\n /api/internal/v1/deployments/tenants/config/binary_delta:\\n get:\\n description: |\\n Returns an array of objects containing the tenant ID and a boolean flag which represents whether the binary delta generation is enabled or not for the given tenant.\\n operationId: Get Binary Delta Configurations\\n parameters:\\n - name: tenant_id\\n in: query\\n description: Tenant ID filter. Can be repeated to query a set of entries.\\n explode: true\\n schema:\\n items:\\n type: string\\n type: array\\n style: form\\n responses:\\n '200':\\n content:\\n application/json:\\n example:\\n - tenant_id: 58be8208dd77460001fe0d78\\n enabled: true\\n - tenant_id: 58be8208dd77460001fe0d79\\n enabled: false\\n schema:\\n items:\\n $ref: '#/components/schemas/Get_Binary_Delta_Configurations_200_response_inner'\\n type: array\\n description: Successful response with binary delta configurations.\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n summary: Retrieve binary delta generation configurations for all tenants\\n tags:\\n - Deployments_Internal_API_Internal API\\n /api/internal/v1/deployments/tenants/{id}/storage/settings:\\n get:\\n description: |\\n Returns an object with per tenant storage layer specific settings.\\n operationId: Get Storage Settings\\n parameters:\\n - description: Tenant ID\\n in: path\\n name: id\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/StorageSettings'\\n description: Successful response with all available settings.\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n summary: Get storage setting for a given tenant\\n tags:\\n - Deployments_Internal_API_Internal API\\n put:\\n description: Set the storage layer settings for a given tenant.\\n operationId: Set Storage Settings\\n parameters:\\n - description: Tenant ID\\n in: path\\n name: id\\n required: true\\n schema:\\n type: string\\n requestBody:\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/StorageSettings'\\n description: |-\\n Settings to set.\\n If set to null or an empty object, the tenant will use the default settings.\\n required: false\\n responses:\\n '204':\\n content: {}\\n description: Settings updated.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n summary: Set storage settings for a given tenant\\n tags:\\n - Deployments_Internal_API_Internal API\\n /api/internal/v1/deployments/tenants/{id}/limits/{name}:\\n parameters:\\n - description: Tenant ID\\n in: path\\n name: id\\n required: true\\n schema:\\n type: string\\n - description: Name\\n in: path\\n name: name\\n required: true\\n schema:\\n type: string\\n enum:\\n - storage\\n - max_artifact_size_micro_device_tier\\n get:\\n description: |\\n Get limit by name for a given tenant.\\n If the limit value is -1 it means the limit is unlimited.\\n operationId: Deployments Internal Get Tenant Limit\\n responses:\\n '200':\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/TenantLimit'\\n description: Successful response.\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n summary: Get limit for the given tenant\\n tags:\\n - Deployments_Internal_API_Internal API\\n put:\\n description: |\\n Set limit for given tenant.\\n If the limit value is -1 it means the limit is unlimited.\\n operationId: Set Tenant Limit\\n requestBody:\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/TenantLimitValue'\\n required: true\\n responses:\\n '204':\\n content: {}\\n description: Limit information updated.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n summary: Set limit for given tenant\\n tags:\\n - Deployments_Internal_API_Internal API\\n /api/internal/v1/deployments/tenants:\\n post:\\n description: |\\n Sets up all tenant-related infrastructure, e.g. a migrated tenant's database.\\n operationId: Deployments Internal Create Tenant\\n requestBody:\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/TenantNew'\\n description: New tenant descriptor.\\n required: true\\n responses:\\n '201':\\n content: {}\\n description: Tenant was successfully provisioned.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n summary: Provision a new tenant\\n tags:\\n - Deployments_Internal_API_Internal API\\n /api/internal/v1/deployments/tenants/{id}/deployments:\\n get:\\n description: |\\n Returns a filtered collection of deployments in the system,\\n including active and historical. If both 'status' and 'query' are\\n not specified, all devices are listed.\\n operationId: Get Deployments\\n parameters:\\n - description: Tenant ID\\n in: path\\n name: id\\n required: true\\n schema:\\n type: string\\n - description: Deployment status filter.\\n in: query\\n name: status\\n schema:\\n enum:\\n - inprogress\\n - finished\\n - pending\\n type: string\\n - description: Deployment name or description filter.\\n in: query\\n name: search\\n schema:\\n type: string\\n - description: Results page number\\n in: query\\n name: page\\n schema:\\n default: 1\\n type: integer\\n - description: Per page count of records\\n in: query\\n name: per_page\\n schema:\\n default: 20\\n type: integer\\n - description: List only deployments created before and equal to Unix timestamp (UTC)\\n in: query\\n name: created_before\\n schema:\\n type: integer\\n - description: List only deployments created after and equal to Unix timestamp (UTC)\\n in: query\\n name: created_after\\n schema:\\n type: integer\\n - description: |\\n Supports sorting the deployments list by creation date.\\n in: query\\n name: sort\\n schema:\\n enum:\\n - asc\\n - desc\\n type: string\\n responses:\\n '200':\\n content:\\n application/json:\\n example:\\n - created: '2016-02-11 13:03:17.063493+00:00'\\n status: finished\\n name: production\\n artifact_name: Application 0.0.1\\n id: 00a0c91e6-7dec-11d0-a765-f81d4faebf6\\n finished: '2016-03-11 13:03:17.063493+00:00'\\n device_count: 10\\n schema:\\n items:\\n $ref: '#/components/schemas/DeploymentV1Internal'\\n type: array\\n description: Successful response.\\n headers:\\n X-Total-Count:\\n description: Total number of deployments matching query.\\n schema:\\n type: integer\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n summary: Get all deployments for specific tenant\\n tags:\\n - Deployments_Internal_API_Internal API\\n /api/internal/v1/deployments/tenants/{tenant_id}/deployments/{id}/groups:\\n get:\\n description: |\\n Returns the device groups of a particular deployment.\\n Getting empty groups means the deployment are sent to all devices.\\n operationId: Get Deployment Groups\\n parameters:\\n - description: Tenant ID\\n in: path\\n name: tenant_id\\n required: true\\n schema:\\n type: string\\n - description: Deployment identifier.\\n in: path\\n name: id\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/DeviceGroups'\\n description: Successful response.\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n summary: Get the details of a selected deployment\\n tags:\\n - Deployments_Internal_API_Internal API\\n /api/internal/v1/deployments/tenants/{id}:\\n delete:\\n description: |\\n Deletes all the tenant data.\\n operationId: Delete tenant internal deployments\\n parameters:\\n - description: Tenant ID\\n in: path\\n name: id\\n required: true\\n schema:\\n type: string\\n responses:\\n '204':\\n content: {}\\n description: Successful removal.\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n summary: Delete all the tenant data\\n tags:\\n - Deployments_Internal_API_Internal API\\n /api/internal/v1/deployments/tenants/{tenant_id}/deployments/devices:\\n get:\\n description: |\\n Return the Deployments history entries for the specified IDs\\n operationId: List Device Deployments entries\\n parameters:\\n - description: Tenant ID\\n in: path\\n name: tenant_id\\n required: true\\n schema:\\n type: string\\n - description: Deployment Device ID filter. Can be repeated to query a set of entries.\\n explode: true\\n in: query\\n name: id\\n schema:\\n items:\\n type: string\\n type: array\\n style: form\\n responses:\\n '200':\\n content:\\n application/json:\\n schema:\\n items:\\n $ref: '#/components/schemas/DeviceDeployment'\\n type: array\\n description: OK\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n summary: Return the Deployments history entries for the specified IDs\\n tags:\\n - Deployments_Internal_API_Internal API\\n /api/internal/v1/deployments/tenants/{tenant_id}/deployments/devices/{id}:\\n delete:\\n description: Set 'decommissioned' status to all pending device deployments for a given device\\n operationId: Remove Device from Deployments\\n parameters:\\n - description: Tenant ID\\n in: path\\n name: tenant_id\\n required: true\\n schema:\\n type: string\\n - description: System wide device identifier\\n in: path\\n name: id\\n required: true\\n schema:\\n type: string\\n responses:\\n '204':\\n content: {}\\n description: Device was removed\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n summary: Remove device from all deployments\\n tags:\\n - Deployments_Internal_API_Internal API\\n get:\\n description: |\\n Return the Deployments history for the specified Device, listing all its Deployments.\\n operationId: Deployments Internal List Deployments for a Device\\n parameters:\\n - description: Tenant ID\\n in: path\\n name: tenant_id\\n required: true\\n schema:\\n type: string\\n - description: System wide device identifier\\n in: path\\n name: id\\n required: true\\n schema:\\n type: string\\n - description: Filter deployments by status for the given device.\\n in: query\\n name: status\\n schema:\\n enum:\\n - failure\\n - aborted\\n - pause_before_installing\\n - pause_before_committing\\n - pause_before_rebooting\\n - downloading\\n - installing\\n - rebooting\\n - pending\\n - success\\n - noartifact\\n - artifact_too_big\\n - already-installed\\n - decommissioned\\n - pause\\n - active\\n - finished\\n - incompatible_tier\\n type: string\\n - description: Starting page.\\n in: query\\n name: page\\n schema:\\n default: 1\\n type: integer\\n - description: Maximum number of results per page.\\n in: query\\n name: per_page\\n schema:\\n default: 20\\n maximum: 20\\n type: integer\\n responses:\\n '200':\\n content:\\n application/json:\\n schema:\\n items:\\n $ref: '#/components/schemas/DeviceDeployment'\\n type: array\\n description: OK\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n summary: Return the Deployments history for a Device\\n tags:\\n - Deployments_Internal_API_Internal API\\n /api/internal/v1/deployments/tenants/{id}/artifacts:\\n post:\\n description: |\\n Upload mender artifact to a specific tenant. Multipart request with meta and artifact.\\n Supports artifact [versions v1, v2, v3](https://docs.mender.io/overview/artifact#versions).\\n operationId: Deployments Internal Upload artifact\\n parameters:\\n - description: Tenant ID, or \\\"default\\\" if running in non-multitenant setup\\n in: path\\n name: id\\n required: true\\n schema:\\n type: string\\n requestBody:\\n content:\\n multipart/form-data:\\n schema:\\n $ref: '#/components/schemas/Upload_artifact_request'\\n required: true\\n responses:\\n '201':\\n content: {}\\n description: Artifact uploaded.\\n headers:\\n Location:\\n description: URL of the newly uploaded artifact.\\n schema:\\n type: string\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n summary: Upload mender artifact\\n tags:\\n - Deployments_Internal_API_Internal API\\n /api/internal/v1/deployments/tenants/{tenant_id}/configuration/deployments/{deployment_id}/devices/{device_id}:\\n post:\\n description: |\\n Deploy configuration to a specified device.\\n The artifact will be auto-generated based on the configuration object\\n provided with the deployment constructor.\\n operationId: Deployments Internal Create Deployment\\n parameters:\\n - description: Tenant identifier.\\n in: path\\n name: tenant_id\\n required: true\\n schema:\\n type: string\\n - description: Device identifier.\\n in: path\\n name: device_id\\n required: true\\n schema:\\n type: string\\n - description: Deployment identifier.\\n in: path\\n name: deployment_id\\n required: true\\n schema:\\n type: string\\n requestBody:\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/ConfigurationDeploymentRequest'\\n description: New deployment that needs to be created.\\n required: true\\n responses:\\n '201':\\n content: {}\\n description: New configuration deployment created.\\n headers:\\n Location:\\n description: URL of the newly created deployment.\\n schema:\\n type: string\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '409':\\n $ref: '#/components/responses/ConflictError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n summary: Create a configuration deployment\\n tags:\\n - Deployments_Internal_API_Internal API\\n /api/internal/v1/deployments/tenants/{tenant_id}/config:\\n get:\\n operationId: Get Tenant Configuration\\n parameters:\\n - description: Tenant identifier.\\n in: path\\n name: tenant_id\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/ConfigurationTenant'\\n description: Successful response.\\n headers:\\n ETag:\\n description: |\\n Contains the configuration object's current ETag.\\n schema:\\n type: string\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n summary: Get Tenant specific configuration\\n tags:\\n - Deployments_Internal_API_Internal API\\n put:\\n operationId: Update Tenant Configuration\\n parameters:\\n - description: Tenant identifier.\\n in: path\\n name: tenant_id\\n required: true\\n schema:\\n type: string\\n - description: Contains the config' current ETag, and performs the update only if it matches the one stored in the database.\\n in: header\\n name: If-Match\\n schema:\\n type: string\\n requestBody:\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/ConfigurationTenant'\\n description: Configuration update.\\n required: true\\n responses:\\n '204':\\n content: {}\\n description: Configuration updated.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '412':\\n content: {}\\n description: Document with a matching ETag does not exist.\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n summary: Set tenant configuration\\n tags:\\n - Deployments_Internal_API_Internal API\\n /api/internal/v1/deployments/tenants/{tenant_id}/delta/{job_id}/status:\\n put:\\n description: |\\n Generate delta worker uses this endpoint to report back generate delta job status.\\n operationId: Update Delta Job Status\\n parameters:\\n - description: Tenant identifier.\\n in: path\\n name: tenant_id\\n required: true\\n schema:\\n type: string\\n - description: Job identifier.\\n in: path\\n name: job_id\\n required: true\\n schema:\\n type: string\\n requestBody:\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/GenerateDeltaJobStatus'\\n description: New job status.\\n required: true\\n responses:\\n '204':\\n content: {}\\n description: Status updated successfully.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n summary: Update status of generate delta job\\n tags:\\n - Deployments_Internal_API_Internal API\\n /api/internal/v1/deployments/tenants/{tenant_id}/devices/deployments/last:\\n post:\\n description: |\\n Return the status of the last unsuccessful device deployment.\\n operationId: Get last device deployment status\\n parameters:\\n - description: Tenant identifier.\\n in: path\\n name: tenant_id\\n required: true\\n schema:\\n type: string\\n requestBody:\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/LastDeviceDeploymentReq'\\n required: true\\n responses:\\n '200':\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/LastDeviceDeploymentsStatuses'\\n description: List of device deployment statuses returned.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n summary: Get status of the last device deployment\\n tags:\\n - Deployments_Internal_API_Internal API\\n /api/management/v1/deployments/deployments:\\n get:\\n deprecated: true\\n description: |\\n Returns a filtered collection of deployments in the system,\\n including active and historical. If both 'status' and 'query' are\\n not specified, all devices are listed.\\n x-deprecated-description: |\\n _since Mon Oct 21 2024_ we deprecated the endpoint due to an issue with the \\\"search\\\" query\\n behavior. Please use the v2 /deployments/deployments endpoint instead.\\n In the new endpoint, we replaced search parameter with the \\\"id\\\" and \\\"name\\\" parameters.\\n operationId: Deployments V1 List Deployments\\n parameters:\\n - description: Deployment status filter.\\n in: query\\n name: status\\n schema:\\n enum:\\n - inprogress\\n - finished\\n - pending\\n - scheduled\\n type: string\\n - description: |\\n Deployment type filter.\\n in: query\\n name: type\\n schema:\\n enum:\\n - software\\n - configuration\\n type: string\\n - description: Deployment name or description filter.\\n in: query\\n name: search\\n schema:\\n type: string\\n - description: Results page number\\n in: query\\n name: page\\n schema:\\n default: 1\\n type: integer\\n - description: Maximum number of results per page.\\n in: query\\n name: per_page\\n schema:\\n default: 20\\n maximum: 500\\n type: integer\\n - description: List only deployments created before and equal to Unix timestamp (UTC)\\n in: query\\n name: created_before\\n schema:\\n type: integer\\n - description: List only deployments created after and equal to Unix timestamp (UTC)\\n in: query\\n name: created_after\\n schema:\\n type: integer\\n - description: |\\n Supports sorting the deployments list by creation date.\\n in: query\\n name: sort\\n schema:\\n enum:\\n - asc\\n - desc\\n type: string\\n responses:\\n '200':\\n content:\\n application/json:\\n example:\\n - created: '2016-02-11T13:03:17.063493443Z'\\n status: finished\\n name: production\\n artifact_name: Application 0.0.1\\n id: 00a0c91e6-7dec-11d0-a765-f81d4faebf6\\n finished: '2016-03-11T13:03:17.063493443Z'\\n device_count: 10\\n retries: 0\\n schema:\\n items:\\n $ref: '#/components/schemas/DeploymentV1'\\n type: array\\n description: Successful response.\\n headers:\\n X-Total-Count:\\n description: Total number of deployments matching query.\\n schema:\\n type: integer\\n Link:\\n description: Standard header, we support 'first', 'next', and 'prev'.\\n schema:\\n type: string\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: Find all deployments\\n tags:\\n - Deployments_Management API\\n post:\\n description: |\\n Deploy software to specified devices. Artifact is auto assigned to the\\n device from all available artifacts based on artifact name and device type.\\n Devices for which there are no compatible artifacts to be installed are\\n considered finished successfully as well as receive status of `noartifact`.\\n If there is no artifacts for the deployment, deployment will not be created\\n and the 422 Unprocessable Entity status code will be returned.\\n operationId: Deployments Create Deployment\\n requestBody:\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/NewDeploymentTypeManagement'\\n description: New deployment that needs to be created.\\n required: true\\n responses:\\n '201':\\n content: {}\\n description: New deployment created.\\n headers:\\n Location:\\n description: URL of the newly created deployment.\\n schema:\\n type: string\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '409':\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n description: An active deployment with the same parameters already exists.\\n '422':\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n description: Unprocessable Entity.\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: Create a deployment\\n tags:\\n - Deployments_Management API\\n /api/management/v1/deployments/deployments/statistics/list:\\n post:\\n operationId: Deployment Status Statistics List\\n requestBody:\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/DeploymentIdentifier'\\n required: true\\n responses:\\n '200':\\n content:\\n application/json:\\n example:\\n - id: 0c13a0e6-6b63-475d-8260-ee42a590e8ff\\n stats:\\n success: 3\\n pending: 1\\n failure: 0\\n downloading: 1\\n installing: 2\\n rebooting: 3\\n noartifact: 0\\n artifact_too_big: 0\\n already-installed: 0\\n aborted: 0\\n pause_before_installing: 1\\n pause_before_rebooting: 1\\n pause_before_committing: 1\\n incompatible_tier: 0\\n - id: 0c13a0e6-6b63-475d-8260-ee42a590e8ff\\n stats:\\n success: 3\\n pending: 1\\n failure: 0\\n downloading: 1\\n installing: 2\\n rebooting: 3\\n noartifact: 0\\n artifact_too_big: 0\\n already-installed: 0\\n aborted: 0\\n pause_before_installing: 1\\n pause_before_rebooting: 1\\n pause_before_committing: 1\\n incompatible_tier: 0\\n schema:\\n items:\\n $ref: '#/components/schemas/DeploymentStatusStatisticsList200ResponseInner'\\n type: array\\n description: OK\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: |\\n Get status count for all devices in the listed deployments (plural).\\n tags:\\n - Deployments_Management API\\n /api/management/v1/deployments/deployments/group/{name}:\\n post:\\n description: |\\n Deploy software to devices belonging to the specified group.\\n\\n Artifact is auto assigned to the device from all available artifacts based\\n on artifact name and device type. Devices for which there are no compatible\\n artifacts to be installed are considered finished successfully as well as\\n receive status of `noartifact`. If there is no artifacts for the deployment,\\n deployment will not be created and the 422 Unprocessable Entity status code\\n will be returned.\\n operationId: Create Deployment for a Group of Devices\\n parameters:\\n - description: Device group name.\\n in: path\\n name: name\\n required: true\\n schema:\\n type: string\\n requestBody:\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/NewDeploymentForGroup'\\n description: New deployment that needs to be created.\\n required: true\\n responses:\\n '201':\\n content: {}\\n description: New deployment created.\\n headers:\\n Location:\\n description: URL of the newly created deployment.\\n schema:\\n type: string\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '409':\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n description: An active deployment with the same parameters already exists.\\n '422':\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n description: Unprocessable Entity.\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: Create a deployment for a group of devices\\n tags:\\n - Deployments_Management API\\n /api/management/v1/deployments/deployments/{id}:\\n get:\\n description: |\\n Returns the details of a particular deployment.\\n operationId: Show Deployment\\n parameters:\\n - description: Deployment identifier.\\n in: path\\n name: id\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/DeploymentV1'\\n description: Successful response.\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: Get the details of a selected deployment\\n tags:\\n - Deployments_Management API\\n patch:\\n description: |\\n Updates the deployment's update control map.\\n It is possible to update the deployment's update control map\\n only if the map exists.\\n In case the control map does not exist,\\n 409 Conflict error will be returned.\\n operationId: Patch Deployment Control Map\\n parameters:\\n - description: Deployment identifier.\\n in: path\\n name: id\\n required: true\\n schema:\\n type: string\\n requestBody:\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/PatchDeploymentControlMapRequest'\\n description: Update control map to set.\\n required: true\\n responses:\\n '204':\\n content: {}\\n description: Control map updated.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '409':\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n description: An active deployment with the same parameters already exists.\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: Update the deployment's update control map\\n tags:\\n - Deployments_Management API\\n /api/management/v1/deployments/deployments/{deployment_id}/status:\\n put:\\n description: |\\n Abort an ongoing deployment. For devices included in this deployment it means that:\\n\\n - Devices that have completed the deployment (i.e. reported final status) are not affected by the abort, and their original status is kept in the deployment report.\\n\\n - Devices that do not yet know about the deployment at time of abort will not start the deployment.\\n\\n - Devices that are in the middle of the deployment at time of abort will finish its deployment normally, but they will not be able to change its deployment status so they will perform rollback.\\n operationId: Abort Deployment\\n parameters:\\n - description: Deployment identifier.\\n in: path\\n name: deployment_id\\n required: true\\n schema:\\n type: string\\n requestBody:\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/AbortDeploymentRequest'\\n description: Deployment status.\\n required: true\\n responses:\\n '204':\\n content: {}\\n description: Status updated successfully.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '422':\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n description: Unprocessable Entity.\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: Abort the deployment\\n tags:\\n - Deployments_Management API\\n /api/management/v1/deployments/deployments/{deployment_id}/statistics:\\n get:\\n operationId: Deployment Status Statistics\\n parameters:\\n - description: Deployment identifier\\n in: path\\n name: deployment_id\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n content:\\n application/json:\\n example:\\n success: 3\\n pending: 1\\n failure: 0\\n downloading: 1\\n installing: 2\\n rebooting: 3\\n noartifact: 0\\n artifact_too_big: 0\\n already-installed: 0\\n aborted: 0\\n pause_before_installing: 1\\n pause_before_rebooting: 1\\n pause_before_committing: 1\\n incompatible_tier: 0\\n schema:\\n $ref: '#/components/schemas/Statistics'\\n description: OK\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: |\\n Get status count for all devices in a deployment.\\n tags:\\n - Deployments_Management API\\n /api/management/v1/deployments/deployments/{deployment_id}/devices:\\n get:\\n deprecated: true\\n x-deprecated-description: |\\n _since Wed May 19 2021_ this end-point is deprecated because it doesn't support\\n pagination and will be removed in the future, please use the\\n /deployments/{deployment_id}/devices/list end-point instead.\\n operationId: List All Devices in Deployment\\n parameters:\\n - description: Deployment identifier.\\n in: path\\n name: deployment_id\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n content:\\n application/json:\\n schema:\\n items:\\n $ref: '#/components/schemas/DeviceWithImage'\\n type: array\\n description: OK\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: |\\n please use the /deployments/{deployment_id}/devices/list end-point instead.\\n tags:\\n - Deployments_Management API\\n /api/management/v1/deployments/deployments/{deployment_id}/devices/list:\\n get:\\n operationId: List Devices in Deployment\\n parameters:\\n - description: Deployment identifier.\\n in: path\\n name: deployment_id\\n required: true\\n schema:\\n type: string\\n - description: Filter devices by status within deployment.\\n in: query\\n name: status\\n schema:\\n anyOf:\\n - $ref: '#/components/schemas/DeploymentDeviceStatus'\\n - $ref: '#/components/schemas/DeploymentDeviceStatusGet'\\n - description: Starting page.\\n in: query\\n name: page\\n schema:\\n default: 1\\n type: integer\\n - description: Maximum number of results per page.\\n in: query\\n name: per_page\\n schema:\\n default: 20\\n maximum: 500\\n type: integer\\n responses:\\n '200':\\n content:\\n application/json:\\n schema:\\n items:\\n $ref: '#/components/schemas/DeviceWithImage'\\n type: array\\n description: OK\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: |\\n Get the list of devices and their respective status for the deployment\\n with the given ID. The response includes devices as they get assigned\\n to the deployment when checking for updates. Therefore, this endpoint\\n will list all the devices only once each asks for updates and evaluates\\n this deployment.\\n tags:\\n - Deployments_Management API\\n /api/management/v1/deployments/deployments/{id}/device_list:\\n get:\\n operationId: List Device IDs in Deployment\\n parameters:\\n - description: Deployment identifier.\\n in: path\\n name: id\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n content:\\n application/json:\\n example:\\n - 00a0c91e6-7dec-11d0-a765-f81d4faebf6\\n - 00a0c91e6-7dec-11d0-a765-f81d4faebf8\\n - 00a0c91e6-7dec-11d0-a765-f81d4faebf7\\n schema:\\n description: List of device IDs\\n items:\\n type: string\\n type: array\\n description: Successful response.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: Get the list of device IDs being part of the deployment.\\n tags:\\n - Deployments_Management API\\n /api/management/v1/deployments/deployments/{deployment_id}/devices/{device_id}/log:\\n get:\\n description: |\\n The response body for this endpoint include the device's deployment logs\\n in text/plain format.\\n operationId: Get Deployment Log for Device\\n parameters:\\n - description: Deployment identifier.\\n in: path\\n name: deployment_id\\n required: true\\n schema:\\n type: string\\n - description: Device identifier.\\n in: path\\n name: device_id\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n content:\\n text/plain:\\n schema:\\n type: string\\n description: Successful response, including the logs in text/plain format.\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: Get the log of a selected device's deployment\\n tags:\\n - Deployments_Management API\\n /api/management/v1/deployments/{deployment_id}/devices/{device_id}/delta/status:\\n get:\\n description: |\\n The response body for this endpoint include a detailed information on the delta\\n generation job.\\n operationId: Get Delta Generation Status\\n parameters:\\n - description: Deployment identifier.\\n in: path\\n name: deployment_id\\n required: true\\n schema:\\n type: string\\n - description: Device identifier.\\n in: path\\n name: device_id\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/JobStatus'\\n description: Successful response, including the status in application/json format.\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: Get the detailed status of server side delta generation\\n tags:\\n - Deployments_Management API\\n /api/management/v1/deployments/deployments/devices/{id}:\\n delete:\\n description: |\\n Abort all the active and pending Deployments for the specified Device.\\n\\n Please note that deployments for the Device not targeting it when issuing this API call won't be aborted. If the deployment applies to the Device in the future, for example, because of inventory updates, the Device will still process the deployment.\\n operationId: Abort Deployments for a Device\\n parameters:\\n - description: System wide device identifier\\n in: path\\n name: id\\n required: true\\n schema:\\n type: string\\n responses:\\n '204':\\n content: {}\\n description: Operation completed successfully.\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: Abort all the active and pending Deployments for a Device\\n tags:\\n - Deployments_Management API\\n get:\\n description: |\\n Return the Deployments history for the specified Device, listing all its Deployments.\\n operationId: Deployments List Deployments for a Device\\n parameters:\\n - description: System wide device identifier\\n in: path\\n name: id\\n required: true\\n schema:\\n type: string\\n - description: Filter deployments by status for the given device.\\n in: query\\n name: status\\n schema:\\n $ref: '#/components/schemas/DeploymentDeviceStatus'\\n - description: Starting page.\\n in: query\\n name: page\\n schema:\\n default: 1\\n type: integer\\n - description: Maximum number of results per page.\\n in: query\\n name: per_page\\n schema:\\n default: 20\\n maximum: 20\\n type: integer\\n responses:\\n '200':\\n content:\\n application/json:\\n schema:\\n items:\\n $ref: '#/components/schemas/DeviceDeploymentV1'\\n type: array\\n description: OK\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: Return the Deployments history for a Device\\n tags:\\n - Deployments_Management API\\n /api/management/v1/deployments/deployments/devices/{id}/history:\\n delete:\\n description: |\\n Mark as logically deleted the completed Device Deployments records for the given device.\\n This effectively resets the Device Deployments history and makes the\\n device eligible (again) for all the active deployments.\\n operationId: Reset Device Deployments history\\n parameters:\\n - description: System wide device identifier\\n in: path\\n name: id\\n required: true\\n schema:\\n type: string\\n responses:\\n '204':\\n content: {}\\n description: Operation completed successfully.\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: Reset the Device Deployments history\\n tags:\\n - Deployments_Management API\\n /api/management/v1/deployments/deployments/releases:\\n get:\\n deprecated: true\\n description: |\\n Returns a collection of releases, allows filtering by release name.\\n x-deprecated-description: |\\n _since Wed May 19 2021_ this end-point is deprecated because it doesn't support\\n pagination and will be removed in the future, please use the\\n /deployments/releases/list end-point instead.\\n operationId: List Releases\\n parameters:\\n - description: Release name filter.\\n in: query\\n name: name\\n schema:\\n type: string\\n - description: Release description filter.\\n in: query\\n name: description\\n schema:\\n type: string\\n - description: Release device type filter.\\n in: query\\n name: device_type\\n schema:\\n type: string\\n - description: Update type filter.\\n in: query\\n name: update_type\\n schema:\\n type: string\\n responses:\\n '200':\\n content:\\n application/json:\\n example:\\n - name: my-app-v1.0.1\\n artifacts:\\n - id: 0c13a0e6-6b63-475d-8260-ee42a590e8ff\\n name: Application 1.0.0\\n description: Johns Monday test build\\n device_types_compatible:\\n - Beagle Bone\\n info:\\n format: mender\\n version: 3\\n updates:\\n - type_info:\\n type: rootfs-image\\n files:\\n - name: rootfs-image-1\\n checksum: cc436f982bc60a8255fe1926a450db5f195a19ad\\n size: 123\\n date: 2016-03-11T13:03:17.063+0000\\n metadata: {}\\n meta_data: []\\n artifact_provides:\\n artifact_name: test\\n rootfs-image.checksum: 32714818ad6f98ee0185a52e23a475d89122e3efd2b2c26c733781c28e798c99\\n rootfs-image.version: test\\n artifact_depends:\\n device_type:\\n - test\\n clears_artifact_provides:\\n - rootfs-image.*\\n size: 36891648\\n modified: '2016-03-11T13:03:17.063493443Z'\\n - id: 0c13a0e6-6b63-475d-8260-ee42a590e8ff\\n name: Application 1.0.0\\n description: Johns Monday test build\\n device_types_compatible:\\n - Raspberry Pi\\n info:\\n format: mender\\n version: 3\\n updates:\\n - type_info:\\n type: rootfs-image\\n files:\\n - name: rootfs-image-1\\n checksum: cc436f982bc60a8255fe1926a450db5f195a19ad\\n size: 123\\n date: 2016-03-11T13:03:17.063+0000\\n metadata: {}\\n meta_data: []\\n artifact_provides:\\n artifact_name: test\\n rootfs-image.checksum: 32714818ad6f98ee0185a52e23a475d89122e3efd2b2c26c733781c28e798c99\\n rootfs-image.version: test\\n artifact_depends:\\n device_type:\\n - test\\n clears_artifact_provides:\\n - rootfs-image.*\\n size: 36891648\\n modified: '2016-03-11T13:03:17.063493443Z'\\n - name: my-app-v2.0.0\\n artifacts:\\n - id: 0c13a0e6-6b63-475d-8260-ee42a590e8ff\\n name: Application 2.0.0\\n description: Johns Monday test build\\n device_types_compatible:\\n - Beagle Bone\\n info:\\n format: mender\\n version: 3\\n updates:\\n - type_info:\\n type: rootfs-image\\n files:\\n - name: rootfs-image-1\\n checksum: cc436f982bc60a8255fe1926a450db5f195a19ad\\n size: 123\\n date: 2016-03-11T13:03:17.063+0000\\n metadata: {}\\n meta_data: []\\n artifact_provides:\\n artifact_name: test\\n rootfs-image.checksum: 32714818ad6f98ee0185a52e23a475d89122e3efd2b2c26c733781c28e798c99\\n rootfs-image.version: test\\n artifact_depends:\\n device_type:\\n - test\\n clears_artifact_provides:\\n - rootfs-image.*\\n size: 36891648\\n modified: '2016-03-11T13:03:17.063493443Z'\\n schema:\\n $ref: '#/components/schemas/ReleasesV1'\\n description: Successful response.\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: |\\n List releases\\n tags:\\n - Deployments_Management API\\n /api/management/v1/deployments/deployments/releases/list:\\n get:\\n deprecated: true\\n description: |\\n Returns a collection of releases, allows filtering by release name and sorting\\n by name or last modification date.\\n x-deprecated-description: |\\n _since Sep 24 2023_ due to a mismatch in the capitalization of the fields of the response\\n body and lack of support for advanced filters and sorting, we have deprecated this\\n endpoint. Please use the v2 /deployments/releases end-point instead.\\n operationId: Deployments V1 List Releases with pagination\\n parameters:\\n - description: Release name filter.\\n in: query\\n name: name\\n schema:\\n type: string\\n - description: Release description filter.\\n in: query\\n name: description\\n schema:\\n type: string\\n - description: Release device type filter.\\n in: query\\n name: device_type\\n schema:\\n type: string\\n - description: Update type filter.\\n in: query\\n name: update_type\\n schema:\\n type: string\\n - description: Starting page.\\n in: query\\n name: page\\n schema:\\n default: 1\\n type: integer\\n - description: Maximum number of results per page.\\n in: query\\n name: per_page\\n schema:\\n default: 20\\n maximum: 500\\n type: integer\\n - description: |\\n Sort the release list by the specified field and direction.\\n in: query\\n name: sort\\n schema:\\n default: name:asc\\n enum:\\n - artifacts_count:asc\\n - artifacts_count:desc\\n - modified:asc\\n - modified:desc\\n - name:asc\\n - name:desc\\n - tags:asc\\n - tags:desc\\n type: string\\n responses:\\n '200':\\n content:\\n application/json:\\n example:\\n - name: my-app-v1.0.1\\n artifacts:\\n - id: 0c13a0e6-6b63-475d-8260-ee42a590e8ff\\n name: Application 1.0.0\\n description: Johns Monday test build\\n device_types_compatible:\\n - Beagle Bone\\n info:\\n format: mender\\n version: 3\\n updates:\\n - type_info:\\n type: rootfs-image\\n files:\\n - name: rootfs-image-1\\n checksum: cc436f982bc60a8255fe1926a450db5f195a19ad\\n size: 123\\n date: 2016-03-11T13:03:17.063+0000\\n metadata: {}\\n meta_data: []\\n artifact_provides:\\n artifact_name: test\\n rootfs-image.checksum: 32714818ad6f98ee0185a52e23a475d89122e3efd2b2c26c733781c28e798c99\\n rootfs-image.version: test\\n artifact_depends:\\n device_type:\\n - test\\n clears_artifact_provides:\\n - rootfs-image.*\\n size: 36891648\\n modified: '2016-03-11T13:03:17.063493443Z'\\n - id: 0c13a0e6-6b63-475d-8260-ee42a590e8ff\\n name: Application 1.0.0\\n description: Johns Monday test build\\n device_types_compatible:\\n - Raspberry Pi\\n info:\\n format: mender\\n version: 3\\n updates:\\n - type_info:\\n type: rootfs-image\\n files:\\n - name: rootfs-image-1\\n checksum: cc436f982bc60a8255fe1926a450db5f195a19ad\\n size: 123\\n date: 2016-03-11T13:03:17.063+0000\\n metadata: {}\\n meta_data: []\\n artifact_provides:\\n artifact_name: test\\n rootfs-image.checksum: 32714818ad6f98ee0185a52e23a475d89122e3efd2b2c26c733781c28e798c99\\n rootfs-image.version: test\\n artifact_depends:\\n device_type:\\n - test\\n clears_artifact_provides:\\n - rootfs-image.*\\n size: 36891648\\n modified: '2016-03-11T13:03:17.063493443Z'\\n - name: my-app-v2.0.0\\n artifacts:\\n - id: 0c13a0e6-6b63-475d-8260-ee42a590e8ff\\n name: Application 2.0.0\\n description: Johns Monday test build\\n device_types_compatible:\\n - Beagle Bone\\n info:\\n format: mender\\n version: 3\\n updates:\\n - type_info:\\n type: rootfs-image\\n files:\\n - name: rootfs-image-1\\n checksum: cc436f982bc60a8255fe1926a450db5f195a19ad\\n size: 123\\n date: 2016-03-11T13:03:17.063+0000\\n metadata: {}\\n meta_data: []\\n artifact_provides:\\n artifact_name: test\\n rootfs-image.checksum: 32714818ad6f98ee0185a52e23a475d89122e3efd2b2c26c733781c28e798c99\\n rootfs-image.version: test\\n artifact_depends:\\n device_type:\\n - test\\n clears_artifact_provides:\\n - rootfs-image.*\\n size: 36891648\\n modified: '2016-03-11T13:03:17.063493443Z'\\n schema:\\n $ref: '#/components/schemas/ReleasesV1'\\n description: Successful response.\\n headers:\\n X-Total-Count:\\n description: Total number of releases matching query.\\n schema:\\n type: integer\\n Link:\\n description: Standard header, we support 'first', 'next', and 'prev'.\\n schema:\\n type: string\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: |\\n List releases with pagination\\n tags:\\n - Deployments_Management API\\n /api/management/v1/deployments/artifacts:\\n get:\\n deprecated: true\\n description: |\\n Returns a collection of all artifacts.\\n x-deprecated-description: |\\n _since Oct 18 2021_ this end-point is deprecated because it doesn't support\\n pagination and will be removed in the future, please use the\\n /artifacts/list end-point instead.\\n operationId: List Artifacts\\n parameters:\\n - description: Release name filter.\\n in: query\\n name: name\\n schema:\\n type: string\\n - description: Release description filter.\\n in: query\\n name: description\\n schema:\\n type: string\\n - description: Release device type filter.\\n in: query\\n name: device_type\\n schema:\\n type: string\\n responses:\\n '200':\\n content:\\n application/json:\\n schema:\\n items:\\n $ref: '#/components/schemas/ArtifactV1'\\n type: array\\n description: OK\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: |\\n List all the artifacts\\n tags:\\n - Deployments_Management API\\n post:\\n description: |\\n Upload mender artifact. Multipart request with meta and artifact.\\n Supports artifact [versions v1, v2, v3](https://docs.mender.io/overview/artifact#versions).\\n operationId: Upload Artifact\\n requestBody:\\n content:\\n multipart/form-data:\\n schema:\\n $ref: '#/components/schemas/UploadArtifactRequest'\\n required: true\\n responses:\\n '201':\\n content: {}\\n description: Artifact uploaded.\\n headers:\\n Location:\\n description: URL of the newly uploaded artifact.\\n schema:\\n type: string\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '409':\\n content:\\n application/json:\\n example:\\n error: an artifact with the same name and depends already exists\\n request_id: e4dde7e9-9424-4311-8648-86e24b542410\\n metadata:\\n conflict:\\n want: cookies\\n schema:\\n $ref: '#/components/schemas/ErrorExt'\\n description: |\\n An artifact with the same name and matching dependency requirements already exists.\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: Upload mender artifact\\n tags:\\n - Deployments_Management API\\n /api/management/v1/deployments/artifacts/list:\\n get:\\n deprecated: true\\n description: |\\n Returns a collection of all artifacts.\\n x-deprecated-description: |\\n _since Tue Jul 22 2025_ we deprecated the endpoint due to performance issues.\\n Please use the v2 /artifacts endpoint instead.\\n In the new endpoint, we support exact and prefix matching for the various fields\\n operationId: Deployments V1 List Artifacts with pagination\\n parameters:\\n - description: Artifact name filter.\\n in: query\\n name: name\\n schema:\\n type: string\\n - description: Artifact description filter.\\n in: query\\n name: description\\n schema:\\n type: string\\n - description: Artifact device type filter.\\n in: query\\n name: device_type\\n schema:\\n type: string\\n - description: Starting page.\\n in: query\\n name: page\\n schema:\\n default: 1\\n type: integer\\n - description: Maximum number of results per page.\\n in: query\\n name: per_page\\n schema:\\n default: 20\\n maximum: 500\\n type: integer\\n - description: |\\n Sort the artifact list by the specified field and direction.\\n in: query\\n name: sort\\n schema:\\n default: name:asc\\n enum:\\n - name:asc\\n - name:desc\\n - modified:asc\\n - modified:desc\\n type: string\\n responses:\\n '200':\\n content:\\n application/json:\\n schema:\\n items:\\n $ref: '#/components/schemas/ArtifactV1'\\n type: array\\n description: OK\\n headers:\\n X-Total-Count:\\n description: Total number of releases matching query.\\n schema:\\n type: integer\\n Link:\\n description: Standard header, we support 'first', 'next', and 'prev'.\\n schema:\\n type: string\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: |\\n List known artifacts\\n tags:\\n - Deployments_Management API\\n /api/management/v1/deployments/artifacts/directupload:\\n post:\\n operationId: Request Direct Upload\\n responses:\\n '200':\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/ArtifactUploadLink'\\n description: OK\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: Request link for uploading artifact directly to the storage backend. This is an on-prem endpoint only, not available on Hosted Mender.\\n tags:\\n - Deployments_Management API\\n /api/management/v1/deployments/artifacts/directupload/{id}/complete:\\n post:\\n operationId: Complete Direct Upload\\n parameters:\\n - description: Artifact ID returned by \\\"Request Direct Upload\\\" API.\\n in: path\\n name: id\\n required: true\\n schema:\\n type: string\\n requestBody:\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/DirectUploadMetadata'\\n description: Metadata for contents of the artifact.\\n required: false\\n responses:\\n '202':\\n content: {}\\n description: Accepted\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '404':\\n content:\\n application/json:\\n example:\\n error: not found\\n request_id: b4965265-4475-4d00-8efc-840eaee5cf7b\\n schema:\\n $ref: '#/components/schemas/CompleteDirectUpload404Response'\\n description: A pending direct upload with the given ID was not found.\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: Notify the server that the direct upload is completed to make it available in the artifacts API. Optionally you can provide files metadata which will be absent otherwise if skip-verify flag is present in the deployments service. This is an on-prem endpoint only, not available on Hosted Mender.\\n tags:\\n - Deployments_Management API\\n /api/management/v1/deployments/artifacts/generate:\\n post:\\n description: |\\n Generate a new Mender artifact from raw data and meta data. Multipart request with meta and raw file.\\n Supports generating single-file updates only, using the Single File Update Module (https://hub.mender.io/t/single-file).\\n operationId: Generate Artifact\\n requestBody:\\n content:\\n multipart/form-data:\\n schema:\\n $ref: '#/components/schemas/GenerateArtifactRequest'\\n required: true\\n responses:\\n '201':\\n content: {}\\n description: Artifact generation request accepted and queued for processing.\\n headers:\\n Location:\\n description: URL of the artifact going to be generated.\\n schema:\\n type: string\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: Upload raw data to generate a new artifact\\n tags:\\n - Deployments_Management API\\n /api/management/v1/deployments/artifacts/{id}:\\n delete:\\n description: |\\n Deletes the artifact from file and artifacts storage.\\n Artifacts used by deployments in progress can not be deleted\\n until deployment finishes.\\n operationId: Delete Artifact\\n parameters:\\n - description: Artifact identifier.\\n in: path\\n name: id\\n required: true\\n schema:\\n type: string\\n responses:\\n '204':\\n content: {}\\n description: The artifact deleted successfully.\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '409':\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n description: Artifact used by active deployment.\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: Delete the artifact\\n tags:\\n - Deployments_Management API\\n get:\\n description: |\\n Returns the details of a selected artifact.\\n operationId: Show Artifact\\n parameters:\\n - description: Artifact identifier.\\n in: path\\n name: id\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n content:\\n application/json:\\n example:\\n id: 0c13a0e6-6b63-475d-8260-ee42a590e8ff\\n name: Application 1.0.0\\n description: Johns Monday test build\\n device_types_compatible:\\n - Beagle Bone\\n info:\\n format: mender\\n version: 3\\n updates:\\n - type_info:\\n type: rootfs-image\\n files:\\n - name: rootfs-image-1\\n checksum: cc436f982bc60a8255fe1926a450db5f195a19ad\\n size: 123\\n date: 2016-03-11T13:03:17.063+0000\\n metadata: {}\\n meta_data: []\\n artifact_provides:\\n artifact_name: test\\n rootfs-image.checksum: 32714818ad6f98ee0185a52e23a475d89122e3efd2b2c26c733781c28e798c99\\n rootfs-image.version: test\\n artifact_depends:\\n device_type:\\n - test\\n clears_artifact_provides:\\n - rootfs-image.*\\n size: 36891648\\n modified: '2016-03-11T13:03:17.063493443Z'\\n schema:\\n $ref: '#/components/schemas/ArtifactV1'\\n description: Successful response.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: Get the details of a selected artifact\\n tags:\\n - Deployments_Management API\\n put:\\n description: |\\n Edit description. Artifact is not allowed to be edited if it was used\\n in any deployment.\\n operationId: Update Artifact Info\\n parameters:\\n - description: Artifact identifier.\\n in: path\\n name: id\\n required: true\\n schema:\\n type: string\\n requestBody:\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/ArtifactUpdateV1'\\n required: false\\n responses:\\n '204':\\n content: {}\\n description: The artifact metadata updated successfully.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '422':\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n description: Unprocessable Entity.\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: Update description of a selected artifact\\n tags:\\n - Deployments_Management API\\n /api/management/v1/deployments/artifacts/{id}/download:\\n get:\\n description: |\\n Generates signed URL for downloading artifact file. URI can be used only\\n with GET HTTP method. Link supports such HTTP headers: 'Range',\\n 'If-Modified-Since', 'If-Unmodified-Since' It is valid for specified\\n period of time.\\n operationId: Download Artifact\\n parameters:\\n - description: Artifact identifier.\\n in: path\\n name: id\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/ArtifactLink'\\n description: Successful response.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: Get the download link of a selected artifact\\n tags:\\n - Deployments_Management API\\n /api/management/v1/deployments/limits/storage:\\n get:\\n description: |\\n Get storage limit and current storage usage for currently logged in user.\\n If the limit value is 0 it means there is no limit for storage for logged in user.\\n operationId: Deployments Get Storage Usage\\n responses:\\n '200':\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/StorageLimit'\\n description: Successful response.\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: Get storage limit and current storage usage\\n tags:\\n - Deployments_Management API\\n /api/management/v1/deployments/config:\\n get:\\n operationId: Get Configuration\\n responses:\\n '200':\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/ConfigurationTenant'\\n description: Successful response.\\n headers:\\n ETag:\\n description: |\\n Contains the configuration object's current ETag.\\n schema:\\n type: string\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: Get the deployments service configuration\\n tags:\\n - Deployments_Management API\\n /api/management/v1/deployments/config/binary_delta:\\n put:\\n operationId: Update Binary Delta configuration\\n parameters:\\n - description: Contains the config current ETag, and performs the update only if it matches the one stored in the database.\\n in: header\\n name: If-Match\\n schema:\\n type: string\\n requestBody:\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/BinaryDeltaConfigurationUpdate'\\n description: Binary Delta server-side generation configuration.\\n required: true\\n responses:\\n '204':\\n content: {}\\n description: Configuration updated.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '409':\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n description: Delta generation is disabled.\\n '412':\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n description: Document with a matching ETag does not exist.\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: Set the Binary Delta server-side generation configuration\\n tags:\\n - Deployments_Management API\\n /api/management/v1alpha1/deployments/manifests:\\n post:\\n description: |\\n Upload Mender artifact. Multipart request with meta and artifact.\\n Only supports manifest type artifacts (v3).\\n operationId: Upload Deployment Manifest Artifact\\n requestBody:\\n content:\\n multipart/form-data:\\n schema:\\n $ref: '#/components/schemas/UploadManifestRequest'\\n required: true\\n responses:\\n '201':\\n content: {}\\n description: Artifact uploaded.\\n headers:\\n Location:\\n description: URL of the newly uploaded artifact.\\n schema:\\n type: string\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '402':\\n $ref: '#/components/responses/PaymentRequiredError'\\n '409':\\n content:\\n application/json:\\n example:\\n error: an artifact with the same name and depends already exists\\n request_id: e4dde7e9-9424-4311-8648-86e24b542410\\n metadata:\\n conflict:\\n want: cookies\\n schema:\\n $ref: '#/components/schemas/ErrorExt'\\n description: |\\n An artifact with the same name and matching dependency requirements already exists.\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: Upload mender artifact\\n tags:\\n - Deployments_v1alpha1_Management API\\n x-mender-plan:\\n - enterprise\\n get:\\n description: Returns Mender Manifests according to the specified parameters.\\n operationId: Get Deployment Manifests\\n parameters:\\n - description: Manifest name filter.\\n in: query\\n name: name\\n schema:\\n type: string\\n - description: |-\\n Filter the manifests based on their associated tags and only return\\n manifests that have at least one matching tag (i.e. OR matching).\\n explode: true\\n in: query\\n name: tag\\n schema:\\n items:\\n type: string\\n type: array\\n style: form\\n - description: Starting page.\\n in: query\\n name: page\\n schema:\\n default: 1\\n type: integer\\n - description: Maximum number of results per page.\\n in: query\\n name: per_page\\n schema:\\n default: 20\\n maximum: 500\\n type: integer\\n - description: Sort the Manifest list by the specified field and direction.\\n in: query\\n name: sort\\n schema:\\n default: name:asc\\n enum:\\n - modified:asc\\n - modified:desc\\n - name:asc\\n - name:desc\\n - tags:asc\\n - tags:desc\\n type: string\\n responses:\\n '200':\\n content:\\n application/json:\\n schema:\\n type: array\\n items:\\n $ref: '#/components/schemas/Manifest'\\n description: A successful response including the Manifests\\n headers:\\n X-Total-Count:\\n description: Total number of releases matching query.\\n schema:\\n type: integer\\n Link:\\n description: Standard header, we support 'first', 'next', and 'prev'.\\n schema:\\n type: string\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '402':\\n $ref: '#/components/responses/PaymentRequiredError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: Get Mender Manifests\\n tags:\\n - Deployments_v1alpha1_Management API\\n x-mender-plan:\\n - enterprise\\n delete:\\n description: Deletes Mender Manifests according to the specified names.\\n operationId: Delete Deployment Manifests\\n parameters:\\n - description: Manifest name filter. Can be repeated to query a set of entries.\\n in: query\\n name: name\\n required: true\\n explode: true\\n style: form\\n schema:\\n items:\\n type: string\\n type: array\\n responses:\\n '204':\\n description: Manifests deleted successfully.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '402':\\n $ref: '#/components/responses/PaymentRequiredError'\\n '409':\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/ManifestInUseError'\\n description: Conflict.\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: Delete Mender Manifests\\n tags:\\n - Deployments_v1alpha1_Management API\\n x-mender-plan:\\n - enterprise\\n /api/management/v1alpha1/deployments/manifests/generate:\\n post:\\n description: |\\n Generate a new Mender Manifest from a manifest.yaml file.\\n operationId: Generate Deployment Manifest Artifact\\n requestBody:\\n content:\\n multipart/form-data:\\n schema:\\n $ref: '#/components/schemas/GenerateManifestRequest'\\n responses:\\n '202':\\n content: {}\\n description: Generation request accepted and queued for processing.\\n headers:\\n Location:\\n description: URL of the newly uploaded manifest.\\n schema:\\n type: string\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '402':\\n $ref: '#/components/responses/PaymentRequiredError'\\n '409':\\n content:\\n application/json:\\n example:\\n error: software with the same name already exists\\n request_id: e4dde7e9-9424-4311-8648-86e24b542410\\n metadata:\\n conflict:\\n want: cookies\\n schema:\\n $ref: '#/components/schemas/ErrorExt'\\n description: |\\n Software with the same name already exists.\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: Generate Mender Manifest\\n tags:\\n - Deployments_v1alpha1_Management API\\n x-mender-plan:\\n - enterprise\\n /api/management/v1alpha1/deployments/manifests/{manifest_name}:\\n get:\\n description: Returns the Mender Manifest with the given name\\n operationId: Get Deployment Manifest by name\\n parameters:\\n - description: Name of the Manifest\\n in: path\\n name: manifest_name\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Manifest'\\n description: A successful response including the Manifest.\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '402':\\n $ref: '#/components/responses/PaymentRequiredError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: Get Mender Manifest\\n tags:\\n - Deployments_v1alpha1_Management API\\n x-mender-plan:\\n - enterprise\\n patch:\\n summary: |\\n Update selected metadata fields of the Manifest object.\\n description: |\\n Updates the Manifest object.\\n operationId: Update Manifest information\\n security:\\n - ManagementJWT: []\\n tags:\\n - Deployments_v1alpha1_Management API\\n parameters:\\n - description: Name of the manifest\\n in: path\\n name: manifest_name\\n required: true\\n schema:\\n type: string\\n requestBody:\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/ManifestUpdate'\\n required: false\\n responses:\\n '204':\\n content: {}\\n description: Successful response.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '402':\\n $ref: '#/components/responses/PaymentRequiredError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n x-mender-plan:\\n - enterprise\\n /api/management/v1alpha1/deployments/software:\\n get:\\n description: |-\\n Returns software information according to the specified parameters.\\n \\\"Software\\\" in this context refers to base information shared across both Releases and Manifests.\\n Note that the operation between the `name` and `kind` parameters is an AND operation.\\n operationId: Get Deployment Software\\n parameters:\\n - description: Software name filter. Can be repeated to query a set of entries. Mutually exclusive with `name_prefix`.\\n in: query\\n name: name\\n explode: true\\n style: form\\n schema:\\n items:\\n type: string\\n type: array\\n - description: Software name prefix filter. Mutually exclusive with `name`.\\n in: query\\n name: name_prefix\\n schema:\\n type: string\\n - description: Software kind filter.\\n in: query\\n name: kind\\n schema:\\n enum:\\n - release\\n - manifest\\n type: string\\n - description: |-\\n Filter the software based on their associated tags and only return\\n software that have at least one matching tag (i.e. OR matching).\\n explode: true\\n in: query\\n name: tag\\n schema:\\n items:\\n type: string\\n type: array\\n style: form\\n - description: Update type filter.\\n in: query\\n name: update_type\\n schema:\\n type: string\\n - description: Starting page.\\n in: query\\n name: page\\n schema:\\n default: 1\\n type: integer\\n - description: Maximum number of results per page.\\n in: query\\n name: per_page\\n schema:\\n default: 20\\n maximum: 500\\n type: integer\\n - description: Sort the Software list by the specified field and direction.\\n in: query\\n name: sort\\n schema:\\n default: name:asc\\n enum:\\n - modified:asc\\n - modified:desc\\n - name:asc\\n - name:desc\\n - tags:asc\\n - tags:desc\\n type: string\\n responses:\\n '200':\\n content:\\n application/json:\\n schema:\\n type: array\\n items:\\n $ref: '#/components/schemas/Software'\\n description: A successful response including the Software information\\n headers:\\n X-Total-Count:\\n description: Total number of Software matching query.\\n schema:\\n type: integer\\n Link:\\n description: Standard header, we support 'first', 'next', and 'prev'.\\n schema:\\n type: string\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: Get Mender Software\\n tags:\\n - Deployments_v1alpha1_Management API\\n /api/management/v1alpha1/deployments/software/tags:\\n get:\\n operationId: List software tags\\n parameters:\\n - description: Only list tags used on software of a particular kind\\n in: query\\n name: kind\\n schema:\\n enum:\\n - release\\n - manifest\\n type: string\\n responses:\\n '200':\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Tags'\\n description: Successful response.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: |\\n Lists all available tags for software (releases and/or manifests).\\n tags:\\n - Deployments_v1alpha1_Management API\\n /api/management/v1alpha1/deployments/deployments/{deployment_id}/devices/{device_id}/log:\\n get:\\n description: |\\n The response body for this endpoint include the device's deployment logs\\n in text/plain format.\\n operationId: Get Deployment Log for Device (v1alpha1)\\n parameters:\\n - description: Deployment identifier.\\n in: path\\n name: deployment_id\\n required: true\\n schema:\\n type: string\\n - description: Device identifier.\\n in: path\\n name: device_id\\n required: true\\n schema:\\n type: string\\n - description: Log output format (allows redacting sensitive information)\\n in: query\\n name: format\\n required: false\\n schema:\\n type: string\\n enum:\\n - text\\n - text-redacted\\n responses:\\n '200':\\n content:\\n text/plain:\\n schema:\\n type: string\\n description: Successful response, including the logs in text/plain format.\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '402':\\n $ref: '#/components/responses/PaymentRequiredError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: Get the log of a selected device's deployment\\n tags:\\n - Deployments_v1alpha1_Management API\\n /api/management/v1alpha1/deployments/deployments/{deployment_id}/devices/{device_id}/log/explain:\\n get:\\n description: |\\n Returns an AI-generated explanation of the device's deployment log.\\n This endpoint requires a paid (non-trial) plan.\\n operationId: Explain Deployment Log for Device\\n parameters:\\n - description: Deployment identifier.\\n in: path\\n name: deployment_id\\n required: true\\n schema:\\n type: string\\n - description: Device identifier.\\n in: path\\n name: device_id\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n content:\\n text/plain:\\n schema:\\n type: string\\n description: Successful response with an AI-generated explanation of the deployment log.\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: Get an AI-generated explanation of a device's deployment log\\n tags:\\n - Deployments_v1alpha1_Management API\\n /api/management/v2/deployments/deployments:\\n get:\\n description: |\\n Returns a filtered collection of deployments in the system. While you can provide multiple\\n deployment identifiers, and multiple names to get the multiple deployments you cannot mix\\n the ids and names in a one query expecting to get deployments that match both names or ids.\\n The endpoint will return the deployments that match the ids and the name, if combined.\\n operationId: Deployments V2 List Deployments\\n parameters:\\n - description: |\\n Deployment identifier. You can provide it multiple times to query a set of deployments.\\n in: query\\n name: id\\n schema:\\n type: string\\n - description: |\\n Deployment name. You can provide it multiple times to query a set of deployments.\\n in: query\\n name: name\\n schema:\\n type: string\\n - description: Deployment status filter.\\n in: query\\n name: status\\n schema:\\n enum:\\n - inprogress\\n - finished\\n - pending\\n type: string\\n - description: |\\n Deployment type filter.\\n in: query\\n name: type\\n schema:\\n enum:\\n - software\\n - configuration\\n type: string\\n - description: Results page number\\n in: query\\n name: page\\n schema:\\n default: 1\\n type: integer\\n - description: Maximum number of results per page.\\n in: query\\n name: per_page\\n schema:\\n default: 20\\n maximum: 500\\n type: integer\\n - description: List only deployments created before and equal to Unix timestamp (UTC)\\n in: query\\n name: created_before\\n schema:\\n type: integer\\n - description: List only deployments created after and equal to Unix timestamp (UTC)\\n in: query\\n name: created_after\\n schema:\\n type: integer\\n - description: |\\n Supports sorting the deployments list by creation date.\\n in: query\\n name: sort\\n schema:\\n enum:\\n - asc\\n - desc\\n type: string\\n - description: |\\n Device identity or inventory attribute name to use for a fallback device lookup\\n when no deployments match the given name filter. When set, the server resolves the\\n first name value against the device inventory/identity and returns deployments\\n targeting the matched device.\\n in: query\\n name: id_attribute\\n schema:\\n type: string\\n - description: |\\n Scope for the id_attribute parameter. Defaults to \\\"identity\\\", unless id_attribute\\n is \\\"name\\\" in which case it defaults to \\\"inventory\\\".\\n in: query\\n name: id_scope\\n schema:\\n enum:\\n - identity\\n - inventory\\n type: string\\n responses:\\n '200':\\n content:\\n application/json:\\n schema:\\n items:\\n $ref: '#/components/schemas/DeploymentV2'\\n type: array\\n description: Successful response.\\n headers:\\n X-Total-Count:\\n description: Total number of deployments matching query.\\n schema:\\n type: integer\\n Link:\\n description: Standard header, we support 'first', 'next', and 'prev'.\\n schema:\\n type: string\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: List all the deployments matching the specified filter parameters\\n tags:\\n - Deployments_v2_Management API\\n post:\\n description: |\\n Deploy software to devices matching the given filter.\\n The artifact is auto assigned to the device from all available artifacts based on artifact name and device type.\\n Devices for which there are no compatible artifacts to be installed are considered finished successfully as well as receive the status of `noartifact`.\\n If there are no artifacts for the deployment, the deployment will not be created and the 422 Unprocessable Entity status code will be returned.\\n Dynamic deployments feature is available only to Enterprise users.\\n operationId: Create Deployment\\n requestBody:\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/NewDeploymentV2TypeManagement'\\n description: New deployment that needs to be created.\\n required: true\\n responses:\\n '201':\\n content: {}\\n description: New deployment created.\\n headers:\\n Location:\\n description: URL of the newly created deployment.\\n schema:\\n type: string\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '409':\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n description: An active deployment with the same parameters already exists.\\n '422':\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n description: Unprocessable Entity.\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: Create a deployment\\n tags:\\n - Deployments_v2_Management API\\n x-mender-plan:\\n - enterprise\\n /api/management/v2/deployments/deployments/releases:\\n delete:\\n description: |\\n Deletes releases with names provided in the message body.\\n Releases used by deployments in progress can not be deleted\\n until deployment finishes.\\n operationId: Delete Releases\\n parameters:\\n - description: Name of the release to be deleted\\n in: query\\n name: name\\n required: true\\n schema:\\n type: string\\n responses:\\n '204':\\n content: {}\\n description: Releases deleted successfully.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '409':\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/ReleasesDeleteError'\\n description: Conflict.\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: Delete the releases with given names\\n tags:\\n - Deployments_v2_Management API\\n get:\\n description: |\\n Returns a collection of releases, allows filtering by release name and sorting\\n by name or last modification date.\\n operationId: Deployments V2 List Releases with pagination\\n parameters:\\n - description: Release name filter.\\n in: query\\n name: name\\n schema:\\n type: string\\n - description: |-\\n Filter the releases based on their associated tags and only return\\n releases that have at least one matching tag (i.e. OR matching).\\n explode: true\\n in: query\\n name: tag\\n schema:\\n items:\\n type: string\\n type: array\\n style: form\\n - description: Update type filter.\\n in: query\\n name: update_type\\n schema:\\n type: string\\n - description: Starting page.\\n in: query\\n name: page\\n schema:\\n default: 1\\n type: integer\\n - description: Maximum number of results per page.\\n in: query\\n name: per_page\\n schema:\\n default: 20\\n maximum: 500\\n type: integer\\n - description: |\\n Sort the release list by the specified field and direction.\\n in: query\\n name: sort\\n schema:\\n default: name:asc\\n enum:\\n - artifacts_count:asc\\n - artifacts_count:desc\\n - modified:asc\\n - modified:desc\\n - name:asc\\n - name:desc\\n - tags:asc\\n - tags:desc\\n type: string\\n responses:\\n '200':\\n content:\\n application/json:\\n example:\\n - name: my-app-v1.0.1\\n artifacts:\\n - id: 0c13a0e6-6b63-475d-8260-ee42a590e8ff\\n name: Application 1.0.0\\n description: Johns Monday test build\\n device_types_compatible:\\n - Beagle Bone\\n info:\\n format: mender\\n version: 3\\n updates:\\n - type_info:\\n type: rootfs-image\\n files:\\n - name: rootfs-image-1\\n checksum: cc436f982bc60a8255fe1926a450db5f195a19ad\\n size: 123\\n date: 2016-03-11T13:03:17.063+0000\\n metadata: {}\\n meta_data: []\\n artifact_provides:\\n artifact_name: test\\n rootfs-image.checksum: 32714818ad6f98ee0185a52e23a475d89122e3efd2b2c26c733781c28e798c99\\n rootfs-image.version: test\\n artifact_depends:\\n device_type:\\n - test\\n clears_artifact_provides:\\n - rootfs-image.*\\n size: 36891648\\n modified: '2016-03-11T13:03:17.063493443Z'\\n - id: 0c13a0e6-6b63-475d-8260-ee42a590e8ff\\n name: Application 1.0.0\\n description: Johns Monday test build\\n device_types_compatible:\\n - Raspberry Pi\\n info:\\n format: mender\\n version: 3\\n updates:\\n - type_info:\\n type: rootfs-image\\n files:\\n - name: rootfs-image-1\\n checksum: cc436f982bc60a8255fe1926a450db5f195a19ad\\n size: 123\\n date: 2016-03-11T13:03:17.063+0000\\n metadata: {}\\n meta_data: []\\n artifact_provides:\\n artifact_name: test\\n rootfs-image.checksum: 32714818ad6f98ee0185a52e23a475d89122e3efd2b2c26c733781c28e798c99\\n rootfs-image.version: test\\n artifact_depends:\\n device_type:\\n - test\\n clears_artifact_provides:\\n - rootfs-image.*\\n size: 36891648\\n modified: '2016-03-11T13:03:17.063493443Z'\\n - name: my-app-v2.0.0\\n artifacts:\\n - id: 0c13a0e6-6b63-475d-8260-ee42a590e8ff\\n name: Application 2.0.0\\n description: Johns Monday test build\\n device_types_compatible:\\n - Beagle Bone\\n info:\\n format: mender\\n version: 3\\n updates:\\n - type_info:\\n type: rootfs-image\\n files:\\n - name: rootfs-image-1\\n checksum: cc436f982bc60a8255fe1926a450db5f195a19ad\\n size: 123\\n date: 2016-03-11T13:03:17.063+0000\\n metadata: {}\\n meta_data: []\\n artifact_provides:\\n artifact_name: test\\n rootfs-image.checksum: 32714818ad6f98ee0185a52e23a475d89122e3efd2b2c26c733781c28e798c99\\n rootfs-image.version: test\\n artifact_depends:\\n device_type:\\n - test\\n clears_artifact_provides:\\n - rootfs-image.*\\n size: 36891648\\n modified: '2016-03-11T13:03:17.063493443Z'\\n schema:\\n $ref: '#/components/schemas/ReleasesV2'\\n description: Successful response.\\n headers:\\n X-Total-Count:\\n description: Total number of releases matching query.\\n schema:\\n type: integer\\n Link:\\n description: Standard header, we support 'first', 'next', and 'prev'.\\n schema:\\n type: string\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: |\\n List releases\\n tags:\\n - Deployments_v2_Management API\\n /api/management/v2/deployments/deployments/releases/{release_name}:\\n get:\\n description: |\\n Returns the release with given name.\\n operationId: Get Release with given name\\n parameters:\\n - description: Name of the release\\n in: path\\n name: release_name\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/ReleaseV2'\\n description: Successful response.\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: |\\n Get release\\n tags:\\n - Deployments_v2_Management API\\n patch:\\n description: |\\n Updates the Release object.\\n operationId: Update Release information\\n parameters:\\n - description: Name of the release\\n in: path\\n name: release_name\\n required: true\\n schema:\\n type: string\\n requestBody:\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/ReleaseUpdate'\\n required: false\\n responses:\\n '204':\\n content: {}\\n description: Successful response.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: |\\n Update selected fields of the Release object.\\n tags:\\n - Deployments_v2_Management API\\n /api/management/v2/deployments/deployments/releases/{release_name}/tags:\\n put:\\n description: |\\n Assigns tags to a release. The tags associated with the release will be\\n replaced with the ones defined in the request body.\\n\\n LIMITATIONS:\\n * Max 20 tags can be assigned to a single release.\\n * There can be no more than 100 unique tag keys in total.\\n operationId: Assign Release Tags\\n parameters:\\n - description: Name of the release\\n in: path\\n name: release_name\\n required: true\\n schema:\\n type: string\\n requestBody:\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Tags'\\n required: false\\n responses:\\n '204':\\n content: {}\\n description: Successful response.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '409':\\n content:\\n application/json:\\n example:\\n error: the total number of unique tags has been exceeded\\n request_id: f7881e82-0492-49fb-b459-795654e7188a\\n schema:\\n $ref: '#/components/schemas/Error'\\n description: Too many unique tag keys in use.\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: |\\n Update and replace the tags of a release.\\n tags:\\n - Deployments_v2_Management API\\n /api/management/v2/deployments/releases/all/tags:\\n get:\\n operationId: List Release Tags\\n responses:\\n '200':\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Tags'\\n description: Successful response.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '409':\\n content:\\n application/json:\\n example:\\n error: the total number of unique tags has been exceeded\\n request_id: f7881e82-0492-49fb-b459-795654e7188a\\n schema:\\n $ref: '#/components/schemas/Error'\\n description: Too many unique tag keys in use.\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: |\\n Lists all available tags for releases.\\n tags:\\n - Deployments_v2_Management API\\n /api/management/v2/deployments/releases/all/types:\\n get:\\n operationId: List Release Types\\n responses:\\n '200':\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/UpdateTypes'\\n description: Successful response.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: |\\n Lists all release update types.\\n tags:\\n - Deployments_v2_Management API\\n /api/management/v2/deployments/artifacts:\\n get:\\n description: |\\n Returns a collection of all artifacts sorted by name.\\n operationId: Deployments V2 List Artifacts with pagination\\n parameters:\\n - description: |\\n Artifact(s) name(s) filter.\\n Multiple names can be provided (e.g., `?name=foo&name=bar`).\\n Supports exact matching or prefix matching by adding `*` to the end (e.g., `foo*`).\\n Note: when using prefix matching you may pass only a single value and you cannot combine\\n prefix matching and exact matching in the same request.\\n in: query\\n name: name\\n schema:\\n type: array\\n items:\\n type: string\\n style: form\\n explode: true\\n examples:\\n single:\\n summary: Get artifact with the given name.\\n value:\\n - foo\\n multi:\\n summary: Get artifact matching multiple names by repeating the query parameter.\\n value:\\n - foo\\n - bar\\n prefix:\\n summary: Get artifact with the specified prefix\\n value:\\n - foo*\\n - description: |\\n Artifact description filter.\\n Supports exact matching or prefix matching by adding `*` to the end (e.g., `foo*`).\\n in: query\\n name: description\\n schema:\\n type: string\\n - description: |\\n Artifact device type filter.\\n Supports exact matching or prefix matching by adding `*` to the end (e.g., `foo*`).\\n in: query\\n name: device_type\\n schema:\\n type: string\\n - description: Starting page.\\n in: query\\n name: page\\n schema:\\n default: 1\\n type: integer\\n - description: Maximum number of results per page.\\n in: query\\n name: per_page\\n schema:\\n default: 20\\n maximum: 500\\n type: integer\\n responses:\\n '200':\\n content:\\n application/json:\\n schema:\\n items:\\n $ref: '#/components/schemas/ArtifactV2'\\n type: array\\n description: OK\\n headers:\\n Link:\\n description: Standard header, we support 'first', 'next', and 'prev'.\\n schema:\\n type: string\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n summary: |\\n Lists known artifacts.\\n tags:\\n - Deployments_v2_Management API\\n /api/management/v2/deployments/deployments/releases/delta/jobs:\\n get:\\n operationId: List server side binary delta generation jobs\\n tags:\\n - Deployments_v2_Management API\\n security:\\n - ManagementJWT: []\\n summary: |\\n Lists all jobs originating from the generation of binary deltas on the server side.\\n parameters:\\n - name: page\\n in: query\\n description: Starting page.\\n required: false\\n schema:\\n type: integer\\n default: 1\\n - name: per_page\\n in: query\\n description: Maximum number of results per page.\\n required: false\\n schema:\\n type: integer\\n default: 20\\n maximum: 500\\n - name: sort\\n in: query\\n description: |\\n Sort the job list by the specified field and direction.\\n required: false\\n schema:\\n type: string\\n enum:\\n - status:asc\\n - status:desc\\n - started:asc\\n - started:desc\\n - to_version:asc\\n - to_version:desc\\n - from_version:asc\\n - from_version:desc\\n default: status:asc\\n responses:\\n '200':\\n description: Successful query\\n content:\\n application/json:\\n schema:\\n type: array\\n items:\\n $ref: '#/components/schemas/DeltaJobsListItem'\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/management/v2/deployments/deployments/releases/delta/jobs/{id}:\\n get:\\n operationId: Get server side binary delta generation job details\\n tags:\\n - Deployments_v2_Management API\\n security:\\n - ManagementJWT: []\\n summary: |\\n Returns the details of a generation of binary deltas on the server side by delta generation job id.\\n parameters:\\n - name: id\\n in: path\\n description: |\\n Delta generation job id\\n required: true\\n schema:\\n type: string\\n format: uuid\\n responses:\\n '200':\\n description: Successful response.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/DeltaJobDetailsItem'\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/devices/v1/authentication/auth_requests:\\n post:\\n summary: Submit an authentication request\\n description: |\\n The device presents its unique identity data and public key, and signs the request with its private key.\\n If the request is valid and the device is known to the system, a valid JWT authentication token is issued.\\n\\n Unless the device is pre-authorized, the very first authentication request from a device will\\n always result in a 'HTTP 401 Unauthorized' response. At the same time, the identity data is recorded for\\n later inspection by the user, who can then explicitly accept or reject the device via the web GUI.\\n A subsequent authentication request will reflect this decision.\\n\\n Note that when the JWT expires, the device must renew the JWT by sending a new authentication request.\\n operationId: DeviceAuth Authenticate Device\\n tags:\\n - Device_Authentication_Device API\\n requestBody:\\n required: true\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/AuthRequest'\\n parameters:\\n - name: X-MEN-Signature\\n in: header\\n required: true\\n description: |\\n Request signature.\\n The request signature depends on the public key submitted in the AuthRequest.\\n A summary of signature algorithms and format follows:\\n | Type | Digest | Format | Algorithm |\\n |------------|---------------------|--------------------------|--------------|\\n | RSA | SHA256(AuthRequest) | Base64(Signature) | [RFC2313] |\\n | ECDSA | SHA256(AuthRequest) | Base64(ASN.1(SEQ{R, S})) | [ANSI x9.62] |\\n | Ed25519 | AuthRequest | Base64(Signature) | [RFC8032] |\\n *Remark:*\\n For ECDSA, the signature constitutes two integers (R and S)\\n in which case the binary signature is taken as the ASN.1 sequence of\\n the two numbers in the given order.\\n schema:\\n type: string\\n responses:\\n '200':\\n description: Authentication successful - a new JWT is issued and returned.\\n content:\\n application/json:\\n schema:\\n type: string\\n example: |\\n eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NzYxMTkxMzYsImp0aSI6Ijg1NGIzMTA5LTQ4NjItNGEyNS1hMWZiLWYxMTE2MWNlN2E4NCIsImlzcyI6Ik1lbmRlciIsInN1YiI6IjlmNzM2YmNiMjhiZmFhOTg5YjVmNWUxNDA5ZGJmMGVhYzdhNjYxMjZiNjMyZDAzYWYwZmUzNGFjMjhiZjRhNzIifQ.PArg_WuoQkOiJ4kDoHYbQRjnxykeF1lIlsgJfUryhivnip2AHz5bkxxaxF20XTq9mIzSDonTSukfOtkaxJTZXjCMHjgh50iwa6_pUivIYWsIJW2O9t_M9T_SC-7Xu7IhE_iKQFb2NXxVfAG4nZKrheUM4MJBt8SxCawT2EOPopiLeIC6MOFBu_sPa9RsagKSZCRaLTBWVhmEGbfn19tLOX3Z06DZql61G-VY-YuyOlBjpEsCc4HiA1cXIdncCZKugrONOa44_m4yx0VsgRg4jCd2VO-Is-A96Jw3zkZshoD2cPXVSKAhFdhHja447ftuYYRq9kIQghKi3hfsPgyFZQ\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '403':\\n description: The device authentication is forbidden. See the error message for details.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n example:\\n error: device unauthorized\\n request_id: f7881e82-0492-49fb-b459-795654e7188a\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n '503':\\n $ref: '#/components/responses/UnavailableError'\\n security:\\n - DeviceJWT: []\\n /api/internal/v1/devauth/alive:\\n get:\\n operationId: DeviceAuth Internal Check Liveliness\\n tags:\\n - Device_Authentication_Internal API\\n summary: Trivial endpoint that unconditionally returns an empty 204 response whenever the API handler is running correctly.\\n responses:\\n '204':\\n description: Service is up and running\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/devauth/health:\\n get:\\n operationId: DeviceAuth Internal Check Health\\n tags:\\n - Device_Authentication_Internal API\\n summary: Check the health of the service\\n responses:\\n '204':\\n description: Service is healthy and all dependencies are up and running.\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n '503':\\n description: Service unhealthy / not ready to accept traffic. At least one dependency is not running.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n examples:\\n example2:\\n value:\\n error: 'error reaching MongoDB: context deadline exceeded'\\n request_id: ffd712be-d697-4cb7-814b-88ff1e2eb5f6\\n /api/internal/v1/devauth/tokens/verify:\\n post:\\n operationId: DeviceAuth Internal Verify JWT\\n tags:\\n - Device_Authentication_Internal API\\n summary: Check the validity of a token\\n description: Besides the basic validity check, checks the token expiration time and user-initiated token revocation. Services which intend to use it should be correctly set up in the gateway's configuration.\\n parameters:\\n - name: Authorization\\n in: header\\n description: The token in base64-encoded form.\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n description: The token is valid.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '403':\\n $ref: '#/components/responses/ForbiddenError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n '503':\\n $ref: '#/components/responses/UnavailableError'\\n /api/internal/v1/devauth/tokens:\\n delete:\\n operationId: DeviceAuth Internal Revoke Device Tokens\\n tags:\\n - Device_Authentication_Internal API\\n summary: Delete device tokens\\n description: This endpoint is designed to be used for device decommissioning and tenant account suspension purpose. For device decommissioning purpose both tenant_id and device_id parameters must be set. When both tenant_id and device_id parameters are set, all tokens will be deleted for device with given device_id. For tenant account suspension purpose only tenant_id parameter must be set. When device_id parameter is not set (only tenant_id parameter is set) all tokens for all tenant devices will be deleted.\\n parameters:\\n - name: tenant_id\\n in: query\\n required: true\\n schema:\\n type: string\\n - name: device_id\\n in: query\\n required: false\\n schema:\\n type: string\\n responses:\\n '204':\\n description: Tokens deleted.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n '503':\\n $ref: '#/components/responses/UnavailableError'\\n /api/internal/v1/devauth/tenant/limits:\\n get:\\n operationId: Get All Device Limits\\n tags:\\n - Device_Authentication_Internal API\\n summary: Get all limits for a list of tenants.\\n parameters:\\n - name: tenant_id\\n in: query\\n description: Tenant ID.\\n required: true\\n schema:\\n type: array\\n items:\\n type: string\\n responses:\\n '200':\\n description: Successful response.\\n content:\\n application/json:\\n schema:\\n type: object\\n description: A dictionary mapping tenant_id to device limits\\n additionalProperties:\\n $ref: '#/components/schemas/DeviceTierLimits'\\n example:\\n 58be8208dd77460001fe0d78:\\n standard: 100\\n micro: 1000\\n system: 10\\n test: 0\\n 58be8208dd77460001fe0d79:\\n standard: 10\\n micro: 0\\n system: 1\\n test: 10\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/devauth/tenant/{tenant_id}/limits/{name}:\\n get:\\n operationId: DeviceAuth Internal Get Device Limit\\n tags:\\n - Device_Authentication_Internal API\\n summary: Max device count limit\\n parameters:\\n - name: tenant_id\\n description: Tenant ID.\\n in: path\\n required: true\\n schema:\\n type: string\\n - name: name\\n in: path\\n description: Limit identifier.\\n required: true\\n schema:\\n type: string\\n enum:\\n - max_devices\\n - max_micro_devices\\n - max_system_devices\\n responses:\\n '200':\\n description: Successful response.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/DeviceLimit'\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n put:\\n operationId: DeviceAuth Internal Update Device Limit\\n tags:\\n - Device_Authentication_Internal API\\n summary: Update max device count limit\\n parameters:\\n - name: tenant_id\\n description: Tenant ID.\\n in: path\\n required: true\\n schema:\\n type: string\\n - name: name\\n in: path\\n description: Limit identifier.\\n required: true\\n schema:\\n type: string\\n enum:\\n - max_devices\\n - max_micro_devices\\n - max_system_devices\\n requestBody:\\n required: true\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/DeviceLimit'\\n responses:\\n '204':\\n description: Limit information updated.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n delete:\\n operationId: DeviceAuth Internal Clear Device Limit\\n tags:\\n - Device_Authentication_Internal API\\n summary: Remove max device count limit\\n parameters:\\n - name: tenant_id\\n description: Tenant ID.\\n in: path\\n required: true\\n schema:\\n type: string\\n - name: name\\n in: path\\n description: Limit identifier.\\n required: true\\n schema:\\n type: string\\n enum:\\n - max_devices\\n - max_micro_devices\\n - max_system_devices\\n responses:\\n '204':\\n description: Limit information deleted.\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/devauth/tenants:\\n post:\\n operationId: DeviceAuth Internal Create Tenant\\n tags:\\n - Device_Authentication_Internal API\\n summary: Provision a new tenant\\n description: Sets up all tenant-related infrastructure, e.g. a migrated tenant's database.\\n requestBody:\\n required: true\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/TenantNew'\\n responses:\\n '201':\\n description: Tenant was successfully provisioned.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/devauth/tenants/{tid}/devices/{did}:\\n delete:\\n operationId: DeviceAuth Internal Delete Device\\n tags:\\n - Device_Authentication_Internal API\\n summary: Delete a device from deviceauth service.\\n parameters:\\n - name: tid\\n in: path\\n required: true\\n schema:\\n type: string\\n - name: did\\n in: path\\n required: true\\n schema:\\n type: string\\n - $ref: '#/components/parameters/Authentication'\\n - $ref: '#/components/parameters/RequestId'\\n responses:\\n '201':\\n description: Device deleted successfully.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n '503':\\n $ref: '#/components/responses/UnavailableError'\\n patch:\\n operationId: Update device auth\\n tags:\\n - Device_Authentication_Internal API\\n summary: Update the device authentication data\\n parameters:\\n - name: tid\\n in: path\\n description: Tenant identifier.\\n required: true\\n schema:\\n type: string\\n - name: did\\n in: path\\n description: Device identifier.\\n required: true\\n schema:\\n type: string\\n requestBody:\\n required: true\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/UdpateDeviceAuth'\\n responses:\\n '204':\\n description: Success.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/devauth/tenants/{tid}/devices/{did}/external:\\n put:\\n operationId: DeviceAuth Internal Set external identity\\n tags:\\n - Device_Authentication_Internal API\\n summary: Replace the external identity of a device.\\n parameters:\\n - name: tid\\n in: path\\n description: Tenant identifier.\\n required: true\\n schema:\\n type: string\\n - name: did\\n in: path\\n description: Device identifier.\\n required: true\\n schema:\\n type: string\\n requestBody:\\n required: true\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/ExternalDevice'\\n responses:\\n '204':\\n description: Device identity updated successfully.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/devauth/tenants/{tid}:\\n delete:\\n operationId: Delete Tenant internal deviceauth\\n tags:\\n - Device_Authentication_Internal API\\n summary: Delete all the data for given tenant.\\n parameters:\\n - name: tid\\n in: path\\n description: Tenant ID.\\n required: true\\n schema:\\n type: string\\n responses:\\n '204':\\n description: All the tenant data have been successfully deleted.\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/devauth/tenants/{tid}/devices/{did}/status:\\n get:\\n operationId: DeviceAuth Internal Device Status\\n tags:\\n - Device_Authentication_Internal API\\n summary: Get the status of a tenant's device\\n description: Returns the overall status of the device, computed over the statuses of its various authsets.\\n parameters:\\n - name: tid\\n in: path\\n description: Tenant identifier.\\n required: true\\n schema:\\n type: string\\n - name: did\\n in: path\\n description: Device identifier.\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n description: Success.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Status'\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/devauth/tenants/{tid}/devices:\\n get:\\n operationId: DeviceAuth Internal List Devices\\n tags:\\n - Device_Authentication_Internal API\\n summary: Get a list of tenant's devices.\\n description: Provides a list of tenant's devices, sorted by creation date, with optional device status filter.\\n parameters:\\n - name: tid\\n in: path\\n description: Tenant identifier.\\n required: true\\n schema:\\n type: string\\n - name: status\\n in: query\\n description: Device status filter. If not specified, all devices are listed.\\n required: false\\n schema:\\n type: string\\n enum:\\n - pending\\n - accepted\\n - rejected\\n - preauthorized\\n - noauth\\n - name: id\\n in: query\\n description: Device ID filter. Can be repeated to query a set of devices.\\n required: false\\n schema:\\n type: array\\n items:\\n type: string\\n - name: page\\n in: query\\n description: Results page number.\\n required: false\\n schema:\\n type: integer\\n default: 1\\n - name: per_page\\n in: query\\n description: Maximum number of results per page.\\n required: false\\n schema:\\n type: integer\\n default: 20\\n maximum: 500\\n responses:\\n '200':\\n description: An array of devices.\\n content:\\n application/json:\\n schema:\\n type: array\\n items:\\n $ref: '#/components/schemas/Device'\\n headers:\\n Link:\\n description: Standard header, we support 'first', 'next', and 'prev'.\\n schema:\\n type: string\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/devauth/tenants/{tid}/devices/count:\\n get:\\n operationId: DeviceAuth Internal Count Devices\\n summary: Count number of devices, optionally filtered by status.\\n tags:\\n - Device_Authentication_Internal API\\n parameters:\\n - name: tid\\n in: path\\n description: Tenant identifier.\\n required: true\\n schema:\\n type: string\\n - name: status\\n in: query\\n description: Device status filter, one of 'pending', 'accepted', 'rejected', 'noauth'. Default is 'all devices'.\\n required: false\\n schema:\\n type: string\\n responses:\\n '200':\\n description: Device count.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Count'\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/devauth/tenant/{tid}/limits:\\n put:\\n operationId: DeviceAuth Internal Put All Limits\\n summary: Set all the limits for given tenant.\\n tags:\\n - Device_Authentication_Internal API\\n parameters:\\n - name: tid\\n in: path\\n description: Tenant identifier.\\n required: true\\n schema:\\n type: string\\n requestBody:\\n required: true\\n content:\\n application/json:\\n schema:\\n type: array\\n items:\\n $ref: '#/components/schemas/DeviceLimitTenantPut'\\n responses:\\n '204':\\n description: Device limits updated.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n get:\\n operationId: DeviceAuth Internal Get All Limits\\n summary: Get all the limits for given tenant.\\n tags:\\n - Device_Authentication_Internal API\\n parameters:\\n - name: tid\\n in: path\\n description: Tenant identifier.\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n description: Device limits.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/DeviceTierLimits'\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n delete:\\n operationId: DeviceAuth Internal Delete All Limits\\n summary: Delete all the limits for all the tiers for given tenant ID.\\n tags:\\n - Device_Authentication_Internal API\\n parameters:\\n - name: tid\\n in: path\\n description: Tenant identifier.\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n description: Device limits.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/management/v2/devauth/devices:\\n get:\\n operationId: DeviceAuth Management List Devices\\n security:\\n - ManagementJWT: []\\n summary: List devices sorted by age and optionally filter on device status.\\n tags:\\n - Device_Authentication_Management API\\n parameters:\\n - name: authorization\\n in: header\\n description: The token in base64-encoded form.\\n required: false\\n schema:\\n type: string\\n - name: status\\n in: query\\n description: Device status filter. If not specified, all devices are listed.\\n required: false\\n schema:\\n type: string\\n enum:\\n - pending\\n - accepted\\n - rejected\\n - preauthorized\\n - noauth\\n - name: id\\n in: query\\n description: Device ID filter. Can be repeated to query a set of devices.\\n required: false\\n schema:\\n type: array\\n items:\\n type: string\\n style: form\\n explode: true\\n - name: page\\n in: query\\n description: Results page number\\n required: false\\n schema:\\n type: integer\\n default: 1\\n - name: per_page\\n in: query\\n description: Maximum number of results per page.\\n required: false\\n schema:\\n type: integer\\n default: 20\\n maximum: 500\\n - $ref: '#/components/parameters/RequestId'\\n responses:\\n '200':\\n description: An array of devices.\\n content:\\n application/json:\\n schema:\\n type: array\\n items:\\n $ref: '#/components/schemas/Device'\\n headers:\\n Link:\\n description: Standard header, we support 'first', 'next', and 'prev'.\\n schema:\\n type: string\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n post:\\n operationId: DeviceAuth Management Preauthorize\\n security:\\n - ManagementJWT: []\\n summary: Submit a preauthorized device.\\n description: Authorize a device identity with the server backend. On success the device identity is marked as 'preauthorized', and once the device connects and sends it's first authentication request the device automatically become 'accepted' without explicit user intervention.\\n tags:\\n - Device_Authentication_Management API\\n parameters:\\n - $ref: '#/components/parameters/RequestId'\\n requestBody:\\n required: true\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/PreAuthSet'\\n responses:\\n '201':\\n description: Device submitted.\\n headers:\\n Location:\\n description: URL of the newly created device.\\n schema:\\n type: string\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '409':\\n description: Device already exists. Response contains conflicting device.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Device'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/management/v2/devauth/devices/search:\\n post:\\n operationId: DeviceAuth Management Search Devices\\n security:\\n - ManagementJWT: []\\n summary: Query for devices. Returns a list of matching devices with AuthSets sorted by age.\\n tags:\\n - Device_Authentication_Management API\\n parameters:\\n - name: page\\n in: query\\n description: Results page number\\n required: false\\n schema:\\n type: integer\\n default: 1\\n - name: per_page\\n in: query\\n description: Maximum number of results per page.\\n required: false\\n schema:\\n type: integer\\n default: 20\\n maximum: 500\\n - $ref: '#/components/parameters/RequestId'\\n requestBody:\\n required: true\\n description: Device status filter. All properties can be either a single string or an array of strings.\\n content:\\n application/json:\\n schema:\\n type: object\\n properties:\\n status:\\n type: array\\n description: Device status filter. Can be an array for querying devices from multiple device statuses.\\n items:\\n type: string\\n enum:\\n - pending\\n - accepted\\n - rejected\\n - preauthorized\\n - noauth\\n id:\\n type: array\\n description: Device ID filter. Can be a string for querying for a single device.\\n items:\\n type: string\\n description: Device ID\\n responses:\\n '200':\\n description: Successful response\\n content:\\n application/json:\\n schema:\\n type: array\\n description: Array of devices\\n items:\\n $ref: '#/components/schemas/Device'\\n headers:\\n Link:\\n description: Pagination link header, we support 'first', 'next', and 'prev'.\\n schema:\\n type: string\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/management/v2/devauth/devices/{id}:\\n get:\\n operationId: DeviceAuth Management Get Device\\n security:\\n - ManagementJWT: []\\n summary: Get a particular device.\\n tags:\\n - Device_Authentication_Management API\\n parameters:\\n - name: id\\n in: path\\n description: Device identifier.\\n required: true\\n schema:\\n type: string\\n - $ref: '#/components/parameters/RequestId'\\n - $ref: '#/components/parameters/Authentication'\\n responses:\\n '200':\\n description: Device found.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Device'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n delete:\\n operationId: DeviceAuth Management Decommission device\\n security:\\n - ManagementJWT: []\\n summary: Remove device and associated authentication set\\n tags:\\n - Device_Authentication_Management API\\n parameters:\\n - name: Authorization\\n in: header\\n description: The token in base64-encoded form.\\n required: false\\n schema:\\n type: string\\n - name: id\\n in: path\\n description: Device identifier.\\n required: true\\n schema:\\n type: string\\n - $ref: '#/components/parameters/RequestId'\\n responses:\\n '204':\\n description: Device decommissioned.\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n '503':\\n $ref: '#/components/responses/UnavailableError'\\n /api/management/v2/devauth/devices/{id}/auth/{aid}:\\n delete:\\n operationId: DeviceAuth Management Remove authentication\\n security:\\n - ManagementJWT: []\\n summary: Remove (dismiss) the device authentication set\\n description: Removes the device authentication set. Removing 'accepted' authentication set is equivalent to rejecting device and removing authentication set. If there is only one authentication set for the device and the device is 'preauthorized' then the device will also be deleted.\\n tags:\\n - Device_Authentication_Management API\\n parameters:\\n - name: id\\n in: path\\n description: Device identifier.\\n required: true\\n schema:\\n type: string\\n - name: aid\\n in: path\\n description: Authentication data set identifier.\\n required: true\\n schema:\\n type: string\\n - $ref: '#/components/parameters/RequestId'\\n - $ref: '#/components/parameters/Authentication'\\n responses:\\n '204':\\n description: Device authentication set deleted.\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n '503':\\n $ref: '#/components/responses/UnavailableError'\\n /api/management/v2/devauth/devices/{id}/auth/{aid}/status:\\n put:\\n operationId: DeviceAuth Management Set Authentication Status\\n security:\\n - ManagementJWT: []\\n summary: Update the device authentication set status\\n description: 'Sets the status of an authentication data set of selected value. Valid state transitions: - ''pending'' -> ''accepted'' - ''pending'' -> ''rejected'' - ''rejected'' -> ''accepted'' - ''accepted'' -> ''rejected'''\\n tags:\\n - Device_Authentication_Management API\\n parameters:\\n - name: authorization\\n in: header\\n description: The token in base64-encoded form.\\n required: false\\n schema:\\n type: string\\n - name: id\\n in: path\\n description: Device identifier.\\n required: true\\n schema:\\n type: string\\n - name: aid\\n in: path\\n description: Authentication data set identifier.\\n required: true\\n schema:\\n type: string\\n - $ref: '#/components/parameters/RequestId'\\n requestBody:\\n required: true\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Status'\\n responses:\\n '204':\\n description: The device authentication data set status was successfully updated.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '422':\\n description: Request cannot be fulfilled e.g. due to exceeded limit on maximum accepted devices (see error message).\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n '503':\\n $ref: '#/components/responses/UnavailableError'\\n get:\\n operationId: DeviceAuth Management Get Authentication Status\\n security:\\n - ManagementJWT: []\\n summary: Get the device authentication set status\\n tags:\\n - Device_Authentication_Management API\\n parameters:\\n - name: id\\n in: path\\n description: Device identifier.\\n required: true\\n schema:\\n type: string\\n - name: aid\\n in: path\\n description: Authentication data set identifier.\\n required: true\\n schema:\\n type: string\\n - $ref: '#/components/parameters/RequestId'\\n responses:\\n '200':\\n description: Successful response - the device's authentication set status is returned.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Status'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/management/v2/devauth/devices/{id}/flags:\\n put:\\n operationId: Assign device flags\\n security:\\n - ManagementJWT: []\\n summary: Assign device feature flags.\\n tags:\\n - Device_Authentication_Management API\\n parameters:\\n - name: id\\n in: path\\n description: Device identifier.\\n required: true\\n schema:\\n type: string\\n - $ref: '#/components/parameters/RequestId'\\n requestBody:\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/DeviceFlags'\\n responses:\\n '204':\\n description: Device flags updated successfully\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '422':\\n description: Request cannot be fulfilled e.g. due to exceeded limit on maximum test devices.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '429':\\n $ref: '#/components/responses/TooManyRequestsError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/management/v2/devauth/devices/count:\\n get:\\n operationId: DeviceAuth Management Count Devices\\n security:\\n - ManagementJWT: []\\n summary: Count number of devices, optionally filtered by status.\\n tags:\\n - Device_Authentication_Management API\\n parameters:\\n - name: status\\n in: query\\n description: Device status filter, one of 'pending', 'accepted', 'rejected', 'noauth', 'preauthorized'. Default is 'all devices', meaning devices with any of these statuses will be counted.\\n required: false\\n schema:\\n type: string\\n - $ref: '#/components/parameters/RequestId'\\n responses:\\n '200':\\n description: Device count.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Count'\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/management/v2/devauth/tokens/{id}:\\n delete:\\n operationId: DeviceAuth Management Revoke API Token\\n security:\\n - ManagementJWT: []\\n summary: Revoke JWT with given id\\n description: Deletes the token, effectively revoking it. The device must apply for a new one with a new authentication request. The token 'id' corresponds to the standard 'jti' claim.\\n tags:\\n - Device_Authentication_Management API\\n parameters:\\n - name: id\\n in: path\\n description: Unique token identifier('jti').\\n required: true\\n schema:\\n type: string\\n - $ref: '#/components/parameters/RequestId'\\n responses:\\n '204':\\n description: The token was successfully deleted.\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n '503':\\n $ref: '#/components/responses/UnavailableError'\\n /api/management/v2/devauth/limits/{name}:\\n get:\\n deprecated: true\\n description: |\\n Get Device Limit\\n x-deprecated-description: |\\n _since Tue Oct 21 2025_ we deprecated the endpoint due to a change in device limits. Please use the v2 /devauth/limits/devices endpoint instead.\\n operationId: DeviceAuth Management Get Device Limit\\n security:\\n - ManagementJWT: []\\n summary: Obtain limit of accepted devices.\\n tags:\\n - Device_Authentication_Management API\\n parameters:\\n - name: name\\n in: path\\n description: Limit identifier.\\n required: true\\n schema:\\n type: string\\n enum:\\n - max_devices\\n - max_micro_devices\\n - max_system_devices\\n - $ref: '#/components/parameters/RequestId'\\n responses:\\n '200':\\n description: Usage statistics and limits.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/DeviceLimit'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/management/v2/devauth/limits/devices:\\n get:\\n operationId: Get Device Limits Per Tier\\n security:\\n - ManagementJWT: []\\n summary: Obtain device limits information\\n tags:\\n - Device_Authentication_Management API\\n parameters:\\n - $ref: '#/components/parameters/RequestId'\\n responses:\\n '200':\\n description: Usage statistics and limits.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/DeviceTierLimits'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n '503':\\n $ref: '#/components/responses/UnavailableError'\\n /api/management/v2/devauth/license:\\n get:\\n operationId: Get Device License\\n security:\\n - ManagementJWT: []\\n summary: Obtain license information for devices.\\n tags:\\n - Device_Authentication_Management API\\n parameters:\\n - $ref: '#/components/parameters/Authentication'\\n responses:\\n '200':\\n description: Usage statistics and limits.\\n content:\\n text/csv:\\n schema:\\n title: UsageStatistics\\n type: string\\n '404':\\n $ref: '#/components/responses/NotFound'\\n /api/management/v2/devauth/auto-auth:\\n post:\\n operationId: Automatically Authenticate Device\\n security:\\n - ManagementJWT: []\\n tags:\\n - Device_Authentication_Management API\\n summary: Automatically accept a device\\n description: |\\n The caller presents device identity data and public key, and signs the request with a private key.\\n If the request is valid the device is accepted, and a valid JWT authentication token is issued.\\n requestBody:\\n required: true\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/AutoAuthRequest'\\n parameters:\\n - name: X-MEN-Signature\\n in: header\\n description: |\\n Request signature.\\n\\n The request signature depends on the public key submitted in the\\n AuthRequest. A summary of signature algorithms and format follows:\\n\\n | Type | Digest | Format | Algorithm |\\n |------------|---------------------|--------------------------|--------------|\\n | RSA | SHA256(AuthRequest) | Base64(Signature) | [RFC2313] |\\n | ECDSA | SHA256(AuthRequest) | Base64(ASN.1(SEQ{R, S})) | [ANSI x9.62] |\\n | ED25519 | AuthRequest | Base64(Signature) | [RFC8032] |\\n *Remark:*\\n For ECDSA, the signature constitutes two integers (R and S)\\n in which case the binary signature is taken as the ASN.1 sequence of\\n the two numbers in the given order.\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n description: Authentication successful - a new JWT is issued and returned.\\n content:\\n application/json:\\n schema:\\n type: string\\n example: |\\n eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NzYxMTkxMzYsImp0aSI6Ijg1NGIzMTA5LTQ4NjItNGEyNS1hMWZiLWYxMTE2MWNlN2E4NCIsImlzcyI6Ik1lbmRlciIsInN1YiI6IjlmNzM2YmNiMjhiZmFhOTg5YjVmNWUxNDA5ZGJmMGVhYzdhNjYxMjZiNjMyZDAzYWYwZmUzNGFjMjhiZjRhNzIifQ.PArg_WuoQkOiJ4kDoHYbQRjnxykeF1lIlsgJfUryhivnip2AHz5bkxxaxF20XTq9mIzSDonTSukfOtkaxJTZXjCMHjgh50iwa6_pUivIYWsIJW2O9t_M9T_SC-7Xu7IhE_iKQFb2NXxVfAG4nZKrheUM4MJBt8SxCawT2EOPopiLeIC6MOFBu_sPa9RsagKSZCRaLTBWVhmEGbfn19tLOX3Z06DZql61G-VY-YuyOlBjpEsCc4HiA1cXIdncCZKugrONOa44_m4yx0VsgRg4jCd2VO-Is-A96Jw3zkZshoD2cPXVSKAhFdhHja447ftuYYRq9kIQghKi3hfsPgyFZQ\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n '503':\\n $ref: '#/components/responses/UnavailableError'\\n /api/devices/v1/deviceconfig/configuration:\\n get:\\n operationId: DeviceConfig Get Device Configuration\\n tags:\\n - Device_configure_Device API\\n summary: Query the configuration store; retrieve all key-value pairs\\n responses:\\n '200':\\n description: OK\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/DeviceAPIConfiguration'\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n x-mender-addon:\\n - configure\\n security:\\n - DeviceJWT: []\\n put:\\n operationId: DeviceConfig Report Device Configuration\\n tags:\\n - Device_configure_Device API\\n summary: Set a key-value pair store, updating if existing, removing if empty\\n requestBody:\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/DeviceAPIConfiguration'\\n responses:\\n '204':\\n description: Created\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n x-mender-addon:\\n - configure\\n security:\\n - DeviceJWT: []\\n /api/internal/v1/deviceconfig/health:\\n get:\\n tags:\\n - Device_configure_Internal API\\n summary: Get health status of service\\n operationId: DeviceConfig Internal Check Health\\n responses:\\n '204':\\n description: Service is healthy.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/deviceconfig/alive:\\n get:\\n tags:\\n - Device_configure_Internal API\\n summary: Get service liveliness status.\\n operationId: DeviceConfig Internal Check Liveliness\\n responses:\\n '204':\\n description: Service is up and serving requests.\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/deviceconfig/tenants:\\n post:\\n tags:\\n - Device_configure_Internal API\\n operationId: DeviceConfig Internal Provision tenant\\n summary: Initialize internal state for a new tenant\\n requestBody:\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/TenantNew'\\n responses:\\n '201':\\n description: Tenant initialized successfully.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/deviceconfig/tenants/{tenantId}:\\n delete:\\n operationId: DeviceConfig Internal Delete Tenant\\n tags:\\n - Device_configure_Internal API\\n summary: Delete all the data for given tenant.\\n parameters:\\n - in: path\\n name: tenantId\\n schema:\\n type: string\\n required: true\\n description: ID of tenant.\\n responses:\\n '204':\\n description: All the tenant data have been successfully deleted.\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/deviceconfig/tenants/{tenantId}/devices:\\n post:\\n tags:\\n - Device_configure_Internal API\\n operationId: DeviceConfig Internal Provision device\\n summary: Register a new device with the deviceconfig service.\\n parameters:\\n - in: path\\n name: tenantId\\n schema:\\n type: string\\n required: true\\n description: ID of tenant the device belongs to.\\n requestBody:\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/ProvisionDevice'\\n responses:\\n '201':\\n description: Device was provisioned successfully.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/deviceconfig/tenants/{tenantId}/devices/{deviceId}:\\n delete:\\n tags:\\n - Device_configure_Internal API\\n operationId: DeviceConfig Internal Decommission device\\n summary: Remove a device from the deviceconfig service.\\n parameters:\\n - in: path\\n name: tenantId\\n schema:\\n type: string\\n required: true\\n description: ID of tenant the device belongs to.\\n - in: path\\n name: deviceId\\n schema:\\n type: string\\n required: true\\n description: ID of the target device.\\n responses:\\n '204':\\n description: Device was deleted successfully\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/deviceconfig/tenants/{tenantId}/configurations/device/{deviceId}/deploy:\\n post:\\n operationId: DeviceConfig Internal Deploy Device Configuration\\n tags:\\n - Device_configure_Internal API\\n summary: Deploy the device's configuration\\n requestBody:\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/NewConfigurationDeployment'\\n parameters:\\n - in: path\\n name: deviceId\\n schema:\\n type: string\\n required: true\\n description: ID of the device.\\n - in: path\\n name: tenantId\\n schema:\\n type: string\\n required: true\\n description: ID of the tenant.\\n responses:\\n '200':\\n description: Success\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/NewConfigurationDeploymentResponse'\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/management/v1/deviceconfig/configurations/device/{deviceId}:\\n get:\\n operationId: DeviceConfig Management Get Device Configuration\\n tags:\\n - Device_configure_Management API\\n summary: Get the device's configuration\\n parameters:\\n - in: path\\n name: deviceId\\n schema:\\n type: string\\n format: uuid\\n required: true\\n description: ID of the device to query.\\n responses:\\n '200':\\n description: Success\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/DeviceConfiguration'\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n x-mender-addon:\\n - configure\\n security:\\n - ManagementJWT: []\\n put:\\n operationId: DeviceConfig Management Set Device Configuration\\n tags:\\n - Device_configure_Management API\\n summary: Set the device's configuration\\n requestBody:\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/ManagementAPIConfiguration'\\n parameters:\\n - in: path\\n name: deviceId\\n schema:\\n type: string\\n required: true\\n description: ID of the device to query.\\n responses:\\n '204':\\n description: Success\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n x-mender-addon:\\n - configure\\n security:\\n - ManagementJWT: []\\n /api/management/v1/deviceconfig/configurations/device/{deviceId}/deploy:\\n post:\\n operationId: DeviceConfig Management Deploy Device Configuration\\n tags:\\n - Device_configure_Management API\\n summary: Deploy the device's configuration\\n requestBody:\\n required: true\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/NewConfigurationDeployment'\\n parameters:\\n - in: path\\n name: deviceId\\n schema:\\n type: string\\n required: true\\n description: ID of the device.\\n responses:\\n '200':\\n description: Success\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/NewConfigurationDeploymentResponse'\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n x-mender-addon:\\n - configure\\n security:\\n - ManagementJWT: []\\n /api/devices/v1/deviceconnect/connect:\\n get:\\n tags:\\n - Device_connect_Device API\\n operationId: DeviceConnect Connect\\n summary: Connect the device and make it available to the server.\\n description: Calling /connect will upgrade the connection to a persistent websocket connection and make the device available to the management API. The device must provide DeviceJWT identity either as Authorization (Bearer) header or as a cookie named 'JWT'.\\n parameters:\\n - in: header\\n name: Connection\\n schema:\\n type: string\\n enum:\\n - Upgrade\\n description: Standard websocket request header.\\n - in: header\\n name: Upgrade\\n schema:\\n type: string\\n format: base64\\n enum:\\n - websocket\\n description: Standard websocket request header.\\n - in: header\\n name: Sec-Websocket-Key\\n schema:\\n type: string\\n format: base64\\n description: Standard websocket request header.\\n - in: header\\n name: Sec-Websocket-Version\\n schema:\\n type: integer\\n enum:\\n - 13\\n description: Standard websocket request header.\\n responses:\\n '101':\\n description: |\\n Successful response - change to websocket protocol.\\n headers:\\n Sec-Websocket-Accept:\\n schema:\\n type: string\\n format: base64\\n description: Standard websocket upgrade response header.\\n Upgrade:\\n schema:\\n type: string\\n enum:\\n - websocket\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n x-mender-addon:\\n - troubleshoot\\n security:\\n - DeviceJWT: []\\n /api/internal/v1/deviceconnect/health:\\n get:\\n tags:\\n - Device_connect_Internal API\\n summary: Get health status of service\\n operationId: DeviceConnect Internal Check Health\\n responses:\\n '204':\\n description: Service is healthy.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/deviceconnect/alive:\\n get:\\n tags:\\n - Device_connect_Internal API\\n summary: Get service liveliness status.\\n operationId: DeviceConnect Internal Check Liveliness\\n responses:\\n '204':\\n description: Service is up and serving requests.\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/deviceconnect/shutdown:\\n get:\\n tags:\\n - Device_connect_Internal API\\n summary: Shutdown the service.\\n operationId: DeviceConnect Internal Shutdown\\n responses:\\n '202':\\n description: The service started the graceful shutdown procedure.\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/deviceconnect/tenants/{tenantId}:\\n delete:\\n operationId: Delete Tenant Data\\n tags:\\n - Device_connect_Internal API\\n summary: Delete all the data for given tenant.\\n parameters:\\n - in: path\\n name: tenantId\\n schema:\\n type: string\\n required: true\\n description: ID of tenant.\\n responses:\\n '204':\\n description: All the tenant data have been successfully deleted.\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/deviceconnect/tenants/{tenantId}/devices:\\n post:\\n tags:\\n - Device_connect_Internal API\\n operationId: DeviceConnect Internal Provision device\\n summary: Register a new device with the deviceconnect service.\\n parameters:\\n - in: path\\n name: tenantId\\n schema:\\n type: string\\n required: true\\n description: ID of tenant the device belongs to.\\n requestBody:\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/ProvisionDevice'\\n responses:\\n '201':\\n description: Device was provisioned successfully.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/deviceconnect/tenants/{tenantId}/devices/{deviceId}:\\n delete:\\n tags:\\n - Device_connect_Internal API\\n operationId: DeviceConnect Internal Decomission device\\n summary: Remove a device from the deviceconnect service.\\n parameters:\\n - in: path\\n name: tenantId\\n schema:\\n type: string\\n required: true\\n description: ID of tenant the device belongs to.\\n - in: path\\n name: deviceId\\n schema:\\n type: string\\n required: true\\n description: ID of the target device.\\n responses:\\n '202':\\n description: Device was deleted successfully\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/deviceconnect/tenants/{tenantId}/devices/{deviceId}/check-update:\\n post:\\n tags:\\n - Device_connect_Internal API\\n operationId: DeviceConnect Internal Check Update\\n summary: Trigger check-update for the Mender client running on the device\\n parameters:\\n - in: path\\n name: tenantId\\n schema:\\n type: string\\n required: true\\n description: ID of tenant the device belongs to.\\n - in: path\\n name: deviceId\\n required: true\\n schema:\\n type: string\\n description: ID for the target device.\\n responses:\\n '202':\\n description: Accepted\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '409':\\n $ref: '#/components/responses/ConflictError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/deviceconnect/tenants/{tenantId}/devices/{deviceId}/send-inventory:\\n post:\\n tags:\\n - Device_connect_Internal API\\n operationId: DeviceConnect Internal Send Inventory\\n summary: Trigger send-inventory for the Mender client running on the device\\n parameters:\\n - in: path\\n name: tenantId\\n schema:\\n type: string\\n required: true\\n description: ID of tenant the device belongs to.\\n - in: path\\n name: deviceId\\n required: true\\n schema:\\n type: string\\n description: ID for the target device.\\n responses:\\n '202':\\n description: Accepted\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '409':\\n $ref: '#/components/responses/ConflictError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/management/v1/deviceconnect/devices/{id}:\\n get:\\n tags:\\n - Device_connect_Management API\\n operationId: DeviceConnect Management Get device\\n summary: Fetch the state of a device.\\n parameters:\\n - in: path\\n name: id\\n required: true\\n schema:\\n type: string\\n format: uuid\\n description: ID of the device.\\n responses:\\n '200':\\n description: Successful response.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/ConnectionState'\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n x-mender-addon:\\n - troubleshoot\\n security:\\n - ManagementJWT: []\\n /api/management/v1/deviceconnect/devices/{id}/check-update:\\n post:\\n tags:\\n - Device_connect_Management API\\n operationId: DeviceConnect Management Check Update\\n summary: Trigger check-update for the Mender client running on the device\\n parameters:\\n - in: path\\n name: id\\n required: true\\n schema:\\n type: string\\n format: uuid\\n description: ID of the device.\\n responses:\\n '202':\\n description: Accepted\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '409':\\n $ref: '#/components/responses/ConflictError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n x-mender-addon:\\n - troubleshoot\\n security:\\n - ManagementJWT: []\\n /api/management/v1/deviceconnect/devices/{id}/connect:\\n get:\\n tags:\\n - Device_connect_Management API\\n operationId: DeviceConnect Management Connect\\n summary: Establish permanent connection with device\\n parameters:\\n - in: path\\n name: id\\n required: true\\n schema:\\n type: string\\n format: uuid\\n description: ID of the device.\\n - in: header\\n name: Connection\\n schema:\\n type: string\\n enum:\\n - Upgrade\\n description: Standard websocket request header.\\n - in: header\\n name: Upgrade\\n schema:\\n type: string\\n format: base64\\n enum:\\n - websocket\\n description: Standard websocket request header.\\n - in: header\\n name: Sec-Websocket-Key\\n schema:\\n type: string\\n format: base64\\n description: Standard websocket request header.\\n - in: header\\n name: Sec-Websocket-Version\\n schema:\\n type: integer\\n enum:\\n - 13\\n description: Standard websocket request header.\\n responses:\\n '101':\\n description: |\\n Successful response - change to websocket protocol.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n x-mender-addon:\\n - troubleshoot\\n security:\\n - ManagementJWT: []\\n /api/management/v1/deviceconnect/devices/{id}/download:\\n get:\\n tags:\\n - Device_connect_Management API\\n operationId: DeviceConnect Management Download\\n summary: Download a file from the device\\n parameters:\\n - in: path\\n name: id\\n required: true\\n schema:\\n type: string\\n format: uuid\\n description: ID of the device.\\n - in: query\\n name: path\\n required: true\\n schema:\\n type: string\\n description: Path of the file on the device.\\n responses:\\n '200':\\n description: The content of the file will be returned in the response body\\n headers:\\n X-MEN-File-Path:\\n schema:\\n type: string\\n description: The path of the file on the device\\n X-MEN-File-UID:\\n schema:\\n type: integer\\n description: The numerical UID of the file on the device\\n X-MEN-File-GID:\\n schema:\\n type: integer\\n description: The numerical GID of the file on the device\\n X-MEN-File-Mode:\\n schema:\\n type: string\\n description: The octal representation of the mode of the file on the device\\n X-MEN-File-Size:\\n schema:\\n type: integer\\n description: The size of the file on the device\\n content:\\n application/octet-stream:\\n schema:\\n type: string\\n format: binary\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '409':\\n $ref: '#/components/responses/ConflictError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n x-mender-addon:\\n - troubleshoot\\n security:\\n - ManagementJWT: []\\n /api/management/v1/deviceconnect/devices/{id}/send-inventory:\\n post:\\n tags:\\n - Device_connect_Management API\\n operationId: DeviceConnect Management Send Inventory\\n summary: Trigger send-inventory for the Mender client running on the device\\n parameters:\\n - in: path\\n name: id\\n required: true\\n schema:\\n type: string\\n format: uuid\\n description: ID of the device.\\n responses:\\n '202':\\n description: Accepted\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '409':\\n $ref: '#/components/responses/ConflictError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n x-mender-addon:\\n - troubleshoot\\n security:\\n - ManagementJWT: []\\n /api/management/v1/deviceconnect/sessions/{session_id}/playback:\\n get:\\n tags:\\n - Device_connect_Management API\\n operationId: DeviceConnect Management Playback\\n summary: Establish a connection for playing back a session\\n parameters:\\n - in: path\\n name: session_id\\n required: true\\n schema:\\n type: string\\n description: ID for the session to play back.\\n - in: query\\n name: sleep_ms\\n required: false\\n schema:\\n type: integer\\n description: Time in milliseconds to sleep between the subsequent playback data writes.\\n - in: header\\n name: Connection\\n schema:\\n type: string\\n enum:\\n - Upgrade\\n description: Standard websocket request header.\\n - in: header\\n name: Upgrade\\n schema:\\n type: string\\n format: base64\\n enum:\\n - websocket\\n description: Standard websocket request header.\\n - in: header\\n name: Sec-Websocket-Key\\n schema:\\n type: string\\n format: base64\\n description: Standard websocket request header.\\n - in: header\\n name: Sec-Websocket-Version\\n schema:\\n type: integer\\n enum:\\n - 13\\n description: Standard websocket request header.\\n responses:\\n '101':\\n description: |\\n Successful response - change to websocket protocol.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n x-mender-plan:\\n - enterprise\\n x-mender-addon:\\n - troubleshoot\\n security:\\n - ManagementJWT: []\\n /api/management/v1/deviceconnect/devices/{id}/upload:\\n put:\\n tags:\\n - Device_connect_Management API\\n operationId: DeviceConnect Management Upload\\n summary: Upload a file to the device\\n parameters:\\n - in: path\\n name: id\\n required: true\\n schema:\\n type: string\\n format: uuid\\n description: ID of the device.\\n requestBody:\\n content:\\n multipart/form-data:\\n schema:\\n $ref: '#/components/schemas/FileUpload'\\n responses:\\n '201':\\n description: The file was successfully uploaded\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '409':\\n $ref: '#/components/responses/ConflictError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n x-mender-addon:\\n - troubleshoot\\n security:\\n - ManagementJWT: []\\n /api/devices/v1/devicemonitor/alert:\\n post:\\n tags:\\n - Device_monitor_Devices API\\n operationId: DeviceAlertPost\\n summary: Process alert messages from a device.\\n description: HTTP POST to /alert endpoint originates from a device where a monitored entity reach a critical condition or switched from it to normal state. The JWT must be passed in the Authorization headers.\\n requestBody:\\n required: true\\n content:\\n application/json:\\n schema:\\n type: array\\n items:\\n $ref: '#/components/schemas/PostAlert'\\n minItems: 1\\n maxItems: 128\\n responses:\\n '204':\\n description: |\\n The service processed the alert.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n x-mender-addon:\\n - monitor\\n x-mender-plan:\\n - professional\\n - enterprise\\n security:\\n - DeviceJWT: []\\n /api/devices/v1/devicemonitor/config:\\n post:\\n tags:\\n - Device_monitor_Devices API\\n operationId: Set Monitor Configuration\\n summary: Store Monitor configuration from a device.\\n description: Submit the current monitor configuration from the device. The JWT must be passed in the Authorization headers.\\n requestBody:\\n required: true\\n content:\\n application/json:\\n schema:\\n type: array\\n items:\\n $ref: '#/components/schemas/DeviceMonitorConfiguration'\\n minItems: 1\\n maxItems: 128\\n responses:\\n '204':\\n description: |\\n The service saved given configuration data.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n x-mender-addon:\\n - monitor\\n x-mender-plan:\\n - professional\\n - enterprise\\n security:\\n - DeviceJWT: []\\n /api/internal/v1/devicemonitor/tenants/{tenantId}:\\n delete:\\n operationId: Device monitor Internal Delete Tenant\\n tags:\\n - Device_monitor_Internal API\\n summary: Delete all the data for given tenant.\\n parameters:\\n - in: path\\n name: tenantId\\n schema:\\n type: string\\n required: true\\n description: ID of tenant.\\n responses:\\n '204':\\n description: All the tenant data have been successfully deleted.\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/devicemonitor/tenants/{tenant_id}/devices:\\n get:\\n tags:\\n - Device_monitor_Internal API\\n operationId: List devices and their latest alerts\\n summary: List the devices and their latest alerts.\\n parameters:\\n - name: tenant_id\\n in: path\\n required: true\\n schema:\\n type: string\\n description: Tenant ID.\\n - name: id\\n in: query\\n description: Device ID filter. Can be repeated to query a set of devices.\\n required: false\\n explode: true\\n schema:\\n type: array\\n items:\\n type: string\\n - name: page\\n in: query\\n description: Results page number\\n required: false\\n schema:\\n type: integer\\n default: 1\\n - name: per_page\\n in: query\\n description: Maximum number of results per page.\\n required: false\\n schema:\\n type: integer\\n default: 20\\n maximum: 500\\n responses:\\n '200':\\n description: OK\\n content:\\n application/json:\\n schema:\\n type: array\\n items:\\n $ref: '#/components/schemas/MonitorDevice'\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/devicemonitor/tenants/{tenant_id}/devices/{device_id}:\\n delete:\\n operationId: Delete Tenant Device\\n tags:\\n - Device_monitor_Internal API\\n summary: Delete all data relating to the given device.\\n parameters:\\n - in: path\\n name: tenant_id\\n schema:\\n type: string\\n required: true\\n description: ID of tenant.\\n - in: path\\n name: device_id\\n schema:\\n type: string\\n required: true\\n description: ID of device.\\n responses:\\n '204':\\n description: All the device data has been successfully deleted.\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/devicemonitor/tenants/{tenant_id}/devices/{device_id}/alerts/latest:\\n get:\\n tags:\\n - Device_monitor_Internal API\\n operationId: Device monitor Internal List latest alerts\\n summary: List the latest alerts for the given device. An optional 'level_from' parameter filters the result by returning alerts with at least 'level_from' or higher severity level.\\n parameters:\\n - name: device_id\\n in: path\\n required: true\\n schema:\\n type: string\\n description: Device ID.\\n - name: tenant_id\\n in: path\\n required: true\\n schema:\\n type: string\\n description: Tenant ID.\\n - name: level_from\\n in: query\\n required: false\\n schema:\\n type: string\\n enum:\\n - OK\\n - CRITICAL\\n default: CRITICAL\\n description: Filter the result by having `level_from` or higher severity level.\\n responses:\\n '200':\\n description: OK\\n content:\\n application/json:\\n schema:\\n type: array\\n items:\\n $ref: '#/components/schemas/Alert'\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/management/v1/devicemonitor/devices/{id}/alerts:\\n get:\\n tags:\\n - Device_monitor_Management API\\n operationId: List Alerts\\n summary: List the alerts for the given device.\\n parameters:\\n - name: id\\n in: path\\n required: true\\n description: Device ID.\\n schema:\\n type: string\\n - name: page\\n in: query\\n required: false\\n description: The requested page number.\\n schema:\\n type: integer\\n default: 1\\n - name: per_page\\n in: query\\n required: false\\n description: The number of items per page.\\n schema:\\n type: integer\\n default: 20\\n - name: issued_before\\n in: query\\n required: false\\n schema:\\n type: string\\n format: date-time\\n description: Filter alerts issued before timestamp.\\n - name: issued_after\\n in: query\\n required: false\\n schema:\\n type: string\\n format: date-time\\n description: Filter alerts issued after timestamp.\\n - name: sort_ascending\\n in: query\\n required: false\\n schema:\\n type: string\\n enum:\\n - 'true'\\n - 'false'\\n default: 'false'\\n description: Filter by ascending timestamp (reverse).\\n responses:\\n '200':\\n description: OK\\n headers:\\n X-Total-Count:\\n schema:\\n type: integer\\n description: The total number of alerts matching the query\\n content:\\n application/json:\\n schema:\\n type: array\\n items:\\n $ref: '#/components/schemas/Alert'\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n x-mender-addon:\\n - monitor\\n x-mender-plan:\\n - professional\\n - enterprise\\n security:\\n - ManagementJWT: []\\n /api/management/v1/devicemonitor/devices/{id}/alerts/latest:\\n get:\\n tags:\\n - Device_monitor_Management API\\n operationId: List latest alerts\\n summary: List the latest alerts for the given device. An optional 'level_from' parameter filters the result by returning alerts with at least 'level_from' or higher severity level.\\n parameters:\\n - name: id\\n in: path\\n required: true\\n description: Device ID.\\n schema:\\n type: string\\n - name: level_from\\n in: query\\n required: false\\n schema:\\n type: string\\n enum:\\n - OK\\n - CRITICAL\\n default: CRITICAL\\n description: Filter the result by having `level_from` or higher severity level.\\n - name: issued_before\\n in: query\\n required: false\\n schema:\\n type: string\\n format: date-time\\n description: Only show alerts older than `issued_before`.\\n - name: issued_after\\n in: query\\n required: false\\n schema:\\n type: string\\n format: date-time\\n description: Only show alerts older than `issued_after`.\\n - name: page\\n in: query\\n required: false\\n description: The requested page number.\\n schema:\\n type: integer\\n default: 1\\n - name: per_page\\n in: query\\n required: false\\n description: The number of items per page.\\n schema:\\n type: integer\\n default: 20\\n responses:\\n '200':\\n description: |\\n OK.\\n Lists latest alerts sorted by oldest alert first.\\n content:\\n application/json:\\n schema:\\n type: array\\n items:\\n $ref: '#/components/schemas/Alert'\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n x-mender-addon:\\n - monitor\\n x-mender-plan:\\n - professional\\n - enterprise\\n security:\\n - ManagementJWT: []\\n /api/management/v1/devicemonitor/devices/{id}/config:\\n get:\\n tags:\\n - Device_monitor_Management API\\n operationId: Monitor Checks Configuration\\n summary: List the check configured on a device.\\n parameters:\\n - name: id\\n in: path\\n required: true\\n description: Device ID.\\n schema:\\n type: string\\n responses:\\n '200':\\n description: OK\\n content:\\n application/json:\\n schema:\\n type: array\\n items:\\n $ref: '#/components/schemas/MonitorConfiguration'\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n x-mender-addon:\\n - monitor\\n x-mender-plan:\\n - professional\\n - enterprise\\n security:\\n - ManagementJWT: []\\n /api/management/v1/devicemonitor/settings/global/channel/alerts/{name}/status:\\n put:\\n tags:\\n - Device_monitor_Management API\\n operationId: Toggle Channel Mute\\n summary: Enable or disable the named alert channel for all users.\\n parameters:\\n - name: name\\n in: path\\n required: true\\n description: Channel name\\n schema:\\n type: string\\n enum:\\n - email\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties:\\n enabled:\\n type: boolean\\n description: Enable/disable channel\\n responses:\\n '204':\\n description: Update successful (no content)\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n x-mender-addon:\\n - monitor\\n x-mender-plan:\\n - professional\\n - enterprise\\n security:\\n - ManagementJWT: []\\n /api/devices/v1/inventory/device/attributes:\\n put:\\n tags:\\n - Device_inventory_Device API\\n summary: Replace the set of attributes for a device\\n description: |\\n Replaces the attribute set for the authenticated device with the provided one.\\n The device ID is retrieved from the authorization header.\\n\\n This method replaces all the attributes with the new set:\\n\\n * attributes not provided in the set are removed from the db\\n\\n * the values of existing attributes are overwritten\\n\\n * attributes assigned for the first time are automatically created\\n operationId: Replace Attributes\\n requestBody:\\n description: A list of attribute descriptors.\\n content:\\n application/json:\\n schema:\\n title: ListOfAttributes\\n type: array\\n example:\\n - name: ip_addr\\n value: 1.2.3.4\\n description: IP address\\n - name: mac_addr\\n value: 00.01:02:03:04:05\\n description: MAC address\\n items:\\n $ref: '#/components/schemas/DeviceAttributeRequest'\\n required: true\\n responses:\\n '200':\\n description: Attributes were uploaded successfully.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - DeviceJWT: []\\n patch:\\n tags:\\n - Device_inventory_Device API\\n summary: Assign a set of attributes for a device\\n description: |\\n Saves the provided attribute set for the authenticated device.\\n The device ID is retrieved from the authorization header.\\n\\n This method has upsert semantics:\\n\\n * the values of existing attributes are overwritten\\n\\n * attributes assigned for the first time are automatically created\\n operationId: Assign Attributes\\n requestBody:\\n description: A list of attribute descriptors.\\n content:\\n application/json:\\n schema:\\n title: ListOfAttributes\\n type: array\\n example:\\n - name: ip_addr\\n value: 1.2.3.4\\n description: IP address\\n - name: mac_addr\\n value: 00.01:02:03:04:05\\n description: MAC address\\n items:\\n $ref: '#/components/schemas/DeviceAttributeRequest'\\n required: true\\n responses:\\n '200':\\n description: Attributes were uploaded successfully.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - DeviceJWT: []\\n /api/internal/v1/inventory/health:\\n get:\\n tags:\\n - Device_inventory_Internal API\\n summary: Check the health of the service\\n operationId: Inventory Internal Check Health\\n responses:\\n '204':\\n description: |\\n Service is healthy and all dependencies are up and running.\\n content: {}\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n '503':\\n description: |\\n Service unhealthy / not ready to accept traffic. At least one dependency is not running.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n example:\\n error: 'error reaching MongoDB: context deadline exceeded'\\n request_id: ffd712be-d697-4cb7-814b-88ff1e2eb5f6\\n /api/internal/v1/inventory/alive:\\n get:\\n tags:\\n - Device_inventory_Internal API\\n summary: |\\n Trivial endpoint that unconditionally returns an empty 200 response whenever the API handler is running correctly.\\n operationId: Inventory Internal Check Liveliness\\n responses:\\n '204':\\n description: Service is up and running.\\n content: {}\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/inventory/tenants:\\n post:\\n tags:\\n - Device_inventory_Internal API\\n summary: Create tenant\\n description: |\\n Create a tenant with provided configuration.\\n operationId: Inventory Internal Create Tenant\\n requestBody:\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/TenantNew'\\n required: true\\n responses:\\n '201':\\n description: The tenant was created successfully.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/inventory/tenants/{tenant_id}/devices:\\n post:\\n tags:\\n - Device_inventory_Internal API\\n summary: Create a device resource with the supplied set of attributes\\n operationId: Initialize Device\\n parameters:\\n - name: tenant_id\\n in: path\\n description: ID of given tenant.\\n required: true\\n schema:\\n type: string\\n requestBody:\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/DeviceNew'\\n required: true\\n responses:\\n '201':\\n description: The device was successfully created.\\n headers:\\n Location:\\n description: URI for the newly created 'Device' resource.\\n schema:\\n type: string\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/inventory/tenants/{tenant_id}:\\n delete:\\n tags:\\n - Device_inventory_Internal API\\n summary: Removes all data belonging to a tenant\\n operationId: Delete tenant specific data\\n parameters:\\n - name: tenant_id\\n in: path\\n description: ID of given tenant.\\n required: true\\n schema:\\n type: string\\n responses:\\n '204':\\n description: Tenant data was removed successfully.\\n content: {}\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/inventory/tenants/{tenant_id}/devices/{device_id}:\\n delete:\\n tags:\\n - Device_inventory_Internal API\\n summary: Remove a device from the inventory service\\n operationId: Delete Device\\n parameters:\\n - name: tenant_id\\n in: path\\n description: ID of given tenant.\\n required: true\\n schema:\\n type: string\\n - name: device_id\\n in: path\\n description: ID of given device.\\n required: true\\n schema:\\n type: string\\n responses:\\n '204':\\n description: Device removed\\n content: {}\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/inventory/tenants/{tenant_id}/devices/status/{status}:\\n post:\\n tags:\\n - Device_inventory_Internal API\\n summary: Update the status of a list of devices\\n description: |\\n An API end-point that allows to bulk update the status of a list\\n of devices.\\n operationId: Update Status of Devices\\n parameters:\\n - name: tenant_id\\n in: path\\n description: ID of given tenant.\\n required: true\\n schema:\\n type: string\\n - name: status\\n in: path\\n description: New status to set for the specified devices.\\n required: true\\n schema:\\n type: string\\n requestBody:\\n description: List of devices.\\n content:\\n application/json:\\n schema:\\n type: array\\n description: A list of devices to update.\\n example:\\n - id: ff8f7099-d842-42f2-9d5b-46a9ad13f90a\\n revision: 3\\n - id: 80f3ad8f-40f2-429a-8931-b47cebbbe9b3\\n revision: 5\\n items:\\n $ref: '#/components/schemas/DeviceUpdate'\\n required: true\\n responses:\\n '200':\\n description: The operation completed successfully.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '409':\\n $ref: '#/components/responses/ConflictError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/inventory/tenants/{tenant_id}/device/{device_id}/attribute/scope/{scope}:\\n patch:\\n tags:\\n - Device_inventory_Internal API\\n summary: Update multiple inventory attributes in a single scope for a device\\n description: |\\n An API end-point that allows to update the inventory attributes in\\n a single scope for a device.\\n operationId: Update Inventory for a Device\\n parameters:\\n - name: If-Unmodified-Since\\n in: header\\n description: Skips updating the device if modified after the given RFC1123 timestamp.\\n required: false\\n schema:\\n type: string\\n - name: tenant_id\\n in: path\\n description: ID of given tenant.\\n required: true\\n schema:\\n type: string\\n - name: device_id\\n in: path\\n description: ID of given device.\\n required: true\\n schema:\\n type: string\\n - name: scope\\n in: path\\n description: Scope of the inventory attributes.\\n required: true\\n schema:\\n type: string\\n requestBody:\\n description: List of inventory attributes to set.\\n content:\\n application/json:\\n schema:\\n type: array\\n description: A list of attribute descriptors.\\n items:\\n $ref: '#/components/schemas/AttributeRequest'\\n required: true\\n responses:\\n '200':\\n description: Device inventory successfully updated.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '412':\\n description: 'Precondition failed: If-Unmodified-Since condition not met'\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/inventory/tenants/{tenant_id}/device/{device_id}/attributes:\\n patch:\\n tags:\\n - Device_inventory_Internal API\\n summary: Update multiple inventory attributes for a device\\n description: |\\n An API end-point that allows to update the inventory attributes for a device.\\n It is operating in the same way as the /attribute/scope/{scope} endpoint, but\\n does not override the scope of the attributes that you provide.\\n operationId: Update Inventory for a Device Scope Wise\\n parameters:\\n - name: If-Unmodified-Since\\n in: header\\n description: Skips updating the device if modified after the given RFC1123 timestamp.\\n required: false\\n schema:\\n type: string\\n - name: tenant_id\\n in: path\\n description: ID of given tenant.\\n required: true\\n schema:\\n type: string\\n - name: device_id\\n in: path\\n description: ID of given device.\\n required: true\\n schema:\\n type: string\\n requestBody:\\n description: List of inventory attributes to set.\\n content:\\n application/json:\\n schema:\\n type: array\\n description: A list of attribute descriptors.\\n items:\\n $ref: '#/components/schemas/AttributeRequest'\\n required: true\\n responses:\\n '200':\\n description: Device inventory successfully updated.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '412':\\n description: 'Precondition failed: If-Unmodified-Since condition not met'\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/inventory/tenants/{tenant_id}/devices/{device_id}/groups:\\n get:\\n tags:\\n - Device_inventory_Internal API\\n summary: Get a list of groups the device belongs to\\n operationId: Get Device Groups\\n parameters:\\n - name: tenant_id\\n in: path\\n description: ID of given tenant.\\n required: true\\n schema:\\n type: string\\n - name: device_id\\n in: path\\n description: Device identifier.\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n description: |\\n Successful response.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Groups'\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/inventory/tenants/{tenant_id}/test/devices/groups:\\n post:\\n tags:\\n - Device_inventory_Internal API\\n summary: Check if devices belongs to given groups\\n description: |\\n An API end-point that allows to check if devices belongs to certain groups.\\n operationId: Check if devices belongs to given groups\\n parameters:\\n - name: tenant_id\\n in: path\\n description: ID of given tenant.\\n required: true\\n schema:\\n type: string\\n requestBody:\\n content:\\n '*/*':\\n schema:\\n $ref: '#/components/schemas/DevicesInGroupsReq'\\n required: true\\n responses:\\n '200':\\n description: All the devices belong to given groups.\\n content: {}\\n '404':\\n description: Not all the devices belong to given groups.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/inventory/tenants/{tenant_id}/devices/{device_id}/reindex:\\n post:\\n tags:\\n - Device_inventory_Internal API\\n summary: Start reindexing device attributes.\\n operationId: Start Re-indexing\\n parameters:\\n - name: service\\n in: query\\n description: The name of the calling service.\\n schema:\\n type: string\\n - name: device_id\\n in: path\\n description: ID of the device that needs reindexing.\\n required: true\\n schema:\\n type: string\\n - name: tenant_id\\n in: path\\n description: ID of tenant owning the device.\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n description: Attributes have been re-indexed.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v2/inventory/tenants/{tenant_id}/statistics:\\n get:\\n tags:\\n - Device_inventory_filters_and_search_Internal API\\n summary: Get inventory statistics\\n description: |\\n The following statistics are currently supported:\\n * Number of accepted and pending devices in each device tier\\n operationId: Get Statistics Internal\\n parameters:\\n - name: tenant_id\\n in: path\\n description: Tenant ID.\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n description: Successful response.\\n content:\\n application/json:\\n schema:\\n type: object\\n required:\\n - devices_by_status\\n properties:\\n devices_by_status:\\n $ref: '#/components/schemas/DeviceStatusStatistics'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v2/inventory/tenants/{tenant_id}/filters/search:\\n post:\\n tags:\\n - Device_inventory_filters_and_search_Internal API\\n summary: Search device inventories based on attributes\\n description: |\\n Returns a paged collection of devices and their attributes.\\n\\n It accepts optional filters and sort parameters as body parameters.\\n operationId: Inventory Internal V2 Search Device Inventories\\n parameters:\\n - name: tenant_id\\n in: path\\n description: Tenant ID.\\n required: true\\n schema:\\n type: string\\n requestBody:\\n description: The search and sort parameters of the filter\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/SearchParams'\\n required: false\\n responses:\\n '200':\\n description: Successful response.\\n headers:\\n X-Total-Count:\\n description: Custom header indicating the total number of devices for the given query parameters\\n schema:\\n type: string\\n content:\\n application/json:\\n schema:\\n title: ListOfDevices\\n type: array\\n items:\\n $ref: '#/components/schemas/DeviceInventoryResponse'\\n example:\\n - id: 291ae0e5956c69c2267489213df4459d19ed48a806603def19d417d004a4b67e\\n attributes:\\n - name: ip_addr\\n scope: inventory\\n value: 1.2.3.4\\n description: IP address\\n - name: mac_addr\\n scope: inventory\\n value: 00.01:02:03:04:05\\n description: MAC address\\n updated_ts: '2016-10-03T16:58:51.639Z'\\n - id: 76f40e5956c699e327489213df4459d1923e1a806603def19d417d004a4a3ef\\n attributes:\\n - name: mac\\n scope: inventory\\n value: '00:01:02:03:04:05'\\n description: MAC address\\n updated_ts: '2016-10-04T18:24:21.432Z'\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v2/inventory/tenants/{tenant_id}/filters/{id}:\\n get:\\n tags:\\n - Device_inventory_filters_and_search_Internal API\\n summary: Return the definition of a saved filter\\n description: |\\n Returns the definition of a saved filter from its unique identifier.\\n operationId: Internal V2 Show Filter\\n parameters:\\n - name: tenant_id\\n in: path\\n description: Tenant ID.\\n required: true\\n schema:\\n type: string\\n - name: id\\n in: path\\n description: Filter identifier.\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n description: Successful response.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Filter'\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '404':\\n description: The filter was not found.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/ErrorNotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/management/v1/inventory/devices:\\n get:\\n tags:\\n - Device_inventory_Management API\\n summary: List devices inventories\\n description: |\\n Returns a paged collection of devices and their attributes.\\n Accepts optional search and sort parameters.\\n\\n **Searching**<br/>\\n Searching by attributes values is accomplished by appending attribute\\n filters in the form `{scope}/{name}={value}` to the query string.\\n\\n Supported values for scope are:\\n * __inventory__: Attributes reported by the device.\\n * __system__: Attributes populated by the mender-server.\\n * __identity__: Device's identity attributes provided in the device's auth request.\\n * __monitor__: Attributes populated by the monitoring add-on.\\n * __tags__: User-defined attributes associated with the device.\\n\\n Using an unsupported value for __scope__ will produce no results from this API except\\n when no scope is present, in which case scope defaults to inventory.\\n\\n Examples:\\n ```\\n # Search for devices with inventory attribute `attr_name_1` and tag attribute `attr_name_2`\\n GET /devices?inventory/attr_name_1=foo&tags/attr_name_2=100\\n\\n # Search devices by attribute without scope (inventory scope is used)\\n GET /devices?attr_name_1=foo\\n ```\\n operationId: List Device Inventories\\n parameters:\\n - name: page\\n in: query\\n description: Starting page.\\n schema:\\n type: integer\\n default: 1\\n - name: per_page\\n in: query\\n description: Maximum number of results per page.\\n schema:\\n type: integer\\n default: 10\\n - name: sort\\n in: query\\n description: |\\n Sort devices by attribute.\\n The parameter is formatted as a comma-separated list of attribute\\n names and sort order.\\n\\n The order direction (`ord`) must be either `asc` or `desc` for\\n ascending and descending respectively.\\n Defaults to `desc` if not specified.\\n\\n For example: `?sort=attr1:asc,attr2:desc`\\n will sort by 'attr1' ascending, and then by 'attr2' descending.\\n schema:\\n type: string\\n pattern: ^[a-zA-Z0-9_-]+(:(asc|desc))?(,[a-zA-Z0-9_-]+(:(asc|desc))?)*$\\n example: attr1:asc,attr2:desc\\n - name: has_group\\n in: query\\n description: Limit result to devices assigned to a group.\\n schema:\\n type: boolean\\n - name: group\\n in: query\\n description: Limits result to devices in the given group.\\n schema:\\n type: string\\n responses:\\n '200':\\n description: Successful response.\\n headers:\\n X-Total-Count:\\n description: Total number of devices found\\n schema:\\n type: string\\n Link:\\n description: |\\n Standard page navigation header, supported relations: 'first', 'next', and 'prev'.\\n schema:\\n type: string\\n content:\\n application/json:\\n schema:\\n title: ListOfDevices\\n type: array\\n items:\\n $ref: '#/components/schemas/DeviceInventoryResponse'\\n example:\\n - id: 291ae0e5956c69c2267489213df4459d19ed48a806603def19d417d004a4b67e\\n attributes:\\n - name: ip_addr\\n scope: inventory\\n value: 1.2.3.4\\n description: IP address\\n - name: mac_addr\\n scope: inventory\\n value: 00.01:02:03:04:05\\n description: MAC address\\n updated_ts: '2016-10-03T16:58:51.639Z'\\n - id: 76f40e5956c699e327489213df4459d1923e1a806603def19d417d004a4a3ef\\n attributes:\\n - name: mac\\n scope: inventory\\n value: '00:01:02:03:04:05'\\n description: MAC address\\n updated_ts: '2016-10-04T18:24:21.432Z'\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v1/inventory/devices/{id}:\\n get:\\n tags:\\n - Device_inventory_Management API\\n summary: Get a selected device's inventory\\n operationId: Get Device Inventory\\n parameters:\\n - name: id\\n in: path\\n description: Device identifier.\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n description: Successful response - the device was found.\\n headers:\\n ETag:\\n description: |\\n Contains the device object's current ETag.\\n Applicable only to attributes with 'tags' scope, changing other attributes doesn't affect the ETag.\\n schema:\\n type: string\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/DeviceInventoryResponse'\\n example:\\n id: 291ae0e5956c69c2267489213df4459d19ed48a806603def19d417d004a4b67e\\n attributes:\\n - name: ip_addr\\n scope: inventory\\n value: 1.2.3.4\\n description: IP address\\n - name: mac_addr\\n scope: inventory\\n value: 00.01:02:03:04:05\\n description: MAC address\\n - name: environment\\n scope: tags\\n value: test\\n description: Test environment\\n timestamp: '2016-10-19T17:23:01.639Z'\\n updated_ts: '2016-10-03T16:58:51.639Z'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n delete:\\n tags:\\n - Device_inventory_Management API\\n summary: Remove selected device's inventory\\n operationId: Delete Device Inventory\\n parameters:\\n - name: id\\n in: path\\n description: Device identifier.\\n required: true\\n schema:\\n type: string\\n responses:\\n '204':\\n description: Device removed\\n content: {}\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v1/inventory/devices/{id}/tags:\\n put:\\n tags:\\n - Device_inventory_Management API\\n summary: Replace the set of tags for a device\\n description: |\\n Replaces the tags associated to the device.\\n\\n This method replaces all the tags with the new set:\\n * it removes from the db the attributes not provided\\n * it overwrites the values of existing attributes\\n * it creates attributes assigned for the first time\\n operationId: Assign Tags\\n parameters:\\n - name: If-Match\\n in: header\\n description: Contains the device object's current ETag, and performs the update only if it matches the one stored in the database.\\n schema:\\n type: string\\n - name: id\\n in: path\\n description: Device identifier.\\n required: true\\n schema:\\n type: string\\n requestBody:\\n description: A list of tags descriptors.\\n content:\\n application/json:\\n schema:\\n title: ListOfTags\\n type: array\\n example:\\n - name: location\\n value: germany\\n description: Germany region\\n - name: environment\\n value: test\\n items:\\n $ref: '#/components/schemas/Tag'\\n required: true\\n responses:\\n '200':\\n description: Tags were updated successfully.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '412':\\n description: ETag doesn't match.\\n content: {}\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n patch:\\n tags:\\n - Device_inventory_Management API\\n summary: Adds a set of tags for a device\\n description: |\\n Saves the provided tags set for the authenticated device.\\n\\n This method has upsert semantic:\\n * it overwrites the values of existing attributes\\n * it creates attributes assigned for the first time\\n operationId: Add Tags\\n parameters:\\n - name: If-Match\\n in: header\\n description: Contains the device object's current ETag, and performs the update only if it matches the one stored in the database.\\n schema:\\n type: string\\n - name: id\\n in: path\\n description: Device identifier.\\n required: true\\n schema:\\n type: string\\n requestBody:\\n description: A list of tag descriptors.\\n content:\\n application/json:\\n schema:\\n title: ListOfTags\\n type: array\\n example:\\n - name: location\\n value: germany\\n description: Germany region\\n - name: environment\\n value: test\\n items:\\n $ref: '#/components/schemas/Tag'\\n required: true\\n responses:\\n '200':\\n description: Tags were updated successfully.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '412':\\n description: ETag doesn't match.\\n content: {}\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v1/inventory/devices/{id}/group:\\n get:\\n tags:\\n - Device_inventory_Management API\\n summary: Get a selected device's group\\n operationId: Get Device Group\\n parameters:\\n - name: id\\n in: path\\n description: Device identifier.\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n description: |\\n Successful response. If the device is not assigned to any group, the 'group' field will be set to 'null'.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Group'\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n put:\\n tags:\\n - Device_inventory_Management API\\n summary: Add a device to a group\\n description: |\\n Adds a device to a group.\\n\\n Note that a given device can belong to at most one group.\\n If a device already belongs to some group, it will be moved\\n to the selected one.\\n operationId: Assign Group\\n parameters:\\n - name: id\\n in: path\\n description: Device identifier.\\n required: true\\n schema:\\n type: string\\n requestBody:\\n description: Group descriptor.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Group'\\n required: true\\n responses:\\n '204':\\n description: Success - the device was added to the group.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v1/inventory/devices/{id}/group/{name}:\\n delete:\\n tags:\\n - Device_inventory_Management API\\n summary: Remove a device from a group\\n description: |\\n Removes the device with identifier 'id' from the group 'group'.\\n operationId: Clear Group\\n parameters:\\n - name: id\\n in: path\\n description: Device identifier.\\n required: true\\n schema:\\n type: string\\n - name: name\\n in: path\\n description: Group name.\\n required: true\\n schema:\\n type: string\\n responses:\\n '204':\\n description: The device was successfully removed from the group.\\n content: {}\\n '404':\\n description: The device was not found or doesn't belong to the group.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v1/inventory/groups:\\n get:\\n tags:\\n - Device_inventory_Management API\\n summary: List all groups existing device groups\\n operationId: List Groups\\n parameters:\\n - name: status\\n in: query\\n description: Show groups for devices with the given auth set status.\\n schema:\\n type: string\\n responses:\\n '200':\\n description: Successful response.\\n content:\\n application/json:\\n schema:\\n type: array\\n items:\\n title: ListOfGroupNames\\n type: string\\n description: Group name\\n example:\\n - staging\\n - testing\\n - production\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v1/inventory/groups/{name}:\\n delete:\\n tags:\\n - Device_inventory_Management API\\n summary: Remove a device group\\n description: |\\n Removes a device group. This API provides a bulk alternative to\\n DELETE /devices/{id}/group/{name} for managing device groups.\\n operationId: Remove a Group\\n parameters:\\n - name: name\\n in: path\\n description: Group name.\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n description: Successful response\\n content:\\n application/json:\\n schema:\\n required:\\n - updated_count\\n type: object\\n properties:\\n updated_count:\\n type: integer\\n description: |\\n Number of devices for which the group was cleared successfully.\\n description: |\\n JSON object listing how many devices were updated.\\n example:\\n updated_count: 2\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v1/inventory/groups/{name}/devices:\\n get:\\n tags:\\n - Device_inventory_Management API\\n summary: List the devices belonging to a given group\\n operationId: Get Devices in Group\\n parameters:\\n - name: page\\n in: query\\n description: Starting page.\\n schema:\\n type: integer\\n default: 1\\n - name: per_page\\n in: query\\n description: Maximum number of results per page.\\n schema:\\n type: integer\\n default: 10\\n - name: name\\n in: path\\n description: Group name.\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n description: Successful response\\n headers:\\n X-Total-Count:\\n description: Custom header indicating the total number of devices in the given group\\n schema:\\n type: string\\n Link:\\n description: Standard header, we support 'first', 'next', and 'prev'.\\n schema:\\n type: string\\n content:\\n application/json:\\n schema:\\n title: ListOfIDs\\n type: array\\n items:\\n type: string\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n delete:\\n tags:\\n - Device_inventory_Management API\\n summary: Clear devices' group\\n description: |\\n Removes a list of devices from the specified group.\\n operationId: Remove Devices from Group\\n parameters:\\n - name: name\\n in: path\\n description: Group name.\\n required: true\\n schema:\\n type: string\\n requestBody:\\n description: JSON list of device IDs to remove from the group.\\n content:\\n application/json:\\n schema:\\n type: array\\n items:\\n type: string\\n required: true\\n responses:\\n '200':\\n description: Successful response\\n content:\\n application/json:\\n schema:\\n required:\\n - updated_count\\n type: object\\n properties:\\n updated_count:\\n type: integer\\n description: |\\n Number of devices for which the group was cleared successfully.\\n description: |\\n JSON object listing how many devices were updated.\\n example:\\n updated_count: 2\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n patch:\\n tags:\\n - Device_inventory_Management API\\n summary: Add devices to group\\n description: |\\n Appends the list of devices in the request body to the given group.\\n For devices already present in the group the operation has no effect.\\n operationId: Add Devices to Group\\n parameters:\\n - name: name\\n in: path\\n description: Group name.\\n required: true\\n schema:\\n type: string\\n requestBody:\\n description: JSON list of device IDs to append to the group.\\n content:\\n application/json:\\n schema:\\n type: array\\n items:\\n type: string\\n required: true\\n responses:\\n '200':\\n description: Successful response\\n content:\\n application/json:\\n schema:\\n required:\\n - matched_count\\n - updated_count\\n type: object\\n properties:\\n updated_count:\\n type: integer\\n description: |\\n Number of devices listed that changed group.\\n matched_count:\\n type: integer\\n description: |\\n Number of devices listed that matched a valid device id internally.\\n description: |\\n JSON object listing how many devices were updated.\\n example:\\n updated_count: 2\\n matched_count: 3\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v2/inventory/filters/attributes:\\n get:\\n tags:\\n - Device_inventory_filters_and_search_Management API\\n summary: Get the list of filterable inventory attributes\\n description: |\\n Returns a list of filterable inventory attributes.\\n\\n The list is sorted in descending order by the count of occurrences of the\\n attribute in the inventory database, then in ascending order by scope and name.\\n\\n Limitations:\\n * The API considers up to a sample of 5,000 devices when aggregating the number of attributes.\\n * The API returns up to 500 unique attributes.\\n operationId: Get filterable attributes\\n responses:\\n '200':\\n description: Successful response.\\n content:\\n application/json:\\n schema:\\n title: List of filter attributes\\n type: array\\n items:\\n $ref: '#/components/schemas/FilterAttribute'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v2/inventory/filters/search:\\n post:\\n tags:\\n - Device_inventory_filters_and_search_Management API\\n summary: Search devices based on inventory attributes\\n description: |\\n Returns a paged collection of devices and their attributes.\\n\\n If multiple filter predicates are specified, the filters are\\n combined using boolean `and` operator.\\n operationId: Inventory V2 Search Device Inventories\\n requestBody:\\n description: The search and sort parameters of the filter\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/SearchParams'\\n required: false\\n responses:\\n '200':\\n description: Successful response.\\n headers:\\n X-Total-Count:\\n description: Custom header indicating the total number of devices for the given query parameters\\n schema:\\n type: string\\n content:\\n application/json:\\n schema:\\n title: ListOfDevices\\n type: array\\n items:\\n $ref: '#/components/schemas/DeviceInventoryResponse'\\n example:\\n - id: 291ae0e5956c69c2267489213df4459d19ed48a806603def19d417d004a4b67e\\n attributes:\\n - name: ip_addr\\n scope: inventory\\n value: 1.2.3.4\\n description: IP address\\n - name: mac_addr\\n scope: inventory\\n value: 00.01:02:03:04:05\\n description: MAC address\\n updated_ts: '2016-10-03T16:58:51.639Z'\\n - id: 76f40e5956c699e327489213df4459d1923e1a806603def19d417d004a4a3ef\\n attributes:\\n - name: mac\\n scope: identity\\n value: '00:01:02:03:04:05'\\n description: MAC address\\n updated_ts: '2016-10-04T18:24:21.432Z'\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v2/inventory/filters:\\n get:\\n tags:\\n - Device_inventory_filters_and_search_Management API\\n summary: List all the saved filters\\n operationId: List Filters\\n parameters:\\n - name: page\\n in: query\\n description: Starting page.\\n schema:\\n type: integer\\n default: 1\\n - name: per_page\\n in: query\\n description: Number of results per page.\\n schema:\\n type: integer\\n default: 20\\n responses:\\n '200':\\n description: Successful response.\\n headers:\\n X-Total-Count:\\n description: Custom header indicating the total number of saved filters for the given query parameters\\n schema:\\n type: string\\n Link:\\n description: |\\n Standard header, used for page navigation.\\n\\n Supported relation types are 'first', 'next' and 'prev'.\\n schema:\\n type: string\\n content:\\n application/json:\\n schema:\\n title: ListOfFilters\\n type: array\\n items:\\n $ref: '#/components/schemas/Filter'\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n x-mender-plan:\\n - enterprise\\n post:\\n tags:\\n - Device_inventory_filters_and_search_Management API\\n summary: Create a new saved filter from a filter definition\\n operationId: Create Filter\\n requestBody:\\n description: The definition of the filter\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/FilterDefinition'\\n required: false\\n responses:\\n '201':\\n description: The filter was successfully created.\\n headers:\\n Location:\\n description: URL of the newly created filter.\\n schema:\\n type: string\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '409':\\n description: A filter with the same name already exists.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n x-mender-plan:\\n - enterprise\\n /api/management/v2/inventory/filters/{id}:\\n get:\\n tags:\\n - Device_inventory_filters_and_search_Management API\\n summary: Get the definition of a saved filter\\n operationId: Show Filter\\n parameters:\\n - name: id\\n in: path\\n description: Filter identifier.\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n description: Successful response.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Filter'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n x-mender-plan:\\n - enterprise\\n put:\\n tags:\\n - Device_inventory_filters_and_search_Management API\\n summary: Update a saved filter\\n operationId: Update Filter\\n parameters:\\n - name: id\\n in: path\\n description: Filter identifier.\\n required: true\\n schema:\\n type: string\\n requestBody:\\n description: The definition of the filter\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/FilterDefinition'\\n required: false\\n responses:\\n '204':\\n description: The filter was successfully updated.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n x-mender-plan:\\n - enterprise\\n delete:\\n tags:\\n - Device_inventory_filters_and_search_Management API\\n summary: Delete a saved filter\\n operationId: Delete Filter\\n parameters:\\n - name: id\\n in: path\\n description: Filter identifier.\\n required: true\\n schema:\\n type: string\\n responses:\\n '204':\\n description: The filter was successfully deleted.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n x-mender-plan:\\n - enterprise\\n /api/management/v2/inventory/filters/{id}/search:\\n get:\\n tags:\\n - Device_inventory_filters_and_search_Management API\\n summary: Search devices using saved filter\\n operationId: Execute Filter\\n parameters:\\n - name: id\\n in: path\\n description: Filter identifier.\\n required: true\\n schema:\\n type: string\\n - name: page\\n in: query\\n description: Starting page.\\n schema:\\n type: integer\\n default: 1\\n - name: per_page\\n in: query\\n description: Number of results per page.\\n schema:\\n type: integer\\n default: 20\\n responses:\\n '200':\\n description: Successful response.\\n headers:\\n X-Total-Count:\\n description: Total number of devices matched query.\\n schema:\\n type: string\\n Link:\\n description: |\\n Standard header used for page navigation, page relations: 'first', 'next' and 'prev'.\\n schema:\\n type: string\\n content:\\n application/json:\\n schema:\\n title: ListOfDevices\\n type: array\\n items:\\n $ref: '#/components/schemas/DeviceInventoryResponse'\\n example:\\n - id: 291ae0e5956c69c2267489213df4459d19ed48a806603def19d417d004a4b67e\\n attributes:\\n - name: ip_addr\\n scope: inventory\\n value: 1.2.3.4\\n description: IP address\\n - name: mac_addr\\n scope: inventory\\n value: 00.01:02:03:04:05\\n description: MAC address\\n updated_ts: '2016-10-03T16:58:51.639Z'\\n - id: 76f40e5956c699e327489213df4459d1923e1a806603def19d417d004a4a3ef\\n attributes:\\n - name: mac\\n scope: inventory\\n value: '00:01:02:03:04:05'\\n description: MAC address\\n updated_ts: '2016-10-04T18:24:21.432Z'\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n x-mender-plan:\\n - enterprise\\n /api/management/v2/inventory/statistics:\\n get:\\n tags:\\n - Device_inventory_filters_and_search_Management API\\n summary: Get inventory statistics\\n description: |\\n The following statistics are currently supported:\\n * Number of accepted and pending devices in each device tier\\n operationId: Get Statistics\\n responses:\\n '200':\\n description: Successful response.\\n content:\\n application/json:\\n schema:\\n type: object\\n required:\\n - devices_by_status\\n properties:\\n devices_by_status:\\n $ref: '#/components/schemas/DeviceStatusStatistics'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v2alpha1/inventory/identities/search:\\n post:\\n tags:\\n - Inventory_v2alpha1_Management API\\n summary: Search inventory by identity\\n operationId: Search Inventory By Identity\\n description: |\\n Search for inventory by device identity attribute. Supports prefix matching against \\n the following values:\\n - the system assigned device `id`\\n - the `tags` scoped attribute with name `\\\"name\\\"`\\n - any `identity` scoped device attribute\\n\\n Please note that the `scope` of the system assigned device `id` is expected to be `identity`\\n when used with this endpoint.\\n requestBody:\\n description: Identity search parameters\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/SearchIdentityParams'\\n responses:\\n '200':\\n description: Successful response.\\n headers:\\n X-Total-Count:\\n description: Total number of devices matched query.\\n schema:\\n type: string\\n content:\\n application/json:\\n schema:\\n title: ListOfDevices\\n type: array\\n items:\\n $ref: '#/components/schemas/DeviceInventoryResponse'\\n example:\\n - id: 291ae0e5956c69c2267489213df4459d19ed48a806603def19d417d004a4b67e\\n attributes:\\n - name: mac\\n scope: identity\\n value: '00:01:02:03:04:05'\\n description: MAC address\\n - name: ip_addr\\n scope: inventory\\n value: 1.2.3.4\\n description: IP address\\n updated_ts: '2016-10-03T16:58:51.639Z'\\n - id: 76f40e5956c699e327489213df4459d1923e1a806603def19d417d004a4a3ef\\n attributes:\\n - name: mac\\n scope: identity\\n value: '00:01:02:03:02:01'\\n description: MAC address\\n updated_ts: '2016-10-04T18:24:21.432Z'\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v2alpha1/inventory/devices/{id}/components:\\n get:\\n tags:\\n - Inventory_v2alpha1_Management API\\n summary: Get system device components\\n operationId: Get System Components\\n parameters:\\n - name: id\\n in: path\\n description: Device identifier.\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n description: Successful response.\\n content:\\n application/json:\\n schema:\\n title: System Components\\n description: Maps system component IDs to it's attributes\\n type: object\\n additionalProperties:\\n type: array\\n description: A list of attributes belonging to this component.\\n items:\\n $ref: '#/components/schemas/AttributeResponse'\\n example:\\n R123:\\n - scope: inventory\\n name: component_type\\n value: rtos\\n - scope: inventory\\n name: version\\n value: v1\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n x-mender-plan:\\n - enterprise\\n /api/internal/v1/iot-manager/health:\\n get:\\n tags:\\n - IoT_Manager_Internal API\\n summary: Get health status of service\\n operationId: IoTManager Internal Check Health\\n responses:\\n '204':\\n description: Service is healthy.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/iot-manager/alive:\\n get:\\n tags:\\n - IoT_Manager_Internal API\\n summary: Get service liveliness status.\\n operationId: IoTManager Internal Check Liveliness\\n responses:\\n '204':\\n description: Service is up and serving requests.\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/iot-manager/tenants/{tenantId}/devices:\\n post:\\n tags:\\n - IoT_Manager_Internal API\\n operationId: IoTManager Internal Provision device\\n summary: Register a new device with the deviceconfig service.\\n parameters:\\n - in: path\\n name: tenantId\\n schema:\\n type: string\\n required: true\\n description: ID of tenant the device belongs to.\\n requestBody:\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/NewDeviceInternalProvisionTypeInternal'\\n required: true\\n responses:\\n '202':\\n description: The device provisioning event was accepted and will be processed asynchronously.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '409':\\n description: A device with the same ID already exists in Iot Hub.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/iot-manager/tenants/{tenantId}:\\n delete:\\n tags:\\n - IoT_Manager_Internal API\\n operationId: IoTManager Internal Delete tenant\\n summary: Delete all data belonging to a given tenant.\\n parameters:\\n - in: path\\n name: tenantId\\n schema:\\n type: string\\n required: true\\n description: ID of tenant to remove.\\n responses:\\n '204':\\n description: The removal of tenant data was successful.\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/iot-manager/tenants/{tenantId}/auth:\\n post:\\n tags:\\n - IoT_Manager_Internal API\\n operationId: IoTManager Internal Preauthorize Device\\n summary: Pre-authorize an IoT device for a given tenant.\\n parameters:\\n - in: path\\n name: tenantId\\n schema:\\n type: string\\n required: true\\n description: ID of the tenant the device belongs to.\\n requestBody:\\n required: true\\n content:\\n application/json:\\n schema:\\n type: object\\n required:\\n - external_id\\n - id_data\\n - pubkey\\n properties:\\n external_id:\\n type: string\\n description: External identity used by cloud providers.\\n id_data:\\n type: object\\n description: Custom ID data that matches the reported properties in the device twin.\\n pubkey:\\n type: string\\n description: The public key of the device.\\n responses:\\n '204':\\n description: Device pre-authorization was successful.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/iot-manager/tenants/{tenantId}/devices/{deviceId}:\\n delete:\\n tags:\\n - IoT_Manager_Internal API\\n operationId: IoTManager Internal Decommission device\\n summary: Remove a device from Iot Hub.\\n parameters:\\n - in: path\\n name: tenantId\\n schema:\\n type: string\\n required: true\\n description: ID of tenant the device belongs to.\\n - in: path\\n name: deviceId\\n schema:\\n type: string\\n required: true\\n description: ID of the target device.\\n responses:\\n '202':\\n description: The device decommissioning event was accepted and will be processed asynchronously.\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/iot-manager/tenants/{tenantId}/bulk/devices/status/{status}:\\n put:\\n operationId: IoTManager Internal Update device statuses\\n tags:\\n - IoT_Manager_Internal API\\n summary: Update device statuses in bulk.\\n parameters:\\n - in: path\\n name: tenantId\\n schema:\\n type: string\\n required: true\\n description: ID of tenant the device belongs to.\\n - in: path\\n name: status\\n schema:\\n type: string\\n enum:\\n - accepted\\n - noauth\\n - pending\\n - preauthorized\\n - rejected\\n required: true\\n description: The status of the device\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: array\\n description: List of devices to update. Up to 100 devices can be processed per request.\\n items:\\n type: object\\n properties:\\n id:\\n type: string\\n description: Device ID.\\n required:\\n - id\\n required: true\\n responses:\\n '202':\\n description: The device status update bulk event was accepted and will be processed asynchronously.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/management/v1/iot-manager/integrations:\\n get:\\n operationId: IoTManager Management List integrations\\n summary: List all configured integrations\\n tags:\\n - IoT_Manager_Management API\\n parameters:\\n - name: page\\n in: query\\n description: Page number.\\n required: false\\n schema:\\n type: integer\\n default: 1\\n - name: per_page\\n in: query\\n description: Number of results per page.\\n required: false\\n schema:\\n type: integer\\n default: 20\\n responses:\\n '200':\\n description: OK. Returns list of integrations.\\n content:\\n application/json:\\n schema:\\n type: array\\n items:\\n $ref: '#/components/schemas/Integration'\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '403':\\n $ref: '#/components/responses/ForbiddenError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n post:\\n operationId: IoTManager Management Register integration\\n summary: Register a new cloud integration\\n tags:\\n - IoT_Manager_Management API\\n requestBody:\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Integration'\\n required: true\\n responses:\\n '201':\\n description: URL of the newly registered integration. Please note that the inventory webhook scope is supported in plans equal or above professional.\\n headers:\\n Location:\\n description: URL of the newly registered integration.\\n schema:\\n type: string\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '403':\\n $ref: '#/components/responses/ForbiddenError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v1/iot-manager/integrations/{id}:\\n delete:\\n operationId: IoTManager Management Remove integration\\n summary: Remove a cloud integration\\n tags:\\n - IoT_Manager_Management API\\n parameters:\\n - name: id\\n in: path\\n description: Integration identifier.\\n required: true\\n schema:\\n type: string\\n responses:\\n '204':\\n description: Integration unregistered successfully.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '403':\\n $ref: '#/components/responses/ForbiddenError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v1/iot-manager/integrations/{id}/credentials:\\n put:\\n operationId: IoTManager Management Set integration credentials\\n summary: Replace the credentials associated with the integration.\\n tags:\\n - IoT_Manager_Management API\\n parameters:\\n - name: id\\n in: path\\n description: Integration identifier.\\n required: true\\n schema:\\n type: string\\n requestBody:\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Credentials'\\n required: true\\n responses:\\n '204':\\n description: Credentials updated successfully.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '403':\\n $ref: '#/components/responses/ForbiddenError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v1/iot-manager/devices/{deviceId}:\\n delete:\\n operationId: IoTManager Management Unregister device integrations\\n summary: Removes all associated cloud integrations for the device.\\n description: Removes all associated cloud integrations for the device, but does not clean up any external state.\\n tags:\\n - IoT_Manager_Management API\\n parameters:\\n - name: deviceId\\n in: path\\n schema:\\n type: string\\n required: true\\n description: The unique ID of the device.\\n responses:\\n '204':\\n description: OK. Device successfully unregistered.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/DeviceState'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '403':\\n $ref: '#/components/responses/ForbiddenError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v1/iot-manager/devices/{deviceId}/state:\\n get:\\n operationId: IoTManager Management Get Device States\\n summary: Gets the desired and reported state of a device\\n tags:\\n - IoT_Manager_Management API\\n parameters:\\n - name: deviceId\\n in: path\\n schema:\\n type: string\\n required: true\\n description: The unique ID of the device.\\n responses:\\n '200':\\n description: OK. Returns device reported and desired states for all integrations.\\n content:\\n application/json:\\n schema:\\n type: object\\n description: Mapping from integration ID to DeviceState objects for all applicable integrations.\\n additionalProperties:\\n $ref: '#/components/schemas/DeviceState'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '403':\\n $ref: '#/components/responses/ForbiddenError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v1/iot-manager/devices/{deviceId}/state/{integrationId}:\\n put:\\n operationId: IoTManager Management Replace State\\n summary: Replaces the (desired) cloud state of the device for the given integration\\n tags:\\n - IoT_Manager_Management API\\n parameters:\\n - name: deviceId\\n in: path\\n schema:\\n type: string\\n required: true\\n description: The unique ID of the device.\\n - name: integrationId\\n in: path\\n schema:\\n type: string\\n required: true\\n description: The unique ID of the integration.\\n requestBody:\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/DeviceState'\\n required: true\\n responses:\\n '200':\\n description: OK. Returns the updated device state.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/DeviceState'\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '403':\\n $ref: '#/components/responses/ForbiddenError'\\n '409':\\n $ref: '#/components/responses/ConflictError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n get:\\n operationId: IoTManager Management Get Device State\\n summary: Gets the desired and reported state of a device from an integration\\n tags:\\n - IoT_Manager_Management API\\n parameters:\\n - name: deviceId\\n in: path\\n schema:\\n type: string\\n required: true\\n description: The unique ID of the device.\\n - name: integrationId\\n in: path\\n schema:\\n type: string\\n required: true\\n description: The unique ID of the integration.\\n responses:\\n '200':\\n description: OK. Returns device reported and desired state for the integration.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/DeviceState'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '403':\\n $ref: '#/components/responses/ForbiddenError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v1/iot-manager/events:\\n get:\\n operationId: IoTManager Management List events\\n summary: List all stored events\\n tags:\\n - IoT_Manager_Management API\\n parameters:\\n - name: page\\n in: query\\n description: Page number.\\n required: false\\n schema:\\n type: integer\\n default: 1\\n - name: per_page\\n in: query\\n description: Number of results per page.\\n required: false\\n schema:\\n type: integer\\n default: 20\\n - name: integration_id\\n in: query\\n schema:\\n type: string\\n format: uuid\\n required: false\\n description: The unique ID of the integration to get the events from.\\n responses:\\n '200':\\n description: OK. Returns list of events.\\n content:\\n application/json:\\n schema:\\n type: array\\n items:\\n $ref: '#/components/schemas/Event'\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '403':\\n $ref: '#/components/responses/ForbiddenError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/internal/v1/tenantadm/alive:\\n get:\\n tags:\\n - Tenants_APIs_Tenantadm Internal\\n summary: |\\n Trivial endpoint that unconditionally returns an empty 200 response whenever the API handler is running correctly.\\n operationId: Check Liveliness\\n responses:\\n '204':\\n description: |\\n Service is up and running\\n content: {}\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/tenantadm/health:\\n get:\\n tags:\\n - Tenants_APIs_Tenantadm Internal\\n summary: Check the health of the service\\n operationId: Tenantadm Internal Check Health\\n responses:\\n '204':\\n description: |\\n Service is healthy and all dependencies are up and running.\\n content: {}\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n '503':\\n description: |\\n Service unhealthy / not ready to accept traffic. At least one dependency is not running.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n /api/internal/v1/tenantadm/tenants:\\n get:\\n tags:\\n - Tenants_APIs_Tenantadm Internal\\n summary: List known tenants\\n description: |\\n Returns a paged collection of existing tenants.\\n operationId: List Tenants\\n parameters:\\n - name: id\\n in: query\\n description: |\\n Tenant ID(s) filter. Matches if the tenant ID is equal to this string. Can be repeated to query a set of tenants.\\n schema:\\n type: array\\n items:\\n type: string\\n explode: true\\n - name: plan\\n in: query\\n description: |\\n Tenant plan. Matches if the tenant plan is equal to this string.\\n required: false\\n schema:\\n type: string\\n - name: trial\\n in: query\\n description: |\\n Matches if the tenant account is a trial account.\\n required: false\\n schema:\\n type: boolean\\n - name: q\\n in: query\\n description: |\\n Tenant filter. Matches if the tenant ID is equal to this string, or tenant's name or tenant's admin username contain this string.\\n schema:\\n type: string\\n - name: parent_tenant_id\\n in: query\\n description: |\\n List children tenants belonging to the given tenant ID.\\n schema:\\n type: string\\n - name: field\\n in: query\\n description: |\\n If specified, the response will include tenant objects with field matching this string.\\n You can specify multiple fields by setting field parameter multiple times in one query.\\n required: false\\n schema:\\n type: array\\n items:\\n type: string\\n - name: page\\n in: query\\n description: Starting page.\\n schema:\\n type: integer\\n default: 1\\n - name: per_page\\n in: query\\n description: Maximum number of results per page.\\n schema:\\n type: integer\\n default: 10\\n responses:\\n '200':\\n description: Successful response.\\n headers:\\n X-Total-Count:\\n description: Total number of tenants matched query.\\n schema:\\n type: string\\n Link:\\n description: |\\n Standard header, used for page navigation.\\n\\n Supported relation types are 'first', 'next' and 'prev'.\\n schema:\\n type: string\\n content:\\n application/json:\\n schema:\\n title: ListOfTenants\\n type: array\\n items:\\n $ref: '#/components/schemas/Tenant'\\n example:\\n - id: 507f191e810c19729de860ea\\n name: Acme\\n plan: os\\n tenant_token: jp+/TvhmkU60qifhk+cOAjBSFBjWy5rk\\n - id: 507f1f77bcf86cd799439011\\n name: Foo Inc.\\n plan: professional\\n tenant_token: GowGfbYCV80qioiHA5CkqqQt8nVNJ21P\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/tenantadm/tenants/verify:\\n post:\\n tags:\\n - Tenants_APIs_Tenantadm Internal\\n summary: Check the validity of a tenant token\\n description: |\\n Verifies the Tenant Token and returns the associated Tenant.\\n operationId: Verify Tenant Token\\n parameters:\\n - name: Authorization\\n in: header\\n description: The tenant token in base64-encoded form.\\n required: true\\n schema:\\n type: string\\n pattern: ^Bearer .+$\\n responses:\\n '200':\\n description: The token is valid. A tenant descriptor is returned.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Tenant'\\n example:\\n id: 507f191e810c19729de860ea\\n name: Acme\\n tenant_token: wGypZL/J5mDakDq1CjL2hCfNcF8zEYcz\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/tenantadm/tenants/{id}/status:\\n put:\\n tags:\\n - Tenants_APIs_Tenantadm Internal\\n summary: Suspend/unsuspend tenant's account.\\n description: |\\n Changes the given tenant's suspension status. Valid statuses are:\\n - 'suspended'\\n - 'active'\\n operationId: Set Account Status\\n parameters:\\n - name: id\\n in: path\\n description: Tenant ID.\\n required: true\\n schema:\\n type: string\\n requestBody:\\n description: Target suspension status\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/TenantStatusTypeManagement'\\n required: true\\n responses:\\n '200':\\n description: |\\n The tenant was successfully (un)suspended.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/tenantadm/tenants/{tenant_id}:\\n get:\\n tags:\\n - Tenants_APIs_Tenantadm Internal\\n summary: Obtain information about selected tenant\\n operationId: Show Tenant\\n parameters:\\n - name: tenant_id\\n in: path\\n description: Tenant ID.\\n required: true\\n schema:\\n type: string\\n - name: include_children\\n in: query\\n description: Boolean flag to include children tenants, if included will result in another db call querying all the tenants with parent tenant id set to the tenant in question.\\n schema:\\n type: boolean\\n responses:\\n '200':\\n description: A tenant descriptor is returned.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Tenant'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n put:\\n tags:\\n - Tenants_APIs_Tenantadm Internal\\n summary: Update tenant information\\n description: |\\n Update tenant information.\\n operationId: Update Tenant\\n parameters:\\n - name: tenant_id\\n in: path\\n description: Tenant ID.\\n required: true\\n schema:\\n type: string\\n requestBody:\\n description: Updated tenant data.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/TenantUpdateInternal'\\n required: true\\n responses:\\n '202':\\n description: Tenant information updated.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '409':\\n description: |\\n The tenant cannot be updated because of a conflict.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n delete:\\n tags:\\n - Tenants_APIs_Tenantadm Internal\\n summary: Delete all the information belonging to a tenant\\n operationId: Tenantadm Internal Delete Tenant\\n parameters:\\n - name: tenant_id\\n in: path\\n description: Tenant ID.\\n required: true\\n schema:\\n type: string\\n responses:\\n '204':\\n description: All the tenant data removed.\\n content: {}\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/tenantadm/tenants/{tenant_id}/children:\\n post:\\n tags:\\n - Tenants_APIs_Tenantadm Internal\\n summary: Assign existing tenants as children to a service provider tenant\\n operationId: Assign Tenants to Service Provider\\n parameters:\\n - name: tenant_id\\n in: path\\n description: Tenant ID.\\n required: true\\n schema:\\n type: string\\n requestBody:\\n description: The unique identifiers of the tenants to be assigned.\\n content:\\n application/json:\\n schema:\\n type: object\\n properties:\\n tenant_ids:\\n type: array\\n items:\\n type: string\\n required: true\\n responses:\\n '204':\\n description: Tenant successfully assigned to service provider.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '409':\\n description: |\\n The specified tenant is not a Service Provider.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n delete:\\n tags:\\n - Tenants_APIs_Tenantadm Internal\\n summary: Delete all the information belonging to the children tenants of a Service Provider tenant\\n operationId: Delete Tenant Children\\n parameters:\\n - name: tenant_id\\n in: path\\n description: Tenant ID.\\n required: true\\n schema:\\n type: string\\n responses:\\n '204':\\n description: All the tenant data removed.\\n content: {}\\n '409':\\n description: |\\n The specified tenant is not a Service Provider.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/tenantadm/tenants/{tenant_id}/children/{child_id}:\\n delete:\\n tags:\\n - Tenants_APIs_Tenantadm Internal\\n summary: Removing the parent reference in the child tenant.\\n description: |\\n Making the child tenant a standalone tenant by removing the parent reference.\\n operationId: Delete Parent Reference\\n parameters:\\n - name: tenant_id\\n in: path\\n description: Tenant ID.\\n required: true\\n schema:\\n type: string\\n - name: child_id\\n in: path\\n description: Child ID.\\n required: true\\n schema:\\n type: string\\n responses:\\n '204':\\n description: The parent reference is removed.\\n content: {}\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/tenantadm/tenants/{tenant_id}/upgrade:\\n post:\\n tags:\\n - Tenants_APIs_Tenantadm Internal\\n summary: Upgrade tenant subscription\\n operationId: Upgrade tenant subscription\\n parameters:\\n - name: tenant_id\\n in: path\\n description: Tenant ID.\\n required: true\\n schema:\\n type: string\\n requestBody:\\n description: The unique identifiers of the tenants to be upgraded.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/TenantSubscriptionUpgradeInternal'\\n responses:\\n '204':\\n description: Tenant successfully assigned to service provider.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/management/v1/tenantadm/user/tenant:\\n get:\\n tags:\\n - Tenants_APIs_Tenantadm Management\\n summary: Obtain information about current tenant\\n description: |\\n The returned tenant resolves to the owner of the subject claim (user unique ID) in the JWT token.\\n deprecated: true\\n x-deprecated-description: |\\n _since Fri Aug 21 2026_ this endpoint is deprecated. Please use\\n GET /api/management/v2/tenantadm/tenants/me instead. Unlike this v1\\n endpoint, the v2 response omits the `tenant_token` field; the tenant\\n token is available from\\n GET /api/management/v2/tenantadm/tenants/me/token, which is restricted\\n to Admin users and users who can manage all devices.\\n operationId: Tenant Info\\n parameters:\\n - name: tiers\\n in: query\\n description: Flag to include per-tiers limits in the response.\\n required: false\\n schema:\\n type: boolean\\n default: false\\n responses:\\n '200':\\n description: A tenant descriptor is returned.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Tenant'\\n '401':\\n description: Verification failed.\\n content: {}\\n '404':\\n description: User is not a part of any tenant organization.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v2/tenantadm/billing/products:\\n get:\\n tags:\\n - Tenants_APIs_v2_Tenantadm Management v2\\n summary: Get information about products currently configured. Returns 404 if you did not enable billing.\\n operationId: Get billing product information\\n responses:\\n '200':\\n description: Successful response.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/ProductInfo'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v2/tenantadm/billing:\\n get:\\n tags:\\n - Tenants_APIs_v2_Tenantadm Management v2\\n summary: Get billing information, such as the card stored as default payment method in stripe\\n operationId: Get billing information\\n responses:\\n '200':\\n description: Stripe stored card data is returned.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/BillingInfo'\\n example:\\n card:\\n brand: Visa\\n checks:\\n address_line1_check: pass\\n address_postal_code_check: pass\\n cvc_check: pass\\n country: 'no'\\n description: ''\\n exp_month: 2\\n exp_year: 2020\\n fingerprint: fingerprint\\n funding: all\\n iin: ''\\n issuer: ''\\n last4: '1234'\\n three_d_secure_usage:\\n supported: true\\n wallet:\\n dynamic_last4: '6789'\\n type: visa_checkout\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v2/tenantadm/billing/card:\\n post:\\n tags:\\n - Tenants_APIs_v2_Tenantadm Management v2\\n summary: Generate a Stripe setup intent for collecting updated CC details via the UI.\\n operationId: Init Card Update\\n responses:\\n '200':\\n description: Stripe setup intent id and secret is returned.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/CardSetupData'\\n example:\\n intent_id: seti_1HXHVn2eZvKYlo2CT3XEEjKB\\n secret: TYooMQauvdEDq54NiTphI7jx\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '409':\\n description: Tenant is in invalid state; see error for details.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v2/tenantadm/billing/card/{id}/confirm:\\n post:\\n tags:\\n - Tenants_APIs_v2_Tenantadm Management v2\\n summary: Save the credit card collected using the given intent as the default card.\\n operationId: Confirm Card Update\\n parameters:\\n - name: id\\n in: path\\n description: Setup intent ID obtained from POST /card.\\n required: true\\n schema:\\n type: string\\n responses:\\n '204':\\n description: New credit card is saved as the default one.\\n content: {}\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '409':\\n description: Setup intent is in invalid state; see error for details.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v2/tenantadm/billing/profile:\\n post:\\n tags:\\n - Tenants_APIs_v2_Tenantadm Management v2\\n summary: Register billing information.\\n operationId: Register billing profile\\n requestBody:\\n description: The billing profile.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/BillingProfile'\\n required: true\\n responses:\\n '200':\\n description: Billing profile registered successfully.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/BillingProfile'\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '413':\\n description: Payload too large\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n get:\\n tags:\\n - Tenants_APIs_v2_Tenantadm Management v2\\n summary: Retrieve the billing information.\\n operationId: Get billing profile\\n responses:\\n '200':\\n description: The billing information for the account.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/BillingProfile'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n patch:\\n tags:\\n - Tenants_APIs_v2_Tenantadm Management v2\\n summary: Update billing information.\\n operationId: Update billing profile\\n requestBody:\\n description: The updated billing information.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/BillingProfileUpdate'\\n required: true\\n responses:\\n '200':\\n description: The updated billing information.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/BillingProfile'\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '413':\\n description: Payload too large\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v2/tenantadm/billing/subscription:\\n post:\\n x-mender-private: true\\n tags:\\n - Tenants_APIs_v2_Tenantadm Management v2\\n summary: Request changes to your subscription\\n operationId: Change subscription\\n requestBody:\\n description: Subscription change request\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/SubscriptionRequest'\\n required: true\\n responses:\\n '202':\\n description: Request accepted and scheduled for processing\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '403':\\n description: Forbidden\\n content: {}\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '409':\\n description: 'billing for your account is not self-managed: please contact support'\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n get:\\n x-mender-private: true\\n tags:\\n - Tenants_APIs_v2_Tenantadm Management v2\\n summary: Get the current subscription details.\\n operationId: Show subscription\\n responses:\\n '200':\\n description: OK\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Subscription'\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '403':\\n description: Forbidden\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v2/tenantadm/billing/subscription/invoices/preview:\\n post:\\n tags:\\n - Tenants_APIs_v2_Tenantadm Management v2\\n summary: Preview an upcoming invoice\\n description: |\\n Requests a preview to view an upcoming invoice with an optional subscription change request.\\n The SubscriptionRequest is optional.\\n operationId: Preview invoice\\n requestBody:\\n description: Subscription preview request\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/PreviewRequest'\\n required: true\\n responses:\\n '200':\\n description: Successfully rendered the preview.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Invoice'\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '403':\\n description: Forbidden\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '409':\\n description: No invoice could be generated\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v2/tenantadm/billing/secret:\\n post:\\n tags:\\n - Tenants_APIs_v2_Tenantadm Management v2\\n summary: Get stripe client secret, create if not exist.\\n operationId: Get stripe secret\\n responses:\\n '200':\\n description: Stripe client secret is returned.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/CheckoutData'\\n example:\\n secret: TYooMQauvdEDq54NiTphI7jx\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v2/tenantadm/contact/support:\\n post:\\n tags:\\n - Tenants_APIs_v2_Tenantadm Management v2\\n summary: Send message to Mender support\\n description: |\\n The message is free form; internally it will be auto-decorated with important metadata\\n (organization id/name, user id/name, etc.).\\n operationId: Contact Support\\n requestBody:\\n description: Support request data\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/SupportRequest'\\n required: true\\n responses:\\n '202':\\n description: Message accepted.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v2/tenantadm/tenants:\\n get:\\n tags:\\n - Tenants_APIs_v2_Tenantadm Management v2\\n summary: List the children Tenants associated with a Service Provider Tenant\\n operationId: List Tenants v2\\n parameters:\\n - name: tiers\\n in: query\\n description: Flag to include tiers in the response.\\n schema:\\n type: string\\n default: 'false'\\n - name: page\\n in: query\\n description: Starting page.\\n schema:\\n type: integer\\n default: 1\\n - name: per_page\\n in: query\\n description: Maximum number of results per page.\\n schema:\\n type: integer\\n default: 10\\n responses:\\n '200':\\n description: List of tenants is returned\\n headers:\\n X-Total-Count:\\n description: Total number of devices matched query.\\n schema:\\n type: string\\n Link:\\n description: |\\n Standard header, used for page navigation.\\n\\n Supported relation types are 'first', 'next' and 'prev'.\\n schema:\\n type: string\\n content:\\n application/json:\\n schema:\\n title: ListOfTenants\\n type: array\\n items:\\n $ref: '#/components/schemas/Tenant'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n post:\\n tags:\\n - Tenants_APIs_v2_Tenantadm Management v2\\n summary: Create a new Tenant associated with a Service Provider Tenant\\n operationId: Create new Tenant\\n requestBody:\\n description: New Tenant\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/NewTenantTypeManagement'\\n required: true\\n responses:\\n '202':\\n description: Request to create tenant was accepted\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '403':\\n description: |\\n Forbidden because the current tenant is not a service provider.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '409':\\n description: |\\n Tenant or admin user is duplicated.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '422':\\n description: |\\n Tenant limit for max child tenants exhausted.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v2/tenantadm/tenants/signup:\\n post:\\n tags:\\n - Tenants_APIs_v2_Tenantadm Management v2\\n summary: Create a new Account\\n operationId: Sign up\\n requestBody:\\n content:\\n application/x-www-form-urlencoded:\\n schema:\\n required:\\n - email\\n - g-recaptcha-response\\n - organization\\n - password\\n type: object\\n properties:\\n organization:\\n type: string\\n description: Organization name (ASCII characters only, max 100 characters)\\n email:\\n type: string\\n description: Email address (ASCII characters only)\\n format: email\\n password:\\n type: string\\n description: Password\\n g-recaptcha-response:\\n type: string\\n description: reCAPTCHA response\\n name:\\n type: string\\n description: customer name\\n subscription_type:\\n type: string\\n default: trial\\n enum:\\n - trial\\n - azure\\n subscription_token:\\n type: string\\n description: |-\\n Subscription token is used to resolve the externally managed\\n subscription. The token is required if subscription_type is \\\"azure\\\".\\n marketing:\\n type: boolean\\n description: User has opted in to marketing communications\\n campaign:\\n type: string\\n description: Campaign\\n ts:\\n type: integer\\n description: captcha timestamp\\n format: int32\\n required: true\\n responses:\\n '202':\\n description: Request to create organization was accepted\\n headers:\\n Location:\\n description: URL to log in to the newly created organization.\\n schema:\\n type: string\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n description: |\\n Recaptcha verification failed.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '405':\\n description: |\\n Endpoint disabled.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '409':\\n description: |\\n Email is duplicated.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/management/v2/tenantadm/tenants/trial:\\n post:\\n tags:\\n - Tenants_APIs_v2_Tenantadm Management v2\\n summary: Create a trial organization\\n operationId: Create Trial Account\\n requestBody:\\n content:\\n application/x-www-form-urlencoded:\\n schema:\\n required:\\n - email\\n - g-recaptcha-response\\n - organization\\n - password\\n type: object\\n properties:\\n organization:\\n type: string\\n description: Organization name (ASCII characters only, max 100 characters)\\n email:\\n type: string\\n description: Email address (ASCII characters only)\\n format: email\\n password:\\n type: string\\n description: Password\\n g-recaptcha-response:\\n type: string\\n description: reCAPTCHA response\\n name:\\n type: string\\n description: customer name\\n plan:\\n type: string\\n description: customer plan\\n default: enterprise\\n enum:\\n - os\\n - professional\\n - enterprise\\n marketing:\\n type: boolean\\n description: User has opted in to marketing communications.\\n campaign:\\n type: string\\n description: Campaign\\n ts:\\n type: integer\\n description: captcha timestamp\\n format: int32\\n application/json:\\n schema:\\n required:\\n - email\\n - g-recaptcha-response\\n - organization\\n - password\\n type: object\\n properties:\\n organization:\\n type: string\\n description: Organization name (ASCII characters only, max 100 characters)\\n email:\\n type: string\\n description: Email address (ASCII characters only)\\n format: email\\n password:\\n type: string\\n description: Password\\n g-recaptcha-response:\\n type: string\\n description: reCAPTCHA response\\n name:\\n type: string\\n description: customer name\\n plan:\\n type: string\\n description: customer plan\\n default: enterprise\\n enum:\\n - os\\n - professional\\n - enterprise\\n marketing:\\n type: boolean\\n description: User has opted in to marketing communications.\\n campaign:\\n type: string\\n description: Campaign\\n ts:\\n type: integer\\n description: captcha timestamp\\n format: int32\\n required: true\\n responses:\\n '202':\\n description: Request to create organization was accepted\\n headers:\\n Location:\\n description: URL to log in to the newly created organization.\\n schema:\\n type: string\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n description: |\\n Recaptcha verification failed.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '405':\\n description: |\\n Endpoint disabled.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '409':\\n description: |\\n Email is duplicated.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/management/v2/tenantadm/tenants/me:\\n get:\\n tags:\\n - Tenants_APIs_v2_Tenantadm Management v2\\n summary: Obtain information about my tenant\\n description: |\\n The returned tenant resolves to the owner of the subject claim (user unique ID) in the JWT token. Unlike the `/user/tenant` endpoint, this response omits the `tenant_token`.\\n operationId: My Tenant\\n parameters:\\n - name: tiers\\n in: query\\n description: Flag to include per-tiers limits in the response.\\n required: false\\n schema:\\n type: boolean\\n default: false\\n responses:\\n '200':\\n description: A tenant descriptor is returned.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Tenant'\\n '401':\\n description: Verification failed.\\n content: {}\\n '404':\\n description: User is not a part of any tenant organization.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v2/tenantadm/tenants/me/token:\\n get:\\n tags:\\n - Tenants_APIs_v2_Tenantadm Management v2\\n summary: Obtain the tenant token for my tenant\\n description: |\\n Returns the `tenant_token` for the tenant organization associated with the subject claim (user unique ID) in the JWT token. This is a restricted endpoint. The user must be an **Admin user** or a **User that can manage all devices**. Unauthorized users will receive a 403 Forbidden response.\\n operationId: Get My TenantToken\\n responses:\\n '200':\\n description: The tenant token is successfully returned.\\n content:\\n application/json:\\n schema:\\n type: object\\n required:\\n - tenant_token\\n properties:\\n tenant_token:\\n type: string\\n description: The secure token used by devices to identify and authenticate with the tenant.\\n '401':\\n description: Verification failed.\\n content: {}\\n '403':\\n description: |\\n Forbidden. The user does not have the required permissions (must be Admin or have permissions to manage all devices) to fetch the tenant token.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v2/tenantadm/tenants/{id}:\\n delete:\\n tags:\\n - Tenants_APIs_v2_Tenantadm Management v2\\n summary: Remove inactive tenant from the system.\\n description: |\\n Remove inactive tenant information from the system.\\n operationId: Delete Inactive Account\\n parameters:\\n - name: id\\n in: path\\n description: Tenant ID.\\n required: true\\n schema:\\n type: string\\n responses:\\n '204':\\n description: Tenant removed.\\n content: {}\\n '403':\\n description: |\\n User token does not provide access to tenant with given Id.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '405':\\n description: |\\n The tenant cannot be removed.\\n Only inactive tenant can be removed.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v2/tenantadm/tenants/{id}/cancel:\\n post:\\n tags:\\n - Tenants_APIs_v2_Tenantadm Management v2\\n summary: Request the cancellation of a tenant\\n description: |\\n Requests the cancellation of a tenant.\\n operationId: Cancel Account\\n parameters:\\n - name: id\\n in: path\\n description: Tenant ID.\\n required: true\\n schema:\\n type: string\\n requestBody:\\n description: Cancellation request\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/CancelRequest'\\n required: true\\n responses:\\n '202':\\n description: |\\n Request has been successfully recorded.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '403':\\n description: |\\n User token does not provide access to tenant with given Id.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '409':\\n description: The tenant is not active.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v2/tenantadm/tenants/{id}/child:\\n put:\\n tags:\\n - Tenants_APIs_v2_Tenantadm Management v2\\n summary: Update a Tenant associated with a Service Provider Tenant\\n operationId: Update Child Tenant\\n parameters:\\n - name: id\\n in: path\\n description: Tenant ID.\\n required: true\\n schema:\\n type: string\\n requestBody:\\n description: Updated Tenant\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/UpdateChildTenant'\\n required: true\\n responses:\\n '204':\\n description: Tenant updated.\\n content: {}\\n '403':\\n description: |\\n User token does not provide access to tenant with given Id.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '422':\\n description: |\\n Device limit for children tenants exhausted.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v2/tenantadm/tenants/{id}/plan:\\n post:\\n tags:\\n - Tenants_APIs_v2_Tenantadm Management v2\\n summary: Request the subscription plan/add-ons change\\n description: |\\n Request the subscription plan/add-ons change.\\n operationId: Update Plan\\n parameters:\\n - name: id\\n in: path\\n description: Tenant ID.\\n required: true\\n schema:\\n type: string\\n requestBody:\\n description: Plan change request\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/PlanChangeRequest'\\n required: true\\n responses:\\n '202':\\n description: |\\n Request has been successfully recorded.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '403':\\n description: |\\n User token does not provide access to tenant with given Id.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '409':\\n description: The tenant is not active.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v2/tenantadm/tenants/{id}/remove/start:\\n post:\\n tags:\\n - Tenants_APIs_v2_Tenantadm Management v2\\n summary: Initialize the process of tenant removal.\\n description: |\\n Start the asynchronous process of removing tenant from the system.\\n operationId: Init Tenant Removal\\n parameters:\\n - name: id\\n in: path\\n description: Tenant ID.\\n required: true\\n schema:\\n type: string\\n responses:\\n '202':\\n description: Request to cancel the tenant upgrade was accepted\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '403':\\n description: |\\n User token does not provide access to tenant with given Id.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v2/tenantadm/tenants/{id}/status:\\n put:\\n tags:\\n - Tenants_APIs_v2_Tenantadm Management v2\\n summary: Activate tenant's account.\\n description: |\\n Changes the given tenant's suspension status to active.\\n The only valid statuses is 'active'.\\n operationId: Activate Account\\n parameters:\\n - name: id\\n in: path\\n description: Tenant ID.\\n required: true\\n schema:\\n type: string\\n requestBody:\\n description: Target suspension status\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/TenantStatusTypeManagement'\\n required: true\\n responses:\\n '202':\\n description: |\\n Request to activate tenant was accepted.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '403':\\n description: |\\n User token does not provide access to tenant with given Id.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '409':\\n description: The tenant was suspended.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/internal/v1/useradm/health:\\n get:\\n tags:\\n - User_administration_and_authentication_Internal API\\n summary: Check the health of the service\\n operationId: Useradm Check Health\\n responses:\\n '204':\\n description: |\\n Service is healthy and all dependencies are up and running.\\n content: {}\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n '503':\\n description: |\\n Service unhealthy / not ready to accept traffic. At least one dependency is not running.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n example:\\n error: 'error reaching MongoDB: context deadline exceeded'\\n request_id: ffd712be-d697-4cb7-814b-88ff1e2eb5f6\\n /api/internal/v1/useradm/alive:\\n get:\\n tags:\\n - User_administration_and_authentication_Internal API\\n summary: |\\n Trivial endpoint that unconditionally returns an empty 200 response whenever the API handler is running correctly.\\n operationId: Useradm Check Liveliness\\n responses:\\n '204':\\n description: Service is up and running.\\n content: {}\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/useradm/auth/verify:\\n post:\\n tags:\\n - User_administration_and_authentication_Internal API\\n summary: Check the validity of a token\\n description: |\\n Besides the basic validity check, checks the token expiration time and user-initiated token revocation.\\n Services which intend to use it should be correctly set up in the gateway's configuration.\\n operationId: Verify JWT\\n parameters:\\n - name: Authorization\\n in: header\\n description: The token in base64-encoded form.\\n required: true\\n schema:\\n type: string\\n pattern: ^Bearer .+$\\n - name: X-Forwarded-Uri\\n in: header\\n description: |\\n URI the original request was sent to, the URI is expected to have\\n at least 4 components, eg. /api/management/1.0/foo/bar\\n required: true\\n schema:\\n type: string\\n format: uri-reference\\n - name: X-Forwarded-Method\\n in: header\\n description: HTTP method used when accessing the original URI\\n required: true\\n schema:\\n type: string\\n enum:\\n - GET\\n - PUT\\n - POST\\n - DELETE\\n responses:\\n '200':\\n description: The token is valid.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n description: Verification failed, authentication should not be granted.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '403':\\n description: Token has expired - apply for a new one.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/useradm/users:\\n get:\\n tags:\\n - User_administration_and_authentication_Internal API\\n summary: |\\n List users matching the filtering conditions.\\n operationId: List All Users\\n parameters:\\n - name: page\\n in: query\\n description: Results page number\\n schema:\\n type: integer\\n default: 1\\n - name: per_page\\n in: query\\n description: Maximum number of results per page.\\n schema:\\n maximum: 500\\n type: integer\\n default: 20\\n - name: id\\n in: query\\n description: |\\n Limit result by user ID, can be repeated to include multiple users in the query.\\n schema:\\n type: string\\n - name: tenant_id\\n in: query\\n description: |\\n Limit result by tenant ID.\\n schema:\\n type: string\\n - name: email\\n in: query\\n description: |\\n Limit result by user email, can be repeated to include multiple users in the query.\\n schema:\\n type: string\\n - name: sso_provider_id\\n in: query\\n description: |\\n Filter by SSO provider ID. Must be a UUID or on the form oauth2/<provider>.\\n schema:\\n type: string\\n - name: sso_subject\\n in: query\\n description: |\\n Filter by SSO subject ID.\\n schema:\\n type: string\\n - name: created_after\\n in: query\\n description: |\\n Filter users created after timestamp (UNIX timestamp).\\n schema:\\n type: integer\\n - name: created_before\\n in: query\\n description: |\\n Filter users created before timestamp (UNIX timestamp).\\n schema:\\n type: integer\\n - name: updated_after\\n in: query\\n description: |\\n Filter users updated after timestamp (UNIX timestamp).\\n schema:\\n type: integer\\n - name: updated_before\\n in: query\\n description: |\\n Filter users updated before timestamp (UNIX timestamp).\\n schema:\\n type: integer\\n responses:\\n '200':\\n description: Successful response.\\n headers:\\n X-Total-Count:\\n description: |\\n Total number of users matching the query, disregarding paging.\\n schema:\\n type: integer\\n content:\\n application/json:\\n schema:\\n title: ListOfUsers\\n type: array\\n items:\\n $ref: '#/components/schemas/UserWithTenantInfo'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/useradm/tenants:\\n post:\\n tags:\\n - User_administration_and_authentication_Internal API\\n summary: Create a tenant with provided configuration.\\n operationId: Useradm Create Tenant\\n requestBody:\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/TenantNew'\\n required: true\\n responses:\\n '201':\\n description: The tenant was created successfully.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/useradm/tenants/{tenant_id}/sso/assign:\\n put:\\n tags:\\n - User_administration_and_authentication_Internal API\\n summary: Assigns the SSO to the tenant\\n operationId: Assign tenant SSO\\n parameters:\\n - name: tenant_id\\n in: path\\n description: Tenant ID to assign the SSO to.\\n required: true\\n schema:\\n type: string\\n requestBody:\\n description: Existing tenant ID to get the SSO configuration from.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/SourceTenant'\\n required: true\\n responses:\\n '200':\\n description: The SSO data was successfully assigned, however there is additional message returned (for instance in case of replacement of existing configuration).\\n content: {}\\n '201':\\n description: The SSO data was successfully assigned.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/useradm/tenants/{tenant_id}:\\n delete:\\n tags:\\n - User_administration_and_authentication_Internal API\\n summary: Deletes all the tenant data\\n operationId: Useradm Internal Delete tenant data\\n parameters:\\n - name: tenant_id\\n in: path\\n description: Tenant ID to delete.\\n required: true\\n schema:\\n type: string\\n responses:\\n '204':\\n description: The tenant data was successfully deleted.\\n content: {}\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/useradm/tenants/{tenant_id}/users:\\n get:\\n tags:\\n - User_administration_and_authentication_Internal API\\n summary: |\\n List all users registered under the tenant owning the JWT.\\n operationId: List Users Internal\\n parameters:\\n - name: per_page\\n in: header\\n description: Sets the amount of records on one page.\\n required: false\\n schema:\\n type: integer\\n - name: tenant_id\\n in: path\\n description: Tenant ID.\\n required: true\\n schema:\\n type: string\\n - name: id\\n in: query\\n description: |\\n Limit result by user ID, can be repeated to include multiple users in the query.\\n schema:\\n items:\\n type: string\\n type: array\\n style: form\\n - name: email\\n in: query\\n description: |\\n Limit result by user email, can be repeated to include multiple users in the query.\\n schema:\\n items:\\n type: string\\n type: array\\n style: form\\n - name: created_after\\n in: query\\n description: |\\n Filter users created after timestamp (UNIX timestamp).\\n schema:\\n type: integer\\n - name: created_before\\n in: query\\n description: |\\n Filter users created before timestamp (UNIX timestamp).\\n schema:\\n type: integer\\n - name: updated_after\\n in: query\\n description: |\\n Filter users updated after timestamp (UNIX timestamp).\\n schema:\\n type: integer\\n - name: updated_before\\n in: query\\n description: |\\n Filter users updated before timestamp (UNIX timestamp).\\n schema:\\n type: integer\\n responses:\\n '200':\\n description: Successful response.\\n content:\\n application/json:\\n schema:\\n title: ListOfUsers\\n type: array\\n items:\\n $ref: '#/components/schemas/User'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n post:\\n tags:\\n - User_administration_and_authentication_Internal API\\n summary: Create user\\n operationId: Create User Internal\\n parameters:\\n - name: tenant_id\\n in: path\\n description: Tenant ID.\\n required: true\\n schema:\\n type: string\\n requestBody:\\n description: New user data.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/UserNewInternal'\\n required: true\\n responses:\\n '201':\\n description: The user was successfully created.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '422':\\n description: |\\n User name or ID is duplicated, or limit on maximum number of users has been exceeded.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/useradm/tenants/{tenant_id}/devices/{device_id}/users:\\n get:\\n tags:\\n - User_administration_and_authentication_Internal API\\n summary: |\\n List users' email addresses of users with access to a given device.\\n operationId: List Users' email addresses\\n parameters:\\n - name: tenant_id\\n in: path\\n description: Tenant ID.\\n required: true\\n schema:\\n type: string\\n - name: device_id\\n in: path\\n description: Device ID.\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n description: Successful response.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Emails'\\n '400':\\n description: |\\n Device id not provided.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/useradm/tenants/{tenant_id}/users/{user_id}:\\n delete:\\n tags:\\n - User_administration_and_authentication_Internal API\\n summary: Delete a user\\n description: |\\n Remove a user from the tenant.\\n operationId: Delete User Internal\\n parameters:\\n - name: tenant_id\\n in: path\\n description: Tenant ID.\\n required: true\\n schema:\\n type: string\\n - name: user_id\\n in: path\\n description: User ID.\\n required: true\\n schema:\\n type: string\\n responses:\\n '204':\\n description: User deleted.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/useradm/tokens:\\n delete:\\n tags:\\n - User_administration_and_authentication_Internal API\\n summary: Delete all user tokens\\n description: |\\n This endpoint is designed to be used for tenant account suspension purpose.\\n When only tenant_id parameter is set, tokens for all tenant users will be removed.\\n It is also possible to remove tokens for user with given user_id by setting\\n optional user_id parameter.\\n operationId: Revoke User Tokens\\n parameters:\\n - name: tenant_id\\n in: query\\n description: Tenant ID.\\n required: true\\n schema:\\n type: string\\n - name: user_id\\n in: query\\n description: User ID.\\n schema:\\n type: string\\n responses:\\n '204':\\n description: Tokens deleted.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n '503':\\n $ref: '#/components/responses/UnavailableError'\\n /api/internal/v1/useradm/tenants/{tenant_id}/limits:\\n get:\\n tags:\\n - User_administration_and_authentication_Internal API\\n operationId: Get Tenant Limits Internal\\n parameters:\\n - name: tenant_id\\n in: path\\n description: Tenant ID.\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n description: Successful response.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Limits'\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n put:\\n tags:\\n - User_administration_and_authentication_Internal API\\n summary: Update information about tenant limits\\n operationId: Update Tenant Limits\\n parameters:\\n - name: tenant_id\\n in: path\\n description: Tenant ID.\\n required: true\\n schema:\\n type: string\\n requestBody:\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Limits'\\n required: true\\n responses:\\n '204':\\n description: Limit information updated.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n delete:\\n tags:\\n - User_administration_and_authentication_Internal API\\n summary: Remove limits from tenant\\n operationId: Clear Tenant Limits\\n parameters:\\n - name: tenant_id\\n in: path\\n description: Tenant ID.\\n required: true\\n schema:\\n type: string\\n responses:\\n '204':\\n description: Limits information deleted.\\n content: {}\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/useradm/tenants/{tenant_id}/plan_binding:\\n get:\\n tags:\\n - User_administration_and_authentication_Internal API\\n summary: Get plan and limits information for given tenant\\n operationId: Show Tenant Plan And Limits\\n parameters:\\n - name: tenant_id\\n in: path\\n description: Tenant ID.\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n description: Successful response - a plan information is returned.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/PlanBindingDetails'\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n put:\\n tags:\\n - User_administration_and_authentication_Internal API\\n summary: Update information about tenant plan and limits\\n operationId: Update Tenant Plan And Limits\\n parameters:\\n - name: tenant_id\\n in: path\\n description: Tenant ID.\\n required: true\\n schema:\\n type: string\\n requestBody:\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/PlanBinding'\\n required: true\\n responses:\\n '204':\\n description: Plan and limits information updated.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/internal/v1/useradm/users/{id}/assign:\\n post:\\n tags:\\n - User_administration_and_authentication_Internal API\\n summary: Assign tenants to a given user\\n operationId: Assign Tenants Internal\\n parameters:\\n - name: id\\n in: path\\n description: User id or email to assign.\\n required: true\\n schema:\\n type: string\\n requestBody:\\n description: tenantIdsData.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/TenantIdsData'\\n required: true\\n responses:\\n '200':\\n description: User assigned.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/management/v1/useradm/auth/login:\\n post:\\n tags:\\n - User_Administration_Management API\\n summary: Log in to Mender\\n description: |\\n Accepts user credentials via standard Basic Auth, and returns a\\n JWT token to be used for authentication in subsequent requests.\\n operationId: Login\\n requestBody:\\n description: Log in options\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/LoginOptions'\\n required: false\\n responses:\\n '200':\\n description: |\\n Authentication successful - a new JWT is issued and returned with content type application/jwt.\\n The JWT is signed with the API's private key ('RS256' signing algorithm), and contains the following standard claims:\\n * 'iss' - issuer\\n * 'exp' - expiry date\\n * 'sub' - unique, autogenerated user ID\\n * 'scp' - 'mender.*', allows access to all APIs/methods.\\n\\n If the login process requires SSO, the content type will be application/json and the body will contain a JSON document containing the following properties:\\n * 'id' - the SSO integration ID\\n * 'kind' - the SSO kind, e.g., 'sso/saml' or 'sso/oidc'\\n\\n Example response: {\\\"id\\\": \\\"1a97b53f-9b84-5048-8874-df01f4f58f78\\\", \\\"kind\\\": \\\"sso/saml\\\"}\\n content:\\n application/jwt:\\n schema:\\n type: string\\n example: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NzYxMTkxMzYsImlzcyI6Ik1lbmRlciIsInN1YiI6Ijg1NGIzMTA5LTQ4NjItNGEyNS1hMWZiLWYxMTE2MWNlN2E4NCIsInNjcCI6WyJtZW5kZXIuKiJdfQ.X7Ief4PhPLlR6mA2wh3G3K0Z2tud0rK1QJesxu52NfICSeARmlujczs-_1YZxMwI0s-HgpXHbXIjaSVK80BjxjAM1rqpRGvgqSqG-dU5KmglDpAaTr4VaJci3VFPlVUVTRpI7bfqNMnKZtjmOUAGwjvroDUwX1RwayEmms-efGI\\n application/json:\\n schema:\\n type: string\\n example: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NzYxMTkxMzYsImlzcyI6Ik1lbmRlciIsInN1YiI6Ijg1NGIzMTA5LTQ4NjItNGEyNS1hMWZiLWYxMTE2MWNlN2E4NCIsInNjcCI6WyJtZW5kZXIuKiJdfQ.X7Ief4PhPLlR6mA2wh3G3K0Z2tud0rK1QJesxu52NfICSeARmlujczs-_1YZxMwI0s-HgpXHbXIjaSVK80BjxjAM1rqpRGvgqSqG-dU5KmglDpAaTr4VaJci3VFPlVUVTRpI7bfqNMnKZtjmOUAGwjvroDUwX1RwayEmms-efGI\\n '400':\\n description: Bad request, see error message for details.\\n content:\\n application/jwt:\\n schema:\\n $ref: '#/components/schemas/Error'\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '401':\\n description: |\\n The user is not authorized. There are two possible scenarios for that:\\n * username/password do not match\\n * token for two factor authentication (if enabled) was not correct\\n content:\\n application/jwt:\\n schema:\\n $ref: '#/components/schemas/Error'\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '403':\\n description: Feature not available in your Plan.\\n content:\\n application/jwt:\\n schema:\\n $ref: '#/components/schemas/Error'\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n description: Internal server error.\\n content:\\n application/jwt:\\n schema:\\n $ref: '#/components/schemas/Error'\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '503':\\n $ref: '#/components/responses/UnavailableError'\\n security:\\n - Login: []\\n /api/management/v1/useradm/auth/magic/{id}:\\n get:\\n tags:\\n - User_Administration_Management API\\n summary: Parses uuid referencing a one-time use, short lived magic token and logs a user in automatically\\n operationId: Login using a magic link\\n parameters:\\n - name: id\\n in: path\\n required: true\\n schema:\\n type: string\\n format: uuid\\n responses:\\n '307':\\n description: |\\n Authentication successful - a new JWT is issued and set as a cookie and\\n a user redirect to the UI is returned.\\n content: {}\\n '401':\\n description: |\\n The user is not authorized. There are two possible scenarios for that:\\n * the user may not have been initialized successfully\\n * the tenant may not have been initialized successfully\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n '503':\\n $ref: '#/components/responses/UnavailableError'\\n /api/management/v1/useradm/auth/sso/{id}/acs:\\n post:\\n tags:\\n - User_Administration_Management API\\n summary: Parses signed and encrypted SAML SSO assertion data\\n operationId: Submit assertion data\\n parameters:\\n - name: id\\n in: path\\n required: true\\n schema:\\n type: string\\n format: uuid\\n requestBody:\\n content:\\n application/x-www-form-urlencoded:\\n schema:\\n required:\\n - SAMLResponse\\n type: object\\n properties:\\n SAMLResponse:\\n type: string\\n description: |\\n Base64 encoded XML assertion data.\\n required: true\\n responses:\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '403':\\n description: |\\n Request forbidden, possibly due to the feature not being available in the current Mender plan.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '415':\\n description: |\\n Endpoint does not support the provided Content-Type.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '422':\\n description: |\\n The metadata has not been uploaded yet.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n '503':\\n $ref: '#/components/responses/UnavailableError'\\n x-mender-plan:\\n - enterprise\\n /api/management/v1/useradm/auth/sso/{id}/login:\\n get:\\n tags:\\n - User_Administration_Management API\\n summary: Sets cookies and redirects to the Identity Provider for login\\n operationId: Login via given Identity Provider\\n parameters:\\n - name: id\\n in: path\\n required: true\\n schema:\\n type: string\\n format: uuid\\n responses:\\n '302':\\n description: |\\n The request body is malformed.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '422':\\n description: |\\n The metadata has not been uploaded yet.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n x-mender-plan:\\n - enterprise\\n /api/management/v1/useradm/auth/logout:\\n post:\\n tags:\\n - User_Administration_Management API\\n summary: Log out from Mender\\n description: |\\n Invalidates the JWT token of the current user.\\n operationId: Logout\\n responses:\\n '202':\\n description: |\\n Request has been accepted and the JWT token has been invalidated.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n '503':\\n $ref: '#/components/responses/UnavailableError'\\n security:\\n - ManagementJWT: []\\n /api/management/v1/useradm/auth/password-reset/start:\\n post:\\n tags:\\n - User_Administration_Management API\\n summary: Initiate a Password Reset request based on the provided email address\\n description: |\\n Starts a Password Reset request, sending an email to the user containing a unique, time-based hash which can be used to reset the password of the user.\\n operationId: Initiate Password Reset Request\\n requestBody:\\n description: |\\n Password Reset request, it includes the email address of the user.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/PasswordResetRequest'\\n required: false\\n responses:\\n '202':\\n description: The request has been accepted.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '429':\\n description: |\\n Too many requests.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/management/v1/useradm/auth/password-reset/complete:\\n post:\\n tags:\\n - User_Administration_Management API\\n summary: Complete a Password Reset request\\n description: |\\n Complete a Password Reset request initiated by the `/auth/password-reset/start` end-point.\\n Caller provides the secret hash received by email, and the new password of the user.\\n operationId: Complete Password Reset Request\\n requestBody:\\n description: |\\n Password Reset request, it includes the secret hash received by email, as well as the new password of the user.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/PasswordResetCompletion'\\n required: false\\n responses:\\n '202':\\n description: The request has been accepted.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/management/v1/useradm/auth/verify-email/start:\\n post:\\n tags:\\n - User_Administration_Management API\\n summary: Initiate an Email Verification request based on the provided email address\\n description: |\\n Starts an Email Verification request, sending an email to the user containing a unique, time-based hash which can be used to verify the email address of the user.\\n operationId: Initiate Email Verification Request\\n requestBody:\\n description: |\\n Email Verification request, it includes the email address of the user.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/EmailVerificationRequest'\\n required: false\\n responses:\\n '202':\\n description: The request has been accepted.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/management/v1/useradm/auth/verify-email/complete:\\n post:\\n tags:\\n - User_Administration_Management API\\n summary: Complete an Email Verification procedure\\n description: |\\n Complete an Email Verification procedure initiated by the `/auth/verify-email/start` end-point.\\n Caller provides the secret hash received by email.\\n operationId: Complete Email Verification\\n requestBody:\\n description: |\\n Email Verification request, it includes the secret hash received by email.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/EmailVerificationCompletion'\\n required: false\\n responses:\\n '204':\\n description: The email address has been verified.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '410':\\n $ref: '#/components/responses/GoneError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/management/v1/useradm/auth/plan-verify:\\n post:\\n tags:\\n - User_Administration_Management API\\n summary: Check if the user has given or superior pricing plan associated\\n description: |\\n Checks if user is in the given plan, or a superior one\\n operationId: Verify Plan\\n parameters:\\n - name: X-Mender-Required-Minimal-Plan\\n in: header\\n description: |\\n Required minimal plan to complete the request\\n required: true\\n schema:\\n type: string\\n - name: X-Mender-Required-Addon\\n in: header\\n description: |\\n Required add-on to complete the request\\n required: true\\n schema:\\n type: string\\n responses:\\n '202':\\n description: The required minimal plan matches the user plan\\n content: {}\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '403':\\n description: The required minimal plan doesn't match the user plan\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - Login: []\\n /api/management/v1/useradm/oauth2/link:\\n post:\\n tags:\\n - User_Administration_Management API\\n summary: Link to an OAuth2.0 provider after authorization with existing user\\n operationId: Link OAuth2.0\\n parameters:\\n - name: oauth_session_id\\n in: cookie\\n description: The session ID for the OAuth2 session.\\n schema:\\n type: string\\n - name: externalID\\n in: cookie\\n description: The login Id from the OAuth2 provider.\\n schema:\\n type: string\\n - name: email\\n in: cookie\\n schema:\\n type: string\\n description: |\\n The user email from the authorized OAuth2 session.\\n - name: provider\\n in: cookie\\n required: true\\n schema:\\n type: string\\n enum:\\n - github\\n - google\\n - microsoft\\n description: |\\n The OAuth2 provider from the authorized OAuth2 session.\\n requestBody:\\n description: Log in options\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/LoginOptions'\\n required: false\\n responses:\\n '200':\\n description: Successful response.\\n content:\\n application/jwt:\\n schema:\\n type: string\\n example: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NzYxMTkxMzYsImlzcyI6Ik1lbmRlciIsInN1YiI6Ijg1NGIzMTA5LTQ4NjItNGEyNS1hMWZiLWYxMTE2MWNlN2E4NCIsInNjcCI6WyJtZW5kZXIuKiJdfQ.X7Ief4PhPLlR6mA2wh3G3K0Z2tud0rK1QJesxu52NfICSeARmlujczs-_1YZxMwI0s-HgpXHbXIjaSVK80BjxjAM1rqpRGvgqSqG-dU5KmglDpAaTr4VaJci3VFPlVUVTRpI7bfqNMnKZtjmOUAGwjvroDUwX1RwayEmms-efGI\\n '401':\\n description: |\\n The user is not authorized.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n x-mender-plan: []\\n security:\\n - Login: []\\n /api/management/v1/useradm/oauth2/{provider}:\\n get:\\n tags:\\n - User_Administration_Management API\\n summary: Sign in using OAuth2.0\\n operationId: Login OAuth2.0\\n parameters:\\n - name: provider\\n in: path\\n description: Provider ID\\n required: true\\n schema:\\n type: string\\n enum:\\n - github\\n - google\\n - microsoft\\n responses:\\n '302':\\n description: Redirection to the OAuth 2.0 provider's login page\\n content: {}\\n '404':\\n description: The required OAuth 2.0 provider is not available.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n x-mender-plan: []\\n /api/management/v1/useradm/users:\\n get:\\n tags:\\n - User_Administration_Management API\\n summary: |\\n List all users registered under the tenant owning the JWT.\\n operationId: List Users Management\\n parameters:\\n - name: id\\n in: query\\n description: |\\n Limit result by user ID, can be repeated to include multiple users in the query.\\n schema:\\n type: string\\n - name: email\\n in: query\\n description: |\\n Limit result by user email, can be repeated to include multiple users in the query.\\n schema:\\n type: string\\n - name: created_after\\n in: query\\n description: |\\n Filter users created after timestamp (UNIX timestamp).\\n schema:\\n type: integer\\n - name: created_before\\n in: query\\n description: |\\n Filter users created before timestamp (UNIX timestamp).\\n schema:\\n type: integer\\n - name: updated_after\\n in: query\\n description: |\\n Filter users updated after timestamp (UNIX timestamp).\\n schema:\\n type: integer\\n - name: updated_before\\n in: query\\n description: |\\n Filter users updated before timestamp (UNIX timestamp).\\n schema:\\n type: integer\\n responses:\\n '200':\\n description: Successful response.\\n content:\\n application/json:\\n schema:\\n title: ListOfUsers\\n type: array\\n items:\\n $ref: '#/components/schemas/User'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n post:\\n tags:\\n - User_Administration_Management API\\n summary: |\\n Create a new user under the tenant owning the JWT.\\n deprecated: true\\n x-deprecated-description: |\\n _since Fri Aug 21 2026_ this endpoint is deprecated. Please use\\n POST /api/management/v2/useradm/users instead. Unlike this v1 endpoint,\\n the v2 endpoint does not accept the `password` or `send_reset_password`\\n fields; the new user is always sent an invitation email to set their own\\n password.\\n operationId: Create User Management\\n requestBody:\\n description: New user data.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/UserNew'\\n required: true\\n responses:\\n '201':\\n description: The user was successfully created.\\n headers:\\n Location:\\n description: URI for the newly created 'User' resource.\\n schema:\\n type: string\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '422':\\n description: |\\n The email address is duplicated, password is too short, current password doesn't match or limit on maximum number of users has been exceeded.\\n It is possible that the user with the given email address exists\\n in a different organization. In this case Mender server will\\n also produce an error because the email address has to be unique\\n across all organizations.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v1/useradm/users/exists:\\n get:\\n tags:\\n - User_Administration_Management API\\n summary: |\\n Verify if a user with a given email address exists.\\n This endpoint requires the ManageTenants RBAC permission set.\\n operationId: Check User Existence\\n parameters:\\n - name: email\\n in: query\\n description: Email address to check.\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n description: Successful response - returns a JSON containing a boolean 'exists'.\\n content:\\n application/json:\\n schema:\\n type: object\\n properties:\\n exists:\\n type: boolean\\n description: True if the user exists.\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '403':\\n description: Forbidden.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v1/useradm/users/{id}:\\n get:\\n tags:\\n - User_Administration_Management API\\n summary: Get user information\\n operationId: Show User\\n parameters:\\n - name: id\\n in: path\\n description: User id.\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n description: Successful response - a user information is returned.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/User'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n put:\\n tags:\\n - User_Administration_Management API\\n summary: Update user information\\n operationId: Update User\\n parameters:\\n - name: id\\n in: path\\n description: User id.\\n required: true\\n schema:\\n type: string\\n requestBody:\\n description: Updated user data.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/UserUpdate'\\n required: true\\n responses:\\n '204':\\n description: User information updated.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '422':\\n description: |\\n The email address is duplicated, the password is too short\\n or the user is trying to modify another user's password.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n delete:\\n tags:\\n - User_Administration_Management API\\n summary: Remove user from the system\\n operationId: Remove User\\n parameters:\\n - name: id\\n in: path\\n description: User id.\\n required: true\\n schema:\\n type: string\\n responses:\\n '204':\\n description: User removed.\\n content: {}\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v1/useradm/users/me:\\n get:\\n tags:\\n - User_Administration_Management API\\n summary: Get user information\\n operationId: Show Own User Data\\n responses:\\n '200':\\n description: Successful response - a user information is returned.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/UserWithTenantInfo'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n put:\\n tags:\\n - User_Administration_Management API\\n summary: Update own user information\\n deprecated: true\\n x-deprecated-description: |\\n _since Thu Jul 24 2026_ this endpoint is deprecated. Please use\\n PUT /api/management/v2/useradm/users/me instead. Unlike this v1 endpoint,\\n the v2 endpoint does not accept the `email` field and only updates the\\n password (together with `current_password`). To change the account's email\\n address, use /api/management/v1/useradm/users/me/email-change/start instead.\\n operationId: Update Own User Data\\n requestBody:\\n description: Updated user data.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/OwnUserUpdate'\\n required: true\\n responses:\\n '204':\\n description: User information updated.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '422':\\n description: |\\n The email address is duplicated or the password is too short.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v1/useradm/users/me/email-change/pending:\\n get:\\n tags:\\n - User_Administration_Management API\\n summary: Get Pending Email Change Request\\n operationId: Get Pending Email Change Request\\n responses:\\n '200':\\n description: A pending email change request exists for the current user.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/PendingEmailChange'\\n '204':\\n description: No pending email change request exists.\\n content: {}\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v1/useradm/users/me/email-change/start:\\n post:\\n tags:\\n - User_Administration_Management API\\n summary: Initiate Email Change Request\\n operationId: Initiate Email Change Request\\n requestBody:\\n description: Updated user data.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/EmailUpdateRequest'\\n required: true\\n responses:\\n '202':\\n description: The request has been accepted\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '409':\\n description: |\\n An email change request for the user already exist.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '422':\\n description: |\\n The request data was structurally valid but failed business rules.\\n See the response body for specific validation errors.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v1/useradm/users/me/email-change/complete:\\n post:\\n tags:\\n - User_Administration_Management API\\n summary: Complete Email Change\\n operationId: Complete Email Change\\n description: |\\n Complete an email change request initiated by the `/users/me/email-change/start` end-point.\\n Caller provides the secret hash sent to the user's new email.\\n requestBody:\\n description: The secret hash required to verify and complete the email change.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/EmailChangeCompletion'\\n required: true\\n responses:\\n '204':\\n description: The email has been successfully updated and verified.\\n content: {}\\n '400':\\n description: |\\n The secret hash was invalid, not found, or has expired.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '409':\\n description: |\\n The request could not be completed due to a conflict with the current state of the resource.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/management/v1/useradm/users/me/email-change/cancel:\\n post:\\n tags:\\n - User_Administration_Management API\\n summary: Cancel Email Change Request\\n operationId: Cancel Email Change Request\\n responses:\\n '204':\\n description: The pending email change request has been successfully cancelled.\\n content: {}\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v1/useradm/users/{id}/2fa/enable:\\n post:\\n tags:\\n - User_Administration_Management API\\n summary: Enable 2FA authentication\\n operationId: Enable 2FA\\n parameters:\\n - name: id\\n in: path\\n description: User id (use 'me' for authenticated user).\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n description: 2FA is enabled.\\n content: {}\\n '400':\\n description: |\\n Operation is invalid, see error message.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '403':\\n description: Forbidden.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '404':\\n description: The user was not found.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n x-mender-plan:\\n - enterprise\\n /api/management/v1/useradm/users/{id}/2fa/disable:\\n post:\\n tags:\\n - User_Administration_Management API\\n summary: Disable 2FA authentication\\n operationId: Disable 2FA\\n parameters:\\n - name: id\\n in: path\\n description: User id (use 'me' for authenticated user).\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n description: 2FA is disabled.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '403':\\n description: Forbidden.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '404':\\n description: The user was not found.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n x-mender-plan:\\n - enterprise\\n /api/management/v1/useradm/users/{id}/assign:\\n post:\\n tags:\\n - User_Administration_Management API\\n summary: Assign tenants to a given user\\n operationId: Assign Tenants\\n parameters:\\n - name: id\\n in: path\\n description: User id or email to assign.\\n required: true\\n schema:\\n type: string\\n requestBody:\\n description: tenantIdsData.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/TenantIdsData'\\n required: true\\n responses:\\n '200':\\n description: User assigned.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '403':\\n description: Forbidden.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '404':\\n description: The user was not found.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n x-mender-plan:\\n - enterprise\\n /api/management/v1/useradm/roles:\\n get:\\n tags:\\n - User_Administration_Management API\\n summary: List existing roles\\n deprecated: true\\n description: |\\n List Roles\\n x-deprecated-description: |\\n _since Tue Mar 15 2022_ this endpoint is deprecated. Please use\\n /api/management/v2/useradm/roles together with\\n /api/management/v2/useradm/permission_sets instead.\\n operationId: List Roles v1\\n responses:\\n '200':\\n description: Successful response.\\n content:\\n application/json:\\n schema:\\n title: ListOfRoles\\n type: array\\n items:\\n $ref: '#/components/schemas/RoleV1'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n x-mender-plan:\\n - enterprise\\n post:\\n tags:\\n - User_Administration_Management API\\n summary: Create role\\n deprecated: true\\n description: |\\n Create Role\\n x-deprecated-description: |\\n _since Tue Mar 15 2022_ this endpoint is deprecated. Please use\\n /api/management/v2/useradm/roles together with\\n /api/management/v2/useradm/permission_sets instead.\\n operationId: Create Role v1\\n requestBody:\\n description: New role data.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/RoleV1'\\n required: true\\n responses:\\n '201':\\n description: The role was successfully created.\\n headers:\\n Location:\\n description: URI for the newly created 'Role' resource.\\n schema:\\n type: string\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n x-mender-plan:\\n - enterprise\\n /api/management/v1/useradm/roles/{id}:\\n get:\\n tags:\\n - User_Administration_Management API\\n summary: Get role information\\n deprecated: true\\n description: |\\n Returns role information.\\n x-deprecated-description: |\\n _since Tue Mar 15 2022_ this endpoint is deprecated. Please use\\n /api/management/v2/useradm/roles/{id} together with\\n /api/management/v2/useradm/permission_sets/{id} instead.\\n operationId: Show Role v1\\n parameters:\\n - name: id\\n in: path\\n description: Role id.\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n description: Successful response - a role information is returned.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/RoleV1'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '404':\\n description: The role was not found.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n x-mender-plan:\\n - enterprise\\n put:\\n tags:\\n - User_Administration_Management API\\n summary: Update role description and list of permissions.\\n deprecated: true\\n description: |\\n Update Role\\n x-deprecated-description: |\\n _since Tue Mar 15 2022_ this endpoint is deprecated. Please use\\n /api/management/v2/useradm/roles/{id} together with\\n /api/management/v2/useradm/permission_sets/{id} instead.\\n operationId: Update Role v1\\n parameters:\\n - name: id\\n in: path\\n description: Role id.\\n required: true\\n schema:\\n type: string\\n requestBody:\\n description: Updated role data.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/RoleV1'\\n required: true\\n responses:\\n '202':\\n description: Role information updated.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '404':\\n description: |\\n The role does not exist.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n x-mender-plan:\\n - enterprise\\n delete:\\n tags:\\n - User_Administration_Management API\\n summary: Remove role from the system\\n deprecated: true\\n description: |\\n Delete Role\\n x-deprecated-description: |\\n _since Tue Mar 15 2022_ this endpoint is deprecated. Please use\\n /api/management/v2/useradm/roles/{id} together with\\n /api/management/v2/useradm/permission_sets/{id} instead.\\n operationId: Delete Role v1\\n parameters:\\n - name: id\\n in: path\\n description: Role id.\\n required: true\\n schema:\\n type: string\\n responses:\\n '204':\\n description: Role removed.\\n content: {}\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n x-mender-plan:\\n - enterprise\\n /api/management/v1/useradm/settings:\\n get:\\n tags:\\n - User_Administration_Management API\\n summary: Get global user settings\\n operationId: Show User Settings\\n responses:\\n '200':\\n description: Successful response - a user information is returned.\\n headers:\\n ETag:\\n description: |\\n Contains the device object's current ETag.\\n schema:\\n type: string\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Settings'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n post:\\n tags:\\n - User_Administration_Management API\\n summary: Set global user settings\\n description: |\\n Create global user settings or replace existing settings with provided object.\\n operationId: Update User Settings\\n parameters:\\n - name: If-Match\\n in: header\\n description: Contains the settings' current ETag, and performs the update only if it matches the one stored in the database.\\n schema:\\n type: string\\n requestBody:\\n description: New user settings.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Settings'\\n required: true\\n responses:\\n '201':\\n description: User settings set.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '403':\\n description: |\\n The user has no access to authentication settings because of unverified email address.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '412':\\n description: ETag doesn't match.\\n content: {}\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v1/useradm/settings/me:\\n get:\\n tags:\\n - User_Administration_Management API\\n summary: Get user settings for the current user\\n operationId: Show My User Settings\\n responses:\\n '200':\\n description: Successful response - a user information is returned.\\n headers:\\n ETag:\\n description: |\\n Contains the device object's current ETag.\\n schema:\\n type: string\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Settings'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n post:\\n tags:\\n - User_Administration_Management API\\n summary: Set user settings for the current user\\n description: |\\n Create current user settings or replace existing settings with provided object.\\n operationId: Update My User Settings\\n parameters:\\n - name: If-Match\\n in: header\\n description: Contains the settings' current ETag, and performs the update only if it matches the one stored in the database.\\n schema:\\n type: string\\n requestBody:\\n description: New user settings.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Settings'\\n required: true\\n responses:\\n '201':\\n description: User settings set.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '412':\\n description: ETag doesn't match.\\n content: {}\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v1/useradm/2faqr:\\n get:\\n tags:\\n - User_Administration_Management API\\n summary: Get 2FA QR code\\n operationId: Get 2FA QR code\\n security:\\n - ManagementJWT: []\\n responses:\\n '200':\\n description: Successful response - a user information is returned.\\n content:\\n application/json:\\n schema:\\n type: object\\n properties:\\n qr:\\n type: string\\n description: The content of the QR code.\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/management/v1/useradm/2faverify:\\n put:\\n tags:\\n - User_Administration_Management API\\n summary: Verify the 2FA token\\n operationId: Verify the 2FA token\\n security:\\n - ManagementJWT: []\\n requestBody:\\n description: The token\\n content:\\n application/json:\\n schema:\\n type: object\\n properties:\\n token2fa:\\n type: string\\n description: The 2FA token to verify.\\n required: true\\n responses:\\n '202':\\n description: Successful response - the verification was successful.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n description: The verification failed.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n /api/management/v1/useradm/settings/tokens:\\n get:\\n tags:\\n - User_Administration_Management API\\n summary: Get user Personal Access Tokens\\n operationId: List User Personal Access Tokens\\n responses:\\n '200':\\n description: Endpoint returns a list of tokens.\\n content:\\n application/json:\\n schema:\\n title: ListOfTokens\\n type: array\\n items:\\n $ref: '#/components/schemas/PersonalAccessToken'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n post:\\n tags:\\n - User_Administration_Management API\\n summary: Create new Personal Access Token\\n description: |\\n Create new Personal Access Token with given name and expiration.\\n operationId: Create Personal Access Token\\n requestBody:\\n description: The token object.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/PersonalAccessTokenRequest'\\n required: true\\n responses:\\n '200':\\n description: Token has been created.\\n content:\\n application/json:\\n schema:\\n type: string\\n example: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NzYxMTkxMzYsImlzcyI6Ik1lbmRlciIsInN1YiI6Ijg1NGIzMTA5LTQ4NjItNGEyNS1hMWZiLWYxMTE2MWNlN2E4NCIsInNjcCI6WyJtZW5kZXIuKiJdfQ.X7Ief4PhPLlR6mA2wh3G3K0Z2tud0rK1QJesxu52NfICSeARmlujczs-_1YZxMwI0s-HgpXHbXIjaSVK80BjxjAM1rqpRGvgqSqG-dU5KmglDpAaTr4VaJci3VFPlVUVTRpI7bfqNMnKZtjmOUAGwjvroDUwX1RwayEmms-efGI\\n '400':\\n description: |\\n The request body is malformed or expiration time is too big.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '409':\\n description: |\\n Personal Access Token with the same name already exists.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '422':\\n description: |\\n Maximum number of Personal Access Tokens reached for this user.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v1/useradm/settings/tokens/{id}:\\n delete:\\n tags:\\n - User_Administration_Management API\\n summary: Revoke Personal Access Token\\n operationId: Revoke Personal Access Token\\n parameters:\\n - name: id\\n in: path\\n description: Token identifier.\\n required: true\\n schema:\\n type: string\\n responses:\\n '204':\\n description: Token removed.\\n content: {}\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v1/useradm/sso/idp/metadata/{id}:\\n get:\\n tags:\\n - User_Administration_Management API\\n summary: Get Identity Provider Metadata for the given id\\n operationId: Get IDP SAML or OpenID Connect Metadata for the tenant\\n parameters:\\n - name: id\\n in: path\\n required: true\\n schema:\\n type: string\\n format: uuid\\n responses:\\n '200':\\n description: Identity Provider Metadata retrieved successfully.\\n content:\\n application/json:\\n schema:\\n title: IdentityProviderMetadata\\n type: string\\n '403':\\n description: |\\n Request forbidden, possibly due to feature not being available in current Mender plan.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '404':\\n description: |\\n There is nothing to return under the given id\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n x-mender-plan:\\n - enterprise\\n put:\\n tags:\\n - User_Administration_Management API\\n summary: Update SAML Metadata\\n operationId: Update SAML Metadata\\n parameters:\\n - name: id\\n in: path\\n required: true\\n schema:\\n type: string\\n format: uuid\\n requestBody:\\n content:\\n application/samlmetadata+xml:\\n schema:\\n type: string\\n required: true\\n responses:\\n '204':\\n description: SAML Metadata updated successfully.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '403':\\n description: |\\n Request forbidden, possibly due to feature not being available in current Mender plan or read-only permission.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '404':\\n description: |\\n Given id was not associated with any Metadata object.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '415':\\n description: |\\n Endpoint does not support the Content-Type provided.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n x-mender-plan:\\n - enterprise\\n delete:\\n tags:\\n - User_Administration_Management API\\n summary: Delete SAML or OpenID Connect Metadata\\n operationId: Delete SAML or OpenID Connect Metadata\\n parameters:\\n - name: id\\n in: path\\n required: true\\n schema:\\n type: string\\n format: uuid\\n responses:\\n '204':\\n description: Request to delete the metadata was accepted\\n content: {}\\n '403':\\n description: |\\n Request forbidden, possibly due to feature not being available in current Mender plan or read-only permission.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '404':\\n description: |\\n Metadata with the given id was not found.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n x-mender-plan:\\n - enterprise\\n /api/management/v1/useradm/sso/idp/metadata:\\n get:\\n tags:\\n - User_Administration_Management API\\n summary: Get an array of SAML or OpenID Connect Metadata for the tenant\\n operationId: Get SAML or OpenID Connect Metadata for the tenant\\n responses:\\n '200':\\n description: SAML or OpenID Connect Metadata retrieved successfully.\\n content:\\n application/json:\\n schema:\\n title: ListOfMetadata\\n type: array\\n items:\\n $ref: '#/components/schemas/SAMLMetadata'\\n '403':\\n description: |\\n Request forbidden, possibly due to feature not being available in current Mender plan.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n x-mender-plan:\\n - enterprise\\n post:\\n tags:\\n - User_Administration_Management API\\n summary: Store SAML or OpenID Connect Metadata.\\n description: |\\n In both cases (SAML and OpenID Connect) we support the passing of the metadata URL\\n which we will automatically query (via GET) and parse the response.\\n Please note that in the case of OpenID Connect you have to pass the url via\\n \\\"well-known\\\" field in json request, and in case of SAML you need to use xml\\n element: \\\"IdentityProviderUrl\\\", for instance:\\n \\\"<IdentityProviderUrl>https://samltest.id/saml/idp</IdentityProviderUrl>\\\".\\n operationId: Post SAML, OpenID Connect Metadata, or URL point to them\\n requestBody:\\n content:\\n application/samlmetadata+xml:\\n schema:\\n type: string\\n application/json:\\n schema:\\n type: string\\n required: true\\n responses:\\n '201':\\n description: SAML or OpenID Connect Metadata stored successfully.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '403':\\n description: |\\n Request forbidden, possibly due to feature not being available in current Mender plan.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '409':\\n description: |\\n The tenant is managed by a Service Provider and the configuration cannot be changed.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '413':\\n description: |\\n Entity was too large to process.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '415':\\n description: |\\n Endpoint does not support the Content-Type provided.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n x-mender-plan:\\n - enterprise\\n /api/management/v1/useradm/sso/sp/metadata/{id}:\\n get:\\n tags:\\n - User_Administration_Management API\\n summary: Get Service Provider Metadata for the given id\\n operationId: Get Service Provider Metadata by id\\n parameters:\\n - name: id\\n in: path\\n required: true\\n schema:\\n type: string\\n format: uuid\\n responses:\\n '200':\\n description: Service Provider Metadata retrieved successfully.\\n content:\\n application/json:\\n schema:\\n title: ServiceProviderMetadata\\n type: string\\n '204':\\n description: SAML or OpenID Connect Metadata was empty.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '403':\\n description: |\\n Request forbidden, possibly due to feature not being available in current Mender plan.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n x-mender-plan:\\n - enterprise\\n /api/management/v1/useradm/limits:\\n get:\\n tags:\\n - User_Administration_Management API\\n summary: Obtain information about limits.\\n operationId: Get Tenant Limits\\n responses:\\n '200':\\n description: Usage statistics and limits.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Limits'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v1/useradm/plans:\\n get:\\n tags:\\n - User_Administration_Management API\\n summary: Get list of available plans\\n operationId: List Plans\\n parameters:\\n - name: page\\n in: query\\n description: Starting page.\\n schema:\\n type: integer\\n default: 1\\n - name: per_page\\n in: query\\n description: Maximum number of results per page.\\n schema:\\n maximum: 500\\n type: integer\\n default: 20\\n responses:\\n '200':\\n description: Successful response - list of plans is returned.\\n content:\\n application/json:\\n schema:\\n type: array\\n items:\\n $ref: '#/components/schemas/Plan'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v1/useradm/plan_binding:\\n get:\\n tags:\\n - User_Administration_Management API\\n summary: Get plan and limits information for current tenant\\n operationId: Show Plan And Limits\\n responses:\\n '200':\\n description: Successful response - a plan information is returned.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/PlanBindingDetails'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v1/useradm/users/tenants/{id}/token:\\n get:\\n tags:\\n - User_Administration_Management API\\n summary: Issue a new JWT Token for the given tenant\\n description: |\\n Issue new JWT Token for given name and expiration.\\n operationId: Issue Token\\n parameters:\\n - name: id\\n in: path\\n description: Tenant identifier.\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n description: Token has been created and returned.\\n content:\\n application/json:\\n schema:\\n type: string\\n example: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NzYxMTkxMzYsImlzcyI6Ik1lbmRlciIsInN1YiI6Ijg1NGIzMTA5LTQ4NjItNGEyNS1hMWZiLWYxMTE2MWNlN2E4NCIsInNjcCI6WyJtZW5kZXIuKiJdfQ.X7Ief4PhPLlR6mA2wh3G3K0Z2tud0rK1QJesxu52NfICSeARmlujczs-_1YZxMwI0s-HgpXHbXIjaSVK80BjxjAM1rqpRGvgqSqG-dU5KmglDpAaTr4VaJci3VFPlVUVTRpI7bfqNMnKZtjmOUAGwjvroAwX1RwayEmms-efGI\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n '503':\\n $ref: '#/components/responses/UnavailableError'\\n security:\\n - ManagementJWT: []\\n /api/management/v2/useradm/users:\\n post:\\n tags:\\n - User_Administration_v2_Management API\\n summary: |\\n Create a new user under the tenant owning the JWT.\\n operationId: Create User Management V2\\n requestBody:\\n description: New user data.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/UserNewV2'\\n required: true\\n responses:\\n '201':\\n description: The user was successfully created.\\n headers:\\n Location:\\n description: URI for the newly created 'User' resource.\\n schema:\\n type: string\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '422':\\n description: |\\n The request data was structurally valid but failed business rules.\\n See the response body for specific validation errors.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v2/useradm/roles:\\n get:\\n tags:\\n - User_Administration_v2_Management API\\n summary: List existing roles\\n operationId: List Roles\\n parameters:\\n - name: page\\n in: query\\n description: Results page number\\n schema:\\n type: integer\\n default: 1\\n - name: per_page\\n in: query\\n description: Maximum number of results per page.\\n schema:\\n maximum: 500\\n type: integer\\n default: 20\\n responses:\\n '200':\\n description: Successful response.\\n content:\\n application/json:\\n schema:\\n title: ListOfRoles\\n type: array\\n items:\\n $ref: '#/components/schemas/Role'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n x-mender-plan:\\n - enterprise\\n post:\\n tags:\\n - User_Administration_v2_Management API\\n summary: Create role\\n operationId: Create Role\\n requestBody:\\n description: New role data.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Role'\\n required: true\\n responses:\\n '201':\\n description: The role was successfully created.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '409':\\n description: |\\n The role with the same name already exists.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n x-mender-plan:\\n - enterprise\\n /api/management/v2/useradm/roles/{id}:\\n get:\\n tags:\\n - User_Administration_v2_Management API\\n summary: Get role information\\n description: |\\n Returns role information.\\n operationId: Show Role\\n parameters:\\n - name: id\\n in: path\\n description: Role id.\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n description: Successful response - a role information is returned.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Role'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n x-mender-plan:\\n - enterprise\\n put:\\n tags:\\n - User_Administration_v2_Management API\\n summary: Update role description and list of permissions.\\n operationId: Update Role\\n parameters:\\n - name: id\\n in: path\\n description: Role id.\\n required: true\\n schema:\\n type: string\\n requestBody:\\n description: Updated role data.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Role'\\n required: true\\n responses:\\n '200':\\n description: Role information updated.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '404':\\n description: |\\n The role does not exist.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n x-mender-plan:\\n - enterprise\\n delete:\\n tags:\\n - User_Administration_v2_Management API\\n summary: Remove role from the system\\n operationId: Delete Role\\n parameters:\\n - name: id\\n in: path\\n description: Role id.\\n required: true\\n schema:\\n type: string\\n responses:\\n '204':\\n description: Role removed.\\n content: {}\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n x-mender-plan:\\n - enterprise\\n /api/management/v2/useradm/permission_sets:\\n get:\\n tags:\\n - User_Administration_v2_Management API\\n summary: List existing permission sets\\n operationId: List Permission Sets\\n parameters:\\n - name: page\\n in: query\\n description: Results page number\\n schema:\\n type: integer\\n default: 1\\n - name: per_page\\n in: query\\n description: Maximum number of results per page.\\n schema:\\n maximum: 500\\n type: integer\\n default: 20\\n responses:\\n '200':\\n description: Successful response.\\n content:\\n application/json:\\n schema:\\n title: ListOfPermissionSets\\n type: array\\n items:\\n $ref: '#/components/schemas/PermissionSet'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n x-mender-plan:\\n - enterprise\\n post:\\n tags:\\n - User_Administration_v2_Management API\\n summary: Create permission set.\\n operationId: Create Permission Set\\n requestBody:\\n description: New permission set data.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/PermissionSet'\\n required: true\\n responses:\\n '201':\\n description: The permission set was successfully created.\\n content: {}\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '409':\\n description: The permission set with the same name already exists..\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n x-mender-plan:\\n - enterprise\\n /api/management/v2/useradm/permission_sets/{id}:\\n get:\\n tags:\\n - User_Administration_v2_Management API\\n summary: Get permission set information\\n description: |\\n Returns permission set information.\\n operationId: Get Permission Set\\n parameters:\\n - name: id\\n in: path\\n description: Permission set id.\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n description: Successful response - a permission set information is returned.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/PermissionSet'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n x-mender-plan:\\n - enterprise\\n put:\\n tags:\\n - User_Administration_v2_Management API\\n summary: Update permission set.\\n operationId: Update Permission Set\\n parameters:\\n - name: id\\n in: path\\n description: Permission set id.\\n required: true\\n schema:\\n type: string\\n requestBody:\\n description: Updated permission set data.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/PermissionSet'\\n required: true\\n responses:\\n '200':\\n description: Permission Set information updated.\\n content: {}\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '404':\\n description: The permission set was not found.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n x-mender-plan:\\n - enterprise\\n delete:\\n tags:\\n - User_Administration_v2_Management API\\n summary: Remove permission set from the system\\n operationId: Delete Permission Set\\n parameters:\\n - name: id\\n in: path\\n description: Permission set id.\\n required: true\\n schema:\\n type: string\\n responses:\\n '204':\\n description: Permission set removed.\\n content: {}\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n x-mender-plan:\\n - enterprise\\n /api/management/v2/useradm/support/feedback/{form_id}:\\n post:\\n tags:\\n - User_Administration_v2_Management API\\n summary: Submit user feedback form\\n operationId: User feedback\\n parameters:\\n - name: form_id\\n in: path\\n description: The form identifier\\n required: true\\n schema:\\n type: string\\n enum:\\n - product\\n - feat.ai\\n requestBody:\\n description: |\\n User feedback form.\\n content:\\n application/json:\\n schema:\\n oneOf:\\n - $ref: '#/components/schemas/FeedbackProduct'\\n - $ref: '#/components/schemas/FeedbackAI'\\n application/x-www-form-urlencoded:\\n schema:\\n oneOf:\\n - $ref: '#/components/schemas/FeedbackProduct'\\n - $ref: '#/components/schemas/FeedbackAI'\\n required: true\\n responses:\\n '204':\\n description: Response recorded\\n content: {}\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '409':\\n description: Response already recorded\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /api/management/v2/useradm/users/me:\\n put:\\n tags:\\n - User_Administration_v2_Management API\\n summary: Update own user information\\n operationId: Useradm V2 Update Own User Data\\n requestBody:\\n description: Updated user data.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/OwnUserUpdateV2'\\n required: true\\n responses:\\n '204':\\n description: User information updated.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '401':\\n $ref: '#/components/responses/UnauthorizedError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n '422':\\n description: |\\n The request data was structurally valid but failed business rules.\\n See the response body for specific validation errors.\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n security:\\n - ManagementJWT: []\\n /status:\\n get:\\n summary: Check if service API is alive and serving requests\\n operationId: Workflows Check Liveliness\\n responses:\\n '200':\\n description: Successful response.\\n content:\\n application/json:\\n schema:\\n type: object\\n properties:\\n status:\\n type: string\\n example:\\n status: ok\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n tags:\\n - Workflows_other\\n /api/v1/health:\\n get:\\n summary: Check if service and all operational dependencies are healthy.\\n operationId: Workflows Check Health\\n responses:\\n '204':\\n description: Service is healthy.\\n content: {}\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n '502':\\n description: Service is temporarily unavailable (currently unhealthy).\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n tags:\\n - Workflows_other\\n /api/v1/tenants/{id}:\\n delete:\\n summary: Delete all the data belonging to a given tenant\\n description: |\\n Removes all the jobs that have the given tenant id in input parameters.\\n operationId: Delete tenant data internal workflows\\n parameters:\\n - name: id\\n in: path\\n description: Tenant id to remove.\\n required: true\\n schema:\\n type: string\\n responses:\\n '204':\\n description: Tenant data removed\\n '500':\\n $ref: '#/components/responses/InternalServerError'\\n tags:\\n - Workflows_other\\n /api/v1/workflow/{name}:\\n post:\\n summary: Start a new workflow\\n description: |\\n Starts a new workflow given by the name path-parameter.\\n operationId: Start Workflow\\n parameters:\\n - name: name\\n in: path\\n description: Workflow identifier.\\n required: true\\n schema:\\n type: string\\n requestBody:\\n description: Contains the definition of the job to be started.\\n content:\\n application/json:\\n schema:\\n type: object\\n additionalProperties: true\\n required: true\\n responses:\\n '201':\\n description: Workflow created successfully\\n content:\\n application/json:\\n schema:\\n type: object\\n properties:\\n id:\\n type: string\\n name:\\n type: string\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n tags:\\n - Workflows_other\\n /api/v1/workflow/{name}/batch:\\n post:\\n summary: Start a batch of workflows\\n description: |\\n Starts a new workflow given by the name path-parameter.\\n operationId: Start Batch Workflows\\n parameters:\\n - name: name\\n in: path\\n description: Workflow identifier.\\n required: true\\n schema:\\n type: string\\n requestBody:\\n description: Contains the definition of the job to be started.\\n required: true\\n content:\\n application/json:\\n schema:\\n type: array\\n items:\\n type: object\\n additionalProperties: {}\\n responses:\\n '201':\\n description: Workflows created successfully\\n content:\\n application/json:\\n schema:\\n type: array\\n items:\\n type: object\\n properties:\\n id:\\n type: string\\n name:\\n type: string\\n error:\\n type: string\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n tags:\\n - Workflows_other\\n /api/v1/metadata/workflows:\\n get:\\n summary: Get all workflow definitions\\n operationId: List Workflows\\n responses:\\n '200':\\n description: Successful response\\n content:\\n application/json:\\n schema:\\n type: array\\n items:\\n $ref: '#/components/schemas/Workflow'\\n tags:\\n - Workflows_other\\n post:\\n summary: Register a new workflow\\n operationId: Register Workflow\\n requestBody:\\n description: Workflow definition.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Workflow'\\n required: true\\n responses:\\n '201':\\n description: Successful response.\\n content: {}\\n '400':\\n $ref: '#/components/responses/InvalidRequestError'\\n '409':\\n $ref: '#/components/responses/ConflictError'\\n tags:\\n - Workflows_other\\n /api/v1/jobs/{id}:\\n get:\\n summary: Gets the job for the given id.\\n description: |\\n Gets the job object for the given job id.\\n operationId: Job Structure\\n parameters:\\n - name: id\\n in: path\\n description: Job identifier\\n required: true\\n schema:\\n type: string\\n responses:\\n '200':\\n description: Successful query\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/JobObject'\\n '404':\\n $ref: '#/components/responses/NotFound'\\n tags:\\n - Workflows_other\\ncomponents:\\n responses:\\n InternalServerError:\\n description: Internal Server Error.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n NotFound:\\n description: Not Found.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n InvalidRequestError:\\n description: Invalid Request.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n ConflictError:\\n description: Conflict.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n UnauthorizedError:\\n description: Unauthorized.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n ForbiddenError:\\n description: The user is not permitted to access the resource.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n example:\\n error: Forbidden\\n request_id: eed14d55-d996-42cd-8248-e806663810a8\\n UnavailableError:\\n description: Service is unavailable.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n example:\\n error: service unavailable\\n request_id: eed14d55-d996-42cd-8248-e806663810a8\\n GoneError:\\n description: The resource is no longer available.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n PaymentRequiredError:\\n description: The resource requires a paid plan.\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n TooManyRequestsError:\\n description: Client has made too many requests.\\n headers:\\n Retry-After:\\n description: Number of seconds until the client may retry.\\n schema:\\n type: integer\\n content:\\n application/json:\\n schema:\\n $ref: '#/components/schemas/Error'\\n schemas:\\n Error:\\n description: Error descriptor.\\n example:\\n error: error message\\n request_id: f7881e82-0492-49fb-b459-795654e7188a\\n properties:\\n error:\\n description: Description of the error.\\n type: string\\n request_id:\\n description: Request ID (same as in X-MEN-RequestID header).\\n type: string\\n required:\\n - error\\n type: object\\n ArtifactLink:\\n description: URL for artifact file download.\\n example:\\n uri: http://mender.io/artifact.tar.gz.mender\\n expire: '2016-10-29T10:45:34Z'\\n properties:\\n uri:\\n type: string\\n expire:\\n format: date-time\\n type: string\\n required:\\n - expire\\n - uri\\n type: object\\n JobStatus:\\n example:\\n workflowName: workflowName\\n id: id\\n inputParameters:\\n - name: key\\n value: parameter\\n - name: key\\n value: parameter\\n results:\\n - cli:\\n output: output\\n exitCode: 0\\n error: error\\n command:\\n - command\\n - command\\n request:\\n body: body\\n statusCode: 6\\n response:\\n headers:\\n - headers\\n - headers\\n method: method\\n body: body\\n uri: uri\\n - cli:\\n output: output\\n exitCode: 0\\n error: error\\n command:\\n - command\\n - command\\n request:\\n body: body\\n statusCode: 6\\n response:\\n headers:\\n - headers\\n - headers\\n method: method\\n body: body\\n uri: uri\\n status: status\\n properties:\\n id:\\n type: string\\n workflowName:\\n type: string\\n inputParameters:\\n items:\\n $ref: '#/components/schemas/InputParameter'\\n type: array\\n status:\\n type: string\\n results:\\n items:\\n $ref: '#/components/schemas/TaskResult'\\n type: array\\n type: object\\n InputParameter:\\n example:\\n name: key\\n value: parameter\\n properties:\\n name:\\n type: string\\n value:\\n type: string\\n required:\\n - name\\n - value\\n type: object\\n TaskResult:\\n example:\\n cli:\\n output: output\\n exitCode: 0\\n error: error\\n command:\\n - command\\n - command\\n request:\\n body: body\\n statusCode: 6\\n response:\\n headers:\\n - headers\\n - headers\\n method: method\\n body: body\\n uri: uri\\n properties:\\n success:\\n type: boolean\\n cli:\\n $ref: '#/components/schemas/TaskResultCLI'\\n request:\\n $ref: '#/components/schemas/TaskResultHTTPRequest'\\n response:\\n $ref: '#/components/schemas/TaskResultHTTPResponse'\\n type: object\\n TaskResultCLI:\\n example:\\n output: output\\n exitCode: 0\\n error: error\\n command:\\n - command\\n - command\\n properties:\\n command:\\n items:\\n type: string\\n type: array\\n output:\\n type: string\\n error:\\n type: string\\n exitCode:\\n type: integer\\n type: object\\n TaskResultHTTPRequest:\\n example:\\n body: body\\n statusCode: 6\\n properties:\\n statusCode:\\n type: integer\\n body:\\n type: string\\n type: object\\n TaskResultHTTPResponse:\\n example:\\n headers:\\n - headers\\n - headers\\n method: method\\n body: body\\n uri: uri\\n properties:\\n uri:\\n type: string\\n method:\\n type: string\\n headers:\\n items:\\n type: string\\n type: array\\n body:\\n type: string\\n type: object\\n TenantNew:\\n type: object\\n properties:\\n tenant_id:\\n type: string\\n description: ID of new tenant.\\n required:\\n - tenant_id\\n SourceTenant:\\n type: object\\n properties:\\n source_tenant_id:\\n type: string\\n description: ID of a sourcetenant.\\n required:\\n - source_tenant_id\\n IdentityData:\\n description: Device identity attributes, in the form of a JSON structure. The attributes are completely vendor-specific, the provided ones are just an example. In reference implementation structure contains vendor-selected fields, such as MACs, serial numbers, etc.\\n type: object\\n additionalProperties: true\\n example:\\n mac: '00:01:02:03:04:05'\\n sku: My Device 1\\n sn: SN1234567890\\n AuthSet:\\n type: object\\n description: AuthSet describes the identity a device uses to authenticate with the Mender server.\\n properties:\\n id:\\n type: string\\n description: The unique ID of the authentication set.\\n device_id:\\n type: string\\n description: The unique ID of the device the authentication set belongs.\\n identity_data:\\n $ref: '#/components/schemas/IdentityData'\\n pubkey:\\n type: string\\n description: 'The device''s public key (PEM encoding). generated by the device or pre-provisioned by the vendor. Currently supported public algorithms are: RSA, Ed25519 and ECDSA P-256.'\\n tier:\\n type: string\\n description: A device tier.\\n enum:\\n - standard\\n - micro\\n - system\\n status:\\n type: string\\n description: Authorization status of the set.\\n ts:\\n type: string\\n format: date-time\\n description: The creation timestamp of the authentication set.\\n ProvisionDevice:\\n type: object\\n properties:\\n device_id:\\n type: string\\n format: uuid\\n description: ID of the new device.\\n required:\\n - device_id\\n TenantLimit:\\n description: Tenant account limit.\\n type: object\\n properties:\\n tenant_id:\\n type: string\\n current_value:\\n type: integer\\n limit:\\n type: integer\\n required:\\n - tenant_id\\n - current_value\\n - limit\\n example:\\n tenant_id: 58be8208dd77460001fe0d78\\n current_value: 42\\n limit: 123\\n Scope:\\n type: string\\n description: |\\n The scope of the attribute.\\n\\n Scope is a string and acts as namespace for the attribute name.\\n\\n * __inventory__: Attributes reported by the device.\\n * __system__: Attributes populated by the mender-server.\\n * __identity__: Device's identity attributes provided in the device's auth request.\\n * __monitor__: Attributes populated by the monitoring add-on.\\n * __tags__: User-defined attributes associated with the device.\\n enum:\\n - system\\n - identity\\n - inventory\\n - monitor\\n - tags\\n DeviceLimitTenant:\\n description: Tenant device limits per tier.\\n type: object\\n properties:\\n name:\\n type: string\\n tenant_id:\\n type: string\\n current_value:\\n type: integer\\n value:\\n type: integer\\n required:\\n - name\\n - current_value\\n - value\\n example:\\n name: max_micro_devices\\n current_value: 255\\n value: 1024\\n tenant_id: 69072e3c0d4f7bebcd5470b3\\n DeviceLimitTenantPut:\\n description: Device limit.\\n type: object\\n properties:\\n name:\\n type: string\\n value:\\n type: integer\\n required:\\n - name\\n - value\\n example:\\n name: max_micro_devices\\n value: 1024\\n Actor:\\n required:\\n - id\\n - type\\n type: object\\n properties:\\n id:\\n type: string\\n description: |\\n A unique identifier of the actor.\\n type:\\n type: string\\n description: |\\n The type of the actor.\\n enum:\\n - user\\n - device\\n email:\\n type: string\\n description: |\\n The email address of the user.\\n identity_data:\\n type: string\\n description: |\\n The identity data of the device.\\n description: |\\n The actor may be a user or device.\\n Depending on the type of the actor different information will be available.\\n AuditlogsTenant:\\n required:\\n - id\\n type: object\\n properties:\\n id:\\n type: string\\n description: The id of a tenant.\\n name:\\n type: string\\n description: The name of a tenant.\\n parent:\\n type: string\\n description: The id of a parent tenant.\\n description: The tenant descriptor.\\n example:\\n id: 66e456ef8437e701abc42a9c\\n name: Devel Tenant\\n parent: 66e457193c5f69b99d74d2cb\\n AuditlogsUser:\\n required:\\n - email\\n type: object\\n properties:\\n email:\\n type: string\\n description: Email address of the user.\\n description: User descriptor.\\n example:\\n email: user@acme.com\\n Deployment:\\n required:\\n - artifact_name\\n - name\\n type: object\\n properties:\\n name:\\n type: string\\n artifact_name:\\n type: string\\n description: The deployment descriptor.\\n example:\\n name: production\\n artifact_name: Application 0.0.1\\n AuditlogsArtifact:\\n required:\\n - name\\n type: object\\n properties:\\n name:\\n type: string\\n description: The artifact descriptor.\\n example:\\n name: artifact_name_1\\n AuditlogsDevice:\\n required:\\n - identity_data\\n type: object\\n properties:\\n id:\\n type: string\\n description: Device ID.\\n identity_data:\\n type: string\\n description: Vendor-specific JSON representation of the device identity data (MACs, serial numbers, etc.).\\n description: Device descriptor.\\n example:\\n id: e1ba5bee-c45d-11eb-887d-3fd47bdc3990\\n identity_data: '{\\\"mac_address\\\": \\\"2C:54:91:88:C9:E3\\\", \\\"sn\\\": \\\"1229224105105176\\\"}'\\n Object:\\n required:\\n - id\\n - type\\n type: object\\n properties:\\n id:\\n type: string\\n description: |\\n A unique identifier of the object.\\n type:\\n type: string\\n description: |\\n The type of the object.\\n enum:\\n - tenant\\n - user\\n - deployment\\n - artifact\\n - device\\n tenant:\\n $ref: '#/components/schemas/AuditlogsTenant'\\n user:\\n $ref: '#/components/schemas/AuditlogsUser'\\n deployment:\\n $ref: '#/components/schemas/Deployment'\\n artifact:\\n $ref: '#/components/schemas/AuditlogsArtifact'\\n device:\\n $ref: '#/components/schemas/AuditlogsDevice'\\n description: |\\n Various types of objects are supported.\\n Depending on the type of object different information will be available.\\n AuditLog:\\n required:\\n - action\\n - actor\\n - object\\n - time\\n type: object\\n properties:\\n actor:\\n $ref: '#/components/schemas/Actor'\\n time:\\n type: string\\n format: date-time\\n action:\\n type: string\\n enum:\\n - create\\n - update\\n - delete\\n - abort\\n - reject\\n - decommission\\n - open_terminal\\n - close_terminal\\n - open_portforward\\n - close_portforward\\n - download_file\\n - upload_file\\n - set_configuration\\n - deploy_configuration\\n - upload\\n - password_change\\n - auth_method_change\\n object:\\n $ref: '#/components/schemas/Object'\\n change:\\n type: string\\n description: Audit log entry\\n Artifact:\\n description: Detailed artifact.\\n example:\\n id: 0c13a0e6-6b63-475d-8260-ee42a590e8ff\\n name: Application 1.0.0\\n description: Johns Monday test build\\n device_types_compatible:\\n - Beagle Bone\\n info:\\n format: mender\\n version: 3\\n updates:\\n - type_info:\\n type: rootfs-image\\n files:\\n - name: rootfs-image-1\\n checksum: cc436f982bc60a8255fe1926a450db5f195a19ad\\n size: 123\\n date: 2016-03-11T13:03:17.063+0000\\n meta_data: []\\n artifact_provides:\\n artifact_name: test\\n rootfs-image.checksum: 32714818ad6f98ee0185a52e23a475d89122e3efd2b2c26c733781c28e798c99\\n rootfs-image.version: test\\n artifact_depends:\\n device_type:\\n - test\\n clears_artifact_provides:\\n - rootfs-image.*\\n size: 36891648\\n modified: '2016-03-11T13:03:17.063493443Z'\\n properties:\\n id:\\n type: string\\n name:\\n type: string\\n description:\\n type: string\\n device_types_compatible:\\n description: An array of compatible device types.\\n items:\\n type: string\\n type: array\\n info:\\n $ref: '#/components/schemas/ArtifactInfo'\\n signed:\\n description: Indicates if artifact is signed or not.\\n type: boolean\\n updates:\\n items:\\n $ref: '#/components/schemas/Update'\\n type: array\\n artifact_provides:\\n additionalProperties:\\n type: string\\n description: |\\n List of Artifact provides.\\n\\n Map of key/value pairs, where both keys and values are strings.\\n type: object\\n artifact_depends:\\n additionalProperties:\\n items:\\n type: string\\n type: array\\n description: |\\n List of Artifact depends.\\n\\n Map of key/value pairs, where keys are strings and values are lists of strings.\\n type: object\\n clears_artifact_provides:\\n description: List of Clear Artifact provides.\\n items:\\n type: string\\n type: array\\n size:\\n description: |\\n Artifact total size in bytes - the size of the actual file that will be transferred to the device (compressed).\\n type: integer\\n modified:\\n description: |\\n Represents creation / last edition of any of the artifact properties.\\n format: date-time\\n type: string\\n required:\\n - device_types_compatible\\n - id\\n - modified\\n - name\\n type: object\\n DeploymentStatus:\\n example:\\n status: success\\n properties:\\n status:\\n enum:\\n - installing\\n - pause_before_installing\\n - downloading\\n - pause_before_rebooting\\n - rebooting\\n - pause_before_committing\\n - success\\n - failure\\n - already-installed\\n - incompatible_tier\\n type: string\\n substate:\\n description: Additional state information\\n type: string\\n required:\\n - status\\n type: object\\n DeploymentInstructions:\\n example:\\n id: w81s4fae-7dec-11d0-a765-00a0c91e6bf6\\n artifact:\\n artifact_name: my-app-0.1\\n source:\\n uri: https://aws.myupdatebucket.com/image123\\n expire: '2016-03-11T13:03:17.063493443Z'\\n device_types_compatible:\\n - rspi\\n - rspi2\\n - rspi0\\n properties:\\n id:\\n description: Deployment ID\\n type: string\\n artifact:\\n $ref: '#/components/schemas/DeploymentInstructionsArtifact'\\n required:\\n - artifact\\n - id\\n type: object\\n nullable: true\\n DeploymentLog:\\n example:\\n messages:\\n - timestamp: '2016-03-11T13:03:17.063493443Z'\\n level: INFO\\n message: OK\\n - timestamp: '2016-03-11T13:03:18.023765782Z'\\n level: DEBUG\\n message: successfully updated.\\n properties:\\n messages:\\n description: Array of log entries of a deployment\\n items:\\n $ref: '#/components/schemas/DeploymentLogMessagesInner'\\n type: array\\n required:\\n - messages\\n type: object\\n CheckUpdateDependsRequest:\\n additionalProperties:\\n type: string\\n x-mender-plan:\\n - enterprise\\n example:\\n device_type: rspi\\n artifact_name: prototype-v1.0.0\\n rootfs_image_checksum: 4d480539cdb23a4aee6330ff80673a5af92b7793eb1c57c4694532f96383b619\\n properties:\\n device_type:\\n description: Device type of the device.\\n type: string\\n artifact_name:\\n description: Name of the currently installed artifact.\\n type: string\\n required:\\n - artifact_name\\n - device_type\\n type: object\\n DeploymentInstructionsArtifactSource:\\n properties:\\n uri:\\n description: URL to fetch the artifact from\\n format: url\\n type: string\\n expire:\\n description: URL expiration time\\n format: date-time\\n type: string\\n type: object\\n DeploymentInstructionsArtifact:\\n properties:\\n id:\\n type: string\\n source:\\n $ref: '#/components/schemas/DeploymentInstructionsArtifactSource'\\n device_types_compatible:\\n description: Compatible device types\\n items:\\n type: string\\n type: array\\n artifact_name:\\n type: string\\n required:\\n - artifact_name\\n - device_types_compatible\\n - source\\n type: object\\n DeploymentLogMessagesInner:\\n properties:\\n timestamp:\\n format: date-time\\n type: string\\n level:\\n type: string\\n message:\\n type: string\\n required:\\n - level\\n - message\\n - timestamp\\n type: object\\n ArtifactInfo:\\n description: Information about artifact format and version.\\n properties:\\n format:\\n type: string\\n version:\\n type: integer\\n type: object\\n ArtifactTypeInfo:\\n description: |\\n Information about update type.\\n properties:\\n type:\\n description: Note that for empty Artifacts, the type is 'null'\\n type: string\\n type: object\\n UpdateFile:\\n description: |\\n Information about particular update file.\\n properties:\\n name:\\n type: string\\n checksum:\\n type: string\\n size:\\n type: integer\\n date:\\n format: date-time\\n type: string\\n type: object\\n MetadataAny:\\n description: metadata is an object of unknown structure as this is dependent of update type (also custom defined by user)\\n additionalProperties:\\n type: string\\n type: object\\n MetadataAnyDeprecated:\\n deprecated: true\\n description: |\\n A list of objects of unknown structure as this is dependent\\n of update type (also custom defined by user)\\n x-deprecated-description: |\\n _since Wed Oct 29 2025_ this object is deprecated. Please use `metadata` instead.\\n items:\\n type: object\\n type: array\\n Update:\\n description: |\\n Single updated to be applied.\\n example:\\n type_info:\\n type: type\\n metadata: {}\\n meta_data: []\\n files:\\n - date: '2000-01-23T04:56:07.000+00:00'\\n size: 6\\n name: name\\n checksum: checksum\\n - date: '2000-01-23T04:56:07.000+00:00'\\n size: 6\\n name: name\\n checksum: checksum\\n properties:\\n type_info:\\n $ref: '#/components/schemas/ArtifactTypeInfo'\\n files:\\n items:\\n $ref: '#/components/schemas/UpdateFile'\\n type: array\\n metadata:\\n $ref: '#/components/schemas/MetadataAny'\\n meta_data:\\n $ref: '#/components/schemas/MetadataAnyDeprecated'\\n type: object\\n DeploymentInstructionsArtifactSourceV2:\\n properties:\\n uri:\\n description: URL to fetch the artifact from\\n type: string\\n expire:\\n description: URL expiration time\\n format: date-time\\n type: string\\n type: object\\n DeploymentInstructionsArtifactV2:\\n properties:\\n id:\\n type: string\\n source:\\n $ref: '#/components/schemas/DeploymentInstructionsArtifactSourceV2'\\n device_types_compatible:\\n description: Compatible device types\\n items:\\n type: string\\n type: array\\n artifact_name:\\n type: string\\n required:\\n - artifact_name\\n - device_types_compatible\\n - source\\n type: object\\n DeploymentInstructionsV2:\\n example:\\n id: w81s4fae-7dec-11d0-a765-00a0c91e6bf6\\n artifact:\\n artifact_name: my-app-0.1\\n source:\\n uri: https://aws.my_update_bucket.com/image_123\\n expire: '2016-03-11T13:03:17.063493443Z'\\n device_types_compatible:\\n - rspi\\n - rspi2\\n - rspi0\\n update_control_map:\\n id: e1ba5bee-c45d-11eb-887d-3fd47bdc3990\\n priority: 1\\n states:\\n ArtifactInstall_Enter:\\n action: pause\\n properties:\\n id:\\n description: Deployment ID (device unique)\\n type: string\\n artifact:\\n $ref: '#/components/schemas/DeploymentInstructionsArtifactV2'\\n update_control_map:\\n additionalProperties: true\\n description: |\\n A valid JSON object defining the update control map.\\n The ID attribute is automatically set to the deployment's ID.\\n *NOTE*: Available only in the Enterprise plan.\\n example:\\n update_control_map:\\n id: e1ba5bee-c45d-11eb-887d-3fd47bdc3990\\n priority: 1\\n states:\\n ArtifactInstall_Enter:\\n action: pause\\n type: object\\n x-mender-plan:\\n - enterprise\\n required:\\n - artifact\\n - id\\n type: object\\n UpdateControlMap:\\n additionalProperties: true\\n description: |\\n A valid JSON object defining the update control map.\\n The ID attribute is automatically set to the deployment's ID.\\n *NOTE*: Available only in the Enterprise plan.\\n example:\\n update_control_map:\\n id: e1ba5bee-c45d-11eb-887d-3fd47bdc3990\\n priority: 1\\n states:\\n ArtifactInstall_Enter:\\n action: pause\\n type: object\\n x-mender-plan:\\n - enterprise\\n CheckUpdateRequest:\\n example:\\n device_provides:\\n device_type: rspi\\n artifact_name: prototype-v1.0.0\\n rootfs-image.checksum: 4d480539cdb23a4aee6330ff80673a5af92b7793eb1c57c4694532f96383b619\\n update_control_map: true\\n properties:\\n device_provides:\\n additionalProperties:\\n type: string\\n x-mender-plan:\\n - enterprise\\n description: |\\n Key-value map of strings which describes the artifact(s) installed on the device and the\\n device itself. It is used to determine the next deployment. The keys device_type and\\n artifact_name are mandatory, additional free-form key-value pairs can be specified.\\n type: object\\n update_control_map:\\n description: |\\n True if the device supports Update Control Maps.\\n *NOTE*: Available only in the Enterprise plan.\\n type: boolean\\n x-mender-plan:\\n - enterprise\\n required:\\n - device_provides\\n type: object\\n StorageSettings:\\n description: Per tenant storage settings.\\n example:\\n region: us-east-1\\n bucket: mender-artifacts-unique-bucket-name\\n uri: example.internal:9000\\n external_uri: example.com\\n key: <key>\\n secret: <secret>\\n token: <token>\\n force_path_style: false\\n use_accelerate: false\\n properties:\\n type:\\n description: The storage provider type 'azure' Blob storage or AWS 's3' (defaults to s3).\\n enum:\\n - s3\\n - azure\\n type: string\\n region:\\n description: 'AWS region (S3 only: required).'\\n type: string\\n bucket:\\n description: 'S3 Bucket (Azure: container) name.'\\n type: string\\n uri:\\n description: Bucket/container endpoint URI.\\n type: string\\n external_uri:\\n description: Public Endpoint URI for presigning URLs (S3 only).\\n type: string\\n key:\\n description: 'Access key identifier (Azure: account name).'\\n type: string\\n secret:\\n description: 'Secret access key (Azure: access key).'\\n type: string\\n token:\\n description: AWS S3 session token (S3 only).\\n type: string\\n force_path_style:\\n description: Force S3 path-style instead of virtual-hosted style (S3 only).\\n type: boolean\\n use_accelerate:\\n description: Enable S3 Transfer acceleration (S3 only).\\n type: boolean\\n connection_string:\\n description: Shared access key connection string (Azure only).\\n type: string\\n container_name:\\n description: Alias for 'bucket' (Azure only).\\n type: string\\n account_name:\\n description: Alias for 'key' (Azure only).\\n type: string\\n account_key:\\n description: Alias for 'secret' (Azure only).\\n type: string\\n required:\\n - bucket\\n - key\\n - secret\\n type: object\\n DeploymentV1Internal:\\n example:\\n created: '2016-02-11 13:03:17.063493+00:00'\\n status: finished\\n name: production\\n artifact_name: Application 0.0.1\\n id: 00a0c91e6-7dec-11d0-a765-f81d4faebf6\\n finished: '2016-03-11 13:03:17.063493+00:00'\\n properties:\\n created:\\n format: date-time\\n type: string\\n name:\\n type: string\\n artifact_name:\\n type: string\\n id:\\n type: string\\n finished:\\n format: date-time\\n type: string\\n status:\\n enum:\\n - inprogress\\n - pending\\n - finished\\n type: string\\n device_count:\\n type: integer\\n artifacts:\\n description: An array of artifact's identifiers.\\n items:\\n type: string\\n type: array\\n type:\\n enum:\\n - configuration\\n - software\\n type: string\\n required:\\n - artifact_name\\n - created\\n - id\\n - name\\n - status\\n type: object\\n ConfigurationDeploymentRequest:\\n example:\\n name: config-1.1\\n configuration:\\n foo: bar\\n properties:\\n name:\\n description: Name of the deployment\\n type: string\\n configuration:\\n allOf:\\n - $ref: '#/components/schemas/ManagementAPIConfiguration'\\n - description: |\\n A string containing a configuration object.\\n The deployments service will use it to generate configuration\\n artifact for the device.\\n The artifact will be generated when the device will ask\\n for an update.\\n retries:\\n description: |\\n The number of times a device can retry the deployment\\n in case of failure, defaults to 0.\\n type: integer\\n update_control_map:\\n description: |\\n A valid JSON object defining the update control map.\\n *NOTE*: Available only in the Enterprise plan.\\n type: object\\n x-mender-plan:\\n - enterprise\\n required:\\n - configuration\\n - name\\n type: object\\n GenerateDeltaJobStatus:\\n description: Status of the generate delta job.\\n example:\\n status: success\\n properties:\\n status:\\n type: string\\n type: object\\n DeviceDeployment:\\n example:\\n id: 0c13a0e6-6b63-475d-8260-ee42a590e8ff\\n deployment:\\n id: 00a0c91e6-7dec-11d0-a765-f81d4faebf6\\n name: production\\n artifact_name: Application 0.0.1\\n status: inprogress\\n created: '2016-02-11 13:03:17.063493+00:00'\\n device_count: 100\\n device:\\n id: 00a0c91e6-7dec-11d0-a765-f81d4faebf6\\n device_type: Raspberry Pi 3\\n status: installing\\n finished: '2016-03-11 13:03:17.063493+00:00'\\n created: '2016-02-11 13:03:17.063493+00:00'\\n state: installing\\n substate: installing.enter;script:foo-bar\\n log: false\\n image:\\n id: 0c13a0e6-6b63-475d-8260-ee42a590e8ff\\n name: Application 1.0.0\\n meta:\\n description: Johns Monday test build\\n meta_artifact:\\n name: Application 1.0.0\\n device_types_compatible:\\n - Beagle Bone\\n info:\\n format: mender\\n version: 3\\n updates:\\n - type_info:\\n type: rootfs-image\\n files:\\n - name: rootfs-image-1\\n checksum: cc436f982bc60a8255fe1926a450db5f195a19ad\\n size: 123\\n date: 2016-03-11T13:03:17.063+0000\\n metadata: {}\\n meta_data: []\\n artifact_provides:\\n artifact_name: test\\n rootfs-image.checksum: 32714818ad6f98ee0185a52e23a475d89122e3efd2b2c26c733781c28e798c99\\n rootfs-image.version: test\\n artifact_depends:\\n device_type:\\n - test\\n clears_artifact_provides:\\n - rootfs-image.*\\n size: 36891648\\n modified: '2016-03-11 13:03:17.063493+00:00'\\n properties:\\n id:\\n type: string\\n deployment:\\n $ref: '#/components/schemas/DeploymentV1Internal'\\n device:\\n $ref: '#/components/schemas/DeviceWithImage'\\n required:\\n - deployment\\n - device\\n type: object\\n LastDeviceDeploymentsStatuses:\\n example:\\n device_deployment_last_statuses:\\n - device_id: b86dfe3d-a0a6-4838-b374-5fbcb7c956a1\\n deployment_id: acaf62f0-6a6f-45e4-9c52-838ee593cb62\\n device_deployment_id: b14a36d3-c1a9-408c-b128-bfb4808604f1\\n device_deployment_status: success\\n - device_id: b86dfe3d-a0a6-4838-b374-5fbcb7c956a1\\n deployment_id: acaf62f0-6a6f-45e4-9c52-838ee593cb62\\n device_deployment_id: b14a36d3-c1a9-408c-b128-bfb4808604f1\\n device_deployment_status: success\\n properties:\\n device_deployment_last_statuses:\\n items:\\n $ref: '#/components/schemas/LastDeviceDeployment'\\n type: array\\n required:\\n - device_deployment_last_statuses\\n type: object\\n LastDeviceDeployment:\\n example:\\n device_id: b86dfe3d-a0a6-4838-b374-5fbcb7c956a1\\n deployment_id: acaf62f0-6a6f-45e4-9c52-838ee593cb62\\n device_deployment_id: b14a36d3-c1a9-408c-b128-bfb4808604f1\\n device_deployment_status: success\\n properties:\\n device_id:\\n type: string\\n deployment_id:\\n type: string\\n device_deployment_id:\\n type: string\\n device_deployment_status:\\n type: string\\n type: object\\n LastDeviceDeploymentReq:\\n example:\\n device_ids:\\n - device_id1\\n - device_id2\\n properties:\\n device_ids:\\n items:\\n type: string\\n type: array\\n required:\\n - device_ids\\n type: object\\n Get_Binary_Delta_Configurations_200_response_inner:\\n example:\\n tenant_id: tenant_id\\n properties:\\n tenant_id:\\n description: Tenant ID\\n type: string\\n enabled:\\n description: Flag indicating if binary delta generation is enabled\\n type: boolean\\n type: object\\n Upload_artifact_request:\\n x-go-name: InternalUploadArtifactRequest\\n properties:\\n artifact_id:\\n description: Artifact ID, optional; the server generates a random one if not provided.\\n type: string\\n size:\\n description: Size of the artifact file in bytes.\\n format: long\\n type: integer\\n description:\\n type: string\\n artifact:\\n description: Artifact. It has to be the last part of request.\\n format: binary\\n type: string\\n required:\\n - artifact\\n type: object\\n DeviceGroups:\\n description: Device's groups names.\\n properties:\\n groups:\\n type: array\\n items:\\n type: string\\n description: List of group names for the device.\\n example:\\n groups:\\n - foo\\n - bar\\n type: object\\n TenantLimitValue:\\n description: Limit definition\\n type: object\\n properties:\\n limit:\\n type: integer\\n required:\\n - limit\\n example:\\n limit: 123\\n DeploymentDeviceStatus:\\n enum:\\n - failure\\n - aborted\\n - pause_before_installing\\n - pause_before_committing\\n - pause_before_rebooting\\n - downloading\\n - installing\\n - rebooting\\n - pending\\n - success\\n - noartifact\\n - artifact_too_big\\n - already-installed\\n - decommissioned\\n - incompatible_tier\\n type: string\\n DeviceWithImageImageMeta:\\n properties:\\n description:\\n description: Image description\\n type: string\\n type: object\\n DeviceWithImageImageMetaArtifact:\\n properties:\\n name:\\n type: string\\n device_types_compatible:\\n description: An array of compatible device types.\\n items:\\n type: string\\n type: array\\n info:\\n $ref: '#/components/schemas/ArtifactInfo'\\n signed:\\n description: Indicates if artifact is signed or not.\\n type: boolean\\n updates:\\n items:\\n $ref: '#/components/schemas/Update'\\n type: array\\n artifact_provides:\\n additionalProperties:\\n type: string\\n description: |\\n List of Artifact provides.\\n\\n Map of key/value pairs, where both keys and values are strings.\\n type: object\\n artifact_depends:\\n additionalProperties:\\n items:\\n type: string\\n type: array\\n description: |\\n List of Artifact depends.\\n\\n Map of key/value pairs, where keys are strings and values are lists of strings.\\n type: object\\n clears_artifact_provides:\\n description: List of Clear Artifact provides.\\n items:\\n type: string\\n type: array\\n type: object\\n DeviceWithImageImage:\\n properties:\\n id:\\n description: Image ID\\n type: string\\n meta:\\n $ref: '#/components/schemas/DeviceWithImageImageMeta'\\n meta_artifact:\\n $ref: '#/components/schemas/DeviceWithImageImageMetaArtifact'\\n size:\\n description: Image size in bytes\\n type: integer\\n modified:\\n description: Creation / last edition of any of the artifact properties\\n format: date-time\\n type: string\\n type: object\\n DeviceWithImage:\\n example:\\n id: 00a0c91e6-7dec-11d0-a765-f81d4faebf6\\n finished: '2016-03-11T13:03:17.063493443Z'\\n status: installing\\n created: '2016-02-11T13:03:17.063493443Z'\\n started: '2016-02-12T13:03:17.063493443Z'\\n device_type: Raspberry Pi 3\\n log: false\\n state: installing\\n substate: installing.enter;script:foo-bar\\n image:\\n id: 0c13a0e6-6b63-475d-8260-ee42a590e8ff\\n name: Application 1.0.0\\n meta:\\n description: Johns Monday test build\\n meta_artifact:\\n name: Application 1.0.0\\n device_types_compatible:\\n - Beagle Bone\\n info:\\n format: mender\\n version: 3\\n updates:\\n - type_info:\\n type: rootfs-image\\n files:\\n - name: rootfs-image-1\\n checksum: cc436f982bc60a8255fe1926a450db5f195a19ad\\n size: 123\\n date: 2016-03-11T13:03:17.063+0000\\n metadata: {}\\n meta_data: []\\n artifact_provides:\\n artifact_name: test\\n rootfs-image.checksum: 32714818ad6f98ee0185a52e23a475d89122e3efd2b2c26c733781c28e798c99\\n rootfs-image.version: test\\n artifact_depends:\\n device_type:\\n - test\\n clears_artifact_provides:\\n - rootfs-image.*\\n size: 36891648\\n modified: '2016-03-11T13:03:17.063493443Z'\\n properties:\\n id:\\n description: Device identifier.\\n type: string\\n status:\\n $ref: '#/components/schemas/DeploymentDeviceStatus'\\n created:\\n format: date-time\\n type: string\\n started:\\n format: date-time\\n type: string\\n finished:\\n format: date-time\\n type: string\\n deleted:\\n format: date-time\\n type: string\\n device_type:\\n type: string\\n log:\\n description: Availability of the device's deployment log.\\n type: boolean\\n state:\\n description: State reported by device\\n type: string\\n substate:\\n description: Additional state information\\n type: string\\n attempts:\\n description: Number of deployment attempts for this device\\n type: integer\\n phase_id:\\n description: Deployment phase identifier\\n type: string\\n image:\\n $ref: '#/components/schemas/DeviceWithImageImage'\\n required:\\n - id\\n - log\\n - status\\n type: object\\n ManagementAPIConfiguration:\\n type: object\\n additionalProperties:\\n type: string\\n XDeltaArgs:\\n description: |\\n xdelta3 arguments. Please refer to the xdelta3 documentation\\n for a detailed description of the different options.\\n example:\\n compression_level: 1\\n instruction_buffer_size: 1024\\n input_window_size: 65536\\n compression_duplicates_window: 1024\\n source_window_size: 65536\\n properties:\\n disable_checksum:\\n default: false\\n description: |\\n Disables checksum\\n type: boolean\\n disable_external_decompression:\\n default: false\\n description: |\\n Disable external decompression\\n type: boolean\\n compression_level:\\n description: |\\n Compression level\\n type: integer\\n source_window_size:\\n description: |\\n Source window size\\n type: integer\\n input_window_size:\\n description: |\\n Input window size\\n type: integer\\n compression_duplicates_window:\\n description: |\\n Compression duplicates window\\n type: integer\\n instruction_buffer_size:\\n description: |\\n Instruction buffer size\\n type: integer\\n type: object\\n BinaryDeltaConfiguration:\\n description: The mender-binary-delta-generator configuration options.\\n example:\\n xdelta_args:\\n compression_level: 1\\n instruction_buffer_size: 1024\\n input_window_size: 65536\\n compression_duplicates_window: 1024\\n source_window_size: 65536\\n timeout: 200\\n properties:\\n xdelta_args:\\n $ref: '#/components/schemas/XDeltaArgs'\\n timeout:\\n description: |\\n Delta generation job timeout in seconds.\\n type: integer\\n type: object\\n Limit:\\n description: Limit descriptor.\\n example:\\n min: 5\\n max: 100\\n default: 10\\n properties:\\n min:\\n description: Minimum value.\\n type: integer\\n max:\\n description: Maximum value.\\n type: integer\\n default:\\n description: Default value.\\n type: integer\\n type: object\\n XDeltaArgsLimits:\\n description: |\\n Limits for arguments which will be passed to xdelta3.\\n Please refer to the xdelta3 documentation\\n for a detailed description of the different options.\\n example:\\n compression_level: {}\\n instruction_buffer_size: {}\\n input_window_size: {}\\n compression_duplicates_window: {}\\n source_window_size: {}\\n properties:\\n compression_level:\\n allOf:\\n - $ref: '#/components/schemas/Limit'\\n description: Limit for compression level.\\n type: object\\n source_window_size:\\n allOf:\\n - $ref: '#/components/schemas/Limit'\\n description: Limit for source window size.\\n type: object\\n input_window_size:\\n allOf:\\n - $ref: '#/components/schemas/Limit'\\n description: Limit for input window size limit.\\n type: object\\n compression_duplicates_window:\\n allOf:\\n - $ref: '#/components/schemas/Limit'\\n description: Limit for compression duplicates window.\\n type: object\\n instruction_buffer_size:\\n allOf:\\n - $ref: '#/components/schemas/Limit'\\n description: Limit for instruction buffer size.\\n type: object\\n type: object\\n BinaryDeltaLimits:\\n description: The mender-binary-delta-generator configuration limits.\\n example:\\n queue_length: {}\\n jobs_in_parallel: {}\\n xdelta_args_limits:\\n compression_level: {}\\n instruction_buffer_size: {}\\n input_window_size: {}\\n compression_duplicates_window: {}\\n source_window_size: {}\\n timeout:\\n min: 5\\n max: 100\\n default: 10\\n properties:\\n xdelta_args_limits:\\n $ref: '#/components/schemas/XDeltaArgsLimits'\\n timeout:\\n $ref: '#/components/schemas/Limit'\\n jobs_in_parallel:\\n allOf:\\n - $ref: '#/components/schemas/Limit'\\n description: |\\n Maximum number of delta generation jobs which can be run in parallel.\\n type: object\\n queue_length:\\n allOf:\\n - $ref: '#/components/schemas/Limit'\\n description: |\\n Maximum number of queued delta generation jobs.\\n type: object\\n type: object\\n DeltaConfiguration:\\n description: Delta configuration options.\\n example:\\n binary_delta_limits:\\n queue_length: {}\\n jobs_in_parallel: {}\\n xdelta_args_limits:\\n compression_level: {}\\n instruction_buffer_size: {}\\n input_window_size: {}\\n compression_duplicates_window: {}\\n source_window_size: {}\\n timeout:\\n min: 5\\n max: 100\\n default: 10\\n binary_delta:\\n xdelta_args:\\n compression_level: 1\\n instruction_buffer_size: 1024\\n input_window_size: 65536\\n compression_duplicates_window: 1024\\n source_window_size: 65536\\n timeout: 200\\n properties:\\n enabled:\\n type: boolean\\n binary_delta:\\n $ref: '#/components/schemas/BinaryDeltaConfiguration'\\n binary_delta_limits:\\n $ref: '#/components/schemas/BinaryDeltaLimits'\\n type: object\\n ConfigurationTenant:\\n description: Configuration.\\n example:\\n delta:\\n binary_delta_limits:\\n queue_length: {}\\n jobs_in_parallel: {}\\n xdelta_args_limits:\\n compression_level: {}\\n instruction_buffer_size: {}\\n input_window_size: {}\\n compression_duplicates_window: {}\\n source_window_size: {}\\n timeout:\\n min: 5\\n max: 100\\n default: 10\\n binary_delta:\\n xdelta_args:\\n compression_level: 1\\n instruction_buffer_size: 1024\\n input_window_size: 65536\\n compression_duplicates_window: 1024\\n source_window_size: 65536\\n timeout: 200\\n properties:\\n delta:\\n $ref: '#/components/schemas/DeltaConfiguration'\\n type: object\\n NewDeploymentTypeManagement:\\n example:\\n name: production\\n artifact_name: Application 0.0.1\\n devices:\\n - 00a0c91e6-7dec-11d0-a765-f81d4faebf6\\n phases:\\n - batch_size: 5\\n start_ts: '2020-07-06T15:04:49.114046203+02:00'\\n - batch_size: 15\\n start_ts: '2020-07-06T16:04:49.114046203+02:00'\\n - start_ts: '2020-07-06T17:04:49.114046203+02:00'\\n retries: 3\\n properties:\\n name:\\n description: Name of the deployment\\n type: string\\n artifact_name:\\n description: Name of the artifact to deploy\\n type: string\\n devices:\\n description: An array of devices' identifiers.\\n items:\\n type: string\\n type: array\\n all_devices:\\n description: |\\n When set, the deployment will be created for all\\n currently accepted devices.\\n type: boolean\\n force_installation:\\n description: Force the installation of the Artifact disabling the `already-installed` check.\\n type: boolean\\n phases:\\n description: The phases definition.\\n maxItems: 100\\n items:\\n $ref: '#/components/schemas/NewDeploymentPhaseTypeManagement'\\n type: array\\n x-mender-plan:\\n - professional\\n - enterprise\\n uniform_phases:\\n $ref: '#/components/schemas/DeploymentUniformPhase'\\n retries:\\n description: The number of times a device can retry the deployment in case of failure, defaults to 0\\n type: integer\\n update_control_map:\\n additionalProperties: true\\n description: |\\n A valid JSON object defining the update control map.\\n *NOTE*: Available only in the Enterprise plan.\\n type: object\\n x-mender-plan:\\n - enterprise\\n autogenerate_delta:\\n default: false\\n description: |\\n The flag indicating if the autogeneration of delta artifacts is enabled for a given deployment.\\n type: boolean\\n required:\\n - artifact_name\\n - name\\n type: object\\n NewDeploymentForGroup:\\n example:\\n name: production\\n artifact_name: Application 0.0.1\\n phases:\\n - batch_size: 5\\n start_ts: '2020-07-06T15:04:49.114046203+02:00'\\n - batch_size: 15\\n start_ts: '2020-07-06T16:04:49.114046203+02:00'\\n - start_ts: '2020-07-06T17:04:49.114046203+02:00'\\n retries: 3\\n properties:\\n name:\\n description: Name of the deployment\\n type: string\\n artifact_name:\\n description: Name of the artifact to deploy\\n type: string\\n force_installation:\\n description: Force the installation of the Artifact disabling the `already-installed` check.\\n type: boolean\\n phases:\\n items:\\n $ref: '#/components/schemas/NewDeploymentPhaseTypeManagement'\\n type: array\\n x-mender-plan:\\n - professional\\n - enterprise\\n retries:\\n description: The number of times a device can retry the deployment in case of failure, defaults to 0\\n type: integer\\n update_control_map:\\n additionalProperties: true\\n description: |\\n A valid JSON object defining the update control map.\\n *NOTE*: Available only in the Enterprise plan.\\n type: object\\n x-mender-plan:\\n - enterprise\\n autogenerate_delta:\\n default: false\\n description: |\\n The flag indicating if the autogeneration of delta artifacts is enabled for a given deployment.\\n type: boolean\\n required:\\n - artifact_name\\n - name\\n type: object\\n DeploymentV1:\\n example:\\n created: '2016-02-11T13:03:17.063493443Z'\\n status: finished\\n name: production\\n artifact_name: Application 0.0.1\\n id: 00a0c91e6-7dec-11d0-a765-f81d4faebf6\\n finished: '2016-03-11T13:03:17.063493443Z'\\n phases:\\n - id: '1'\\n batch_size: 5\\n start_ts: '2020-07-06T17:04:49.114046203+02:00'\\n device_count: 5\\n status: finished\\n - id: '2'\\n batch_size: 15\\n start_ts: '2020-07-06T18:04:49.114046203+02:00'\\n device_count: 15\\n status: finished\\n - id: '3'\\n start_ts: '2020-07-06T19:04:49.114046203+02:00'\\n device_count: 80\\n status: finished\\n device_count: 100\\n retries: 3\\n properties:\\n id:\\n description: Deployment identifier\\n type: string\\n name:\\n description: Name of the deployment\\n type: string\\n artifact_name:\\n description: Name of the artifact to deploy\\n type: string\\n created:\\n description: Deployment's creation date and time\\n format: date-time\\n type: string\\n finished:\\n description: Deployment's completion date and time\\n format: date-time\\n type: string\\n status:\\n description: Status of the deployment\\n enum:\\n - inprogress\\n - scheduled\\n - pending\\n - finished\\n type: string\\n device_count:\\n description: Number of devices the deployment acted upon\\n type: integer\\n artifacts:\\n description: An array of artifact's identifiers.\\n items:\\n type: string\\n type: array\\n groups:\\n description: |\\n An array of groups the devices targeted by the deployment belong to.\\n Available only if the user created the deployment for a group or a single device (if the device was in a static group).\\n items:\\n type: string\\n type: array\\n phases:\\n description: |\\n An array of the deployment's phases, ordered by `start_ts`.\\n\\n For a deployment created with an explicit list of `phases`, this is\\n that list together with the current state of every phase.\\n\\n For a deployment created with a `uniform_phases` configuration, this\\n is the list of phases generated from that configuration.\\n items:\\n $ref: '#/components/schemas/DeploymentPhase'\\n type: array\\n uniform_phases:\\n $ref: '#/components/schemas/DeploymentUniformPhase'\\n retries:\\n description: The number of times a device can retry the deployment in case of failure, defaults to 0\\n type: integer\\n update_control_map:\\n additionalProperties: true\\n description: |\\n A valid JSON object defining the update control map.\\n *NOTE*: Available only in the Enterprise plan.\\n type: object\\n max_devices:\\n description: |\\n max_devices denotes a limit on a number of completed deployments (failed or successful) above which the dynamic deployment will be finished.\\n type: integer\\n initial_device_count:\\n description: |\\n In case of dynamic deployments this is a number of devices targeted initially (matching the filter at the moment of deployment creation).\\n type: integer\\n dynamic:\\n description: |\\n Flag indicating if the deployment is dynamic or not.\\n type: boolean\\n type:\\n enum:\\n - configuration\\n - software\\n type: string\\n configuration:\\n description: |\\n A string containing a configuration object provided\\n with the deployment constructor.\\n type: string\\n autogenerate_delta:\\n description: |\\n The flag indicating if the autogeneration of delta artifacts is enabled for a given deployment.\\n type: boolean\\n statistics:\\n $ref: '#/components/schemas/DeploymentStatistics'\\n filter:\\n $ref: '#/components/schemas/FilterV1'\\n required:\\n - artifact_name\\n - created\\n - device_count\\n - id\\n - name\\n - status\\n type: object\\n NewDeploymentPhaseTypeManagement:\\n description: |\\n An array of deployments phases. Phases define a starting point and\\n a relative batch size of devices to which the deployment applies.\\n\\n A single phase allows scheduling a deployment to start at a specific\\n time.\\n\\n Multiple phases split the deployment into smaller batches of devices\\n at the time giving a higher level of control of the rate devices are\\n updated.\\n\\n *NOTE*: Professional plan is only allowed to specify a single phase to\\n schedule deployments, this feature is not available for Starter plan.\\n example:\\n start_ts: '2099-07-07T21:10:17.063493443Z'\\n batch_size: 5\\n properties:\\n batch_size:\\n description: |\\n Percentage of devices to update in the phase.\\n This field is optional for the last phase.\\n The last phase will contain the rest of the devices.\\n Note that if the percentage of devices entered does not\\n add up to a whole number of devices it is rounded down,\\n and in the case it is rounded down to zero, a 400 error\\n will be returned. This is mostly a concern when the deployment\\n consists of a low number of devices, like say 5 percent of 11\\n devices will round to zero, and an error is returned by the server.\\n type: integer\\n batch_size_devices:\\n description: |\\n Exact number of devices to update in this phase.\\n This field is optional for the last phase, which will contain the remaining devices.\\n Note that you can only specify either `batch_size` or `batch_size_devices`, not both for all phases in a deployment.\\n type: integer\\n start_ts:\\n description: |\\n Start date of a phase.\\n Can be skipped for the first phase of a new deployment definition ('start immediately').\\n format: date-time\\n type: string\\n type: object\\n DeviceDeploymentV1:\\n example:\\n id: 0c13a0e6-6b63-475d-8260-ee42a590e8ff\\n deployment:\\n id: 00a0c91e6-7dec-11d0-a765-f81d4faebf6\\n name: production\\n artifact_name: Application 0.0.1\\n status: inprogress\\n created: '2016-02-11T13:03:17.063493443Z'\\n device_count: 100\\n device:\\n id: 00a0c91e6-7dec-11d0-a765-f81d4faebf6\\n device_type: Raspberry Pi 3\\n status: installing\\n finished: '2016-03-11T13:03:17.063493443Z'\\n created: '2016-02-11T13:03:17.063493443Z'\\n started: '2016-02-11T13:03:17.063493443Z'\\n state: installing\\n substate: installing.enter;script:foo-bar\\n log: false\\n image:\\n id: 0c13a0e6-6b63-475d-8260-ee42a590e8ff\\n name: Application 1.0.0\\n meta:\\n description: Johns Monday test build\\n meta_artifact:\\n name: Application 1.0.0\\n device_types_compatible:\\n - Beagle Bone\\n info:\\n format: mender\\n version: 3\\n updates:\\n - type_info:\\n type: rootfs-image\\n files:\\n - name: rootfs-image-1\\n checksum: cc436f982bc60a8255fe1926a450db5f195a19ad\\n size: 123\\n date: 2016-03-11T13:03:17.063+0000\\n metadata: {}\\n meta_data: []\\n artifact_provides:\\n artifact_name: test\\n rootfs-image.checksum: 32714818ad6f98ee0185a52e23a475d89122e3efd2b2c26c733781c28e798c99\\n rootfs-image.version: test\\n artifact_depends:\\n device_type:\\n - test\\n clears_artifact_provides:\\n - rootfs-image.*\\n size: 36891648\\n modified: '2016-03-11T13:03:17.063493443Z'\\n properties:\\n id:\\n type: string\\n deployment:\\n $ref: '#/components/schemas/DeploymentV1'\\n device:\\n $ref: '#/components/schemas/DeviceWithImage'\\n required:\\n - deployment\\n - device\\n type: object\\n ArtifactUpdateV1:\\n description: Artifact information update.\\n example:\\n description: Some description\\n properties:\\n description:\\n type: string\\n type: object\\n ArtifactV1:\\n description: Detailed artifact.\\n example:\\n id: 0c13a0e6-6b63-475d-8260-ee42a590e8ff\\n name: Application 1.0.0\\n description: Johns Monday test build\\n device_types_compatible:\\n - Beagle Bone\\n info:\\n format: mender\\n version: 3\\n updates:\\n - type_info:\\n type: rootfs-image\\n files:\\n - name: rootfs-image-1\\n checksum: cc436f982bc60a8255fe1926a450db5f195a19ad\\n size: 123\\n date: 2016-03-11T13:03:17.063+0000\\n metadata: {}\\n meta_data: []\\n artifact_provides:\\n artifact_name: test\\n rootfs-image.checksum: 32714818ad6f98ee0185a52e23a475d89122e3efd2b2c26c733781c28e798c99\\n rootfs-image.version: test\\n artifact_depends:\\n device_type:\\n - test\\n clears_artifact_provides:\\n - rootfs-image.*\\n size: 36891648\\n modified: '2016-03-11T13:03:17.063493443Z'\\n properties:\\n id:\\n type: string\\n name:\\n type: string\\n description:\\n type: string\\n device_types_compatible:\\n description: An array of compatible device types.\\n items:\\n type: string\\n type: array\\n info:\\n $ref: '#/components/schemas/ArtifactInfo'\\n signed:\\n description: Indicates if artifact is signed or not.\\n type: boolean\\n updates:\\n items:\\n $ref: '#/components/schemas/Update'\\n type: array\\n artifact_provides:\\n additionalProperties:\\n type: string\\n description: |\\n List of Artifact provides.\\n\\n Map of key/value pairs, where both keys and values are strings.\\n type: object\\n artifact_depends:\\n additionalProperties:\\n items:\\n type: string\\n type: array\\n description: |\\n List of Artifact depends.\\n\\n Map of key/value pairs, where keys are strings and values are lists of strings.\\n type: object\\n clears_artifact_provides:\\n description: List of Clear Artifact provides.\\n items:\\n type: string\\n type: array\\n size:\\n description: |\\n Artifact total size in bytes - the size of the actual file that will be transferred to the device (compressed).\\n type: integer\\n modified:\\n description: |\\n Represents creation / last edition of any of the artifact properties.\\n format: date-time\\n type: string\\n required:\\n - device_types_compatible\\n - id\\n - modified\\n - name\\n type: object\\n ArtifactUploadLink:\\n description: URL for artifact file upload.\\n example:\\n id: 07d2e773-a2a3-4f64-936a-4245e79194dd\\n uri: https://hosted-mender-artifacts.s3.amazonaws.com/1234/40df67c4-e5e9-4042-981a-f43adebd5b88?X-Amz-Date=20230401T000000Z&X-Amz-Expires=900&X-Amz-Signature=6d656e646572\\n expire: '2023-04-01T00:15:00Z'\\n properties:\\n id:\\n description: The ID of the artifact upload intent.\\n format: uuid\\n type: string\\n uri:\\n type: string\\n expire:\\n format: date-time\\n type: string\\n required:\\n - expire\\n - id\\n - uri\\n type: object\\n ReleasesV1:\\n description: List of releases\\n items:\\n $ref: '#/components/schemas/ReleaseV1'\\n type: array\\n ReleaseV1:\\n description: Groups artifacts with the same release name into a single resource.\\n example:\\n name: my-app-v1.0.1\\n artifacts:\\n - id: 0c13a0e6-6b63-475d-8260-ee42a590e8ff\\n name: Application 1.0.0\\n description: Johns Monday test build\\n device_types_compatible:\\n - Beagle Bone\\n info:\\n format: mender\\n version: 3\\n updates:\\n - type_info:\\n type: rootfs-image\\n files:\\n - name: rootfs-image-1\\n checksum: cc436f982bc60a8255fe1926a450db5f195a19ad\\n size: 123\\n date: 2016-03-11T13:03:17.063+0000\\n metadata: {}\\n meta_data: []\\n artifact_provides:\\n artifact_name: test\\n rootfs-image.checksum: 32714818ad6f98ee0185a52e23a475d89122e3efd2b2c26c733781c28e798c99\\n rootfs-image.version: test\\n artifact_depends:\\n device_type:\\n - test\\n clears_artifact_provides:\\n - rootfs-image.*\\n size: 36891648\\n modified: '2016-03-11T13:03:17.063493443Z'\\n - id: 0c13a0e6-6b63-475d-8260-ee42a590e8ff\\n name: Application 1.0.0\\n description: Johns Monday test build\\n device_types_compatible:\\n - Raspberry Pi\\n info:\\n format: mender\\n version: 3\\n updates:\\n - type_info:\\n type: rootfs-image\\n files:\\n - name: rootfs-image-1\\n checksum: cc436f982bc60a8255fe1926a450db5f195a19ad\\n size: 123\\n date: 2016-03-11T13:03:17.063+0000\\n metadata: {}\\n meta_data: []\\n artifact_provides:\\n artifact_name: test\\n rootfs-image.checksum: 32714818ad6f98ee0185a52e23a475d89122e3efd2b2c26c733781c28e798c99\\n rootfs-image.version: test\\n artifact_depends:\\n device_type:\\n - test\\n clears_artifact_provides:\\n - rootfs-image.*\\n size: 36891648\\n modified: '2016-03-11T13:03:17.063493443Z'\\n properties:\\n Name:\\n description: |\\n release name.\\n type: string\\n modified:\\n description: |\\n Last modification time for the release.\\n format: date-time\\n type: string\\n Artifacts:\\n description: List of artifacts for this release.\\n items:\\n $ref: '#/components/schemas/ArtifactV1'\\n type: array\\n ArtifactsCount:\\n description: Number of artifacts.\\n type: integer\\n tags:\\n description: |-\\n Tags assigned to the release used for filtering releases. Each tag\\n must be valid a ASCII string and contain only lowercase and uppercase\\n letters, digits, underscores, periods and hyphens.\\n items:\\n type: string\\n type: array\\n notes:\\n description: |\\n Additional information describing a Release limited to 1024 characters. Please use the v2 API to set this field.\\n type: string\\n type: object\\n BinaryDeltaConfigurationUpdate:\\n description: The mender-binary-delta-generator configuration options.\\n example:\\n xdelta_args:\\n compression_level: 1\\n instruction_buffer_size: 1024\\n input_window_size: 65536\\n compression_duplicates_window: 1024\\n source_window_size: 65536\\n properties:\\n xdelta_args:\\n $ref: '#/components/schemas/XDeltaArgs'\\n type: object\\n DirectUploadMetadata:\\n description: Artifact metadata\\n example:\\n size: 0\\n updates:\\n - type_info:\\n type: type\\n metadata: {}\\n meta_data: []\\n files:\\n - date: '2000-01-23T04:56:07.000+00:00'\\n size: 6\\n name: name\\n checksum: checksum\\n - date: '2000-01-23T04:56:07.000+00:00'\\n size: 6\\n name: name\\n checksum: checksum\\n - type_info:\\n type: type\\n metadata: {}\\n meta_data: []\\n files:\\n - date: '2000-01-23T04:56:07.000+00:00'\\n size: 6\\n name: name\\n checksum: checksum\\n - date: '2000-01-23T04:56:07.000+00:00'\\n size: 6\\n name: name\\n checksum: checksum\\n properties:\\n size:\\n description: |\\n wsize of the artifact file.\\n type: integer\\n updates:\\n description: List of updates for this artifact.\\n items:\\n $ref: '#/components/schemas/Update'\\n type: array\\n type: object\\n DeploymentIdentifier:\\n description: Deployment identifier\\n example:\\n deployment_ids:\\n - deployment_ids\\n - deployment_ids\\n properties:\\n deployment_ids:\\n items:\\n description: The list of deployment IDs\\n type: string\\n type: array\\n type: object\\n FilterV1:\\n description: |\\n Filter built based on devices targeted by the deployment.\\n example:\\n id: myfilter\\n name: My Filter\\n terms:\\n - scope: system\\n attribute: group\\n type: $eq\\n value: groupName\\n properties:\\n id:\\n description: |\\n Unique identifier of the saved filter.\\n type: string\\n name:\\n description: |\\n Name of the saved filter.\\n type: string\\n terms:\\n items:\\n $ref: '#/components/schemas/AttributeFilterPredicate'\\n type: array\\n required:\\n - terms\\n type: object\\n DeploymentStatusStatisticsList200ResponseInner:\\n example:\\n stats:\\n success: 3\\n pending: 1\\n failure: 0\\n downloading: 1\\n installing: 2\\n rebooting: 3\\n noartifact: 0\\n artifact_too_big: 0\\n already-installed: 0\\n aborted: 0\\n pause_before_installing: 0\\n pause_before_rebooting: 0\\n pause_before_committing: 0\\n incompatible_tier: 0\\n id: id\\n properties:\\n id:\\n description: The deployment ID\\n type: string\\n stats:\\n $ref: '#/components/schemas/Statistics'\\n type: object\\n PatchDeploymentControlMapRequest:\\n description: Update control map.\\n properties:\\n update_control_map:\\n properties: {}\\n type: object\\n type: object\\n AbortDeploymentRequest:\\n properties:\\n status:\\n enum:\\n - aborted\\n type: string\\n required:\\n - status\\n type: object\\n CompleteDirectUpload404Response:\\n example:\\n error: error\\n request_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91\\n properties:\\n error:\\n type: string\\n request_id:\\n description: 'Request identifier (Header: X-Men-Requestid)'\\n format: uuid\\n type: string\\n type: object\\n GenerateArtifactRequest:\\n properties:\\n name:\\n description: Name of the artifact to generate.\\n type: string\\n description:\\n description: Description of the artifact to generate.\\n type: string\\n device_types_compatible:\\n description: An array of compatible device types.\\n items:\\n type: string\\n type: array\\n type:\\n description: Update Module used to generate the artifact.\\n enum:\\n - single_file\\n type: string\\n args:\\n description: |\\n String that represents a JSON document defining the arguments used to generate the artifact.\\n The service won't parse the content of this parameter and pass it as it is to the create artifact worker.\\n The available arguments and options depend on the Update Module implementation and are, therefore, Type-specific.\\n type: string\\n file:\\n description: Raw file to be used to generate the artifact. It has to be the last part of request.\\n format: binary\\n type: string\\n required:\\n - device_types_compatible\\n - file\\n - name\\n - type\\n type: object\\n DeploymentPhaseStatus:\\n description: |\\n Status of a single deployment phase.\\n\\n * `pending` - the phase has not started yet; its `start_ts` is in the\\n future and no device has been assigned to it.\\n * `inprogress` - the phase has started and is still accepting devices;\\n fewer devices than the phase batch size have requested an update.\\n * `finished` - the phase is complete; either its batch size has been\\n reached, or the deployment finished or was aborted before the phase\\n could accept more devices.\\n enum:\\n - pending\\n - inprogress\\n - finished\\n x-enum-varnames:\\n - DEPLOYMENT_PHASE_STATUS_PENDING\\n - DEPLOYMENT_PHASE_STATUS_INPROGRESS\\n - DEPLOYMENT_PHASE_STATUS_FINISHED\\n type: string\\n DeploymentPhaseSpec:\\n type: object\\n description: |\\n Deployments phases define a starting point and a batch size of devices\\n to which the deployment applies.\\n\\n A single phase allows scheduling a deployment to start at a specific\\n time.\\n\\n Multiple phases split the deployment into smaller batches of devices\\n at the time giving a higher level of control of the rate devices are\\n updated.\\n\\n *NOTE*: Professional plan is only allowed to specify a single phase to\\n schedule deployments, this feature is not available for Starter plan.\\n example:\\n id: '1'\\n start_ts: '2020-07-06T15:04:49.114046203+02:00'\\n batch_size: 5\\n device_count: 42\\n status: inprogress\\n properties:\\n id:\\n description: |\\n Phase identifier.\\n\\n For a phase generated from a `uniform_phases` configuration, this is\\n the 1-based position of the phase in the rollout, as a string\\n (`\\\"1\\\"`, `\\\"2\\\"`, ...).\\n type: string\\n start_ts:\\n description: |\\n Start date of a phase.\\n Can be skipped for the first phase of a new deployment definition ('start immediately').\\n\\n For a phase generated from a `uniform_phases` configuration, this is\\n always set: the configured `start_ts` plus the configured\\n `time_interval` multiplied by the number of preceding phases.\\n format: date-time\\n type: string\\n device_count:\\n description: |\\n Number of devices which already requested an update within this phase.\\n type: integer\\n initial_batch_device_count:\\n description: |\\n Exact number of devices in this phase at the deployment creation.\\n We provide this field to ease the information of actual number of devices\\n in a phase in case of a percentage based batch size.\\n type: integer\\n status:\\n $ref: '#/components/schemas/DeploymentPhaseStatus'\\n DeploymentBatchSizeSpec:\\n type: object\\n properties:\\n batch_size_devices:\\n description: |\\n Exact number of devices to update in this phase.\\n This field is optional for the last phase, which will contain the remaining devices.\\n type: integer\\n batch_size:\\n description: |\\n Percentage of devices to update in the phase.\\n This field is optional for the last phase.\\n The last phase will contain the rest of the devices.\\n Note that if the percentage of devices entered does not\\n add up to a whole number of devices it is rounded down,\\n and in the case it is rounded down to zero, a 400 error\\n will be returned. This is mostly a concern when the deployment\\n consists of a low number of devices, like say 5 percent of 11\\n devices will round to zero, and an error is returned by the server.\\n type: integer\\n DeploymentPhase:\\n allOf:\\n - $ref: '#/components/schemas/DeploymentPhaseSpec'\\n - $ref: '#/components/schemas/DeploymentBatchSizeSpec'\\n DeploymentUniformPhaseSpec:\\n type: object\\n x-mender-plan:\\n - professional\\n - enterprise\\n description: |\\n Uniform phases configuration describing the rollout pattern\\n where `batch_size_devices` number of devices are scheduled for update\\n every `time_interval`.\\n\\n Only this configuration is submitted when creating a deployment; the\\n phases themselves are generated by the server. A deployment object\\n returned by the API carries both the configuration and the generated\\n phases, in the deployment's `phases` field.\\n properties:\\n start_ts:\\n description: |\\n Start time stamp for the deployment of the first phase.\\n If unset, the deployment starts immediately.\\n format: date-time\\n type: string\\n time_interval:\\n description: |\\n The time between successive phases to start.\\n type: string\\n format: duration\\n DeploymentUniformPhase:\\n allOf:\\n - $ref: '#/components/schemas/DeploymentUniformPhaseSpec'\\n - $ref: '#/components/schemas/DeploymentBatchSizeSpec'\\n example:\\n start_ts: '2020-07-06T17:00:00Z'\\n time_interval: 1h\\n batch_size_devices: 25\\n Statistics:\\n example:\\n success: 3\\n pending: 1\\n failure: 0\\n downloading: 1\\n installing: 2\\n rebooting: 3\\n noartifact: 0\\n artifact_too_big: 0\\n already-installed: 0\\n aborted: 0\\n pause_before_installing: 0\\n pause_before_rebooting: 0\\n pause_before_committing: 0\\n incompatible_tier: 0\\n properties:\\n success:\\n description: Number of successful deployments.\\n type: integer\\n pending:\\n description: Number of pending deployments.\\n type: integer\\n downloading:\\n description: Number of deployments being downloaded.\\n type: integer\\n rebooting:\\n description: Number of deployments devices are rebooting into.\\n type: integer\\n installing:\\n description: Number of deployments devices being installed.\\n type: integer\\n failure:\\n description: Number of failed deployments.\\n type: integer\\n noartifact:\\n description: Do not have appropriate artifact for device type.\\n type: integer\\n artifact_too_big:\\n description: Artifact size exceeded limit for distribution to the device\\n type: integer\\n already-installed:\\n description: Number of devices unaffected by upgrade, since they are already running the specified software version.\\n type: integer\\n aborted:\\n description: Number of deployments aborted by user.\\n type: integer\\n pause_before_installing:\\n description: Number of deployments paused before install state.\\n type: integer\\n pause_before_rebooting:\\n description: Number of deployments paused before reboot phase.\\n type: integer\\n pause_before_committing:\\n description: Number of deployments paused before commit phase.\\n type: integer\\n incompatible_tier:\\n description: Number of deployments skipped due to device tier and software type incompatibility.\\n type: integer\\n required:\\n - aborted\\n - already-installed\\n - downloading\\n - failure\\n - incompatible_tier\\n - installing\\n - noartifact\\n - artifact_too_big\\n - pause_before_committing\\n - pause_before_installing\\n - pause_before_rebooting\\n - pending\\n - rebooting\\n - success\\n type: object\\n DeploymentStatistics:\\n properties:\\n status:\\n $ref: '#/components/schemas/Statistics'\\n total_size:\\n description: |\\n Sum of sizes (in bytes) of all artifacts assigned to all device deployments,\\n which are part of this deployment.\\n If the same artifact is assigned to multiple device deployments,\\n its size will be counted multiple times.\\n type: integer\\n type: object\\n AttributeFilterPredicate:\\n description: Attribute filter predicate\\n example:\\n type: $eq\\n attribute: serial_no\\n scope: inventory\\n value: '123456789'\\n properties:\\n scope:\\n $ref: '#/components/schemas/Scope'\\n attribute:\\n description: |\\n Name of the attribute to be queried for filtering.\\n type: string\\n type:\\n description: Type or operator of the filter predicate.\\n enum:\\n - $eq\\n - $gt\\n - $gte\\n - $in\\n - $lt\\n - $lte\\n - $ne\\n - $nin\\n - $exists\\n type: string\\n value:\\n description: |\\n The value of the attribute to be used in filtering.\\n Attribute type is implicit, inferred from the JSON type.\\n Supported types: number, string, array of numbers, array of strings.\\n Mixed arrays are not allowed.\\n oneOf:\\n - type: string\\n - type: number\\n - type: array\\n items:\\n type: string\\n - type: array\\n items:\\n type: number\\n required:\\n - attribute\\n - scope\\n - type\\n - value\\n type: object\\n DeploymentDeviceStatusGet:\\n enum:\\n - pause\\n - active\\n - finished\\n type: string\\n UploadArtifactRequest:\\n properties:\\n size:\\n format: long\\n deprecated: true\\n description: |\\n Size of the artifact file in bytes.\\n x-deprecated-description: |\\n Deprecated _since Mon Apr 6 2020_; Size is determined from uploaded content.\\n type: integer\\n description:\\n type: string\\n artifact:\\n description: Artifact. It has to be the last part of request.\\n format: binary\\n type: string\\n required:\\n - artifact\\n type: object\\n ErrorExt:\\n description: Error descriptor with additional metadata.\\n example:\\n error: error description\\n request_id: 11de4197-d8cf-4bd2-8a3a-29f88f238e7b\\n metadata:\\n additional: properties\\n properties:\\n error:\\n description: Description of the error.\\n type: string\\n request_id:\\n description: Request ID (same as in X-MEN-RequestID header).\\n type: string\\n metadata:\\n additionalProperties: true\\n type: object\\n required:\\n - error\\n type: object\\n StorageLimit:\\n description: Tenant account storage limit and storage usage.\\n example:\\n limit: 1073741824\\n usage: 536870912\\n properties:\\n limit:\\n description: |\\n Storage limit in bytes. If set to -1 - there is no limit for storage.\\n type: integer\\n usage:\\n description: |\\n Current storage usage in bytes.\\n type: integer\\n required:\\n - limit\\n - usage\\n type: object\\n ManifestComponentUpdateStrategy:\\n type: object\\n description: The `update_strategy` of a component from the manifest.yaml\\n required:\\n - order\\n properties:\\n order:\\n description: The installation priority (order). Lower number means higher priority.\\n type: integer\\n ManifestComponent:\\n description: |-\\n A `component` from the manifest.yaml. Every `component` will always have _at least_ one of\\n `artifact_name` and `artifact_path`. If both are defined, `artifact_path` takes precedence.\\n required:\\n - update_strategy\\n properties:\\n artifact_name:\\n type: string\\n artifact_path:\\n type: string\\n update_strategy:\\n $ref: '#/components/schemas/ManifestComponentUpdateStrategy'\\n ManifestContent:\\n description: |-\\n The content of the manifest.yaml file used to produce the Manifest and by extension the\\n file stored inside the associated Artifact.\\n required:\\n - api_version\\n - kind\\n - name\\n - system_types_compatible\\n - component_types\\n properties:\\n api_version:\\n description: The `api_version` from the manifest.yaml. Currently the only supported version is 'mender/v1'.\\n type: string\\n kind:\\n description: The `kind` from the manifest.yaml. Currently the only supported version is 'manifest'.\\n type: string\\n name:\\n description: |-\\n The name from the manifest.yaml. This will always be the same as the `name` of\\n the Manifest and associated Artifact.\\n type: string\\n system_types_compatible:\\n type: array\\n description: |-\\n The `system_types_compatible` from the manifest.yaml. This will always be the same\\n as `device_types_compatible` from the associated Artifact.\\n items:\\n type: string\\n component_types:\\n type: object\\n description: |-\\n The `component_types` from the manifest.yaml. This is a dictionary that uses component IDs as keys\\n and describes the required end state of the components of the target system after the Manifest\\n has been deployed.\\n additionalProperties:\\n $ref: '#/components/schemas/ManifestComponent'\\n type: object\\n Manifest:\\n description: A Manifest is software that only can be deployed to a Mender Orchestrator Device.\\n example:\\n name: system-core-v1\\n modified: '2026-05-17T08:56:52.063493443Z'\\n artifact:\\n id: 0c13a0e6-6b63-475d-8260-ee42a590e8ff\\n name: system-core-v1\\n description: A demo manifest\\n device_types_compatible:\\n - system-core\\n info:\\n format: mender\\n version: 3\\n updates:\\n - type_info:\\n type: mender-orchestrator-manifest\\n files:\\n - name: manifest.yaml\\n checksum: b9a5dd94a6f16546d4ad4f3e13f80b94d0ba4d101757f379572ee7daa8d31cc4\\n size: 276\\n date: 2026-03-06T16:05:58.063+0000\\n metadata: {}\\n meta_data: []\\n artifact_provides:\\n artifact_name: system-core-v1\\n data-partition.mender-orchestrator-manifest.version: system-core-v1\\n artifact_depends:\\n device_type:\\n - system-core\\n clears_artifact_provides:\\n - data-partition.mender-orchestrator-manifest.*\\n size: 5120\\n modified: '2026-04-13T08:56:52.063493443Z'\\n manifest:\\n api_version: mender/v1\\n kind: manifest\\n name: system-core-v1\\n system_types_compatible:\\n - system-core\\n component_types:\\n gateway:\\n artifact_name: gateway-v1\\n update_strategy:\\n order: 10\\n rtos:\\n artifact_path: /data/artifacts/rtos-v1\\n update_strategy:\\n order: 20\\n tags:\\n - system-core\\n - demo\\n notes: This is a demo manifest used for documentation purposes.\\n required:\\n - name\\n - artifact\\n properties:\\n name:\\n description: The name of the Manifest.\\n type: string\\n modified:\\n description: Last modification time for the Manifest.\\n format: date-time\\n type: string\\n artifact:\\n $ref: '#/components/schemas/ArtifactV2'\\n manifest:\\n $ref: '#/components/schemas/ManifestContent'\\n tags:\\n description: |-\\n Tags assigned to the Manifest used for filtering. Each tag\\n must be valid a ASCII string and contain only lowercase and uppercase\\n letters, digits, underscores, periods and hyphens.\\n items:\\n type: string\\n type: array\\n notes:\\n description: |\\n Additional information describing a Manifest limited to 1024 characters.\\n type: string\\n type: object\\n ManifestUpdate:\\n description: Update metadata update.\\n example:\\n notes: New security fixes 2026\\n tags:\\n - security\\n - production\\n properties:\\n notes:\\n description: Manifest notes.\\n type: string\\n maxLength: 1024\\n tags:\\n description: Manifest tags\\n type: array\\n items:\\n type: string\\n type: object\\n GenerateManifestRequest:\\n properties:\\n description:\\n description: Description of the manifest.\\n type: string\\n tags:\\n description: |\\n List of tags for the manifest.\\n type: array\\n items:\\n type: string\\n file:\\n description: Raw manifest.yaml to be used to generate the manifest. It has to be the last part of request.\\n format: binary\\n type: string\\n required:\\n - file\\n type: object\\n ManifestInUseError:\\n description: Manifest used by active deployment.\\n example:\\n error: active deployments are using some of the Manifests from the request\\n active_deployments:\\n - 00a0c91e6-7dec-11d0-a765-f81d4faebf6\\n request_id: f7881e82-0492-49fb-b459-795654e7188a\\n properties:\\n error:\\n description: Description of the error.\\n type: string\\n active_deployments:\\n description: List of IDs of active deployments which are using Manifests from the request.\\n items:\\n type: string\\n type: array\\n request_id:\\n description: Request ID.\\n type: string\\n type: object\\n Software:\\n description: |-\\n Software information representing either a Release or a Manifest.\\n Contains only the shared attributes common to both kinds.\\n required:\\n - name\\n - kind\\n properties:\\n name:\\n description: The name of the Software.\\n type: string\\n modified:\\n description: Last modification time for the Software.\\n format: date-time\\n type: string\\n compatible_types:\\n description: |\\n The \\\"types\\\" compatible with at least one of the Artifacts of \\n the Software. If the kind of Software is 'release', these types are \\n \\\"device types\\\" while they are \\\"system types\\\" in the case of 'manifest'\\n Software kind.\\n type: array\\n items:\\n type: string\\n kind:\\n enum:\\n - release\\n - manifest\\n type: string\\n tags:\\n description: |-\\n Tags assigned to the Software used for filtering. Each tag\\n must be valid a ASCII string and contain only lowercase and uppercase\\n letters, digits, underscores, periods and hyphens.\\n items:\\n type: string\\n type: array\\n notes:\\n description: |\\n Additional information describing a Software limited to 1024 characters.\\n type: string\\n example:\\n name: system-core-v1\\n modified: '2026-05-17T08:56:52.063493443Z'\\n kind: release\\n tags:\\n - system-core\\n - demo\\n notes: This is a demo manifest/release used for documentation purposes.\\n type: object\\n ArtifactV2:\\n description: Detailed artifact.\\n example:\\n id: 0c13a0e6-6b63-475d-8260-ee42a590e8ff\\n name: Application 1.0.0\\n description: Johns Monday test build\\n device_types_compatible:\\n - Beagle Bone\\n info:\\n format: mender\\n version: 3\\n updates:\\n - type_info:\\n type: rootfs-image\\n files:\\n - name: rootfs-image-1\\n checksum: cc436f982bc60a8255fe1926a450db5f195a19ad\\n size: 123\\n date: 2016-03-11T13:03:17.063+0000\\n metadata: {}\\n meta_data: []\\n artifact_provides:\\n artifact_name: test\\n rootfs-image.checksum: 32714818ad6f98ee0185a52e23a475d89122e3efd2b2c26c733781c28e798c99\\n rootfs-image.version: test\\n artifact_depends:\\n device_type:\\n - test\\n clears_artifact_provides:\\n - rootfs-image.*\\n size: 36891648\\n modified: '2016-03-11T13:03:17.063493443Z'\\n properties:\\n id:\\n type: string\\n name:\\n type: string\\n description:\\n type: string\\n device_types_compatible:\\n description: An array of compatible device types.\\n items:\\n type: string\\n type: array\\n info:\\n $ref: '#/components/schemas/ArtifactInfo'\\n signed:\\n description: Indicates if artifact is signed or not.\\n type: boolean\\n updates:\\n items:\\n $ref: '#/components/schemas/Update'\\n type: array\\n artifact_provides:\\n additionalProperties:\\n type: string\\n description: |\\n List of Artifact provides.\\n\\n Map of key/value pairs, where both keys and values are strings.\\n type: object\\n artifact_depends:\\n additionalProperties:\\n items:\\n type: string\\n type: array\\n description: |\\n List of Artifact depends.\\n\\n Map of key/value pairs, where keys are strings and values are lists of strings.\\n type: object\\n clears_artifact_provides:\\n description: List of Clear Artifact provides.\\n items:\\n type: string\\n type: array\\n size:\\n description: |\\n Artifact total size in bytes - the size of the actual file that will be transferred to the device (compressed).\\n type: integer\\n modified:\\n description: |\\n Represents creation / last edition of any of the artifact properties.\\n format: date-time\\n type: string\\n required:\\n - description\\n - device_types_compatible\\n - id\\n - modified\\n - name\\n type: object\\n UploadManifestRequest:\\n allOf:\\n - properties:\\n tags:\\n description: |\\n List of tags for the manifest.\\n type: array\\n items:\\n type: string\\n - $ref: '#/components/schemas/UploadArtifactRequest'\\n Tags:\\n description: |-\\n Tags assigned to software used for filtering. Each tag\\n must be valid a ASCII string and contain only lowercase and uppercase\\n letters, digits, underscores, periods and hyphens.\\n items:\\n type: string\\n type: array\\n ReleasesV2:\\n description: List of releases\\n items:\\n $ref: '#/components/schemas/ReleaseV2'\\n type: array\\n ReleaseV2:\\n description: Groups artifacts with the same release name into a single resource.\\n example:\\n name: my-app-v1.0.1\\n artifacts:\\n - id: 0c13a0e6-6b63-475d-8260-ee42a590e8ff\\n name: Application 1.0.0\\n description: Johns Monday test build\\n device_types_compatible:\\n - Beagle Bone\\n info:\\n format: mender\\n version: 3\\n updates:\\n - type_info:\\n type: rootfs-image\\n files:\\n - name: rootfs-image-1\\n checksum: cc436f982bc60a8255fe1926a450db5f195a19ad\\n size: 123\\n date: 2016-03-11T13:03:17.063+0000\\n metadata: {}\\n meta_data: []\\n artifact_provides:\\n artifact_name: test\\n rootfs-image.checksum: 32714818ad6f98ee0185a52e23a475d89122e3efd2b2c26c733781c28e798c99\\n rootfs-image.version: test\\n artifact_depends:\\n device_type:\\n - test\\n clears_artifact_provides:\\n - rootfs-image.*\\n size: 36891648\\n modified: '2016-03-11T13:03:17.063493443Z'\\n - id: 0c13a0e6-6b63-475d-8260-ee42a590e8ff\\n name: Application 1.0.0\\n description: Johns Monday test build\\n device_types_compatible:\\n - Raspberry Pi\\n info:\\n format: mender\\n version: 3\\n updates:\\n - type_info:\\n type: rootfs-image\\n files:\\n - name: rootfs-image-1\\n checksum: cc436f982bc60a8255fe1926a450db5f195a19ad\\n size: 123\\n date: 2016-03-11T13:03:17.063+0000\\n metadata: {}\\n meta_data: []\\n artifact_provides:\\n artifact_name: test\\n rootfs-image.checksum: 32714818ad6f98ee0185a52e23a475d89122e3efd2b2c26c733781c28e798c99\\n rootfs-image.version: test\\n artifact_depends:\\n device_type:\\n - test\\n clears_artifact_provides:\\n - rootfs-image.*\\n size: 36891648\\n modified: '2016-03-11T13:03:17.063493443Z'\\n properties:\\n name:\\n description: |\\n release name.\\n type: string\\n modified:\\n description: |\\n Last modification time for the release.\\n format: date-time\\n type: string\\n artifacts:\\n description: List of artifacts for this release.\\n items:\\n $ref: '#/components/schemas/ArtifactV2'\\n type: array\\n tags:\\n description: |-\\n Tags assigned to the release used for filtering releases. Each tag\\n must be valid a ASCII string and contain only lowercase and uppercase\\n letters, digits, underscores, periods and hyphens.\\n items:\\n type: string\\n type: array\\n notes:\\n description: |\\n Additional information describing a Release limited to 1024 characters. Please use the v2 API to set this field.\\n type: string\\n type: object\\n ReleaseUpdate:\\n description: Fields to be updated in the given Release.\\n example:\\n notes: New security fixes 2023\\n properties:\\n notes:\\n description: Release notes, limited to maximum length.\\n type: string\\n type: object\\n UpdateTypes:\\n description: Update types as present in the images.\\n items:\\n type: string\\n type: array\\n FilterV2:\\n description: Inventory filter assigned to the deployment\\n example:\\n id: myfilter\\n name: My Filter\\n terms:\\n - scope: inventory\\n attribute: serial_no\\n type: $eq\\n value: '123456789'\\n properties:\\n id:\\n description: |\\n Unique identifier of the saved filter.\\n type: string\\n name:\\n description: |\\n Name of the saved filter.\\n type: string\\n terms:\\n items:\\n $ref: '#/components/schemas/AttributeFilterPredicate'\\n type: array\\n required:\\n - id\\n - name\\n type: object\\n DeploymentV2:\\n example:\\n created: '2016-02-11T13:03:17.063493443Z'\\n status: finished\\n name: production\\n artifact_name: Application 0.0.1\\n id: 00a0c91e6-7dec-11d0-a765-f81d4faebf6\\n finished: '2016-03-11T13:03:17.063493443Z'\\n phases:\\n - id: '1'\\n batch_size: 5\\n start_ts: '2020-07-06T17:04:49.114046203+02:00'\\n device_count: 25\\n status: finished\\n - id: '2'\\n batch_size: 15\\n start_ts: '2020-07-06T18:04:49.114046203+02:00'\\n device_count: 75\\n status: finished\\n - id: '3'\\n start_ts: '2020-07-06T19:04:49.114046203+02:00'\\n device_count: 210\\n status: inprogress\\n device_count: 500\\n retries: 3\\n properties:\\n id:\\n description: Deployment identifier\\n type: string\\n name:\\n description: Name of the deployment\\n type: string\\n artifact_name:\\n description: Name of the artifact to deploy\\n type: string\\n created:\\n description: Deployment's creation date and time\\n format: date-time\\n type: string\\n finished:\\n description: Deployment's completion date and time\\n format: date-time\\n type: string\\n status:\\n description: Status of the deployment\\n enum:\\n - scheduled\\n - pending\\n - inprogress\\n - finished\\n type: string\\n device_count:\\n description: Number of devices the deployment acted upon\\n type: integer\\n artifacts:\\n description: An array of artifact's identifiers.\\n items:\\n type: string\\n type: array\\n groups:\\n description: |\\n An array of groups the devices targeted by the deployment belong to.\\n Available only if the user created the deployment for a group or a single device (if the device was in a static group).\\n items:\\n type: string\\n type: array\\n phases:\\n description: |\\n An array of the deployment's phases, ordered by `start_ts`.\\n\\n For a deployment created with an explicit list of `phases`, this is\\n that list together with the current state of every phase.\\n\\n For a deployment created with a `uniform_phases` configuration, this\\n is the list of phases generated from that configuration.\\n items:\\n $ref: '#/components/schemas/DeploymentPhase'\\n type: array\\n uniform_phases:\\n $ref: '#/components/schemas/DeploymentUniformPhase'\\n retries:\\n description: The number of times a device can retry the deployment in case of failure, defaults to 0\\n type: integer\\n update_control_map:\\n additionalProperties: true\\n description: |\\n A valid JSON object defining the update control map.\\n *NOTE*: Available only in the Enterprise plan.\\n type: object\\n x-mender-plan:\\n - enterprise\\n max_devices:\\n description: |\\n max_devices denotes a limit on a number of completed deployments (failed or successful) above which the dynamic deployment will be finished.\\n type: integer\\n initial_device_count:\\n description: |\\n In case of dynamic deployments this is a number of devices targeted initially (matching the filter at the moment of deployment creation).\\n type: integer\\n dynamic:\\n description: |\\n Flag indicating if the deployment is dynamic or not.\\n type: boolean\\n filter:\\n $ref: '#/components/schemas/FilterV2'\\n type:\\n enum:\\n - configuration\\n - software\\n type: string\\n configuration:\\n description: |\\n A string containing a configuration object provided\\n with the deployment constructor.\\n type: string\\n autogenerate_delta:\\n description: |\\n The flag indicating if the autogeneration of delta artifacts is enabled for a given deployment.\\n type: boolean\\n statistics:\\n $ref: '#/components/schemas/DeploymentStatistics'\\n required:\\n - artifact_name\\n - created\\n - device_count\\n - id\\n - name\\n - status\\n type: object\\n NewDeploymentV2TypeManagement:\\n example:\\n name: production\\n artifact_name: Application 0.0.1\\n filter_id: 00a0c91e6-7dec-11d0-a765-f81d4faebf6\\n phases:\\n - batch_size: 5\\n start_ts: '2020-07-06T17:04:49.114046203+02:00'\\n - batch_size: 15\\n start_ts: '2020-07-06T18:04:49.114046203+02:00'\\n - start_ts: '2020-07-06T19:04:49.114046203+02:00'\\n retries: 3\\n properties:\\n name:\\n type: string\\n artifact_name:\\n type: string\\n filter_id:\\n description: ID of a filter from inventory service.\\n type: string\\n phases:\\n description: |\\n Phased rollout feature is available only to Enterprise users.\\n items:\\n $ref: '#/components/schemas/NewDeploymentPhaseTypeManagement'\\n type: array\\n uniform_phases:\\n $ref: '#/components/schemas/DeploymentUniformPhase'\\n retries:\\n description: The number of times a device can retry the deployment in case of failure, defaults to 0\\n type: integer\\n max_devices:\\n description: |\\n max_devices denotes a limit on a number of completed deployments (failed or successful) above which the dynamic deployment will be finished\\n type: integer\\n update_control_map:\\n additionalProperties: true\\n description: |\\n A valid JSON object defining the update control map.\\n *NOTE*: Available only in the Enterprise plan.\\n type: object\\n x-mender-plan:\\n - enterprise\\n autogenerate_delta:\\n default: false\\n description: |\\n The flag indicating if the autogeneration of delta artifacts is enabled for a given deployment.\\n type: boolean\\n required:\\n - artifact_name\\n - filter_id\\n - name\\n type: object\\n ReleasesDeleteError:\\n description: Releases used by active deployment.\\n example:\\n error: active deployments are using some of the releases from the request\\n request_id: f7881e82-0492-49fb-b459-795654e7188a\\n properties:\\n error:\\n description: Description of the error.\\n type: string\\n active_deployments:\\n description: List of IDs of active deployments which are using releases from the request.\\n items:\\n type: string\\n type: array\\n request_id:\\n description: Request ID (same as in X-MEN-RequestID header).\\n type: string\\n type: object\\n DeltaJobsListItem:\\n type: object\\n properties:\\n id:\\n type: string\\n format: uuid\\n description: |\\n Identifier of the job\\n deployment_id:\\n type: string\\n format: uuid\\n description: |\\n Identifier of a deployment\\n delta_job_id:\\n type: string\\n description: |\\n Workflows id that corresponds to the job executed by the generator, it is an internal id important\\n to include in case of support requests\\n to_version:\\n type: string\\n description: |\\n Release or artifact name of the second argument that we used to generate the delta\\n from_version:\\n type: string\\n description: |\\n Release or artifact name of the first argument that we used to generate the delta\\n details:\\n type: string\\n description: |\\n Details of the delta generation job\\n devices_types_compatible:\\n type: array\\n items:\\n type: string\\n description: |\\n Array of the devices types names compatible with this artifact\\n started:\\n type: string\\n format: date-time\\n description: |\\n Date we started the generation\\n finished:\\n type: string\\n format: date-time\\n description: Time when the generation terminated.\\n total_time:\\n type: string\\n description: The duration for the delta generation.\\n status:\\n type: string\\n enum:\\n - pending\\n - queued\\n - success\\n - failed\\n description: |\\n Generation status\\n example:\\n id: bb2a1d7f-a275-4045-be54-ec701f11659c\\n delta_job_id: 67e4310d82ba0eead4e41cbf\\n to_version: release-1024-rofs-no-deps-sum\\n from_version: release-256-rofs-no-deps-sum\\n devices_types_compatible:\\n - raspberrypi4\\n - raspberrypi3\\n started: '2025-03-26T16:53:33.592Z'\\n finished: '2025-03-26T16:59:15.713Z'\\n total_time: 5m42s\\n status: success\\n DeltaJobDetailsItem:\\n allOf:\\n - $ref: '#/components/schemas/DeltaJobsListItem'\\n - type: object\\n properties:\\n to_release:\\n type: string\\n deprecated: true\\n description: |\\n Target release name\\n x-deprecated-description: |\\n _since Wed Dec 03 2025_ this field is deprecated; contains the same information as to_version.\\n from_release:\\n type: string\\n deprecated: true\\n description: |\\n Source release name\\n x-deprecated-description: |\\n _since Wed Dec 03 2025_ this field is deprecated; contains the same information as from_version.\\n exit_code:\\n type: number\\n description: |\\n Exit code of the delta generation job\\n target_size:\\n type: number\\n description: |\\n Size of the target artifact\\n delta_artifact_size:\\n type: number\\n description: |\\n Size of the resulting delta artifact\\n - example:\\n deployment_id: 455ac5e4-16ec-428e-9a2e-6bda6653a727\\n device_types_compatible:\\n - raspberrypi4\\n - raspberrypi3\\n from_release: my-release-1\\n to_release: my-release-2\\n status: success\\n details: |\\n 2025-05-05T17:25:40Z generation job scheduled\\n 2025-05-05T17:27:10Z finished successfully\\\"\\n exit_code: 0\\n target_size: 134217728\\n delta_artifact_size: 12288\\n AuthRequest:\\n type: object\\n required:\\n - id_data\\n - pubkey\\n properties:\\n id_data:\\n type: string\\n description: Vendor-specific JSON representation of the device identity data (MACs, serial numbers, etc.).\\n pubkey:\\n type: string\\n description: |\\n The device's public key (PEM encoding), generated by the device or pre-provisioned by the vendor. Currently supported public algorithms are: RSA, Ed25519 and ECDSA P-256.\\n tenant_token:\\n type: string\\n description: Tenant token.\\n tier:\\n type: string\\n description: A device tier.\\n enum:\\n - standard\\n - micro\\n - system\\n external_id:\\n type: string\\n description: |\\n External identity which can be used to verify devices managed by cloud providers.\\n Currently, only Azure IoT Edge devices are supported.\\n example:\\n id_data: '{\\\"mac\\\":\\\"00:01:02:03:04:05\\\"}'\\n pubkey: |\\n -----BEGIN PUBLIC KEY-----\\n MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzogVU7RGDilbsoUt/DdH\\n VJvcepl0A5+xzGQ50cq1VE/Dyyy8Zp0jzRXCnnu9nu395mAFSZGotZVr+sWEpO3c\\n yC3VmXdBZmXmQdZqbdD/GuixJOYfqta2ytbIUPRXFN7/I7sgzxnXWBYXYmObYvdP\\n okP0mQanY+WKxp7Q16pt1RoqoAd0kmV39g13rFl35muSHbSBoAW3GBF3gO+mF5Ty\\n 1ddp/XcgLOsmvNNjY+2HOD5F/RX0fs07mWnbD7x+xz7KEKjF+H7ZpkqCwmwCXaf0\\n iyYyh1852rti3Afw4mDxuVSD7sd9ggvYMc0QHIpQNkD4YWOhNiE1AB0zH57VbUYG\\n UwIDAQAB\\n -----END PUBLIC KEY-----\\n UdpateDeviceAuth:\\n type: object\\n properties:\\n provisioned:\\n type: boolean\\n description: If true, marks the device as provisioned\\n ExternalDevice:\\n type: object\\n description: External device descriptor\\n properties:\\n id:\\n type: string\\n description: ID assigned by external provider\\n name:\\n type: string\\n description: Name of the device\\n provider:\\n type: string\\n description: Name of the external provider\\n id_data:\\n type: string\\n description: Optional custom ID data\\n required:\\n - id\\n - name\\n - provider\\n DeviceTierLimits:\\n description: Device limits\\n type: object\\n properties:\\n standard:\\n type: integer\\n description: |\\n The number of standard tier devices that can be accepted by the tenant.\\n A value of -1 means that an unlimited amount of standard tier devices can be accepted.\\n micro:\\n type: integer\\n description: |\\n The number of micro tier devices that can be accepted by the tenant.\\n A value of -1 means that an unlimited amount of micro tier devices can be accepted.\\n system:\\n type: integer\\n description: |\\n The number of system tier devices that can be accepted by the tenant.\\n A value of -1 means that an unlimited amount of system tier devices can be accepted.\\n test:\\n type: integer\\n description: |\\n The number of test devices that can be accepted by the tenant.\\n A value of -1 means that an unlimited amount of test devices can be accepted.\\n required:\\n - standard\\n - micro\\n - system\\n - test\\n example:\\n standard: 100\\n micro: 1000\\n system: 10\\n test: 0\\n DeviceLimit:\\n description: Limit definition\\n type: object\\n properties:\\n limit:\\n type: integer\\n required:\\n - limit\\n example:\\n limit: 123\\n Status:\\n description: Admission status of the device.\\n type: object\\n properties:\\n status:\\n type: string\\n enum:\\n - pending\\n - accepted\\n - rejected\\n - preauthorized\\n required:\\n - status\\n example:\\n status: accepted\\n ExternalIdentity:\\n description: |\\n Device external identity.\\n type: object\\n additionalProperties: true\\n properties:\\n data:\\n description: External identity.\\n type: string\\n active:\\n description: Status flag.\\n type: boolean\\n example:\\n data: iot-hub device-id/module-id\\n DeviceFlags:\\n type: object\\n properties:\\n test_device:\\n description: Enables shorter polling interval for testing/evaluation.\\n type: boolean\\n Device:\\n type: object\\n properties:\\n id:\\n type: string\\n description: Mender assigned Device ID.\\n identity_data:\\n $ref: '#/components/schemas/IdentityData'\\n status:\\n type: string\\n x-go-name: DeviceAuthStatus\\n enum:\\n - pending\\n - accepted\\n - rejected\\n - preauthorized\\n - noauth\\n created_ts:\\n type: string\\n format: date-time\\n description: Created timestamp\\n updated_ts:\\n type: string\\n format: date-time\\n description: Updated timestamp\\n check_in_time:\\n type: string\\n format: date-time\\n description: Time when accepted device contacted server for the last time.\\n auth_sets:\\n type: array\\n items:\\n $ref: '#/components/schemas/AuthSet'\\n decommissioning:\\n type: boolean\\n description: Devices that are part of ongoing decommissioning process will return True\\n external_id:\\n $ref: '#/components/schemas/ExternalIdentity'\\n tier:\\n type: string\\n enum:\\n - standard\\n - micro\\n - system\\n flags:\\n $ref: '#/components/schemas/DeviceFlags'\\n Count:\\n description: Counter type\\n type: object\\n properties:\\n count:\\n description: The count of requested items.\\n type: integer\\n example:\\n count: 42\\n PreAuthSet:\\n type: object\\n properties:\\n force:\\n type: boolean\\n description: Indicates that despite the device having any authsets the preauthorization should proceed.\\n identity_data:\\n $ref: '#/components/schemas/IdentityData'\\n pubkey:\\n type: string\\n description: 'The device''s public key (PEM encoding), generated by the device or pre-provisioned by the vendor. Currently supported public algorithms are: RSA, Ed25519 and ECDSA P-256.'\\n tier:\\n type: string\\n description: A device tier.\\n enum:\\n - standard\\n - micro\\n - system\\n required:\\n - identity_data\\n - pubkey\\n example:\\n identity_data:\\n mac: '00:01:02:03:04:05'\\n sku: My Device 1\\n sn: SN1234567890\\n pubkey: |\\n -----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzogVU7RGDilbsoUt/DdH VJvcepl0A5+xzGQ50cq1VE/Dyyy8Zp0jzRXCnnu9nu395mAFSZGotZVr+sWEpO3c yC3VmXdBZmXmQdZqbdD/GuixJOYfqta2ytbIUPRXFN7/I7sgzxnXWBYXYmObYvdP okP0mQanY+WKxp7Q16pt1RoqoAd0kmV39g13rFl35muSHbSBoAW3GBF3gO+mF5Ty 1ddp/XcgLOsmvNNjY+2HOD5F/RX0fs07mWnbD7x+xz7KEKjF+H7ZpkqCwmwCXaf0 iyYyh1852rti3Afw4mDxuVSD7sd9ggvYMc0QHIpQNkD4YWOhNiE1AB0zH57VbUYG UwIDAQAB -----END PUBLIC KEY-----\\n AutoAuthRequest:\\n type: object\\n description: Authentication request.\\n properties:\\n id_data:\\n type: string\\n description: Vendor-specific JSON representation of the device identity data (MACs, serial numbers, etc.).\\n pubkey:\\n type: string\\n description: |\\n The device's public key (PEM encoding), generated by the device or pre-provisioned by the vendor. Currently supported public algorithms are: RSA, ED25519 and ECDSA.\\n tenant_token:\\n type: string\\n description: Tenant token.\\n external_id:\\n type: string\\n description: |\\n External identity which can be used to verify devices managed by cloud providers.\\n Currently, only Azure IoT Edge devices are supported.\\n required:\\n - id_data\\n - pubkey\\n example:\\n id_data: '{\\\"mac\\\":\\\"00:01:02:03:04:05\\\"}'\\n pubkey: |\\n -----BEGIN PUBLIC KEY-----\\n MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzogVU7RGDilbsoUt/DdH\\n VJvcepl0A5+xzGQ50cq1VE/Dyyy8Zp0jzRXCnnu9nu395mAFSZGotZVr+sWEpO3c\\n yC3VmXdBZmXmQdZqbdD/GuixJOYfqta2ytbIUPRXFN7/I7sgzxnXWBYXYmObYvdP\\n okP0mQanY+WKxp7Q16pt1RoqoAd0kmV39g13rFl35muSHbSBoAW3GBF3gO+mF5Ty\\n 1ddp/XcgLOsmvNNjY+2HOD5F/RX0fs07mWnbD7x+xz7KEKjF+H7ZpkqCwmwCXaf0\\n iyYyh1852rti3Afw4mDxuVSD7sd9ggvYMc0QHIpQNkD4YWOhNiE1AB0zH57VbUYG\\n UwIDAQAB\\n -----END PUBLIC KEY-----\\n DeviceAPIConfiguration:\\n type: object\\n additionalProperties:\\n type: string\\n NewConfigurationDeployment:\\n type: object\\n properties:\\n retries:\\n type: integer\\n description: The number of times a device can retry the deployment in case of failure, defaults to 0\\n default: 0\\n x-mender-plan:\\n - professional\\n - enterprise\\n update_control_map:\\n x-mender-plan:\\n - enterprise\\n type: object\\n additionalProperties: true\\n description: |\\n A valid JSON object defining the update control map.\\n *NOTE*: Available only in the Enterprise plan.\\n NewConfigurationDeploymentResponse:\\n type: object\\n properties:\\n deployment_id:\\n type: string\\n description: Deployment ID\\n DeviceConfiguration:\\n type: object\\n properties:\\n id:\\n type: string\\n format: uuid\\n configured:\\n $ref: '#/components/schemas/ManagementAPIConfiguration'\\n reported:\\n $ref: '#/components/schemas/ManagementAPIConfiguration'\\n deployment_id:\\n description: ID of the latest configuration deployment\\n type: string\\n format: uuid\\n reported_ts:\\n type: string\\n format: date-time\\n updated_ts:\\n type: string\\n format: date-time\\n ConnectionState:\\n type: object\\n properties:\\n device_id:\\n type: string\\n format: uuid\\n description: Device ID.\\n status:\\n type: string\\n enum:\\n - connected\\n - disconnected\\n - unknown\\n description: Device status.\\n updated_ts:\\n description: Server-side timestamp of the last device information update.\\n format: date-time\\n type: string\\n created_ts:\\n description: Server-side timestamp of the device creation.\\n format: date-time\\n type: string\\n FileUpload:\\n type: object\\n properties:\\n path:\\n type: string\\n description: The destination path on the device\\n uid:\\n type: integer\\n description: The numerical UID of the file on the device\\n gid:\\n type: integer\\n description: The numerical GID of the file on the device\\n mode:\\n type: string\\n description: The octal representation of the mode of the file on the device\\n file:\\n type: string\\n format: binary\\n required:\\n - path\\n PostAlert:\\n description: A new alert\\n type: object\\n properties:\\n name:\\n description: |\\n A descriptive name of the alert\\n type: string\\n level:\\n description: |\\n Alert severity level\\n type: string\\n enum:\\n - OK\\n - CRITICAL\\n subject:\\n $ref: '#/components/schemas/AlertSubject'\\n timestamp:\\n description: |\\n Time and date when the alert occurred\\n type: string\\n format: date-time\\n required:\\n - name\\n - level\\n - subject\\n - timestamp\\n example:\\n name: mender-connect systemd service\\n level: CRITICAL\\n timestamp: '2019-07-21T17:32:28Z'\\n subject:\\n name: mender-connect\\n status: not-running\\n type: systemd.unit\\n details:\\n description: Description of an error.\\n lines_before:\\n - line_number: 1\\n data: Line 1 from a log file\\n - line_number: 2\\n data: Line 2 from a log file\\n line_matching:\\n line_number: 3\\n data: Line 3 from a log file\\n lines_after:\\n - line_number: 4\\n data: Line 4 from a log file\\n - line_number: 5\\n data: Line 5 from a log file\\n Alert:\\n description: Alert request\\n type: object\\n allOf:\\n - properties:\\n id:\\n description: ID of the alert\\n type: string\\n device_id:\\n description: ID of the device\\n type: string\\n - $ref: '#/components/schemas/PostAlert'\\n required:\\n - id\\n example:\\n id: 0bb917a4-f6ff-4b0f-97b6-dce617b8e6ad\\n device_id: b86dfe3d-a0a6-4838-b374-5fbcb7c956a1\\n name: mender-connect systemd service\\n level: CRITICAL\\n timestamp: '2019-07-21T17:32:28Z'\\n subject:\\n name: mender-connect\\n status: not-running\\n type: systemd.unit\\n details:\\n description: Description of an error.\\n lines_before:\\n - line_number: 1\\n data: Line 1 from a log file\\n - line_number: 2\\n data: Line 2 from a log file\\n line_matching:\\n line_number: 3\\n data: Line 3 from a log file\\n lines_after:\\n - line_number: 4\\n data: Line 4 from a log file\\n - line_number: 5\\n data: Line 5 from a log file\\n AlertSubject:\\n description: |\\n Alert subject: the description of the alert origin\\n type: object\\n properties:\\n name:\\n description: |\\n Name of an entity that caused the alert\\n type: string\\n type:\\n description: |\\n The type of executable that triggered the alert.\\n type: string\\n status:\\n description: |\\n Status of an entity that caused the alert\\n type: string\\n details:\\n $ref: '#/components/schemas/AlertDetails'\\n required:\\n - name\\n - status\\n - type\\n example:\\n name: mender-connect\\n status: not-running\\n type: systemd.unit\\n details:\\n description: Description of an error.\\n lines_before:\\n - line_number: 1\\n data: Line 1 from a log file\\n - line_number: 2\\n data: Line 2 from a log file\\n line_matching:\\n line_number: 3\\n data: Line 3 from a log file\\n lines_after:\\n - line_number: 4\\n data: Line 4 from a log file\\n - line_number: 5\\n data: Line 5 from a log file\\n AlertDetails:\\n description: |\\n Additional details on the alert.\\n type: object\\n properties:\\n description:\\n description: |\\n Alert description.\\n type: string\\n lines_before:\\n description: |\\n Log lines before matched pattern.\\n type: array\\n items:\\n $ref: '#/components/schemas/LineDescriptor'\\n minItems: 1\\n maxItems: 1024\\n lines_after:\\n description: |\\n Log lines after matched pattern.\\n type: array\\n items:\\n $ref: '#/components/schemas/LineDescriptor'\\n minItems: 1\\n maxItems: 1024\\n line_matching:\\n $ref: '#/components/schemas/LineDescriptor'\\n log_pattern:\\n type: string\\n log_file_path:\\n type: string\\n example:\\n description: Description of an error.\\n lines_before:\\n - line_number: 1\\n data: Line 1 from a log file\\n - line_number: 2\\n data: Line 2 from a log file\\n line_matching:\\n line_number: 3\\n data: Line 3 from a log file\\n lines_after:\\n - line_number: 4\\n data: Line 4 from a log file\\n - line_number: 5\\n data: Line 5 from a log file\\n log_pattern: session opened for user [a-z]*\\n log_file_path: /tmp/mylog.log\\n LineDescriptor:\\n description: |\\n Describes the data and line of a pattern-matched log line.\\n type: object\\n properties:\\n line_number:\\n type: integer\\n minimum: 1\\n data:\\n type: string\\n required:\\n - line_number\\n - data\\n DeviceMonitorConfiguration:\\n description: |\\n Monitor configuration data.\\n allOf:\\n - type: object\\n properties:\\n name:\\n type: string\\n status:\\n type: string\\n type:\\n type: string\\n required:\\n - name\\n - status\\n - type\\n MonitorDevice:\\n type: object\\n properties:\\n id:\\n type: string\\n alerts_open_count:\\n type: integer\\n alerts_total_count:\\n type: integer\\n alerts:\\n type: array\\n items:\\n $ref: '#/components/schemas/Alert'\\n required:\\n - id\\n - alerts_open_count\\n - alerts_total_count\\n - alerts\\n example:\\n id: eed14d55-d996-42cd-8248-e806663810a8\\n alerts_open_count: 1\\n alerts_total_count: 1\\n alerts:\\n - id: 0bb917a4-f6ff-4b0f-97b6-dce617b8e6ad\\n name: mender-connect systemd service\\n level: CRITICAL\\n device_id: 1298be14-b5ce-4c01-868a-acb93f35e255\\n timestamp: '2019-07-21T17:32:28Z'\\n type: systemd\\n subject:\\n name: mender-connect\\n status: not-running\\n type: systemd.unit\\n MonitorConfiguration:\\n description: |\\n Monitor configuration data.\\n allOf:\\n - type: object\\n properties:\\n name:\\n type: string\\n status:\\n type: string\\n type:\\n type: string\\n enum:\\n - log\\n - service\\n - dbus\\n required:\\n - name\\n - status\\n - type\\n - oneOf:\\n - $ref: '#/components/schemas/LogSubsystem'\\n - $ref: '#/components/schemas/ServiceSubsystem'\\n - $ref: '#/components/schemas/DBusSubsystem'\\n discriminator:\\n propertyName: type\\n LogSubsystem:\\n description: |\\n log subsystem specific configuration\\n type: object\\n properties:\\n log:\\n type: object\\n properties:\\n pattern:\\n description: |\\n Log pattern\\n type: string\\n path:\\n description: |\\n Path to the log file or command to execute to get the logs (prefixed with '@').\\n type: string\\n expire_seconds:\\n description: |\\n Number of seconds after which the pattern is considered expired and an OK is sent\\n type: integer\\n required:\\n - pattern\\n - path\\n ServiceSubsystem:\\n description: |\\n service subsystem specific configuration\\n type: object\\n properties:\\n service:\\n type: object\\n properties:\\n name:\\n description: |\\n Service name\\n type: string\\n type:\\n description: |\\n Service type\\n type: string\\n required:\\n - name\\n - type\\n DBusSubsystem:\\n description: |\\n dbus subsystem specific configuration\\n type: object\\n properties:\\n dbus:\\n type: object\\n properties:\\n name:\\n description: |\\n Check name.\\n type: string\\n pattern:\\n description: |\\n DBus pattern to look for\\n type: string\\n watch:\\n description: |\\n DBus watch expression\\n type: string\\n alert_expiration:\\n description: |\\n Number of seconds after which the alert is considered expired and an OK is sent\\n type: integer\\n required:\\n - name\\n - watch\\n - pattern\\n AttributeValueRequest:\\n oneOf:\\n - type: string\\n - type: number\\n - type: array\\n items:\\n type: string\\n - type: array\\n items:\\n type: number\\n description: |\\n The current value of the attribute.\\n\\n Attribute type is implicit, inferred from the JSON type.\\n\\n Supported types: number, string, array of numbers, array of strings.\\n Mixed arrays are not allowed.\\n DeviceAttributeRequest:\\n description: Attribute descriptor.\\n example:\\n name: serial_no\\n description: Serial number\\n value: '123456789'\\n required:\\n - name\\n - value\\n type: object\\n properties:\\n name:\\n type: string\\n description: |\\n A human readable, unique attribute ID, e.g. 'device_type', 'ip_addr', 'cpu_load', etc.\\n description:\\n type: string\\n description: Attribute description.\\n value:\\n $ref: '#/components/schemas/AttributeValueRequest'\\n DeviceNew:\\n required:\\n - id\\n type: object\\n properties:\\n id:\\n type: string\\n description: Mender-assigned unique ID.\\n updated_ts:\\n type: string\\n description: Timestamp of the most recent attribute update.\\n attributes:\\n type: array\\n description: A list of attribute descriptors.\\n items:\\n $ref: '#/components/schemas/AttributeRequest'\\n example:\\n id: 291ae0e5956c69c2267489213df4459d19ed48a806603def19d417d004a4b67e\\n attributes:\\n - name: ip_addr\\n scope: inventory\\n value: 1.2.3.4\\n description: IP address\\n - name: mac_addr\\n value: 00.01:02:03:04:05\\n description: MAC address\\n scope: inventory\\n DeviceUpdate:\\n required:\\n - id\\n - revision\\n type: object\\n properties:\\n id:\\n type: string\\n description: Device identifier.\\n revision:\\n type: integer\\n description: Device object revision.\\n description: Object containing device id and device revision of the device to update.\\n Groups:\\n required:\\n - groups\\n type: object\\n properties:\\n groups:\\n type: array\\n description: List of device's groups.\\n items:\\n type: string\\n example:\\n groups:\\n - test\\n - production\\n DevicesInGroupsReq:\\n required:\\n - devices\\n - groups\\n type: object\\n properties:\\n devices:\\n type: array\\n description: List of device IDs.\\n items:\\n type: string\\n groups:\\n type: array\\n description: List of group names.\\n items:\\n type: string\\n description: Object containing list of device IDs and list of groups.\\n AttributeRequest:\\n allOf:\\n - $ref: '#/components/schemas/DeviceAttributeRequest'\\n - description: Attribute descriptor.\\n example:\\n name: serial_no\\n scope: inventory\\n description: Serial number\\n value: '123456789'\\n required:\\n - name\\n - value\\n - scope\\n properties:\\n scope:\\n $ref: '#/components/schemas/Scope'\\n timestamp:\\n type: string\\n description: |\\n The date and time of last tag update in RFC3339 format.\\n\\n Only applicable when scope is `tags`.\\n format: date-time\\n ErrorNotFound:\\n type: object\\n properties:\\n error:\\n type: string\\n description: Description of the error.\\n request_id:\\n type: string\\n description: Request ID (same as in X-MEN-RequestID header).\\n description: Error descriptor.\\n example:\\n error: filter not found\\n request_id: f7881e82-0492-49fb-b459-795654e7188a\\n DeviceCountByTier:\\n description: Number of devices per tier\\n type: object\\n required:\\n - standard\\n - micro\\n - system\\n properties:\\n standard:\\n type: integer\\n micro:\\n type: integer\\n system:\\n type: integer\\n DeviceStatusStatistics:\\n type: object\\n description: Device statistics grouped by device status\\n required:\\n - accepted\\n - pending\\n properties:\\n accepted:\\n $ref: '#/components/schemas/DeviceCountByTier'\\n pending:\\n $ref: '#/components/schemas/DeviceCountByTier'\\n example:\\n accepted:\\n standard: 975\\n micro: 3546\\n system: 0\\n pending:\\n standard: 2\\n micro: 30\\n system: 1\\n FilterValue:\\n description: |\\n The filter value.\\n\\n Attribute type is implicit, inferred from the JSON type.\\n\\n Supported types: number, string, array of numbers, array of strings.\\n Mixed arrays are not allowed.\\n For $exists type, a boolean is required.\\n oneOf:\\n - type: string\\n - type: number\\n - type: array\\n items:\\n type: string\\n - type: array\\n items:\\n type: number\\n - type: boolean\\n FilterPredicate:\\n required:\\n - attribute\\n - scope\\n - type\\n - value\\n type: object\\n properties:\\n scope:\\n $ref: '#/components/schemas/Scope'\\n attribute:\\n type: string\\n description: Attribute name.\\n type:\\n type: string\\n description: |\\n Type or operator of the filter predicate.\\n\\n | *Operator* | *Name* | *Argument type* |\\n |:----------:|:-----------------------------|:----------------|\\n | $eq | Equal (`==`) | any |\\n | $ne | Not equal (`!=`) | any |\\n | $gt | Greater than (`>`) | any |\\n | $gte | Greater than or equal (`>=`) | any |\\n | $lt | Less than (`<`) | any |\\n | $lte | Less than or equal (`<=`) | any |\\n | $ltne | Less than or does not exist | any |\\n | $exists | Attribute exists | bool |\\n | $in | Is an element of | array |\\n | $nin | Is not an element of | array |\\n | $regex | Regex filter | string |\\n enum:\\n - $eq\\n - $gt\\n - $gte\\n - $in\\n - $lt\\n - $lte\\n - $ltne\\n - $ne\\n - $nin\\n - $exists\\n - $regex\\n value:\\n allOf:\\n - $ref: '#/components/schemas/FilterValue'\\n - description: |\\n The value of the attribute to be used in filtering.\\n\\n Attribute type is implicit, inferred from the JSON type.\\n\\n Supported types: number, string, array of numbers, array of strings.\\n Mixed arrays are not allowed.\\n\\n The $exists operator expects a boolean value: true means the specified\\n attribute exists, false means the specified attribute doesn't exist.\\n\\n The $regex operator expects a string as a Perl compatible regular expression\\n (PCRE), automatically anchored by ^. If the regular expression is not valid,\\n the filter will produce no results. If you need to specify options and flags,\\n you can provide the full regex in the format of /regex/flags, for example\\n `/[a-z]+/i`.\\n description: Attribute filter predicate\\n example:\\n attribute: serial_no\\n scope: inventory\\n type: $eq\\n value: '123456789'\\n SortCriteria:\\n description: Sort criteria definition\\n example:\\n attribute: serial_no\\n scope: inventory\\n order: asc\\n required:\\n - attribute\\n - order\\n - scope\\n type: object\\n properties:\\n attribute:\\n type: string\\n description: Attribute name.\\n scope:\\n $ref: '#/components/schemas/Scope'\\n order:\\n type: string\\n description: Sort order.\\n enum:\\n - asc\\n - desc\\n SelectAttribute:\\n required:\\n - attribute\\n - scope\\n type: object\\n properties:\\n attribute:\\n type: string\\n description: Attribute name.\\n scope:\\n $ref: '#/components/schemas/Scope'\\n description: Inventory attribute\\n example:\\n attribute: serial_no\\n scope: inventory\\n SearchParams:\\n type: object\\n properties:\\n page:\\n type: integer\\n description: Starting page.\\n per_page:\\n type: integer\\n description: Number of results per page.\\n device_ids:\\n type: array\\n description: List of device IDs\\n items:\\n type: string\\n description: Attribute filter predicate\\n text:\\n type: string\\n description: Free-text search query\\n filters:\\n type: array\\n description: List of filter predicates, chained with boolean AND operators to build the search condition definition.\\n items:\\n $ref: '#/components/schemas/FilterPredicate'\\n sort:\\n type: array\\n description: List of ordered sort criteria\\n items:\\n $ref: '#/components/schemas/SortCriteria'\\n attributes:\\n type: array\\n description: List of attributes to select and return\\n items:\\n $ref: '#/components/schemas/SelectAttribute'\\n AttributeValueResponse:\\n oneOf:\\n - type: boolean\\n - type: string\\n - type: number\\n - type: array\\n items:\\n type: string\\n - type: array\\n items:\\n type: number\\n description: |\\n The current value of the attribute.\\n\\n Attribute type is implicit, inferred from the JSON type.\\n\\n Supported types: boolean, number, string, array of numbers, array of strings.\\n Mixed arrays are not allowed.\\n AttributeResponse:\\n description: Attribute descriptor.\\n example:\\n name: serial_no\\n scope: inventory\\n description: Serial number\\n value: '123456789'\\n required:\\n - name\\n - value\\n - scope\\n properties:\\n name:\\n type: string\\n description: |\\n A human readable, unique attribute ID, e.g. 'device_type', 'ip_addr', 'cpu_load', etc.\\n description:\\n type: string\\n description: Attribute description.\\n value:\\n $ref: '#/components/schemas/AttributeValueResponse'\\n scope:\\n $ref: '#/components/schemas/Scope'\\n timestamp:\\n type: string\\n description: |\\n The date and time of last tag update in RFC3339 format.\\n\\n Only applicable when scope is `tags`.\\n format: date-time\\n DeviceInventoryResponse:\\n type: object\\n properties:\\n id:\\n type: string\\n description: Mender-assigned unique ID.\\n updated_ts:\\n type: string\\n description: Timestamp of the most recent attribute update.\\n attributes:\\n type: array\\n description: A list of attribute descriptors.\\n items:\\n $ref: '#/components/schemas/AttributeResponse'\\n identities:\\n type: array\\n description: A list of values of device identity attributes.\\n items:\\n type: string\\n example:\\n id: 291ae0e5956c69c2267489213df4459d19ed48a806603def19d417d004a4b67e\\n attributes:\\n - name: ip_addr\\n scope: inventory\\n value: 1.2.3.4\\n description: IP address\\n - name: mac_addr\\n scope: inventory\\n value: 00.01:02:03:04:05\\n description: MAC address\\n updated_ts: '2016-10-03T16:58:51.639Z'\\n Filter:\\n required:\\n - id\\n - name\\n type: object\\n properties:\\n id:\\n type: string\\n description: |\\n Unique identifier of the saved filter.\\n name:\\n type: string\\n description: |\\n Name of the saved filter.\\n terms:\\n type: array\\n items:\\n $ref: '#/components/schemas/FilterPredicate'\\n description: Filter definition\\n example:\\n id: myfilter\\n name: My Filter\\n terms:\\n - scope: inventory\\n attribute: serial_no\\n type: $eq\\n value: '123456789'\\n Tag:\\n required:\\n - name\\n - value\\n type: object\\n properties:\\n name:\\n type: string\\n description: |\\n Tag is an attribute with 'tags' scope.\\n\\n A human readable, unique tag ID, e.g. 'location', 'environment', etc.\\n description:\\n type: string\\n description: Tag description.\\n value:\\n type: string\\n description: The current value of the tag.\\n timestamp:\\n type: string\\n description: |\\n The date and time of last tag update in RFC3339 format.\\n format: date-time\\n description: Tag descriptor.\\n example:\\n name: environment\\n description: Test environment\\n value: test\\n timestamp: '2016-10-19T17:23:01.639Z'\\n Group:\\n required:\\n - group\\n type: object\\n properties:\\n group:\\n type: string\\n description: Device group.\\n example:\\n group: staging\\n FilterAttribute:\\n required:\\n - count\\n - name\\n - scope\\n type: object\\n properties:\\n name:\\n type: string\\n description: Name of the attribute.\\n scope:\\n $ref: '#/components/schemas/Scope'\\n count:\\n type: integer\\n description: Number of occurrences of the attribute in the database.\\n description: Filterable attribute\\n example:\\n name: serial_no\\n scope: inventory\\n count: 10\\n FilterDefinition:\\n type: object\\n properties:\\n name:\\n type: string\\n description: Name of the filter, must be unique.\\n example: My filter\\n terms:\\n type: array\\n description: List of filter predicates, chained with boolean AND operators to build the search condition definition.\\n items:\\n $ref: '#/components/schemas/FilterPredicate'\\n description: Filter definition\\n SearchIdentityParams:\\n type: object\\n description: Parameters for searching for inventory by their identity\\n required:\\n - name\\n - value_prefix\\n - scope\\n properties:\\n scope:\\n description: The scope of the attribute name used with the search.\\n type: string\\n enum:\\n - identity\\n - tags\\n example: identity\\n name:\\n description: The name of the attribute used with the search.\\n type: string\\n example: mac\\n value_prefix:\\n description: The prefix used to match against attribute values with 'scope' and 'name'.\\n type: string\\n example: '00:01:'\\n attributes:\\n type: array\\n description: List of attributes to select and return\\n items:\\n $ref: '#/components/schemas/SelectAttribute'\\n example:\\n - attribute: mac\\n scope: identity\\n - attribute: ip_addr\\n scope: inventory\\n page:\\n description: Starting page.\\n type: integer\\n per_page:\\n description: Number of results per page.\\n type: integer\\n maximum: 500\\n DeviceInventoryRequest:\\n type: object\\n properties:\\n id:\\n type: string\\n description: Mender-assigned unique ID.\\n updated_ts:\\n type: string\\n description: Timestamp of the most recent attribute update.\\n attributes:\\n type: array\\n description: A list of attribute descriptors.\\n items:\\n $ref: '#/components/schemas/AttributeRequest'\\n example:\\n id: 291ae0e5956c69c2267489213df4459d19ed48a806603def19d417d004a4b67e\\n attributes:\\n - name: ip_addr\\n scope: inventory\\n value: 1.2.3.4\\n description: IP address\\n - name: mac_addr\\n scope: inventory\\n value: 00.01:02:03:04:05\\n description: MAC address\\n updated_ts: '2016-10-03T16:58:51.639Z'\\n NewDeviceInternalProvisionTypeInternal:\\n type: object\\n properties:\\n id:\\n type: string\\n format: uuid\\n description: ID of the new device.\\n status:\\n type: string\\n enum:\\n - accepted\\n - noauth\\n - pending\\n - preauthorized\\n - rejected\\n description: Authorization status for the device.\\n auth_sets:\\n type: array\\n items:\\n $ref: '#/components/schemas/AuthSet'\\n created_ts:\\n type: string\\n format: date-time\\n description: The creation timestamp of the device.\\n required:\\n - id\\n Integration:\\n type: object\\n properties:\\n id:\\n type: string\\n format: uuid\\n description: A unique integration identifier generated by the mender server\\n provider:\\n type: string\\n enum:\\n - iot-hub\\n - iot-core\\n - webhook\\n credentials:\\n $ref: '#/components/schemas/Credentials'\\n description:\\n type: string\\n description: A short human readable description (max 1024 characters).\\n scopes:\\n type: array\\n items:\\n type: string\\n enum:\\n - deviceauth\\n - inventory\\n description: |\\n An array of scopes for the integration. Currently we support deviceauth\\n and inventory scopes. The former will match the events related to a device\\n state (accepted, decommissioned), while the latter the inventory changed event.\\n required:\\n - provider\\n - credentials\\n Credentials:\\n oneOf:\\n - $ref: '#/components/schemas/AWSCredentials'\\n - $ref: '#/components/schemas/AzureSharedAccessSecret'\\n - $ref: '#/components/schemas/HTTP'\\n discriminator:\\n propertyName: type\\n mapping:\\n aws: '#/components/schemas/AWSCredentials'\\n sas: '#/components/schemas/AzureSharedAccessSecret'\\n http: '#/components/schemas/HTTP'\\n AWSCredentials:\\n type: object\\n description: AWS credentials in the form of access key id and secret access key, a region and a device policy name.\\n properties:\\n type:\\n description: The credential type\\n type: string\\n enum:\\n - aws\\n aws:\\n type: object\\n properties:\\n access_key_id:\\n type: string\\n secret_access_key:\\n type: string\\n region:\\n type: string\\n device_policy_name:\\n type: string\\n required:\\n - access_key_id\\n - secret_access_key\\n - region\\n - device_policy_name\\n required:\\n - type\\n - aws\\n AzureSharedAccessSecret:\\n type: object\\n description: Shared Access Secret is an authentication mechanism in the form of a connection string for Azure IoT Hub.\\n properties:\\n type:\\n description: The credential type\\n type: string\\n enum:\\n - sas\\n connection_string:\\n type: string\\n required:\\n - type\\n - connection_string\\n DeviceState:\\n type: object\\n properties:\\n desired:\\n description: The desired state for the device, as reported by the cloud/user.\\n additionalProperties: true\\n reported:\\n description: State reported by the device, this cannot be changed from the cloud.\\n additionalProperties: true\\n HTTP:\\n type: object\\n description: HTTP Webhook configuration.\\n properties:\\n type:\\n description: The credential type\\n type: string\\n enum:\\n - http\\n http:\\n type: object\\n properties:\\n url:\\n type: string\\n description: The destination URL for the webhook. The webhook will send POST requests with event details to this target URL.\\n secret:\\n type: string\\n description: An optional secret used to verify the integrity of the payload. The string must be in hexadecimal format.\\n pattern: '[0-9a-f]{1,64}'\\n required:\\n - url\\n required:\\n - type\\n - http\\n Event:\\n type: object\\n properties:\\n id:\\n type: string\\n format: uuid\\n description: A unique event identifier generated by the Mender server\\n type:\\n type: string\\n enum:\\n - device-provisioned\\n - device-decommissioned\\n - device-status-changed\\n - device-inventory-changed\\n description: Type of the event\\n delivery_statuses:\\n type: array\\n items:\\n type: object\\n properties:\\n integration_id:\\n type: string\\n description: The ID of the integration the status belongs.\\n success:\\n type: boolean\\n description: Whether the event hook was executed successfully.\\n status_code:\\n type: integer\\n description: The (HTTP) status code of the hook.\\n error:\\n type: string\\n description: An error message if the hook failed.\\n required:\\n - integration_id\\n - success\\n time:\\n type: string\\n format: date-time\\n description: Creation timestamp\\n data:\\n oneOf:\\n - $ref: '#/components/schemas/DeviceAuthEvent'\\n - $ref: '#/components/schemas/DeviceInventoryEvent'\\n discriminator:\\n propertyName: type\\n mapping:\\n device-provisioned: '#/components/schemas/DeviceAuthEvent'\\n device-decommissioned: '#/components/schemas/DeviceAuthEvent'\\n device-status-changed: '#/components/schemas/DeviceAuthEvent'\\n device-inventory-changed: '#/components/schemas/DeviceInventoryEvent'\\n DeviceAuthEvent:\\n type: object\\n description: 'DeviceAuthEvent describes an event that relates to changes to a device''s authentication data. The properties included depends on the event type: device provisioning includes the entire device with the accepted authentication set, status change events only includes the device id and the new status, and device decommissioning will only include the device id.'\\n properties:\\n id:\\n type: string\\n description: Device unique ID.\\n status:\\n type: string\\n description: The authentication status of the device.\\n auth_sets:\\n type: array\\n items:\\n $ref: '#/components/schemas/AuthSet'\\n created_ts:\\n type: string\\n format: date-time\\n description: The time the device was initialized in Mender.\\n required:\\n - id\\n DeviceInventoryEvent:\\n type: object\\n description: DeviceInventoryEvent describes an event that relates to changes to a device's inventory data.\\n properties:\\n device_id:\\n type: string\\n description: Device unique ID.\\n tenant_id:\\n type: string\\n description: Tenant ID.\\n inventory:\\n type: object\\n description: Arbitrary key-value pairs of inventory attributes as device has sent them\\n required:\\n - device_id\\n - tenant_id\\n - inventory\\n TenantUpdateInternal:\\n type: object\\n description: Update tenant information.\\n properties:\\n name:\\n type: string\\n description: Name of the tenant's organization.\\n plan:\\n type: string\\n description: Plan assigned to the tenant account.\\n enum:\\n - os\\n - enterprise\\n - professional\\n trial:\\n type: boolean\\n description: Whether this account is free trial.\\n trial_expiration:\\n type: string\\n description: When trial evaluation expires.\\n format: date-time\\n addons:\\n type: array\\n description: Addons configuration.\\n items:\\n $ref: '#/components/schemas/Addon'\\n api_limits:\\n $ref: '#/components/schemas/TenantApiLimits'\\n service_provider:\\n type: boolean\\n description: True if the tenant is a service provider tenant.\\n max_child_tenants:\\n type: string\\n description: Maximum number of allowed child tenants\\n suspend_at:\\n type: string\\n description: Planned suspension date and time, in ISO8601 format.\\n customer_id:\\n type: string\\n subscription_id:\\n type: string\\n subscription_type:\\n type: string\\n example:\\n name: Acme\\n plan: os\\n trial: true\\n trial_expiration: '2021-01-01T00:00:00Z'\\n suspend_at: '2021-01-01T00:00:00Z'\\n api_limits:\\n management:\\n quota:\\n max_calls: 100\\n interval_sec: 60\\n devices:\\n quota:\\n max_calls: 1000\\n interval_sec: 60\\n bursts:\\n - action: PATCH\\n uri: /api/devices/v1/inventory/device/attributes\\n min_interval_sec: 10\\n - action: POST\\n uri: /api/devices/v1/deployments/device/deployments/next\\n min_interval_sec: 60\\n TenantSubscriptionUpgradeInternal:\\n type: object\\n description: Upgrade tenant subscription.\\n required:\\n - subscription_type\\n - subscription_token\\n properties:\\n subscription_type:\\n type: string\\n description: Type of subscription.\\n enum:\\n - azure\\n subscription_token:\\n type: string\\n description: Subscription token.\\n Addon:\\n type: object\\n properties:\\n name:\\n type: string\\n description: Name of the addon (one of ['configure', 'troubleshoot']).\\n enabled:\\n type: boolean\\n description: Enabled/disabled flag.\\n description: Mender addon definition.\\n example:\\n name: troubleshoot\\n enabled: true\\n TenantAdditionalInfo:\\n type: object\\n properties:\\n marketing:\\n type: boolean\\n description: Marketing\\n campaign:\\n type: string\\n description: Campaign\\n description: Additional information about a tenant.\\n example:\\n marketing: true\\n campaign: Campaign\\n ApiBurst:\\n type: object\\n properties:\\n action:\\n type: string\\n description: HTTP verb.\\n uri:\\n type: string\\n description: URI of the resource subject to the limit.\\n min_interval_sec:\\n type: integer\\n description: Minimum allowed interval, in seconds, between subsequent calls to 'action' on 'uri' (10 = one call every 10 seconds, etc.)\\n description: API burst limit definition.\\n example:\\n action: PATCH\\n uri: /api/devices/v1/inventory/device/attributes\\n min_interval_sec: 10\\n ApiQuota:\\n type: object\\n properties:\\n max_calls:\\n type: integer\\n description: |\\n Maximum allowed number of calls within 'interval'.\\n A value of 0 means 'no limit'.\\n interval_sec:\\n type: integer\\n description: Interval definition, in seconds (60 = 1 minute, 3600 = 1 hour, etc.).\\n description: API usage quota definition.\\n example:\\n max_calls: 100\\n interval_sec: 3600\\n ApiLimits:\\n type: object\\n properties:\\n bursts:\\n type: array\\n description: Collection of api burst limit definitions over specified API resources.\\n items:\\n $ref: '#/components/schemas/ApiBurst'\\n quota:\\n $ref: '#/components/schemas/ApiQuota'\\n description: Usage quota and burst limit definitions for an API type.\\n example:\\n bursts:\\n - action: PATCH\\n uri: /api/devices/v1/inventory/device/attributes\\n min_interval_sec: 10\\n - action: POST\\n uri: /api/devices/v1/deployments/device/deployments/next\\n min_interval_sec: 60\\n quota:\\n max_calls: 100\\n interval_sec: 60\\n TenantApiLimits:\\n type: object\\n properties:\\n management:\\n $ref: '#/components/schemas/ApiLimits'\\n devices:\\n $ref: '#/components/schemas/ApiLimits'\\n description: API usage quota and burst limit definitions for a tenant - per API type.\\n example:\\n management:\\n quota:\\n max_calls: 100\\n interval_sec: 60\\n devices:\\n quota:\\n max_calls: 1000\\n interval_sec: 60\\n bursts:\\n - action: PATCH\\n uri: /api/devices/v1/inventory/device/attributes\\n min_interval_sec: 10\\n - action: POST\\n uri: /api/devices/v1/deployments/device/deployments/next\\n min_interval_sec: 60\\n Tenant:\\n description: Tenant descriptor.\\n required:\\n - id\\n - name\\n type: object\\n properties:\\n id:\\n type: string\\n description: Tenant ID.\\n name:\\n type: string\\n description: Name of the tenant's organization.\\n tenant_token:\\n type: string\\n description: Currently used tenant token.\\n status:\\n type: string\\n description: Status of the tenant account.\\n enum:\\n - active\\n - suspended\\n plan:\\n type: string\\n description: Plan assigned to the tenant account.\\n enum:\\n - os\\n - enterprise\\n - professional\\n trial:\\n type: boolean\\n description: Whether this account is free trial.\\n trial_expiration:\\n type: string\\n description: When trial evaluation expires.\\n format: date-time\\n addons:\\n type: array\\n description: Addons configuration.\\n items:\\n $ref: '#/components/schemas/Addon'\\n service_provider:\\n type: boolean\\n description: Whether this account is a service provider.\\n parent_tenant_id:\\n type: string\\n description: The ID of the service provider tenant managing this tenant.\\n additional_info:\\n $ref: '#/components/schemas/TenantAdditionalInfo'\\n api_limits:\\n $ref: '#/components/schemas/TenantApiLimits'\\n created_at:\\n type: string\\n description: Creation date and time, in ISO8601 format.\\n updated_at:\\n type: string\\n description: Last update date and time, in ISO8601 format.\\n device_count:\\n type: integer\\n description: Count of accepted devices for the tenant.\\n device_limit:\\n type: integer\\n description: Device limit for the tenant.\\n device_limits:\\n type: object\\n properties:\\n max_devices:\\n $ref: '#/components/schemas/DeviceLimitTenant'\\n max_micro_devices:\\n $ref: '#/components/schemas/DeviceLimitTenant'\\n max_system_devices:\\n $ref: '#/components/schemas/DeviceLimitTenant'\\n example:\\n id: 507f191e810c19729de860ea\\n name: Acme\\n status: active\\n plan: os\\n api_limits:\\n management:\\n quota:\\n max_calls: 100\\n interval_sec: 60\\n devices:\\n quota:\\n max_calls: 1000\\n interval_sec: 60\\n bursts:\\n - action: PATCH\\n uri: /api/devices/v1/inventory/device/attributes\\n min_interval_sec: 10\\n - action: POST\\n uri: /api/devices/v1/deployments/device/deployments/next\\n min_interval_sec: 60\\n created_at: '2019-12-12T12:00:00Z'\\n updated_at: '2023-11-10T15:15:00Z'\\n TenantStatusTypeManagement:\\n required:\\n - status\\n type: object\\n properties:\\n status:\\n type: string\\n enum:\\n - active\\n - suspended\\n description: Status of a tenant account.\\n example:\\n status: active\\n CardData:\\n type: object\\n properties:\\n brand:\\n type: string\\n description: Card brand. Can be `amex`, `diners`, `discover`, `jcb`, `mastercard`, `unionpay`, `visa`, or `unknown`.\\n checks:\\n type: object\\n properties:\\n address_line1_check:\\n type: string\\n address_postal_code_check:\\n type: string\\n cvc_check:\\n type: string\\n description: Checks on Card address and CVC if provided.\\n country:\\n type: string\\n description: Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected.\\n exp_month:\\n type: integer\\n description: Two-digit number representing the card's expiration month.\\n exp_year:\\n type: integer\\n description: Four-digit number representing the card's expiration year.\\n fingerprint:\\n type: string\\n description: Uniquely identifies this particular card number. You can use this attribute to check whether two customers who’ve signed up with you are using the same card number,for example. For payment methods that tokenize card information (Apple Pay, Google Pay), the tokenized number might be provided instead of the underlying card number.\\n funding:\\n type: string\\n description: Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`.\\n last4:\\n type: string\\n description: The last four digits of the card.\\n three_d_secure_usage:\\n type: object\\n properties:\\n supported:\\n type: boolean\\n description: Contains details on how this Card maybe be used for 3D Secure authentication.\\n wallet:\\n type: object\\n properties:\\n dynamic_last4:\\n type: string\\n type:\\n type: string\\n description: If this Card is part of a card wallet, this contains the details of the card wallet.\\n description: Card information stored in Stripe. The full type description is available at \\\"https://raw.githubusercontent.com/stripe/openapi/master/openapi/spec3.yaml#/components/schemas/payment_method_card\\\"\\n SubscriptionData:\\n type: object\\n additionalProperties: true\\n description: Subscription information stored in Stripe. The full type description is available at \\\"https://raw.githubusercontent.com/stripe/openapi/master/openapi/spec3.yaml#/components/schemas/subscription\\\"\\n example:\\n id: sub_36VrPHS2vVxJMq\\n object: subscription\\n billing_cycle_anchor: 1387222772\\n cancel_at_period_end: false\\n canceled_at: 1445989053\\n collection_method: charge_automatically\\n created: 1386790772\\n current_period_end: 1447702772\\n current_period_start: 1444678772\\n customer: cus_36Akh5CetFGg9T\\n default_tax_rates: []\\n ended_at: 1445989053\\n items:\\n object: list\\n data:\\n - id: si_18SfBn2eZvKYlo2C1fwOImYF\\n object: subscription_item\\n created: 1386790772\\n metadata: {}\\n price:\\n id: '40'\\n object: price\\n active: true\\n billing_scheme: per_unit\\n created: 1386694689\\n currency: usd\\n livemode: false\\n metadata:\\n charset: utf-8\\n content: '40'\\n product: prod_BTcfj5EqyqxDVn\\n recurring:\\n interval: week\\n interval_count: 5\\n usage_type: licensed\\n type: recurring\\n unit_amount: 5465\\n unit_amount_decimal: '5465'\\n quantity: 1\\n subscription: sub_36VrPHS2vVxJMq\\n tax_rates: []\\n has_more: false\\n url: /v1/subscription_items?subscription=sub_36VrPHS2vVxJMq\\n livemode: false\\n metadata: {}\\n start_date: 1386790772\\n status: canceled\\n trial_end: 1387222772\\n trial_start: 1386790772\\n ProductInfo:\\n type: object\\n required:\\n - name\\n - billing_unit\\n - prices\\n properties:\\n name:\\n allOf:\\n - $ref: '#/components/schemas/ProductName'\\n - description: The name of the product for this item.\\n example: mender_standard\\n billing_unit:\\n type: string\\n example: devices\\n prices:\\n type: array\\n items:\\n $ref: '#/components/schemas/PriceInfo'\\n addons:\\n type: array\\n items:\\n $ref: '#/components/schemas/AddonInfo'\\n AddonInfo:\\n type: object\\n properties:\\n name:\\n type: string\\n example: troubleshoot\\n prices:\\n type: array\\n items:\\n $ref: '#/components/schemas/PriceInfo'\\n PriceInfo:\\n type: object\\n required:\\n - plan\\n properties:\\n plan:\\n type: string\\n description: Plan name.\\n example: os\\n constraints:\\n $ref: '#/components/schemas/ConstraintsInfo'\\n ConstraintsInfo:\\n type: object\\n description: Min/max values for units.\\n properties:\\n min:\\n type: integer\\n example: 50\\n max:\\n type: integer\\n example: 1000\\n div:\\n type: integer\\n example: 50\\n BillingInfo:\\n type: object\\n properties:\\n card:\\n $ref: '#/components/schemas/CardData'\\n subscription:\\n $ref: '#/components/schemas/SubscriptionData'\\n description: Billing related data, such as credit card information and next billing date\\n example:\\n card:\\n brand: Visa\\n checks:\\n address_line1_check: pass\\n address_postal_code_check: pass\\n cvc_check: pass\\n country: 'no'\\n description: ''\\n exp_month: 2\\n exp_year: 2020\\n fingerprint: fingerprint\\n funding: all\\n iin: ''\\n issuer: ''\\n last4: '1234'\\n three_d_secure_usage:\\n supported: true\\n wallet:\\n dynamic_last4: '6789'\\n type: visa_checkout\\n subscription:\\n id: sub_36VrPHS2vVxJMq\\n object: subscription\\n billing_cycle_anchor: 1387222772\\n cancel_at_period_end: false\\n canceled_at: 1445989053\\n collection_method: charge_automatically\\n created: 1386790772\\n current_period_end: 1447702772\\n current_period_start: 1444678772\\n customer: cus_36Akh5CetFGg9T\\n default_tax_rates: []\\n ended_at: 1445989053\\n items:\\n object: list\\n data:\\n - id: si_18SfBn2eZvKYlo2C1fwOImYF\\n object: subscription_item\\n created: 1386790772\\n metadata: {}\\n price:\\n id: '40'\\n object: price\\n active: true\\n billing_scheme: per_unit\\n created: 1386694689\\n currency: usd\\n livemode: false\\n metadata:\\n charset: utf-8\\n content: '40'\\n product: prod_BTcfj5EqyqxDVn\\n recurring:\\n interval: week\\n interval_count: 5\\n usage_type: licensed\\n type: recurring\\n unit_amount: 5465\\n unit_amount_decimal: '5465'\\n quantity: 1\\n subscription: sub_36VrPHS2vVxJMq\\n tax_rates: []\\n has_more: false\\n url: /v1/subscription_items?subscription=sub_36VrPHS2vVxJMq\\n livemode: false\\n metadata: {}\\n start_date: 1386790772\\n status: canceled\\n trial_end: 1387222772\\n trial_start: 1386790772\\n CardSetupData:\\n required:\\n - intent_id\\n - secret\\n type: object\\n properties:\\n intent_id:\\n type: string\\n description: Setup intent id.\\n secret:\\n type: string\\n description: Setup intent secret.\\n description: Stripe setup intent data.\\n example:\\n intent_id: seti_1HXHVn2eZvKYlo2CT3XEEjKB\\n secret: TYooMQauvdEDq54NiTphI7jx\\n AddressUpdate:\\n type: object\\n properties:\\n country:\\n type: string\\n state:\\n type: string\\n city:\\n type: string\\n postal_code:\\n type: string\\n line1:\\n type: string\\n line2:\\n type: string\\n Address:\\n allOf:\\n - $ref: '#/components/schemas/AddressUpdate'\\n - required:\\n - country\\n - city\\n - postal_code\\n - line1\\n BillingProfile:\\n required:\\n - address\\n - email\\n - name\\n - shipping\\n type: object\\n properties:\\n email:\\n type: string\\n description: The customer's email address.\\n name:\\n type: string\\n description: The customer's full name or business name.\\n phone:\\n type: string\\n description: The customer's phone number.\\n address:\\n type: object\\n allOf:\\n - $ref: '#/components/schemas/Address'\\n - description: The customer's address.\\n shipping:\\n type: object\\n properties:\\n name:\\n type: string\\n description: Name of the recipient.\\n phone:\\n type: string\\n description: Phone number of the recipient (including extension).\\n address:\\n type: object\\n allOf:\\n - $ref: '#/components/schemas/Address'\\n - description: Address of the recipient.\\n description: |\\n Mailing and shipping address for the customer. Appears on invoices.\\n description: |\\n Billing profile contains information about the customer.\\n BillingProfileUpdate:\\n type: object\\n properties:\\n email:\\n type: string\\n description: The customer's email address.\\n name:\\n type: string\\n description: The customer's full name or business name.\\n phone:\\n type: string\\n description: The customer's phone number.\\n address:\\n type: object\\n allOf:\\n - $ref: '#/components/schemas/AddressUpdate'\\n - description: The customer's address.\\n shipping:\\n type: object\\n properties:\\n name:\\n type: string\\n description: Name of the recipient.\\n phone:\\n type: string\\n description: Phone number of the recipient (including extension).\\n address:\\n type: object\\n allOf:\\n - $ref: '#/components/schemas/AddressUpdate'\\n - description: Address of the recipient.\\n description: |\\n Mailing and shipping address for the customer. Appears on invoices.\\n description: Billing profile contains partial billing information.\\n Invoice:\\n type: object\\n properties:\\n id:\\n type: string\\n period_start:\\n type: string\\n format: date-time\\n period_end:\\n type: string\\n format: date-time\\n total:\\n type: number\\n description: |\\n Total amount in the minimum transactable unit for the given currency (cents for USD).\\n currency:\\n type: string\\n description: The currency of the amount\\n lines:\\n type: array\\n items:\\n $ref: '#/components/schemas/InvoiceLineItem'\\n InvoiceLineItem:\\n required:\\n - amount\\n - currency\\n - description\\n - quantity\\n type: object\\n properties:\\n description:\\n type: string\\n description: A human readable description of the item.\\n quantity:\\n type: number\\n description: The number of units for the given line item.\\n amount:\\n type: number\\n description: The amount in the minimum transactable unit for the given currency (cents for USD).\\n currency:\\n type: string\\n description: The currency of amount.\\n product:\\n allOf:\\n - $ref: '#/components/schemas/ProductName'\\n - description: The name of the product for this item.\\n addon:\\n type: string\\n description: The name of the addon for this item if this is an addon.\\n proration:\\n type: boolean\\n description: Whether this item was generated to prorate changes to the subscription within the subscription period.\\n PreviewRequest:\\n allOf:\\n - $ref: '#/components/schemas/SubscriptionRequest'\\n - type: object\\n properties:\\n preview_mode:\\n type: string\\n enum:\\n - next\\n - recurring\\n example:\\n application/json:\\n preview_mode: recurring\\n products:\\n - name: mender_standard\\n plan: professional\\n quantity: 100\\n Subscription:\\n allOf:\\n - $ref: '#/components/schemas/SubscriptionRequest'\\n - type: object\\n properties:\\n id:\\n type: string\\n description: The unique subscription ID.\\n status:\\n type: string\\n description: The subscription status.\\n enum:\\n - active\\n - canceled\\n - incomplete\\n - past_due\\n - unpaid\\n SubscriptionRequest:\\n type: object\\n properties:\\n plan:\\n $ref: '#/components/schemas/TenantPlanTypeManagement'\\n products:\\n type: array\\n description: The requested product and additional properties like quantity and addons\\n items:\\n $ref: '#/components/schemas/Product'\\n example:\\n plan: os\\n products:\\n - name: mender_standard\\n quantity: 500\\n addons:\\n - name: configure\\n - name: troubleshoot\\n ProductName:\\n type: string\\n description: The name of the product.\\n enum:\\n - mender_standard\\n - mender_micro\\n Product:\\n required:\\n - quantity\\n type: object\\n properties:\\n name:\\n $ref: '#/components/schemas/ProductName'\\n quantity:\\n type: number\\n addons:\\n type: array\\n items:\\n $ref: '#/components/schemas/Addon'\\n TenantPlanTypeManagement:\\n type: string\\n description: Plan / access scope for the tenant account.\\n default: os\\n enum:\\n - os\\n - professional\\n - enterprise\\n CheckoutData:\\n required:\\n - secret\\n type: object\\n properties:\\n secret:\\n type: string\\n description: Stripe client secret.\\n description: Checkout data.\\n example:\\n secret: TYooMQauvdEDq54NiTphI7jx\\n SupportRequest:\\n required:\\n - body\\n - subject\\n type: object\\n properties:\\n subject:\\n type: string\\n description: Message subject.\\n body:\\n type: string\\n description: Message body.\\n description: Contact support request.\\n example:\\n subject: Subscription change request\\n body: 'Requested addons: Troubleshoot, Configure'\\n NewTenantTypeManagement:\\n type: object\\n properties:\\n name:\\n type: string\\n description: Name of the tenant.\\n admin:\\n type: object\\n properties:\\n email:\\n type: string\\n description: Email address of the admin user\\n password:\\n type: string\\n description: Password of the admin user, must be provided if not using SSO\\n login:\\n type: object\\n additionalProperties: true\\n description: Alternative SSO login schemes, must be provided if password is empty\\n send_reset_password:\\n type: boolean\\n description: Send reset password email to the admin user\\n users:\\n type: array\\n items:\\n type: object\\n properties:\\n email:\\n type: string\\n description: Email address of an existing user to be added to the newly created tenant\\n role:\\n type: string\\n description: Role of the user to be added\\n device_limit:\\n type: integer\\n description: Device limit of standard devices for the tenant.\\n device_limits:\\n $ref: '#/components/schemas/DeviceLimitsPut'\\n binary_delta:\\n type: boolean\\n description: Enable server side binary delta generation for the tenant.\\n sso:\\n type: boolean\\n description: |\\n Inherit single sign-on configuration from service provider.\\n The new tenant will not be able to modify the SSO configuration.\\n description: |\\n New Tenant\\n\\n In environments where the \\\"Device Tiers\\\" feature is enabled the `device_limits`\\n property is made available and takes precedence over the `device_limit` property.\\n Use this option to set the limits for all device tiers at once.\\n CancelRequest:\\n required:\\n - reason\\n type: object\\n properties:\\n reason:\\n type: string\\n description: Cancellation request of a tenant account.\\n example:\\n reason: Reason for cancelling the tenant\\n UpdateChildTenant:\\n type: object\\n properties:\\n name:\\n type: string\\n description: Name of the tenant.\\n device_limit:\\n type: integer\\n device_limits:\\n $ref: '#/components/schemas/DeviceLimitsPut'\\n description: |\\n Update Tenant\\n\\n In environments where the \\\"Device Tiers\\\" feature is enabled the `device_limits`\\n property is made available and takes precedence over the `device_limit` property.\\n Use this option to set the limits for all device tiers at once.\\n DeviceLimitsPut:\\n description: All device limits.\\n type: object\\n properties:\\n max_devices:\\n $ref: '#/components/schemas/DeviceLimitPut'\\n max_micro_devices:\\n $ref: '#/components/schemas/DeviceLimitPut'\\n max_system_devices:\\n $ref: '#/components/schemas/DeviceLimitPut'\\n DeviceLimitPut:\\n description: Device limit.\\n type: object\\n properties:\\n Name:\\n type: string\\n value:\\n type: integer\\n required:\\n - Name\\n - value\\n example:\\n Name: max_micro_devices\\n value: 1024\\n PlanChangeRequest:\\n type: object\\n properties:\\n current_plan:\\n type: string\\n requested_plan:\\n type: string\\n current_addons:\\n type: string\\n requested_addons:\\n type: string\\n user_message:\\n type: string\\n description: Plan/add-on change request of a tenant account.\\n example:\\n current_plan: Professional\\n requested_plan: Enterprise\\n current_addons: troubleshoot\\n requested_addons: troubleshoot, configure\\n user_message: User message\\n RolePermission:\\n required:\\n - action\\n - object\\n type: object\\n properties:\\n action:\\n type: string\\n description: Action\\n enum:\\n - any\\n - http\\n - CREATE_DEPLOYMENT\\n - MANAGE_DEVICE\\n - REMOTE_TERMINAL\\n - VIEW_DEVICE\\n object:\\n $ref: '#/components/schemas/RolePermissionObject'\\n description: Role permission\\n example:\\n action: http\\n object:\\n type: GET\\n value: .*\\n RolePermissionObject:\\n required:\\n - type\\n - value\\n type: object\\n properties:\\n type:\\n type: string\\n description: Type\\n value:\\n type: string\\n description: Value\\n description: Role permission object\\n example:\\n type: POST\\n value: /api/v1/endpoint\\n PermissionSetWithScope:\\n type: object\\n properties:\\n name:\\n type: string\\n description: Permission set name.\\n scope:\\n $ref: '#/components/schemas/PermissionSetScope'\\n PermissionSetScope:\\n type: object\\n properties:\\n type:\\n type: string\\n description: Scope type.\\n value:\\n type: array\\n description: Scope value.\\n items:\\n type: string\\n Permission:\\n required:\\n - action\\n - object\\n type: object\\n properties:\\n action:\\n type: string\\n description: Action\\n enum:\\n - any\\n - http\\n object:\\n $ref: '#/components/schemas/PermissionObject'\\n example:\\n action: http\\n object:\\n type: GET\\n value: .*\\n PermissionObject:\\n required:\\n - type\\n - value\\n type: object\\n properties:\\n type:\\n type: string\\n description: Type\\n value:\\n type: string\\n description: Value\\n example:\\n type: POST\\n value: /api/v1/endpoint\\n SsoObject:\\n required:\\n - id\\n - kind\\n type: object\\n properties:\\n id:\\n type: string\\n description: An id of the identity provider.\\n format: uuid\\n kind:\\n type: string\\n description: Single Sign On provider kind.\\n subject:\\n type: string\\n description: Single Sign On subject.\\n description: Single Sign On descriptor.\\n example:\\n id: 84430f18-d464-5194-b8ef-b1a15161bb4c\\n kind: sso/saml\\n User:\\n required:\\n - email\\n - id\\n type: object\\n properties:\\n email:\\n type: string\\n description: A unique email address.\\n id:\\n type: string\\n description: User Id.\\n created_ts:\\n type: string\\n description: |\\n Server-side timestamp of the user creation.\\n format: date-time\\n updated_ts:\\n type: string\\n description: |\\n Server-side timestamp of the last user information update.\\n format: date-time\\n login_ts:\\n type: string\\n description: Timestamp the of last successful login.\\n format: date-time\\n verified:\\n type: boolean\\n description: |\\n Indicates if the user's email address has been verified.\\n tfa_status:\\n type: string\\n description: User Two Factor Authentication status.\\n roles:\\n type: array\\n description: List of user roles.\\n items:\\n title: ListOfRoles\\n type: string\\n description: Role name\\n send_reset_password:\\n type: boolean\\n description: Flag indicating whether to trigger password reset on user creation.\\n sso:\\n type: array\\n description: SSO login schemes.\\n items:\\n $ref: '#/components/schemas/SsoObject'\\n tenant_id:\\n type: string\\n description: Tenant identifier of a tenant, user will log in to by default.\\n tenant_ids:\\n type: array\\n description: List of tenant Ids user can login to.\\n items:\\n type: string\\n description: User descriptor.\\n example:\\n email: user@acme.com\\n id: 806603def19d417d004a4b67e\\n created_ts: '2020-07-06T15:04:49.114046203+02:00'\\n updated_ts: '2020-07-07T01:04:49.114046203+02:00'\\n TenantInfo:\\n type: object\\n properties:\\n tenant_id:\\n type: string\\n description: Tenant identifier of a tenant, user will log in to by default.\\n tenant_ids:\\n type: array\\n description: List of tenant Ids user can login to.\\n items:\\n type: string\\n TenantIdName:\\n required:\\n - id\\n - name\\n type: object\\n properties:\\n id:\\n type: string\\n description: Tenant identifier.\\n name:\\n type: string\\n description: Tenant name.\\n TenantsIdName:\\n type: array\\n items:\\n $ref: '#/components/schemas/TenantIdName'\\n PendingEmailChange:\\n type: object\\n required:\\n - new_email\\n - created_ts\\n - valid_until\\n properties:\\n new_email:\\n type: string\\n format: email\\n description: The new email address awaiting verification.\\n created_ts:\\n type: string\\n format: date-time\\n description: The timestamp when the email change request was initiated.\\n valid_until:\\n type: string\\n format: date-time\\n description: The timestamp when the pending request will expire.\\n UserWithTenantInfo:\\n allOf:\\n - $ref: '#/components/schemas/User'\\n - $ref: '#/components/schemas/TenantInfo'\\n - type: object\\n properties:\\n tenants:\\n $ref: '#/components/schemas/TenantsIdName'\\n - type: object\\n properties:\\n pending_email_change_request:\\n $ref: '#/components/schemas/PendingEmailChange'\\n UserNewInternal:\\n required:\\n - email\\n - password\\n type: object\\n properties:\\n login:\\n type: object\\n description: User's login.\\n additionalProperties:\\n type: string\\n email:\\n type: string\\n description: User's email.\\n format: email\\n password_hash:\\n type: string\\n description: User's password.\\n propagate:\\n type: boolean\\n deprecated: true\\n description: |\\n Propagate user information to tenantadm.\\n x-deprecated-description: |\\n _since Thu Jul 6 2023_ this field is deprecated; the propagation of\\n user information to tenantadm is disabled permanently.\\n magic_id:\\n type: string\\n description: Unique id to allow a user to log in using a magic link\\n format: uuid\\n send_reset_password:\\n type: boolean\\n description: Send reset password email to the user\\n description: New user descriptor.\\n example:\\n email: user@acme.com\\n password: secret\\n propagate: false\\n magic_id: a30a780b-b843-5344-80e3-0fd95a4f6fc3\\n Emails:\\n required:\\n - emails\\n type: object\\n properties:\\n emails:\\n type: array\\n description: List of users emails.\\n items:\\n type: string\\n example:\\n emails:\\n - demo@example.com\\n - admin@example.com\\n UseradmLimit:\\n required:\\n - max\\n type: object\\n properties:\\n count:\\n type: integer\\n max:\\n type: integer\\n description: Tenant account limits.\\n example:\\n count: 10\\n max: 20\\n Limits:\\n required:\\n - users\\n type: object\\n properties:\\n users:\\n $ref: '#/components/schemas/UseradmLimit'\\n description: Tenant account limits.\\n example:\\n users:\\n max: 10\\n count: 2\\n limit: 123\\n Features:\\n type: object\\n properties:\\n rbac:\\n type: boolean\\n audit_logs:\\n type: boolean\\n dynamic_groups:\\n type: boolean\\n terminal:\\n type: boolean\\n file_transfer:\\n type: boolean\\n configuration:\\n type: boolean\\n monitoring:\\n type: boolean\\n reporting:\\n type: boolean\\n description: Features descriptor.\\n example:\\n rbac: true\\n audit_logs: false\\n dynamic_groups: false\\n terminal: true\\n file_transfer: true\\n configuration: true\\n monitoring: true\\n reporting: true\\n Plan:\\n required:\\n - display_name\\n - features\\n - name\\n type: object\\n properties:\\n name:\\n type: string\\n description: |\\n Unique name of the plan.\\n display_name:\\n type: string\\n description: |\\n Short information about the plan.\\n features:\\n $ref: '#/components/schemas/Features'\\n description: Plan descriptor.\\n example:\\n name: mender-enterprise\\n display_name: Mender Enterprise\\n features:\\n rbac: true\\n audit_logs: false\\n dynamic_groups: false\\n terminal: true\\n file_transfer: true\\n configuration: true\\n monitoring: true\\n PlanLimits:\\n type: object\\n properties:\\n devices:\\n type: integer\\n users:\\n type: integer\\n audit_logs_days:\\n type: integer\\n description: Plan limits descriptor.\\n example:\\n devices: 10\\n users: 2\\n audit_logs_days: 2\\n PlanBindingDetails:\\n type: object\\n properties:\\n plan:\\n $ref: '#/components/schemas/Plan'\\n limits:\\n $ref: '#/components/schemas/PlanLimits'\\n description: Combination of plan and limits objects.\\n example:\\n plan:\\n product: Mender\\n name: mender-enterprise\\n display_name: Mender Enterprise\\n features:\\n rbac: true\\n audit_logs: true\\n limits:\\n devices: 10\\n users: 2\\n audit_logs_days: 2\\n PlanBinding:\\n type: object\\n properties:\\n plan_name:\\n type: string\\n limits:\\n $ref: '#/components/schemas/PlanLimits'\\n description: Combination of plan and limits objects.\\n example:\\n plan_name: mender-enterprise\\n limits:\\n devices: 10\\n users: 2\\n audit_logs_days: 2\\n TenantIdsData:\\n required:\\n - tenant_ids\\n type: object\\n properties:\\n tenant_ids:\\n type: array\\n items:\\n title: ListOfIds\\n type: string\\n description: tenant ids\\n role:\\n type: string\\n description: 'Optional RBAC role name to assign to the user. Defaults to: RBAC_ROLE_OBSERVER.'\\n description: Tenant ids data.\\n example:\\n tenant_ids:\\n - 65c76fd6e15517b2f0fbfdf1\\n - 65c76fda5e6177ca400a9d4d\\n role: RBAC_ROLE_OBSERVER\\n LoginOptions:\\n type: object\\n properties:\\n no_expiry:\\n type: boolean\\n description: Generate a JWT token with no expiration date.\\n token2fa:\\n type: string\\n description: |\\n Two factor authentication token, required if two factor authentication is\\n enabled and tenant's plan is Professional or Enterprise.\\n description: Log in options\\n example:\\n no_expiry: true\\n token2fa: '012234'\\n UserNew:\\n required:\\n - email\\n type: object\\n properties:\\n email:\\n type: string\\n description: A unique email address. Non-ascii characters are invalid.\\n password:\\n type: string\\n description: Password.\\n roles:\\n type: array\\n description: 'Optional RBAC roles to assign to the user. Defaults to: RBAC_ROLE_PERMIT_ALL.'\\n items:\\n title: ListOfRoles\\n type: string\\n description: Role name\\n send_reset_password:\\n type: boolean\\n description: Flag indicating whether to trigger password reset on user creation.\\n description: New user descriptor.\\n example:\\n email: user@acme.com\\n password: mypass1234\\n roles:\\n - RBAC_ROLE_OBSERVER\\n send_reset_password: true\\n UserUpdate:\\n type: object\\n properties:\\n roles:\\n type: array\\n description: List of roles for the user. If not provided existing roles are kept.\\n items:\\n title: ListOfRoles\\n type: string\\n description: Role name\\n description: Update user information.\\n example:\\n roles:\\n - RBAC_ROLE_DEPLOY_GROUP_TESTING_DEVICES\\n - RBAC_ROLE_READ_ONLY\\n OwnUserUpdate:\\n type: object\\n properties:\\n email:\\n type: string\\n description: A unique email address.\\n password:\\n type: string\\n description: New password.\\n current_password:\\n type: string\\n description: Current password.\\n description: Update user information.\\n example:\\n email: new_email@acme.com\\n password: new password\\n current_password: old password\\n EmailUpdateRequest:\\n type: object\\n properties:\\n email:\\n type: string\\n description: New email address.\\n current_password:\\n type: string\\n description: Current password.\\n description: Update user information.\\n example:\\n email: new_email@acme.com\\n current_password: old password\\n PersonalAccessTokenRequest:\\n required:\\n - name\\n type: object\\n properties:\\n name:\\n type: string\\n description: Name of a token.\\n expires_in:\\n type: integer\\n description: |\\n Expiration time in seconds (maximum one year - 31536000s).\\n If you omit it or set it to zero, the Personal Access Token will never expire.\\n description: Personal Access Token Request.\\n example:\\n name: my_personal_token\\n expires_in: 28800\\n PersonalAccessToken:\\n required:\\n - created_ts\\n - expiration_date\\n - id\\n - name\\n type: object\\n properties:\\n id:\\n type: string\\n description: Token identifier.\\n name:\\n type: string\\n description: Name of a token.\\n last_used:\\n type: string\\n description: |\\n Date of last usage of a token. The accuracy is 5 minutes.\\n format: date-time\\n expiration_date:\\n type: string\\n description: Expiration date.\\n format: date-time\\n created_ts:\\n type: string\\n description: |\\n Server-side timestamp of the token creation.\\n format: date-time\\n description: Personal Access Token Object.\\n example:\\n id: 806603def19d417d004a4b67e\\n name: my_personal_token\\n last_used: '2022-07-05T11:11:35.725Z'\\n expiration_date: '2023-10-16T07:28:34.725Z'\\n created_ts: '2022-07-05T11:03:27.725Z'\\n Settings:\\n type: object\\n properties:\\n 2fa:\\n type: string\\n description: Enable/disable two-factor authentication for this user.\\n enum:\\n - enabled\\n - disabled\\n x-mender-plan:\\n - professional\\n - enterprise\\n description: User settings.\\n PasswordResetRequest:\\n required:\\n - email\\n type: object\\n properties:\\n email:\\n type: string\\n description: User's email address\\n description: Password reset request\\n example:\\n email: user@mender.io\\n PasswordResetCompletion:\\n required:\\n - password\\n - secret_hash\\n type: object\\n properties:\\n secret_hash:\\n type: string\\n description: Secret hash received by email by the user\\n password:\\n type: string\\n description: New password of the user\\n description: Password reset completion\\n example:\\n secret_hash: 16fd2706-8baf-433b-82eb-8c7fada847da\\n password: new password\\n EmailVerificationRequest:\\n required:\\n - email\\n type: object\\n properties:\\n email:\\n type: string\\n description: User's email address\\n description: Email Verification request\\n example:\\n email: user@mender.io\\n EmailVerificationCompletion:\\n required:\\n - secret_hash\\n type: object\\n properties:\\n secret_hash:\\n type: string\\n description: Secret hash received by email by the user\\n description: Email Verification completion\\n example:\\n secret_hash: 16fd2706-8baf-433b-82eb-8c7fada847da\\n EmailChangeCompletion:\\n required:\\n - secret_hash\\n type: object\\n properties:\\n secret_hash:\\n type: string\\n description: The verification token sent to the user's new email.\\n SAMLMetadata:\\n required:\\n - id\\n - issuer\\n - valid_until\\n type: object\\n properties:\\n id:\\n type: string\\n description: Metadata Id.\\n format: uuid\\n issuer:\\n type: string\\n description: Metadata Issuer.\\n valid_until:\\n type: string\\n description: Date after which the data is not valid.\\n format: date-time\\n description: Metadata structure.\\n example:\\n id: 84430f18-d464-5194-b8ef-b1a15161bb4c\\n issuer: https://samltest.id/saml/idp\\n valid_until: '2038-08-24T21:14:09Z'\\n RoleV1:\\n required:\\n - name\\n type: object\\n properties:\\n name:\\n type: string\\n description: A unique name.\\n description:\\n type: string\\n description: Description of the role, as shown in the UI.\\n permissions:\\n type: array\\n items:\\n $ref: '#/components/schemas/RolePermission'\\n permission_sets_with_scope:\\n type: array\\n items:\\n $ref: '#/components/schemas/PermissionSetWithScope'\\n description: Role descriptor.\\n example:\\n name: RBAC_ROLE_NAME\\n description: Description of the role\\n permission_sets_with_scope:\\n - name: ReadReleases\\n - name: ReadDevices\\n scope:\\n type: DeviceGroups\\n value:\\n - test\\n - dev\\n UserNewV2:\\n required:\\n - email\\n type: object\\n properties:\\n email:\\n type: string\\n description: A unique email address. Non-ascii characters are invalid.\\n roles:\\n type: array\\n description: 'Optional RBAC roles to assign to the user. Defaults to: RBAC_ROLE_PERMIT_ALL.'\\n items:\\n title: ListOfRoles\\n type: string\\n description: Role name\\n description: New user descriptor.\\n example:\\n email: user@acme.com\\n roles:\\n - RBAC_ROLE_OBSERVER\\n Role:\\n required:\\n - name\\n type: object\\n properties:\\n name:\\n type: string\\n description: A unique name.\\n description:\\n type: string\\n description: Description of the role, as shown in the UI.\\n permissions:\\n type: array\\n items:\\n $ref: '#/components/schemas/RolePermission'\\n permission_sets_with_scope:\\n type: array\\n description: A list of permission sets with optional scope restrictions.\\n items:\\n $ref: '#/components/schemas/PermissionSetWithScope'\\n description: Role descriptor.\\n example:\\n name: RBAC_ROLE_NAME\\n description: Description of the role\\n permissions:\\n - action: http\\n object:\\n type: GET\\n value: /api/v1/endpoint\\n - action: http\\n object:\\n type: POST\\n value: /api/v1/endpoint\\n PermissionSet:\\n required:\\n - name\\n - permissions\\n type: object\\n properties:\\n name:\\n type: string\\n description: A unique name.\\n action:\\n type: string\\n object:\\n type: string\\n description:\\n type: string\\n description: Description of the permission set.\\n permissions:\\n type: array\\n items:\\n $ref: '#/components/schemas/Permission'\\n supported_scope_types:\\n type: array\\n items:\\n type: string\\n description: Permission set descriptor.\\n FeedbackProduct:\\n type: object\\n properties:\\n score:\\n type: integer\\n description: User satisfaction\\n minimum: 1\\n maximum: 5\\n message:\\n type: string\\n description: Optional feedback from the user.\\n maxLength: 2000\\n description: General product feedback\\n FeedbackAI:\\n required:\\n - deployment_id\\n - device_id\\n - useful\\n type: object\\n properties:\\n useful:\\n type: boolean\\n description: Was this feature useful?\\n deployment_id:\\n type: string\\n description: The deployment ID where this feedback was triggered for context.\\n format: uuid\\n device_id:\\n type: string\\n description: The device ID where this feedback was triggered for context.\\n format: uuid\\n description: AI feedback form.\\n OwnUserUpdateV2:\\n type: object\\n properties:\\n password:\\n type: string\\n description: New password.\\n current_password:\\n type: string\\n description: Current password.\\n description: Update user information.\\n example:\\n password: new password\\n current_password: old password\\n CLIParams:\\n type: object\\n properties:\\n command:\\n type: array\\n items:\\n type: string\\n executionTimeOut:\\n type: integer\\n description: CLI parameters\\n HTTPParams:\\n type: object\\n properties:\\n uri:\\n type: string\\n method:\\n type: string\\n contentType:\\n type: string\\n body:\\n type: string\\n json:\\n type: object\\n properties: {}\\n headers:\\n type: object\\n properties: {}\\n statusCodes:\\n type: array\\n items:\\n type: integer\\n connectionTimeOut:\\n type: integer\\n readTimeOut:\\n type: integer\\n description: HTTP parameters\\n Task:\\n required:\\n - name\\n - type\\n type: object\\n properties:\\n name:\\n type: string\\n type:\\n type: string\\n retries:\\n type: integer\\n retryDelaySeconds:\\n type: integer\\n requires:\\n type: array\\n items:\\n type: string\\n cli:\\n $ref: '#/components/schemas/CLIParams'\\n http:\\n $ref: '#/components/schemas/HTTPParams'\\n description: Task definition\\n Workflow:\\n required:\\n - name\\n - tasks\\n - version\\n type: object\\n properties:\\n name:\\n type: string\\n description:\\n type: string\\n version:\\n type: integer\\n schemaversion:\\n type: integer\\n tasks:\\n type: array\\n items:\\n $ref: '#/components/schemas/Task'\\n inputParameters:\\n type: array\\n items:\\n type: string\\n JobObject:\\n type: object\\n properties:\\n id:\\n type: string\\n workflowName:\\n type: string\\n inputParameters:\\n type: array\\n items:\\n $ref: '#/components/schemas/InputParameter'\\n status:\\n type: string\\n results:\\n type: array\\n items:\\n $ref: '#/components/schemas/TaskResult'\\n insert_time:\\n type: string\\n format: date-time\\n version:\\n type: string\\n securitySchemes:\\n ManagementJWT:\\n type: http\\n description: |\\n API token issued by User Authentication service.\\n scheme: bearer\\n bearerFormat: JWT\\n DeviceJWT:\\n type: http\\n scheme: bearer\\n bearerFormat: JWT\\n description: |\\n API token issued by Device Authentication service.\\n Format: 'Authorization: Bearer [JWT]'\\n Login:\\n type: http\\n scheme: basic\\n parameters:\\n Authentication:\\n name: authorization\\n in: header\\n description: The token in base64-encoded form.\\n required: false\\n schema:\\n type: string\\n RequestId:\\n name: X-MEN-RequestID\\n in: header\\n required: false\\n description: A request identification\\n schema:\\n type: string\\nx-tagGroups:\\n - name: Mender API\\n tags:\\n - Mender_API_Mender API\\n - name: Audit Logs\\n tags:\\n - Audit_Logs_Internal API\\n - Audit_Logs_Auditlogs Internal\\n - Audit_Logs_Management API\\n - Audit_Logs_Auditlogs Management\\n - name: Deployments\\n tags:\\n - Deployments_Device API\\n - Deployments_Management API\\n - name: Deployments v2\\n tags:\\n - Deployments_v2_Device API\\n - Deployments_v2_Management API\\n - name: Deployments Internal API\\n tags:\\n - Deployments_Internal_API_Internal API\\n - name: Deployments v1alpha1\\n tags:\\n - Deployments_v1alpha1_Management API\\n - name: Device Authentication\\n tags:\\n - Device_Authentication_Device API\\n - Device_Authentication_Internal API\\n - Device_Authentication_Management API\\n - name: Device configure\\n tags:\\n - Device_configure_Device API\\n - Device_configure_Internal API\\n - Device_configure_Management API\\n - name: Device connect\\n tags:\\n - Device_connect_Device API\\n - Device_connect_Internal API\\n - Device_connect_Management API\\n - name: Device monitor\\n tags:\\n - Device_monitor_Devices API\\n - Device_monitor_Internal API\\n - Device_monitor_Management API\\n - name: Device inventory\\n tags:\\n - Device_inventory_Device API\\n - Device_inventory_Internal API\\n - Device_inventory_Management API\\n - name: Device inventory filters and search\\n tags:\\n - Device_inventory_filters_and_search_Internal API\\n - Device_inventory_filters_and_search_Management API\\n - name: Inventory v2alpha1\\n tags:\\n - Inventory_v2alpha1_Management API\\n - name: IoT Manager\\n tags:\\n - IoT_Manager_Internal API\\n - IoT_Manager_Management API\\n - name: Tenants APIs\\n tags:\\n - Tenants_APIs_Internal API\\n - Tenants_APIs_Tenantadm Internal\\n - Tenants_APIs_Management API\\n - Tenants_APIs_Tenantadm Management\\n - name: Tenants APIs v2\\n tags:\\n - Tenants_APIs_v2_Management API\\n - Tenants_APIs_v2_Tenantadm Management v2\\n - name: User administration and authentication\\n tags:\\n - User_administration_and_authentication_Internal API\\n - name: User Administration\\n tags:\\n - User_Administration_Management API\\n - name: User Administration v2\\n tags:\\n - User_Administration_v2_Management API\\n - name: Workflows\\n tags:\\n - Workflows_other\\n\"","// Copyright 2026 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { load } from 'js-yaml';\nimport { OpenAPIBackend } from 'openapi-backend';\nimport type { Document } from 'openapi-backend';\n\nimport specYaml from '../openapi.yaml';\n\nconst spec = load(specYaml) as Document;\n\n// Inject additionalProperties: false into all schema objects so that extra fields are caught during validation.\n// Direct children of allOf are skipped because AJV validates each allOf sub-schema independently\n// additionalProperties: false on one sub-schema would reject properties defined in a sibling sub-schema.\n//TODO: explore the ways to address the issue above\n\nconst strictifySchemas = (obj: any, insideAllOf = false) => {\n if (!obj || typeof obj !== 'object') return;\n if (!insideAllOf && obj.properties && obj.additionalProperties === undefined) {\n obj.additionalProperties = false;\n }\n Object.entries(obj).forEach(([key, value]) => {\n if (key === 'allOf' && Array.isArray(value)) {\n value.forEach((item: any) => strictifySchemas(item, true));\n } else {\n strictifySchemas(value, false);\n }\n });\n};\nstrictifySchemas(spec);\n\nconst customOpenAPIFormats = ['date-time', 'duration', 'email', 'uuid', 'uri-reference', 'long', 'base64', 'url'];\n\nconst api = new OpenAPIBackend({\n definition: spec,\n quick: false,\n strict: true,\n customizeAjv: ajv => {\n //TODO: maybe we can improve format across the spec\n customOpenAPIFormats.forEach(format => ajv.addFormat(format, true));\n return ajv;\n }\n});\napi.init();\n\nexport const validateRequest = async (request: Request) => {\n const url = new URL(request.url);\n const contentType = request.headers.get('content-type') || '';\n let body: unknown;\n if (['GET', 'HEAD'].includes(request.method)) {\n body = undefined;\n } else if (contentType.includes('multipart/form-data')) {\n const formData = await request.clone().formData();\n body = Object.fromEntries(formData.entries());\n } else {\n body = await request\n .clone()\n .json()\n .catch(() => undefined);\n }\n\n const { errors } = api.validateRequest({\n method: request.method,\n path: url.pathname,\n headers: Object.fromEntries(request.headers.entries()),\n query: Object.fromEntries(url.searchParams.entries()),\n body\n });\n\n if (errors) {\n const message = `Invalid request: ${request.method} ${url.pathname}\\nErrors: ${JSON.stringify(errors, null, 2)}\\nRequest body: ${JSON.stringify(body, null, 2)}`;\n console.error(message);\n throw new Error(message);\n }\n};\n\n// wrapper for msw handlers\nexport const validated = resolver => async info => {\n await validateRequest(info.request);\n return resolver(info);\n};\n"],"mappings":";;;;ACmBA,MAAM,OAAO,KAAKA,g+/pBAAQ;AAO1B,MAAM,oBAAoB,KAAU,cAAc,UAAU;CAC1D,IAAI,CAAC,OAAO,OAAO,QAAQ,UAAU;CACrC,IAAI,CAAC,eAAe,IAAI,cAAc,IAAI,yBAAyB,KAAA,GACjE,IAAI,uBAAuB;CAE7B,OAAO,QAAQ,GAAG,CAAC,CAAC,SAAS,CAAC,KAAK,WAAW;EAC5C,IAAI,QAAQ,WAAW,MAAM,QAAQ,KAAK,GACxC,MAAM,SAAS,SAAc,iBAAiB,MAAM,IAAI,CAAC;OAEzD,iBAAiB,OAAO,KAAK;CAEjC,CAAC;AACH;AACA,iBAAiB,IAAI;AAErB,MAAM,uBAAuB;CAAC;CAAa;CAAY;CAAS;CAAQ;CAAiB;CAAQ;CAAU;AAAK;AAEhH,MAAM,MAAM,IAAI,eAAe;CAC7B,YAAY;CACZ,OAAO;CACP,QAAQ;CACR,eAAc,QAAO;EAEnB,qBAAqB,SAAQ,WAAU,IAAI,UAAU,QAAQ,IAAI,CAAC;EAClE,OAAO;CACT;AACF,CAAC;AACD,IAAI,KAAK;AAET,MAAa,kBAAkB,OAAO,YAAqB;CACzD,MAAM,MAAM,IAAI,IAAI,QAAQ,GAAG;CAC/B,MAAM,cAAc,QAAQ,QAAQ,IAAI,cAAc,KAAK;CAC3D,IAAI;CACJ,IAAI,CAAC,OAAO,MAAM,CAAC,CAAC,SAAS,QAAQ,MAAM,GACzC,OAAO,KAAA;MACF,IAAI,YAAY,SAAS,qBAAqB,GAAG;EACtD,MAAM,WAAW,MAAM,QAAQ,MAAM,CAAC,CAAC,SAAS;EAChD,OAAO,OAAO,YAAY,SAAS,QAAQ,CAAC;CAC9C,OACE,OAAO,MAAM,QACV,MAAM,CAAC,CACP,KAAK,CAAC,CACN,YAAY,KAAA,CAAS;CAG1B,MAAM,EAAE,WAAW,IAAI,gBAAgB;EACrC,QAAQ,QAAQ;EAChB,MAAM,IAAI;EACV,SAAS,OAAO,YAAY,QAAQ,QAAQ,QAAQ,CAAC;EACrD,OAAO,OAAO,YAAY,IAAI,aAAa,QAAQ,CAAC;EACpD;CACF,CAAC;CAED,IAAI,QAAQ;EACV,MAAM,UAAU,oBAAoB,QAAQ,OAAO,GAAG,IAAI,SAAS,YAAY,KAAK,UAAU,QAAQ,MAAM,CAAC,EAAE,kBAAkB,KAAK,UAAU,MAAM,MAAM,CAAC;EAC7J,QAAQ,MAAM,OAAO;EACrB,MAAM,IAAI,MAAM,OAAO;CACzB;AACF;AAGA,MAAa,aAAY,aAAY,OAAM,SAAQ;CACjD,MAAM,gBAAgB,KAAK,OAAO;CAClC,OAAO,SAAS,IAAI;AACtB"}