openapi: 3.0.0 servers: - url: 'https://api.qa.se.com/v1/reference-data/product/digital-asset' description: QA/test environment - url: 'https://api.se.com/v1/reference-data/product/digital-asset' description: Production server info: title: Product related digital assets version: '1.0' description: | Set of methods to access to the product related digital assets from an externally known information (commercial reference) and provide visualisation services for the product visuals (360 set of images, 3D models ...). contact: name: Contact Us email: distributorapiportal.global@se.com url: 'https://se.com' paths: '/{asset-type}/view': get: responses: '307': description: | Redirection to the media server providing the service, the URL being provided in the Location header. For example: Location: https://visuals.se.com/BMXP342020_360_NAM/20191030T1930/360 headers: Location: description: URL schema: type: string content: application/json: schema: type: object properties: {} '400': description: 'Request is invalid and cannot be processed due one or more issues such as syntax errors, missing required fields, out of range values, conflicting query parameters, or unknown URI.' content: '*/*': schema: type: object title: Error Response description: Error response returned to the consumer when an HTTP error status has occurred. properties: code: type: string example: MISSING_FIELD or 12345 description: |- Service-defined error code which may be numeric or a string. Errors detected by the APIM platform result in the following codes. BAD_REQUEST (for 400) UNAUTHORIZED (for 401) FORBIDDEN (for 403) NOT_FOUND (for 404) GONE (for 410) PRECONDITION_FAILED (for 412) TOO_MANY_REQUESTS (for 429) INTERNAL_SERVER_ERROR (for 500) NOT_IMPLEMENTED (for 501) Any specific service validation errors would replace BAD_REQUEST. userMessage: type: string example: 'Required field is missing: productSku' description: Human-readable description of the error with hints about how to fix it. developerMessage: type: string description: 'Optional human-readable description of the error, meaningful to a developer.' example: 'Product master API ParseException: required tag expected' moreInfo: type: string description: 'Optional link to error documentation, which has more information about the error.' format: uri example: 'https://example.com/product-master/v1/error/12345' required: - code - userMessage '401': description: 'The client is not authorized to perform this request because its identity has not yet been established, or the token is invalid or has expired.' content: '*/*': schema: type: object title: Error Response description: Error response returned to the consumer when an HTTP error status has occurred. properties: code: type: string example: MISSING_FIELD or 12345 description: |- Service-defined error code which may be numeric or a string. Errors detected by the APIM platform result in the following codes. BAD_REQUEST (for 400) UNAUTHORIZED (for 401) FORBIDDEN (for 403) NOT_FOUND (for 404) GONE (for 410) PRECONDITION_FAILED (for 412) TOO_MANY_REQUESTS (for 429) INTERNAL_SERVER_ERROR (for 500) NOT_IMPLEMENTED (for 501) Any specific service validation errors would replace BAD_REQUEST. userMessage: type: string example: 'Required field is missing: productSku' description: Human-readable description of the error with hints about how to fix it. developerMessage: type: string description: 'Optional human-readable description of the error, meaningful to a developer.' example: 'Product master API ParseException: required tag expected' moreInfo: type: string description: 'Optional link to error documentation, which has more information about the error.' format: uri example: 'https://example.com/product-master/v1/error/12345' required: - code - userMessage '403': description: The client does not have permission to perform the requested action e.g. POST or DELETE. content: '*/*': schema: type: object title: Error Response description: Error response returned to the consumer when an HTTP error status has occurred. properties: code: type: string example: MISSING_FIELD or 12345 description: |- Service-defined error code which may be numeric or a string. Errors detected by the APIM platform result in the following codes. BAD_REQUEST (for 400) UNAUTHORIZED (for 401) FORBIDDEN (for 403) NOT_FOUND (for 404) GONE (for 410) PRECONDITION_FAILED (for 412) TOO_MANY_REQUESTS (for 429) INTERNAL_SERVER_ERROR (for 500) NOT_IMPLEMENTED (for 501) Any specific service validation errors would replace BAD_REQUEST. userMessage: type: string example: 'Required field is missing: productSku' description: Human-readable description of the error with hints about how to fix it. developerMessage: type: string description: 'Optional human-readable description of the error, meaningful to a developer.' example: 'Product master API ParseException: required tag expected' moreInfo: type: string description: 'Optional link to error documentation, which has more information about the error.' format: uri example: 'https://example.com/product-master/v1/error/12345' required: - code - userMessage '404': description: Requested resource does not exist on the server. It is assumed that the URI is valid for this type of resource. content: '*/*': schema: type: object title: Error Response description: Error response returned to the consumer when an HTTP error status has occurred. properties: code: type: string example: MISSING_FIELD or 12345 description: |- Service-defined error code which may be numeric or a string. Errors detected by the APIM platform result in the following codes. BAD_REQUEST (for 400) UNAUTHORIZED (for 401) FORBIDDEN (for 403) NOT_FOUND (for 404) GONE (for 410) PRECONDITION_FAILED (for 412) TOO_MANY_REQUESTS (for 429) INTERNAL_SERVER_ERROR (for 500) NOT_IMPLEMENTED (for 501) Any specific service validation errors would replace BAD_REQUEST. userMessage: type: string example: 'Required field is missing: productSku' description: Human-readable description of the error with hints about how to fix it. developerMessage: type: string description: 'Optional human-readable description of the error, meaningful to a developer.' example: 'Product master API ParseException: required tag expected' moreInfo: type: string description: 'Optional link to error documentation, which has more information about the error.' format: uri example: 'https://example.com/product-master/v1/error/12345' required: - code - userMessage '429': description: Number of requests has exceeded the client's rate limits. content: '*/*': schema: type: object title: Error Response description: Error response returned to the consumer when an HTTP error status has occurred. properties: code: type: string example: MISSING_FIELD or 12345 description: |- Service-defined error code which may be numeric or a string. Errors detected by the APIM platform result in the following codes. BAD_REQUEST (for 400) UNAUTHORIZED (for 401) FORBIDDEN (for 403) NOT_FOUND (for 404) GONE (for 410) PRECONDITION_FAILED (for 412) TOO_MANY_REQUESTS (for 429) INTERNAL_SERVER_ERROR (for 500) NOT_IMPLEMENTED (for 501) Any specific service validation errors would replace BAD_REQUEST. userMessage: type: string example: 'Required field is missing: productSku' description: Human-readable description of the error with hints about how to fix it. developerMessage: type: string description: 'Optional human-readable description of the error, meaningful to a developer.' example: 'Product master API ParseException: required tag expected' moreInfo: type: string description: 'Optional link to error documentation, which has more information about the error.' format: uri example: 'https://example.com/product-master/v1/error/12345' required: - code - userMessage '500': description: Requested operation encountered an unexpected server error. content: '*/*': schema: type: object title: Error Response description: Error response returned to the consumer when an HTTP error status has occurred. properties: code: type: string example: MISSING_FIELD or 12345 description: |- Service-defined error code which may be numeric or a string. Errors detected by the APIM platform result in the following codes. BAD_REQUEST (for 400) UNAUTHORIZED (for 401) FORBIDDEN (for 403) NOT_FOUND (for 404) GONE (for 410) PRECONDITION_FAILED (for 412) TOO_MANY_REQUESTS (for 429) INTERNAL_SERVER_ERROR (for 500) NOT_IMPLEMENTED (for 501) Any specific service validation errors would replace BAD_REQUEST. userMessage: type: string example: 'Required field is missing: productSku' description: Human-readable description of the error with hints about how to fix it. developerMessage: type: string description: 'Optional human-readable description of the error, meaningful to a developer.' example: 'Product master API ParseException: required tag expected' moreInfo: type: string description: 'Optional link to error documentation, which has more information about the error.' format: uri example: 'https://example.com/product-master/v1/error/12345' required: - code - userMessage summary: Get a 360 or 3D view of a product description: |+ Return a standalone HTML page with a 360 or 3D view of a given product. Can be used inside an hyperlink to open a standalone page / popup to visualize the product. If the asset is not existing for this product, the response is a 404 HTTP code. A query parameter must be provided to select the product by providing a Commercial Reference as the product identifier. parameters: - $ref: '#/components/parameters/asset-type' - $ref: '#/components/parameters/cr' operationId: get-360view tags: - 360 & 3D '/{asset-type}/viewer-url': get: responses: '200': description: | Link to the viewer to visualize the asset. content: application/json: schema: type: object title: Link description: Link to related resource endpoint. properties: rel: type: string description: |- A word describing the relationship Standardized relationship names are defined here but names are not limited to this list. https://www.iana.org/assignments/link-relations/link-relations.xhtml default: related example: 'self, related, help, chapter, first, last, parent' href: type: string format: uri description: URI for a resource endpoint. example: 'https://example.com/book/v1/chapter2' title: type: string description: Optional human-readable title for the link. example: Next Chapter required: - rel - href examples: response: value: rel: related href: 'https://visuals.se.com/BMXP342020_360_NAM/20191030T1930/360' title: Schneider Electric 360° view '400': description: 'Request is invalid and cannot be processed due one or more issues such as syntax errors, missing required fields, out of range values, conflicting query parameters, or unknown URI.' content: application/json: schema: type: object title: Error Response description: Error response returned to the consumer when an HTTP error status has occurred. properties: code: type: string example: MISSING_FIELD or 12345 description: |- Service-defined error code which may be numeric or a string. Errors detected by the APIM platform result in the following codes. BAD_REQUEST (for 400) UNAUTHORIZED (for 401) FORBIDDEN (for 403) NOT_FOUND (for 404) GONE (for 410) PRECONDITION_FAILED (for 412) TOO_MANY_REQUESTS (for 429) INTERNAL_SERVER_ERROR (for 500) NOT_IMPLEMENTED (for 501) Any specific service validation errors would replace BAD_REQUEST. userMessage: type: string example: 'Required field is missing: productSku' description: Human-readable description of the error with hints about how to fix it. developerMessage: type: string description: 'Optional human-readable description of the error, meaningful to a developer.' example: 'Product master API ParseException: required tag expected' moreInfo: type: string description: 'Optional link to error documentation, which has more information about the error.' format: uri example: 'https://example.com/product-master/v1/error/12345' required: - code - userMessage '401': description: 'The client is not authorized to perform this request because its identity has not yet been established, or the token is invalid or has expired.' content: application/json: schema: type: object title: Error Response description: Error response returned to the consumer when an HTTP error status has occurred. properties: code: type: string example: MISSING_FIELD or 12345 description: |- Service-defined error code which may be numeric or a string. Errors detected by the APIM platform result in the following codes. BAD_REQUEST (for 400) UNAUTHORIZED (for 401) FORBIDDEN (for 403) NOT_FOUND (for 404) GONE (for 410) PRECONDITION_FAILED (for 412) TOO_MANY_REQUESTS (for 429) INTERNAL_SERVER_ERROR (for 500) NOT_IMPLEMENTED (for 501) Any specific service validation errors would replace BAD_REQUEST. userMessage: type: string example: 'Required field is missing: productSku' description: Human-readable description of the error with hints about how to fix it. developerMessage: type: string description: 'Optional human-readable description of the error, meaningful to a developer.' example: 'Product master API ParseException: required tag expected' moreInfo: type: string description: 'Optional link to error documentation, which has more information about the error.' format: uri example: 'https://example.com/product-master/v1/error/12345' required: - code - userMessage '403': description: The client does not have permission to perform the requested action e.g. POST or DELETE. content: application/json: schema: type: object title: Error Response description: Error response returned to the consumer when an HTTP error status has occurred. properties: code: type: string example: MISSING_FIELD or 12345 description: |- Service-defined error code which may be numeric or a string. Errors detected by the APIM platform result in the following codes. BAD_REQUEST (for 400) UNAUTHORIZED (for 401) FORBIDDEN (for 403) NOT_FOUND (for 404) GONE (for 410) PRECONDITION_FAILED (for 412) TOO_MANY_REQUESTS (for 429) INTERNAL_SERVER_ERROR (for 500) NOT_IMPLEMENTED (for 501) Any specific service validation errors would replace BAD_REQUEST. userMessage: type: string example: 'Required field is missing: productSku' description: Human-readable description of the error with hints about how to fix it. developerMessage: type: string description: 'Optional human-readable description of the error, meaningful to a developer.' example: 'Product master API ParseException: required tag expected' moreInfo: type: string description: 'Optional link to error documentation, which has more information about the error.' format: uri example: 'https://example.com/product-master/v1/error/12345' required: - code - userMessage '404': description: Requested resource does not exist on the server. It is assumed that the URI is valid for this type of resource. content: application/json: schema: type: object title: Error Response description: Error response returned to the consumer when an HTTP error status has occurred. properties: code: type: string example: MISSING_FIELD or 12345 description: |- Service-defined error code which may be numeric or a string. Errors detected by the APIM platform result in the following codes. BAD_REQUEST (for 400) UNAUTHORIZED (for 401) FORBIDDEN (for 403) NOT_FOUND (for 404) GONE (for 410) PRECONDITION_FAILED (for 412) TOO_MANY_REQUESTS (for 429) INTERNAL_SERVER_ERROR (for 500) NOT_IMPLEMENTED (for 501) Any specific service validation errors would replace BAD_REQUEST. userMessage: type: string example: 'Required field is missing: productSku' description: Human-readable description of the error with hints about how to fix it. developerMessage: type: string description: 'Optional human-readable description of the error, meaningful to a developer.' example: 'Product master API ParseException: required tag expected' moreInfo: type: string description: 'Optional link to error documentation, which has more information about the error.' format: uri example: 'https://example.com/product-master/v1/error/12345' required: - code - userMessage '429': description: Number of requests has exceeded the client's rate limits. content: application/json: schema: type: object title: Error Response description: Error response returned to the consumer when an HTTP error status has occurred. properties: code: type: string example: MISSING_FIELD or 12345 description: |- Service-defined error code which may be numeric or a string. Errors detected by the APIM platform result in the following codes. BAD_REQUEST (for 400) UNAUTHORIZED (for 401) FORBIDDEN (for 403) NOT_FOUND (for 404) GONE (for 410) PRECONDITION_FAILED (for 412) TOO_MANY_REQUESTS (for 429) INTERNAL_SERVER_ERROR (for 500) NOT_IMPLEMENTED (for 501) Any specific service validation errors would replace BAD_REQUEST. userMessage: type: string example: 'Required field is missing: productSku' description: Human-readable description of the error with hints about how to fix it. developerMessage: type: string description: 'Optional human-readable description of the error, meaningful to a developer.' example: 'Product master API ParseException: required tag expected' moreInfo: type: string description: 'Optional link to error documentation, which has more information about the error.' format: uri example: 'https://example.com/product-master/v1/error/12345' required: - code - userMessage '500': description: Requested operation encountered an unexpected server error. content: application/json: schema: type: object title: Error Response description: Error response returned to the consumer when an HTTP error status has occurred. properties: code: type: string example: MISSING_FIELD or 12345 description: |- Service-defined error code which may be numeric or a string. Errors detected by the APIM platform result in the following codes. BAD_REQUEST (for 400) UNAUTHORIZED (for 401) FORBIDDEN (for 403) NOT_FOUND (for 404) GONE (for 410) PRECONDITION_FAILED (for 412) TOO_MANY_REQUESTS (for 429) INTERNAL_SERVER_ERROR (for 500) NOT_IMPLEMENTED (for 501) Any specific service validation errors would replace BAD_REQUEST. userMessage: type: string example: 'Required field is missing: productSku' description: Human-readable description of the error with hints about how to fix it. developerMessage: type: string description: 'Optional human-readable description of the error, meaningful to a developer.' example: 'Product master API ParseException: required tag expected' moreInfo: type: string description: 'Optional link to error documentation, which has more information about the error.' format: uri example: 'https://example.com/product-master/v1/error/12345' required: - code - userMessage summary: Get the URL to visualize an asset description: |+ Return a link to the appropriate viewer to visualize the main asset of the given type associated to the given product. If the asset is not existing for this product, the response is a 404 HTTP code. A query parameter must be provided to select the product by providing a Commercial Reference as the product identifier. parameters: - $ref: '#/components/parameters/asset-type' - $ref: '#/components/parameters/cr' operationId: get-viewer-url tags: - 360 & 3D tags: - name: 360 & 3D security: - APIKeyQueryParam: [] - oauth2: [] components: parameters: asset-type: name: asset-type in: path required: true description: The type of digital asset schema: type: string enum: - '360' - 3D - 360-or-3D - 3D-or-360 example: '360' cr: name: cr in: query description: Commercial reference schema: type: string example: BMXP342020 securitySchemes: APIKeyQueryParam: type: apiKey name: apikey in: query description: |- Apikey is an identifier enabling a registered calling application to access the API. It is defined here as a query parameter to make the API very easy to use as a pure URL without coding. Don't use this Apikey in other APIs accessing to sensitive data. Alternative is to use oauth2. oauth2: type: oauth2 description: 'Oauth2 Security }' flows: clientCredentials: tokenUrl: '/token' scopes: {}