openapi: 3.0.1 info: title: CasGatewayApi description: "API enabling storage of POS POSJournal documents following the [Conexxus POS Back Office Interface](https://dev.azure.com/caseys01/Mirrors/_git/conexxus_pos-back-office-interface)\ \ standard. \n **Notes**: \n * API major version mirrors the\ \ major version of the implemented [Conexxus POS Activity Reporting API standard](https://dev.azure.com/caseys01/Mirrors/_git/conexxus_pos-activity-reporting-apis)." version: '1.0' servers: - url: https://esl.caseys.io/casgatewayapi paths: /journal: post: tags: - push summary: POST /journal description: " Add events to a journal or add reports to a collection. These functions\n will allow\ \ sending report information in the request body of the message, or may (for some \n resources) allow\ \ retrieving a web socket URL for cases where the report information is too \n large for a message\ \ request body. \n\n ## **Notes **\n * The individual journal events will be processed without\ \ regard to requestBody \"header\" properties - \n these properties are there for legacy support.\ \ The individual journal events, plus the organizationID and storeLocationID headers, \n provide\ \ all the information necessary to classify and store the journal events. \n\n * Activity periods\ \ assigned to POS jounal entries (using /activityPeriods) should mirror those in the movement report request\ \ body.\n \n * Some implementations may accept an \"ACCEPT\" header of application/xml in\ \ order to post older XML POSJournal files.\n Support for this feature is implementation dependent.\ \ The default is Accept: application/json" operationId: post-journal parameters: - name: x-correlation-id in: header description: correlation identifier required: true schema: type: string - name: openretailing-organization-id in: header description: organization identifier required: true schema: type: string - name: openretailing-store-location-id in: header description: location identifier required: true schema: type: string responses: '200': description: "Requests with valid payloads (parsable and containing all of the\n mandatory fields)\ \ must use the 200 response. Note that a request can be\n successfully processed but still \ \ produce a failure response. If all the\n systems are operating correctly at a given time, \ \ all replies will use a\n response 200." content: application/json: schema: $ref: '#/components/schemas/statusReturn' example: timestamp: string result: 0 error: 0 message: string '400': description: "Requests with invalid payloads or invalid URLs (paths) must use the\n response 400." content: application/json: schema: $ref: '#/components/schemas/statusReturn' example: timestamp: string result: 0 error: 0 message: string '413': description: Use response 413 when payload is too large to return content: application/json: schema: $ref: '#/components/schemas/statusReturn' example: timestamp: string result: 0 error: 0 message: string '500': description: "Requests that cause an internal server error (outside of the service\n itself), such\ \ as out of memory or corrupted file, etc. must use the\n response 500." content: application/json: schema: $ref: '#/components/schemas/statusReturn' example: timestamp: string result: 0 error: 0 message: string /heartbeat: get: tags: - heartbeat summary: Gets the health of the API. description: Interrogates the state of the API and its dependencies to return the API health. operationId: getHeartbeat responses: '200': description: The status of the APIs health. Healthy if all dependency health checks pass. Unhealthy if any dependency's health check fails, or if an exception occurs. content: application/json: schema: $ref: '#/components/schemas/heartbeatReport' example: status: string /report: post: tags: - push summary: POST /report description: "Add events to a journal or add reports to a collection. These functions will allow sending report\ \ information in the request body of the message.\n Post a movement document. The requestBody \"\ header\" fields will contain the information necessary to identify the correct activity period. \n\ \ ## **Notes:** \n * Activity periods assigned to POS jounal entries (using /activityPeriods)\ \ should mirror those in the movement report request body.\n * May accept an \"ACCEPT\" header of\ \ application/xml in order to post XML files.\n * The \"/report\" path represents resources referred\ \ to as \"Movement\" in POS Backoffice Interface XML Specification V3.7." operationId: post-reports parameters: - name: x-correlation-id in: header description: correlation identifier required: true schema: type: string - name: openretailing-organization-id in: header description: organization identifier required: true schema: type: string - name: openretailing-store-location-id in: header description: location identifier required: true schema: type: string responses: '200': description: "Requests with valid payloads (parsable and containing all of the\n mandatory fields)\ \ must use the 200 response. Note that a request can be\n successfully processed but still \ \ produce a failure response. If all the\n systems are operating correctly at a given time, \ \ all replies will use a\n response 200." content: application/json: schema: $ref: '#/components/schemas/statusReturn' example: timestamp: string result: 0 error: 0 message: string '400': description: "Requests with invalid payloads or invalid URLs (paths) must use the\n response 400." content: application/json: schema: $ref: '#/components/schemas/statusReturn' example: timestamp: string result: 0 error: 0 message: string '403': description: Unauthorized requests must use response 403 (forbidden). content: application/json: schema: $ref: '#/components/schemas/statusReturn' example: timestamp: string result: 0 error: 0 message: string /journal/reconciliation: post: tags: - push summary: POST /journal/reconciliation description: Post a collection of journal events for use in journal event reconciliation. operationId: post-journalreconciliation parameters: - name: x-correlation-id in: header description: correlation identifier required: true schema: type: string - name: openretailing-organization-id in: header description: organization identifier required: true schema: type: string - name: openretailing-store-location-id in: header description: location identifier required: true schema: type: string responses: '200': description: "Requests with valid payloads (parsable and containing all of the\n mandatory fields)\ \ must use the 200 response. Note that a request can be\n successfully processed but still \ \ produce a failure response. If all the\n systems are operating correctly at a given time, \ \ all replies will use a\n response 200." content: application/json: schema: $ref: '#/components/schemas/statusReturn' example: timestamp: string result: 0 error: 0 message: string '400': description: "Requests with invalid payloads or invalid URLs (paths) must use the\n response 400." content: application/json: schema: $ref: '#/components/schemas/statusReturn' example: timestamp: string result: 0 error: 0 message: string '413': description: Use response 413 when payload is too large to return content: application/json: schema: $ref: '#/components/schemas/statusReturn' example: timestamp: string result: 0 error: 0 message: string '500': description: "Requests that cause an internal server error (outside of the service\n itself), such\ \ as out of memory or corrupted file, etc. must use the\n response 500." content: application/json: schema: $ref: '#/components/schemas/statusReturn' example: timestamp: string result: 0 error: 0 message: string /journal/{storeNumber}/{reportType}/{documentId}: get: tags: - pull summary: GET /journal/{storeNumber}/{reportType}/{documentId} description: "Retrieve a CPJR (raw) document. The located document is packaged into a 7-Zip (.7z)\n \ \ archive containing exactly one document and streamed back to the caller as a download." operationId: get-cpjr-document parameters: - name: storeNumber in: path description: Store number associated with the document required: true schema: type: string - name: reportType in: path description: 'Report type. Supported values: cpjr' required: true schema: type: string - name: documentId in: path description: Blob file name of the document required: true schema: type: string - name: x-correlation-id in: header description: correlation identifier required: true schema: type: string - name: openretailing-organization-id in: header description: organization identifier required: true schema: type: string - name: openretailing-store-location-id in: header description: location identifier required: true schema: type: string responses: '200': description: The CPJR document was located and is returned as a streamed 7-Zip (.7z) archive attachment. content: application/x-7z-compressed: schema: type: string format: binary examples: default: value: null '400': description: Requests with missing required headers or invalid/missing route parameters must use the response 400. content: application/json: schema: $ref: '#/components/schemas/statusReturn' example: timestamp: string result: 0 error: 0 message: string '403': description: Requests lacking the required 'casgateway.journal:read' scope must use the response 403 (forbidden). content: application/json: schema: $ref: '#/components/schemas/statusReturn' example: timestamp: string result: 0 error: 0 message: string '404': description: When the specified document cannot be located the response 404 is used and no content is returned. content: application/json: schema: $ref: '#/components/schemas/statusReturn' example: timestamp: string result: 0 error: 0 message: string /openapi/V3.json: get: summary: Get OpenApi Specification description: Gets the OpenApi specification in V3.json format with the parameters . operationId: getOpenApiSpec responses: '200': description: '' components: schemas: heartbeatReport: type: object properties: status: type: string description: Description of the current status of dependencies of the API. statusReturn: type: object properties: timestamp: type: string format: date-time result: enum: - 0 - 1 - 2 type: integer format: int32 default: 0 error: enum: - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 type: integer format: int32 default: 0 message: type: string securitySchemes: apiKeyHeader: type: apiKey name: Ocp-Apim-Subscription-Key in: header apiKeyQuery: type: apiKey name: subscription-key in: query security: - apiKeyHeader: [] - apiKeyQuery: []