openapi: 3.2.0 info: version: 2.1.5 title: Global Assets OEM info API description: Global Store of reference for all assets within the Decisiv ecosystem termsOfService: https://www.decisiv.com/terms-of-use contact: name: Decisiv Support email: support@decisiv.com url: https://www.decisiv.com servers: - url: /api/v1/ security: - Bearer: [] - OAuth2Password: [] TransitionToken: [] tags: - name: OEM info paths: /vins/{vin}: get: tags: - OEM info description: Returns OEM information for given VIN number operationId: getVinInformation parameters: - $ref: '#/components/parameters/fullVinRequiredParam' responses: '200': description: OEM vin information content: application/vnd.api+json: schema: $ref: '#/components/schemas/jsonapiVinResponse' '400': $ref: '#/components/responses/BadRequestVinValidation' '429': description: Too Many Requests content: application/vnd.api+json: schema: $ref: '#/components/schemas/tooManyRequestsResponse' '502': $ref: '#/components/responses/BadGateway' '504': $ref: '#/components/responses/GatewayTimeout' default: description: unexpected error content: application/vnd.api+json: schema: $ref: '#/components/schemas/jsonapiErrorResponse' components: schemas: vinResponse: type: object properties: engine_make: type: string example: Cummins engine_name: type: string example: ISX12G make: type: string example: Kenworth model: type: string example: T680 year: type: string example: 2017 JSONAPI_Links: title: JSONAPI_Links type: object description: 'Where specific, a links member can be used to represent links. The value of each "links" member MUST be a `links` object. ' properties: self: $ref: '#/components/schemas/JSONAPI_DocumentLink' related: $ref: '#/components/schemas/JSONAPI_DocumentLink' JSONAPI_Errors: title: JSONAPI_Errors type: array description: 'A server MAY choose to stop processing as soon as a problem is encountered, or it MAY continue processing and encounter multiple problems. When a server encounters multiple problems for a single request, the most generally applicaple HTTP error code SHOULD be used in the response. For instance, `400 Bad Request` might be appropriate for multiple 4xx errors or `500 Internal Server Error` might be appropriate for multiple 5xx errors. ' items: $ref: '#/components/schemas/JSONAPI_Error' JSONAPI_Error: title: JSONAPI_Error type: object description: 'Error objects provide additional information about problems encountered while performing an operation. Error objects MUST be returned as an array keyed by `errors` in the top level of a JSON API document. An error object MAY have the following members. ' properties: code: type: string description: an application-specific error code, expressed as a string value. detail: type: string description: 'A human-readable explanation specific to this occurrence of the problem. Like `title`, this field''s value can be localized. ' id: description: a unique identifier for this particular ocurrence of the problem. type: string links: description: a links object containing the following members. type: object properties: about: type: string description: a link that leads to further details about this particular occurrence of the problem. meta: type: object description: a meta object containing non-standard meta-information about the error. status: type: string description: the HTTP status code applicable to this problem, expressed as a string value. source: type: object description: an object containing references to the source of the error, optionally including any of the following members. properties: parameter: type: string description: a string indicating which URI query parameter caused the error. pointer: type: string description: a JSON pointer (RFC6901) to the associated entity in the request document. title: type: string description: a short, human-readable summary of the problem that should not change from occurrence to occurrence of the problem, except for purposes of localization. tooManyRequestsResponseErrorWithExample: title: tooManyRequestsResponseErrorWithExample type: object description: 'Error objects provide additional information about problems encountered while performing an operation. Error objects MUST be returned as an array keyed by `errors` in the top level of a JSON API document. An error object MAY have the following members. ' properties: code: type: string description: an application-specific error code, expressed as a string value. example: '429' detail: type: string description: 'A human-readable explanation specific to this occurrence of the problem. Like `title`, this field''s value can be localized. ' example: The maximum number of requests for this application has been far exceeded with the given credentials. Please refer to the Retry-After header for additional information about when requests may be successfully processed again. status: type: string description: the HTTP status code applicable to this problem, expressed as a string value. example: '429' title: type: string description: a short, human-readable summary of the problem that should not change from occurrence to occurrence of the problem, except for purposes of localization. example: Too Many Requests VinValidationError: type: object properties: title: type: string example: Invalid format detail: type: string example: vin - invalid format code: type: string example: '100' meta: type: object properties: decisiv_code: type: string description: "The error code why the VIN is invalid. Error codes: \n* invalid check digit: '100:vins:01' \n* invalid size: '100:vins:02' \n* invalid charater_i: '100:vins:03' \n* invalid charater o: '100:vins:04' \n* invalid charater q: '100:vins:05' \n* invalid format: '100:vins:06'" example: 100:vins:06 status: type: string example: '400' source: type: object properties: pointer: type: string example: /data/attributes/vin required: - title - detail - code - meta - status - source jsonapiErrorResponse: type: object properties: errors: type: array items: $ref: '#/components/schemas/JSONAPI_Errors' tooManyRequestsResponseError: title: Too Many Requests type: array description: 'Access restricted for a given user or application due to undesired behavior ' items: $ref: '#/components/schemas/tooManyRequestsResponseErrorWithExample' jsonapiVinResponse: type: object properties: data: type: array items: type: object required: - attributes - id - type properties: attributes: allOf: - $ref: '#/components/schemas/vinResponse' id: type: string example: 1C4RJFATXDC591345 type: type: string example: vins links: type: object properties: self: type: string format: url links: allOf: - $ref: '#/components/schemas/JSONAPI_Links' tooManyRequestsResponse: type: object properties: errors: items: $ref: '#/components/schemas/tooManyRequestsResponseErrorWithExample' type: array allOf: - $ref: '#/components/schemas/tooManyRequestsResponseError' JSONAPI_DocumentLink: title: JSONAPI_DocumentLink type: string description: 'A "JSON API" document link. ' Error: type: object properties: title: type: string detail: type: string code: type: string status: type: string required: - title - detail - code - status responses: GatewayTimeout: description: 504 Gateway Timeout Error content: application/vnd.api+json: schema: $ref: '#/components/schemas/Error' BadRequestVinValidation: description: 400 Bad Request content: application/vnd.api+json: schema: $ref: '#/components/schemas/VinValidationError' BadGateway: description: 502 Bad Gateway Error content: application/vnd.api+json: schema: $ref: '#/components/schemas/Error' parameters: fullVinRequiredParam: name: vin in: path description: 17 character VIN number required: true schema: type: string maxLength: 17 minLength: 17 securitySchemes: TransitionToken: type: apiKey in: header name: X-Decisiv-Transition-Token description: The transition token must be specified when using OAuth. Please see https://api-docs.decisiv.net/docs/api/oauth/ OAuth2Password: type: oauth2 flows: password: scopes: {} tokenUrl: https://portal.decisivapps.com/oauth/token description: Oauth flow with Transition Token. See https://api-docs.decisiv.net/docs/api/oauth/ Bearer: type: apiKey name: Authorization in: header