{
  "openapi": "3.0.1",
  "info": {
    "title": "Export Health Certificates - UAT",
    "description": "This API enables traders to apply for export health certificates, check the status of applications you've made, and check for validation errors on your applications. This is the first step towards enabling digital integration for moving agri-food goods.",
    "version": "v1"
  },
  "servers": [
    {
      "url": "https://tst-gateway.trade.azure.defra.cloud/trade-sci-exports/uat/v1"
    }
  ],
  "paths": {
    "/ehc-application": {
      "post": {
        "tags": [
          "EhcApplication"
        ],
        "summary": "Submit a new Export Health Certificate Application.",
        "description": "Provide the details of an application to raise an Export Health Certificate for your consignment.\r\n\r\nUse the online documentation to construct a payload representing your application. Optionally use the `/ehc-application-example` \r\nendpoint to view example payloads to assist you.\r\n\r\nUse the [reference-data/metadata]($trade-sci-reference-data/metadata$) endpoint to find and search reference data lists for sub sections of the payload according to your consignment, e.g. Certifiers, Countries, Means of Transport.\r\n\r\nSubmit your constructed payload to the `/ehc-application` endpoint and react to the response status code accordingly.",
        "operationId": "post-ehc-application",
        "requestBody": {
          "description": "Details of your request for an Export Health Certificate Application.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EhcApplicationMessage"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EhcApplicationMessage"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EhcApplicationMessage"
              }
            }
          },
          "x-bodyName": "ehcApplicationMessage"
        },
        "responses": {
          "202": {
            "description": "The submitted payload has passed preliminary validation and has resulted in a **Request** being created.\r\n\r\nA **Request** is a way to track the asynchronous processing of your message.\r\n\r\nThe **Request** is now being validated and processed in order to attempt to create an Export Health Certificate **Application**.\r\n\r\nYou can commence polling for status changes to the **Request** using the `/request-status` endpoint and the **requestId** provided in the response body.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RequestStatusDetails"
                },
                "example": {
                  "_links": [
                    {
                      "href": "https://defra.gov.uk/api/v1/example/123",
                      "rel": "status",
                      "method": "GET"
                    }
                  ],
                  "requestId": "b09fb181-948d-4c0c-9928-bf6d0b7ca357",
                  "customerReference": "TRD-AAA111-01",
                  "status": "Accepted",
                  "createdOn": "2021-02-01T14:05:00.0000000+00:00",
                  "lastUpdated": "2021-02-01T16:40:00.0000000+00:00"
                }
              }
            }
          },
          "400": {
            "description": "The attempt to create a **Request** failed preliminary validation and has not been created.\r\n\r\nValidation errors can be found in the response body and must be corrected before re-submitting.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemDetails"
                },
                "example": {
                  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
                  "title": "One or more validation errors occurred.",
                  "status": 400,
                  "traceId": "00-d55147526d044e41aa246671de874080-de7c8222d3b2684a-00",
                  "errors": {
                    "applicationName": [
                      "'Application Name' must not be empty."
                    ],
                    "certificateQuantity": [
                      "'Certificate Quantity' must be greater than or equal to '1'."
                    ]
                  }
                }
              }
            }
          }
        }
      }
    },
    "/ehc-application/{requestId}/request-status": {
      "get": {
        "tags": [
          "EhcApplication"
        ],
        "summary": "Asynchronous polling endpoint to query using a Request Id for status changes or validation errors.",
        "description": "After having confirmation that your submission has been accepted as a **Request** for an **Application** from the previous `/ehc-application` endpoint,\r\nyou are now in a position to poll for status updates.\r\n\r\nYou can use this `/request-status` endpoint with the **requestId** to poll for status updates in order to react accordingly.",
        "operationId": "get-ehc-application-requestid-request-status",
        "parameters": [
          {
            "name": "requestId",
            "in": "path",
            "description": "Format - uuid. Request Id which can be found in the `/ehc-application` submission response.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The **Request** has been successfully validated, submitted and resulted in an Export Health Certificate **Application** having been created.\r\n\r\nLocation and details of the created Export Health Certificate **Application** resource can be found in the response body.\r\n\r\nYou may now transition to using the `/status` endpoint should you wish to follow the progress of this **Application** as it moves through the workflow of an Export Health Certificate.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RequestStatusDetails"
                },
                "example": {
                  "_links": [
                    {
                      "href": "https://defra.gov.uk/api/v1/example/123",
                      "rel": "status",
                      "method": "GET"
                    }
                  ],
                  "requestId": "b09fb181-948d-4c0c-9928-bf6d0b7ca357",
                  "customerReference": "TRD-AAA111-01",
                  "status": "Accepted",
                  "createdOn": "2021-02-01T14:05:00.0000000+00:00",
                  "lastUpdated": "2021-02-01T16:40:00.0000000+00:00"
                }
              }
            }
          },
          "202": {
            "description": "The **Request** is still in the process of being validated and you should continue to poll for status changes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RequestStatusDetails"
                },
                "example": {
                  "_links": [
                    {
                      "href": "https://defra.gov.uk/api/v1/example/123",
                      "rel": "status",
                      "method": "GET"
                    }
                  ],
                  "requestId": "b09fb181-948d-4c0c-9928-bf6d0b7ca357",
                  "customerReference": "TRD-AAA111-01",
                  "status": "Accepted",
                  "createdOn": "2021-02-01T14:05:00.0000000+00:00",
                  "lastUpdated": "2021-02-01T16:40:00.0000000+00:00"
                }
              }
            }
          },
          "400": {
            "description": "The **Request** was rejected due to validation errors.\r\n\r\nValidation errors can be found in the response body. Polling should be stopped and errors need to be fixed before re-submitting.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemDetails"
                },
                "example": {
                  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
                  "title": "One or more validation errors occurred.",
                  "status": 400,
                  "traceId": "00-d55147526d044e41aa246671de874080-de7c8222d3b2684a-00",
                  "errors": {
                    "applicationName": [
                      "'Application Name' must not be empty."
                    ],
                    "certificateQuantity": [
                      "'Certificate Quantity' must be greater than or equal to '1'."
                    ]
                  }
                }
              }
            }
          },
          "404": {
            "description": "A **Request** with the specified Request Id could not be found. Please verify that the Request Id is correct and try again.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemDetails"
                },
                "example": {
                  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.4",
                  "title": "Not Found",
                  "status": 404,
                  "traceId": "00-11dc1a21a6bc20489d3009fb27d57b87-ddc5556eac52a943-00",
                  "errors": { }
                }
              }
            }
          }
        }
      }
    },
    "/ehc-application/{requestId}/status": {
      "get": {
        "tags": [
          "EhcApplication"
        ],
        "summary": "Get the status of an Export Health Certificate Application by Request Id.",
        "description": "Find an Export Health Certificate **Application** to view its status and that of the certificates that are being processed as a result.\r\n\r\nAny **Applications** returned here are in the Export Health Certificate workflow and will be navigating through the certification process.\r\n\r\nYou can periodically poll to find the status, however the frequency of updates will depend on the persons who are handling the process.",
        "operationId": "get-ehc-application-requestid-status",
        "parameters": [
          {
            "name": "requestId",
            "in": "path",
            "description": "Format - uuid. Request Id provided by the `/ehc-application` submission response.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retreived the status of the requested Export Health Certificate **Application** and related Certificates.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationDetails"
                },
                "example": {
                  "_links": [
                    {
                      "href": "https://defra.gov.uk/api/v1/example/123",
                      "rel": "status",
                      "method": "GET"
                    }
                  ],
                  "requestId": "b09fb181-948d-4c0c-9928-bf6d0b7ca357",
                  "systemRequestId": "1700000123",
                  "customerReference": "TRD-AAA111-01",
                  "status": "Submitted",
                  "certificates": [
                    {
                      "certificateId": "d8e7af71-6d66-442a-9ea1-5a1bad1348ac",
                      "certificateSerialNumber": "20/2/012345",
                      "status": "Submitted",
                      "createdOn": "2021-02-01T14:06:00.0000000+00:00",
                      "lastUpdated": "2021-02-02T09:10:00.0000000+00:00"
                    }
                  ],
                  "createdOn": "2021-02-01T14:05:00.0000000+00:00",
                  "lastUpdated": "2021-02-01T16:40:00.0000000+00:00"
                }
              }
            }
          },
          "404": {
            "description": "The **Request** could not be found.\r\n\r\nPlease verify that the Request Id is correct and that the **Request** was successfully submitted by checking the `/request-status` endpoint for a **200 OK** response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemDetails"
                },
                "example": {
                  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.4",
                  "title": "Not Found",
                  "status": 404,
                  "traceId": "00-11dc1a21a6bc20489d3009fb27d57b87-ddc5556eac52a943-00",
                  "errors": { }
                }
              }
            }
          }
        }
      }
    },
    "/ehc-application-example/{ehcName}": {
      "get": {
        "tags": [
          "EhcApplicationExample"
        ],
        "summary": "Retrieve example payloads for an Export Health Certificate Application.",
        "description": "Find an Export Health Certificate example request by the name of the certificate, e.g. 8293EHC.",
        "operationId": "get-ehc-application-example-ehcname",
        "parameters": [
          {
            "name": "ehcName",
            "in": "path",
            "description": "Export Health Certificate name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved a sample Export Health Certificate Application payload.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EhcApplicationMessage"
                },
                "example": "Failed to generate sample value: generated sample is too big."
              }
            }
          },
          "400": {
            "description": "The Export Health Certificate name to find has failed validation.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemDetails"
                },
                "example": {
                  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
                  "title": "One or more validation errors occurred.",
                  "status": 400,
                  "traceId": "00-d55147526d044e41aa246671de874080-de7c8222d3b2684a-00",
                  "errors": {
                    "applicationName": [
                      "'Application Name' must not be empty."
                    ],
                    "certificateQuantity": [
                      "'Certificate Quantity' must be greater than or equal to '1'."
                    ]
                  }
                }
              }
            }
          },
          "404": {
            "description": "No sample is available or the name did not correspond to a known Export Health Certificate. Please verify the name and use the Metadata endpoint to confirm it is available.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemDetails"
                },
                "example": {
                  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.4",
                  "title": "Not Found",
                  "status": 404,
                  "traceId": "00-11dc1a21a6bc20489d3009fb27d57b87-ddc5556eac52a943-00",
                  "errors": { }
                }
              }
            }
          }
        }
      }
    },
    "/ehc-metadata": {
      "get": {
        "tags": [
          "EhcMetadata"
        ],
        "summary": "Retrieve a paginated list of Export Health Certificate metadata matching specified filter parameters.",
        "description": "This endpoint is provided to help with the discovery and usability of the APIs to make the submission\r\nof Export Health Certificates as seamless and successful as possible.\r\n\r\nLinks are provided in the response to navigate around the APIs to find:\r\n- Example payloads for submission of Export Health Certificate requests\r\n- Endpoint to submit new Export Health Certificate requests\r\n- Reference data lists to support the creation process\r\n- Supplementary information to provide context and guidance",
        "operationId": "get-ehc-metadata",
        "parameters": [
          {
            "name": "ehcName",
            "in": "query",
            "description": "Filter by Export Health Certificate name containing text.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "title",
            "in": "query",
            "description": "Filter by Export Health Certificate title containing text.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "isAvailableViaApi",
            "in": "query",
            "description": "Filter by whether the Export Health Certificate is available via the API.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Format - int64. Page number to return.",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Format - int64. Number of items per page.",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved Export Health Certificate metadata.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EhcMetadataPagedResult"
                },
                "example": {
                  "data": [
                    {
                      "_links": [
                        {
                          "href": "https://defra.gov.uk/api/v1/example/123",
                          "rel": "status",
                          "method": "GET"
                        }
                      ],
                      "ehcName": "8293EHC",
                      "title": "Eggs for human consumption to the European Union and Northern Ireland",
                      "isAvailableViaApi": true
                    }
                  ],
                  "records": 1,
                  "pageNumber": 1,
                  "pageSize": 10,
                  "totalRecords": 1,
                  "totalPages": 1
                }
              }
            }
          },
          "400": {
            "description": "The parameters provided in the filter were invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemDetails"
                },
                "example": {
                  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
                  "title": "One or more validation errors occurred.",
                  "status": 400,
                  "traceId": "00-d55147526d044e41aa246671de874080-de7c8222d3b2684a-00",
                  "errors": {
                    "applicationName": [
                      "'Application Name' must not be empty."
                    ],
                    "certificateQuantity": [
                      "'Certificate Quantity' must be greater than or equal to '1'."
                    ]
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Abattoir": {
        "type": "object",
        "properties": {
          "organisation": {
            "$ref": "#/components/schemas/Party"
          },
          "location": {
            "$ref": "#/components/schemas/Location"
          },
          "slaughterDate": {
            "type": "string",
            "description": "Date/time the animal is/was slaughtered.",
            "format": "date-time",
            "example": ""
          }
        },
        "additionalProperties": false,
        "description": "Details of the site where the commodity is slaughtered, including the locations approval number."
      },
      "Address": {
        "type": "object",
        "properties": {
          "postCode": {
            "type": "string",
            "description": "Postcode."
          },
          "coordinates": {
            "$ref": "#/components/schemas/Coordinates"
          },
          "what3Words": {
            "$ref": "#/components/schemas/What3Words"
          },
          "unlocode": {
            "type": "string",
            "description": "United Nations Code for Trade and Transport Locations."
          },
          "lineOne": {
            "type": "string",
            "description": "Address line one."
          },
          "lineTwo": {
            "type": "string",
            "description": "Address line two."
          },
          "lineThree": {
            "type": "string",
            "description": "Address line three."
          },
          "lineFour": {
            "type": "string",
            "description": "Address line four."
          },
          "lineFive": {
            "type": "string",
            "description": "Address line five."
          },
          "city": {
            "type": "string",
            "description": "City."
          },
          "country": {
            "$ref": "#/components/schemas/Country"
          },
          "approvalNumber": {
            "$ref": "#/components/schemas/TradeIdentifier"
          }
        },
        "additionalProperties": false,
        "description": "Address details.\r\n\r\nReference data is available:\r\n- [reference-data/country]($trade-sci-reference-data/country$) to find the details of countries and sub-divisions."
      },
      "ApplicationDetails": {
        "type": "object",
        "properties": {
          "_links": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResourceLink"
            },
            "description": "Hypermedia as the Engine of Application State (HATEOAS) links to related resources."
          },
          "requestId": {
            "type": "string",
            "description": "Unique identifier for the request that triggered the generation of the Application.",
            "format": "uuid",
            "example": "b09fb181-948d-4c0c-9928-bf6d0b7ca357"
          },
          "systemRequestId": {
            "type": "string",
            "description": "System identifier created by the system mastering the Application.",
            "example": "1700000123"
          },
          "customerReference": {
            "type": "string",
            "description": "Customer refenence assigned by the originating customer system.",
            "example": "TRD-AAA111-01"
          },
          "status": {
            "$ref": "#/components/schemas/ApplicationStatus"
          },
          "certificates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CertificateDetails"
            },
            "description": "Certificate details belonging to the Application."
          },
          "createdOn": {
            "type": "string",
            "description": "Date/time when the Application was created.",
            "format": "date-time",
            "example": "2021-02-01T02:05:00.0000000+00:00"
          },
          "lastUpdated": {
            "type": "string",
            "description": "Date/time when the Application was last updated, if an update has occurred.",
            "format": "date-time",
            "example": "2021-02-01T04:40:00.0000000+00:00"
          }
        },
        "additionalProperties": false,
        "description": "Details of the Application and relevant Certificates."
      },
      "ApplicationStatus": {
        "enum": [
          "Submitted",
          "InReview",
          "AwaitingReturn",
          "Completed",
          "Cancelled",
          "Rejected"
        ],
        "type": "string",
        "description": "Statuses for the Application process for an Export Health Certificate."
      },
      "AssertedAuthentication": {
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/TradeIdentifier"
          },
          "actualDateTime": {
            "type": "string",
            "description": "Date/time of this authentication.",
            "format": "date-time",
            "example": ""
          },
          "issueLocation": {
            "$ref": "#/components/schemas/Location"
          },
          "provider": {
            "$ref": "#/components/schemas/Party"
          },
          "locationProvider": {
            "$ref": "#/components/schemas/Party"
          },
          "includedClause": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TradeIdentifier"
            },
            "description": "Included clauses."
          }
        },
        "additionalProperties": false,
        "description": "Asserted authentication mechanisms."
      },
      "AuthenticationType": {
        "enum": [
          "Authority",
          "Veterinary",
          "DEFRAVeterinary"
        ],
        "type": "string"
      },
      "BorderControlPost": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/TradeIdentifier"
          },
          "name": {
            "type": "string",
            "description": "Name of the BCP."
          }
        },
        "additionalProperties": false,
        "description": "Border control post information.\r\n\r\nReference data is available:\r\n- [reference-data/border-control-post]($trade-sci-reference-data/border-control-post$) to find the details of border control posts."
      },
      "CertificateDelivery": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "description": "Method of certificate delivery."
          },
          "address": {
            "$ref": "#/components/schemas/Address"
          },
          "contact": {
            "$ref": "#/components/schemas/Person"
          },
          "attentionOf": {
            "$ref": "#/components/schemas/Person"
          }
        },
        "additionalProperties": false,
        "description": "Certificate delivery details."
      },
      "CertificateDetails": {
        "type": "object",
        "properties": {
          "certificateId": {
            "type": "string",
            "description": "System identifier created by the system mastering the Certificate.",
            "example": "d8e7af71-6d66-442a-9ea1-5a1bad1348ac"
          },
          "certificateSerialNumber": {
            "type": "string",
            "description": "Certificate serial number used on the actual certificate document.",
            "example": "20/2/012345"
          },
          "status": {
            "$ref": "#/components/schemas/CertificateStatus"
          },
          "createdOn": {
            "type": "string",
            "description": "Date/time when the Certificate was created.",
            "format": "date-time",
            "example": "2021-02-01T02:06:00.0000000+00:00"
          },
          "lastUpdated": {
            "type": "string",
            "description": "Date/time when the Certificate was last updated, if an update has occurred.",
            "format": "date-time",
            "example": "2021-02-02T09:10:00.0000000+00:00"
          }
        },
        "additionalProperties": false,
        "description": "Details of the Certificate."
      },
      "CertificateRegion": {
        "enum": [
          "England",
          "Scotland",
          "Wales"
        ],
        "type": "string",
        "description": "Geographical region for certificate issue."
      },
      "CertificateStatus": {
        "enum": [
          "Submitted",
          "PendingReturn",
          "Approved",
          "Cancelled",
          "Rejected"
        ],
        "type": "string",
        "description": "Export Health Certificate statuses."
      },
      "Classification": {
        "type": "object",
        "properties": {
          "systemId": {
            "$ref": "#/components/schemas/TradeIdentifier"
          },
          "name": {
            "type": "string",
            "description": "Name of classification.",
            "example": ""
          },
          "class": {
            "$ref": "#/components/schemas/TradeIdentifier"
          },
          "className": {
            "type": "string",
            "description": "A class name, expressed as text, for this classification."
          }
        },
        "additionalProperties": false,
        "description": "Classification details."
      },
      "CommonProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "A URI reference [RFC3986] that identifies the problem type. This specification encourages that, when dereferenced, it provide human-readable documentation for the problem type (e.g., using HTML [W3C.REC-html5-20141028]).  When this member is not present, its value is assumed to be \"about:blank\"."
          },
          "title": {
            "type": "string",
            "description": "A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see[RFC7231], Section 3.4)."
          },
          "status": {
            "type": "integer",
            "description": "The HTTP status code([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.",
            "format": "int32"
          },
          "detail": {
            "type": "string",
            "description": "A human-readable explanation specific to this occurrence of the problem."
          },
          "instance": {
            "type": "string",
            "description": "A URI reference that identifies the specific occurrence of the problem.It may or may not yield further information if dereferenced."
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Errors associated with the request.",
            "readOnly": true
          }
        },
        "additionalProperties": { },
        "description": "Common API problem format for describing system and user error HTTP API responses based on https://tools.ietf.org/html/rfc7807."
      },
      "Consignment": {
        "type": "object",
        "properties": {
          "exporterConsignmentReferenceId": {
            "type": "string",
            "description": "An exporter reference for the consignment, linking reference materials to the consignment.",
            "example": ""
          },
          "availabilityDueDateTime": {
            "type": "string",
            "description": "Date/time when this consignment is due to be available.",
            "format": "date-time",
            "example": ""
          },
          "exportExitDateTime": {
            "type": "string",
            "description": "Date/time when this consignment transitions through the last one of the UKs Border Control Posts to exit the UK.",
            "format": "date-time",
            "example": ""
          },
          "departureDateTime": {
            "type": "string",
            "description": "Date/time value when this consignment leaves site for the UK exit point.",
            "format": "date-time",
            "example": ""
          },
          "exportSignatureAuthorisedDateTime": {
            "type": "string",
            "description": "Date/time when this consignment is signed off, authorised.",
            "format": "date-time",
            "example": ""
          },
          "inspectionDate": {
            "type": "string",
            "description": "Inspetion date/time for the consignment.",
            "format": "date-time",
            "example": ""
          },
          "collectionDate": {
            "type": "string",
            "description": "Collection date/time for the consignment.",
            "format": "date-time",
            "example": ""
          },
          "consignmentIdentification": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsignmentIdentification"
            },
            "description": "Details on how the elements of the consignment can be identified."
          },
          "consignmentSeal": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsignmentSeal"
            },
            "description": "Details of seals used to secure the consignment."
          },
          "shipStores": {
            "type": "string",
            "description": "Describes destination where the final destination is outside of the trading block.",
            "example": ""
          },
          "consignor": {
            "$ref": "#/components/schemas/Party"
          },
          "consignorAgent": {
            "$ref": "#/components/schemas/Party"
          },
          "consignee": {
            "$ref": "#/components/schemas/Party"
          },
          "responsible": {
            "$ref": "#/components/schemas/Party"
          },
          "origin": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Location"
            },
            "description": "Describe the origin of the individual consignment trade line commodities."
          },
          "exportLocation": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Location"
            },
            "description": "The export location for this consignment."
          },
          "reExportCountry": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Country"
            },
            "description": "Re-export countries for this consignment."
          },
          "storageEvent": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Storage events."
          },
          "importLocation": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Location"
            },
            "description": "Detail significant border crossings. \r\nOccurrence one (1) must specify the point of entry into the trading block.\r\nOccurrence two (2) defines the final destination location. \r\nThe final destination will be superseded with the information provided in the Ship Store location."
          },
          "consigneeReceiptLocation": {
            "$ref": "#/components/schemas/Location"
          },
          "transitLocation": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Location"
            },
            "description": "Transit locations for this consignment. Provide the ordering as it will be transported."
          },
          "loadingLocation": {
            "$ref": "#/components/schemas/Location"
          },
          "unloadingLocation": {
            "$ref": "#/components/schemas/Location"
          },
          "inspectionLocation": {
            "$ref": "#/components/schemas/Location"
          },
          "examinationEvent": {
            "type": "string",
            "description": "The examination event for this consignment."
          },
          "carrier": {
            "$ref": "#/components/schemas/Party"
          },
          "despatchParty": {
            "$ref": "#/components/schemas/Party"
          },
          "deliveryParty": {
            "$ref": "#/components/schemas/Party"
          },
          "customsTransitAgent": {
            "$ref": "#/components/schemas/Party"
          },
          "transportMovement": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Transport"
            },
            "description": "Details the means and mode of transport the consignment will utilise, including any transport identification marks and equipment used to move the\r\ncommodity to the loading location."
          }
        },
        "additionalProperties": false,
        "description": "Collates, collections of commodities, goods together. Defining the parameters by which the consignment will \r\ntransport between Consignor (Exporter) and Consignee (Importer).\r\n\r\nReference data is available:\r\n- [reference-data/country]($trade-sci-reference-data/country$) to find the details of countries and sub-divisions."
      },
      "ConsignmentIdentification": {
        "type": "object",
        "properties": {
          "mark": {
            "type": "string",
            "description": "Consignment identification mark.",
            "example": ""
          }
        },
        "additionalProperties": false,
        "description": "Details on how the elements of the consignment can be identified."
      },
      "ConsignmentLine": {
        "type": "object",
        "properties": {
          "consignmentSummary": {
            "$ref": "#/components/schemas/ConsignmentSummary"
          },
          "physicalPackage": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Package"
            },
            "description": "A physical package for this consignment line."
          },
          "exporterConsignmentLineReferenceId": {
            "type": "string",
            "description": "An exporter reference for the consignment line.",
            "example": ""
          },
          "tradeLineItem": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TradeLineItem"
            },
            "description": "Trade line items included in this consignment line."
          }
        },
        "additionalProperties": false,
        "description": "Provides a way of grouping similar commodities within a Consignment together for processing.\r\n\r\nReference data is available:\r\n- [reference-data/package-type]($trade-sci-reference-data/package-type$) to find the details of package types."
      },
      "ConsignmentSeal": {
        "type": "object",
        "properties": {
          "sealNo": {
            "type": "string",
            "description": "Seal number.",
            "example": ""
          }
        },
        "additionalProperties": false,
        "description": "Details of seals used to secure the consignment."
      },
      "ConsignmentSummary": {
        "type": "object",
        "properties": {
          "totalQuantity": {
            "$ref": "#/components/schemas/Measure"
          },
          "totalPackages": {
            "$ref": "#/components/schemas/Package"
          },
          "totalMeasures": {
            "$ref": "#/components/schemas/TradeMeasure"
          }
        },
        "additionalProperties": false,
        "description": "Details several measures describing the consignment line.\r\n\r\nReference data is available:\r\n- [reference-data/package-type]($trade-sci-reference-data/package-type$) to find the details of package types."
      },
      "ContactDetail": {
        "type": "object",
        "properties": {
          "phoneNumber": {
            "type": "string",
            "description": "Contact telephone number."
          },
          "emailAddress": {
            "type": "string",
            "description": "Contact email address."
          }
        },
        "additionalProperties": false,
        "description": "Person contact detail."
      },
      "Container": {
        "type": "object",
        "properties": {
          "containerId": {
            "$ref": "#/components/schemas/TradeIdentifier"
          },
          "sealId": {
            "$ref": "#/components/schemas/TradeIdentifier"
          }
        },
        "additionalProperties": false,
        "description": "Details of the container, including markings."
      },
      "Coordinates": {
        "type": "object",
        "properties": {
          "latitude": {
            "type": "number",
            "description": "Latitude.",
            "format": "double",
            "example": 51.509865
          },
          "longitude": {
            "type": "number",
            "description": "Longitude.",
            "format": "double",
            "example": -0.118092
          }
        },
        "additionalProperties": false,
        "description": "Geographic co-ordinates."
      },
      "CopyIndicator": {
        "type": "object",
        "properties": {
          "content": {
            "type": "string",
            "description": "The value of the indicator.",
            "example": ""
          },
          "format": {
            "type": "string",
            "description": "Whether the indicator is numeric, textual or binary.",
            "example": ""
          }
        },
        "additionalProperties": false,
        "description": "The indication of whether or not this exchanged document is a copy."
      },
      "Country": {
        "type": "object",
        "properties": {
          "countryId": {
            "$ref": "#/components/schemas/TradeIdentifier"
          },
          "countrySubDivisionId": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TradeIdentifier"
            },
            "description": "ISO country sub division code identifier."
          },
          "market": {
            "type": "string",
            "description": "The trading market / block the country is part of."
          }
        },
        "additionalProperties": false,
        "description": "Country details.\r\n\r\nReference data is available:\r\n- [reference-data/country]($trade-sci-reference-data/country$) to find the details of countries and sub-divisions."
      },
      "CuttingPlant": {
        "type": "object",
        "properties": {
          "organisation": {
            "$ref": "#/components/schemas/Party"
          },
          "location": {
            "$ref": "#/components/schemas/Location"
          }
        },
        "additionalProperties": false,
        "description": "The location of the site where the commodity is prepared, including the locations approval number."
      },
      "EhcApplication": {
        "type": "object",
        "properties": {
          "certificateRequiredByDate": {
            "type": "string",
            "description": "Certificate required by date to facilitate the release of the consignment.",
            "format": "date-time",
            "example": "2021-04-01T12:00:00.0000000+00:00"
          },
          "certificateRegion": {
            "$ref": "#/components/schemas/CertificateRegion"
          },
          "certifier": {
            "$ref": "#/components/schemas/Party"
          },
          "certificateQuantity": {
            "type": "integer",
            "description": "Certificate quantity type for this application.",
            "format": "int32",
            "example": 1
          },
          "certificateDelivery": {
            "$ref": "#/components/schemas/CertificateDelivery"
          }
        },
        "additionalProperties": false,
        "description": "Provides an area in the payload structure where Customers provide parameters to support the application for an Export Health Certificate (EHC).\r\n\r\nCertificate delivery address if needed, which certifier they wish to carry out the inspection(s).\r\n\r\nReference data is available:\r\n- [reference-data/certifier]($trade-sci-reference-data/certifier$) to find the details of available certifiers."
      },
      "EhcApplicationMessage": {
        "type": "object",
        "properties": {
          "ehcApplication": {
            "$ref": "#/components/schemas/EhcApplication"
          },
          "exchangeDocument": {
            "$ref": "#/components/schemas/ExchangeDocument"
          },
          "consignment": {
            "$ref": "#/components/schemas/Consignment"
          },
          "consignmentLine": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsignmentLine"
            },
            "description": "Details of the consignment lines that are part of the consignment."
          }
        },
        "additionalProperties": false,
        "description": "Export Health Certificate message for submission.",
        "example": "Failed to generate sample value: generated sample is too big."
      },
      "EhcMetadata": {
        "type": "object",
        "properties": {
          "_links": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResourceLink"
            },
            "description": "Hypermedia as the Engine of Application State (HATEOAS) links to related resources."
          },
          "ehcName": {
            "type": "string",
            "description": "EHC name.",
            "example": "8293EHC"
          },
          "title": {
            "type": "string",
            "description": "Title / description.",
            "example": "Eggs for human consumption to the European Union and Northern Ireland"
          },
          "isAvailableViaApi": {
            "type": "boolean",
            "description": "Is this EHC available via the API?",
            "example": true
          }
        },
        "additionalProperties": false,
        "description": "Export Health Certificate metadata."
      },
      "EhcMetadataPagedResult": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EhcMetadata"
            },
            "description": "Specified page within the data set."
          },
          "records": {
            "type": "integer",
            "description": "Number of records in the current page.",
            "format": "int64",
            "example": "1.0"
          },
          "pageNumber": {
            "type": "integer",
            "description": "Page number.",
            "format": "int64",
            "example": "1.0"
          },
          "pageSize": {
            "type": "integer",
            "description": "Page size.",
            "format": "int64",
            "example": "10.0"
          },
          "totalRecords": {
            "type": "integer",
            "description": "Total number of records across all pages.",
            "format": "int64",
            "example": "1.0"
          },
          "totalPages": {
            "type": "integer",
            "description": "Total number of pages.",
            "format": "int64",
            "readOnly": true,
            "example": "1.0"
          }
        },
        "additionalProperties": false,
        "description": "Paginated response from the API."
      },
      "EhcNameVersion": {
        "type": "object",
        "properties": {
          "ehcName": {
            "type": "string",
            "description": "Name of the EHC.",
            "example": "8293EHC"
          },
          "ehcVersion": {
            "type": "string",
            "description": "Version number of the EHC.",
            "example": "1.8"
          }
        },
        "additionalProperties": false,
        "description": "Name and version of an Export Health Certificate."
      },
      "ExchangeDocument": {
        "type": "object",
        "properties": {
          "ehc": {
            "$ref": "#/components/schemas/EhcNameVersion"
          },
          "exporterApplicationReferenceId": {
            "type": "string",
            "description": "Exporter application reference to enable the tracking of the application through its certificate assurance and issuing life cycle.",
            "example": "TRD-ABC-001"
          },
          "description": {
            "type": "string",
            "description": "A textual description of this exchange document.",
            "example": ""
          },
          "certificateType": {
            "$ref": "#/components/schemas/TradeIdentifier"
          },
          "exchangeDocumentStatus": {
            "$ref": "#/components/schemas/TypeCode"
          },
          "issueDateTime": {
            "type": "string",
            "description": "Date/time for the issuance of this exchange document.",
            "format": "date-time"
          },
          "copyIndicator": {
            "$ref": "#/components/schemas/CopyIndicator"
          },
          "includeNote": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IncludeNote"
            },
            "description": "A note included in this exchange document."
          },
          "referenceDocument": {
            "type": "string",
            "description": "A document referenced by this exchanged document.",
            "example": ""
          },
          "signatoryAuthentication": {
            "type": "string",
            "description": "A signatory document authentication for this exchange document.",
            "example": ""
          },
          "veterinarianPracticeSignatoryAuthentication": {
            "$ref": "#/components/schemas/SignatoryAuthentication"
          },
          "veterinarian": {
            "$ref": "#/components/schemas/Person"
          }
        },
        "additionalProperties": false,
        "description": "Confirms the level of regulatory assurance to any importing and any transit countries competent authorities the goods have been measured against. Including references to supporting documents."
      },
      "FactoryVessel": {
        "type": "object",
        "properties": {
          "organisation": {
            "$ref": "#/components/schemas/Party"
          },
          "location": {
            "$ref": "#/components/schemas/Location"
          }
        },
        "additionalProperties": false,
        "description": "Details of the vessel, including its approval number."
      },
      "HatcheryLocation": {
        "type": "object",
        "properties": {
          "organisation": {
            "$ref": "#/components/schemas/Party"
          },
          "location": {
            "$ref": "#/components/schemas/Location"
          }
        },
        "additionalProperties": false,
        "description": "The location of the site where the commodity is incubated, hatched and reared, plus approval number."
      },
      "IncludeNote": {
        "type": "object",
        "properties": {
          "noteId": {
            "$ref": "#/components/schemas/TradeIdentifier"
          },
          "note": {
            "type": "string",
            "description": "The note text included in the exchange document.",
            "example": ""
          }
        },
        "additionalProperties": false,
        "description": "A note included in an exchange document."
      },
      "Location": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/TradeIdentifier"
          },
          "name": {
            "type": "string",
            "description": "Location site name, an organisations name."
          },
          "country": {
            "$ref": "#/components/schemas/Country"
          },
          "address": {
            "$ref": "#/components/schemas/Address"
          },
          "approvalNumber": {
            "$ref": "#/components/schemas/TradeIdentifier"
          },
          "temperature": {
            "$ref": "#/components/schemas/Temperature"
          },
          "function": {
            "$ref": "#/components/schemas/TradeIdentifier"
          },
          "borderControlPost": {
            "$ref": "#/components/schemas/BorderControlPost"
          }
        },
        "additionalProperties": false,
        "description": "Details of a location including approval numbers for the establishment.\r\n\r\nReference data is available:\r\n- [reference-data/country]($trade-sci-reference-data/country$) to find the details of countries and sub-divisions."
      },
      "ManufacturingPlant": {
        "type": "object",
        "properties": {
          "organisation": {
            "$ref": "#/components/schemas/Party"
          },
          "location": {
            "$ref": "#/components/schemas/Location"
          }
        },
        "additionalProperties": false,
        "description": "The location of the site where the commodity is manufactured, including the approval number"
      },
      "Measure": {
        "type": "object",
        "properties": {
          "value": {
            "type": "number",
            "description": "The numeric value determined by measuring an object.",
            "format": "double"
          },
          "unit": {
            "type": "string",
            "description": "Type of unit describing the measure."
          },
          "version": {
            "type": "string",
            "description": "The version of the measure unit code list."
          },
          "measureNote": {
            "type": "string",
            "description": "Information or additional detail regarding the measure."
          }
        },
        "additionalProperties": false,
        "description": "A numeric value determined by measuring an object along with the specified unit of measure."
      },
      "Note": {
        "type": "object",
        "properties": {
          "subject": {
            "type": "string",
            "description": "The subject, expressed as text, of this note."
          },
          "content": {
            "type": "string",
            "description": "Content, expressed as text, in this note."
          },
          "contentCode": {
            "$ref": "#/components/schemas/TradeIdentifier"
          },
          "subjectCode": {
            "$ref": "#/components/schemas/TradeIdentifier"
          }
        },
        "additionalProperties": false,
        "description": "A note providing additional information."
      },
      "Package": {
        "type": "object",
        "properties": {
          "level": {
            "$ref": "#/components/schemas/TradeIdentifier"
          },
          "type": {
            "$ref": "#/components/schemas/TradeIdentifier"
          },
          "itemQuantity": {
            "$ref": "#/components/schemas/Measure"
          },
          "nominalGrossWeight": {
            "$ref": "#/components/schemas/Measure"
          },
          "nominalGrossVolume": {
            "$ref": "#/components/schemas/Measure"
          }
        },
        "additionalProperties": false,
        "description": "Describe the physical package containing the commodities.\r\n\r\nReference data is available:\r\n- [reference-data/package-type]($trade-sci-reference-data/package-type$) to find the details of package types."
      },
      "PackageCount": {
        "type": "object",
        "properties": {
          "quantity": {
            "type": "number",
            "description": "Count of the number number of physical packages.",
            "format": "double"
          },
          "quantityUnits": {
            "type": "string",
            "description": "Unit of measure for the count."
          }
        },
        "additionalProperties": false,
        "description": "A count of packages containing the commodity."
      },
      "PackingCentre": {
        "type": "object",
        "properties": {
          "organisation": {
            "$ref": "#/components/schemas/Party"
          },
          "location": {
            "$ref": "#/components/schemas/Location"
          }
        },
        "additionalProperties": false,
        "description": "The location of the site where the commodity is packed, including the approval number."
      },
      "Party": {
        "type": "object",
        "properties": {
          "uid": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TradeIdentifier"
            },
            "description": "Identifier the party is known by."
          },
          "name": {
            "type": "string",
            "description": "Name of the party.",
            "example": ""
          },
          "address": {
            "$ref": "#/components/schemas/Address"
          },
          "contact": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Person"
            },
            "description": "Details of relevant persons at the Party."
          },
          "specifiedPerson": {
            "$ref": "#/components/schemas/Person"
          }
        },
        "additionalProperties": false,
        "description": "The definition of a responsible party in the chain with contact details."
      },
      "Period": {
        "type": "object",
        "properties": {
          "startDateTime": {
            "type": "string",
            "description": "Date/time for the start of this period.",
            "format": "date-time"
          },
          "endDateTime": {
            "type": "string",
            "description": "Date/time for the end of this period.",
            "format": "date-time"
          },
          "durationMeasure": {
            "$ref": "#/components/schemas/Measure"
          }
        },
        "additionalProperties": false,
        "description": "The completion period for this process."
      },
      "Person": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Unstructured / preferred name as text.",
            "example": ""
          },
          "fullName": {
            "$ref": "#/components/schemas/PersonName"
          },
          "contactDetail": {
            "$ref": "#/components/schemas/ContactDetail"
          },
          "certification": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TradeIdentifier"
            },
            "description": "Details of the certifications the representative holds if applicable."
          }
        },
        "additionalProperties": false,
        "description": "Persons details."
      },
      "PersonName": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "description": "Title.",
            "example": "Mr"
          },
          "givenName": {
            "type": "string",
            "description": "Given / first name.",
            "example": "Steven"
          },
          "middleNames": {
            "type": "string",
            "description": "Middle names.",
            "example": "John"
          },
          "surname": {
            "type": "string",
            "description": "Surname / last name.",
            "example": "Smith"
          }
        },
        "additionalProperties": false,
        "description": "Structured name for a person."
      },
      "Product": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "A textual description of this product.",
            "example": ""
          },
          "commonName": {
            "type": "string",
            "description": "A common name, expressed as text of this product.",
            "example": ""
          },
          "scientificName": {
            "type": "string",
            "description": "A scientific name, expressed as text, of this product.",
            "example": ""
          },
          "speciesName": {
            "type": "string",
            "description": "A species name, expressed as text, of this product.",
            "example": ""
          },
          "cites": {
            "type": "string",
            "description": "A CITES identified product.",
            "example": ""
          },
          "taricCode": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "TARIC codes for this product."
          },
          "eppoCode": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "EPPO codes for this product."
          },
          "naturalTemperatureCategory": {
            "$ref": "#/components/schemas/TemperatureCategory"
          }
        },
        "additionalProperties": false,
        "description": "Details of the Product including identifiers for the commodity."
      },
      "ProductCharacteristic": {
        "type": "object",
        "properties": {
          "characteristic": {
            "type": "string",
            "description": "Name identifier for the characteristic."
          },
          "characteristicValue": {
            "$ref": "#/components/schemas/ProductCharacteristicValue"
          }
        },
        "additionalProperties": false,
        "description": "Product characteristic details."
      },
      "ProductCharacteristicValue": {
        "type": "object",
        "properties": {
          "addressValue": {
            "$ref": "#/components/schemas/Address"
          },
          "booleanValue": {
            "type": "boolean",
            "description": "Value expressed as a Boolean."
          },
          "stringValue": {
            "type": "string",
            "description": "Value expressed as text."
          },
          "dateTimeValue": {
            "type": "string",
            "description": "Value expressed as a date / time.",
            "format": "date-time"
          },
          "numberValue": {
            "type": "number",
            "description": "Value expressed as a number.",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Value for a characteristic."
      },
      "ProductIdentification": {
        "type": "object",
        "properties": {
          "mark": {
            "$ref": "#/components/schemas/TradeIdentifier"
          }
        },
        "additionalProperties": false,
        "description": "Identification marks relating to the product."
      },
      "ProductSeal": {
        "type": "object",
        "properties": {
          "sealId": {
            "$ref": "#/components/schemas/TradeIdentifier"
          }
        },
        "additionalProperties": false,
        "description": "Seal number(s) and issuing authority."
      },
      "RequestStatus": {
        "enum": [
          "Accepted",
          "SubmissionError",
          "Submitted"
        ],
        "type": "string",
        "description": "Statuses for the asynchronous submission of a request message into the system."
      },
      "RequestStatusDetails": {
        "type": "object",
        "properties": {
          "_links": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResourceLink"
            },
            "description": "Hypermedia as the Engine of Application State (HATEOAS) links to related resources."
          },
          "requestId": {
            "type": "string",
            "description": "Unique identifier for the request that triggered the generation of the Application.",
            "format": "uuid",
            "example": "b09fb181-948d-4c0c-9928-bf6d0b7ca357"
          },
          "customerReference": {
            "type": "string",
            "description": "Customer refenence assigned by the originating customer system.",
            "example": "TRD-AAA111-01"
          },
          "status": {
            "$ref": "#/components/schemas/RequestStatus"
          },
          "createdOn": {
            "type": "string",
            "description": "Date/time when the Request was created.",
            "format": "date-time",
            "example": "2021-02-01T02:05:00.0000000+00:00"
          },
          "lastUpdated": {
            "type": "string",
            "description": "Date/time when the Request was last updated, if an update has occurred.",
            "format": "date-time",
            "example": "2021-02-01T04:40:00.0000000+00:00"
          }
        },
        "additionalProperties": false,
        "description": "Details of the Request in the system prior to it potentially becoming an Application."
      },
      "ResourceLink": {
        "type": "object",
        "properties": {
          "href": {
            "type": "string",
            "description": "Uniform Resource Identifier of the resource being linked to.",
            "example": "https://defra.gov.uk/api/v1/example/123"
          },
          "rel": {
            "type": "string",
            "description": "Relationship of the resource.",
            "example": "status"
          },
          "method": {
            "type": "string",
            "description": "HTTP method to use when calling the resource.",
            "example": "GET"
          }
        },
        "additionalProperties": false,
        "description": "Hypermedia as the Engine of Application State (HATEOAS) resource link."
      },
      "SignatoryAuthentication": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the organisation providing signoff for the consignment."
          },
          "signatoryAuthenticationId": {
            "type": "string",
            "description": "Registration identifier for the organisation."
          },
          "type": {
            "$ref": "#/components/schemas/AuthenticationType"
          },
          "address": {
            "$ref": "#/components/schemas/Address"
          }
        },
        "additionalProperties": false,
        "description": "An signatory document authentication for an exchanged document."
      },
      "StorageLocation": {
        "type": "object",
        "properties": {
          "organisation": {
            "$ref": "#/components/schemas/Party"
          },
          "location": {
            "$ref": "#/components/schemas/Location"
          },
          "storageDate": {
            "type": "string",
            "description": "Date/time the products are moved into storage.",
            "format": "date-time"
          },
          "storageExpiryDate": {
            "type": "string",
            "description": "Date/time the products in storage expires.",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "The location of the site where the commodity is stored, including approval number and the conditions the store stores the commodity."
      },
      "Temperature": {
        "type": "object",
        "properties": {
          "value": {
            "$ref": "#/components/schemas/Measure"
          },
          "minimumValue": {
            "$ref": "#/components/schemas/Measure"
          },
          "maximumValue": {
            "$ref": "#/components/schemas/Measure"
          },
          "type": {
            "$ref": "#/components/schemas/TypeCode"
          },
          "transportTemperatureCategory": {
            "$ref": "#/components/schemas/TemperatureCategory"
          }
        },
        "additionalProperties": false,
        "description": "A temperature setting, such as the storage temperature or operational temperature, for this piece of transport equipment.\r\n\r\nReference data is available:\r\n- [reference-data/measurement-temperature]($trade-sci-reference-data/measurement-temperature$) to find the temperature measurement details."
      },
      "TemperatureCategory": {
        "enum": [
          "Ambient",
          "Chilled",
          "Frozen"
        ],
        "type": "string",
        "description": "Temperature category."
      },
      "TradeIdentifier": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "A character string to identify and distinguish uniquely, one instance of an object in an identification scheme from all other objects within the same scheme."
          },
          "name": {
            "type": "string",
            "description": "A character string (letters, figures or symbols) that for brevity and/or language independence may be used to represent or replace a definitive value or text of an Attribute."
          },
          "schemaId": {
            "type": "string",
            "description": "The identification of the identification scheme."
          },
          "schemaName": {
            "type": "string",
            "description": "The name of the identification scheme."
          },
          "agencyId": {
            "type": "string",
            "description": "The identification of the agency that maintains the identification scheme."
          },
          "agencyName": {
            "type": "string",
            "description": "The name of the agency that maintains the identification scheme."
          },
          "versionId": {
            "type": "string",
            "description": "The Version of the identification scheme."
          },
          "uniformResourceId": {
            "type": "string",
            "description": "The Uniform Resource Identifier that identifies where the identification scheme data is located."
          },
          "schemaUniformResourceId": {
            "type": "string",
            "description": "The Uniform Resource Identifier that identifies where the identification scheme is located."
          },
          "language": {
            "type": "string",
            "description": "The identifier of the language used in the corresponding text string.",
            "example": "EN"
          }
        },
        "additionalProperties": false,
        "description": "A character string to identify and distinguish uniquely, one instance of an object in an identification scheme \r\nfrom all other objects in the same scheme together with relevant supplementary information.A character string \r\nto identify and distinguish uniquely, one instance of an object in an identification scheme from all other \r\nobjects in the same scheme together with relevant supplementary information."
      },
      "TradeLineItem": {
        "type": "object",
        "properties": {
          "sequenceNumber": {
            "type": "integer",
            "description": "The sequence number for this trade line item. Starting at 1.",
            "format": "int32",
            "example": 1
          },
          "exporterTradeLineReferenceId": {
            "type": "string",
            "description": "An exporter trade line reference for the trade line commodity.",
            "example": ""
          },
          "tradeProduct": {
            "$ref": "#/components/schemas/Product"
          },
          "productCharacteristic": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductCharacteristic"
            },
            "description": "Detail post-manufacturing characteristics for the resulting product"
          },
          "animalCharacteristic": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductCharacteristic"
            },
            "description": "Detail characteristics of the animal, requested attributes, tests and vaccinations."
          },
          "aquacultureCharacteristic": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductCharacteristic"
            },
            "description": "Aquaculture characteristics."
          },
          "container": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Container"
            },
            "description": "Details of the container, including markings."
          },
          "productSeal": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductSeal"
            },
            "description": "Seal number(s) and issuing authority."
          },
          "productIdentification": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductIdentification"
            },
            "description": "Identification marks relating to the product."
          },
          "productionBatch": {
            "$ref": "#/components/schemas/TradeIdentifier"
          },
          "intendedUse": {
            "type": "string",
            "description": "An intended use, expressed as text, of this trade line item."
          },
          "expiryDateTime": {
            "type": "string",
            "description": "For products with a life span, provide the expiry date time for the product or output.",
            "format": "date-time",
            "example": ""
          },
          "productImportDate": {
            "type": "string",
            "description": "Import date.",
            "format": "date-time",
            "example": ""
          },
          "measure": {
            "$ref": "#/components/schemas/TradeMeasure"
          },
          "additionalInformationNote": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Note"
            },
            "description": "A note providing additional information for this trade line item."
          },
          "applicableClassification": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Classification"
            },
            "description": "A classification applicable to this trade line item."
          },
          "physicalPackageCount": {
            "$ref": "#/components/schemas/PackageCount"
          },
          "physicalPackage": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Package"
            },
            "description": "Describe the physical package(s) containing the commodities."
          },
          "transportMovement": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Transport"
            },
            "description": "Describes to equipment used to move the commodity to the loading location."
          },
          "origin": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Location"
            },
            "description": "Details of the commodities origin, country and subdivision of the country."
          },
          "appliedProcess": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TradeProcess"
            },
            "description": "Applied processes."
          },
          "assertedAuthentication": {
            "$ref": "#/components/schemas/AssertedAuthentication"
          },
          "manufacturingPlant": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ManufacturingPlant"
            },
            "description": "The location of the site where the commodity is manufactured, including the approval number."
          },
          "abattoir": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Abattoir"
            },
            "description": "Details of the site where the commodity is slaughtered, including the locations approval number."
          },
          "cuttingPlant": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CuttingPlant"
            },
            "description": "The location of the site where the commodity is prepared, including the locations approval number."
          },
          "factoryVessel": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FactoryVessel"
            },
            "description": "Details of the vessel, including its approval number."
          },
          "packingCentre": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PackingCentre"
            },
            "description": "The location of the site where the commodity is packed, including the approval number."
          },
          "storage": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StorageLocation"
            },
            "description": "The location of the site where the commodity is stored, including approval number and the conditions the store stores the commodity."
          },
          "poultryHatchery": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HatcheryLocation"
            },
            "description": "The location of the site where the commodity is incubated, hatched and reared, plus approval number."
          },
          "veterinarianPracticeSignatoryAuthentication": {
            "$ref": "#/components/schemas/SignatoryAuthentication"
          }
        },
        "additionalProperties": false,
        "description": "Describes the commodity, details processes. Functions relating to the commodity. \r\n\r\nReference data is available:\r\n- [reference-data/package-type]($trade-sci-reference-data/package-type$) to find the details of package types."
      },
      "TradeMeasure": {
        "type": "object",
        "properties": {
          "quantity": {
            "$ref": "#/components/schemas/Measure"
          },
          "quantityMeasureUnit": {
            "type": "string",
            "description": "Quantity measure unit.",
            "example": ""
          },
          "netWeight": {
            "$ref": "#/components/schemas/Measure"
          },
          "grossWeight": {
            "$ref": "#/components/schemas/Measure"
          },
          "netVolume": {
            "$ref": "#/components/schemas/Measure"
          },
          "grossVolume": {
            "$ref": "#/components/schemas/Measure"
          },
          "measureNote": {
            "type": "string",
            "description": "Information or additional detail regarding the measure."
          }
        },
        "additionalProperties": false,
        "description": "Trade measurement details."
      },
      "TradeProcess": {
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/TradeIdentifier"
          },
          "completionPeriod": {
            "$ref": "#/components/schemas/Period"
          },
          "operationLocation": {
            "$ref": "#/components/schemas/Location"
          },
          "operator": {
            "$ref": "#/components/schemas/Party"
          }
        },
        "additionalProperties": false,
        "description": "Trade process details."
      },
      "Transport": {
        "type": "object",
        "properties": {
          "equipment": {
            "$ref": "#/components/schemas/TradeIdentifier"
          },
          "sealId": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TradeIdentifier"
            },
            "description": "Seal identifiers."
          },
          "transportTemperatureCategory": {
            "$ref": "#/components/schemas/TemperatureCategory"
          },
          "meansOfTransport": {
            "$ref": "#/components/schemas/TradeIdentifier"
          },
          "meansOfTransportIdentification": {
            "type": "string",
            "description": "Identification mark attached to the means of transport.",
            "example": ""
          },
          "approvalNumber": {
            "$ref": "#/components/schemas/TradeIdentifier"
          },
          "document": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TransportDocument"
            },
            "description": "Document names, supporting the consignment."
          }
        },
        "additionalProperties": false,
        "description": "Details the means and mode of transport the consignment will utilise, including any transport identification marks and equipment used to move the\r\ncommodity to the loading location.\r\n\r\nReference data is available:\r\n- [reference-data/transport-means]($trade-sci-reference-data/transport-means$) to find the details of means of transport."
      },
      "TransportDocument": {
        "type": "object",
        "properties": {
          "reference": {
            "type": "string",
            "description": "Document reference."
          }
        },
        "additionalProperties": false,
        "description": "Transport document details."
      },
      "TypeCode": {
        "type": "object",
        "properties": {
          "content": {
            "type": "string",
            "description": "A character string (letters, figures or symbols) that for brevity and/or language independence may be used to represent or replace a definitive value or text of an Attribute.",
            "example": "17"
          },
          "codeListId": {
            "type": "string",
            "description": "The identification of a list of codes.",
            "example": ""
          },
          "codeListAgencyId": {
            "type": "string",
            "description": "An agency that maintains one or more code lists.",
            "example": ""
          },
          "codeListAgencyName": {
            "type": "string",
            "description": "The name of the agency that maintains the code list.",
            "example": ""
          },
          "codeListName": {
            "type": "string",
            "description": "The name of a list of codes.",
            "example": ""
          },
          "codeListVersion": {
            "type": "string",
            "description": "The Version of the code list.",
            "example": ""
          },
          "name": {
            "type": "string",
            "description": "The textual equivalent of the code content.",
            "example": "Requested"
          },
          "language": {
            "type": "string",
            "description": "The identifier of the language used in the corresponding text string.",
            "example": "EN"
          }
        },
        "additionalProperties": false,
        "description": "A character string (letters, figures or symbols) that for brevity and/or language independence \r\nmay be used to represent or replace a definitive value or text of an Attribute together with \r\nrelevant supplementary information."
      },
      "What3Words": {
        "type": "object",
        "properties": {
          "wordOne": {
            "type": "string",
            "description": "Word one.",
            "example": ""
          },
          "wordTwo": {
            "type": "string",
            "description": "Word two.",
            "example": ""
          },
          "wordThree": {
            "type": "string",
            "description": "Word three.",
            "example": ""
          }
        },
        "additionalProperties": false,
        "description": "What 3 Words location identifier details."
      }
    },
    "securitySchemes": {
      "apiKeyHeader": {
        "type": "apiKey",
        "name": "Ocp-Apim-Subscription-Key",
        "in": "header"
      },
      "apiKeyQuery": {
        "type": "apiKey",
        "name": "subscription-key",
        "in": "query"
      },
      "oauth2OAuth-Server": {
        "type": "oauth2",
        "flows": {
          "clientCredentials": {
            "tokenUrl": "https://login.microsoftonline.com/c9d74090-b4e6-4b04-981d-e6757a160812/oauth2/v2.0/token",
            "scopes": {
              "api://tst-futuretrade-ext.defra.gov.uk/.default": ""
            }
          }
        }
      }
    }
  }
}