diff --git a/API/common/commonopenapi.yaml b/API/common/commonopenapi.yaml new file mode 100644 index 0000000000000000000000000000000000000000..2b792eaeddb03756b53d22f235b7fcf691d9aacc --- /dev/null +++ b/API/common/commonopenapi.yaml @@ -0,0 +1,318 @@ + + + + + openapi: 3.0.0 + + +# COMPONENTS ############################################### + components: + + #------------------------------- + # Reusable schemas (data models) + #------------------------------- + schemas: + + Mode_WorldAnalysis: + description: Mode representing the context of the relocalization information (AR device to WorldAnchor/Trackable or WorldAnchor/Trackable to AR device) + type: string + enum: [TRACKABLES_TO_DEVICE, DEVICE_TO_TRACKABLES] + example: TRACKABLES_TO_DEVICE + + Mode_WorldStorage: + description: Mode representing the context of the relocalization information (AR device to WorldAnchor/Trackable or WorldAnchor/Trackable to AR device) + type: string + enum: [TRACKABLES_TO_REQUEST, REQUEST_TO_TRACKABLES] + example: TRACKABLES_TO_REQUEST + + EncodingInformationStructure: + description: An object holding the info of a Trackable`'`s encoding information `:` the data format and the version. + required: + - dataFormat + - version + properties: + dataFormat: + description: Identifier of the target framework. + type: string + enum: [HOLOLENS, ARKIT, ARCORE, VUFORIA, ARUCO, OTHER] + example : "HOLOLENS" + version: + description: The version of the format + type: string + example : "1.01" + + Transform3D: + description: Coordinate reference system of the world anchor, a 4*4 matrix (rowmajor) represented by a float vector. + type: array + minItems: 16 + maxItems: 16 + items: + type: number + format: float + example: [ 1, 0, 0, 3, + 0, 1, 0, 3, + 0, 0, 1, 3, + 0, 0, 0, 1] + + UnitSystem: + description: Unit of length. + type: string + enum: [MM, CM, DM, M, DAM, HM, KM, INCH, FOOT, YARD, MILE] + example: M + + Size: + description: Size object in format {width, length, depth}. + type: array + items: + type: number + format: double + minItems: 3 + maxItems: 3 + example: [1.0,1.0,1.5] + + Token: + type: string + example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczovL2V4YW1wbGUuYXV0aDAuY29tLyIsImF1ZCI6Imh0dHBzOi8vYXBpLmV4YW1wbGUuY29tL2NhbGFuZGFyL3YxLyIsInN1YiI6InVzcl8xMjMiLCJpYXQiOjE0NTg3ODU3OTYsImV4cCI6MTQ1ODg3MjE5Nn0.CA7eaHjIHz5NxeIJoFK9krqaeZrPLwmMmgI_XiQiIkQ + description: A string representing the token of the User. + + Error: + required: + - code + - message + properties: + code: + type: integer + format: int32 + example: 406 + message: + type: string + example: "Error 406" + + SessionID: + type: string + example: 4JA1xVJSYKE47UM7RKDrfUcTXlJ0wxSQ + description: A string representing the session ID associated with the AR session. + + Pose: + description: An element representing the result of the pose estimation of an AR device, a Trackable or a WorldAnchor by the World Analysis + type: object + properties: + uuid: + description: UUID of the associated Anchor or Trackable + type: string + format: uuid + example: "fa8bbe40-8052-11ec-a8a3-0242ac120002" + estimationState: + description: Extensible List of possible states of the pose estimation + type: string + enum: [OK, FAILURE] + example: OK + instructionInfo: + description: A message detailing the context of the pose estimation + type: string + example: Lighting is toom dim + timestamp: + description: Capture time of the pose as number of milliseconds since unix epoch + type: integer + example : 1704812114841 + confidence: + description: A score representing the confidence concerning the accuracy of the pose estimated + type: number + example : 50.00 + mode: + description: Mode representing the context of the Relocalization information (AR device to WorldAnchor/Trackable or WorldAnchor/Trackable to AR device) + $ref: '#/components/schemas/Mode' + value: + description: The pose value + oneOf: + - $ref: '#/components/schemas/MatrixPoseValue' + - $ref: '#/components/schemas/VectorQuaternionPoseValue' + - $ref: '#/components/schemas/GeodeticPoseValue' + example: + type: "MATRIX" + transform: [ 1, 0, 0, 3, + 0, 1, 0, 3, + 0, 0, 1, 3, + 0, 0, 0, 1 ] + subscriptionUrl: + description: The URL to use for subscription (if available), see [/pose/subscriptions] + type: string + example: "http://mywordanalysisserver.com/pose/subscriptions?target=fa8bbe40-8052-11ec-a8a3-0242ac120002" + + PoseValue: + description: Base type to define the pose value + type: object + properties: + type: + description: Encoding type of the Pose + type: string + enum: [MATRIX, VECTOR_QUATERNION, GEODETIC] + + MatrixPoseValue: + description: A pose value that is described with a 4*4 matrix + allOf: #inheritance + - $ref: '#/components/schemas/PoseValue' + properties: + transform: + description : Pose data + $ref: '#/components/schemas/Transform3D' + unit: + description: Unit system of the pose + $ref: '#/components/schemas/UnitSystem' + + VectorQuaternionPoseValue: + description: A pose value that is described with a position and a rotation + allOf: #inheritance + - $ref: '#/components/schemas/PoseValue' + properties: + position: + description : Pose Position + $ref: '#/components/schemas/Vector3' + rotation: + description : Pose Rotation + $ref: '#/components/schemas/Quaternion' + unit: + description: Unit system of the pose + $ref: '#/components/schemas/UnitSystem' + + Vector3: + description: A 3 coordinates vector + type: array + minItems: 3 + maxItems: 3 + items: + type: number + format: float + example: [ 1, 0, 0 ] + + Quaternion: + description: A quaternion + type: array + minItems: 4 + maxItems: 4 + items: + type: number + format: float + example: [ 0, 0, 0, 1 ] + + TypeWorldStorage: + description: Trackable or Anchor + type: string + enum: [TRACKABLE, ANCHOR] + example: ANCHOR + + Capability: + description: An object representing a supported capability of the World Analysis and its associated metadata + type: object + uniqueItems: true + properties: + trackableType: + type: string + enum: [FIDUCIAL_MARKER, IMAGE_MARKER, MAP, GEOPOSE, OTHER] + example: "FIDUCIAL_MARKER" + encodingInformation: + $ref: '#/components/schemas/EncodingInformationStructure' + framerate: + description: Number of frames per second the tracking of this type of trackable is performed by the World Analysis + type: number + example : 30.0 + latency: + description: Mean tracking latency in milliseconds for this type of trackable + type: number + example: 10.0 + accuracy: + description: Accuracy score for the detection of this type of Trackable by the World Analysis + type: number + example: 50.0 + + #------------------------------- + # Reusable responses + #------------------------------- + responses: + ####################### + # 1xx : Informational # + ####################### + + ################# + # 2xx : Success # + ################# + + ##################### + # 3xx : Redirection # + ##################### + + ####################### + # 4xx : Client Errors # + ####################### + 400_BadRequest: + description: Bad request. + content: + text/plain: + schema: + type: string + example: "Bad request" + + 400_InvalidUUID: + description: Invalid UUID supplied. + content: + text/plain: + schema: + example: "The format of the UUID is incorrect" + type: string + + 403_Forbidden: + description: Not allowed. + content: + text/plain: + schema: + type: string + example: "Not allowed" + + 404_NotFound: + description: Not found. + content: + text/plain: + schema: + type: string + example: "Not found" + + 404_NotFoundUUID: + description: Not found, could not find UUID in database. + content: + text/plain: + schema: + type: string + example: "Element not found" + + 405_NotSupported: + description: Not supported. + content: + text/plain: + schema: + type: string + example: "Not supported" + + 4xx_UnexpectedError: # Can be referenced as '#/components/responses/GenericError' + description: Unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + + 409_NotEmptyUUID: + description: Invalid UUID, id must be a Nil value. + content: + text/plain: + schema: + type: string + example: "The element you sent has already a value and can't be sent to the world storage" + + ######################## + # 5xx : Server Errors # + ######################## + 5xx_UnexpectedError: + description: Unexpected server error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' diff --git a/API/worldanalysis/worldanalysisopenapi.yaml b/API/worldanalysis/worldanalysisopenapi.yaml index e7038181445d15d459b4eb9a848092973dfe2d23..955a426c900a0e1e8d5ff645b10c83ffb5f06085 100644 --- a/API/worldanalysis/worldanalysisopenapi.yaml +++ b/API/worldanalysis/worldanalysisopenapi.yaml @@ -68,11 +68,11 @@ paths: - in: header name: token schema: - $ref: '#/components/schemas/Token' + $ref: '../common/commonopenapi.yaml#/components/schemas/Token' - in: header name: sessionID schema: - $ref: '#/components/schemas/SessionID' + $ref: '../common/commonopenapi.yaml#/components/schemas/SessionID' requestBody: required: true content: @@ -83,9 +83,9 @@ paths: '200': description: Successful operation. '405': - $ref: '#/components/responses/405_NotSupported' + $ref: '../common/commonopenapi.yaml#/components/responses/405_NotSupported' 'default': - $ref: '#/components/responses/4xx_UnexpectedError' + $ref: '../common/commonopenapi.yaml#/components/responses/4xx_UnexpectedError' /pose/{trackableOrAnchorUUID}: get: @@ -98,11 +98,11 @@ paths: - in: header name: token schema: - $ref: '#/components/schemas/Token' + $ref: '../common/commonopenapi.yaml#/components/schemas/Token' - in: header name: sessionID schema: - $ref: '#/components/schemas/SessionID' + $ref: '../common/commonopenapi.yaml#/components/schemas/SessionID' - name: trackableOrAnchorUUID in: path description: UUID of the Trackable or Anchor to request @@ -116,7 +116,7 @@ paths: description: Mode representing the context of the Relocalization information (AR device to WorldAnchor/Trackable or WorldAnchor/Trackable to AR device) required: true schema: - $ref: '#/components/schemas/Mode' + $ref: '../common/commonopenapi.yaml#/components/schemas/Mode_WorldAnalysis' responses: '200': description: Successful operation. @@ -125,15 +125,15 @@ paths: schema: $ref: '#/components/schemas/Pose' '400': - $ref: '#/components/responses/400_BadRequest' + $ref: '../common/commonopenapi.yaml#/components/responses/400_BadRequest' '403': - $ref: '#/components/responses/403_Forbidden' + $ref: '../common/commonopenapi.yaml#/components/responses/403_Forbidden' '404': - $ref: '#/components/responses/404_NotFound' + $ref: '../common/commonopenapi.yaml#/components/responses/404_NotFound' '405': - $ref: '#/components/responses/405_NotSupported' + $ref: '../common/commonopenapi.yaml#/components/responses/405_NotSupported' 'default': - $ref: '#/components/responses/4xx_UnexpectedError' + $ref: '../common/commonopenapi.yaml#/components/responses/4xx_UnexpectedError' /poses: get: @@ -146,32 +146,28 @@ paths: - in: header name: token schema: - $ref: '#/components/schemas/Token' + $ref: '../common/commonopenapi.yaml#/components/schemas/Token' - in: header name: sessionID schema: - $ref: '#/components/schemas/SessionID' + $ref: '../common/commonopenapi.yaml#/components/schemas/SessionID' - name: uuid - in: query - description: UUID of the Trackable or Anchor to request with the mode representing the context of the Relocalization information (AR device to WorldAnchor/Trackable or WorldAnchor/Trackable to AR device) + in: header + description: UUID of the Trackable or Anchor to request required: true schema: type: array uniqueItems: true items: - type: object - properties: - uuid: - type: string - format: uuid - example: "fa8bbe40-8052-11ec-a8a3-0242ac120002" - mode: - description: Mode representing the context of the Relocalization information (AR device to WorldAnchor/Trackable or WorldAnchor/Trackable to AR device) - $ref: '#/components/schemas/Mode' - required: - - uuid - - mode - + type: string + format: uuid + example: "fa8bbe40-8052-11ec-a8a3-0242ac120002" + - name: mode + in: query + description: Mode representing the context of the Relocalization information (AR device to WorldAnchor/Trackable or WorldAnchor/Trackable to AR device) + required: true + schema: + $ref: '../common/commonopenapi.yaml#/components/schemas/Mode_WorldAnalysis' responses: '200': description: Successful operation. @@ -185,15 +181,15 @@ paths: items: $ref: '#/components/schemas/Pose' '400': - $ref: '#/components/responses/400_BadRequest' + $ref: '../common/commonopenapi.yaml#/components/responses/400_BadRequest' '403': - $ref: '#/components/responses/403_Forbidden' + $ref: '../common/commonopenapi.yaml#/components/responses/403_Forbidden' '404': - $ref: '#/components/responses/404_NotFound' + $ref: '../common/commonopenapi.yaml#/components/responses/404_NotFound' '405': - $ref: '#/components/responses/405_NotSupported' + $ref: '../common/commonopenapi.yaml#/components/responses/405_NotSupported' 'default': - $ref: '#/components/responses/4xx_UnexpectedError' + $ref: '../common/commonopenapi.yaml#/components/responses/4xx_UnexpectedError' /pose/subscriptions: post: @@ -206,11 +202,11 @@ paths: - in: header name: token schema: - $ref: '#/components/schemas/Token' + $ref: '../common/commonopenapi.yaml#/components/schemas/Token' - in: header name: sessionID schema: - $ref: '#/components/schemas/SessionID' + $ref: '../common/commonopenapi.yaml#/components/schemas/SessionID' - name: target in: query description: UUID of the Trackable or Anchor to subscribe @@ -239,15 +235,15 @@ paths: - $ref: '#/components/schemas/SubscriptionSingle' - $ref: '#/components/schemas/SubscriptionMultiple' '400': - $ref: '#/components/responses/400_BadRequest' + $ref: '../common/commonopenapi.yaml#/components/responses/400_BadRequest' '403': - $ref: '#/components/responses/403_Forbidden' + $ref: '../common/commonopenapi.yaml#/components/responses/403_Forbidden' '404': - $ref: '#/components/responses/404_NotFound' + $ref: '../common/commonopenapi.yaml#/components/responses/404_NotFound' '405': - $ref: '#/components/responses/405_NotSupported' + $ref: '../common/commonopenapi.yaml#/components/responses/405_NotSupported' 'default': - $ref: '#/components/responses/4xx_UnexpectedError' + $ref: '../common/commonopenapi.yaml#/components/responses/4xx_UnexpectedError' /pose/subscriptions/{subscriptionUUID}: @@ -261,11 +257,11 @@ paths: - in: header name: token schema: - $ref: '#/components/schemas/Token' + $ref: '../common/commonopenapi.yaml#/components/schemas/Token' - in: header name: sessionID schema: - $ref: '#/components/schemas/SessionID' + $ref: '../common/commonopenapi.yaml#/components/schemas/SessionID' - name: subscriptionUUID in: path description: Subscription UUID to retrieve. @@ -282,9 +278,9 @@ paths: schema: $ref: '#/components/schemas/SubscriptionSingle' '400': - $ref: '#/components/responses/400_BadRequest' + $ref: '../common/commonopenapi.yaml#/components/responses/400_BadRequest' '404': - $ref: '#/components/responses/404_NotFound' + $ref: '../common/commonopenapi.yaml#/components/responses/404_NotFound' put: summary: Update a subscription operationId: updateSubscription @@ -295,11 +291,11 @@ paths: - in: header name: token schema: - $ref: '#/components/schemas/Token' + $ref: '../common/commonopenapi.yaml#/components/schemas/Token' - in: header name: sessionID schema: - $ref: '#/components/schemas/SessionID' + $ref: '../common/commonopenapi.yaml#/components/schemas/SessionID' - name: subscriptionUUID in: path description: Subscription UUID to delete. @@ -317,7 +313,7 @@ paths: properties: mode: description: Mode representing the context of the Relocalization information (AR device to WorldAnchor/Trackable or WorldAnchor/Trackable to AR device) - $ref: '#/components/schemas/Mode' + $ref: '../common/commonopenapi.yaml#/components/schemas/Mode_WorldAnalysis' validity: description: Subscription validity delay in millisecond type: integer @@ -335,9 +331,9 @@ paths: schema: $ref: '#/components/schemas/SubscriptionSingle' '400': - $ref: '#/components/responses/400_BadRequest' + $ref: '../common/commonopenapi.yaml#/components/responses/400_BadRequest' '404': - $ref: '#/components/responses/404_NotFound' + $ref: '../common/commonopenapi.yaml#/components/responses/404_NotFound' delete: summary: Remove a subscription to a given pose operationId: unsubscribeFromPose @@ -348,11 +344,11 @@ paths: - in: header name: token schema: - $ref: '#/components/schemas/Token' + $ref: '../common/commonopenapi.yaml#/components/schemas/Token' - in: header name: sessionID schema: - $ref: '#/components/schemas/SessionID' + $ref: '../common/commonopenapi.yaml#/components/schemas/SessionID' - name: subscriptionUUID in: path description: Subscription UUID to delete. @@ -370,9 +366,9 @@ paths: type: string example: "Subscription succesfuly deleted" '400': - $ref: '#/components/responses/400_BadRequest' + $ref: '../common/commonopenapi.yaml#/components/responses/400_BadRequest' '404': - $ref: '#/components/responses/404_NotFound' + $ref: '../common/commonopenapi.yaml#/components/responses/404_NotFound' /capabilities: get: @@ -385,11 +381,11 @@ paths: - in: header name: token schema: - $ref: '#/components/schemas/Token' + $ref: '../common/commonopenapi.yaml#/components/schemas/Token' - in: header name: sessionID schema: - $ref: '#/components/schemas/SessionID' + $ref: '../common/commonopenapi.yaml#/components/schemas/SessionID' responses: '200': description: Successful operation. @@ -401,9 +397,9 @@ paths: capabilities: type: array items: - $ref: '#/components/schemas/Capability' + $ref: '../common/commonopenapi.yaml#/components/schemas/Capability' 'default': - $ref: '#/components/responses/4xx_UnexpectedError' + $ref: '../common/commonopenapi.yaml#/components/responses/4xx_UnexpectedError' /capabilities/{trackableOrAnchorUUID}: @@ -417,11 +413,11 @@ paths: - in: header name: token schema: - $ref: '#/components/schemas/Token' + $ref: '../common/commonopenapi.yaml#/components/schemas/Token' - in: header name: sessionID schema: - $ref: '#/components/schemas/SessionID' + $ref: '../common/commonopenapi.yaml#/components/schemas/SessionID' - name: trackableOrAnchorUUID in: path description: UUID of the Trackable or Anchor to check support @@ -438,19 +434,19 @@ paths: type: object properties: type: - $ref: '#/components/schemas/TypeWorldStorage' + $ref: '../common/commonopenapi.yaml#/components/schemas/TypeWorldStorage' capability: - $ref: '#/components/schemas/Capability' + $ref: '../common/commonopenapi.yaml#/components/schemas/Capability' '400': - $ref: '#/components/responses/400_BadRequest' + $ref: '../common/commonopenapi.yaml#/components/responses/400_BadRequest' '403': - $ref: '#/components/responses/403_Forbidden' + $ref: '../common/commonopenapi.yaml#/components/responses/403_Forbidden' '404': - $ref: '#/components/responses/404_NotFound' + $ref: '../common/commonopenapi.yaml#/components/responses/404_NotFound' '405': - $ref: '#/components/responses/405_NotSupported' + $ref: '../common/commonopenapi.yaml#/components/responses/405_NotSupported' 'default': - $ref: '#/components/responses/4xx_UnexpectedError' + $ref: '../common/commonopenapi.yaml#/components/responses/4xx_UnexpectedError' # COMPONENTS ############################################### components: @@ -459,16 +455,7 @@ components: # Reusable schemas (data models) #------------------------------- schemas: - - Token: - type: string - example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczovL2V4YW1wbGUuYXV0aDAuY29tLyIsImF1ZCI6Imh0dHBzOi8vYXBpLmV4YW1wbGUuY29tL2NhbGFuZGFyL3YxLyIsInN1YiI6InVzcl8xMjMiLCJpYXQiOjE0NTg3ODU3OTYsImV4cCI6MTQ1ODg3MjE5Nn0.CA7eaHjIHz5NxeIJoFK9krqaeZrPLwmMmgI_XiQiIkQ - description: A string representing the token of the User. - SessionID: - type: string - example: 4JA1xVJSYKE47UM7RKDrfUcTXlJ0wxSQ - description: A string representing the session ID associated with the AR session. Pose: description: An element representing the result of the pose estimation of an AR device, a Trackable or a WorldAnchor by the World Analysis @@ -498,12 +485,12 @@ components: example : 50.00 mode: description: Mode representing the context of the Relocalization information (AR device to WorldAnchor/Trackable or WorldAnchor/Trackable to AR device) - $ref: '#/components/schemas/Mode' + $ref: '../common/commonopenapi.yaml#/components/schemas/Mode_WorldAnalysis' value: description: The pose value oneOf: - $ref: '#/components/schemas/MatrixPoseValue' - - $ref: '#/components/schemas/VectorQuaternionPoseValue' + - $ref: '../common/commonopenapi.yaml#/components/schemas/VectorQuaternionPoseValue' - $ref: '#/components/schemas/GeodeticPoseValue' example: type: "MATRIX" @@ -532,25 +519,10 @@ components: properties: transform: description : Pose data - $ref: '#/components/schemas/Transform3D' - unit: - description: Unit system of the pose - $ref: '#/components/schemas/UnitSystem' - - VectorQuaternionPoseValue: - description: A pose value that is described with a position and a rotation - allOf: #inheritance - - $ref: '#/components/schemas/PoseValue' - properties: - position: - description : Pose Position - $ref: '#/components/schemas/Vector3' - rotation: - description : Pose Rotation - $ref: '#/components/schemas/Quaternion' + $ref: '../common/commonopenapi.yaml#/components/schemas/Transform3D' unit: description: Unit system of the pose - $ref: '#/components/schemas/UnitSystem' + $ref: '../common/commonopenapi.yaml#/components/schemas/UnitSystem' GeodeticPoseValue: description : A pose value in a geodetic coordinate system @@ -568,7 +540,7 @@ components: example: 43.57351 rotation: description: Pose Rotation - $ref: '#/components/schemas/Quaternion' + $ref: '../common/commonopenapi.yaml#/components/schemas/Quaternion' geodeticsystem: description: Associated geodetic system of the pose type: string @@ -579,81 +551,6 @@ components: enum: [EASTUPSOUTH, WESTUPNORTH] example: EASTUPSOUTH - UnitSystem: - description: Unit of length. - type: string - enum: [MM, CM, DM, M, DAM, HM, KM, INCH, FOOT, YARD, MILE] - example: M - - Transform3D: - description: Coordinate reference system of the world anchor, a 4*4 matrix (rowmajor) represented by a float vector. - type: array - minItems: 16 - maxItems: 16 - items: - type: number - format: float - example: [ 1, 0, 0, 3, - 0, 1, 0, 3, - 0, 0, 1, 3, - 0, 0, 0, 1 ] - - Vector3: - description: A 3 coordinates vector - type: array - minItems: 3 - maxItems: 3 - items: - type: number - format: float - example: [ 1, 0, 0 ] - - Quaternion: - description: A quaternion - type: array - minItems: 4 - maxItems: 4 - items: - type: number - format: float - example: [ 0, 0, 0, 1 ] - - TypeWorldStorage: - description: Trackable or Anchor - type: string - enum: [TRACKABLE, ANCHOR] - example: ANCHOR - - Mode: - description: Mode representing the context of the relocalization information (AR device to WorldAnchor/Trackable or WorldAnchor/Trackable to AR device) - type: string - enum: [DEVICE_TO_TRACKABLE_OR_ANCHOR, TRACKABLE_OR_ANCHOR_TO_DEVICE] - example: DEVICE_TO_TRACKABLE_OR_ANCHOR - - Capability: - description: An object representing a supported capability of the World Analysis and its associated metadata - type: object - uniqueItems: true - properties: - trackableType: - type: string - enum: [FIDUCIAL_MARKER, IMAGE_MARKER, MAP, GEOPOSE, OTHER] - example: "FIDUCIAL_MARKER" - encodingInformation: - $ref: '#/components/schemas/EncodingInformationStructure' - framerate: - description: Number of frames per second the tracking of this type of trackable is performed by the World Analysis - type: number - example : 30.0 - latency: - description: Mean tracking latency in milliseconds for this type of trackable - type: number - example: 10.0 - accuracy: - description: Accuracy score for the detection of this type of Trackable by the World Analysis - type: number - example: 50.0 - PoseConfiguration: description: An object representing the framerate that the World Analysis needs to reach for a given Trackable Type type: object @@ -664,7 +561,7 @@ components: enum: [FIDUCIAL_MARKER, IMAGE_MARKER, MAP, GEOPOSE, OTHER] example: "FIDUCIAL_MARKER" encodingInformation: - $ref: '#/components/schemas/EncodingInformationStructure' + $ref: '../common/commonopenapi.yaml#/components/schemas/EncodingInformationStructure' framerate: description: Number of frames per second the tracking expected for this type of trackable is performed by the World Analysis type: number @@ -681,7 +578,7 @@ components: example: "fa8bbe40-8052-11ec-a8a3-0242ac120002" mode: description: Mode representing the context of the Relocalization information (AR device to WorldAnchor/Trackable or WorldAnchor/Trackable to AR device) - $ref: '#/components/schemas/Mode' + $ref: '../common/commonopenapi.yaml#/components/schemas/Mode_WorldAnalysis' validity: description: Subscription validity delay in millisecond type: integer @@ -703,7 +600,22 @@ components: description: List of UUID of the Trackable or Anchor to subscribe type: array items: - $ref: '#/components/schemas/SubscriptionSingleRequest' + format: uuid + example: [ "fa8bbe40-8052-11ec-a8a3-0242ac120002", "fa8bbe40-8052-11ec-a8a3-0242ac120003"] + mode: + description: Mode representing the context of the Relocalization information (AR device to WorldAnchor/Trackable or WorldAnchor/Trackable to AR device) + $ref: '../common/commonopenapi.yaml#/components/schemas/Mode_WorldAnalysis' + validity: + description: Subscription validity delay in millisecond + type: integer + example: 20000 + webhookUrl: + description: Optional URL of your listening webhook for collecting the poses + type: string + default: null + example: "http://myscenemanagementserver.com/poses" + required: + - mode SubscriptionSingle: description: Response when subscribing for pose update of a Trackable or a WorldAnchor @@ -721,7 +633,7 @@ components: example: "fa8bbe40-8052-11ec-a8a3-0242ac120002" mode: description: Mode representing the context of the Relocalization information (AR device to WorldAnchor/Trackable or WorldAnchor/Trackable to AR device) - $ref: '#/components/schemas/Mode' + $ref: '../common/commonopenapi.yaml#/components/schemas/Mode_WorldAnalysis' validity: type: integer example: 20000 @@ -743,99 +655,3 @@ components: items: $ref: '#/components/schemas/SubscriptionSingle' - Error: - required: - - code - - message - properties: - code: - type: integer - format: int32 - example: 406 - message: - type: string - example: "Error 406" - - # From World Storage - EncodingInformationStructure: - description: An object holding the info of a Trackable`'`s encoding information `:` the data format and the version. - required: - - dataFormat - - version - properties: - dataFormat: - description: Identifier of the target framework. - type: string - enum: [HOLOLENS, ARKIT, ARCORE, VUFORIA, ARUCO, OTHER] - example : "HOLOLENS" - version: - description: The version of the format - type: string - example : "1.01" - - #------------------------------- - # Reusable responses - #------------------------------- - responses: - ####################### - # 1xx : Informational # - ####################### - ################# - # 2xx : Success # - ################# - - ##################### - # 3xx : Redirection # - ##################### - - ####################### - # 4xx : Client Errors # - ####################### - 400_BadRequest: - description: Bad/Invalid request. - content: - text/plain: - schema: - type: string - example: "Bad request" - - 403_Forbidden: - description: Not allowed. - content: - text/plain: - schema: - type: string - example: "Not allowed" - - 404_NotFound: - description: Not found. - content: - text/plain: - schema: - type: string - example: "Not found" - - 405_NotSupported: - description: Not supported. - content: - text/plain: - schema: - type: string - example: "Not supported" - - 4xx_UnexpectedError: # Can be referenced as '#/components/responses/GenericError' - description: Unexpected error. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - - ######################## - # 5xx : Server Errors # - ######################## - 5xx_UnexpectedError: - description: Unexpected server error. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' diff --git a/API/worldstorage/worldstorageopenapi.yaml b/API/worldstorage/worldstorageopenapi.yaml index 7d27526b8037ead6a630ef94a2d59ccd8a08c0c9..a8c974acd85c08bf502077bf7160906f10421147 100644 --- a/API/worldstorage/worldstorageopenapi.yaml +++ b/API/worldstorage/worldstorageopenapi.yaml @@ -93,7 +93,7 @@ paths: - in: header name: token schema: - $ref: '#/components/schemas/Token' + $ref: '../common/commonopenapi.yaml#/components/schemas/Token' - in: query name: uuids description: List of pairs consisting of UUIDs of requested World Anchors or Trackables and a mode representing the context of the requested information @@ -109,8 +109,7 @@ paths: format: uuid example: "fa8bbe40-8052-11ec-a8a3-0242ac120002" mode: - description: Mode representing the context of the Relocalization information (AR device to WorldAnchor/Trackable or WorldAnchor/Trackable to AR device) - $ref: '#/components/schemas/Mode' + $ref: '../common/commonopenapi.yaml#/components/schemas/Mode_WorldStorage' - in: query name: capabilities @@ -119,7 +118,7 @@ paths: schema: type: array items: - $ref: '#/components/schemas/Capability' + $ref: '../common/commonopenapi.yaml#/components/schemas/Capability' responses: '200': description: Successful operation. @@ -133,11 +132,11 @@ paths: items: $ref: '#/components/schemas/RelocalizationInformation' '400': - $ref: '#/components/responses/400_InvalidUUID' + $ref: '../common/commonopenapi.yaml#/components/responses/400_InvalidUUID' '404': - $ref: '#/components/responses/404_NotFoundUUID' + $ref: '../common/commonopenapi.yaml#/components/responses/404_NotFoundUUID' 'default': - $ref: '#/components/responses/4xx_UnexpectedError' + $ref: '../common/commonopenapi.yaml#/components/responses/4xx_UnexpectedError' @@ -159,7 +158,7 @@ paths: - in: header name: token schema: - $ref: '#/components/schemas/Token' + $ref: '../common/commonopenapi.yaml#/components/schemas/Token' requestBody: description: The Trackable to be added to the world storage. required: true @@ -183,11 +182,11 @@ paths: type: string example: "" '400': - $ref: '#/components/responses/400_BadRequest' + $ref: '../common/commonopenapi.yaml#/components/responses/400_BadRequest' '409': - $ref: '#/components/responses/409_NotEmptyUUID' + $ref: '../common/commonopenapi.yaml#/components/responses/409_NotEmptyUUID' 'default': - $ref: '#/components/responses/4xx_UnexpectedError' + $ref: '../common/commonopenapi.yaml#/components/responses/4xx_UnexpectedError' put: summary: Modify a Trackable. operationId: modifyTrackable @@ -198,7 +197,7 @@ paths: - in: header name: token schema: - $ref: '#/components/schemas/Token' + $ref: '../common/commonopenapi.yaml#/components/schemas/Token' requestBody: description: The Trackable to be modified in the world storage. required: true @@ -215,11 +214,11 @@ paths: type: string example: "777266da-e286-11ec-8fea-0242ac120002" '400': - $ref: '#/components/responses/400_BadRequest' + $ref: '../common/commonopenapi.yaml#/components/responses/400_BadRequest' '404': - $ref: '#/components/responses/404_NotFoundUUID' + $ref: '../common/commonopenapi.yaml#/components/responses/404_NotFoundUUID' 'default': - $ref: '#/components/responses/4xx_UnexpectedError' + $ref: '../common/commonopenapi.yaml#/components/responses/4xx_UnexpectedError' get: summary: Return all the Trackables. operationId: getTrackables @@ -230,7 +229,7 @@ paths: - in: header name: token schema: - $ref: '#/components/schemas/Token' + $ref: '../common/commonopenapi.yaml#/components/schemas/Token' responses: '200': description: OK, return all the Trackables defined by the world storage. @@ -248,7 +247,7 @@ paths: type: string example: "" default: - $ref: '#/components/responses/4xx_UnexpectedError' + $ref: '../common/commonopenapi.yaml#/components/responses/4xx_UnexpectedError' /trackables/{trackableUUID}: get: @@ -261,7 +260,7 @@ paths: - in: header name: token schema: - $ref: '#/components/schemas/Token' + $ref: '../common/commonopenapi.yaml#/components/schemas/Token' - name: trackableUUID in: path description: UUID of the Trackable to retrieve. @@ -277,9 +276,9 @@ paths: schema: $ref: '#/components/schemas/Trackable' '400': - $ref: '#/components/responses/400_InvalidUUID' + $ref: '../common/commonopenapi.yaml#/components/responses/400_InvalidUUID' '404': - $ref: '#/components/responses/404_NotFoundUUID' + $ref: '../common/commonopenapi.yaml#/components/responses/404_NotFoundUUID' delete: summary: Delete a Trackable. operationId: deleteTrackable @@ -290,7 +289,7 @@ paths: - in: header name: token schema: - $ref: '#/components/schemas/Token' + $ref: '../common/commonopenapi.yaml#/components/schemas/Token' - name: trackableUUID in: path description: Trackable UUID to delete. @@ -307,9 +306,9 @@ paths: type: string example: "Element succesfully deleted" '400': - $ref: '#/components/responses/400_InvalidUUID' + $ref: '../common/commonopenapi.yaml#/components/responses/400_InvalidUUID' '404': - $ref: '#/components/responses/404_NotFoundUUID' + $ref: '../common/commonopenapi.yaml#/components/responses/404_NotFoundUUID' ################# # WORLD ANCHORS # @@ -325,7 +324,7 @@ paths: - in: header name: token schema: - $ref: '#/components/schemas/Token' + $ref: '../common/commonopenapi.yaml#/components/schemas/Token' requestBody: description: The World Anchor to be added to the world storage. required: true @@ -349,11 +348,11 @@ paths: type: string example: "" '400': - $ref: '#/components/responses/400_BadRequest' + $ref: '../common/commonopenapi.yaml#/components/responses/400_BadRequest' '409': - $ref: '#/components/responses/409_NotEmptyUUID' + $ref: '../common/commonopenapi.yaml#/components/responses/409_NotEmptyUUID' 'default': - $ref: '#/components/responses/4xx_UnexpectedError' + $ref: '../common/commonopenapi.yaml#/components/responses/4xx_UnexpectedError' put: summary: Modify a World Anchor. operationId: modifyWorldAnchor @@ -364,7 +363,7 @@ paths: - in: header name: token schema: - $ref: '#/components/schemas/Token' + $ref: '../common/commonopenapi.yaml#/components/schemas/Token' requestBody: description: The World Anchor to be modified in the world storage. required: true @@ -381,11 +380,11 @@ paths: type: string example: "777266da-e286-11ec-8fea-0242ac120002" '400': - $ref: '#/components/responses/400_BadRequest' + $ref: '../common/commonopenapi.yaml#/components/responses/400_BadRequest' '404': - $ref: '#/components/responses/404_NotFoundUUID' + $ref: '../common/commonopenapi.yaml#/components/responses/404_NotFoundUUID' 'default': - $ref: '#/components/responses/4xx_UnexpectedError' + $ref: '../common/commonopenapi.yaml#/components/responses/4xx_UnexpectedError' get: summary: Return all the World Anchors. operationId: getWorldAnchors @@ -396,7 +395,7 @@ paths: - in: header name: token schema: - $ref: '#/components/schemas/Token' + $ref: '../common/commonopenapi.yaml#/components/schemas/Token' responses: '200': description: OK, return all the World Anchors defined by the world storage. @@ -414,7 +413,7 @@ paths: type: string example: "" default: - $ref: '#/components/responses/4xx_UnexpectedError' + $ref: '../common/commonopenapi.yaml#/components/responses/4xx_UnexpectedError' /worldAnchors/{worldAnchorUUID}: get: @@ -427,7 +426,7 @@ paths: - in: header name: token schema: - $ref: '#/components/schemas/Token' + $ref: '../common/commonopenapi.yaml#/components/schemas/Token' - name: worldAnchorUUID in: path description: UUID of the World Anchor to retrieve. @@ -443,9 +442,9 @@ paths: schema: $ref: '#/components/schemas/WorldAnchor' '400': - $ref: '#/components/responses/400_InvalidUUID' + $ref: '../common/commonopenapi.yaml#/components/responses/400_InvalidUUID' '404': - $ref: '#/components/responses/404_NotFoundUUID' + $ref: '../common/commonopenapi.yaml#/components/responses/404_NotFoundUUID' delete: summary: Delete a World Anchor. operationId: deleteWorldAnchor @@ -456,7 +455,7 @@ paths: - in: header name: token schema: - $ref: '#/components/schemas/Token' + $ref: '../common/commonopenapi.yaml#/components/schemas/Token' - name: worldAnchorUUID in: path description: World Anchor UUID to delete. @@ -473,9 +472,9 @@ paths: type: string example: "Element succesfuly deleted" '400': - $ref: '#/components/responses/400_InvalidUUID' + $ref: '../common/commonopenapi.yaml#/components/responses/400_InvalidUUID' '404': - $ref: '#/components/responses/404_NotFoundUUID' + $ref: '../common/commonopenapi.yaml#/components/responses/404_NotFoundUUID' ############### # WORLD LINKS # @@ -491,7 +490,7 @@ paths: - in: header name: token schema: - $ref: '#/components/schemas/Token' + $ref: '../common/commonopenapi.yaml#/components/schemas/Token' requestBody: description: The link to be added to the world storage. required: true @@ -515,11 +514,11 @@ paths: type: string example: "" '400': - $ref: '#/components/responses/400_BadRequest' + $ref: '../common/commonopenapi.yaml#/components/responses/400_BadRequest' '409': - $ref: '#/components/responses/409_NotEmptyUUID' + $ref: '../common/commonopenapi.yaml#/components/responses/409_NotEmptyUUID' 'default': - $ref: '#/components/responses/4xx_UnexpectedError' + $ref: '../common/commonopenapi.yaml#/components/responses/4xx_UnexpectedError' put: summary: Modify a World Link. operationId: modifyWorldLink @@ -530,7 +529,7 @@ paths: - in: header name: token schema: - $ref: '#/components/schemas/Token' + $ref: '../common/commonopenapi.yaml#/components/schemas/Token' requestBody: description: The World Link to be modified in the world storage. required: true @@ -547,11 +546,11 @@ paths: type: string example: "777266da-e286-11ec-8fea-0242ac120002" '400': - $ref: '#/components/responses/400_BadRequest' + $ref: '../common/commonopenapi.yaml#/components/responses/400_BadRequest' '404': - $ref: '#/components/responses/404_NotFoundUUID' + $ref: '../common/commonopenapi.yaml#/components/responses/404_NotFoundUUID' 'default': - $ref: '#/components/responses/4xx_UnexpectedError' + $ref: '../common/commonopenapi.yaml#/components/responses/4xx_UnexpectedError' get: summary: Return all World Links. description: Get all the World Links currently being stored in the world storage. @@ -562,7 +561,7 @@ paths: - in: header name: token schema: - $ref: '#/components/schemas/Token' + $ref: '../common/commonopenapi.yaml#/components/schemas/Token' responses: '200': description: OK return all the World Links defined by the world storage. @@ -580,7 +579,7 @@ paths: type: string example: "" default: - $ref: '#/components/responses/4xx_UnexpectedError' + $ref: '../common/commonopenapi.yaml#/components/responses/4xx_UnexpectedError' /worldLinks/{worldLinkUUID}: get: @@ -593,7 +592,7 @@ paths: - in: header name: token schema: - $ref: '#/components/schemas/Token' + $ref: '../common/commonopenapi.yaml#/components/schemas/Token' - name: worldLinkUUID in: path description: UUID of the World Link to retrieve. @@ -609,9 +608,9 @@ paths: schema: $ref: '#/components/schemas/WorldLink' '400': - $ref: '#/components/responses/400_InvalidUUID' + $ref: '../common/commonopenapi.yaml#/components/responses/400_InvalidUUID' '404': - $ref: '#/components/responses/404_NotFoundUUID' + $ref: '../common/commonopenapi.yaml#/components/responses/404_NotFoundUUID' delete: summary: Delete a World Link. operationId: deleteWorldLink @@ -622,7 +621,7 @@ paths: - in: header name: token schema: - $ref: '#/components/schemas/Token' + $ref: '../common/commonopenapi.yaml#/components/schemas/Token' - name: worldLinkUUID in: path description: World Link id to delete. @@ -639,338 +638,176 @@ paths: type: string example: "Element succesfully deleted" '400': - $ref: '#/components/responses/400_InvalidUUID' + $ref: '../common/commonopenapi.yaml#/components/responses/400_InvalidUUID' '404': - $ref: '#/components/responses/404_NotFoundUUID' + $ref: '../common/commonopenapi.yaml#/components/responses/404_NotFoundUUID' - # COMPONENTS ############################################### components: - #------------------------------- - # Reusable schemas (data models) - #------------------------------- - schemas: - - - RelocalizationInformation: - description: An element representing all information needed in relation with a Trackable or a WorldAnchor. - type: object - properties: - rootUUID: - description: The UUID of the original WorldAnchor or the Trackable asked. - type: string - format: uuid - example: 89b7e1f5-dd41-4746-9279-e1ef9284fe4d - relocObjects: - description: an array with trackables and their transforms linking them to the rootUUID element. - type: array - items: + #------------------------------- + # Reusable schemas (data models) + #------------------------------- + schemas: + RelocalizationInformation: + description: An element representing all information needed in relation with a Trackable or a WorldAnchor. type: object properties: - trackable: - $ref : '#/components/schemas/Trackable' - Transform3D: - $ref : '#/components/schemas/Transform3D' - mode: - description: Mode representing the context of the Relocalization information (AR device to WorldAnchor/Trackable or WorldAnchor/Trackable to AR device) - $ref: '#/components/schemas/Mode' - - Mode: - description: Mode representing the context of the relocalization information (AR device to WorldAnchor/Trackable or WorldAnchor/Trackable to AR device) - type: string - enum: [DEVICE_TO_TRACKABLE_OR_ANCHOR, TRACKABLE_OR_ANCHOR_TO_DEVICE] - example: DEVICE_TO_TRACKABLE_OR_ANCHOR - - Trackable: - description: An element representing a Trackable object in the real world. - type: object - required: - - name - - creatorUUID - - trackableType - - trackableEncodingInformation - - trackablePayload - - localCRS - - unit - - trackableSize - - keyvalueTags - properties: - UUID: - description: An Universally Unique IDentifier identifying the Trackable (RFC 4122). - type: string - format: uuid - example: fa8bbe40-8052-11ec-a8a3-0242ac120002 - name: - description: A human readable name for the Trackable. - type: string - example: myTrackableXYZ - creatorUUID: - description: An Universally Unique IDentifier identifying the creator of the Trackable (a person, a team or a company). - type: string - format: uuid - example: bd6ce7ce-7fe8-487d-a179-fddfe914f293 - trackableType: - description: Extensible list of Trackable types, possibly handled by complient world storage implementation. - type: string - enum: [FIDUCIAL_MARKER, IMAGE_MARKER, MAP, GEOPOSE, OTHER] - example: FIDUCIAL_MARKER - trackableEncodingInformation: - $ref: '#/components/schemas/EncodingInformationStructure' - trackablePayload: - description: The data provided to create the Trackable in a specific format handled by the world storage service. - type: string - format: byte - example: "10110101" - localCRS: - $ref: '#/components/schemas/Transform3D' - unit: - $ref: '#/components/schemas/UnitSystem' - trackableSize: - $ref: '#/components/schemas/Size' - keyvalueTags: - $ref: '#/components/schemas/KeyvalueTagList' - confidence: - type: number - example : 50.00 - - - WorldAnchor: - description: An element describing a pose in the world graph. - type: object - required: - - name - - creatorUUID - - localCRS - - unit - - worldAnchorSize - - keyvalueTags - properties: - UUID: - description: An Universally Unique IDentifier identifying the World Anchor (RFC 4122). - type: string - format: uuid - example: 49d18ab3-1bf8-481d-919b-cd062a2fd428 - name: - description: A human readable name for the World Anchor. - type: string - example: myWorldAnchorXYZ - creatorUUID: - description: An Universally Unique IDentifier identifying the creator of the World Anchor. - type: string - format: uuid - example: 6ddeb59e-7740-42f7-b329-1374b92e7fc2 - localCRS: - $ref: '#/components/schemas/Transform3D' - unit: - $ref: '#/components/schemas/UnitSystem' - worldAnchorSize: - $ref: '#/components/schemas/Size' - keyvalueTags: - $ref: '#/components/schemas/KeyvalueTagList' - - WorldLink: - description: An object holding the info of a transform between two elements. - type: object - required: - - creatorUUID - - UUIDFrom - - UUIDTo - - typeFrom - - typeTo - - transform - - unit - - keyvalueTags - properties: - UUID: - description: An Universally Unique IDentifier identifying the World Link (RFC 4122). - type: string - format: uuid - example: c6998f4f-1b8d-460b-9de8-4793b92fae2a - creatorUUID: - description: An Universally Unique IDentifier identifying the creator of the World Link. - type: string - format: uuid - example: 7506001c-9c00-4f84-ae2e-e4dfcb77d36a - UUIDFrom: - description: An Universally Unique IDentifier identifying a World Anchor or Trackable. - type: string - format: uuid - example: 60e11d81-1230-4588-be4c-93520a275012 - UUIDTo: - description: An Universally Unique IDentifier identifying a World Anchor or Trackable. - type: string - format: uuid - example: 85eed503-875c-4d3d-9569-06c4859bd4cd - typeFrom: - $ref: '#/components/schemas/ObjectType' - typeTo: - $ref: '#/components/schemas/ObjectType' - transform: - $ref: '#/components/schemas/Transform3D' - unit: - $ref: '#/components/schemas/UnitSystem' - keyvalueTags: - $ref: '#/components/schemas/KeyvalueTagList' - - Capability: - description: An object representing an instance of the possible supported data - type: object - uniqueItems: true - properties: - trackableType: - type: string - enum: [FIDUCIAL_MARKER, IMAGE_MARKER, MAP, GEOPOSE, OTHER] - example: "FIDUCIAL_MARKER" - encodingInformation: - $ref: '#/components/schemas/EncodingInformationStructure' - - - - EncodingInformationStructure: - description: An object holding the info of a Trackable`'`s encoding information `:` the data format and the version. - required: - - dataFormat - - version - properties: - dataFormat: - description: Identifier of the target framework. - type: string - enum: [HOLOLENS, ARKIT, ARCORE, VUFORIA, ARUCO, OTHER] - example : "HOLOLENS" - version: - description: The version of the format - type: string - example : "1.01" - - Transform3D: - description: Coordinate reference system of the world anchor, a 4*4 matrix (rowmajor) represented by a float vector. - type: array - minItems: 16 - maxItems: 16 - items: - type: number - format: float - example: [ 1, 0, 0, 3, - 0, 1, 0, 3, - 0, 0, 1, 3, - 0, 0, 0, 1] - - ObjectType: - description: Type of a world representaion object. - type: string - enum: [Trackable, WorldAnchor, NotIdentified] - example: Trackable - - UnitSystem: - description: Unit of length. - type: string - enum: [MM, CM, DM, M, DAM, HM, KM, INCH, FOOT, YARD, MILE] - example: M - - Size: - description: Size object in format {width, length, depth}. - type: array - items: - type: number - format: double - minItems: 3 - maxItems: 3 - example: [1.0,1.0,1.5] - - KeyvalueTagList: - description: List of additional parameters to be stored with the object. - type: object - additionalProperties: - type: array - items: + requestUUID: + description: The UUID of the original WorldAnchor or the Trackable requested. type: string - minItems: 1 - example: { "Place" : ["Building 123"], "Room" : ["007"]} - - Token: - type: string - example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczovL2V4YW1wbGUuYXV0aDAuY29tLyIsImF1ZCI6Imh0dHBzOi8vYXBpLmV4YW1wbGUuY29tL2NhbGFuZGFyL3YxLyIsInN1YiI6InVzcl8xMjMiLCJpYXQiOjE0NTg3ODU3OTYsImV4cCI6MTQ1ODg3MjE5Nn0.CA7eaHjIHz5NxeIJoFK9krqaeZrPLwmMmgI_XiQiIkQ - description: A string representing the token of the User. - - Error: - required: - - code - - message - properties: - code: - type: integer - format: int32 - example: 406 - message: - type: string - example: "Error 406" - - #------------------------------- - # Reusable responses - #------------------------------- - responses: - ####################### - # 1xx : Informational # - ####################### - - ################# - # 2xx : Success # - ################# - - ##################### - # 3xx : Redirection # - ##################### - - ####################### - # 4xx : Client Errors # - ####################### - 400_BadRequest: - description: Bad request. - content: - text/plain: - schema: - type: string - example: "Bad request" - - 400_InvalidUUID: - description: Invalid UUID supplied. - content: - text/plain: - schema: - example: "The format of the UUID is incorrect" - type: string - - 404_NotFoundUUID: - description: Not found, could not find UUID in database. - content: - text/plain: - schema: - type: string - example: "Element not found" - - 409_NotEmptyUUID: - description: Invalid UUID, id must be a Nil value. - content: - text/plain: - schema: - type: string - example: "The element you sent has already a value and can't be sent to the world storage" - - 4xx_UnexpectedError: # Can be referenced as '#/components/responses/GenericError' - description: Unexpected error. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - - ######################## - # 5xx : Server Errors # - ######################## - 5xx_UnexpectedError: - description: Unexpected server error. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' + format: uuid + example: 89b7e1f5-dd41-4746-9279-e1ef9284fe4d + relocObjects: + description: an array with trackables and their transforms linking them to the requestUUID element. + type: array + items: + type: object + properties: + trackable: + $ref : '#/components/schemas/Trackable' + Transform3D: + $ref : '../common/commonopenapi.yaml#/components/schemas/Transform3D' + mode: + $ref: '#/components/schemas/Mode_WorldStorage' + + Trackable: + description: An element representing a Trackable object in the real world. + type: object + required: + - name + - creatorUUID + - trackableType + - trackableEncodingInformation + - trackablePayload + - localCRS + - unit + - trackableSize + - keyvalueTags + properties: + UUID: + description: An Universally Unique IDentifier identifying the Trackable (RFC 4122). + type: string + format: uuid + example: fa8bbe40-8052-11ec-a8a3-0242ac120002 + name: + description: A human readable name for the Trackable. + type: string + example: myTrackableXYZ + creatorUUID: + description: An Universally Unique IDentifier identifying the creator of the Trackable (a person, a team or a company). + type: string + format: uuid + example: bd6ce7ce-7fe8-487d-a179-fddfe914f293 + trackableType: + description: Extensible list of Trackable types, possibly handled by complient world storage implementation. + type: string + enum: [FIDUCIAL_MARKER, IMAGE_MARKER, MAP, GEOPOSE, OTHER] + example: FIDUCIAL_MARKER + trackableEncodingInformation: + $ref: '#/components/schemas/EncodingInformationStructure' + trackablePayload: + description: The data provided to create the Trackable in a specific format handled by the world storage service. + type: string + format: byte + example: "10110101" + localCRS: + $ref: '../common/commonopenapi.yaml#/components/schemas/Transform3D' + unit: + $ref: '#/components/schemas/UnitSystem' + trackableSize: + $ref: '../common/commonopenapi.yaml#/components/schemas/Size' + keyvalueTags: + $ref: '#/components/schemas/KeyvalueTagList' + confidence: + type: number + example : 50.00 + + WorldAnchor: + description: An element describing a pose in the world graph. + type: object + required: + - name + - creatorUUID + - localCRS + - unit + - worldAnchorSize + - keyvalueTags + properties: + UUID: + description: An Universally Unique IDentifier identifying the World Anchor (RFC 4122). + type: string + format: uuid + example: 49d18ab3-1bf8-481d-919b-cd062a2fd428 + name: + description: A human readable name for the World Anchor. + type: string + example: myWorldAnchorXYZ + creatorUUID: + description: An Universally Unique IDentifier identifying the creator of the World Anchor. + type: string + format: uuid + example: 6ddeb59e-7740-42f7-b329-1374b92e7fc2 + localCRS: + $ref: '#/components/schemas/Transform3D' + unit: + $ref: '#/components/schemas/UnitSystem' + worldAnchorSize: + $ref: '../common/commonopenapi.yaml#/components/schemas/Size' + keyvalueTags: + $ref: '#/components/schemas/KeyvalueTagList' + + WorldLink: + description: An object holding the info of a transform between two elements. + type: object + required: + - creatorUUID + - UUIDFrom + - UUIDTo + - typeFrom + - typeTo + - transform + - unit + - keyvalueTags + properties: + UUID: + description: An Universally Unique IDentifier identifying the World Link (RFC 4122). + type: string + format: uuid + example: c6998f4f-1b8d-460b-9de8-4793b92fae2a + creatorUUID: + description: An Universally Unique IDentifier identifying the creator of the World Link. + type: string + format: uuid + example: 7506001c-9c00-4f84-ae2e-e4dfcb77d36a + UUIDFrom: + description: An Universally Unique IDentifier identifying a World Anchor or Trackable. + type: string + format: uuid + example: 60e11d81-1230-4588-be4c-93520a275012 + UUIDTo: + description: An Universally Unique IDentifier identifying a World Anchor or Trackable. + type: string + format: uuid + example: 85eed503-875c-4d3d-9569-06c4859bd4cd + typeFrom: + $ref: '../common/commonopenapi.yaml#/components/schemas/TypeWorldStorage' + typeTo: + $ref: '../common/commonopenapi.yaml#/components/schemas/TypeWorldStorage' + transform: + $ref: '../common/commonopenapi.yaml#/components/schemas/Transform3D' + unit: + $ref: '#/components/schemas/UnitSystem' + keyvalueTags: + $ref: '#/components/schemas/KeyvalueTagList' + + KeyvalueTagList: + description: List of additional parameters to be stored with the object. + type: object + additionalProperties: + type: array + items: + type: string + minItems: 1 + example: { "Place" : ["Building 123"], "Room" : ["007"]} \ No newline at end of file