{ "openapi": "3.0.3", "info": { "version": "2.0.0", "title": "EPCIS 2.0 REST Bindings", "license": { "name": "Apache2" } }, "tags": [ { "name": "Top-level", "description": "Endpoints to browse or retrieve information about EPCIS resources:\n- events\n- types of events\n- electronic product codes\n- business steps\n- business locations\n- read points\n- dispositions\n" }, { "name": "Events", "description": "Endpoints that allow you to retrieve EPCIS events as Web resources.\n" }, { "name": "Capture", "description": "Endpoints to capture EPCIS events in bulk or individually.\n" }, { "name": "Queries", "description": "Endpoints to create large named or anonymous queries using the EPCIS Query Language. Named queries have a custom\nname and are stored until deleted by the user. Anonymous queries are not persisted and only available to the caller.\nEPCIS events queries also support query subscription.\n" }, { "name": "Subscriptions", "description": "EPCIS 2.0 supports query subscriptions using Webhooks or Websockets.\n" }, { "name": "Discovery", "description": "Endpoints to obtain information about the endpoint, such as EPCIS and CBV versions or custom vocabularies.\n" } ], "paths": { "/": { "options": { "tags": [ "Discovery" ], "summary": "Query server settings, EPCIS version(s) and related vocabularies/standards.", "description": "`OPTIONS` on the root path gives the client an overview of the server's EPCIS-related configurations.\n", "responses": { "204": { "$ref": "#/components/responses/204DefaultDiscoveryResponse" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } }, "get": { "tags": [ "Discovery" ], "summary": "Returns the list of top level resources available for this EPCIS repository.", "parameters": [ { "$ref": "#/components/parameters/GS1-Extensions" }, { "$ref": "#/components/parameters/GS1-EPCIS-Min" }, { "$ref": "#/components/parameters/GS1-EPCIS-Max" }, { "$ref": "#/components/parameters/GS1-CBV-Min" }, { "$ref": "#/components/parameters/GS1-CBV-Max" } ], "description": "This endpoint returns all the top-level resources currently available in the repository.\n", "responses": { "200": { "$ref": "#/components/responses/200SupportedTopLevel" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } } }, "/capture": { "parameters": [ { "$ref": "#/components/parameters/GS1-Extensions" } ], "options": { "tags": [ "Discovery" ], "summary": "Discover the settings of the capture interface.", "description": "The `OPTIONS` method is used as a discovery service for `/capture`. It describes\n- which EPCIS and CBV versions are supported,\n- the EPCIS and CBV extensions,\n- the maximum payload size as count of EPCIS events (`GS1-EPCIS-Capture-Limit` header) or as a maximum payload size in bytes (`GS1-EPCIS-Capture-File-Size-Limit` header)\n- what the server will do if an error occurred during capture (`GS1-Capture-Error-Behaviour` header).\nThe list of headers is not exhaustive. It only describes the functionality specific to EPCIS 2.0.\n", "responses": { "204": { "$ref": "#/components/responses/204CaptureEndpointDiscovery" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } }, "post": { "tags": [ "Capture" ], "summary": "Asynchronous capture endpoint for one or more EPCIS events.", "parameters": [ { "$ref": "#/components/parameters/GS1-EPCIS-Version" }, { "$ref": "#/components/parameters/GS1-CBV-Version" }, { "$ref": "#/components/parameters/GS1-Capture-Error-Behaviour" } ], "description": "EPCIS events are added in bulk using the capture interface. Four design considerations were made to remain compatible with EPCIS 1.2:\n- EPCIS 2.0 keeps event IDs optional. If event IDs are missing, the server should populate the event ID with a unique value.\nOtherwise, it won't be possible to retrieve these events by eventID.\n- By default, EPCIS events are only stored if the entire capture job was successful. This behaviour can be changed with the `GS1-Capture-Error-Behaviour` header.\n- EPCIS master data can be captured in the header (`epcisHeader`) of an `EPCISDocument`.\n- This endpoint should support both `EPCISDocument` and `EPCISQueryDocument` as input.\nTo prevent timeouts for large payloads, the client potentially may need to split the payload into several capture calls. To that end, the server can specify a capture\nlimit (number of EPCIS events) and file size limit (payload size).\nA successful capturing of events does not guarantee that events will be stored. Instead, the server returns a\ncapture id, which the client can use to obtain information about the capture job.\n", "requestBody": { "required": true, "content": { "application/json": { "schema": { "oneOf": [ { "$ref": "#/components/schemas/epcisQueryDocument" }, { "$ref": "#/components/schemas/epcisDocument" } ] }, "example": { "@context": [ "https://gs1.github.io/EPCIS/epcis-context.jsonld", { "example": "http://ns.example.com/epcis/" } ], "id": "https://id.example.org/document1", "type": "EPCISDocument", "schemaVersion": "2.0", "creationDate": "2005-07-11T11:30:47.0Z", "epcisBody": { "eventList": [ { "eventID": "ni:///sha-256;df7bb3c352fef055578554f09f5e2aa41782150ced7bd0b8af24dd3ccb30ba69?ver=CBV2.0", "type": "ObjectEvent", "action": "OBSERVE", "bizStep": "shipping", "disposition": "in_transit", "epcList": [ "urn:epc:id:sgtin:0614141.107346.2017", "urn:epc:id:sgtin:0614141.107346.2018" ], "eventTime": "2005-04-03T20:33:31.116000-06:00", "eventTimeZoneOffset": "-06:00", "readPoint": { "id": "urn:epc:id:sgln:0614141.07346.1234" }, "bizTransactionList": [ { "type": "po", "bizTransaction": "http://transaction.acme.com/po/12345678" } ] }, { "eventID": "ni:///sha-256;00e1e6eba3a7cc6125be4793a631f0af50f8322e0ab5f2c0bab994a11cec1d79?ver=CBV2.0", "type": "ObjectEvent", "action": "OBSERVE", "bizStep": "receiving", "disposition": "in_progress", "epcList": [ "urn:epc:id:sgtin:0614141.107346.2018" ], "eventTime": "2005-04-04T20:33:31.116-06:00", "eventTimeZoneOffset": "-06:00", "readPoint": { "id": "urn:epc:id:sgln:0012345.11111.400" }, "bizLocation": { "id": "urn:epc:id:sgln:0012345.11111.0" }, "bizTransactionList": [ { "type": "po", "bizTransaction": "http://transaction.acme.com/po/12345678" }, { "type": "desadv", "bizTransaction": "urn:epcglobal:cbv:bt:0614141073467:1152" } ], "example:myField": "Example of a vendor/user extension" } ] } } } } }, "responses": { "202": { "description": "Successfully received one or more EPCIS events. The request returns a unique\ncapture job URL in the Location header.\n", "headers": { "GS1-EPCIS-Version": { "$ref": "#/components/headers/GS1-EPCIS-Version" }, "GS1-CBV-Version": { "$ref": "#/components/headers/GS1-CBV-Version" }, "GS1-Extensions": { "$ref": "#/components/headers/GS1-Extensions" }, "Location": { "description": "Absolute or relative URL of the capture job.\n", "schema": { "example": "/capture/id9261379075", "type": "string", "minLength": 1 } } } }, "400": { "description": "An error occurred while receiving EPCIS events. All events are rejected. This is not to be confused with\nan error while capturing EPCIS events. To monitor the capture job, use the `/capture/{captureID}` endpoint.\n", "content": { "application/problem+json": { "schema": { "allOf": [ { "properties": { "status": { "type": "integer", "enum": [ 400 ], "default": 400 }, "type": { "type": "string", "format": "uri", "enum": [ "epcisException:ValidationException" ] } } }, { "$ref": "#/components/schemas/RFC7807ProblemResponseBody" } ] } }, "application/problem+xml": { "schema": { "allOf": [ { "properties": { "status": { "type": "integer", "enum": [ 400 ], "default": 400 }, "type": { "type": "string", "format": "uri", "enum": [ "epcisException:ValidationException" ] } } }, { "$ref": "#/components/schemas/RFC7807ProblemResponseBody" } ] } } } }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "413": { "$ref": "#/components/responses/413CapturePayloadTooLarge" }, "415": { "$ref": "#/components/responses/415UnsupportedMediaType" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } }, "get": { "tags": [ "Capture" ], "parameters": [ { "$ref": "#/components/parameters/NextPageToken" }, { "$ref": "#/components/parameters/PerPage" }, { "$ref": "#/components/parameters/GS1-EPCIS-Min" }, { "$ref": "#/components/parameters/GS1-EPCIS-Max" }, { "$ref": "#/components/parameters/GS1-Extensions" } ], "summary": "Returns a list of capture jobs.", "description": "When EPCIS events are added through the capture interface, the capture process can run asynchronously. If the payload\nis syntactically correct and the client is allowed to call `/capture`, the server returns a `202` HTTP response code. \nThis endpoint returns all capture jobs that were created\nand supports pagination.\n", "responses": { "200": { "headers": { "GS1-EPCIS-Version": { "$ref": "#/components/headers/GS1-EPCIS-Version" }, "GS1-Extensions": { "$ref": "#/components/headers/GS1-Extensions" }, "Link": { "$ref": "#/components/headers/Link" }, "GS1-Next-Page-Token-Expires": { "$ref": "#/components/headers/GS1-Next-Page-Token-Expires" } }, "description": "A capture job document has at least the following properties:\n- `running`: whether or not the capture job is still active.\n- `success`: whether or not at least one error occurred.\n- `captureErrorBehaviour`: GS1-Capture-Error-Behaviour header value provided with POST data to capture.\n- `errors` or `errorFile`: with the errors if `success` is `false`.\n### captureErrorBehaviour value is `rollback`\n| Capture job `running` | Capture job `success` | Capture job outcome |\n|:--------|:---------|:---------|\n| `true` | `true` | Still capturing EPCIS events. No errors occurred so far. |\n| `true` | `false` | At least one error occurred. Rollback is in progress. |\n| `false` | `true` | All EPCIS events are captured. |\n| `false` | `false` | All EPCIS events are rejected. |\n### captureErrorBehaviour value is `proceed`\n| Capture job `running` | Capture job `success` | Capture job outcome |\n|:--------|:---------|:---------|\n| `true` | `true` | Still capturing EPCIS events. No errors occurred so far. |\n| `true` | `false` | At least one error occurred but more EPCIS events are currently being captured. |\n| `false` | `true` | All EPCIS events were captured without an error. |\n| `false` | `false` | Some EPCIS events were captured but errors occurred. |\nIf `success` is `false`, check the `errors` or `errorFile` property for details.\n", "content": { "application/json": { "example": [ { "captureID": "id261378658356", "createdAt": "2021-07-21T17:32:28Z", "finishedAt": "2022-01-21T17:45:28Z", "running": false, "success": true, "captureErrorBehaviour": "rollback", "errors": [] }, { "captureID": "id9261379075", "createdAt": "2021-08-21T17:32:28Z", "running": true, "success": true, "captureErrorBehaviour": "proceed", "errors": [] } ], "schema": { "type": "array", "items": { "$ref": "#/components/schemas/CaptureJob" }, "uniqueItems": true } } } }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } } }, "/capture/{captureID}": { "parameters": [ { "in": "path", "name": "captureID", "example": "id9261379075", "description": "A unique value identifying a capture job generated by the server.", "required": true, "schema": { "type": "string" } }, { "$ref": "#/components/parameters/GS1-Extensions" } ], "options": { "tags": [ "Discovery" ], "summary": "Query the metadata of the capture job endpoint.", "description": "EPCIS 2.0 supports a number of custom headers to describe custom vocabularies and support multiple versions\nof EPCIS and CBV. The `OPTIONS` method allows the client to discover which vocabularies and EPCIS and CBV\nversions are used for a given capture job.\n", "responses": { "204": { "$ref": "#/components/responses/204DefaultDiscoveryResponse" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "404": { "$ref": "#/components/responses/404ResourceNotFound" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } }, "get": { "parameters": [ { "$ref": "#/components/parameters/GS1-EPCIS-Min" }, { "$ref": "#/components/parameters/GS1-EPCIS-Max" } ], "tags": [ "Capture" ], "summary": "Returns information about the capture job.", "description": "When EPCIS events are added through the capture interface, the capture process can run asynchronously. If the payload\nis syntactically correct and the client is allowed to call `/capture`, the server returns a `202` HTTP response code. \nThis endpoint exposes the state of the capture job to the client.\n", "responses": { "200": { "headers": { "GS1-EPCIS-Version": { "$ref": "#/components/headers/GS1-EPCIS-Version" }, "GS1-Extensions": { "$ref": "#/components/headers/GS1-Extensions" } }, "description": "A capture job document has at least the following properties:\n- `running`: whether or not the capture job is still active.\n- `success`: whether or not at least one error occurred.\n- `captureErrorBehaviour`: GS1-Capture-Error-Behaviour header value provided with POST data to capture.\n- `errors` or `errorFile`: with the errors if `success` is `false`.\n### captureErrorBehaviour value is `rollback`\n| Capture job `running` | Capture job `success` | Capture job outcome |\n|:--------|:---------|:---------| \n| `true` | `true` | Still capturing EPCIS events. No errors occurred so far. |\n| `true` | `false` | At least one error occurred. Rollback is in progress. |\n| `false` | `true` | All EPCIS events are captured. |\n| `false` | `false` | All EPCIS events are rejected. |\n### captureErrorBehaviour value is `proceed`\n| Capture job `running` | Capture job `success` | Capture job outcome |\n|:--------|:---------|:---------|\n| `true` | `true` | Still capturing EPCIS events. No errors occurred so far. |\n| `true` | `false` | At least one error occurred but more EPCIS events are currently being captured. |\n| `false` | `true` | All EPCIS events were captured without an error. |\n| `false` | `false` | Some EPCIS events were captured but errors occurred. |\nIf `success` is `false`, check the `errors` or `errorFile` property for details.\n", "content": { "application/json": { "example": { "captureID": "id261378658356", "createdAt": "2021-07-21T17:32:28Z", "finishedAt": "2022-01-21T17:45:28Z", "running": false, "success": true, "captureErrorBehaviour": "rollback", "errors": [] }, "schema": { "$ref": "#/components/schemas/CaptureJob" } }, "application/xml": { "example": { "captureID": "id261378658356", "running": false, "success": true, "captureErrorBehaviour": "rollback", "createdAt": "2021-07-21T17:32:28Z", "finishedAt": "2022-01-21T17:45:28Z" }, "schema": { "$ref": "#/components/schemas/CaptureJob" } } } }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "404": { "$ref": "#/components/responses/404ResourceNotFound" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } } }, "/events": { "parameters": [ { "$ref": "#/components/parameters/GS1-Extensions" } ], "options": { "tags": [ "Discovery" ], "summary": "Query metadata for the EPCIS events endpoint.", "description": "EPCIS 2.0 supports a number of custom headers to describe custom vocabularies and support multiple versions\nof EPCIS and CBV. The `OPTIONS` method allows the client to discover which vocabularies and EPCIS and CBV\nversions are used.\n", "responses": { "204": { "$ref": "#/components/responses/204WritableResourcesDiscovery" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "414": { "$ref": "#/components/responses/414URLTooLong" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } }, "get": { "tags": [ "Top-level", "Events" ], "summary": "Returns all EPCIS events available in the EPCIS repository.", "parameters": [ { "$ref": "#/components/parameters/NextPageToken" }, { "$ref": "#/components/parameters/PerPage" }, { "$ref": "#/components/parameters/GS1-CBV-Min" }, { "$ref": "#/components/parameters/GS1-CBV-Max" }, { "$ref": "#/components/parameters/GS1-EPCIS-Min" }, { "$ref": "#/components/parameters/GS1-EPCIS-Max" }, { "$ref": "#/components/parameters/GS1-EPC-Format" }, { "$ref": "#/components/parameters/GS1-CBV-XML-Format" }, { "$ref": "#/components/parameters/eventType" }, { "$ref": "#/components/parameters/GE_eventTime" }, { "$ref": "#/components/parameters/LT_eventTime" }, { "$ref": "#/components/parameters/GE_recordTime" }, { "$ref": "#/components/parameters/LT_recordTime" }, { "$ref": "#/components/parameters/EQ_action" }, { "$ref": "#/components/parameters/EQ_bizStep" }, { "$ref": "#/components/parameters/EQ_disposition" }, { "$ref": "#/components/parameters/EQ_persistentDisposition_set" }, { "$ref": "#/components/parameters/EQ_persistentDisposition_unset" }, { "$ref": "#/components/parameters/EQ_readPoint" }, { "$ref": "#/components/parameters/WD_readPoint" }, { "$ref": "#/components/parameters/EQ_bizLocation" }, { "$ref": "#/components/parameters/WD_bizLocation" }, { "$ref": "#/components/parameters/EQ_transformationID" }, { "$ref": "#/components/parameters/MATCH_epc" }, { "$ref": "#/components/parameters/MATCH_parentID" }, { "$ref": "#/components/parameters/MATCH_inputEPC" }, { "$ref": "#/components/parameters/MATCH_outputEPC" }, { "$ref": "#/components/parameters/MATCH_anyEPC" }, { "$ref": "#/components/parameters/MATCH_epcClass" }, { "$ref": "#/components/parameters/MATCH_inputEPCClass" }, { "$ref": "#/components/parameters/MATCH_outputEPCClass" }, { "$ref": "#/components/parameters/MATCH_anyEPCClass" }, { "$ref": "#/components/parameters/EQ_quantity" }, { "$ref": "#/components/parameters/GT_quantity" }, { "$ref": "#/components/parameters/GE_quantity" }, { "$ref": "#/components/parameters/LT_quantity" }, { "$ref": "#/components/parameters/LE_quantity" }, { "$ref": "#/components/parameters/EQ_eventID" }, { "$ref": "#/components/parameters/EXISTS_errorDeclaration" }, { "$ref": "#/components/parameters/GE_errorDeclarationTime" }, { "$ref": "#/components/parameters/LT_errorDeclarationTime" }, { "$ref": "#/components/parameters/EQ_errorReason" }, { "$ref": "#/components/parameters/EQ_correctiveEventID" }, { "$ref": "#/components/parameters/orderBy" }, { "$ref": "#/components/parameters/orderDirection" }, { "$ref": "#/components/parameters/eventCountLimit" }, { "$ref": "#/components/parameters/maxEventCount" }, { "$ref": "#/components/parameters/GE_startTime" }, { "$ref": "#/components/parameters/LT_startTime" }, { "$ref": "#/components/parameters/GE_endTime" }, { "$ref": "#/components/parameters/LT_endTime" }, { "$ref": "#/components/parameters/EQ_type" }, { "$ref": "#/components/parameters/EQ_deviceID" }, { "$ref": "#/components/parameters/EQ_dataProcessingMethod" }, { "$ref": "#/components/parameters/EQ_microorganism" }, { "$ref": "#/components/parameters/EQ_chemicalSubstance" }, { "$ref": "#/components/parameters/EQ_bizRules" }, { "$ref": "#/components/parameters/EQ_stringValue" }, { "$ref": "#/components/parameters/EQ_hexBinaryValue" }, { "$ref": "#/components/parameters/EQ_uriValue" }, { "$ref": "#/components/parameters/EQ_booleanValue" } ], "description": "This endpoint allows querying EPCIS events that are currently in the repository. \nEvents can be filtered through URL query string parameters as specified by the EPCIS Query Language. \nAn EPCIS 2.0 query body using the REST interface SHALL be serialised as a JSON object. The value of the query key within that JSON object SHALL validate against the schema defined at: https://ref.gs1.org/standards/epcis/2.0.0/query-schema.json.\nAn EPCIS 2.0 query may also be expressed via parameters in the URI query string. The query parameters with fixed fieldnames are included in this OpenAPI interface. However, this list is not exhaustive and the EPCIS 2.0 standard defines additional query parameters with flexible names, depending on the specific value of `uom`, `type` or `fieldname` that appears within the name of the parameter.\n", "responses": { "200": { "$ref": "#/components/responses/200EPCISQueryDocument" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "414": { "$ref": "#/components/responses/414URLTooLong" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } }, "post": { "parameters": [ { "$ref": "#/components/parameters/GS1-EPCIS-Version" }, { "$ref": "#/components/parameters/GS1-CBV-Version" } ], "tags": [ "Capture" ], "summary": "Synchronous capture interface for a single EPCIS event.", "description": "An individual EPCIS event can be created by making a `POST` request on the `/events` resource. Alternatively, the client can also use the `/capture`\ninterface and capture a single event.\n", "requestBody": { "required": true, "description": "A single EPCIS event.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EPCISEvent" }, "example": { "@context": "https://gs1.github.io/EPCIS/epcis-context.jsonld", "eventID": "ni:///sha-256;df7bb3c352fef055578554f09f5e2aa41782150ced7bd0b8af24dd3ccb30ba69?ver=CBV2.0", "type": "ObjectEvent", "action": "OBSERVE", "bizStep": "shipping", "disposition": "in_transit", "epcList": [ "urn:epc:id:sgtin:0614141.107346.2017", "urn:epc:id:sgtin:0614141.107346.2018" ], "eventTime": "2005-04-03T20:33:31.116000-06:00", "eventTimeZoneOffset": "-06:00", "readPoint": { "id": "urn:epc:id:sgln:0614141.07346.1234" }, "bizTransactionList": [ { "type": "po", "bizTransaction": "http://transaction.acme.com/po/12345678" } ] } } } }, "responses": { "201": { "description": "Successfully created (captured) the EPCIS event. The request returns the URL of newly created\nEPCIS event in the Location header.\n", "headers": { "GS1-EPCIS-Version": { "$ref": "#/components/headers/GS1-EPCIS-Version" }, "GS1-CBV-Version": { "$ref": "#/components/headers/GS1-CBV-Version" }, "GS1-Extensions": { "$ref": "#/components/headers/GS1-Extensions" }, "Location": { "description": "Absolute or relative URL of the newly captured EPCIS event. \n", "schema": { "example": "https://example.com/events/urn:uuid:831c0292-4de1-430a-8255-2aca821abaab", "type": "string", "minLength": 1 } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EPCISEvent" } } } }, "400": { "description": "An error occurred while creating the EPCIS event. The event was rejected.", "content": { "application/problem+json": { "schema": { "allOf": [ { "properties": { "status": { "type": "integer", "enum": [ 400 ], "default": 400 }, "type": { "type": "string", "format": "uri", "enum": [ "epcisException:ValidationException" ] } } }, { "$ref": "#/components/schemas/RFC7807ProblemResponseBody" } ] } } } }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "409": { "$ref": "#/components/responses/409ResourceAlreadyExistsException" }, "413": { "$ref": "#/components/responses/413CapturePayloadTooLarge" }, "415": { "$ref": "#/components/responses/415UnsupportedMediaType" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } } }, "/events/{eventID}": { "parameters": [ { "$ref": "#/components/parameters/EventID" }, { "$ref": "#/components/parameters/GS1-Extensions" } ], "options": { "tags": [ "Discovery" ], "summary": "Query metadata for the endpoint to access an individual EPCIS event.", "description": "EPCIS 2.0 supports a number of custom headers to describe custom vocabularies and support multiple versions\nof EPCIS and CBV. The `OPTIONS` method allows the client to discover which vocabularies and EPCIS and CBV\nversions are used.\n", "responses": { "204": { "$ref": "#/components/responses/204DefaultDiscoveryResponse" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "404": { "$ref": "#/components/responses/404ResourceNotFound" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } }, "get": { "tags": [ "Events" ], "summary": "Returns an individual EPCIS event.", "parameters": [ { "$ref": "#/components/parameters/GS1-CBV-Min" }, { "$ref": "#/components/parameters/GS1-CBV-Max" }, { "$ref": "#/components/parameters/GS1-EPCIS-Min" }, { "$ref": "#/components/parameters/GS1-EPCIS-Max" }, { "$ref": "#/components/parameters/GS1-EPC-Format" }, { "$ref": "#/components/parameters/GS1-CBV-XML-Format" } ], "description": "This endpoint accesses individual events using their unique identifier. The response body is an `EPCISQueryDocument` \nenclosing the unique event and error declarations.\n", "responses": { "200": { "$ref": "#/components/responses/200EPCISQueryDocumentSinglePage" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "404": { "$ref": "#/components/responses/404ResourceNotFound" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } } }, "/eventTypes": { "parameters": [ { "$ref": "#/components/parameters/GS1-Extensions" } ], "options": { "tags": [ "Discovery" ], "summary": "Query metadata for the EPCIS event types endpoint.", "description": "EPCIS 2.0 supports a number of custom headers to describe custom vocabularies and support multiple versions\nof EPCIS and CBV. The `OPTIONS` method allows the client to discover which vocabularies and EPCIS and CBV\nversions are used.\n", "responses": { "204": { "$ref": "#/components/responses/204DefaultDiscoveryResponse" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } }, "get": { "tags": [ "Top-level", "Discovery" ], "summary": "Returns all EPCIS event types currently available in the EPCIS repository.", "parameters": [ { "$ref": "#/components/parameters/NextPageToken" }, { "$ref": "#/components/parameters/PerPage" }, { "$ref": "#/components/parameters/GS1-Extensions" }, { "$ref": "#/components/parameters/GS1-EPCIS-Min" }, { "$ref": "#/components/parameters/GS1-EPCIS-Max" }, { "$ref": "#/components/parameters/GS1-CBV-Min" }, { "$ref": "#/components/parameters/GS1-CBV-Max" } ], "description": "EPCIS event types specify the schema of an event. This endpoint returns the 5 standard event types as well as any custom event types supported by this repository.", "responses": { "200": { "$ref": "#/components/responses/200SupportedEventTypes" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } } }, "/eventTypes/{eventType}": { "parameters": [ { "$ref": "#/components/parameters/EventType" }, { "$ref": "#/components/parameters/GS1-Extensions" } ], "options": { "tags": [ "Discovery" ], "summary": "Query metadata of the EPCIS event type endpoint.", "description": "EPCIS 2.0 supports a number of custom headers to describe custom vocabularies and support multiple versions\nof EPCIS and CBV. The `OPTIONS` method allows the client to discover which vocabularies and EPCIS and CBV\nversions are used.\n", "responses": { "204": { "$ref": "#/components/responses/204DefaultDiscoveryResponse" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "404": { "$ref": "#/components/responses/404ResourceNotFound" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } }, "get": { "tags": [ "Top-level" ], "summary": "Returns all sub-resources of an EPCIS event type.", "description": "This endpoint returns all sub-resources of an EPCIS event type (for HATEOAS discovery), which includes at least `events`. A server may\nadd additional endpoints, for example `schema` to access the EPCIS event type schema.\n", "parameters": [ { "$ref": "#/components/parameters/GS1-EPCIS-Min" }, { "$ref": "#/components/parameters/GS1-EPCIS-Max" }, { "$ref": "#/components/parameters/GS1-CBV-Min" }, { "$ref": "#/components/parameters/GS1-CBV-Max" } ], "responses": { "200": { "$ref": "#/components/responses/200TopLevelOrEventTypeSubResource" }, "400": { "$ref": "#/components/responses/400QueryIssues" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "404": { "$ref": "#/components/responses/404ResourceNotFound" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } } }, "/eventTypes/{eventType}/events": { "parameters": [ { "$ref": "#/components/parameters/EventType" }, { "$ref": "#/components/parameters/GS1-Extensions" } ], "options": { "tags": [ "Discovery" ], "summary": "Query the metadata of the endpoint to access EPCIS events by event type.", "description": "EPCIS 2.0 supports a number of custom headers to describe custom vocabularies and support multiple versions\nof EPCIS and CBV. The `OPTIONS` method allows the client to discover which vocabularies and EPCIS and CBV\nversions are used.\n", "responses": { "204": { "$ref": "#/components/responses/204DefaultDiscoveryResponse" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "404": { "$ref": "#/components/responses/404ResourceNotFound" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "414": { "$ref": "#/components/responses/414URLTooLong" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } }, "get": { "tags": [ "Events" ], "summary": "Returns EPCIS events of a given an EPCIS event type.\n", "parameters": [ { "$ref": "#/components/parameters/NextPageToken" }, { "$ref": "#/components/parameters/PerPage" }, { "$ref": "#/components/parameters/GS1-CBV-Min" }, { "$ref": "#/components/parameters/GS1-CBV-Max" }, { "$ref": "#/components/parameters/GS1-EPCIS-Min" }, { "$ref": "#/components/parameters/GS1-EPCIS-Max" }, { "$ref": "#/components/parameters/GS1-EPC-Format" }, { "$ref": "#/components/parameters/GS1-CBV-XML-Format" }, { "$ref": "#/components/parameters/GE_eventTime" }, { "$ref": "#/components/parameters/LT_eventTime" }, { "$ref": "#/components/parameters/GE_recordTime" }, { "$ref": "#/components/parameters/LT_recordTime" }, { "$ref": "#/components/parameters/EQ_action" }, { "$ref": "#/components/parameters/EQ_bizStep" }, { "$ref": "#/components/parameters/EQ_disposition" }, { "$ref": "#/components/parameters/EQ_persistentDisposition_set" }, { "$ref": "#/components/parameters/EQ_persistentDisposition_unset" }, { "$ref": "#/components/parameters/EQ_readPoint" }, { "$ref": "#/components/parameters/WD_readPoint" }, { "$ref": "#/components/parameters/EQ_bizLocation" }, { "$ref": "#/components/parameters/WD_bizLocation" }, { "$ref": "#/components/parameters/EQ_transformationID" }, { "$ref": "#/components/parameters/MATCH_epc" }, { "$ref": "#/components/parameters/MATCH_parentID" }, { "$ref": "#/components/parameters/MATCH_inputEPC" }, { "$ref": "#/components/parameters/MATCH_outputEPC" }, { "$ref": "#/components/parameters/MATCH_anyEPC" }, { "$ref": "#/components/parameters/MATCH_epcClass" }, { "$ref": "#/components/parameters/MATCH_inputEPCClass" }, { "$ref": "#/components/parameters/MATCH_outputEPCClass" }, { "$ref": "#/components/parameters/MATCH_anyEPCClass" }, { "$ref": "#/components/parameters/EQ_quantity" }, { "$ref": "#/components/parameters/GT_quantity" }, { "$ref": "#/components/parameters/GE_quantity" }, { "$ref": "#/components/parameters/LT_quantity" }, { "$ref": "#/components/parameters/LE_quantity" }, { "$ref": "#/components/parameters/EQ_eventID" }, { "$ref": "#/components/parameters/EXISTS_errorDeclaration" }, { "$ref": "#/components/parameters/GE_errorDeclarationTime" }, { "$ref": "#/components/parameters/LT_errorDeclarationTime" }, { "$ref": "#/components/parameters/EQ_errorReason" }, { "$ref": "#/components/parameters/EQ_correctiveEventID" }, { "$ref": "#/components/parameters/orderBy" }, { "$ref": "#/components/parameters/orderDirection" }, { "$ref": "#/components/parameters/eventCountLimit" }, { "$ref": "#/components/parameters/maxEventCount" }, { "$ref": "#/components/parameters/GE_startTime" }, { "$ref": "#/components/parameters/LT_startTime" }, { "$ref": "#/components/parameters/GE_endTime" }, { "$ref": "#/components/parameters/LT_endTime" }, { "$ref": "#/components/parameters/EQ_type" }, { "$ref": "#/components/parameters/EQ_deviceID" }, { "$ref": "#/components/parameters/EQ_dataProcessingMethod" }, { "$ref": "#/components/parameters/EQ_microorganism" }, { "$ref": "#/components/parameters/EQ_chemicalSubstance" }, { "$ref": "#/components/parameters/EQ_bizRules" }, { "$ref": "#/components/parameters/EQ_stringValue" }, { "$ref": "#/components/parameters/EQ_hexBinaryValue" }, { "$ref": "#/components/parameters/EQ_uriValue" }, { "$ref": "#/components/parameters/EQ_booleanValue" } ], "description": "This endpoint returns all EPCIS events of a specific EPCIS event type up to the amount defined in `perPage`.\nThe server returns a 'Link' header to point to the remaining results.\nThe client can further restrict the list of events returned by filtering events using the EPCIS query\nlanguage using URL query string parameters as specified by the EPCIS Query Language.\nThe parameter `eventCountLimit` is used to restrict the maximum number of\nevents to be returned in total, whereas `perPage` restricts the number of events to return per page or paginated results.\nExample:\n```\nhttps://example.com/eventTypes/ObjectEvent/events?EQ_bizStep=shipping%7Cdecommissioning&GE_eventTime=2015-03-15T00%3A00%3A00.000-04%3A00\n```\nAn EPCIS 2.0 query may also be expressed via parameters in the URI query string. The query parameters with fixed fieldnames are included in this OpenAPI interface. However, this list is not exhaustive and the EPCIS 2.0 standard defines additional query parameters with flexible names, depending on the specific value of `uom`, `type` or `fieldname` that appears within the name of the parameter.\n", "responses": { "200": { "$ref": "#/components/responses/200EPCISQueryDocument" }, "400": { "$ref": "#/components/responses/400QueryIssues" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "404": { "$ref": "#/components/responses/404ResourceNotFound" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "414": { "$ref": "#/components/responses/414URLTooLong" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } } }, "/epcs": { "parameters": [ { "$ref": "#/components/parameters/GS1-Extensions" } ], "options": { "tags": [ "Discovery" ], "summary": "Query metadata related to the electronic product codes endpoint.", "description": "EPCIS 2.0 supports a number of custom headers to describe custom vocabularies and support multiple versions\nof EPCIS and CBV. The `OPTIONS` method allows the client to discover which vocabularies and EPCIS and CBV\nversions are used.\n", "responses": { "204": { "$ref": "#/components/responses/204DefaultDiscoveryResponse" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } }, "get": { "tags": [ "Top-level" ], "parameters": [ { "$ref": "#/components/parameters/PerPage" }, { "$ref": "#/components/parameters/NextPageToken" }, { "$ref": "#/components/parameters/GS1-EPCIS-Min" }, { "$ref": "#/components/parameters/GS1-EPCIS-Max" }, { "$ref": "#/components/parameters/GS1-CBV-Min" }, { "$ref": "#/components/parameters/GS1-CBV-Max" }, { "$ref": "#/components/parameters/GS1-EPC-Format" } ], "summary": "Returns known electronic product codes.", "description": "An endpoint to list all electronic product codes known to this repository.", "responses": { "200": { "headers": { "GS1-EPCIS-Version": { "$ref": "#/components/headers/GS1-EPCIS-Version" }, "GS1-CBV-Version": { "$ref": "#/components/headers/GS1-CBV-Version" }, "GS1-Extensions": { "$ref": "#/components/headers/GS1-Extensions" }, "Link": { "$ref": "#/components/headers/Link" }, "GS1-Next-Page-Token-Expires": { "$ref": "#/components/headers/GS1-Next-Page-Token-Expires" } }, "description": "Returns a list of electronic product codes. If there are more electronic product codes than specified by the\n`perPage` parameter, the client will be given the URL to retrieve more electronic product codes in the\n`Link` header.\nIf the client specifies extension mappings, the response will use them where they match. Otherwise,\nthe full resource address is used.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UriCollection" }, "example": { "@context": "https://gs1.github.io/EPCIS/epcis-context.jsonld", "type": "Collection", "member": [ "urn:jaif:id:obj:37SUN321456789A111222333AB+123456789012", "urn:epc:id:sgtin:0614141.107346.2018", "https://example.com/01/04012345123456/21/abc234", "urn:epc:id:sgtin:0614141.107346.2017" ] } } } }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } } }, "/epcs/{epc}": { "parameters": [ { "$ref": "#/components/parameters/EPC" }, { "$ref": "#/components/parameters/GS1-Extensions" } ], "options": { "tags": [ "Discovery" ], "summary": "Query metadata of the electronic product code.", "description": "EPCIS 2.0 supports a number of custom headers to describe custom vocabularies and support multiple versions\nof EPCIS and CBV. The `OPTIONS` method allows the client to discover which vocabularies and EPCIS and CBV\nversions are used.\n", "responses": { "204": { "$ref": "#/components/responses/204DefaultDiscoveryResponse" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "404": { "$ref": "#/components/responses/404ResourceNotFound" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } }, "get": { "tags": [ "Top-level" ], "summary": "Returns all sub-resources of an electronic product code.", "description": "This endpoint returns all sub-resources of an electronic product code (for HATEOAS discovery), which includes at least `events`.\n", "responses": { "200": { "$ref": "#/components/responses/200TopLevelOrEventTypeSubResource" }, "400": { "$ref": "#/components/responses/400QueryIssues" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "404": { "$ref": "#/components/responses/404ResourceNotFound" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } } }, "/epcs/{epc}/events": { "parameters": [ { "$ref": "#/components/parameters/EPC" }, { "$ref": "#/components/parameters/GS1-Extensions" } ], "options": { "tags": [ "Discovery" ], "summary": "Query the metadata of the endpoint to access EPCIS events by EPC in a URN or constrained GS1 Digital Link form (URL encoded).", "description": "EPCIS 2.0 supports a number of custom headers to describe custom vocabularies and support multiple versions\nof EPCIS and CBV. The `OPTIONS` method allows the client to discover which vocabularies and EPCIS and CBV\nversions are used.\n", "responses": { "204": { "$ref": "#/components/responses/204DefaultDiscoveryResponse" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "404": { "$ref": "#/components/responses/404ResourceNotFound" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "414": { "$ref": "#/components/responses/414URLTooLong" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } }, "get": { "tags": [ "Events" ], "summary": "Returns EPCIS events matching the specified electronic product code.", "parameters": [ { "$ref": "#/components/parameters/NextPageToken" }, { "$ref": "#/components/parameters/PerPage" }, { "$ref": "#/components/parameters/GS1-CBV-Min" }, { "$ref": "#/components/parameters/GS1-CBV-Max" }, { "$ref": "#/components/parameters/GS1-EPCIS-Min" }, { "$ref": "#/components/parameters/GS1-EPCIS-Max" }, { "$ref": "#/components/parameters/GS1-EPC-Format" }, { "$ref": "#/components/parameters/GS1-CBV-XML-Format" }, { "$ref": "#/components/parameters/eventType" }, { "$ref": "#/components/parameters/GE_eventTime" }, { "$ref": "#/components/parameters/LT_eventTime" }, { "$ref": "#/components/parameters/GE_recordTime" }, { "$ref": "#/components/parameters/LT_recordTime" }, { "$ref": "#/components/parameters/EQ_action" }, { "$ref": "#/components/parameters/EQ_bizStep" }, { "$ref": "#/components/parameters/EQ_disposition" }, { "$ref": "#/components/parameters/EQ_persistentDisposition_set" }, { "$ref": "#/components/parameters/EQ_persistentDisposition_unset" }, { "$ref": "#/components/parameters/EQ_readPoint" }, { "$ref": "#/components/parameters/WD_readPoint" }, { "$ref": "#/components/parameters/EQ_bizLocation" }, { "$ref": "#/components/parameters/WD_bizLocation" }, { "$ref": "#/components/parameters/EQ_transformationID" }, { "$ref": "#/components/parameters/MATCH_epc" }, { "$ref": "#/components/parameters/MATCH_parentID" }, { "$ref": "#/components/parameters/MATCH_inputEPC" }, { "$ref": "#/components/parameters/MATCH_outputEPC" }, { "$ref": "#/components/parameters/MATCH_epcClass" }, { "$ref": "#/components/parameters/MATCH_inputEPCClass" }, { "$ref": "#/components/parameters/MATCH_outputEPCClass" }, { "$ref": "#/components/parameters/MATCH_anyEPCClass" }, { "$ref": "#/components/parameters/EQ_quantity" }, { "$ref": "#/components/parameters/GT_quantity" }, { "$ref": "#/components/parameters/GE_quantity" }, { "$ref": "#/components/parameters/LT_quantity" }, { "$ref": "#/components/parameters/LE_quantity" }, { "$ref": "#/components/parameters/EQ_eventID" }, { "$ref": "#/components/parameters/EXISTS_errorDeclaration" }, { "$ref": "#/components/parameters/GE_errorDeclarationTime" }, { "$ref": "#/components/parameters/LT_errorDeclarationTime" }, { "$ref": "#/components/parameters/EQ_errorReason" }, { "$ref": "#/components/parameters/EQ_correctiveEventID" }, { "$ref": "#/components/parameters/orderBy" }, { "$ref": "#/components/parameters/orderDirection" }, { "$ref": "#/components/parameters/eventCountLimit" }, { "$ref": "#/components/parameters/maxEventCount" }, { "$ref": "#/components/parameters/GE_startTime" }, { "$ref": "#/components/parameters/LT_startTime" }, { "$ref": "#/components/parameters/GE_endTime" }, { "$ref": "#/components/parameters/LT_endTime" }, { "$ref": "#/components/parameters/EQ_type" }, { "$ref": "#/components/parameters/EQ_deviceID" }, { "$ref": "#/components/parameters/EQ_dataProcessingMethod" }, { "$ref": "#/components/parameters/EQ_microorganism" }, { "$ref": "#/components/parameters/EQ_chemicalSubstance" }, { "$ref": "#/components/parameters/EQ_bizRules" }, { "$ref": "#/components/parameters/EQ_stringValue" }, { "$ref": "#/components/parameters/EQ_hexBinaryValue" }, { "$ref": "#/components/parameters/EQ_uriValue" }, { "$ref": "#/components/parameters/EQ_booleanValue" } ], "description": "This endpoint helps to navigate EPCIS events by electronic product codes. It returns\nEPCIS events up to the amount defined in `perPage`. If applicable, the server returns a `Link` header to point to the remaining\nresults. Optionally, EPCIS events can be further filtered using the EPCIS Query Language as query string parameters.\nExample 1 - EPC in a URN form with EPCIS Query Language filtering\n```\nhttps://example.com/epcs/urn:epc:id:sgtin:0614141.107346.2018?EQ_bizStep=shipping%7Cdecommissioning&GE_eventTime=2015-03-15T00%3A00%3A00.000-04%3A00\n```\n\nExample 2 - EPC in a constrained GS1 Digital Link form (URL encoded)\n```\nhttps://example.com/epcs/https:%2f%2fexample.org%2f01%2f1234567089012400\n```\nAn EPCIS 2.0 query may also be expressed via the URI query string. The query parameters with fixed fieldnames are included in this OpenAPI interface. However, this list is not exhaustive and the EPCIS 2.0 standard defines additional query parameters with flexible names, depending on the specific value of `uom`, `type` or `fieldname` that appears within the name of the parameter.\n", "responses": { "200": { "$ref": "#/components/responses/200EPCISQueryDocument" }, "400": { "$ref": "#/components/responses/400QueryIssues" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "404": { "$ref": "#/components/responses/404ResourceNotFound" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "414": { "$ref": "#/components/responses/414URLTooLong" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } } }, "/bizSteps": { "parameters": [ { "$ref": "#/components/parameters/GS1-Extensions" } ], "options": { "tags": [ "Discovery" ], "summary": "Query metadata related to the business steps endpoint.", "description": "EPCIS 2.0 supports a number of custom headers to describe custom vocabularies and support multiple versions\nof EPCIS and CBV. The `OPTIONS` method allows the client to discover which vocabularies and EPCIS and CBV\nversions are used.\n", "responses": { "204": { "$ref": "#/components/responses/204DefaultDiscoveryResponse" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } }, "get": { "tags": [ "Top-level" ], "parameters": [ { "$ref": "#/components/parameters/PerPage" }, { "$ref": "#/components/parameters/NextPageToken" }, { "$ref": "#/components/parameters/GS1-EPCIS-Min" }, { "$ref": "#/components/parameters/GS1-EPCIS-Max" }, { "$ref": "#/components/parameters/GS1-CBV-Min" }, { "$ref": "#/components/parameters/GS1-CBV-Max" }, { "$ref": "#/components/parameters/GS1-CBV-XML-Format" } ], "summary": "Returns known business steps.", "description": "This endpoint returns the CBV standard business steps as well as any custom business steps supported by this repository.", "responses": { "200": { "headers": { "GS1-Extensions": { "$ref": "#/components/headers/GS1-Extensions" }, "GS1-EPCIS-Version": { "$ref": "#/components/headers/GS1-EPCIS-Version" }, "GS1-CBV-Version": { "$ref": "#/components/headers/GS1-CBV-Version" }, "Link": { "$ref": "#/components/headers/Link" }, "GS1-Next-Page-Token-Expires": { "$ref": "#/components/headers/GS1-Next-Page-Token-Expires" } }, "description": "Returns a list of business steps. If there are more business steps than specified by the\n`perPage` parameter, the client will be given the URL to retrieve more business steps in the `Link` header.\nIf the client specifies extension mappings, the response will use them where they match. Otherwise,\nthe full resource address is used.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BizStepCollection" } } } }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } } }, "/bizSteps/{bizStep}": { "parameters": [ { "$ref": "#/components/parameters/BizStep" }, { "$ref": "#/components/parameters/GS1-Extensions" } ], "options": { "tags": [ "Discovery" ], "summary": "Query metadata of the endpoint to access an individual business step.", "description": "EPCIS 2.0 supports a number of custom headers to describe custom vocabularies and support multiple versions\nof EPCIS and CBV. The `OPTIONS` method allows the client to discover which vocabularies and EPCIS and CBV\nversions are used.\n", "responses": { "204": { "$ref": "#/components/responses/204DefaultDiscoveryResponse" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "404": { "$ref": "#/components/responses/404ResourceNotFound" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } }, "get": { "tags": [ "Top-level" ], "summary": "Returns all sub-resources of a business step.", "description": "This endpoint returns all sub-resources of a business step (for HATEOAS discovery), which includes at least `events`.\n", "responses": { "200": { "$ref": "#/components/responses/200TopLevelOrEventTypeSubResource" }, "400": { "$ref": "#/components/responses/400QueryIssues" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "404": { "$ref": "#/components/responses/404ResourceNotFound" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } } }, "/bizSteps/{bizStep}/events": { "parameters": [ { "$ref": "#/components/parameters/BizStep" }, { "$ref": "#/components/parameters/GS1-Extensions" } ], "options": { "tags": [ "Discovery" ], "summary": "Query the metadata of the endpoint to access EPCIS events by business step.", "description": "EPCIS 2.0 supports a number of custom headers to describe custom vocabularies and support multiple versions\nof EPCIS and CBV. The `OPTIONS` method allows the client to discover which vocabularies and EPCIS and CBV\nversions are used.\n", "responses": { "204": { "$ref": "#/components/responses/204DefaultDiscoveryResponse" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "404": { "$ref": "#/components/responses/404ResourceNotFound" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "414": { "$ref": "#/components/responses/414URLTooLong" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } }, "get": { "tags": [ "Events" ], "summary": "Returns all EPCIS events related to the business step.", "parameters": [ { "$ref": "#/components/parameters/NextPageToken" }, { "$ref": "#/components/parameters/PerPage" }, { "$ref": "#/components/parameters/GS1-CBV-Min" }, { "$ref": "#/components/parameters/GS1-CBV-Max" }, { "$ref": "#/components/parameters/GS1-EPCIS-Min" }, { "$ref": "#/components/parameters/GS1-EPCIS-Max" }, { "$ref": "#/components/parameters/GS1-EPC-Format" }, { "$ref": "#/components/parameters/GS1-CBV-XML-Format" }, { "$ref": "#/components/parameters/eventType" }, { "$ref": "#/components/parameters/GE_eventTime" }, { "$ref": "#/components/parameters/LT_eventTime" }, { "$ref": "#/components/parameters/GE_recordTime" }, { "$ref": "#/components/parameters/LT_recordTime" }, { "$ref": "#/components/parameters/EQ_action" }, { "$ref": "#/components/parameters/EQ_disposition" }, { "$ref": "#/components/parameters/EQ_persistentDisposition_set" }, { "$ref": "#/components/parameters/EQ_persistentDisposition_unset" }, { "$ref": "#/components/parameters/EQ_readPoint" }, { "$ref": "#/components/parameters/WD_readPoint" }, { "$ref": "#/components/parameters/EQ_bizLocation" }, { "$ref": "#/components/parameters/WD_bizLocation" }, { "$ref": "#/components/parameters/EQ_transformationID" }, { "$ref": "#/components/parameters/MATCH_epc" }, { "$ref": "#/components/parameters/MATCH_parentID" }, { "$ref": "#/components/parameters/MATCH_inputEPC" }, { "$ref": "#/components/parameters/MATCH_outputEPC" }, { "$ref": "#/components/parameters/MATCH_anyEPC" }, { "$ref": "#/components/parameters/MATCH_epcClass" }, { "$ref": "#/components/parameters/MATCH_inputEPCClass" }, { "$ref": "#/components/parameters/MATCH_outputEPCClass" }, { "$ref": "#/components/parameters/MATCH_anyEPCClass" }, { "$ref": "#/components/parameters/EQ_quantity" }, { "$ref": "#/components/parameters/GT_quantity" }, { "$ref": "#/components/parameters/GE_quantity" }, { "$ref": "#/components/parameters/LT_quantity" }, { "$ref": "#/components/parameters/LE_quantity" }, { "$ref": "#/components/parameters/EQ_eventID" }, { "$ref": "#/components/parameters/EXISTS_errorDeclaration" }, { "$ref": "#/components/parameters/GE_errorDeclarationTime" }, { "$ref": "#/components/parameters/LT_errorDeclarationTime" }, { "$ref": "#/components/parameters/EQ_errorReason" }, { "$ref": "#/components/parameters/EQ_correctiveEventID" }, { "$ref": "#/components/parameters/orderBy" }, { "$ref": "#/components/parameters/orderDirection" }, { "$ref": "#/components/parameters/eventCountLimit" }, { "$ref": "#/components/parameters/maxEventCount" }, { "$ref": "#/components/parameters/GE_startTime" }, { "$ref": "#/components/parameters/LT_startTime" }, { "$ref": "#/components/parameters/GE_endTime" }, { "$ref": "#/components/parameters/LT_endTime" }, { "$ref": "#/components/parameters/EQ_type" }, { "$ref": "#/components/parameters/EQ_deviceID" }, { "$ref": "#/components/parameters/EQ_dataProcessingMethod" }, { "$ref": "#/components/parameters/EQ_microorganism" }, { "$ref": "#/components/parameters/EQ_chemicalSubstance" }, { "$ref": "#/components/parameters/EQ_bizRules" }, { "$ref": "#/components/parameters/EQ_stringValue" }, { "$ref": "#/components/parameters/EQ_hexBinaryValue" }, { "$ref": "#/components/parameters/EQ_uriValue" }, { "$ref": "#/components/parameters/EQ_booleanValue" } ], "description": "This endpoint helps to navigate EPCIS events by business steps. It returns\nEPCIS events up to the amount defined in `perPage`. The server returns a `Link` header to point to the\nremaining results. Optionally, EPCIS events can be further filtered using the EPCIS Query Language in as query\nstring parameters.\nExample:\n```\nhttps://example.com/bizSteps/receiving?GE_eventTime=2015-03-15T00%3A00%3A00.000-04%3A00\n```\nAn EPCIS 2.0 query may also be expressed via the URI query string. The query parameters with fixed fieldnames are included in this OpenAPI interface. However, this list is not exhaustive and the EPCIS 2.0 standard defines additional query parameters with flexible names, depending on the specific value of `uom`, `type` or `fieldname` that appears within the name of the parameter.\n", "responses": { "200": { "$ref": "#/components/responses/200EPCISQueryDocument" }, "400": { "$ref": "#/components/responses/400QueryIssues" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "404": { "$ref": "#/components/responses/404ResourceNotFound" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "414": { "$ref": "#/components/responses/414URLTooLong" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } } }, "/bizLocations": { "parameters": [ { "$ref": "#/components/parameters/GS1-Extensions" } ], "options": { "tags": [ "Discovery" ], "summary": "Query the metadata related to the business locations endpoint.", "description": "EPCIS 2.0 supports a number of custom headers to describe custom vocabularies and support multiple versions\nof EPCIS and CBV. The `OPTIONS` method allows the client to discover which vocabularies and EPCIS and CBV\nversions are used.\n", "responses": { "204": { "$ref": "#/components/responses/204DefaultDiscoveryResponse" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } }, "get": { "tags": [ "Top-level" ], "parameters": [ { "$ref": "#/components/parameters/PerPage" }, { "$ref": "#/components/parameters/NextPageToken" }, { "$ref": "#/components/parameters/GS1-EPCIS-Min" }, { "$ref": "#/components/parameters/GS1-EPCIS-Max" }, { "$ref": "#/components/parameters/GS1-CBV-Min" }, { "$ref": "#/components/parameters/GS1-CBV-Max" }, { "$ref": "#/components/parameters/GS1-EPC-Format" } ], "summary": "Returns known business locations.", "description": "An endpoint to list all the business locations known to this repository.\n", "responses": { "200": { "headers": { "GS1-Extensions": { "$ref": "#/components/headers/GS1-Extensions" }, "GS1-EPCIS-Version": { "$ref": "#/components/headers/GS1-EPCIS-Version" }, "GS1-CBV-Version": { "$ref": "#/components/headers/GS1-CBV-Version" }, "Link": { "$ref": "#/components/headers/Link" }, "GS1-Next-Page-Token-Expires": { "$ref": "#/components/headers/GS1-Next-Page-Token-Expires" } }, "description": "Returns a list of business locations. If there are more business locations than specified by the\n`perPage` parameter, the client will be given the URL to retrieve more business locations in the `Link` header.\nIf the client specifies extension mappings, the response will use them where they match. Otherwise,\nthe full resource address is used.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UriCollection" }, "example": { "@context": "https://gs1.github.io/EPCIS/epcis-context.jsonld", "type": "Collection", "member": [ "urn:epc:id:sgln:9524987.20000.0" ] } } } }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } } }, "/bizLocations/{bizLocation}": { "parameters": [ { "$ref": "#/components/parameters/BizLocation" } ], "options": { "tags": [ "Discovery" ], "summary": "Query the metadata of the endpoint to access an individual business location.", "description": "EPCIS 2.0 supports a number of custom headers to describe custom vocabularies and support multiple versions\nof EPCIS and CBV. The `OPTIONS` method allows the client to discover which vocabularies and EPCIS and CBV\nversions are used.\n", "responses": { "204": { "$ref": "#/components/responses/204DefaultDiscoveryResponse" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "404": { "$ref": "#/components/responses/404ResourceNotFound" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } }, "get": { "tags": [ "Top-level" ], "summary": "Returns all sub-resources of a business location.", "parameters": [ { "$ref": "#/components/parameters/PerPage" }, { "$ref": "#/components/parameters/NextPageToken" } ], "description": "This endpoint returns all sub-resources of a business location (for HATEOAS discovery), which includes at least `events`.\n", "responses": { "200": { "$ref": "#/components/responses/200TopLevelOrEventTypeSubResource" }, "400": { "$ref": "#/components/responses/400QueryIssues" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "404": { "$ref": "#/components/responses/404ResourceNotFound" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } } }, "/bizLocations/{bizLocation}/events": { "parameters": [ { "$ref": "#/components/parameters/BizLocation" }, { "$ref": "#/components/parameters/GS1-Extensions" } ], "options": { "tags": [ "Discovery" ], "summary": "Query the metadata of the endpoint to access EPCIS events by business location.", "description": "EPCIS 2.0 supports a number of custom headers to describe custom vocabularies and support multiple versions\nof EPCIS and CBV. The `OPTIONS` method allows the client to discover which vocabularies and EPCIS and CBV\nversions are used.\n", "responses": { "204": { "$ref": "#/components/responses/204DefaultDiscoveryResponse" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "404": { "$ref": "#/components/responses/404ResourceNotFound" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "414": { "$ref": "#/components/responses/414URLTooLong" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } }, "get": { "tags": [ "Events" ], "summary": "Returns all EPCIS events related to the business location.", "parameters": [ { "$ref": "#/components/parameters/NextPageToken" }, { "$ref": "#/components/parameters/PerPage" }, { "$ref": "#/components/parameters/GS1-CBV-Min" }, { "$ref": "#/components/parameters/GS1-CBV-Max" }, { "$ref": "#/components/parameters/GS1-EPCIS-Min" }, { "$ref": "#/components/parameters/GS1-EPCIS-Max" }, { "$ref": "#/components/parameters/GS1-EPC-Format" }, { "$ref": "#/components/parameters/GS1-CBV-XML-Format" }, { "$ref": "#/components/parameters/eventType" }, { "$ref": "#/components/parameters/GE_eventTime" }, { "$ref": "#/components/parameters/LT_eventTime" }, { "$ref": "#/components/parameters/GE_recordTime" }, { "$ref": "#/components/parameters/LT_recordTime" }, { "$ref": "#/components/parameters/EQ_action" }, { "$ref": "#/components/parameters/EQ_bizStep" }, { "$ref": "#/components/parameters/EQ_disposition" }, { "$ref": "#/components/parameters/EQ_persistentDisposition_set" }, { "$ref": "#/components/parameters/EQ_persistentDisposition_unset" }, { "$ref": "#/components/parameters/EQ_readPoint" }, { "$ref": "#/components/parameters/WD_readPoint" }, { "$ref": "#/components/parameters/WD_bizLocation" }, { "$ref": "#/components/parameters/EQ_transformationID" }, { "$ref": "#/components/parameters/MATCH_epc" }, { "$ref": "#/components/parameters/MATCH_parentID" }, { "$ref": "#/components/parameters/MATCH_inputEPC" }, { "$ref": "#/components/parameters/MATCH_outputEPC" }, { "$ref": "#/components/parameters/MATCH_anyEPC" }, { "$ref": "#/components/parameters/MATCH_epcClass" }, { "$ref": "#/components/parameters/MATCH_inputEPCClass" }, { "$ref": "#/components/parameters/MATCH_outputEPCClass" }, { "$ref": "#/components/parameters/MATCH_anyEPCClass" }, { "$ref": "#/components/parameters/EQ_quantity" }, { "$ref": "#/components/parameters/GT_quantity" }, { "$ref": "#/components/parameters/GE_quantity" }, { "$ref": "#/components/parameters/LT_quantity" }, { "$ref": "#/components/parameters/LE_quantity" }, { "$ref": "#/components/parameters/EQ_eventID" }, { "$ref": "#/components/parameters/EXISTS_errorDeclaration" }, { "$ref": "#/components/parameters/GE_errorDeclarationTime" }, { "$ref": "#/components/parameters/LT_errorDeclarationTime" }, { "$ref": "#/components/parameters/EQ_errorReason" }, { "$ref": "#/components/parameters/EQ_correctiveEventID" }, { "$ref": "#/components/parameters/orderBy" }, { "$ref": "#/components/parameters/orderDirection" }, { "$ref": "#/components/parameters/eventCountLimit" }, { "$ref": "#/components/parameters/maxEventCount" }, { "$ref": "#/components/parameters/GE_startTime" }, { "$ref": "#/components/parameters/LT_startTime" }, { "$ref": "#/components/parameters/GE_endTime" }, { "$ref": "#/components/parameters/LT_endTime" }, { "$ref": "#/components/parameters/EQ_type" }, { "$ref": "#/components/parameters/EQ_deviceID" }, { "$ref": "#/components/parameters/EQ_dataProcessingMethod" }, { "$ref": "#/components/parameters/EQ_microorganism" }, { "$ref": "#/components/parameters/EQ_chemicalSubstance" }, { "$ref": "#/components/parameters/EQ_bizRules" }, { "$ref": "#/components/parameters/EQ_stringValue" }, { "$ref": "#/components/parameters/EQ_hexBinaryValue" }, { "$ref": "#/components/parameters/EQ_uriValue" }, { "$ref": "#/components/parameters/EQ_booleanValue" } ], "description": "This endpoint helps to navigate EPCIS events by business locations. It returns\nEPCIS events up to the amount defined in `perPage`. The server returns a `Link` header to point to the remaining\nresults.\nOptionally, EPCIS events can be further filtered using the EPCIS Query Language as query string parameters.\nExample:\n```\nhttps://example.com/bizLocations/urn:epc:id:sgln:0012345.11111.400?GE_eventTime=2015-03-15T00%3A00%3A00.000-04%3A00\n```\nAn EPCIS 2.0 query may also be expressed via the URI query string. The query parameters with fixed fieldnames are included in this OpenAPI interface. However, this list is not exhaustive and the EPCIS 2.0 standard defines additional query parameters with flexible names, depending on the specific value of `uom`, `type` or `fieldname` that appears within the name of the parameter.\n", "responses": { "200": { "$ref": "#/components/responses/200EPCISQueryDocument" }, "400": { "$ref": "#/components/responses/400QueryIssues" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "404": { "$ref": "#/components/responses/404ResourceNotFound" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "414": { "$ref": "#/components/responses/414URLTooLong" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } } }, "/readPoints": { "parameters": [ { "$ref": "#/components/parameters/GS1-Extensions" } ], "options": { "tags": [ "Discovery" ], "summary": "Query the metadata related to the read points endpoint.", "description": "EPCIS 2.0 supports a number of custom headers to describe custom vocabularies and support multiple versions\nof EPCIS and CBV. The `OPTIONS` method allows the client to discover which vocabularies and EPCIS and CBV\nversions are used.\n", "responses": { "204": { "$ref": "#/components/responses/204DefaultDiscoveryResponse" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } }, "get": { "tags": [ "Top-level" ], "parameters": [ { "$ref": "#/components/parameters/PerPage" }, { "$ref": "#/components/parameters/NextPageToken" }, { "$ref": "#/components/parameters/GS1-EPCIS-Min" }, { "$ref": "#/components/parameters/GS1-EPCIS-Max" }, { "$ref": "#/components/parameters/GS1-CBV-Min" }, { "$ref": "#/components/parameters/GS1-CBV-Max" }, { "$ref": "#/components/parameters/GS1-EPC-Format" } ], "summary": "Returns known read points.", "description": "An endpoint to list all read points known to this repository.", "responses": { "200": { "headers": { "GS1-Extensions": { "$ref": "#/components/headers/GS1-Extensions" }, "GS1-EPCIS-Version": { "$ref": "#/components/headers/GS1-EPCIS-Version" }, "GS1-CBV-Version": { "$ref": "#/components/headers/GS1-CBV-Version" }, "Link": { "$ref": "#/components/headers/Link" }, "GS1-Next-Page-Token-Expires": { "$ref": "#/components/headers/GS1-Next-Page-Token-Expires" } }, "description": "Returns a list of read points. If there are more read points than specified by the\n`perPage` parameter, the client will be given the URL to retrieve more read points in the `Link` header.\nIf the client specifies extension mappings, the response will use them where they match. Otherwise,\nthe full resource address is used.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UriCollection" }, "example": { "@context": "https://gs1.github.io/EPCIS/epcis-context.jsonld", "type": "Collection", "member": [ "urn:epc:id:sgln:9524678.90000.WarehouseD2", "urn:epc:id:sgln:9524678.90000.WarehouseD1" ] } } } }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } } }, "/readPoints/{readPoint}": { "parameters": [ { "$ref": "#/components/parameters/ReadPoint" } ], "options": { "tags": [ "Discovery" ], "summary": "Query the metadata of the endpoint to access an individual read point.", "description": "EPCIS 2.0 supports a number of custom headers to describe custom vocabularies and support multiple versions\nof EPCIS and CBV. The `OPTIONS` method allows the client to discover which vocabularies and EPCIS and CBV\nversions are used.\n", "responses": { "204": { "$ref": "#/components/responses/204DefaultDiscoveryResponse" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "404": { "$ref": "#/components/responses/404ResourceNotFound" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } }, "get": { "tags": [ "Top-level" ], "summary": "Returns all sub-resources of a read point.", "parameters": [ { "$ref": "#/components/parameters/PerPage" }, { "$ref": "#/components/parameters/NextPageToken" } ], "description": "This endpoint returns all sub-resources of a read point (for HATEOAS discovery), which includes at least `events`.\n", "responses": { "200": { "$ref": "#/components/responses/200TopLevelOrEventTypeSubResource" }, "400": { "$ref": "#/components/responses/400QueryIssues" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "404": { "$ref": "#/components/responses/404ResourceNotFound" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } } }, "/readPoints/{readPoint}/events": { "parameters": [ { "$ref": "#/components/parameters/ReadPoint" }, { "$ref": "#/components/parameters/GS1-Extensions" } ], "options": { "tags": [ "Discovery" ], "summary": "Query the metadata of the endpoint to access EPCIS events by read point.", "description": "EPCIS 2.0 supports a number of custom headers to describe custom vocabularies and support multiple versions\nof EPCIS and CBV. The `OPTIONS` method allows the client to discover which vocabularies and EPCIS and CBV\nversions are used.\n", "responses": { "204": { "$ref": "#/components/responses/204DefaultDiscoveryResponse" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "404": { "$ref": "#/components/responses/404ResourceNotFound" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "414": { "$ref": "#/components/responses/414URLTooLong" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } }, "get": { "tags": [ "Events" ], "summary": "Returns all EPCIS events related to the read point.", "parameters": [ { "$ref": "#/components/parameters/NextPageToken" }, { "$ref": "#/components/parameters/PerPage" }, { "$ref": "#/components/parameters/GS1-CBV-Min" }, { "$ref": "#/components/parameters/GS1-CBV-Max" }, { "$ref": "#/components/parameters/GS1-EPCIS-Min" }, { "$ref": "#/components/parameters/GS1-EPCIS-Max" }, { "$ref": "#/components/parameters/GS1-EPC-Format" }, { "$ref": "#/components/parameters/GS1-CBV-XML-Format" }, { "$ref": "#/components/parameters/eventType" }, { "$ref": "#/components/parameters/GE_eventTime" }, { "$ref": "#/components/parameters/LT_eventTime" }, { "$ref": "#/components/parameters/GE_recordTime" }, { "$ref": "#/components/parameters/LT_recordTime" }, { "$ref": "#/components/parameters/EQ_action" }, { "$ref": "#/components/parameters/EQ_bizStep" }, { "$ref": "#/components/parameters/EQ_disposition" }, { "$ref": "#/components/parameters/EQ_persistentDisposition_set" }, { "$ref": "#/components/parameters/EQ_persistentDisposition_unset" }, { "$ref": "#/components/parameters/WD_readPoint" }, { "$ref": "#/components/parameters/EQ_bizLocation" }, { "$ref": "#/components/parameters/WD_bizLocation" }, { "$ref": "#/components/parameters/EQ_transformationID" }, { "$ref": "#/components/parameters/MATCH_epc" }, { "$ref": "#/components/parameters/MATCH_parentID" }, { "$ref": "#/components/parameters/MATCH_inputEPC" }, { "$ref": "#/components/parameters/MATCH_outputEPC" }, { "$ref": "#/components/parameters/MATCH_anyEPC" }, { "$ref": "#/components/parameters/MATCH_epcClass" }, { "$ref": "#/components/parameters/MATCH_inputEPCClass" }, { "$ref": "#/components/parameters/MATCH_outputEPCClass" }, { "$ref": "#/components/parameters/MATCH_anyEPCClass" }, { "$ref": "#/components/parameters/EQ_quantity" }, { "$ref": "#/components/parameters/GT_quantity" }, { "$ref": "#/components/parameters/GE_quantity" }, { "$ref": "#/components/parameters/LT_quantity" }, { "$ref": "#/components/parameters/LE_quantity" }, { "$ref": "#/components/parameters/EQ_eventID" }, { "$ref": "#/components/parameters/EXISTS_errorDeclaration" }, { "$ref": "#/components/parameters/GE_errorDeclarationTime" }, { "$ref": "#/components/parameters/LT_errorDeclarationTime" }, { "$ref": "#/components/parameters/EQ_errorReason" }, { "$ref": "#/components/parameters/EQ_correctiveEventID" }, { "$ref": "#/components/parameters/orderBy" }, { "$ref": "#/components/parameters/orderDirection" }, { "$ref": "#/components/parameters/eventCountLimit" }, { "$ref": "#/components/parameters/maxEventCount" }, { "$ref": "#/components/parameters/GE_startTime" }, { "$ref": "#/components/parameters/LT_startTime" }, { "$ref": "#/components/parameters/GE_endTime" }, { "$ref": "#/components/parameters/LT_endTime" }, { "$ref": "#/components/parameters/EQ_type" }, { "$ref": "#/components/parameters/EQ_deviceID" }, { "$ref": "#/components/parameters/EQ_dataProcessingMethod" }, { "$ref": "#/components/parameters/EQ_microorganism" }, { "$ref": "#/components/parameters/EQ_chemicalSubstance" }, { "$ref": "#/components/parameters/EQ_bizRules" }, { "$ref": "#/components/parameters/EQ_stringValue" }, { "$ref": "#/components/parameters/EQ_hexBinaryValue" }, { "$ref": "#/components/parameters/EQ_uriValue" }, { "$ref": "#/components/parameters/EQ_booleanValue" } ], "description": "This endpoint helps to navigate EPCIS events by read points. It returns\nEPCIS events up to the amount defined in `perPage`. The server returns a `Link` header to point to the remaining\nresults.\nOptionally, EPCIS events can be further filtered using the EPCIS Query Language as query string parameters.\nExample:\n```\nhttps://example.com/readPoints/urn:epc:id:sgln:0012345.11111.400?GE_eventTime=2015-03-15T00%3A00%3A00.000-04%3A00\n```\nAn EPCIS 2.0 query may also be expressed via the URI query string. The query parameters with fixed fieldnames are included in this OpenAPI interface. However, this list is not exhaustive and the EPCIS 2.0 standard defines additional query parameters with flexible names, depending on the specific value of `uom`, `type` or `fieldname` that appears within the name of the parameter.\n", "responses": { "200": { "$ref": "#/components/responses/200EPCISQueryDocument" }, "400": { "$ref": "#/components/responses/400QueryIssues" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "404": { "$ref": "#/components/responses/404ResourceNotFound" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "414": { "$ref": "#/components/responses/414URLTooLong" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } } }, "/dispositions": { "parameters": [ { "$ref": "#/components/parameters/GS1-Extensions" } ], "options": { "tags": [ "Discovery" ], "summary": "Query the metadata related to the dispositions endpoint.", "description": "EPCIS 2.0 supports a number of custom headers to describe custom vocabularies and support multiple versions\nof EPCIS and CBV. The `OPTIONS` method allows the client to discover which vocabularies and EPCIS and CBV\nversions are used.\n", "responses": { "204": { "$ref": "#/components/responses/204DefaultDiscoveryResponse" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } }, "get": { "tags": [ "Top-level" ], "parameters": [ { "$ref": "#/components/parameters/PerPage" }, { "$ref": "#/components/parameters/NextPageToken" }, { "$ref": "#/components/parameters/GS1-EPCIS-Min" }, { "$ref": "#/components/parameters/GS1-EPCIS-Max" }, { "$ref": "#/components/parameters/GS1-CBV-Min" }, { "$ref": "#/components/parameters/GS1-CBV-Max" }, { "$ref": "#/components/parameters/GS1-CBV-XML-Format" } ], "summary": "Returns known dispositions.", "description": "This endpoint returns the CBV standard dispositions as well as any custom dispositions supported by this repository.\n", "responses": { "200": { "headers": { "GS1-Extensions": { "$ref": "#/components/headers/GS1-Extensions" }, "GS1-EPCIS-Version": { "$ref": "#/components/headers/GS1-EPCIS-Version" }, "GS1-CBV-Version": { "$ref": "#/components/headers/GS1-CBV-Version" }, "Link": { "$ref": "#/components/headers/Link" }, "GS1-Next-Page-Token-Expires": { "$ref": "#/components/headers/GS1-Next-Page-Token-Expires" } }, "description": "Returns a list of dispositions. If there are more dispositions than specified by the\n`perPage` parameter, the client will be given the URL to retrieve more dispositions in the `Link` header.\nIf the client specifies extension mappings, the response will use them where they match. Otherwise,\nthe full resource address is used.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DispositionCollection" } } } }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } } }, "/dispositions/{disposition}": { "parameters": [ { "$ref": "#/components/parameters/GS1-Extensions" }, { "$ref": "#/components/parameters/Disposition" } ], "options": { "tags": [ "Discovery" ], "summary": "Query the metadata of the endpoint to access an individual disposition.", "description": "EPCIS 2.0 supports a number of custom headers to describe custom vocabularies and support multiple versions\nof EPCIS and CBV. The `OPTIONS` method allows the client to discover which vocabularies and EPCIS and CBV\nversions are used.\n", "responses": { "204": { "$ref": "#/components/responses/204DefaultDiscoveryResponse" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "404": { "$ref": "#/components/responses/404ResourceNotFound" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } }, "get": { "tags": [ "Top-level" ], "summary": "Returns all sub-resources of a disposition.", "description": "This endpoint returns all sub-resources of a disposition (for HATEOAS discovery), which includes at least `events`.\n", "responses": { "200": { "$ref": "#/components/responses/200TopLevelOrEventTypeSubResource" }, "400": { "$ref": "#/components/responses/400QueryIssues" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "404": { "$ref": "#/components/responses/404ResourceNotFound" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } } }, "/dispositions/{disposition}/events": { "parameters": [ { "$ref": "#/components/parameters/Disposition" }, { "$ref": "#/components/parameters/GS1-Extensions" } ], "options": { "tags": [ "Discovery" ], "summary": "Query the metadata of the endpoint to access EPCIS events by disposition.", "description": "EPCIS 2.0 supports a number of custom headers to describe custom vocabularies and support multiple versions\nof EPCIS and CBV. The `OPTIONS` method allows the client to discover which vocabularies and EPCIS and CBV\nversions are used.\n", "responses": { "204": { "$ref": "#/components/responses/204DefaultDiscoveryResponse" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "404": { "$ref": "#/components/responses/404ResourceNotFound" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "414": { "$ref": "#/components/responses/414URLTooLong" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } }, "get": { "tags": [ "Events" ], "summary": "Returns all EPCIS events related to the disposition.", "parameters": [ { "$ref": "#/components/parameters/NextPageToken" }, { "$ref": "#/components/parameters/PerPage" }, { "$ref": "#/components/parameters/GS1-CBV-Min" }, { "$ref": "#/components/parameters/GS1-CBV-Max" }, { "$ref": "#/components/parameters/GS1-EPCIS-Min" }, { "$ref": "#/components/parameters/GS1-EPCIS-Max" }, { "$ref": "#/components/parameters/GS1-EPC-Format" }, { "$ref": "#/components/parameters/GS1-CBV-XML-Format" }, { "$ref": "#/components/parameters/eventType" }, { "$ref": "#/components/parameters/GE_eventTime" }, { "$ref": "#/components/parameters/LT_eventTime" }, { "$ref": "#/components/parameters/GE_recordTime" }, { "$ref": "#/components/parameters/LT_recordTime" }, { "$ref": "#/components/parameters/EQ_action" }, { "$ref": "#/components/parameters/EQ_bizStep" }, { "$ref": "#/components/parameters/EQ_disposition" }, { "$ref": "#/components/parameters/EQ_persistentDisposition_set" }, { "$ref": "#/components/parameters/EQ_persistentDisposition_unset" }, { "$ref": "#/components/parameters/EQ_readPoint" }, { "$ref": "#/components/parameters/WD_readPoint" }, { "$ref": "#/components/parameters/EQ_bizLocation" }, { "$ref": "#/components/parameters/WD_bizLocation" }, { "$ref": "#/components/parameters/EQ_transformationID" }, { "$ref": "#/components/parameters/MATCH_epc" }, { "$ref": "#/components/parameters/MATCH_parentID" }, { "$ref": "#/components/parameters/MATCH_inputEPC" }, { "$ref": "#/components/parameters/MATCH_outputEPC" }, { "$ref": "#/components/parameters/MATCH_anyEPC" }, { "$ref": "#/components/parameters/MATCH_epcClass" }, { "$ref": "#/components/parameters/MATCH_inputEPCClass" }, { "$ref": "#/components/parameters/MATCH_outputEPCClass" }, { "$ref": "#/components/parameters/MATCH_anyEPCClass" }, { "$ref": "#/components/parameters/EQ_quantity" }, { "$ref": "#/components/parameters/GT_quantity" }, { "$ref": "#/components/parameters/GE_quantity" }, { "$ref": "#/components/parameters/LT_quantity" }, { "$ref": "#/components/parameters/LE_quantity" }, { "$ref": "#/components/parameters/EQ_eventID" }, { "$ref": "#/components/parameters/EXISTS_errorDeclaration" }, { "$ref": "#/components/parameters/GE_errorDeclarationTime" }, { "$ref": "#/components/parameters/LT_errorDeclarationTime" }, { "$ref": "#/components/parameters/EQ_errorReason" }, { "$ref": "#/components/parameters/EQ_correctiveEventID" }, { "$ref": "#/components/parameters/orderBy" }, { "$ref": "#/components/parameters/orderDirection" }, { "$ref": "#/components/parameters/eventCountLimit" }, { "$ref": "#/components/parameters/maxEventCount" }, { "$ref": "#/components/parameters/GE_startTime" }, { "$ref": "#/components/parameters/LT_startTime" }, { "$ref": "#/components/parameters/GE_endTime" }, { "$ref": "#/components/parameters/LT_endTime" }, { "$ref": "#/components/parameters/EQ_type" }, { "$ref": "#/components/parameters/EQ_deviceID" }, { "$ref": "#/components/parameters/EQ_dataProcessingMethod" }, { "$ref": "#/components/parameters/EQ_microorganism" }, { "$ref": "#/components/parameters/EQ_chemicalSubstance" }, { "$ref": "#/components/parameters/EQ_bizRules" }, { "$ref": "#/components/parameters/EQ_stringValue" }, { "$ref": "#/components/parameters/EQ_hexBinaryValue" }, { "$ref": "#/components/parameters/EQ_uriValue" }, { "$ref": "#/components/parameters/EQ_booleanValue" } ], "description": "This endpoint helps to navigate EPCIS events by dispositions. It returns\nEPCIS events up to the amount defined in `perPage`. The server returns a `Link` header to point to the remaining\nresults.\nOptionally, EPCIS events can be further filtered using the EPCIS Query Language as query string parameters.\nExample:\n```\nhttps://example.com/dispositions/in_progress?GE_eventTime=2015-03-15T00%3A00%3A00.000-04%3A00\n```\nAn EPCIS 2.0 query may also be expressed via the URI query string. The query parameters with fixed fieldnames are included in this OpenAPI interface. However, this list is not exhaustive and the EPCIS 2.0 standard defines additional query parameters with flexible names, depending on the specific value of `uom`, `type` or `fieldname` that appears within the name of the parameter.\n", "responses": { "200": { "$ref": "#/components/responses/200EPCISQueryDocument" }, "400": { "$ref": "#/components/responses/400QueryIssues" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "404": { "$ref": "#/components/responses/404ResourceNotFound" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "414": { "$ref": "#/components/responses/414URLTooLong" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } } }, "/queries": { "options": { "tags": [ "Discovery" ], "summary": "Query the metadata of the EPCIS queries endpoint.", "parameters": [ { "$ref": "#/components/parameters/GS1-Extensions" } ], "description": "EPCIS 2.0 supports a number of custom headers to describe custom vocabularies and support multiple versions\nof EPCIS and CBV. The `OPTIONS` method allows the client to discover which vocabularies and EPCIS and CBV\nversions are used.\n", "responses": { "204": { "$ref": "#/components/responses/204WritableResourcesDiscovery" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } }, "get": { "tags": [ "Queries" ], "parameters": [ { "$ref": "#/components/parameters/NextPageToken" }, { "$ref": "#/components/parameters/PerPage" }, { "$ref": "#/components/parameters/GS1-Extensions" }, { "$ref": "#/components/parameters/GS1-CBV-Min" }, { "$ref": "#/components/parameters/GS1-CBV-Max" }, { "$ref": "#/components/parameters/GS1-EPCIS-Min" }, { "$ref": "#/components/parameters/GS1-EPCIS-Max" } ], "summary": "Returns a list of queries available.", "description": "An endpoint to list named queries.\nThis endpoint supports pagination.\n", "responses": { "200": { "headers": { "GS1-EPCIS-Version": { "$ref": "#/components/headers/GS1-EPCIS-Version" }, "GS1-CBV-Version": { "$ref": "#/components/headers/GS1-CBV-Version" }, "GS1-Extensions": { "$ref": "#/components/headers/GS1-Extensions" }, "Link": { "$ref": "#/components/headers/Link" }, "GS1-Next-Page-Token-Expires": { "$ref": "#/components/headers/GS1-Next-Page-Token-Expires" } }, "description": "Queries are like views that are created using the EPCIS Query Language. Each query object\nconsists of a query name and the query definition. \nAn EPCIS 2.0 query body using the REST interface SHALL be serialised as a JSON object. The value of the query key within that JSON object SHALL validate against the schema defined at: https://ref.gs1.org/standards/epcis/2.0.0/query-schema.json.\nPerforming a `GET` on `/queries` lists all existing queries.\n", "content": { "application/json": { "example": "[{\n \"query\": {\n \"EQ_bizStep\": [\n \"shipping\",\n \"receiving\"\n ],\n \"eventType\": [\"ObjectEvent\"]\n},\n\"name\": \"myQuery\"\n}]\n", "schema": { "description": "The query name.", "type": "array", "items": { "allOf": [ { "type": "object", "required": [ "name" ], "properties": { "name": { "$ref": "#/components/schemas/QueryName" } } }, { "$ref": "#/components/schemas/QueryDefinition" } ] }, "uniqueItems": true } } } }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } }, "post": { "tags": [ "Queries" ], "summary": "Creates a named EPCIS events query.\n", "parameters": [ { "$ref": "#/components/parameters/GS1-EPCIS-Version" }, { "$ref": "#/components/parameters/GS1-CBV-Version" }, { "$ref": "#/components/parameters/GS1-Extensions" } ], "description": "Creating a named query creates a view on the events in the repository, accessible through its events resource.\nTo obtain the named query results, the client can use the URL in the `Location` header. The client can also use this URL to start a query subscription immediately after creating the query.\n", "requestBody": { "$ref": "#/components/requestBodies/CreateQuery" }, "responses": { "201": { "headers": { "GS1-EPCIS-Version": { "$ref": "#/components/headers/GS1-EPCIS-Version" }, "GS1-CBV-Version": { "$ref": "#/components/headers/GS1-CBV-Version" }, "GS1-Extensions": { "$ref": "#/components/headers/GS1-Extensions" }, "Location": { "description": "Absolute or relative URL of the created query. The client can use the `Location` URL to obtain the named query definition.\n", "schema": { "example": "/queries/myQuery", "type": "string", "minLength": 1 } } }, "description": "Creates the named query." }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "409": { "$ref": "#/components/responses/409ResourceAlreadyExistsException" }, "415": { "$ref": "#/components/responses/415UnsupportedMediaType" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } } }, "/queries/{queryName}": { "parameters": [ { "$ref": "#/components/parameters/QueryName" } ], "get": { "parameters": [ { "$ref": "#/components/parameters/GS1-EPCIS-Min" }, { "$ref": "#/components/parameters/GS1-EPCIS-Max" }, { "$ref": "#/components/parameters/GS1-CBV-Min" }, { "$ref": "#/components/parameters/GS1-CBV-Max" }, { "$ref": "#/components/parameters/GS1-Extensions" } ], "tags": [ "Queries" ], "summary": "Returns the query definition.", "responses": { "200": { "headers": { "GS1-EPCIS-Version": { "$ref": "#/components/headers/GS1-EPCIS-Version" }, "GS1-CBV-Version": { "$ref": "#/components/headers/GS1-CBV-Version" }, "GS1-Extensions": { "$ref": "#/components/headers/GS1-Extensions" } }, "description": "Queries are like views that are created using the EPCIS Query Language. Each query object\nconsists of a query name and the query definition.\nAn EPCIS 2.0 query body using the REST interface SHALL be serialised as a JSON object. The value of the query key within that JSON object SHALL validate against the schema defined at: https://ref.gs1.org/standards/epcis/2.0.0/query-schema.json.\n", "content": { "application/json": { "example": { "name": "myQuery", "query": { "EQ_bizStep": [ "shipping", "receiving" ], "eventType": [ "ObjectEvent" ] } }, "schema": { "type": "array", "items": { "allOf": [ { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string" } } }, { "$ref": "#/components/schemas/QueryDefinition" } ] } } } } }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "404": { "$ref": "#/components/responses/404ResourceNotFound" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "413": { "$ref": "#/components/responses/413QueryScopeOrSize" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } }, "options": { "parameters": [ { "$ref": "#/components/parameters/GS1-Extensions" } ], "tags": [ "Discovery" ], "summary": "Query the metadata of the named queries endpoint.", "description": "EPCIS 2.0 supports a number of custom headers to describe custom vocabularies and support multiple versions\nof EPCIS and CBV. The `OPTIONS` method allows the client to discover which vocabularies and EPCIS and CBV\nversions are used.\n", "responses": { "204": { "$ref": "#/components/responses/204RemovableResourcesDiscovery" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "404": { "$ref": "#/components/responses/404ResourceNotFound" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } }, "delete": { "tags": [ "Queries" ], "summary": "Removes a named query and forcibly unsubscribes all active subscriptions, whether by WebSockets or Webhooks", "responses": { "204": { "$ref": "#/components/responses/204QueryDeleted" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "404": { "$ref": "#/components/responses/404ResourceNotFound" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } } }, "/queries/{queryName}/subscriptions": { "parameters": [ { "$ref": "#/components/parameters/QueryName" }, { "$ref": "#/components/parameters/GS1-Extensions" } ], "options": { "tags": [ "Discovery" ], "summary": "Query the metadata of the subscriptions endpoint.", "description": "The `OPTIONS` method is used as a discovery service for query subscriptions.\n", "responses": { "204": { "$ref": "#/components/responses/204WritableResourcesDiscovery" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "404": { "$ref": "#/components/responses/404ResourceNotFound" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } }, "get": { "tags": [ "Queries", "Subscriptions" ], "summary": "Returns active subscriptions with the option to use pagination if needed.", "parameters": [ { "$ref": "#/components/parameters/NextPageToken" }, { "$ref": "#/components/parameters/PerPage" }, { "$ref": "#/components/parameters/GS1-EPCIS-Min" }, { "$ref": "#/components/parameters/GS1-EPCIS-Max" } ], "description": "The `GET` endpoint is to list all active subscriptions on that query.\n", "responses": { "200": { "headers": { "GS1-EPCIS-Version": { "$ref": "#/components/headers/GS1-EPCIS-Version" }, "GS1-Extensions": { "$ref": "#/components/headers/GS1-Extensions" }, "Link": { "$ref": "#/components/headers/Link" }, "GS1-Next-Page-Token-Expires": { "$ref": "#/components/headers/GS1-Next-Page-Token-Expires" } }, "description": "Returns active subscriptions.", "content": { "application/json": { "example": [ { "subscriptionID": "df5a33e3-5aa3-4403-ae01-99b83234e27b", "createdAt": "2017-08-21T17:32:28Z", "schedule": { "hour": "1", "minute": "5" } }, { "subscriptionID": "df5a33e3-5aa3-5504-bf12-88c94345f38c", "createdAt": "2017-07-21T17:32:28Z", "stream": true } ], "schema": { "type": "array", "items": { "allOf": [ { "$ref": "#/components/schemas/AbstractQuerySubscriptionResponse" }, { "oneOf": [ { "$ref": "#/components/schemas/QueryScheduleSubscription" }, { "$ref": "#/components/schemas/QueryStreamSubscription" } ] } ] } } } } }, "400": { "$ref": "#/components/responses/400SubscriptionIssues" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "404": { "$ref": "#/components/responses/404ResourceNotFound" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } }, "post": { "tags": [ "Queries", "Subscriptions" ], "summary": "Creates a query subscription.", "parameters": [ { "$ref": "#/components/parameters/GS1-EPCIS-Version" }, { "$ref": "#/components/parameters/GS1-EPC-Format" }, { "$ref": "#/components/parameters/GS1-CBV-XML-Format" } ], "description": "EPCIS 2.0 implementations must support Webhook subscriptions. \nCreating a query subscription requires the client to provide a single endpoint to which the\nserver will send events (as `EPCISQueryDocument`) and an optional string `signatureToken`. \nThis `signatureToken` must be generated by the client and is used by the server to authenticate itself and sign messages when sending events. The signature must be contained on the `GS1-Signature` HTTP header of the server request. \n\nThe choice of signature type is implementation specific but examples would be using HMAC with SHA-256 directly or a wrapper supporting various symmetric or asymetric \ncryptographic algorithms such as Json Web Signature (JWS).\nWhen the client subscribes to a query, it must either set `stream` to `true`, to be notified whenever a new EPCIS\nevent matches the query, or the client must define a query schedule. If these are missing the query subscription is invalid because the server won't\nknow when to notify a client.\n## Scheduled query: Receive query results at 1.05am\nA scheduled query subscription is a time-based query execution. EPCIS 2.0 scheduled queries are scheduled\nin the same manner as cron jobs.\nFor example, this query subscription is scheduled to trigger every morning at 1.05am. By setting\n`reportIfEmpty` to `true`, the client's callback URL (`dest`) will be called even if there are no new events that match\nthe query.\n```\nPOST /queries/MyQuery/subscriptions\n{\n \"dest\": \"https://client.example.com/queryCallback\",\n \"signatureToken\": \"13df38d8275b13f05704629e5f1cf3d45d6132d5\",\n \"reportIfEmpty\": true,\n \"schedule\": {\n \"hour\":\"1\",\n \"minute\": \"5\"\n }\n}\n```\n## Streaming query subscription: Whenever a captured EPCIS event matches the query criteria\nIf no query schedule is specified, the client must explicitly set `stream` to `true`. This restriction is to\nprevent clients from accidentally subscribing to EPCIS event streams.\n```\nPOST /queries/MyQuery/subscriptions\n{\n \"dest\": \"https://client.example.com/queryCallback\",\n \"signatureToken\": \"13df38d8275b13f05704629e5f1cf3d45d6132d5\",\n \"stream\": true\n}\n```\n", "requestBody": { "content": { "application/json": { "example": { "dest": "https://client.example.com/queryCallback", "signatureToken": "13df38d8275b13f05704629e5f1cf3d45d6132d5", "schedule": { "hour": "1", "minute": "5" } }, "schema": { "allOf": [ { "$ref": "#/components/schemas/AbstractQuerySubscription" }, { "oneOf": [ { "$ref": "#/components/schemas/QueryScheduleSubscription" }, { "$ref": "#/components/schemas/QueryStreamSubscription" } ] } ] } } } }, "responses": { "201": { "headers": { "Location": { "description": "The server creates a new subscription for each client and query subscription. The client needs that URL\nto unsubscribe by deleting this resource. The `Location` URL must point to the `subscriptionID` returned\nin the response body. Note that for security reasons the response should not\nreturn the secret.\n", "schema": { "type": "string", "format": "uri", "example": "https://www.example.com/queries/MyQuery/subscriptions/df5a33e3-5aa3" } } }, "description": "Query subscription successful. The subscription is valid until the client unsubscribes.", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/AbstractQuerySubscriptionResponse" }, { "oneOf": [ { "$ref": "#/components/schemas/QueryScheduleSubscription" }, { "$ref": "#/components/schemas/QueryStreamSubscription" } ] } ] } } } }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "404": { "$ref": "#/components/responses/404ResourceNotFound" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "415": { "$ref": "#/components/responses/415UnsupportedMediaType" }, "500": { "$ref": "#/components/responses/500ImplementationException" } }, "callbacks": { "querySubscriptionResults": { "{$request.body#/dest}": { "post": { "summary": "Callback invoked by the server to provide the query result to the client.", "parameters": [ { "$ref": "#/components/parameters/GS1-Signature" } ], "requestBody": { "description": "The server sends the query result to the client as a series of `EPCISQueryDocument`. There is no pagination for a `POST` request, the\nserver must either send each EPCIS event individually or group EPCIS events in manageable batches.\nIf an error occurs server-side, the server must send the error in the format that is already used for\nreturning `4xx` or `5xx` responses.\n", "required": true, "content": { "application/json": { "schema": { "oneOf": [ { "$ref": "#/components/schemas/epcisQueryDocument" }, { "$ref": "#/components/schemas/RFC7807ProblemResponseBody" } ] } } } }, "responses": { "200": { "description": "Webhook successfully processed the server request." }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "413": { "description": "The `POST` request is too large. The client can't handle a payload of this size at once and\nasks the server to send EPCIS events in smaller batches.\n", "content": { "application/problem+json": { "schema": { "allOf": [ { "properties": { "status": { "type": "integer", "enum": [ 413 ], "default": 413 }, "type": { "type": "string", "format": "uri", "enum": [ "epcisException:QueryTooComplexException" ] } } }, { "$ref": "#/components/schemas/RFC7807ProblemResponseBody" } ] } } } }, "415": { "$ref": "#/components/responses/415UnsupportedMediaType" } } } } } } } }, "/queries/{queryName}/subscriptions/{subscriptionID}": { "parameters": [ { "$ref": "#/components/parameters/QueryName" }, { "in": "path", "name": "subscriptionID", "required": true, "example": "df5a33e3-5aa3-4403-ae01-99b83234e27b", "schema": { "$ref": "#/components/schemas/subscriptionID" } } ], "options": { "parameters": [ { "$ref": "#/components/parameters/GS1-Extensions" } ], "tags": [ "Discovery" ], "summary": "Query the metadata of the endpoint for an individual subscription.", "description": "The `OPTIONS` method is used to discover capabilities for a query subscription.\n", "responses": { "204": { "$ref": "#/components/responses/204SubscriptionEndpointDiscovery" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "404": { "$ref": "#/components/responses/404ResourceNotFound" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } }, "get": { "tags": [ "Queries", "Subscriptions" ], "summary": "Returns the details of a subscription. This method is useful to verify if a subscription is still active.", "parameters": [ { "$ref": "#/components/parameters/GS1-EPCIS-Min" }, { "$ref": "#/components/parameters/GS1-EPCIS-Max" }, { "$ref": "#/components/parameters/GS1-Extensions" } ], "responses": { "200": { "headers": { "GS1-Extensions": { "$ref": "#/components/headers/GS1-Extensions" }, "GS1-EPCIS-Version": { "$ref": "#/components/headers/GS1-EPCIS-Version" } }, "description": "The `GET` method on a query subscription allows the client to get the details of an individual subscription.\n", "content": { "application/json": { "example": { "subscriptionID": "7cec849f-72f7-4a9d-bc86-080d3c5b7c98", "queryName": "GetIlmdExtension", "dest": "http://example.com/testWebhookSubscription", "initialRecordTime": "2022-01-06T06:52:24.880Z", "reportIfEmpty": true, "schedule": { "second": "0/30" }, "createdAt": "2022-01-06T06:52:24.889Z", "lastNotifiedAt": "2022-01-08T06:51:21.889Z" }, "schema": { "allOf": [ { "$ref": "#/components/schemas/AbstractQuerySubscriptionResponse" }, { "oneOf": [ { "$ref": "#/components/schemas/QueryScheduleSubscription" }, { "$ref": "#/components/schemas/QueryStreamSubscription" } ] } ] } } } }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "404": { "$ref": "#/components/responses/404ResourceNotFound" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } }, "delete": { "operationId": "unsubscribe", "tags": [ "Queries", "Subscriptions" ], "summary": "Unsubscribes a client by deleting the query subscription.", "responses": { "204": { "description": "Client unsubscribed from query." }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "404": { "$ref": "#/components/responses/404ResourceNotFound" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } } }, "/queries/{queryName}/events": { "parameters": [ { "$ref": "#/components/parameters/QueryName" }, { "$ref": "#/components/parameters/GS1-Extensions" } ], "options": { "tags": [ "Discovery" ], "summary": "Query the metadata of the EPCIS events query result endpoint.", "description": "The `OPTIONS` method is used to discover capabilities for named queries. It describes which EPCIS and CBV\nversions are used in the query result supported as well as EPCIS and CBV extensions.\n", "responses": { "204": { "$ref": "#/components/responses/204DefaultDiscoveryResponse" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "404": { "$ref": "#/components/responses/404ResourceNotFound" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "414": { "$ref": "#/components/responses/414URLTooLong" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } }, "get": { "tags": [ "Queries", "Events" ], "summary": "Returns EPCIS events with the option to use pagination if needed. This endpoint supports query subscriptions\nusing WebSockets.\n", "parameters": [ { "$ref": "#/components/parameters/Upgrade" }, { "$ref": "#/components/parameters/Connection" }, { "$ref": "#/components/parameters/GS1-Query-ReportIfEmpty" }, { "$ref": "#/components/parameters/GS1-Query-InitialRecordTime" }, { "$ref": "#/components/parameters/GS1-Query-Second" }, { "$ref": "#/components/parameters/GS1-Query-Minute" }, { "$ref": "#/components/parameters/GS1-Query-Hour" }, { "$ref": "#/components/parameters/GS1-Query-DayOfMonth" }, { "$ref": "#/components/parameters/GS1-Query-Month" }, { "$ref": "#/components/parameters/GS1-Query-DayOfWeek" }, { "$ref": "#/components/parameters/GS1-Query-Stream" }, { "$ref": "#/components/parameters/NextPageToken" }, { "$ref": "#/components/parameters/PerPage" }, { "$ref": "#/components/parameters/GS1-CBV-Min" }, { "$ref": "#/components/parameters/GS1-CBV-Max" }, { "$ref": "#/components/parameters/GS1-EPCIS-Min" }, { "$ref": "#/components/parameters/GS1-EPCIS-Max" }, { "$ref": "#/components/parameters/GS1-EPC-Format" }, { "$ref": "#/components/parameters/GS1-CBV-XML-Format" } ], "description": "The `GET` endpoint is to retrieve results of a named query.\nFurthermore, this endpoint can also be used to subscribe to queries using Websocket. To do this, the client\nmust specify the query schedule or set the `stream` parameter to `true` as a URL query string parameter. Please\nnote that scheduling parameters and the `stream` parameter are mutually exclusive.\n## Scheduled query: Receive query results at 1.05am\nHandshake from client for scheduled query:\n```\nGET https://example.com/queries/MyQuery/events?minute=5&hour=1\nHost: example.com\nUpgrade: websocket\nConnection: Upgrade\n```\nHandshake from the server:\n```\nHTTP/1.1 101 Switching Protocols\nUpgrade: websocket\nConnection: Upgrade\n```\n## Streaming query subscription: Whenever a captured EPCIS event matches the query criteria\nHandshake from client for streaming:\n```\nGET https://example.com/queries/MyQuery/events?stream=true\nHost: example.com\nUpgrade: websocket\nConnection: Upgrade\n```\nHandshake from the server:\n```\nHTTP/1.1 101 Switching Protocols\nUpgrade: websocket\nConnection: Upgrade\n```\n", "responses": { "101": { "$ref": "#/components/responses/101WebsocketCreated" }, "200": { "$ref": "#/components/responses/200EPCISQueryDocument" }, "400": { "$ref": "#/components/responses/400SubscriptionIssues" }, "401": { "$ref": "#/components/responses/401UnauthorizedRequest" }, "403": { "$ref": "#/components/responses/403ClientUnauthorized" }, "404": { "$ref": "#/components/responses/404ResourceNotFound" }, "406": { "$ref": "#/components/responses/406NotAcceptable" }, "413": { "$ref": "#/components/responses/413QueryScopeOrSize" }, "414": { "$ref": "#/components/responses/414URLTooLong" }, "500": { "$ref": "#/components/responses/500ImplementationException" } } } }, "/nextPageToken/{token}": { "parameters": [ { "$ref": "#/components/parameters/Token" } ], "delete": { "tags": [ "Queries" ], "summary": "Optional endpoint that allows on-demand release of any resources associated with `nextPageToken`.", "responses": { "204": { "$ref": "#/components/responses/204NextPageTokenInvalidated" }, "501": { "$ref": "#/components/responses/501NotImplemented" } } } } }, "components": { "responses": { "101WebsocketCreated": { "description": "Create a WebSocket connection to subscribe to queries. Upon subscription, the server SHALL send all new events\nto subscribing clients. If multiple clients have the same query, each client will receive events which they are\nauthorized to see.\n", "headers": { "Upgrade": { "required": true, "schema": { "type": "string", "default": "websocket" } }, "Connection": { "required": true, "schema": { "type": "string", "default": "upgrade" } }, "GS1-Query-Min-Record-Time": { "required": false, "schema": { "$ref": "#/components/schemas/GS1-Query-Min-Record-Time" } } } }, "200TopLevelOrEventTypeSubResource": { "headers": { "GS1-EPCIS-Version": { "$ref": "#/components/headers/GS1-EPCIS-Version" }, "GS1-CBV-Version": { "$ref": "#/components/headers/GS1-CBV-Version" }, "GS1-Extensions": { "$ref": "#/components/headers/GS1-Extensions" } }, "description": "Returns a sub-resource list that contains at least the `events` sub-resource (for HATEOAS discovery).", "content": { "application/json": { "example": { "@context": "https://gs1.github.io/EPCIS/epcis-context.jsonld", "type": "Collection", "member": [ "events" ] }, "schema": { "$ref": "#/components/schemas/ResourceCollection" } } } }, "200EPCISQueryDocument": { "headers": { "GS1-EPCIS-Version": { "$ref": "#/components/headers/GS1-EPCIS-Version" }, "GS1-CBV-Version": { "$ref": "#/components/headers/GS1-CBV-Version" }, "GS1-Extensions": { "$ref": "#/components/headers/GS1-Extensions" }, "Link": { "$ref": "#/components/headers/Link" }, "GS1-Next-Page-Token-Expires": { "$ref": "#/components/headers/GS1-Next-Page-Token-Expires" } }, "description": "Contains EPCIS events.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/epcisQueryDocument" }, "example": { "@context": [ "https://gs1.github.io/EPCIS/epcis-context.jsonld", { "example": "http://ns.example.com/epcis/" } ], "id": "https://id.example.org/document1", "type": "EPCISQueryDocument", "schemaVersion": "2.0", "creationDate": "2005-07-11T11:30:47.0Z", "epcisBody": { "queryResults": { "subscriptionID": "32d2aec1-a6d2-46d9-900a-24124288cce1", "queryName": "SimpleEventQuery", "resultsBody": { "eventList": [ { "eventID": "ni:///sha-256;df7bb3c352fef055578554f09f5e2aa41782150ced7bd0b8af24dd3ccb30ba69?ver=CBV2.0", "type": "ObjectEvent", "action": "OBSERVE", "bizStep": "shipping", "disposition": "in_transit", "epcList": [ "urn:epc:id:sgtin:0614141.107346.2017", "urn:epc:id:sgtin:0614141.107346.2018" ], "eventTime": "2005-04-03T20:33:31.116000-06:00", "eventTimeZoneOffset": "-06:00", "readPoint": { "id": "urn:epc:id:sgln:0614141.07346.1234" }, "bizTransactionList": [ { "type": "po", "bizTransaction": "http://transaction.acme.com/po/12345678" } ] }, { "eventID": "ni:///sha-256;00e1e6eba3a7cc6125be4793a631f0af50f8322e0ab5f2c0bab994a11cec1d79?ver=CBV2.0", "type": "ObjectEvent", "action": "OBSERVE", "bizStep": "receiving", "disposition": "in_progress", "epcList": [ "urn:epc:id:sgtin:0614141.107346.2018" ], "eventTime": "2005-04-04T20:33:31.116-06:00", "eventTimeZoneOffset": "-06:00", "readPoint": { "id": "urn:epc:id:sgln:0012345.11111.400" }, "bizLocation": { "id": "urn:epc:id:sgln:0012345.11111.0" }, "bizTransactionList": [ { "type": "po", "bizTransaction": "http://transaction.acme.com/po/12345678" }, { "type": "desadv", "bizTransaction": "urn:epcglobal:cbv:bt:0614141073467:1152" } ], "example:myField": "Example of a vendor/user extension" } ] } } } } }, "application/xml": { "schema": { "$ref": "#/components/schemas/EPCISXMLQueryDocument" }, "example": "\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t2020-06-07T17:10:16Z\r\n\t\t\t\t+02:00\r\n\t\t\t\turn:epc:id:sgtin:952001.1012345.22222223333\r\n\t\t\t\t\r\n\t\t\t\t\turn:epc:id:sgtin:9520001.012346.10000001001\r\n\t\t\t\t\turn:epc:id:sgtin:9520001.012346.10000001002\r\n\t\t\t\t\turn:epc:id:sgtin:9520001.012346.10000001003\r\n\t\t\t\t\turn:epc:id:sgtin:9520001.012346.10000001004\r\n\t\t\t\t\turn:epc:id:sgtin:9520001.012346.10000001005\r\n\t\t\t\t\turn:epc:id:sgtin:9520001.012346.10000001006\r\n\t\t\t\t\turn:epc:id:sgtin:9520001.012346.10000001007\r\n\t\t\t\t\turn:epc:id:sgtin:9520001.012346.10000001008\r\n\t\t\t\t\turn:epc:id:sgtin:9520001.012346.10000001009\r\n\t\t\t\t\turn:epc:id:sgtin:9520001.012346.10000001010\r\n\t\t\t\t\r\n\t\t\t\tOBSERVE\r\n\t\t\t\turn:epcglobal:cbv:bizstep:receiving\r\n\t\t\t\turn:epcglobal:cbv:disp:in_progress\r\n\t\t\t\t\r\n\t\t\t\t\turn:epc:id:sgln:9529999.99999.0\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\turn:epc:id:sgln:9529999.99999.0\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\turn:epcglobal:cbv:bt:9520011111116:A123\r\n\t\t\t\t\turn:epcglobal:cbv:bt:9529999999991:XYZ567\r\n\t\t\t\t\t\r\n\t\t\t\t\turn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\turn:epc:id:pgln:9520001.11111\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\turn:epc:id:pgln:9520999.99999\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\turn:epcglobal:cbv:disp:completeness_inferred\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t2020-06-08T18:11:16Z\r\n\t\t\t\t+02:00\r\n\t\t\t\turn:epc:id:sgtin:952001.1012345.22222223333\r\n\t\t\t\t\r\n\t\t\t\t\turn:epc:id:sgtin:9520001.012346.10000001001\r\n\t\t\t\t\turn:epc:id:sgtin:9520001.012346.10000001002\r\n\t\t\t\t\turn:epc:id:sgtin:9520001.012346.10000001003\r\n\t\t\t\t\turn:epc:id:sgtin:9520001.012346.10000001004\r\n\t\t\t\t\turn:epc:id:sgtin:9520001.012346.10000001005\r\n\t\t\t\t\turn:epc:id:sgtin:9520001.012346.10000001006\r\n\t\t\t\t\turn:epc:id:sgtin:9520001.012346.10000001007\r\n\t\t\t\t\turn:epc:id:sgtin:9520001.012346.10000001008\r\n\t\t\t\t\turn:epc:id:sgtin:9520001.012346.10000001009\r\n\t\t\t\t\turn:epc:id:sgtin:9520001.012346.10000001010\r\n\t\t\t\t\r\n\t\t\t\tDELETE\r\n\t\t\t\turn:epcglobal:cbv:bizstep:unpacking\r\n\t\t\t\turn:epcglobal:cbv:disp:in_progress\r\n\t\t\t\t\r\n\t\t\t\t\turn:epc:id:sgln:9529999.99999.0\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\turn:epc:id:sgln:9529999.99999.0\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\turn:epcglobal:cbv:bt:9520011111116:A123\r\n\t\t\t\t\turn:epcglobal:cbv:bt:9529999999991:XYZ567\r\n\t\t\t\t\t\r\n\t\t\t\t\turn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\turn:epc:id:pgln:9520001.11111\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\turn:epc:id:pgln:9520999.99999\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\turn:epcglobal:cbv:disp:completeness_inferred\r\n\t\t\t\t\turn:epcglobal:cbv:disp:completeness_verified\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n" } } }, "200EPCISQueryDocumentSinglePage": { "headers": { "GS1-EPCIS-Version": { "$ref": "#/components/headers/GS1-EPCIS-Version" }, "GS1-CBV-Version": { "$ref": "#/components/headers/GS1-CBV-Version" }, "GS1-Extensions": { "$ref": "#/components/headers/GS1-Extensions" } }, "description": "EPCIS Query Document containing events with the requested `eventID`.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/epcisQueryDocument" }, "example": { "@context": [ "https://gs1.github.io/EPCIS/epcis-context.jsonld", { "example": "http://ns.example.com/epcis/" } ], "id": "https://id.example.org/document1", "type": "EPCISQueryDocument", "schemaVersion": "2.0", "creationDate": "2005-07-11T11:30:47.0Z", "epcisBody": { "queryResults": { "subscriptionID": "32d2aec1-a6d2-46d9-900a-24124288cce1", "queryName": "SimpleEventQuery", "resultsBody": { "eventList": [ { "eventID": "ni:///sha-256;df7bb3c352fef055578554f09f5e2aa41782150ced7bd0b8af24dd3ccb30ba69?ver=CBV2.0", "type": "ObjectEvent", "action": "OBSERVE", "bizStep": "shipping", "disposition": "in_transit", "epcList": [ "urn:epc:id:sgtin:0614141.107346.2017", "urn:epc:id:sgtin:0614141.107346.2018" ], "eventTime": "2005-04-03T20:33:31.116000-06:00", "eventTimeZoneOffset": "-06:00", "readPoint": { "id": "urn:epc:id:sgln:0614141.07346.1234" }, "bizTransactionList": [ { "type": "po", "bizTransaction": "http://transaction.acme.com/po/12345678" } ] }, { "eventID": "ni:///sha-256;00e1e6eba3a7cc6125be4793a631f0af50f8322e0ab5f2c0bab994a11cec1d79?ver=CBV2.0", "type": "ObjectEvent", "action": "OBSERVE", "bizStep": "receiving", "disposition": "in_progress", "epcList": [ "urn:epc:id:sgtin:0614141.107346.2018" ], "eventTime": "2005-04-04T20:33:31.116-06:00", "eventTimeZoneOffset": "-06:00", "readPoint": { "id": "urn:epc:id:sgln:0012345.11111.400" }, "bizLocation": { "id": "urn:epc:id:sgln:0012345.11111.0" }, "bizTransactionList": [ { "type": "po", "bizTransaction": "http://transaction.acme.com/po/12345678" }, { "type": "desadv", "bizTransaction": "urn:epcglobal:cbv:bt:0614141073467:1152" } ], "example:myField": "Example of a vendor/user extension" } ] } } } } }, "application/xml": { "schema": { "$ref": "#/components/schemas/EPCISXMLQueryDocument" } } } }, "204NextPageTokenInvalidated": { "description": "nextPageToken invalidated successfully." }, "200SupportedTopLevel": { "description": "Returns all supported EPCIS top-level resources.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TopLevelResourceCollection" }, "example": { "@context": "https://gs1.github.io/EPCIS/epcis-context.jsonld", "type": "Collection", "member": [ "queries", "capture", "events", "eventTypes", "epcs", "readPoints", "bizLocations", "dispositions", "bizSteps" ] } }, "application/xml": { "schema": { "$ref": "#/components/schemas/TopLevelResourceCollection" }, "example": { "@context": "https://gs1.github.io/EPCIS/epcis-context.jsonld", "type": "Collection", "member": [ "queries", "capture", "events", "eventTypes", "epcs", "readPoints", "bizLocations", "dispositions", "bizSteps" ] } } } }, "200SupportedEventTypes": { "description": "Returns all supported EPCIS event types.", "headers": { "GS1-Extensions": { "$ref": "#/components/headers/GS1-Extensions" }, "GS1-EPCIS-Version": { "$ref": "#/components/headers/GS1-EPCIS-Version" }, "GS1-CBV-Version": { "$ref": "#/components/headers/GS1-CBV-Version" }, "Link": { "$ref": "#/components/headers/Link" }, "GS1-Next-Page-Token-Expires": { "$ref": "#/components/headers/GS1-Next-Page-Token-Expires" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EventTypeCollection" } } } }, "204DefaultDiscoveryResponse": { "description": "The `OPTIONS` method is used to discover capabilities for EPCIS 2.0 endpoints.\nIt describes which EPCIS and CBV versions are supported and used for the top-level resource as well as EPCIS and\nCBV extensions. The list of headers is not exhaustive. It only describes the functionality specific to EPCIS 2.0.\n", "headers": { "Allow": { "description": "Lists the set of methods supported by the resource.", "schema": { "example": "OPTIONS, GET", "type": "string", "default": "OPTIONS, GET" } }, "GS1-EPCIS-Version": { "$ref": "#/components/headers/GS1-EPCIS-Version" }, "GS1-EPCIS-Min": { "$ref": "#/components/headers/GS1-EPCIS-Min" }, "GS1-EPCIS-Max": { "$ref": "#/components/headers/GS1-EPCIS-Max" }, "GS1-CBV-Version": { "$ref": "#/components/headers/GS1-CBV-Version" }, "GS1-CBV-Min": { "$ref": "#/components/headers/GS1-CBV-Min" }, "GS1-CBV-Max": { "$ref": "#/components/headers/GS1-CBV-Max" }, "GS1-EPC-Format": { "$ref": "#/components/headers/GS1-EPC-Format" }, "GS1-CBV-XML-Format": { "$ref": "#/components/headers/GS1-CBV-XML-Format" }, "GS1-Extensions": { "$ref": "#/components/headers/GS1-Extensions" }, "GS1-Vendor-Version": { "$ref": "#/components/headers/GS1-Vendor-Version" } } }, "204WritableResourcesDiscovery": { "description": "The `OPTIONS` method is used to discover capabilities for EPCIS 2.0 endpoints.\nIt describes which EPCIS and CBV versions are supported and used for the top-level resource as well as EPCIS and\nCBV extensions. The list of headers is not exhaustive. It only describes the functionality specific to EPCIS 2.0.\n", "headers": { "Allow": { "description": "Lists the set of methods supported by the resource.", "schema": { "example": "OPTIONS, GET, POST", "type": "string", "default": "OPTIONS, GET, POST" } }, "GS1-EPCIS-Version": { "$ref": "#/components/headers/GS1-EPCIS-Version" }, "GS1-EPCIS-Min": { "$ref": "#/components/headers/GS1-EPCIS-Min" }, "GS1-EPCIS-Max": { "$ref": "#/components/headers/GS1-EPCIS-Max" }, "GS1-CBV-Version": { "$ref": "#/components/headers/GS1-CBV-Version" }, "GS1-CBV-Min": { "$ref": "#/components/headers/GS1-CBV-Min" }, "GS1-CBV-Max": { "$ref": "#/components/headers/GS1-CBV-Max" }, "GS1-EPC-Format": { "$ref": "#/components/headers/GS1-EPC-Format" }, "GS1-CBV-XML-Format": { "$ref": "#/components/headers/GS1-CBV-XML-Format" }, "GS1-Extensions": { "$ref": "#/components/headers/GS1-Extensions" }, "GS1-Vendor-Version": { "$ref": "#/components/headers/GS1-Vendor-Version" } } }, "204RemovableResourcesDiscovery": { "description": "The `OPTIONS` method is used to discover capabilities for EPCIS 2.0 endpoints.\nIt describes which EPCIS and CBV versions are supported and used for the top-level resource as well as EPCIS and\nCBV extensions. The list of headers is not exhaustive. It only describes the functionality specific to EPCIS 2.0.\n", "headers": { "Allow": { "description": "Lists the set of methods supported by the resource.", "schema": { "example": "OPTIONS, GET, DELETE", "type": "string", "default": "OPTIONS, GET, DELETE" } }, "GS1-EPCIS-Version": { "$ref": "#/components/headers/GS1-EPCIS-Version" }, "GS1-EPCIS-Min": { "$ref": "#/components/headers/GS1-EPCIS-Min" }, "GS1-EPCIS-Max": { "$ref": "#/components/headers/GS1-EPCIS-Max" }, "GS1-CBV-Version": { "$ref": "#/components/headers/GS1-CBV-Version" }, "GS1-CBV-Min": { "$ref": "#/components/headers/GS1-CBV-Min" }, "GS1-CBV-Max": { "$ref": "#/components/headers/GS1-CBV-Max" }, "GS1-EPC-Format": { "$ref": "#/components/headers/GS1-EPC-Format" }, "GS1-CBV-XML-Format": { "$ref": "#/components/headers/GS1-CBV-XML-Format" }, "GS1-Extensions": { "$ref": "#/components/headers/GS1-Extensions" }, "GS1-Vendor-Version": { "$ref": "#/components/headers/GS1-Vendor-Version" } } }, "204CaptureEndpointDiscovery": { "description": "The `OPTIONS` method is used to discover capabilities for EPCIS 2.0 endpoints.\nIt describes which EPCIS and CBV versions are supported and used for the top-level resource as well as EPCIS and\nCBV extensions. The list of headers is not exhaustive. It only describes the functionality specific to EPCIS 2.0.\n", "headers": { "Allow": { "description": "Lists the set of methods supported by the resource.", "schema": { "example": "OPTIONS, POST, GET", "type": "string", "default": "OPTIONS, POST, GET" } }, "GS1-EPCIS-Version": { "$ref": "#/components/headers/GS1-EPCIS-Version" }, "GS1-EPCIS-Min": { "$ref": "#/components/headers/GS1-EPCIS-Min" }, "GS1-EPCIS-Max": { "$ref": "#/components/headers/GS1-EPCIS-Max" }, "GS1-CBV-Version": { "$ref": "#/components/headers/GS1-CBV-Version" }, "GS1-CBV-Min": { "$ref": "#/components/headers/GS1-CBV-Min" }, "GS1-CBV-Max": { "$ref": "#/components/headers/GS1-CBV-Max" }, "GS1-EPC-Format": { "$ref": "#/components/headers/GS1-EPC-Format" }, "GS1-CBV-XML-Format": { "$ref": "#/components/headers/GS1-CBV-XML-Format" }, "GS1-Extensions": { "$ref": "#/components/headers/GS1-Extensions" }, "GS1-Vendor-Version": { "$ref": "#/components/headers/GS1-Vendor-Version" }, "GS1-EPCIS-Capture-Limit": { "$ref": "#/components/headers/GS1-EPCIS-Capture-Limit" }, "GS1-EPCIS-Capture-File-Size-Limit": { "$ref": "#/components/headers/GS1-EPCIS-Capture-File-Size-Limit" }, "GS1-Capture-Error-Behaviour": { "$ref": "#/components/headers/GS1-Capture-Error-Behaviour" } } }, "204SubscriptionEndpointDiscovery": { "description": "The `OPTIONS` method returns information describing individual query subscriptions.\nThe list of headers is not exhaustive. It only describes the functionality specific to EPCIS 2.0.\n", "headers": { "Allow": { "description": "Lists the set of methods supported by the resource.", "schema": { "example": "OPTIONS, DELETE, GET", "type": "string", "default": "OPTIONS, DELETE, GET" } }, "GS1-EPCIS-Version": { "$ref": "#/components/headers/GS1-EPCIS-Version" }, "GS1-EPCIS-Min": { "$ref": "#/components/headers/GS1-EPCIS-Min" }, "GS1-EPCIS-Max": { "$ref": "#/components/headers/GS1-EPCIS-Max" }, "GS1-Extensions": { "$ref": "#/components/headers/GS1-Extensions" }, "GS1-Vendor-Version": { "$ref": "#/components/headers/GS1-Vendor-Version" }, "GS1-Query-Min-Record-Time": { "$ref": "#/components/headers/GS1-Query-Min-Record-Time" } } }, "204QueryDeleted": { "description": "Query deleted and clients disconnected." }, "400SubscriptionIssues": { "description": "An issue with a subscription occurred.", "content": { "application/json": { "schema": { "example": { "type": "epcisException:SubscriptionControlsException", "title": "Subscription error", "status": 400 }, "allOf": [ { "properties": { "status": { "type": "integer", "enum": [ 400 ], "default": 400 }, "type": { "type": "string", "format": "uri", "enum": [ "epcisException:SubscriptionControlsException", "epcisException:ValidationException" ] } } }, { "$ref": "#/components/schemas/RFC7807ProblemResponseBody" } ] } }, "application/xml": { "schema": { "example": { "type": "epcisException:SubscriptionControlsException", "title": "Subscription error", "status": 400 }, "allOf": [ { "properties": { "status": { "type": "integer", "enum": [ 400 ], "default": 400 }, "type": { "type": "string", "format": "uri", "enum": [ "epcisException:SubscriptionControlsException", "epcisException:ValidationException" ] } } }, { "$ref": "#/components/schemas/RFC7807ProblemResponseBody" } ] } } } }, "400QueryIssues": { "description": "Query exceptions defined in EPCIS.", "content": { "application/problem+json": { "schema": { "example": { "type": "epcisException:QueryValidationException", "title": "EPCIS query exception", "status": 400 }, "allOf": [ { "properties": { "status": { "type": "integer", "enum": [ 400 ], "default": 400 }, "type": { "type": "string", "format": "uri", "enum": [ "epcisException:QueryValidationException", "epcisException:QueryParameterException", "epcisException:ValidationException" ] } } }, { "$ref": "#/components/schemas/RFC7807ProblemResponseBody" } ] } } } }, "401UnauthorizedRequest": { "description": "Authorization information is missing or invalid.", "content": { "application/problem+json": { "schema": { "example": { "type": "epcisException:SecurityException", "title": "Unauthorised request", "status": 401 }, "allOf": [ { "properties": { "status": { "type": "integer", "enum": [ 401 ], "default": 401 }, "type": { "type": "string", "format": "uri", "enum": [ "epcisException:SecurityException" ] } } }, { "$ref": "#/components/schemas/RFC7807ProblemResponseBody" } ] } }, "application/problem+xml": { "schema": { "example": { "type": "epcisException:SecurityException", "title": "Unauthorised request", "status": 401 }, "allOf": [ { "properties": { "status": { "type": "integer", "enum": [ 401 ], "default": 401 }, "type": { "type": "string", "format": "uri", "enum": [ "epcisException:SecurityException" ] } } }, { "$ref": "#/components/schemas/RFC7807ProblemResponseBody" } ] } } } }, "403ClientUnauthorized": { "description": "Client is unauthorized to access this resource.", "content": { "application/problem+json": { "schema": { "example": { "type": "epcisException:SecurityException", "title": "Access to resource forbidden", "status": 403 }, "allOf": [ { "properties": { "status": { "type": "integer", "enum": [ 403 ], "default": 403 }, "type": { "type": "string", "format": "uri", "enum": [ "epcisException:SecurityException" ] } } }, { "$ref": "#/components/schemas/RFC7807ProblemResponseBody" } ] } }, "application/problem+xml": { "schema": { "example": { "type": "epcisException:SecurityException", "title": "Access to resource forbidden", "status": 403 }, "allOf": [ { "properties": { "status": { "type": "integer", "enum": [ 403 ], "default": 403 }, "type": { "type": "string", "format": "uri", "enum": [ "epcisException:SecurityException" ] } } }, { "$ref": "#/components/schemas/RFC7807ProblemResponseBody" } ] } } } }, "404ResourceNotFound": { "description": "At least one resource was not found. For example, the EPCIS event does not exist or the query does not exist.", "content": { "application/problem+json": { "schema": { "example": { "type": "epcisException:NoSuchResourceException", "title": "Resource not found", "status": 404 }, "allOf": [ { "properties": { "status": { "type": "integer", "enum": [ 404 ], "default": 404 }, "type": { "type": "string", "format": "uri", "enum": [ "epcisException:NoSuchNameException" ] } } }, { "$ref": "#/components/schemas/RFC7807ProblemResponseBody" } ] } }, "application/problem+xml": { "schema": { "example": { "type": "epcisException:NoSuchNameException", "title": "Resource not found", "status": 404 }, "allOf": [ { "properties": { "status": { "type": "integer", "enum": [ 404 ], "default": 404 }, "type": { "type": "string", "format": "uri", "enum": [ "epcisException:NoSuchNameException" ] } } }, { "$ref": "#/components/schemas/RFC7807ProblemResponseBody" } ] } } } }, "413CapturePayloadTooLarge": { "headers": { "GS1-EPCIS-Capture-Limit": { "$ref": "#/components/headers/GS1-EPCIS-Capture-Limit" }, "GS1-EPCIS-Capture-File-Size-Limit": { "$ref": "#/components/headers/GS1-EPCIS-Capture-File-Size-Limit" } }, "description": "The `POST` request is too large. It exceeds the limits set in `GS1-EPCIS-Capture-Limit` and/or\n`GS1-EPCIS-Capture-File-Size-Limit`.\n", "content": { "application/problem+json": { "schema": { "example": { "type": "epcisException:CaptureLimitExceededException", "title": "Capture Payload too large", "status": 413 }, "allOf": [ { "properties": { "status": { "type": "integer", "enum": [ 413 ], "default": 413 }, "type": { "type": "string", "format": "uri", "enum": [ "epcisException:CaptureLimitExceededException" ] } } }, { "$ref": "#/components/schemas/RFC7807ProblemResponseBody" } ] } }, "application/problem+xml": { "schema": { "example": { "type": "epcisException:CaptureLimitExceededException", "title": "Capture Payload too large", "status": 413 }, "allOf": [ { "properties": { "status": { "type": "integer", "enum": [ 413 ], "default": 413 }, "type": { "type": "string", "format": "uri", "enum": [ "epcisException:CaptureLimitExceededException" ] } } }, { "$ref": "#/components/schemas/RFC7807ProblemResponseBody" } ] } } } }, "413QueryScopeOrSize": { "description": "Query result is too large.", "content": { "application/problem+json": { "schema": { "example": { "type": "epcisException:QueryTooComplexException", "title": "Capture Payload too large", "status": 413 }, "allOf": [ { "properties": { "status": { "type": "integer", "enum": [ 413 ], "default": 413 }, "type": { "type": "string", "format": "uri", "enum": [ "epcisException:QueryTooLargeException", "epcisException:QueryTooComplexException" ] } } }, { "$ref": "#/components/schemas/RFC7807ProblemResponseBody" } ] } }, "application/problem+xml": { "schema": { "example": { "type": "epcisException:QueryTooComplexException", "title": "Capture Payload too large", "status": 413 }, "allOf": [ { "properties": { "status": { "type": "integer", "enum": [ 413 ], "default": 413 }, "type": { "type": "string", "format": "uri", "enum": [ "epcisException:QueryTooLargeException", "epcisException:QueryTooComplexException" ] } } }, { "$ref": "#/components/schemas/RFC7807ProblemResponseBody" } ] } } } }, "414URLTooLong": { "description": "URL is too long. This is usually a problem with large EPCIS queries in the URL.", "content": { "application/problem+json": { "schema": { "example": { "type": "epcisException:URITooLongException", "title": "URI Too Long", "status": 414 }, "allOf": [ { "properties": { "status": { "type": "integer", "enum": [ 414 ], "default": 414 }, "type": { "type": "string", "format": "uri", "enum": [ "epcisException:URITooLongException" ] } } }, { "$ref": "#/components/schemas/RFC7807ProblemResponseBody" } ] } }, "application/problem+xml": { "schema": { "example": { "type": "epcisException:URITooLongException", "title": "URI Too Long", "status": 414 }, "allOf": [ { "properties": { "status": { "type": "integer", "enum": [ 414 ], "default": 414 }, "type": { "type": "string", "format": "uri", "enum": [ "epcisException:URITooLongException" ] } } }, { "$ref": "#/components/schemas/RFC7807ProblemResponseBody" } ] } } } }, "406NotAcceptable": { "description": "The server cannot return the response as requested. \n", "content": { "application/problem+json": { "schema": { "example": { "type": "epcisException:NotAcceptableException", "title": "Conflicting request and response headers", "status": 406 }, "allOf": [ { "properties": { "status": { "type": "integer", "enum": [ 406 ], "default": 406 }, "type": { "type": "string", "format": "uri", "enum": [ "epcisException:NotAcceptableException" ] } } }, { "$ref": "#/components/schemas/RFC7807ProblemResponseBody" } ] } }, "application/problem+xml": { "schema": { "example": { "type": "epcisException:NotAcceptableException", "title": "Conflicting request and response headers", "status": 406 }, "allOf": [ { "properties": { "status": { "type": "integer", "enum": [ 406 ], "default": 406 }, "type": { "type": "string", "format": "uri", "enum": [ "epcisException:NotAcceptableException" ] } } }, { "$ref": "#/components/schemas/RFC7807ProblemResponseBody" } ] } } } }, "409ResourceAlreadyExistsException": { "description": "A resource with the provided identifier already exists. E.g., a named query or an event.\n", "content": { "application/problem+json": { "schema": { "example": { "type": "epcisException:ResourceAlreadyExistsException", "title": "A resource with the provided identifier already exists.", "status": 409 }, "allOf": [ { "properties": { "status": { "type": "integer", "enum": [ 406 ], "default": 406 }, "type": { "type": "string", "format": "uri", "enum": [ "epcisException:ResourceAlreadyExistsException" ] } } }, { "$ref": "#/components/schemas/RFC7807ProblemResponseBody" } ] } }, "application/problem+xml": { "schema": { "example": { "type": "epcisException:ResourceAlreadyExistsException", "title": "A resource with the provided identifier already exists.", "status": 409 }, "allOf": [ { "properties": { "status": { "type": "integer", "enum": [ 406 ], "default": 406 }, "type": { "type": "string", "format": "uri", "enum": [ "epcisException:ResourceAlreadyExistsException" ] } } }, { "$ref": "#/components/schemas/RFC7807ProblemResponseBody" } ] } } } }, "415UnsupportedMediaType": { "description": "The client sent data in a format that is not supported by the server.\n", "content": { "application/problem+json": { "schema": { "example": { "type": "epcisException:UnsupportedMediaTypeException", "title": "Unsupported Media Type", "status": 415 }, "allOf": [ { "properties": { "status": { "type": "integer", "enum": [ 415 ], "default": 415 }, "type": { "type": "string", "format": "uri", "enum": [ "epcisException:UnsupportedMediaTypeException" ] } } }, { "$ref": "#/components/schemas/RFC7807ProblemResponseBody" } ] } }, "application/problem+xml": { "schema": { "example": { "type": "epcisException:UnsupportedMediaTypeException", "title": "Unsupported Media Type", "status": 415 }, "allOf": [ { "properties": { "status": { "type": "integer", "enum": [ 415 ], "default": 415 }, "type": { "type": "string", "format": "uri", "enum": [ "epcisException:IUnsupportedMediaTypeException" ] } } }, { "$ref": "#/components/schemas/RFC7807ProblemResponseBody" } ] } } } }, "500ImplementationException": { "description": "An error occurred on the backend.", "content": { "application/problem+json": { "schema": { "example": { "type": "epcisException:ImplementationException", "title": "A server-side error occurred", "status": 500 }, "allOf": [ { "properties": { "status": { "type": "integer", "enum": [ 500 ], "default": 500 }, "type": { "type": "string", "format": "uri", "enum": [ "epcisException:ImplementationException" ] } } }, { "$ref": "#/components/schemas/RFC7807ProblemResponseBody" } ] } }, "application/problem+xml": { "schema": { "example": { "type": "epcisException:ImplementationException", "title": "A server-side error occurred", "status": 500 }, "allOf": [ { "properties": { "status": { "type": "integer", "enum": [ 500 ], "default": 500 }, "type": { "type": "string", "format": "uri", "enum": [ "epcisException:ImplementationException" ] } } }, { "$ref": "#/components/schemas/RFC7807ProblemResponseBody" } ] } } } }, "501NotImplemented": { "description": "Functionality not supported by server.", "content": { "application/problem+json": { "schema": { "example": { "type": "epcisException:ImplementationException", "title": "Functionality not supported by server", "status": 501 }, "allOf": [ { "properties": { "status": { "type": "integer", "enum": [ 501 ], "default": 501 }, "type": { "type": "string", "format": "uri", "enum": [ "epcisException:ImplementationException" ] } } }, { "$ref": "#/components/schemas/RFC7807ProblemResponseBody" } ] } }, "application/problem+xml": { "schema": { "example": { "type": "epcisException:ImplementationException", "title": "Functionality not supported by server", "status": 501 }, "allOf": [ { "properties": { "status": { "type": "integer", "enum": [ 501 ], "default": 501 }, "type": { "type": "string", "format": "uri", "enum": [ "epcisException:ImplementationException" ] } } }, { "$ref": "#/components/schemas/RFC7807ProblemResponseBody" } ] } } } } }, "schemas": { "LDContext": { "description": "JSON-LD @context.", "anyOf": [ { "type": "array", "items": { "anyOf": [ { "type": "string", "format": "uri" }, { "type": "object" } ] } }, { "type": "string", "format": "uri" }, { "type": "object" } ] }, "Location": { "description": "Location header of a resource as a relative or absolute URL.", "type": "string", "minLength": 1, "example": "/events/urn:uuid:831c0292-4de1-430a-8255-2aca821abaab" }, "RFC7807ProblemResponseBody": { "description": "A response as specified in [RFC 7807](https://tools.ietf.org/html/rfc7807).", "type": "object", "required": [ "type", "title" ], "properties": { "type": { "type": "string", "format": "uri" }, "title": { "type": "string" }, "status": { "type": "integer" }, "detail": { "type": "string" }, "instance": { "type": "string", "format": "uri" } }, "xml": { "name": "EPCISException", "prefix": "epcis", "namespace": "urn:epcglobal:epcis:xsd:2" } }, "QueryDefinition": { "example": { "name": "UniqueQueryName", "query": { "eventType": [ "ObjectEvent" ], "EQ_bizStep": [ "shipping", "receiving" ] } }, "description": "Creating a new query with query body.\n", "type": "object", "required": [ "name", "query" ], "properties": { "name": { "type": "string" }, "query": { "$ref": "#/components/schemas/EPCISEventsQuery" } } }, "EPCISEventsQuery": { "type": "object", "description": "An EPCIS event query.", "example": { "eventType": [ "ObjectEvent" ], "EQ_bizStep": [ "shipping", "receiving" ] }, "externalDocs": { "url": "query-schema.json" }, "items": { "type": "object" } }, "subscriptionID": { "description": "The ID of a WebHook subscription.", "example": "df5a33e3-5aa3-4403-ae01-99b83234e27b", "type": "string" }, "dest": { "description": "Callback URL to receive EPCIS resources and errors.", "type": "string", "format": "uri", "example": "https://client.example.com/queryCallback" }, "QueryName": { "description": "Unique query name.", "type": "string", "example": "myQuery" }, "EPCISEvent": { "description": "EPCIS Event. It must validate against the normative \nEPCIS JSON Schema or EPCIS SHACL. \n", "oneOf": [ { "$ref": "#/components/schemas/ObjectEvent" }, { "$ref": "#/components/schemas/AggregationEvent" }, { "$ref": "#/components/schemas/TransactionEvent" }, { "$ref": "#/components/schemas/TransformationEvent" }, { "$ref": "#/components/schemas/AssociationEvent" }, { "$ref": "#/components/schemas/Extended-Event" } ] }, "CaptureJob": { "description": "When EPCIS events are added through the capture interface, the capture process can run asynchronously. If the payload\nis syntactically correct and the client is allowed to call `/capture`, the server returns a `202` HTTP response code. This\ndoes not guarantee successful storage of all EPCIS events. The capture job exposes the state of the capture job to the client.\nA capture job document has at least the following properties:\n- `running`: whether or not the capture job is still active.\n- `success`: whether or not at least one error occurred.\n- `captureErrorBehaviour`: GS1-Capture-Error-Behaviour header value provided with POST data to capture.\n- `errors` or `errorFile`: with the errors if `success` is `false`.\n### captureErrorBehaviour value is `rollback`\n| Capture job `running` | Capture job `success` | Capture job outcome |\n|:--------|:---------|:---------|\n| `true` | `true` | Still capturing EPCIS events. No errors occurred so far. |\n| `true` | `false` | At least one error occurred. Rollback is in progress. |\n| `false` | `true` | All EPCIS events are captured. |\n| `false` | `false` | All EPCIS events are rejected. |\n### captureErrorBehaviour value is `proceed`\n| Capture job `running` | Capture job `success` | Capture job outcome |\n|:--------|:---------|:---------|\n| `true` | `true` | Still capturing EPCIS events. No errors occurred so far. |\n| `true` | `false` | At least one error occurred but more EPCIS events are currently being captured. |\n| `false` | `true` | All EPCIS events were captured without an error. |\n| `false` | `false` | Some EPCIS events were captured but errors occurred. |\nIf `success` is `false`, check the `errors` or `errorFile` property for details.\n", "example": { "captureID": "id9261379075", "createdAt": "2022-01-21T17:32:28Z", "finishedAt": "2022-01-21T17:45:28Z", "running": false, "success": true, "captureErrorBehaviour": "rollback", "errors": [] }, "type": "object", "allOf": [ { "properties": { "captureID": { "example": "id9261379075", "description": "A unique value identifying a capture job generated by the server.", "type": "string", "xml": { "attribute": true } }, "running": { "description": "If the job is still running, the state is `true`, otherwise `false`.\n", "type": "boolean", "example": true, "xml": { "attribute": true } }, "success": { "description": "If `success` is `false`, there was at least one error. Otherwise, `success` is `true`.\nIf the `GS1-Capture-Error-Behaviour` header is `rollback`, `success` being `false` aborts the capture\njob and rejects all EPCIS events related to the job.\nIf `GS1-Capture-Error-Behaviour` header is `proceed`, some EPCIS events might still be captured, even\nif `success` is `false`.\n", "type": "boolean", "example": false, "xml": { "attribute": true } }, "createdAt": { "description": "When the capture job started", "example": "2022-01-21T17:32:28Z", "type": "string", "format": "date-time" }, "finishedAt": { "description": "When the capture job finished executing", "example": "2022-01-21T17:45:28Z", "type": "string", "format": "date-time" }, "captureErrorBehaviour": { "description": "GS1-Capture-Error-Behaviour header value provided with POST data to capture", "example": "rollback", "type": "string", "enum": [ "rollback", "proceed" ] } } }, { "oneOf": [ { "properties": { "errors": { "description": "If the job was successful, the array is empty.\n", "default": [], "example": [], "type": "array", "items": { "$ref": "#/components/schemas/RFC7807ProblemResponseBody" } } } }, { "properties": { "errorFile": { "description": "Instead of returning errors in the `errors` property, the server can also write errors to a logfile,\nand share the URL with the client.\n", "example": "", "type": "string", "format": "uri" } } } ] } ], "xml": { "name": "EPCISCaptureJob", "prefix": "epcis", "namespace": "urn:epcglobal:epcis:xsd:2" } }, "EPCISXMLQueryDocument": { "description": "A collection of EPCIS resources.", "type": "object", "xml": { "name": "EPCISQueryDocument", "prefix": "epcis", "namespace": "urn:epcglobal:epcis-query:xsd:2" }, "externalDocs": { "description": "An EPCIS document that must be validated with the [XML Schema](../XSD/EPCglobal-epcis-query-2_0.xsd)\n", "url": "../XSD/EPCglobal-epcis-query-2_0.xsd" } }, "Link": { "description": "A pagination header link. This header works together with the `perPage` and `nextPageToken` query string\nparameters.\n", "type": "string", "format": "uri", "example": "; rel=\"next\"" }, "PerPage": { "description": "This parameter helps to control the amount of data returned to the client through pagination.\nIn the case of EPCIS events, `perPage` specifies the maximum number of events in a response to the client.\nIt does not mandate that the server reaches this limit. For example, if the server sees that some EPCIS events are very\nlarge, the server can decide to return fewer events to avoid creating an error because the response body is too\nlarge.\nAs long as there are more resources to retrieve, the `Link` header contains the URL of the next page and\nthe attribute `rel=\"next\"`. The last page is indicated by the absence of the `rel=\"next\"`. Depending on the\nimplementation, there can be a global upper limit for the `perPage` value that the client cannot override,\nwhich should be stated in the documentation.\n", "type": "integer", "default": 30 }, "NextPageToken": { "description": "Parameter that points to the next list of results when requesting a list of events that is larger than the value\nspecified with the `perPage` parameter. Some technologies refer to this as scrolling.\nA `nextPageToken` may be invalidated through timeout. It is up to the specific implementation to provide\nthe mechanisms for invalidating tokens.\n", "type": "string", "example": "3A15506738749783AU6D7DENAKwM2gQRRwGrataeq" }, "Upgrade": { "type": "string", "description": "The `Upgrade` and `Connection` headers are needed to open a Websocket for queries.", "default": "websocket", "example": "websocket" }, "Connection": { "example": "Upgrade", "description": "The `Upgrade` and `Connection` headers are needed to open a Websocket for queries.", "type": "string", "default": "upgrade" }, "EventTypeCollection": { "type": "object", "description": "Event type item list", "example": { "@context": [ "https://gs1.github.io/EPCIS/epcis-context.jsonld", { "ex": "https://example.org/myCustomEventTypes/" } ], "type": "Collection", "member": [ "AggregationEvent", "AssociationEvent", "ObjectEvent", "TransactionEvent", "TransformationEvent", "ex:aCustomEventType" ] }, "required": [ "@context", "type", "member" ], "properties": { "@context": { "$ref": "#/components/schemas/LDContext" }, "type": { "type": "string", "enum": [ "Collection" ] }, "member": { "type": "array", "items": { "$ref": "#/components/schemas/EPCISEventTypes" }, "uniqueItems": true } } }, "EPCISEventTypes": { "description": "The five types of EPCIS events or an extended event denoted by a URI.", "example": [ "AggregationEvent", "AssociationEvent", "ObjectEvent", "TransactionEvent", "TransformationEvent" ], "anyOf": [ { "type": "string", "enum": [ "AggregationEvent", "AssociationEvent", "ObjectEvent", "TransactionEvent", "TransformationEvent" ] }, { "type": "string", "format": "uri" } ] }, "TopLevelResources": { "type": "string", "description": "The seven top level resources of an EPCIS.", "example": [ "events", "eventTypes", "epcs", "bizSteps", "bizLocations", "readPoints", "dispositions", "capture", "queries" ], "enum": [ "events", "eventTypes", "epcs", "bizSteps", "bizLocations", "readPoints", "dispositions", "capture", "queries" ] }, "TopLevelResourceCollection": { "type": "object", "required": [ "@context", "type", "member" ], "properties": { "@context": { "$ref": "#/components/schemas/LDContext" }, "type": { "type": "string", "enum": [ "Collection" ] }, "member": { "type": "array", "items": { "$ref": "#/components/schemas/TopLevelResources" }, "uniqueItems": true, "minItems": 9 } } }, "BizStepCollection": { "example": { "@context": [ "https://gs1.github.io/EPCIS/epcis-context.jsonld", { "ex": "https://example.org/myCustomBizSteps/" } ], "type": "Collection", "member": [ "accepting", "arriving", "assembling", "collecting", "commissioning", "consigning", "creating_class_instance", "cycle_counting", "decommissioning", "departing", "destroying", "disassembling", "dispensing", "encoding", "entering_exiting", "holding", "inspecting", "installing", "killing", "loading", "other", "packing", "picking", "receiving", "removing", "repackaging", "repairing", "replacing", "reserving", "retail_selling", "sampling", "sensor_reporting", "shipping", "staging_outbound", "stock_taking", "stocking", "storing", "transporting", "unloading", "unpacking", "void_shipping", "ex:aCustomBizStep" ] }, "type": "object", "required": [ "@context", "type", "member" ], "properties": { "@context": { "$ref": "#/components/schemas/LDContext" }, "type": { "type": "string", "enum": [ "Collection" ] }, "member": { "type": "array", "items": { "$ref": "#/components/schemas/bizStep" }, "uniqueItems": true } } }, "DispositionCollection": { "example": { "@context": [ "https://gs1.github.io/EPCIS/epcis-context.jsonld", { "ex": "https://example.org/myCustomDispositions/" } ], "type": "Collection", "member": [ "active", "available", "completeness_inferred", "completeness_verified", "conformant", "container_closed", "container_open", "damaged", "destroyed", "dispensed", "disposed", "encoded", "expired", "in_progress", "in_transit", "inactive", "mismatch_class", "mismatch_instance", "mismatch_quantity", "needs_replacement", "no_pedigree_match", "non_conformant", "non_sellable_other", "partially_dispensed", "recalled", "reserved", "retail_sold", "returned", "sellable_accessible", "sellable_not_accessible", "stolen", "unavailable", "unknown", "ex:aCustomDisposition" ] }, "type": "object", "required": [ "@context", "type", "member" ], "properties": { "@context": { "$ref": "#/components/schemas/LDContext" }, "type": { "type": "string", "enum": [ "Collection" ] }, "member": { "type": "array", "items": { "$ref": "#/components/schemas/disposition" }, "uniqueItems": true } } }, "UriCollection": { "description": "A list of items which are URIs such as EPCs or business locations.", "type": "object", "required": [ "@context", "type", "member" ], "properties": { "@context": { "$ref": "#/components/schemas/LDContext" }, "type": { "type": "string", "enum": [ "Collection" ] }, "member": { "type": "array", "items": { "type": "string", "format": "uri" }, "uniqueItems": true } } }, "ResourceCollection": { "description": "A collection of sub-resources that includes at least the `events` one (for HATEOAS discovery).", "type": "object", "required": [ "@context", "type", "member" ], "properties": { "@context": { "$ref": "#/components/schemas/LDContext" }, "type": { "type": "string", "enum": [ "Collection" ] }, "member": { "type": "array", "items": { "type": "string", "minLength": 1, "enum": [ "events" ] }, "uniqueItems": true, "minItems": 1 } } }, "AbstractQuerySubscription": { "example": { "dest": "https://client.example.com/queryCallback", "signatureToken": "13df38d8275b13f05704629e5f1cf3d45d6132d5" }, "type": "object", "description": "This schema contains shared features of EPCIS query subscriptions. If the schema is used in a response, the\n`secret` should not be fully revealed.\n", "required": [ "dest", "secret" ], "properties": { "dest": { "$ref": "#/components/schemas/dest" }, "signatureToken": { "example": "13df38d8275b13f05704629e5f1cf3d45d6132d5", "type": "string", "description": "Secret generated by the client for the server." }, "initialRecordTime": { "$ref": "#/components/schemas/GS1-Query-InitialRecordTime" } } }, "AbstractQuerySubscriptionResponse": { "example": { "dest": "https://client.example.com/queryCallback", "subscriptionID": "df5a33e3-5aa3-4403-ae01-99b83234e27b", "stream": true, "createdAt": "2017-08-21T17:32:28Z", "lastNotifiedAt": "2022-01-08T06:51:21.889Z" }, "type": "object", "description": "This schema contains shared features of EPCIS query subscriptions response.\n", "required": [ "dest", "subscriptionID", "createdAt" ], "properties": { "dest": { "$ref": "#/components/schemas/dest" }, "subscriptionID": { "$ref": "#/components/schemas/subscriptionID" }, "createdAt": { "example": "2022-02-27T17:32:28Z", "type": "string", "format": "date-time" }, "lastNotifiedAt": { "example": "2022-07-09T17:32:28Z", "type": "string", "format": "date-time", "description": "The last time the target client was notified and responded with a 200 OK." }, "initialRecordTime": { "$ref": "#/components/schemas/GS1-Query-InitialRecordTime" }, "minRecordTime": { "$ref": "#/components/schemas/GS1-Query-Min-Record-Time" }, "epcFormat": { "$ref": "#/components/schemas/GS1-EPC-Format" } } }, "QueryStreamSubscription": { "description": "If no query schedule is specified, the client must explicitly set `stream` to `true`. This restriction is to\nprevent clients from accidentally subscribing to EPCIS event streams.\nExample:\n```\nPOST /queries/MyQuery/subscriptions\n{\n \"dest\": \"https://client.example.com/queryCallback\",\n \"signatureToken\": \"13df38d8275b13f05704629e5f1cf3d45d6132d5\",\n \"stream\": true\n}\n```\n", "type": "object", "example": { "stream": true }, "required": [ "stream" ], "properties": { "stream": { "$ref": "#/components/schemas/GS1-Query-Stream" } } }, "QueryScheduleSubscription": { "description": "A scheduled query subscription is a time-based query execution scheduler. EPCIS 2.0 scheduled queries are scheduled\nin the same manner as cron jobs.\nFor example, this query subscription is scheduled to trigger every morning at 1.05am. By setting\n`reportIfEmpty` to `true`, the client's callback URL will be called even if there are no new events that match\nthe query.\n```\nPOST /queries/MyQuery/subscriptions\n{\n \"dest\": \"https://client.example.com/queryCallback\",\n \"signatureToken\": \"13df38d8275b13f05704629e5f1cf3d45d6132d5\",\n \"reportIfEmpty\": true,\n \"schedule\": {\n \"hour\":\"1\",\n \"minute\": \"5\"\n }\n}\n```\n", "type": "object", "example": { "schedule": { "hour": "1", "minute": "5" } }, "required": [ "schedule" ], "properties": { "reportIfEmpty": { "$ref": "#/components/schemas/GS1-Query-ReportIfEmpty" }, "schedule": { "type": "object", "properties": { "second": { "$ref": "#/components/schemas/GS1-Query-Second" }, "minute": { "$ref": "#/components/schemas/GS1-Query-Minute" }, "hour": { "$ref": "#/components/schemas/GS1-Query-Hour" }, "dayOfMonth": { "$ref": "#/components/schemas/GS1-Query-DayOfMonth" }, "month": { "$ref": "#/components/schemas/GS1-Query-Month" }, "dayOfWeek": { "$ref": "#/components/schemas/GS1-Query-DayOfWeek" } } } } }, "GS1-Signature": { "description": "Used to sign events sent by the repository to subscribers. The choice of signature type is implementation specific but examples would be using HMAC with SHA-256 directly or a wrapper supporting various symmetric or asymetric \ncryptographic algorithms such as Json Web Signature (JWS). \n", "type": "string", "example": "eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ" }, "GS1-Query-InitialRecordTime": { "description": "Used to specify a time to constrain what resources are considered when processing a query\nsubscription. This value only applies the first time a subscriber receives events. If omitted, the default\nvalue is the current time.\n", "type": "string", "format": "date-time", "example": "2020-04-04T20:33:31.116-06:00" }, "GS1-Query-Min-Record-Time": { "example": "2020-04-04T20:33:31.116-06:00", "description": "In the context of an active query subscription, its value is set initially to \n`initialRecordTime` and then updated to the most recent execution timestamp \nfor the standing query.\n", "type": "string", "format": "date-time" }, "GS1-Query-ReportIfEmpty": { "example": false, "type": "boolean", "default": false, "description": "Flag to specify subscribed clients should be notified if the query result is empty." }, "GS1-Query-Second": { "description": "Specifies that the query time must have a matching seconds value. The range for this parameter is 0\nthrough 59, inclusive.\n", "example": 0, "type": "string", "pattern": "(\\g,)*\\g|(?(\\g|\\g))|(?(\\[\\g\\-\\g\\]))|(?([0-59]))" }, "GS1-Query-Minute": { "description": "Specifies that the query time must have a matching minute value. The range for this parameter is 0 through 59,\ninclusive.\n", "example": 5, "type": "string", "pattern": "(\\g,)*\\g|(?(\\g|\\g))|(?(\\[\\g\\-\\g\\]))|(?([0-59]))" }, "GS1-Query-Hour": { "description": "Specifies that the query time must have a matching hour value. The range for this parameter is 0 through 23,\ninclusive, with 0 denoting the hour that begins at midnight, and 23 denoting the hour that ends at midnight.\n", "example": 1, "type": "string", "pattern": "(\\g,)*\\g|(?(\\g|\\g))|(?(\\[\\g\\-\\g\\]))|(?([0-23]))" }, "GS1-Query-DayOfMonth": { "description": "Specifies that the query time must have a matching day of month value. The range for this parameter is 1 through\n31, inclusive.\n", "example": 1, "type": "string", "pattern": "(\\g,)*\\g|(?(\\g|\\g))|(?(\\[\\g\\-\\g\\]))|(?([1-31]))" }, "GS1-Query-Month": { "description": "Specifies that the query time must have a matching month value. The range for this parameter is 1 through 12,\ninclusive.\n", "example": 1, "type": "string", "pattern": "(\\g,)*\\g|(?(\\g|\\g))|(?(\\[\\g\\-\\g\\]))|(?([1-12]))" }, "GS1-Query-DayOfWeek": { "description": "Specifies that the query time must have a matching day of week value. The range for this parameter is 1 through\n7, inclusive, with 1 denoting Monday, 2 denoting Tuesday, and so forth, up to 7 denoting Sunday.\n", "example": 1, "type": "string", "pattern": "(\\g,)*\\g|(?(\\g|\\g))|(?(\\[\\g\\-\\g\\]))|(?([1-7]))" }, "GS1-Query-Stream": { "type": "boolean", "description": "If no schedule is specified and `stream` is `true`, the standing subscription SHALL report immediately whenever a\ncaptured EPCIS event matches the query criteria.\n", "default": true, "enum": [ true ] }, "version": { "type": "string", "pattern": "^\\d+(\\.\\d+)*$" }, "GS1-EPCIS-Version": { "allOf": [ { "example": "2.0.0" }, { "$ref": "#/components/schemas/version" } ] }, "GS1-EPCIS-Min": { "allOf": [ { "example": "1.0.0" }, { "$ref": "#/components/schemas/version" } ] }, "GS1-EPCIS-Max": { "allOf": [ { "example": "2.0.0" }, { "$ref": "#/components/schemas/version" } ] }, "GS1-CBV-Version": { "allOf": [ { "example": "2.0.0" }, { "$ref": "#/components/schemas/version" } ] }, "GS1-CBV-Min": { "allOf": [ { "example": "1.2.0" }, { "$ref": "#/components/schemas/version" } ] }, "GS1-CBV-Max": { "allOf": [ { "example": "2.0.0" }, { "$ref": "#/components/schemas/version" } ] }, "GS1-EPC-Format": { "example": "Always_GS1_Digital_Link", "type": "string", "enum": [ "No_Preference", "Always_GS1_Digital_Link", "Always_EPC_URN", "Never_Translates" ] }, "GS1-CBV-XML-Format": { "example": "Always_Web_URI", "type": "string", "enum": [ "No_Preference", "Always_Web_URI", "Always_URN", "Never_Translates" ] }, "GS1-Extensions": { "example": "example-epc-ext=http://org1.example.com/epcis/,\nexample-epc-ext2=http://vendor.example.com/epcis/\n", "type": "object" }, "GS1-Vendor-Version": { "example": "example-version-1.0", "anyOf": [ { "type": "string" }, { "type": "object" } ] }, "GS1-EPCIS-Capture-Limit": { "example": 500, "type": "integer", "minimum": 1 }, "GS1-EPCIS-Capture-File-Size-Limit": { "example": 1024, "type": "integer", "minimum": 1 }, "GS1-Capture-Error-Behaviour": { "example": "rollback", "type": "string", "default": "rollback", "enum": [ "rollback", "proceed", "all" ] }, "GS1-Next-Page-Token-Expires": { "example": "2017-07-21T17:32:28Z", "type": "string", "format": "date-time" }, "vocabulary": { "type": "object", "properties": { "type": { "$ref": "#/components/schemas/uri" }, "vocabularyElementList": { "type": "array", "items": { "$ref": "#/components/schemas/vocabularyElement" } } }, "required": [ "type" ] }, "vocabularyElement": { "type": "object", "properties": { "id": { "$ref": "#/components/schemas/uri" }, "attributes": { "type": "array", "items": { "$ref": "#/components/schemas/attribute" } }, "children": { "type": "array", "items": { "$ref": "#/components/schemas/uri" } } }, "required": [ "id" ] }, "attribute": { "type": "object", "properties": { "id": { "$ref": "#/components/schemas/uri" }, "attribute": { "anyOf": [ { "type": "number" }, { "type": "string" }, { "type": "object" } ] } }, "required": [ "id" ] }, "eventList": { "type": "array", "items": { "$ref": "#/components/schemas/EPCISEvent" } }, "vocabularyList": { "type": "array", "items": { "$ref": "#/components/schemas/vocabulary" } }, "resultsBody": { "type": "object", "properties": { "eventList": { "$ref": "#/components/schemas/eventList" }, "vocabularyList": { "$ref": "#/components/schemas/vocabularyList" } }, "required": [ "eventList" ] }, "queryResults": { "type": "object", "properties": { "queryName": { "type": "string" }, "subscriptionID": { "type": "string" }, "resultsBody": { "$ref": "#/components/schemas/resultsBody" } }, "required": [ "queryName", "resultsBody" ] }, "epcisQueryDocumentBody": { "type": "object", "properties": { "queryResults": { "$ref": "#/components/schemas/queryResults" } }, "required": [ "queryResults" ] }, "epcisHeader": { "type": "object", "properties": { "epcisMasterData": { "type": "object", "properties": { "vocabularyList": { "type": "array", "items": { "$ref": "#/components/schemas/vocabulary" } } } } } }, "epcisDocument": { "type": "object", "properties": { "id": { "$ref": "#/components/schemas/id" }, "type": { "type": "string", "enum": [ "EPCISDocument" ] }, "@context": { "$ref": "#/components/schemas/LDContext" }, "schemaVersion": { "$ref": "#/components/schemas/version" }, "creationDate": { "$ref": "#/components/schemas/time" }, "instanceIdentifier": { "type": "string" }, "sender": { "type": "string" }, "receiver": { "type": "string" }, "epcisHeader": { "$ref": "#/components/schemas/epcisHeader" }, "epcisBody": { "type": "object", "properties": { "eventList": { "$ref": "#/components/schemas/eventList" } }, "required": [ "eventList" ] } }, "required": [ "@context", "type", "schemaVersion", "creationDate", "epcisBody" ] }, "epcisQueryDocument": { "type": "object", "properties": { "@context": { "$ref": "#/components/schemas/LDContext" }, "id": { "$ref": "#/components/schemas/id" }, "type": { "type": "string", "enum": [ "EPCISQueryDocument" ] }, "schemaVersion": { "$ref": "#/components/schemas/version" }, "creationDate": { "$ref": "#/components/schemas/time" }, "epcisBody": { "$ref": "#/components/schemas/epcisQueryDocumentBody" } }, "required": [ "@context", "type", "epcisBody" ] }, "EPCIS-Document": { "oneOf": [ { "$ref": "#/components/schemas/epcisDocument" }, { "$ref": "#/components/schemas/epcisQueryDocument" } ] }, "uri": { "type": "string", "format": "uri" }, "time": { "type": "string", "format": "date-time" }, "decimal": { "type": "number" }, "boolean": { "type": "boolean" }, "hexBinary": { "type": "string", "pattern": "^[A-Fa-f0-9]+$" }, "string": { "type": "string" }, "action": { "type": "string", "enum": [ "OBSERVE", "ADD", "DELETE" ] }, "persistentDisposition": { "allOf": [ { "type": "object", "properties": { "set": { "type": "array", "items": { "$ref": "#/components/schemas/disposition" }, "minItems": 1, "uniqueItems": true }, "unset": { "type": "array", "items": { "$ref": "#/components/schemas/disposition" }, "minItems": 1, "uniqueItems": true } }, "additionalProperties": false }, { "anyOf": [ { "type": "object", "required": [ "set" ] }, { "type": "object", "required": [ "unset" ] } ] } ] }, "epcList": { "type": "array", "items": { "$ref": "#/components/schemas/uri" }, "uniqueItems": true }, "quantityList": { "type": "array", "items": { "$ref": "#/components/schemas/quantityElement" } }, "uom": { "type": "string", "pattern": "^[A-Z0-9]{2,3}$" }, "eventID": { "$ref": "#/components/schemas/uri" }, "certificationInfo": { "anyOf": [ { "type": "array", "items": { "$ref": "#/components/schemas/uri" } }, { "$ref": "#/components/schemas/uri" } ] }, "errorDeclaration": { "type": "object", "properties": { "declarationTime": { "$ref": "#/components/schemas/time" }, "reason": { "$ref": "#/components/schemas/error-reason" }, "correctiveEventIDs": { "type": "array", "items": { "$ref": "#/components/schemas/eventID" } } }, "required": [ "declarationTime" ] }, "quantityElement": { "type": "object", "properties": { "epcClass": { "$ref": "#/components/schemas/uri" }, "quantity": { "$ref": "#/components/schemas/decimal" }, "uom": { "$ref": "#/components/schemas/uom" } }, "required": [ "epcClass" ], "additionalProperties": false }, "bizTransaction": { "type": "object", "properties": { "type": { "$ref": "#/components/schemas/bizTransaction-type" }, "bizTransaction": { "$ref": "#/components/schemas/uri" } }, "required": [ "bizTransaction" ], "additionalProperties": false }, "readPoint": { "type": "object", "properties": { "id": { "$ref": "#/components/schemas/uri" } }, "required": [ "id" ] }, "bizLocation": { "type": "object", "properties": { "id": { "$ref": "#/components/schemas/uri" } }, "required": [ "id" ] }, "source": { "type": "object", "properties": { "type": { "$ref": "#/components/schemas/source-dest-type" }, "source": { "$ref": "#/components/schemas/uri" } }, "required": [ "type", "source" ], "additionalProperties": false }, "destination": { "type": "object", "properties": { "type": { "$ref": "#/components/schemas/source-dest-type" }, "destination": { "$ref": "#/components/schemas/uri" } }, "required": [ "type", "destination" ], "additionalProperties": false }, "sensorElement": { "type": "object", "properties": { "sensorMetadata": { "$ref": "#/components/schemas/sensorMetadata" }, "sensorReport": { "$ref": "#/components/schemas/sensorReportList" } }, "required": [ "sensorReport" ] }, "sensorReportList": { "type": "array", "items": { "$ref": "#/components/schemas/sensorReport" }, "minItems": 1 }, "sensorReport": { "type": "object", "properties": { "type": { "$ref": "#/components/schemas/measurementType" }, "exception": { "$ref": "#/components/schemas/sensorAlertType" }, "deviceID": { "$ref": "#/components/schemas/uri" }, "deviceMetadata": { "$ref": "#/components/schemas/uri" }, "rawData": { "$ref": "#/components/schemas/uri" }, "dataProcessingMethod": { "$ref": "#/components/schemas/uri" }, "bizRules": { "$ref": "#/components/schemas/uri" }, "time": { "$ref": "#/components/schemas/time" }, "microorganism": { "$ref": "#/components/schemas/uri" }, "chemicalSubstance": { "$ref": "#/components/schemas/uri" }, "coordinateReferenceSystem": { "$ref": "#/components/schemas/uri" }, "value": { "$ref": "#/components/schemas/decimal" }, "component": { "$ref": "#/components/schemas/component" }, "stringValue": { "$ref": "#/components/schemas/string" }, "booleanValue": { "$ref": "#/components/schemas/boolean" }, "hexBinaryValue": { "$ref": "#/components/schemas/hexBinary" }, "uriValue": { "$ref": "#/components/schemas/uri" }, "minValue": { "$ref": "#/components/schemas/decimal" }, "maxValue": { "$ref": "#/components/schemas/decimal" }, "meanValue": { "$ref": "#/components/schemas/decimal" }, "sDev": { "$ref": "#/components/schemas/decimal" }, "percRank": { "$ref": "#/components/schemas/decimal" }, "percValue": { "$ref": "#/components/schemas/decimal" }, "uom": { "$ref": "#/components/schemas/string" } }, "required": [ "type" ] }, "sensorMetadata": { "type": "object", "properties": { "time": { "$ref": "#/components/schemas/time" }, "deviceID": { "$ref": "#/components/schemas/uri" }, "deviceMetadata": { "$ref": "#/components/schemas/uri" }, "rawData": { "$ref": "#/components/schemas/uri" }, "startTime": { "$ref": "#/components/schemas/time" }, "endTime": { "$ref": "#/components/schemas/time" }, "dataProcessingMethod": { "$ref": "#/components/schemas/uri" }, "bizRules": { "$ref": "#/components/schemas/uri" } } }, "ilmd": { "type": "object" }, "Event": { "type": "object", "properties": { "@context": { "$ref": "#/components/schemas/LDContext" }, "eventTime": { "$ref": "#/components/schemas/time" }, "recordTime": { "$ref": "#/components/schemas/time" }, "eventTimeZoneOffset": { "type": "string", "pattern": "^([+]|[-])((0[0-9]|1[0-3]):([0-5][0-9])|14:00)$" }, "eventID": { "$ref": "#/components/schemas/eventID" }, "certificationInfo": { "$ref": "#/components/schemas/certificationInfo" }, "errorDeclaration": { "$ref": "#/components/schemas/errorDeclaration" } }, "required": [ "eventTime", "eventTimeZoneOffset" ] }, "common-event-properties": { "anyOf": [ { "type": "string", "enum": [ "@context", "type", "eventTime", "recordTime", "eventTimeZoneOffset", "eventID", "certificationInfo", "errorDeclaration" ] }, { "$ref": "#/components/schemas/vocab-uri" } ] }, "Extended-Event": { "allOf": [ { "$ref": "#/components/schemas/Event" }, { "type": "object", "properties": { "type": { "$ref": "#/components/schemas/vocab-uri" } }, "required": [ "type" ] } ] }, "disposition": { "anyOf": [ { "$ref": "#/components/schemas/vocab-other-uri" }, { "type": "string", "enum": [ "active", "container_closed", "damaged", "destroyed", "dispensed", "disposed", "encoded", "expired", "in_progress", "in_transit", "inactive", "no_pedigree_match", "non_sellable_other", "partially_dispensed", "recalled", "reserved", "retail_sold", "returned", "sellable_accessible", "sellable_not_accessible", "stolen", "unknown", "available", "completeness_verified", "completeness_inferred", "conformant", "container_open", "mismatch_instance", "mismatch_class", "mismatch_quantity", "needs_replacement", "non_conformant", "unavailable" ] } ] }, "vocab-uri": { "type": "string", "format": "uri" }, "vocab-other-uri": { "type": "string", "format": "uri", "pattern": "^(?!(urn:epcglobal:cbv|https?:\\/\\/ns\\.gs1\\.org/cbv\\/))" }, "vocab-nonGS1WebVoc-uri": { "type": "string", "format": "uri", "pattern": "^(?!(https?:\\/\\/gs1\\.org\\/voc\\/|https?:\\/\\/www\\.gs1\\.org\\/voc\\/))" }, "required-ld-context": { "type": "object", "required": [ "@context" ] }, "id": { "type": "string", "format": "uri" }, "error-reason": { "anyOf": [ { "$ref": "#/components/schemas/vocab-other-uri" }, { "type": "string", "enum": [ "did_not_occur", "incorrect_data" ] } ] }, "bizTransaction-type": { "anyOf": [ { "$ref": "#/components/schemas/vocab-other-uri" }, { "type": "string", "enum": [ "bol", "cert", "desadv", "inv", "pedigree", "po", "poc", "prodorder", "recadv", "rma", "testprd", "testres", "upevt" ] } ] }, "source-dest-type": { "anyOf": [ { "$ref": "#/components/schemas/vocab-other-uri" }, { "type": "string", "enum": [ "owning_party", "possessing_party", "location" ] } ] }, "measurementType": { "anyOf": [ { "$ref": "#/components/schemas/vocab-nonGS1WebVoc-uri" }, { "type": "string", "enum": [ "AbsoluteHumidity", "AbsorbedDose", "AbsorbedDoseRate", "Acceleration", "Radioactivity", "Altitude", "AmountOfSubstance", "AmountOfSubstancePerUnitVolume", "Angle", "AngularAcceleration", "AngularMomentum", "AngularVelocity", "Area", "Capacitance", "Conductance", "Conductivity", "Count", "Density", "Dimensionless", "DoseEquivalent", "DoseEquivalentRate", "DynamicViscosity", "ElectricCharge", "ElectricCurrent", "ElectricCurrentDensity", "ElectricFieldStrength", "Energy", "Exposure", "Force", "Frequency", "Illuminance", "Inductance", "Irradiance", "KinematicViscosity", "Length", "LinearMomentum", "Luminance", "LuminousFlux", "LuminousIntensity", "MagneticFlux", "MagneticFluxDensity", "MagneticVectorPotential", "Mass", "MassConcentration", "MassFlowRate", "MassPerAreaTime", "MemoryCapacity", "MolalityOfSolute", "MolarEnergy", "MolarMass", "MolarVolume", "Power", "Pressure", "RadiantFlux", "RadiantIntensity", "RelativeHumidity", "Resistance", "Resistivity", "SolidAngle", "SpecificVolume", "Speed", "SurfaceDensity", "SurfaceTension", "Temperature", "Time", "Torque", "Voltage", "Volume", "VolumeFlowRate", "VolumeFraction", "VolumetricFlux", "Wavenumber" ] } ] }, "sensorAlertType": { "anyOf": [ { "$ref": "#/components/schemas/vocab-nonGS1WebVoc-uri" }, { "type": "string", "enum": [ "ALARM_CONDITION", "ERROR_CONDITION" ] } ] }, "component": { "anyOf": [ { "$ref": "#/components/schemas/vocab-other-uri" }, { "type": "string", "enum": [ "x", "y", "z", "axial_distance", "azimuth", "height", "spherical_radius", "polar_angle", "elevation_angle", "easting", "northing", "latitude", "longitude", "altitude" ] } ] }, "ObjectEvent": { "allOf": [ { "$ref": "#/components/schemas/Event" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "ObjectEvent" ] }, "epcList": { "$ref": "#/components/schemas/epcList" }, "quantityList": { "$ref": "#/components/schemas/quantityList" }, "action": { "$ref": "#/components/schemas/action" }, "bizStep": { "$ref": "#/components/schemas/bizStep" }, "disposition": { "$ref": "#/components/schemas/disposition" }, "persistentDisposition": { "$ref": "#/components/schemas/persistentDisposition" }, "readPoint": { "$ref": "#/components/schemas/readPoint" }, "bizLocation": { "$ref": "#/components/schemas/bizLocation" }, "bizTransactionList": { "type": "array", "items": { "$ref": "#/components/schemas/bizTransaction" } }, "sourceList": { "type": "array", "items": { "$ref": "#/components/schemas/source" } }, "destinationList": { "type": "array", "items": { "$ref": "#/components/schemas/destination" } }, "sensorElementList": { "type": "array", "items": { "$ref": "#/components/schemas/sensorElement" } }, "ilmd": { "$ref": "#/components/schemas/ilmd" } }, "required": [ "type", "action" ] }, { "anyOf": [ { "type": "object", "properties": { "epcList": { "type": "array", "minItems": 0, "items": { "$ref": "#/components/schemas/id" } } }, "required": [ "epcList" ] }, { "type": "object", "properties": { "quantityList": { "type": "array", "minItems": 1, "items": { "$ref": "#/components/schemas/quantityElement" } } }, "required": [ "quantityList" ] }, { "allOf": [ { "type": "object", "properties": { "sensorElementList": { "type": "array", "items": { "$ref": "#/components/schemas/sensorElement" }, "minItems": 1 } }, "required": [ "sensorElementList" ] }, { "type": "object", "properties": { "readPoint": { "$ref": "#/components/schemas/readPoint" } }, "required": [ "readPoint" ] } ] } ] }, { "anyOf": [ { "type": "object", "properties": { "ilmd": { "not": {} }, "action": { "type": "string", "pattern": "^OBSERVE$" } } }, { "type": "object", "properties": { "ilmd": { "not": {} }, "action": { "type": "string", "pattern": "^DELETE$" } } }, { "type": "object", "properties": { "action": { "type": "string", "pattern": "^ADD$" } } } ] } ] }, "bizStep": { "anyOf": [ { "$ref": "#/components/schemas/vocab-other-uri" }, { "type": "string", "enum": [ "accepting", "arriving", "assembling", "collecting", "commissioning", "consigning", "creating_class_instance", "cycle_counting", "decommissioning", "departing", "destroying", "disassembling", "dispensing", "encoding", "entering_exiting", "holding", "inspecting", "installing", "killing", "loading", "other", "packing", "picking", "receiving", "removing", "repackaging", "repairing", "replacing", "reserving", "retail_selling", "shipping", "staging_outbound", "stock_taking", "stocking", "storing", "transporting", "unloading", "unpacking", "void_shipping", "sensor_reporting", "sampling" ] } ] }, "AggregationEvent": { "allOf": [ { "$ref": "#/components/schemas/Event" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AggregationEvent" ] }, "parentID": { "$ref": "#/components/schemas/uri" }, "childEPCs": { "type": "array", "items": { "$ref": "#/components/schemas/uri" } }, "childQuantityList": { "type": "array", "items": { "$ref": "#/components/schemas/quantityElement" } }, "action": { "$ref": "#/components/schemas/action" }, "bizStep": { "$ref": "#/components/schemas/bizStep" }, "disposition": { "$ref": "#/components/schemas/disposition" }, "readPoint": { "$ref": "#/components/schemas/readPoint" }, "bizLocation": { "$ref": "#/components/schemas/bizLocation" }, "bizTransactionList": { "type": "array", "items": { "$ref": "#/components/schemas/bizTransaction" } }, "sourceList": { "type": "array", "items": { "$ref": "#/components/schemas/source" } }, "destinationList": { "type": "array", "items": { "$ref": "#/components/schemas/destination" } }, "sensorElementList": { "type": "array", "items": { "$ref": "#/components/schemas/sensorElement" } } }, "required": [ "type", "action" ] }, { "anyOf": [ { "type": "object", "properties": { "childEPCs": { "type": "array", "minItems": 1, "items": { "$ref": "#/components/schemas/id" } } }, "required": [ "childEPCs" ] }, { "type": "object", "properties": { "childQuantityList": { "type": "array", "minItems": 1, "items": { "$ref": "#/components/schemas/quantityElement" } } }, "required": [ "childQuantityList" ] }, { "type": "object", "properties": { "action": { "type": "string", "pattern": "^DELETE$" } } } ] } ] }, "TransactionEvent": { "allOf": [ { "$ref": "#/components/schemas/Event" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "TransactionEvent" ] }, "bizTransactionList": { "type": "array", "items": { "$ref": "#/components/schemas/bizTransaction" }, "minItems": 1 }, "parentID": { "$ref": "#/components/schemas/uri" }, "epcList": { "type": "array", "items": { "$ref": "#/components/schemas/uri" } }, "quantityList": { "type": "array", "items": { "$ref": "#/components/schemas/quantityElement" } }, "action": { "$ref": "#/components/schemas/action" }, "bizStep": { "$ref": "#/components/schemas/bizStep" }, "disposition": { "$ref": "#/components/schemas/disposition" }, "readPoint": { "$ref": "#/components/schemas/readPoint" }, "bizLocation": { "$ref": "#/components/schemas/bizLocation" }, "sourceList": { "type": "array", "items": { "$ref": "#/components/schemas/source" } }, "destinationList": { "type": "array", "items": { "$ref": "#/components/schemas/destination" } }, "sensorElementList": { "type": "array", "items": { "$ref": "#/components/schemas/sensorElement" } } }, "required": [ "type", "bizTransactionList", "action" ] }, { "anyOf": [ { "type": "object", "properties": { "epcList": { "type": "array", "minItems": 0, "items": { "$ref": "#/components/schemas/id" } } }, "required": [ "epcList" ] }, { "type": "object", "properties": { "quantityList": { "type": "array", "minItems": 1, "items": { "$ref": "#/components/schemas/quantityElement" } } }, "required": [ "quantityList" ] }, { "type": "object", "properties": { "action": { "type": "string", "pattern": "^DELETE$" } } } ] } ] }, "TransformationEvent": { "allOf": [ { "$ref": "#/components/schemas/Event" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "TransformationEvent" ] }, "inputEPCList": { "$ref": "#/components/schemas/epcList" }, "inputQuantityList": { "$ref": "#/components/schemas/quantityList" }, "outputEPCList": { "$ref": "#/components/schemas/epcList" }, "outputQuantityList": { "$ref": "#/components/schemas/quantityList" }, "transformationID": { "$ref": "#/components/schemas/uri" }, "bizStep": { "$ref": "#/components/schemas/bizStep" }, "disposition": { "$ref": "#/components/schemas/disposition" }, "persistentDisposition": { "$ref": "#/components/schemas/persistentDisposition" }, "readPoint": { "$ref": "#/components/schemas/readPoint" }, "bizLocation": { "$ref": "#/components/schemas/bizLocation" }, "bizTransactionList": { "type": "array", "items": { "$ref": "#/components/schemas/bizTransaction" } }, "sourceList": { "type": "array", "items": { "$ref": "#/components/schemas/source" } }, "destinationList": { "type": "array", "items": { "$ref": "#/components/schemas/destination" } }, "sensorElementList": { "type": "array", "items": { "$ref": "#/components/schemas/sensorElement" } }, "ilmd": { "$ref": "#/components/schemas/ilmd" } }, "required": [ "type" ] }, { "anyOf": [ { "allOf": [ { "anyOf": [ { "type": "object", "properties": { "inputEPCList": { "type": "array", "minItems": 1, "items": { "type": "string" } } }, "required": [ "inputEPCList" ] }, { "type": "object", "properties": { "inputQuantityList": { "type": "array", "minItems": 1, "items": { "type": "object" } } }, "required": [ "inputQuantityList" ] } ] }, { "anyOf": [ { "type": "object", "properties": { "outputEPCList": { "type": "array", "minItems": 1, "items": { "type": "string" } } }, "required": [ "outputEPCList" ] }, { "type": "object", "properties": { "outputQuantityList": { "type": "array", "minItems": 1, "items": { "type": "object" } } }, "required": [ "outputQuantityList" ] } ] } ] }, { "anyOf": [ { "type": "object", "properties": { "inputEPCList": { "type": "array", "minItems": 1, "items": { "type": "string" } } }, "required": [ "inputEPCList" ] }, { "type": "object", "properties": { "inputQuantityList": { "type": "array", "minItems": 1, "items": { "type": "object" } } }, "required": [ "inputQuantityList" ] }, { "type": "object", "properties": { "outputEPCList": { "type": "array", "minItems": 1, "items": { "type": "string" } } }, "required": [ "outputEPCList" ] }, { "type": "object", "properties": { "outputQuantityList": { "type": "array", "minItems": 1, "items": { "type": "object" } } }, "required": [ "outputQuantityList" ] } ], "type": "object", "required": [ "transformationID" ] } ] } ] }, "AssociationEvent": { "allOf": [ { "$ref": "#/components/schemas/Event" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AssociationEvent" ] }, "parentID": { "$ref": "#/components/schemas/uri" }, "childEPCs": { "type": "array", "items": { "$ref": "#/components/schemas/uri" } }, "childQuantityList": { "type": "array", "items": { "$ref": "#/components/schemas/quantityElement" } }, "action": { "$ref": "#/components/schemas/action" }, "bizStep": { "$ref": "#/components/schemas/bizStep" }, "disposition": { "$ref": "#/components/schemas/disposition" }, "readPoint": { "$ref": "#/components/schemas/readPoint" }, "bizLocation": { "$ref": "#/components/schemas/bizLocation" }, "bizTransactionList": { "type": "array", "items": { "$ref": "#/components/schemas/bizTransaction" } }, "sourceList": { "type": "array", "items": { "$ref": "#/components/schemas/source" } }, "destinationList": { "type": "array", "items": { "$ref": "#/components/schemas/destination" } }, "sensorElementList": { "type": "array", "items": { "$ref": "#/components/schemas/sensorElement" } } }, "required": [ "type", "action", "parentID" ] }, { "anyOf": [ { "type": "object", "properties": { "childEPCs": { "type": "array", "minItems": 1, "items": { "$ref": "#/components/schemas/id" } } }, "required": [ "childEPCs" ] }, { "type": "object", "properties": { "childQuantityList": { "type": "array", "minItems": 1, "items": { "$ref": "#/components/schemas/quantityElement" } } }, "required": [ "childQuantityList" ] }, { "type": "object", "properties": { "action": { "type": "string", "pattern": "^DELETE$" } } } ] } ] } }, "parameters": { "EPC": { "description": "An electronic product code value.", "example": "urn:epc:id:sgtin:0614141.107346.2018", "required": true, "in": "path", "name": "epc", "schema": { "type": "string", "format": "uri" } }, "BizStep": { "description": "A business step value.", "example": "urn:epcglobal:cbv:bizstep:receiving", "required": true, "in": "path", "name": "bizStep", "schema": { "type": "string", "format": "uri" } }, "BizLocation": { "description": "A business location value.", "example": "urn:epc:id:sgln:0012345.11111.0", "required": true, "in": "path", "name": "bizLocation", "schema": { "type": "string", "format": "uri" } }, "ReadPoint": { "description": "A read point value.", "example": "urn:epc:id:sgln:0012345.11111.400", "required": true, "in": "path", "name": "readPoint", "schema": { "type": "string", "format": "uri" } }, "Disposition": { "description": "A disposition value.", "example": "in_progress", "required": true, "in": "path", "name": "disposition", "schema": { "type": "string", "format": "uri" } }, "EventID": { "name": "eventID", "in": "path", "description": "The ID of an EPCIS event. An EPCIS event ID must be unique across all events in the system.\n", "required": true, "example": "ni:///sha-256;df7bb3c352fef055578554f09f5e2aa41782150ced7bd0b8af24dd3ccb30ba69?ver=CBV2.0", "schema": { "type": "string", "format": "uri" } }, "EventType": { "name": "eventType", "in": "path", "example": "ObjectEvent", "required": true, "description": "Names of EPCIS event types.\n", "schema": { "oneOf": [ { "$ref": "#/components/schemas/EPCISEventTypes" } ] } }, "QueryName": { "in": "path", "name": "queryName", "description": "The name of an EPCIS event query.", "required": true, "schema": { "$ref": "#/components/schemas/QueryName" } }, "Token": { "in": "path", "name": "token", "required": true, "schema": { "$ref": "#/components/schemas/NextPageToken" } }, "PerPage": { "in": "query", "name": "perPage", "schema": { "$ref": "#/components/schemas/PerPage" } }, "NextPageToken": { "in": "query", "name": "nextPageToken", "schema": { "$ref": "#/components/schemas/NextPageToken" } }, "Upgrade": { "in": "header", "name": "Upgrade", "required": false, "schema": { "$ref": "#/components/schemas/Upgrade" } }, "Connection": { "in": "header", "name": "Connection", "required": false, "schema": { "$ref": "#/components/schemas/Connection" } }, "GS1-Signature": { "in": "header", "name": "GS1-Signature", "description": "Header containing the signature of events sent by the respository to a subscriber.", "required": false, "schema": { "$ref": "#/components/schemas/GS1-Signature" } }, "GS1-Query-Second": { "in": "query", "name": "second", "required": false, "schema": { "$ref": "#/components/schemas/GS1-Query-Second" } }, "GS1-Query-Minute": { "in": "query", "name": "minute", "required": false, "schema": { "$ref": "#/components/schemas/GS1-Query-Minute" } }, "GS1-Query-Hour": { "in": "query", "name": "hour", "required": false, "schema": { "$ref": "#/components/schemas/GS1-Query-Hour" } }, "GS1-Query-DayOfMonth": { "in": "query", "name": "dayOfMonth", "required": false, "schema": { "$ref": "#/components/schemas/GS1-Query-DayOfMonth" } }, "GS1-Query-Month": { "in": "query", "name": "month", "required": false, "schema": { "$ref": "#/components/schemas/GS1-Query-Month" } }, "GS1-Query-DayOfWeek": { "in": "query", "name": "dayOfWeek", "required": false, "schema": { "$ref": "#/components/schemas/GS1-Query-DayOfWeek" } }, "GS1-Query-ReportIfEmpty": { "in": "query", "name": "reportIfEmpty", "required": false, "schema": { "$ref": "#/components/schemas/GS1-Query-ReportIfEmpty" } }, "GS1-Query-Stream": { "in": "query", "name": "stream", "schema": { "$ref": "#/components/schemas/GS1-Query-Stream" } }, "GS1-Query-InitialRecordTime": { "in": "query", "name": "initialRecordTime", "required": false, "schema": { "$ref": "#/components/schemas/GS1-Query-InitialRecordTime" } }, "GS1-EPCIS-Version": { "in": "header", "name": "GS1-EPCIS-Version", "description": "The EPCIS version.\n", "schema": { "$ref": "#/components/schemas/GS1-EPCIS-Version" } }, "GS1-EPCIS-Min": { "in": "header", "name": "GS1-EPCIS-Min", "description": "The lowest EPCIS version supported.\n", "schema": { "$ref": "#/components/schemas/GS1-EPCIS-Min" } }, "GS1-EPCIS-Max": { "in": "header", "name": "GS1-EPCIS-Max", "description": "The highest EPCIS version supported.", "schema": { "$ref": "#/components/schemas/GS1-EPCIS-Max" } }, "GS1-CBV-Version": { "in": "header", "name": "GS1-CBV-Version", "description": "The Core Business Vocabulary version.\n", "schema": { "$ref": "#/components/schemas/GS1-CBV-Version" } }, "GS1-CBV-Min": { "in": "header", "name": "GS1-CBV-Min", "description": "The lowest Core Business Vocabulary version supported.\n", "schema": { "$ref": "#/components/schemas/GS1-CBV-Min" } }, "GS1-CBV-Max": { "in": "header", "name": "GS1-CBV-Max", "description": "The highest Core Business Vocabulary version supported.\n", "schema": { "$ref": "#/components/schemas/GS1-CBV-Max" } }, "GS1-EPC-Format": { "in": "header", "name": "GS1-EPC-Format", "description": "Header used by the client to indicate whether EPCs are expressed as GS1 Digital Link URIs or as EPC URNs.\nIt is also used by the server to announce which EPC formats are supported. \nIf absent the default value is `Always_GS1_Digital_Link`:\n - No_Preference: No preference in the representation, i.e. any format is accepted.\n - Always_GS1_Digital_Link: URIs are returned as GS1 Digital Link.\n - Always_EPC_URN: URIs are returned as URN.\n - Never_Translates: EPCs are never translated, i.e. the original format is kept.\n", "schema": { "$ref": "#/components/schemas/GS1-EPC-Format" } }, "GS1-CBV-XML-Format": { "in": "header", "name": "GS1-CBV-XML-Format", "description": "When requesting XML content-type only, users can use this header to request\nreceiving events with CBV values in either URN or Web URI format.\nThis option is not available for JSON/JSON-LD.\n- No_Preference: The server chooses the representation.\n- Always_Web_URI: CBV values are returned as Web URI.\n- Always_URN: CBV values are returned as URNs.\n- Never_Translates: The original format is kept.\n", "schema": { "$ref": "#/components/schemas/GS1-CBV-XML-Format" } }, "GS1-Extensions": { "in": "header", "name": "GS1-Extensions", "description": "Specific EPCIS or CBV extensions supported (e.g., for FIT).\n", "schema": { "$ref": "#/components/schemas/GS1-Extensions" }, "style": "simple", "explode": true }, "GS1-Capture-Error-Behaviour": { "name": "GS1-Capture-Error-Behaviour", "description": "A header to control how the capture interface will behave in case of an error:\n- `rollback`: \"All or nothing\". Either the capture job is entirely successful or all EPCIS events are rejected.\n- `proceed`: \"Greedy capture\". The capture interface tries to capture as many EPCIS events as possible, even if there are errors.\nThe default behaviour is `rollback`, as in EPCIS 1.2.\n", "in": "header", "required": false, "schema": { "$ref": "#/components/schemas/GS1-Capture-Error-Behaviour" } }, "eventType": { "in": "query", "name": "eventType", "description": "If specified, the result will only include events whose `type` matches one of the types specified in the parameter value. Each element of the parameter value may be one of the following strings: `ObjectEvent`, `AggregationEvent`, `TransactionEvent`, `TransformationEvent` or `AssociationEvent`. An element of the parameter value may also be the name of an extension event type. If omitted, all event types will be considered for inclusion in the result.", "style": "pipeDelimited", "explode": false, "required": false, "example": "ObjectEvent", "schema": { "type": "array", "minItems": 1, "items": { "$ref": "#/components/schemas/EPCISEventTypes" } } }, "GE_eventTime": { "name": "GE_eventTime", "description": "If specified, only events with `eventTime` greater than or equal to the specified value will be included in the result. If omitted, events are included regardless of their `eventTime` (unless constrained by the `LT_eventTime` parameter).", "in": "query", "required": false, "example": "2022-06-30T00:15:47.000-05:00", "schema": { "type": "string", "format": "date-time" } }, "LT_eventTime": { "name": "LT_eventTime", "description": "If specified, only events with `eventTime` less than the specified value will be included in the result. If omitted, events are included regardless of their `eventTime` (unless constrained by the `GE_eventTime` parameter).", "in": "query", "required": false, "example": "2022-06-30T00:15:47.000-05:00", "schema": { "type": "string", "format": "date-time" } }, "GE_recordTime": { "name": "GE_recordTime", "description": "If provided, only events with `recordTime` greater than or equal to the specified value will be returned. The automatic limitation based on event record time (section 8.2.5.2) may implicitly provide a constraint similar to this parameter. If omitted, events are included regardless of their `recordTime`, other than automatic limitation based on event record time", "in": "query", "required": false, "example": "2022-06-30T00:15:47.000-05:00", "schema": { "type": "string", "format": "date-time" } }, "LT_recordTime": { "name": "LT_recordTime", "description": "If provided, only events with `recordTime` less than the specified value will be returned. If omitted, events are included regardless of their `recordTime` (unless constrained by the `GE_recordTime` parameter or the automatic limitation based on event record time)", "in": "query", "required": false, "example": "2022-06-30T00:15:47.000-05:00", "schema": { "type": "string", "format": "date-time" } }, "EQ_action": { "name": "EQ_action", "description": "If specified, the result will only include events that (a) have an `action` field; and where (b) the value of the `action` field matches one of the specified values. The properties of the value of this parameter each must be one of the strings `ADD`, `OBSERVE`, or `DELETE`; if not, the implementation SHALL raise a `QueryParameterException`. If omitted, events are included regardless of their `action` field.", "in": "query", "style": "pipeDelimited", "explode": false, "required": false, "example": "OBSERVE", "schema": { "type": "array", "minItems": 1, "items": { "type": "string", "enum": [ "ADD", "OBSERVE", "DELETE" ] } } }, "EQ_bizStep": { "name": "EQ_bizStep", "description": "If specified, the result will only include events that (a) have a non-null `bizStep` field; and where (b) the value of the `bizStep` field matches one of the specified values. - see CBV BizStep for standard values. Standard values should be expressed as bare words, e.g. `shipping`, whereas custom values should be expressed as URIs or CURIEs for which the namespace prefix is defined. If this parameter is omitted, events are returned regardless of the value of the `bizStep` field or whether the `bizStep` field exists at all.", "in": "query", "style": "pipeDelimited", "explode": false, "required": false, "example": "shipping", "schema": { "type": "array", "minItems": 1, "items": { "$ref": "#/components/schemas/bizStep" } } }, "EQ_disposition": { "name": "EQ_disposition", "description": "If specified, the result will only include events that (a) have a non-null `disposition` field; and where (b) the value of the `disposition` field matches one of the specified values. - see CBV Disposition for standard values. Standard values should be expressed as bare words, e.g. `in_transit`, whereas custom values should be expressed as URIs or CURIEs for which the namespace prefix is defined. If this parameter is omitted, events are returned regardless of the value of the `disposition` field or whether the `disposition` field exists at all.", "in": "query", "style": "pipeDelimited", "explode": false, "required": false, "example": "in_transit", "schema": { "type": "array", "minItems": 1, "items": { "$ref": "#/components/schemas/disposition" } } }, "EQ_persistentDisposition_set": { "name": "EQ_persistentDisposition_set", "description": "If specified, the result will only include events that (a) have a non-null `persistentDisposition` field; and where (b) the value of the `set` field within the value of the `persistentDisposition` field matches one of the specified values. - see CBV Disposition for standard values. Standard values should be expressed as bare words, e.g. `in_transit`, whereas custom values should be expressed as URIs or CURIEs for which the namespace prefix is defined. If this parameter is omitted, events are returned regardless of the value of the `set` field within `persistentDisposition` field or whether the `persistentDisposition` field exists at all.", "in": "query", "style": "pipeDelimited", "explode": false, "required": false, "example": "in_transit", "schema": { "type": "array", "minItems": 1, "items": { "$ref": "#/components/schemas/disposition" } } }, "EQ_persistentDisposition_unset": { "name": "EQ_persistentDisposition_unset", "description": "If specified, the result will only include events that (a) have a non-null `persistentDisposition` field; and where (b) the value of the `unset` field within the value of the `persistentDisposition` field matches one of the specified values. - see CBV Disposition for standard values. Standard values should be expressed as bare words, e.g. `in_transit`, whereas custom values should be expressed as URIs or CURIEs for which the namespace prefix is defined. If this parameter is omitted, events are returned regardless of the value of the `unset` field within `persistentDisposition` field or whether the `persistentDisposition` field exists at all.", "in": "query", "style": "pipeDelimited", "explode": false, "required": false, "example": "in_transit", "schema": { "type": "array", "minItems": 1, "items": { "$ref": "#/components/schemas/disposition" } } }, "EQ_readPoint": { "name": "EQ_readPoint", "description": "If specified, the result will only include events that (a) have a non-null `readPoint` field; and where (b) the value of the `readPoint` field matches one of the specified URIs. If this parameter and `WD_readPoint` are both omitted, events are returned regardless of the value of the `readPoint` field or whether the `readPoint` field exists at all.", "in": "query", "style": "pipeDelimited", "explode": false, "required": false, "example": "urn:epc:id:sgln:0012345.11111.400", "schema": { "type": "array", "minItems": 1, "items": { "type": "string", "format": "uri" } } }, "WD_readPoint": { "name": "WD_readPoint", "description": "If specified, the result will only include events that (a) have a non-null `readPoint` field; and where (b) the value of the `readPoint` field matches one of the specified URIs, or is a direct or indirect descendant of one of the specified values. The meaning of 'direct or indirect descendant' is specified by master data, as described in section 6.5. (WD is an abbreviation for 'with descendants.') If this parameter and `EQ_readPoint` are both omitted, events are returned regardless of the value of the `readPoint` field or whether the `readPoint` field exists at all.", "in": "query", "style": "pipeDelimited", "explode": false, "required": false, "example": "urn:epc:id:sgln:0012345.11111.400", "schema": { "type": "array", "minItems": 1, "items": { "type": "string", "format": "uri" } } }, "EQ_bizLocation": { "name": "EQ_bizLocation", "description": "If specified, the result will only include events that (a) have a non-null `bizLocation` field; and where (b) the value of the `bizLocation` field matches one of the specified URIs. If this parameter and `WD_bizLocation` are both omitted, events are returned regardless of the value of the `bizLocation` field or whether the `bizLocation` field exists at all.", "in": "query", "style": "pipeDelimited", "explode": false, "required": false, "example": "urn:epc:id:sgln:0012345.11111.400", "schema": { "type": "array", "minItems": 1, "items": { "type": "string", "format": "uri" } } }, "WD_bizLocation": { "name": "WD_bizLocation", "description": "If specified, the result will only include events that (a) have a non-null `bizLocation` field; and where (b) the value of the `bizLocation` field matches one of the specified URIs, or is a direct or indirect descendant of one of the specified values. The meaning of 'direct or indirect descendant' is specified by master data, as described in section 6.5. (WD is an abbreviation for 'with descendants.') If this parameter and `EQ_bizLocation` are both omitted, events are returned regardless of the value of the `bizLocation` field or whether the `bizLocation` field exists at all.", "in": "query", "style": "pipeDelimited", "explode": false, "required": false, "example": "urn:epc:id:sgln:0012345.11111.400", "schema": { "type": "array", "minItems": 1, "items": { "type": "string", "format": "uri" } } }, "EQ_transformationID": { "name": "EQ_transformationID", "description": "If this parameter is specified, the result will only include events that (a) have a `transformationID` field (that is, `TransformationEvent`s or extension event type that extend `TransformationEvent`); and where (b) the `transformationID` field is equal to one of the values specified in this parameter.", "in": "query", "style": "pipeDelimited", "explode": false, "required": false, "schema": { "type": "array", "minItems": 1, "items": { "type": "string" } } }, "MATCH_epc": { "name": "MATCH_epc", "description": "If this parameter is specified, the result will only include events that (a) have an `epcList` or a `childEPCs` field (that is, `ObjectEvent`, `AggregationEvent`, `TransactionEvent`, `AssociationEvent` or extension event types that extend one of those event types); and where (b) one of the EPCs listed in the `epcList` or `childEPCs` field (depending on event type) matches one of the URIs specified in this parameter, where the meaning of 'matches' is as specified in section 8.2.7.1.1. If this parameter is omitted, events are included regardless of their `epcList` or `childEPCs` field or whether the `epcList` or `childEPCs` field exists.", "in": "query", "style": "pipeDelimited", "explode": false, "required": false, "schema": { "type": "array", "minItems": 1, "items": { "type": "string", "format": "uri" } } }, "MATCH_parentID": { "name": "MATCH_parentID", "description": "If this parameter is specified, the result will only include events that (a) have a `parentID` field (that is, `AggregationEvent`, `TransactionEvent`, `AssociationEvent` or extension event types that extend one of those event types); and where (b) one of the EPCs listed in the `parentID` field matches one of the URIs specified in this parameter, where the meaning of 'matches' is as specified in section 8.2.7.1.1. If this parameter is omitted, events are included regardless of their `parentID` field or whether the `parentID` field exists.", "in": "query", "style": "pipeDelimited", "explode": false, "required": false, "schema": { "type": "array", "minItems": 1, "items": { "type": "string", "format": "uri" } } }, "MATCH_inputEPC": { "name": "MATCH_inputEPC", "description": "If this parameter is specified, the result will only include events that (a) have an `inputEPCList` (that is, `TransformationEvent` or an extension event type that extends `TransformationEvent`); and where (b) one of the EPCs listed in the `inputEPCList` field matches one of the URIs specified in this parameter. The meaning of 'matches' is as specified in section 8.2.7.1.1. If this parameter is omitted, events are included regardless of their `inputEPCList` field or whether the `inputEPCList` field exists.", "in": "query", "style": "pipeDelimited", "explode": false, "required": false, "schema": { "type": "array", "minItems": 1, "items": { "type": "string", "format": "uri" } } }, "MATCH_outputEPC": { "name": "MATCH_outputEPC", "description": "If this parameter is specified, the result will only include events that (a) have an `outputEPCList` (that is, `TransformationEvent` or an extension event type that extends `TransformationEvent`); and where (b) one of the EPCs listed in the `outputEPCList` field matches one of the URIs specified in this parameter. The meaning of 'matches' is as specified in section 8.2.7.1.1. If this parameter is omitted, events are included regardless of their `outputEPCList` field or whether the `outputEPCList` field exists.", "in": "query", "style": "pipeDelimited", "explode": false, "required": false, "schema": { "type": "array", "minItems": 1, "items": { "type": "string", "format": "uri" } } }, "MATCH_anyEPC": { "name": "MATCH_anyEPC", "description": "If this parameter is specified, the result will only include events that (a) have an `epcList` field, a `childEPCs` field, a `parentID` field, an `inputEPCList` field, or an `outputEPCList` field (that is, `ObjectEvent`, `AggregationEvent`, `TransactionEvent`, `TransformationEvent`, `AssociationEvent` or extension event types that extend one of those event types); and where (b) the `parentID` field or one of the EPCs listed in the `epcList`, `childEPCs`, `inputEPCList`, or `outputEPCList` field (depending on event type) matches one of URIs specified in this parameter. The meaning of 'matches' is as specified in section 8.2.7.1.1.", "in": "query", "style": "pipeDelimited", "explode": false, "required": false, "schema": { "type": "array", "minItems": 1, "items": { "type": "string", "format": "uri" } } }, "MATCH_epcClass": { "name": "MATCH_epcClass", "description": "If this parameter is specified, the result will only include events that (a) have a `quantityList` or a `childQuantityList` field (that is, `ObjectEvent`, `AggregationEvent`, `TransactionEvent`, `AssociationEvent` or extension event types that extend one of those event types); and where (b) one of the EPC classes listed in the `quantityList` or `childQuantityList` field (depending on event type) matches one of the EPC patterns or URIs specified in this parameter. The result will also include QuantityEvents whose `epcClass` field matches one of the URIs specified in this parameter. The meaning of 'matches' is as specified in section 8.2.7.1.1.", "in": "query", "style": "pipeDelimited", "explode": false, "required": false, "schema": { "type": "array", "minItems": 1, "items": { "type": "string", "format": "uri" } } }, "MATCH_inputEPCClass": { "name": "MATCH_inputEPCClass", "description": "If this parameter is specified, the result will only include events that (a) have an `inputQuantityList` field (that is, `TransformationEvent` or extension event types that extend it); and where (b) one of the EPC classes listed in the `inputQuantityList` field (depending on event type) matches one of the EPC patterns or URIs specified in this parameter. The meaning of 'matches' is as specified in section 8.2.7.1.1", "in": "query", "style": "pipeDelimited", "explode": false, "required": false, "schema": { "type": "array", "minItems": 1, "items": { "type": "string", "format": "uri" } } }, "MATCH_outputEPCClass": { "name": "MATCH_outputEPCClass", "description": "If this parameter is specified, the result will only include events that (a) have an `outputQuantityList` field (that is, `TransformationEvent` or extension event types that extend it); and where (b) one of the EPC classes listed in the `outputQuantityList` field (depending on event type) matches one of the EPC patterns or URIs specified in this parameter. The meaning of 'matches' is as specified in section 8.2.7.1.1", "in": "query", "style": "pipeDelimited", "explode": false, "required": false, "schema": { "type": "array", "minItems": 1, "items": { "type": "string", "format": "uri" } } }, "MATCH_anyEPCClass": { "name": "MATCH_anyEPCClass", "description": "If this parameter is specified, the result will only include events that (a) have a `quantityList`, `childQuantityList`, `inputQuantityList`, or `outputQuantityList` field (that is, `ObjectEvent`, `AggregationEvent`, `TransactionEvent`, `TransformationEvent`, `AssociationEvent` or extension event types that extend one of those event types); and where (b) one of the EPC classes listed in any of those fields matches one of the EPC patterns or URIs specified in this parameter. The result will also include `QuantityEvent`s whose `epcClass` field matches one of the URIs specified in this parameter. The meaning of 'matches' is as specified in section 8.2.7.1.1.", "in": "query", "style": "pipeDelimited", "explode": false, "required": false, "schema": { "type": "array", "minItems": 1, "items": { "type": "string", "format": "uri" } } }, "EQ_quantity": { "name": "EQ_quantity", "description": "(DEPCRECATED in EPCIS 1.1, REPURPOSED in EPCIS 2.0) If this parameter is specified, the result will only include events that (a) have a `quantity` field as part of a `QuantityElement`; and where (b) the `quantity` field is equal to the specified parameter.", "in": "query", "required": false, "schema": { "type": "number" } }, "GT_quantity": { "name": "GT_quantity", "description": "(DEPCRECATED in EPCIS 1.1, REPURPOSED in EPCIS 2.0) If this parameter is specified, the result will only include events that (a) have a `quantity` field as part of a `QuantityElement`; and where (b) the `quantity` field is greater than the specified parameter.", "in": "query", "required": false, "schema": { "type": "number" } }, "GE_quantity": { "name": "GE_quantity", "description": "(DEPCRECATED in EPCIS 1.1, REPURPOSED in EPCIS 2.0) If this parameter is specified, the result will only include events that (a) have a `quantity` field as part of a `QuantityElement`; and where (b) the `quantity` field is greater than or equal to the specified parameter.", "in": "query", "required": false, "schema": { "type": "number" } }, "LT_quantity": { "name": "LT_quantity", "description": "(DEPCRECATED in EPCIS 1.1, REPURPOSED in EPCIS 2.0) If this parameter is specified, the result will only include events that (a) have a `quantity` field as part of a `QuantityElement`; and where (b) the `quantity` field is less than the specified parameter.", "in": "query", "required": false, "schema": { "type": "number" } }, "LE_quantity": { "name": "LE_quantity", "description": "(DEPCRECATED in EPCIS 1.1, REPURPOSED in EPCIS 2.0) If this parameter is specified, the result will only include events that (a) have a `quantity` field as part of a `QuantityElement`; and where (b) the `quantity` field is less than or equal to the specified parameter.", "in": "query", "required": false, "schema": { "type": "number" } }, "EQ_eventID": { "name": "EQ_eventID", "description": "If this parameter is specified, the result will only include events that (a) have a non-null `eventID` field; and where (b) the `eventID` field is equal to one of the values specified in this parameter. If this parameter is omitted, events are returned regardless of the value of the `eventID` field or whether the `eventID` field exists at all.", "in": "query", "style": "pipeDelimited", "explode": false, "required": false, "schema": { "type": "array", "minItems": 1, "items": { "type": "string", "format": "uri" } } }, "EXISTS_errorDeclaration": { "name": "EXISTS_errorDeclaration", "description": "If this parameter is specified (and has a value of true), the result will only include events that contain an `ErrorDeclaration`. If this parameter is omitted (or has a value of false), events are returned regardless of whether they contain an `ErrorDeclaration`.", "in": "query", "required": false, "schema": { "type": "boolean" } }, "GE_errorDeclarationTime": { "name": "GE_errorDeclarationTime", "description": "If this parameter is specified, the result will only include events that (a) contain an `ErrorDeclaration`; and where (b) the value of the `errorDeclarationTime` field is greater than or equal to the specified value. If this parameter is omitted, events are returned regardless of whether they contain an `ErrorDeclaration` or what the value of the `errorDeclarationTime` field is.", "in": "query", "required": false, "example": "2022-06-30T00:15:47.000-05:00", "schema": { "type": "string", "format": "date-time" } }, "LT_errorDeclarationTime": { "name": "LT_errorDeclarationTime", "description": "If this parameter is specified, the result will only include events that (a) contain an `ErrorDeclaration`; and where (b) the value of the `errorDeclarationTime` field is less than to the specified value. If this parameter is omitted, events are returned regardless of whether they contain an `ErrorDeclaration` or what the value of the `errorDeclarationTime` field is.", "in": "query", "required": false, "example": "2022-06-30T00:15:47.000-05:00", "schema": { "type": "string", "format": "date-time" } }, "EQ_errorReason": { "name": "EQ_errorReason", "description": "If this parameter is specified, the result will only include events that (a) contain an `ErrorDeclaration`; and where (b) the error declaration contains a non-null `reason` field; and where (c) the `reason` field is equal to one of the values specified in this parameter. If this parameter is omitted, events are returned regardless of whether they contain an `ErrorDeclaration` or what the value of the `reason` field is.", "in": "query", "style": "pipeDelimited", "explode": false, "required": false, "schema": { "type": "array", "minItems": 1, "items": { "$ref": "#/components/schemas/error-reason" } } }, "EQ_correctiveEventID": { "name": "EQ_correctiveEventID", "description": "If this parameter is specified, the result will only include events that (a) contain an `ErrorDeclaration`; and where (b) one of the elements of the `correctiveEventIDs` list is equal to one of the values specified in this parameter. If this parameter is omitted, events are returned regardless of whether they contain an `ErrorDeclaration` or the contents of the `correctiveEventIDs` list.", "in": "query", "style": "pipeDelimited", "explode": false, "required": false, "schema": { "type": "array", "minItems": 1, "items": { "type": "string", "format": "uri" } } }, "orderBy": { "name": "orderBy", "description": "If specified, names a single field that will be used to order the results. The `orderDirection` field specifies whether the ordering is in ascending sequence or descending sequence. Events included in the result that lack the specified field altogether may occur in any position within the result event list. The value of this parameter SHALL be one of: `eventTime`, `recordTime`, or the fully qualified name of an extension field whose type is Int, Float, Time, or String. A fully qualified fieldname is constructed as for the `EQ_fieldname` parameter. In the case of a field of type String, sorting SHALL be according to their case-sensitive lexical ordering, considering UTF-8/ASCII code values of each successive character. If omitted, no order is specified. The implementation MAY order the results in any order it chooses, and that order MAY differ even when the same query is executed twice on the same data. (In EPCIS 1.0, the value `quantity` was also permitted, but its use is deprecated in EPCIS 1.1.)", "in": "query", "required": false, "schema": { "type": "string" } }, "orderDirection": { "name": "orderDirection", "description": "If specified and `orderBy` is also specified, specifies whether the results are ordered in ascending or descending sequence according to the key specified by `orderBy`. The value of this parameter must be one of `ASC` (for ascending order) or `DESC` (for descending order); if not, the implementation SHALL raise a `QueryParameterException`. If omitted, defaults to `DESC`.", "in": "query", "required": false, "schema": { "type": "string", "enum": [ "ASC", "DESC" ] } }, "eventCountLimit": { "name": "eventCountLimit", "description": "If specified, the results will only include the first N events that match the other criteria, where N is the value of this parameter. The ordering specified by the `orderBy` and `orderDirection` parameters determine the meaning of “first” for this purpose. If omitted, all events matching the specified criteria will be included in the results. This parameter and `maxEventCount` are mutually exclusive; if both are specified, a `QueryParameterException` SHALL be raised. This parameter may only be used when `orderBy` is specified; if `orderBy` is omitted and `eventCountLimit` is specified, a `QueryParameterException` SHALL be raised. This parameter differs from `maxEventCount` in that this parameter limits the amount of data returned, whereas `maxEventCount` causes an exception to be thrown if the limit is exceeded. Explanation (non-normative): A common use of the `orderBy`, `orderDirection`, and `eventCountLimit` parameters is for extremal queries. For example, to select the most recent event matching some criteria, the query would include parameters that select events matching the desired criteria, and set `orderBy` to `eventTime`, `orderDirection` to `DESC`, and `eventCountLimit` to 1.", "in": "query", "required": false, "schema": { "type": "integer" } }, "maxEventCount": { "name": "maxEventCount", "description": "If specified, at most this many events will be included in the query result. If the query would otherwise return more than this number of events, a `QueryTooLargeException` SHALL be raised instead of a normal query result. This parameter and `eventCountLimit` are mutually exclusive; if both are specified, a `QueryParameterException` SHALL be raised. If this parameter is omitted, any number of events may be included in the query result. Note, however, that the EPCIS implementation is free to raise a `QueryTooLargeException` regardless of the setting of this parameter (see section 8.2.3).", "in": "query", "required": false, "schema": { "type": "integer" } }, "GE_startTime": { "name": "GE_startTime", "description": "If specified, only events with `startTime` greater than or equal to the specified value will be included in the result. If omitted, events are included regardless of their `startTime` (unless constrained by the `LT_startTime` parameter).", "in": "query", "required": false, "example": "2022-06-30T00:15:47.000-05:00", "schema": { "type": "string", "format": "date-time" } }, "LT_startTime": { "name": "LT_startTime", "description": "If specified, only events with `startTime` less than the specified value will be included in the result. If omitted, events are included regardless of their `startTime` (unless constrained by the `GE_startTime` parameter).", "in": "query", "required": false, "example": "2022-06-30T00:15:47.000-05:00", "schema": { "type": "string", "format": "date-time" } }, "GE_endTime": { "name": "GE_endTime", "description": "If specified, only events with `endTime` greater than or equal to the specified value will be included in the result. If omitted, events are included regardless of their `endTime` (unless constrained by the `LT_endTime` parameter).", "in": "query", "required": false, "example": "2022-06-30T00:15:47.000-05:00", "schema": { "type": "string", "format": "date-time" } }, "LT_endTime": { "name": "LT_endTime", "description": "If specified, only events with `endTime` less than the specified value will be included in the result. If omitted, events are included regardless of their `endTime` (unless constrained by the `GE_endTime` parameter).", "in": "query", "required": false, "example": "2022-06-30T00:15:47.000-05:00", "schema": { "type": "string", "format": "date-time" } }, "EQ_type": { "name": "EQ_type", "description": "If this parameter is specified, the result will only include events that (a) accommodate one or more `sensorElement` fields; and where (b) the `type` attribute in one of these `sensorElement` fields is equal to one of the values specified in this parameter. If this parameter is omitted, events are returned regardless of the value of the `type` attribute or whether a `sensorElement` field exists at all. Standard values for `type` are defined at https://gs1.org/voc/MeasurementType. Standard values SHALL be expressed as bare words, e.g. `Temperature`.", "in": "query", "style": "pipeDelimited", "explode": false, "required": false, "example": "Temperature", "schema": { "type": "array", "minItems": 1, "items": { "$ref": "#/components/schemas/measurementType" } } }, "EQ_deviceID": { "name": "EQ_deviceID", "description": "If this parameter is specified, the result will only include events that (a) accommodate a `deviceID` attribute; and where (b) the `deviceID` attribute is equal to one of the URIs specified in this parameter. If this parameter is omitted, events are returned regardless of the value of the `deviceID` attribute or whether the `deviceID` attribute exists at all.", "in": "query", "style": "pipeDelimited", "explode": false, "required": false, "schema": { "type": "array", "minItems": 1, "items": { "type": "string", "format": "uri" } } }, "EQ_dataProcessingMethod": { "name": "EQ_dataProcessingMethod", "description": "If this parameter is specified, the result will only include events that (a) accommodate a `dataProcessingMethod` attribute; and where (b) the `dataProcessingMethod` attribute is equal to one of the URIs specified in this parameter. If this parameter is omitted, events are returned regardless of the value of the `dataProcessingMethod` attribute or whether the `dataProcessingMethod` attribute exists at all.", "in": "query", "style": "pipeDelimited", "explode": false, "required": false, "schema": { "type": "array", "minItems": 1, "items": { "type": "string", "format": "uri" } } }, "EQ_microorganism": { "name": "EQ_microorganism", "description": "If this parameter is specified, the result will only include events that (a) accommodate a `microorganism` attribute; and where (b) the `microorganism` attribute is equal to one of the URIs specified in this parameter. If this parameter is omitted, events are returned regardless of the value of the `microorganism` attribute or whether the `microorganism` attribute exists at all.", "in": "query", "style": "pipeDelimited", "explode": false, "required": false, "schema": { "type": "array", "minItems": 1, "items": { "type": "string", "format": "uri" } } }, "EQ_chemicalSubstance": { "name": "EQ_chemicalSubstance", "description": "If this parameter is specified, the result will only include events that (a) accommodate a `chemicalSubstance` attribute; and where (b) the `chemicalSubstance` attribute is equal to one of the URIs specified in this parameter. If this parameter is omitted, events are returned regardless of the value of the `chemicalSubstance` attribute or whether the `chemicalSubstance` attribute exists at all.", "in": "query", "style": "pipeDelimited", "explode": false, "required": false, "schema": { "type": "array", "minItems": 1, "items": { "type": "string", "format": "uri" } } }, "EQ_bizRules": { "name": "EQ_bizRules", "description": "If this parameter is specified, the result will only include events that (a) accommodate a `bizRules` attribute; and where (b) the `bizRules` attribute is equal to one of the URIs specified in this parameter. If this parameter is omitted, events are returned regardless of the value of the `bizRules` attribute or whether the `bizRules` attribute exists at all.", "in": "query", "style": "pipeDelimited", "explode": false, "required": false, "schema": { "type": "array", "minItems": 1, "items": { "type": "string", "format": "uri" } } }, "EQ_stringValue": { "name": "EQ_stringValue", "description": "If this parameter is specified, the result will only include events that (a) accommodate a `stringValue` attribute; and where (b) the `stringValue` attribute is equal to one of the strings specified in this parameter. If this parameter is omitted, events are returned regardless of the value of the `stringValue` attribute or whether the `stringValue` attribute exists at all.", "in": "query", "style": "pipeDelimited", "explode": false, "required": false, "schema": { "type": "array", "minItems": 1, "items": { "type": "string" } } }, "EQ_hexBinaryValue": { "name": "EQ_hexBinaryValue", "description": "If this parameter is specified, the result will only include events that (a) accommodate a `hexBinaryValue` attribute; and where (b) the `hexBinaryValue` attribute is equal to one of the strings specified in this parameter. If this parameter is omitted, events are returned regardless of the value of the `hexBinaryValue` attribute or whether the `hexBinaryValue` attribute exists at all.", "in": "query", "style": "pipeDelimited", "explode": false, "required": false, "schema": { "type": "array", "minItems": 1, "items": { "type": "string" } } }, "EQ_uriValue": { "name": "EQ_uriValue", "description": "If this parameter is specified, the result will only include events that (a) accommodate a `uriValue` attribute; and where (b) the `uriValue` attribute is equal to one of the strings specified in this parameter. If this parameter is omitted, events are returned regardless of the value of the `uriValue` attribute or whether the `uriValue` attribute exists at all.", "in": "query", "style": "pipeDelimited", "explode": false, "required": false, "schema": { "type": "array", "minItems": 1, "items": { "type": "string", "format": "uri" } } }, "EQ_booleanValue": { "name": "EQ_booleanValue", "description": "If this parameter is specified, the result will only include events that (a) accommodate a `booleanValue` attribute; and where (b) the `booleanValue` attribute is equal to the specified value (i.e. `true` or `false`). If this parameter is omitted, events are returned regardless of the value of the `booleanValue` attribute or whether the `booleanValue` attribute exists at all", "in": "query", "required": false, "schema": { "type": "boolean" } } }, "headers": { "GS1-EPCIS-Version": { "description": "The EPCIS version.", "schema": { "$ref": "#/components/schemas/GS1-EPCIS-Version" } }, "GS1-EPCIS-Min": { "description": "The lowest EPCIS version supported.", "schema": { "$ref": "#/components/schemas/GS1-EPCIS-Min" } }, "GS1-EPCIS-Max": { "description": "The highest EPCIS version supported.", "schema": { "$ref": "#/components/schemas/GS1-EPCIS-Max" } }, "GS1-CBV-Version": { "description": "The Core Business Vocabulary version.", "schema": { "$ref": "#/components/schemas/GS1-CBV-Version" } }, "GS1-CBV-Min": { "description": "The lowest Core Business Vocabulary version supported.", "schema": { "$ref": "#/components/schemas/GS1-CBV-Min" } }, "GS1-CBV-Max": { "description": "The highest Core Business Vocabulary version supported.", "schema": { "$ref": "#/components/schemas/GS1-CBV-Max" } }, "GS1-EPC-Format": { "description": "Header to indicate whether EPCs are expressed as GS1 Digital Link URIs or as EPC URNs.\n", "schema": { "$ref": "#/components/schemas/GS1-EPC-Format" } }, "GS1-CBV-XML-Format": { "description": "When requesting XML content-type only, users can use this header to request\nreceiving events with CBV values in either URN or Web URI format.\n", "schema": { "$ref": "#/components/schemas/GS1-CBV-XML-Format" } }, "GS1-Extensions": { "description": "Specific EPCIS or CBV extensions supported (e.g., for FIT).", "schema": { "$ref": "#/components/schemas/GS1-Extensions" } }, "GS1-Vendor-Version": { "description": "A versioning scheme that can be freely chosen by the vendor.", "schema": { "$ref": "#/components/schemas/GS1-Vendor-Version" } }, "GS1-EPCIS-Capture-Limit": { "description": "The maximum number of EPCIS events that can be captured per call.", "schema": { "$ref": "#/components/schemas/GS1-EPCIS-Capture-Limit" } }, "GS1-Query-Min-Record-Time": { "description": "Informs about the smallest possible record time for EPCIS events in an outstanding query subscription.", "schema": { "$ref": "#/components/schemas/GS1-Query-Min-Record-Time" } }, "GS1-EPCIS-Capture-File-Size-Limit": { "description": "The maximum event document length in octets (8-bit bytes) for capture operations.", "schema": { "$ref": "#/components/schemas/GS1-EPCIS-Capture-File-Size-Limit" } }, "GS1-Capture-Error-Behaviour": { "description": "A header to control how the capture interface will behave in case of an error:\n- `rollback`: \"All or nothing\". Either the capture job is entirely successful or all EPCIS events are rejected.\n- `proceed`: \"Greedy capture\". The capture interface tries to capture as many EPCIS events as possible, even if there are errors.\n- `all`: This is to be used only by the server to announce it supports both `rollback` and `proceed`.\nThe default behaviour is `rollback`, as in EPCIS 1.2.\n", "schema": { "$ref": "#/components/schemas/GS1-Capture-Error-Behaviour" } }, "GS1-Next-Page-Token-Expires": { "description": "The expiry time for `nextPageToken`.", "schema": { "$ref": "#/components/schemas/GS1-Next-Page-Token-Expires" } }, "Link": { "description": "A pagination header link. This header works together with the `perPage` and `nextPageToken` query string\nparameters.\nAs long as there are more resources to retrieve, the `Link` header contains the URL of the next page and\nthe attribute `rel=\"next\"`. The last page is indicated by the absence of the `rel=\"next\"`.\n", "schema": { "$ref": "#/components/schemas/Link" } } }, "requestBodies": { "CreateQuery": { "description": "Creates and executes new EPCIS events query.", "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/QueryDefinition" } } } } } } }