diff --git a/src/openapi/container/abt-container-tokens.yaml b/src/openapi/container/abt-container-tokens.yaml index 90458ee..b3ae423 100644 --- a/src/openapi/container/abt-container-tokens.yaml +++ b/src/openapi/container/abt-container-tokens.yaml @@ -9,6 +9,83 @@ servers: tags: - name: tokens paths: + /tokens: + parameters: + post: + tags: + - tokens + summary: Create a new token entry in the vault + description: Create a new token entry in the vault, if the customerProfileId has been supplied create in the customerToken DB otherwise in the AnonymousToken DB + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CreateTokenBody" + examples: + token: + value: + { + "xTAT": "cf694905-7f76-4799-b0bc-490716921323", + "otpKey": "123456789123456789123456789abcde" + } + responses: + "201": + description: Created + content: + application/json: + schema: + $ref: "#/components/schemas/unavailable" + example: + "Ok" + "400": + description: Bad Request + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + examples: + Missing Parameters: + value: + status: 400 + title: Missing Mandatory Parameter + detail: Required parameter {0} is missing. + Invalid Parameters: + value: + status: 400 + title: Invalid Parameter + detail: Required parameter {0} is invalid. + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + examples: + Unauthorized: + value: + status: 401 + title: Unauthorized + detail: Invalid Access Token + "404": + description: Not found + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + examples: + TAT not found: + value: + status: 404 + title: Not Found + detail: TAT Account Not Found + "500": + description: Internal server error + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + example: + error: An unknown error has occurred /tokens/{xtat}/status: parameters: - name: xtat @@ -108,36 +185,67 @@ paths: $ref: "#/components/schemas/ErrorResponse" example: error: An unknown error has occurred - /tokens: + /tokens/{xtat}/validate: parameters: - post: + - name: xtat + in: path + schema: + type: string + example: uuid + required: true + description: The xTAT for the token for which the status needs to be checked + - name: customerProfileId + in: query + schema: + type: integer + example: 323 + required: false + description: The id of the customer Profile for which the request is being done, if customer has identified themselves + patch: tags: - tokens - summary: Create a new token entry in the vault, if the customerProfileId has been supplied create in the customerToken DB otherwise in the AnonymousToken DB - description: Create a new token entry in the vault, if the customerProfileId has been supplied create in the customerToken DB otherwise in the AnonymousToken DB + summary: Validate the supplied OTP and secure and/or authorize the token + description: Validate the supplied OTP and secure and/or authorize the token if the customerProfileId has been supplied look in the customerToken DB otherwise check the AnonymousToken DB. requestBody: content: application/json: schema: - $ref: "#/components/schemas/CreateTokenBody" + $ref: "#/components/schemas/ValidateTokenBody" examples: token: value: { - "xTAT": "cf694905-7f76-4799-b0bc-490716921323", - "otpKey": "123456789123456789123456789abcde" + "otp": "1234564" } responses: - "201": - description: Created + "200": + description: OK content: application/json: schema: - $ref: "#/components/schemas/unavailable" - example: - { - "Ok" - } + $ref: "#/components/schemas/TokenStatusResponse" + examples: + Not secured, not authorized : + summary: Not secured, not authorized + value: + { + "isAuthorized": false, + "isSecured": false + } + Secured, not authorized : + summary: Secured, not authorized + value: + { + "isAuthorized": true, + "isSecured": false + } + Secured and authorized : + summary: Secured and authorized + value: + { + "isAuthorized": true, + "isSecured": true + } "400": description: Bad Request content: @@ -191,7 +299,7 @@ components: schemas: unavailable: type: object - ErrorResponse: + ErrorResponse: description: Default response when an invalid request has been sent type: object properties: @@ -212,6 +320,7 @@ components: type: object required: - xTAT + - otpKey properties: xTAT: type : string @@ -236,4 +345,15 @@ components: type: boolean description: >- Does HTM have the authorization to access the secured the data of the OVpas - example: False \ No newline at end of file + example: False + ValidateTokenBody: + description: Body for when the a token entry is validated + type: object + required: + - otp + properties: + otp: + type : string + description: >- + OTP to be used to secure the token and retrieve the JWT at GBO + example: 1234567 \ No newline at end of file