Updated date format

Updated date format

#%RAML 1.0
---
title: Tracking API
version: v2
baseUri: https://tracking.bring.com/api
types:
  Consignment:
    type: object
    properties:
      consignmentSet:
        type: ConsignmentSet
      apiVersion:
        type: ApiVersion
  ConsignmentSet:
    type: object
    description: ?
    properties:
      consignmentId:
        type: string
      previousConsignmentId:
        type: string
        required: false
      packageSet:
        type: Package[]
      recipientAddress:
        type: Address
        required: false
      recipientHandlingAddress:
        type: Address
        required: false
      senderReference:
        type: string
      senderCustomerNumber:
        type: string
      senderCustomerMasterNumber:
        type: string
      senderName:
        type: string
      senderAddress:
        type: Address
        required: false
      senderCustomerType:
        type: string
      recipientCustomerNumber:
        type: string
      recipientCustomerMasterNumber:
        type: string
      recipientCustomerType:
        type: string
      isPickupNoticeAvailable:
        type: boolean
      consignmentActionSet:
        type: ConsignmentAction
        required: false
      senderLogo:
        type: string
        required: false
      totalListPrice:
        type: string
        required: false
      totalContractPrice:
        type: string
        required: false
      listPricePackageCount:
        type: string
        required: false
      contractPricePackageCount:
        type: string
        required: false
      currencyCode:
        type: string
        required: false
      totalWeightInKgs:
        type: number
      totalVolumeInDm3:
        type: number
  ApiVersion:
    type: object
  Package:
    type: object
    properties:
      statusDescription:
        type: string
      descriptions:
        type: string[]
        required: false
      packageNumber:
        type: string
      previousPackageNumber:
        type: string
      productName:
        type: string
      productCode:
        type: string
      productLink:
        type: string
        required: false
      brand:
        type: string
      lengthInCm:
        type: number
      widthInCm:
        type: number
      heightInCm:
        type: number
      volumeInDm3:
        type: number
      weightInKgs:
        type: number
      listPrice:
        type: string
        required: false
      contractPrice:
        type: string
        required: false
      currencyCode:
        type: string
        required: false
      pickupCode:
        type: string
        required: false
      shelfNumber:
        type: string
        required: false
      dateOfReturn:
        type: string
        required: false
      dateOfEstimatedDelivery:
        type: string
        required: false
      dateOfDelivery:
        type: string
        required: false
      senderName:
        type: string
        required: false
      senderAddress:
        type: Address
        required: false
      recipientAddress:
        type: Address
        required: false
      recipientHandlingAddress:
        type: Address
        required: false
      eventSet:
        type: Event[]
      additionalServiceSet:
        type: AdditionalService[]
        required: false
      requestPackage:
        type: requestedPackageType
        required: false
  Event:
    type: object
    properties:
      description:
        type: string
      status:
        type: string
      lmEventCode:
        type: string
        required: false
      recipientSignature:
        type: recipientSignatureType
      unitId:
        type: string
      unitInformationUrl:
        type: string
        required: false
      unitType:
        type: string
      postalCode:
        type: string
      city:
        type: string
      countryCode:
        type: string
      country:
        type: string
      dateIso:
        type: string
      displayDate:
        type: string
      displayTime:
        type: string
      consignmentEvent:
        type: boolean
      insignificant:
        type: boolean
      gpsXCoordinate:
        type: string
        required: false
      gpsYCoordinate:
        type: string
        required: false
      gpsMapUrl:
        type: string
        required: false
  Address:
    type: object
    properties:
      addressLine1:
        type: string
      addressLine2:
        type: string
      postalCode:
        type: string
      city:
        type: string
      countryCode:
        type: string
      country:
        type: string
  requestedPackageType:
      type: object
      properties:
        userEmail:
          type: string
        requestedPackageOn:
          type: string
        caseId:
          type: string
        hasBeenRequested:
          type: string
  AdditionalService:
    type: object
    properties:
      id:
        type: string
      description:
        type: string
      amount:
        type: string
      currencyCode:
        type: string
      longDescription:
        type: string
        required: false
  ConsignmentAction:
    type: object
    properties:
      actionType:
        type: string
      actionURL:
        type: string
  recipientSignatureType:
    type: object
    properties:
      name:
        type: string
      linkToImage:
        type: string
        required: false
  NamedElement:
    type: object
    properties:
      name:
        type: string
        required: false

documentation:
- title: Introduction
  content: |

          The Tracking API changes from 01.01.2021 and 01.03.2021

              We have done a recent change in Tracking, where if the user have specified the wanted delivery date, then that date is set in the field for the estimated delivery date as well, as there is no point having to set estimation date which is different from the configured wanted delivery date.

              With reference to the change, the existing field "dateOfEstimatedDelivery" will have the correct information regarding delivery date and therefore, the field "dateOfDelivery" in the open as well as logged in Tracking API versions will be set to Blank from 01.Jan.2021 for backward compatibility and gradually be removed effective from date 01.Mar.2021.

      The Tracking API provides the opportunity to track shipments by reference, package or shipment number.
      It is an easy way to display details and the status of shipments.
      The information available in this API is the same that is publically available from the [Tracking web site](http://tracking.bring.com/).

- title: Formats
  content: |
    The Tracking API generates the following formats:
    - ```XML```
    - ```JSON```
    - ```JSONP```
- title: Versioning
  content: |
    Latest Tracking API version: `v2`

    We encourage you to use the latest version of our API all time.  Of course, we keep the previous version for some time so that you will get enough time to convert your application. This API supports versioning by two means.

    - **Select version by request-header**
      Use the normal URL but add the following request-header:

      | Header | Example |
      |:-------|:--------|
      | `api-version` | `2` |

      **Example request**
      ```curl -H "api-version: 2" https://tracking.bring.com/api/tracking.json?q=TESTPACKAGE-AT-PICKUPPOINT```

    - **Select version by URL**
      Use the normal URL, but add **```{v1, v2}```** to the URL. Example:

      | Application | URL example |
      |:-------|:--------|
      | Open tracking | https://tracking.bring.com/api/**v2**/tracking.json?q=TESTPACKAGE-AT-PICKUPPOINT |
      | Logged-in tracking | https://api.bring.com/tracking/api/**v2**/tracking.json?q=TESTPACKAGE-AT-PICKUPPOINT |

      You can verify that your request were used correctly by certifying that the response contains an element based on the request type:

      | URI request | Response type | Example |
      |:-------|:--------|:--------|
      | tracking.json | `application/json; charset=utf-8` | `{"apiVersion": "2"}` |
      | tracking.xml | `application/xml;charset=utf-8` | `<ApiVersion>2</ApiVersion>` |

      **Example request**
      ```curl -v https://tracking.bring.com/api/v2/tracking.json?q=TESTPACKAGE-AT-PICKUPPOINT```

- title: Authentication
  content: |
    If you have a Mybring user, you can log in to the Tracking API. Authenticated requests have the following benefits:

    - More information about parcels:
      - Prices
      - Name
      - Address
      - Signatures for proof of delivery
    - Less strict rate limits

    See the [getting started guide on authentication](/api/#authentication) if you're not sure what this means.

    | Header | Example | Comment |
    |:-------|:--------|:--------|
    | `X-MyBring-API-Uid` | `john.doe@example.com` | Mybring login ID |
    | `X-MyBring-API-Key` | `1234abc-abcd-1234-5678-abcd1234abcd ` | Mybring login's API key |
    | `X-Bring-Client-URL` | `https://example.com/` | A URL that sort of identifies where you're using the APIs. |

    The above headers must be present whilst using our logged-in variant of the tracking api. Also, you will have to use the endpoint:

        https://api.bring.com/tracking/api/
- title: JSON API
  content: |
      We follow the [JSON API](http://jsonapi.org/) specification with one
      exception: we allow media type to be specified as `application/json`
      instead of `application/vnd.api+json`.

/{version}/tracking{mediaTypeExtension}:
  displayName: Tracking endpoint
  description: Get information about an existing shipment based on a tracking number, shipment number or reference.
  uriParameters:
    version:
      enum: [ v1, v2 ]
      description: v1 is deprecated and will be removed soon. Use v2 when requesting the tracking API
    mediaTypeExtension:
      enum: [ .json, .xml ]
      description: Use .json to specify application/json or .xml to specify application/xml
  get:
    description: Get information about a shipment
    headers:
      X-MyBring-API-Uid:
        description: Your Mybring login ID
      X-MyBring-API-Key:
        description: Your user's API key
      X-Bring-Client-URL:
        description: A URL that sort of identifies where you're using the APIs.
    queryParameters:
      q:
        description: Reference, package number, shipment number to search for
        type: string
        required: true
        example: TESTPACKAGE-AT-PICKUPPOINT, 370000000000000001
      aktornummer:
        description: Represents a valid customer number registered with Posten
        type: string
        required: false
        example: "12345678901"
      callback:
        description: JSONP callback function name
        type: string
        required: false
    responses:
      200:
        displayName: Successful response
        description: |
          For testing you can use "TESTPACKAGE-AT-PICKUPPOINT" as the tracking number to generate test results. For real tracking this must be a valid number.

          You can find an XSD for the XML response here: [tracking-v2.xsd](https://tracking.bring.com/schema/api/tracking-v2.xsd).

          A parcel has a number of events connected to it during its travel. Here are a list of current event statuses that can be returned.

          | Event | Description |
          |:-------|:--------|
          | `ARRIVED_DELIVERY` | Arrived Delivery point - This is when a container arrives at recipients address, and can start unloading.
 |
          | `ARRIVED_COLLECTION` | Arrived for collection at pickup point |
          | `ATTEMPTED_DELIVERY` | The package has been attempted delivered at the door. Depending on the service it will be tried again or sent to closest pickup point. |
          | `CUSTOMS` | Package is in customs clearance. |
          | `COLLECTED` | The parcel has been collected at pickup address. |
          | `DELIVERED` | Package has been delivered. |
          | `DELIVERED_SENDER` | Package has been returned to the sender |
          | `DELIVERY_CANCELLED` | Home delivery has been canceled by the customer. |
          | `DELIVERY_CHANGED` | Date for Home delivery has been changed by customer. |
          | `DELIVERY_ORDERED` | Home delivery has been ordered |
          | `DEVIATION` | Deviation in production. Something wrong has happened and there is a probability for delay. |
          | `HANDED_IN` | Package has been handed in to Bring. |
          | `INTERNATIONAL` | Package has been sent from origin country or arrived at destination country.
 |
          | `IN_TRANSIT` | Package is in transit. |
          | `NOTIFICATION_SENT` | Notification for this package has been sent by sms, push and/or mail. This can be informational notifications and action notification like pickup notice. |
          | `PRE_NOTIFIED` | EDI message for the package has been received by Bring. |
          | `READY_FOR_PICKUP` | Package has arrived at pickup point. |
          | `RETURN` | The package has been returned to sender.
 |
          | `TRANSPORT_TO_RECIPIENT` | Package has been loaded for delivery to the recipient. |
          | `TERMINAL` | The package is now registered/arrived at inbound/outbound storage terminal |
          | `UNKNOWN` | Represents unknown / undefined events |

        body:
          application/json:
            type: Consignment
            examples:
              successful:
                displayName: Successful
                description: The example below shows an successful deliverance of a package at a pickup point
                value: !include examples/successful.json
              unsuccessful:
                displayName: Unsuccessful request
                description: Returned upon no search responses being returned for the request itself
                value: !include examples/unsuccessful.json
              notification_received:
                displayName: Unreceived package, with notification regarding EDI
                description: The example below is showing a package that have been EDI notified, but is not received by Bring.
                value: !include examples/notification_received.json
              waiting_at_pup:
                displayName: Waiting at Pickup Point
                description: The example below is showing a package waiting for the recipient to collect it at a pickup point
                value: !include examples/waiting_at_pup.json
              loaded_for_delivery:
                displayName: Package loaded for delivery
                description: The example below is showing a package that has been loaded on a distribution car for delivery to the reciepient.
                value: !include examples/loaded_for_delivery.json
              delivered:
                displayName: Package delivered to customer
                description: The example below is showing a package that has been delivered to the reciepient.
                value: !include examples/delivered.json
          application/xml:
            type: Consignment
            examples:
              successful:
                displayName: Successful
                description: The example below is showing a package that have been EDI notified, but is not received by Bring.
                value: !include examples/successful.xml
              unsuccessful:
                displayName: Unsuccessful request
                description: Returned upon no search responses being returned for the request itself
                value: !include examples/unsuccessful.xml
              notification_received:
                displayName: Unreceived package, with notification regarding EDI
                description: The example below is showing a package that have been EDI notified, but is not received by Bring.
                value: !include examples/notification_received.xml
              waiting_at_pup:
                displayName: Waiting at Pickup Point
                description: The example below is showing a package waiting for the recipient to collect it at a pickup point
                value: !include examples/waiting_at_pup.xml
              loaded_for_delivery:
                displayName: Package loaded for delivery
                description: The example below is showing a package that has been loaded on a distribution car for delivery to the reciepient.
                value: !include examples/loaded_for_delivery.xml
              delivered:
                displayName: Package delivered to customer
                description: The example below is showing a package that has been delivered to the reciepient.
                value: !include examples/delivered.xml

#%RAML 1.0
---
title: Tracking API
version: v2
baseUri: https://tracking.bring.com/api
types:
  Consignment:
    type: object
    properties:
      consignmentSet:
        type: ConsignmentSet
      apiVersion:
        type: ApiVersion
  ConsignmentSet:
    type: object
    description: ?
    properties:
      consignmentId:
        type: string
      previousConsignmentId:
        type: string
        required: false
      packageSet:
        type: Package[]
      recipientAddress:
        type: Address
        required: false
      recipientHandlingAddress:
        type: Address
        required: false
      senderReference:
        type: string
      senderCustomerNumber:
        type: string
      senderCustomerMasterNumber:
        type: string
      senderName:
        type: string
      senderAddress:
        type: Address
        required: false
      senderCustomerType:
        type: string
      recipientCustomerNumber:
        type: string
      recipientCustomerMasterNumber:
        type: string
      recipientCustomerType:
        type: string
      isPickupNoticeAvailable:
        type: boolean
      consignmentActionSet:
        type: ConsignmentAction
        required: false
      senderLogo:
        type: string
        required: false
      totalListPrice:
        type: string
        required: false
      totalContractPrice:
        type: string
        required: false
      listPricePackageCount:
        type: string
        required: false
      contractPricePackageCount:
        type: string
        required: false
      currencyCode:
        type: string
        required: false
      totalWeightInKgs:
        type: number
      totalVolumeInDm3:
        type: number
  ApiVersion:
    type: object
  Package:
    type: object
    properties:
      statusDescription:
        type: string
      descriptions:
        type: string[]
        required: false
      packageNumber:
        type: string
      previousPackageNumber:
        type: string
      productName:
        type: string
      productCode:
        type: string
      productLink:
        type: string
        required: false
      brand:
        type: string
      lengthInCm:
        type: number
      widthInCm:
        type: number
      heightInCm:
        type: number
      volumeInDm3:
        type: number
      weightInKgs:
        type: number
      listPrice:
        type: string
        required: false
      contractPrice:
        type: string
        required: false
      currencyCode:
        type: string
        required: false
      pickupCode:
        type: string
        required: false
      shelfNumber:
        type: string
        required: false
      dateOfReturn:
        type: string
        required: false
      dateOfEstimatedDelivery:
        type: string
        required: false
      dateOfDelivery:
        type: string
        required: false
      senderName:
        type: string
        required: false
      senderAddress:
        type: Address
        required: false
      recipientAddress:
        type: Address
        required: false
      recipientHandlingAddress:
        type: Address
        required: false
      eventSet:
        type: Event[]
      additionalServiceSet:
        type: AdditionalService[]
        required: false
      requestPackage:
        type: requestedPackageType
        required: false
  Event:
    type: object
    properties:
      description:
        type: string
      status:
        type: string
      lmEventCode:
        type: string
        required: false
      recipientSignature:
        type: recipientSignatureType
      unitId:
        type: string
      unitInformationUrl:
        type: string
        required: false
      unitType:
        type: string
      postalCode:
        type: string
      city:
        type: string
      countryCode:
        type: string
      country:
        type: string
      dateIso:
        type: string
      displayDate:
        type: string
      displayTime:
        type: string
      consignmentEvent:
        type: boolean
      insignificant:
        type: boolean
      gpsXCoordinate:
        type: string
        required: false
      gpsYCoordinate:
        type: string
        required: false
      gpsMapUrl:
        type: string
        required: false
  Address:
    type: object
    properties:
      addressLine1:
        type: string
      addressLine2:
        type: string
      postalCode:
        type: string
      city:
        type: string
      countryCode:
        type: string
      country:
        type: string
  requestedPackageType:
      type: object
      properties:
        userEmail:
          type: string
        requestedPackageOn:
          type: string
        caseId:
          type: string
        hasBeenRequested:
          type: string
  AdditionalService:
    type: object
    properties:
      id:
        type: string
      description:
        type: string
      amount:
        type: string
      currencyCode:
        type: string
      longDescription:
        type: string
        required: false
  ConsignmentAction:
    type: object
    properties:
      actionType:
        type: string
      actionURL:
        type: string
  recipientSignatureType:
    type: object
    properties:
      name:
        type: string
      linkToImage:
        type: string
        required: false
  NamedElement:
    type: object
    properties:
      name:
        type: string
        required: false

documentation:
- title: Introduction
  content: |

          The Tracking API changes from 01.01.2021 and 01.03.2021

              We have done a recent change in Tracking, where if the user have specified the wanted delivery date, then that date is set in the field for the estimated delivery date as well, as there is no point having to set estimation date which is different from the configured wanted delivery date.

              With reference to the change, the existing field "dateOfEstimatedDelivery" will have the correct information regarding delivery date and therefore, the field "dateOfDelivery" in the open as well as logged in Tracking API versions will be set to Blank from 01st Jan'2021 for backward compatibility and gradually be removed effective from date 01st Mar'2021.

      The Tracking API provides the opportunity to track shipments by reference, package or shipment number.
      It is an easy way to display details and the status of shipments.
      The information available in this API is the same that is publically available from the [Tracking web site](http://tracking.bring.com/).

- title: Formats
  content: |
    The Tracking API generates the following formats:
    - ```XML```
    - ```JSON```
    - ```JSONP```
- title: Versioning
  content: |
    Latest Tracking API version: `v2`

    We encourage you to use the latest version of our API all time.  Of course, we keep the previous version for some time so that you will get enough time to convert your application. This API supports versioning by two means.

    - **Select version by request-header**
      Use the normal URL but add the following request-header:

      | Header | Example |
      |:-------|:--------|
      | `api-version` | `2` |

      **Example request**
      ```curl -H "api-version: 2" https://tracking.bring.com/api/tracking.json?q=TESTPACKAGE-AT-PICKUPPOINT```

    - **Select version by URL**
      Use the normal URL, but add **```{v1, v2}```** to the URL. Example:

      | Application | URL example |
      |:-------|:--------|
      | Open tracking | https://tracking.bring.com/api/**v2**/tracking.json?q=TESTPACKAGE-AT-PICKUPPOINT |
      | Logged-in tracking | https://api.bring.com/tracking/api/**v2**/tracking.json?q=TESTPACKAGE-AT-PICKUPPOINT |

      You can verify that your request were used correctly by certifying that the response contains an element based on the request type:

      | URI request | Response type | Example |
      |:-------|:--------|:--------|
      | tracking.json | `application/json; charset=utf-8` | `{"apiVersion": "2"}` |
      | tracking.xml | `application/xml;charset=utf-8` | `<ApiVersion>2</ApiVersion>` |

      **Example request**
      ```curl -v https://tracking.bring.com/api/v2/tracking.json?q=TESTPACKAGE-AT-PICKUPPOINT```

- title: Authentication
  content: |
    If you have a Mybring user, you can log in to the Tracking API. Authenticated requests have the following benefits:

    - More information about parcels:
      - Prices
      - Name
      - Address
      - Signatures for proof of delivery
    - Less strict rate limits

    See the [getting started guide on authentication](/api/#authentication) if you're not sure what this means.

    | Header | Example | Comment |
    |:-------|:--------|:--------|
    | `X-MyBring-API-Uid` | `john.doe@example.com` | Mybring login ID |
    | `X-MyBring-API-Key` | `1234abc-abcd-1234-5678-abcd1234abcd ` | Mybring login's API key |
    | `X-Bring-Client-URL` | `https://example.com/` | A URL that sort of identifies where you're using the APIs. |

    The above headers must be present whilst using our logged-in variant of the tracking api. Also, you will have to use the endpoint:

        https://api.bring.com/tracking/api/
- title: JSON API
  content: |
      We follow the [JSON API](http://jsonapi.org/) specification with one
      exception: we allow media type to be specified as `application/json`
      instead of `application/vnd.api+json`.

/{version}/tracking{mediaTypeExtension}:
  displayName: Tracking endpoint
  description: Get information about an existing shipment based on a tracking number, shipment number or reference.
  uriParameters:
    version:
      enum: [ v1, v2 ]
      description: v1 is deprecated and will be removed soon. Use v2 when requesting the tracking API
    mediaTypeExtension:
      enum: [ .json, .xml ]
      description: Use .json to specify application/json or .xml to specify application/xml
  get:
    description: Get information about a shipment
    headers:
      X-MyBring-API-Uid:
        description: Your Mybring login ID
      X-MyBring-API-Key:
        description: Your user's API key
      X-Bring-Client-URL:
        description: A URL that sort of identifies where you're using the APIs.
    queryParameters:
      q:
        description: Reference, package number, shipment number to search for
        type: string
        required: true
        example: TESTPACKAGE-AT-PICKUPPOINT, 370000000000000001
      aktornummer:
        description: Represents a valid customer number registered with Posten
        type: string
        required: false
        example: "12345678901"
      callback:
        description: JSONP callback function name
        type: string
        required: false
    responses:
      200:
        displayName: Successful response
        description: |
          For testing you can use "TESTPACKAGE-AT-PICKUPPOINT" as the tracking number to generate test results. For real tracking this must be a valid number.

          You can find an XSD for the XML response here: [tracking-v2.xsd](https://tracking.bring.com/schema/api/tracking-v2.xsd).

          A parcel has a number of events connected to it during its travel. Here are a list of current event statuses that can be returned.

          | Event | Description |
          |:-------|:--------|
          | `ARRIVED_DELIVERY` | Arrived Delivery point - This is when a container arrives at recipients address, and can start unloading.
 |
          | `ARRIVED_COLLECTION` | Arrived for collection at pickup point |
          | `ATTEMPTED_DELIVERY` | The package has been attempted delivered at the door. Depending on the service it will be tried again or sent to closest pickup point. |
          | `CUSTOMS` | Package is in customs clearance. |
          | `COLLECTED` | The parcel has been collected at pickup address. |
          | `DELIVERED` | Package has been delivered. |
          | `DELIVERED_SENDER` | Package has been returned to the sender |
          | `DELIVERY_CANCELLED` | Home delivery has been canceled by the customer. |
          | `DELIVERY_CHANGED` | Date for Home delivery has been changed by customer. |
          | `DELIVERY_ORDERED` | Home delivery has been ordered |
          | `DEVIATION` | Deviation in production. Something wrong has happened and there is a probability for delay. |
          | `HANDED_IN` | Package has been handed in to Bring. |
          | `INTERNATIONAL` | Package has been sent from origin country or arrived at destination country.
 |
          | `IN_TRANSIT` | Package is in transit. |
          | `NOTIFICATION_SENT` | Notification for this package has been sent by sms, push and/or mail. This can be informational notifications and action notification like pickup notice. |
          | `PRE_NOTIFIED` | EDI message for the package has been received by Bring. |
          | `READY_FOR_PICKUP` | Package has arrived at pickup point. |
          | `RETURN` | The package has been returned to sender.
 |
          | `TRANSPORT_TO_RECIPIENT` | Package has been loaded for delivery to the recipient. |
          | `TERMINAL` | The package is now registered/arrived at inbound/outbound storage terminal |
          | `UNKNOWN` | Represents unknown / undefined events |

        body:
          application/json:
            type: Consignment
            examples:
              successful:
                displayName: Successful
                description: The example below shows an successful deliverance of a package at a pickup point
                value: !include examples/successful.json
              unsuccessful:
                displayName: Unsuccessful request
                description: Returned upon no search responses being returned for the request itself
                value: !include examples/unsuccessful.json
              notification_received:
                displayName: Unreceived package, with notification regarding EDI
                description: The example below is showing a package that have been EDI notified, but is not received by Bring.
                value: !include examples/notification_received.json
              waiting_at_pup:
                displayName: Waiting at Pickup Point
                description: The example below is showing a package waiting for the recipient to collect it at a pickup point
                value: !include examples/waiting_at_pup.json
              loaded_for_delivery:
                displayName: Package loaded for delivery
                description: The example below is showing a package that has been loaded on a distribution car for delivery to the reciepient.
                value: !include examples/loaded_for_delivery.json
              delivered:
                displayName: Package delivered to customer
                description: The example below is showing a package that has been delivered to the reciepient.
                value: !include examples/delivered.json
          application/xml:
            type: Consignment
            examples:
              successful:
                displayName: Successful
                description: The example below is showing a package that have been EDI notified, but is not received by Bring.
                value: !include examples/successful.xml
              unsuccessful:
                displayName: Unsuccessful request
                description: Returned upon no search responses being returned for the request itself
                value: !include examples/unsuccessful.xml
              notification_received:
                displayName: Unreceived package, with notification regarding EDI
                description: The example below is showing a package that have been EDI notified, but is not received by Bring.
                value: !include examples/notification_received.xml
              waiting_at_pup:
                displayName: Waiting at Pickup Point
                description: The example below is showing a package waiting for the recipient to collect it at a pickup point
                value: !include examples/waiting_at_pup.xml
              loaded_for_delivery:
                displayName: Package loaded for delivery
                description: The example below is showing a package that has been loaded on a distribution car for delivery to the reciepient.
                value: !include examples/loaded_for_delivery.xml
              delivered:
                displayName: Package delivered to customer
                description: The example below is showing a package that has been delivered to the reciepient.
                value: !include examples/delivered.xml


added v1 to api url path

added v1 to api url path

#%RAML 0.8
title: modusbox-orders
baseUri: http://localhost:8081/api/v1/
version: v1
securitySchemes:
  - basic:
      type: Basic Authentication
traits:
  - secured:
      description: Some requests require authentication
  - unsecured:
      description: This is not secured

/auth:
  post:
    description: Post method to obtain token for authorization header
    protocols: [HTTPS]

/orders:
  get:
    description: Retrieve a JSON array of orders
    queryParameters:
      customerName:
        displayName: Customer Name
        type: string
        description: Customer's full name
        example: John Doe
        required: false
      placementDate:
        displayName: Placement Date
        type: string
        description: The date the order was placed
        example: 2016-01-31
        required: false
    responses:
      200:
        body:
          application/json:
            example: !include examples/v1-orders.json
  put:
  post:
  delete:

  /{orderId}:
    get:
      description: Retrieve a JSON object of specific order id
      responses:
        200:
          body:
             application/json:
               example: !include examples/v1-order.json

    /orderItems:
      get:
        description: Retrieve a JSON array of order items for specified order
        responses:
          200:
            body:
              application/json:
                example: !include examples/v1-orderItems.json

/orderItems:
  get:
    queryParameters:
      orderId:
        displayName: Order Id
        type: number
        description: Order Primary Key
        example: 14673
        required: false
      itemId:
        displayName: Item Id
        type: number
        description: Item Primary Key
        example: 37422
        required: false
    description: Retrieve a JSON array of order items
    responses:
      200:
        body:
          application/json:
            example: !include examples/v1-orderItems.json
  put:
  post:
  delete:

  /{orderItemId}:
    get:
      description: Retrieve a JSON object of order item using order item id
      responses:
        200:
          body:
            application/json:
              example: !include examples/v1-orderItem.json

/items:
  get:
    queryParameters:
      itemName:
        displayName: Item Name
        type: string
        description: Name of the Item
        example: 25 Gal Bleach
        required: false
      itemCost:
        displayName: Item Cost
        type: string
        description: Cost of the Item
        example: $45
        required: false
    description: Retrieve a JSON array of items
    responses:
      200:
        body:
          application/json:
            example: !include examples/v1-items.json
  put:
  post:
  delete:
  /{itemId}:
    get:
      description: Retrieve a JSON object of specific item id
      responses:
        200:
          body:
            application/json:
              example: !include examples/v1-item.json

#%RAML 0.8
title: modusbox-orders
baseUri: http://localhost:8081/api/
version: v1
securitySchemes:
  - basic:
      type: Basic Authentication
traits:
  - secured:
      description: Some requests require authentication
  - unsecured:
      description: This is not secured

/auth:
  post:
    description: Post method to obtain token for authorization header
    protocols: [HTTPS]

/orders:
  get:
    description: Retrieve a JSON array of orders
    queryParameters:
      customerName:
        displayName: Customer Name
        type: string
        description: Customer's full name
        example: John Doe
        required: false
      placementDate:
        displayName: Placement Date
        type: string
        description: The date the order was placed
        example: 2016-01-31
        required: false
    responses:
      200:
        body:
          application/json:
            example: !include examples/v1-orders.json
  put:
  post:
  delete:

  /{orderId}:
    get:
      description: Retrieve a JSON object of specific order id
      responses:
        200:
          body:
             application/json:
               example: !include examples/v1-order.json

    /orderItems:
      get:
        description: Retrieve a JSON array of order items for specified order
        responses:
          200:
            body:
              application/json:
                example: !include examples/v1-orderItems.json

/orderItems:
  get:
    queryParameters:
      orderId:
        displayName: Order Id
        type: number
        description: Order Primary Key
        example: 14673
        required: false
      itemId:
        displayName: Item Id
        type: number
        description: Item Primary Key
        example: 37422
        required: false
    description: Retrieve a JSON array of order items
    responses:
      200:
        body:
          application/json:
            example: !include examples/v1-orderItems.json
  put:
  post:
  delete:

  /{orderItemId}:
    get:
      description: Retrieve a JSON object of order item using order item id
      responses:
        200:
          body:
            application/json:
              example: !include examples/v1-orderItem.json

/items:
  get:
    queryParameters:
      itemName:
        displayName: Item Name
        type: string
        description: Name of the Item
        example: 25 Gal Bleach
        required: false
      itemCost:
        displayName: Item Cost
        type: string
        description: Cost of the Item
        example: $45
        required: false
    description: Retrieve a JSON array of items
    responses:
      200:
        body:
          application/json:
            example: !include examples/v1-items.json
  put:
  post:
  delete:
  /{itemId}:
    get:
      description: Retrieve a JSON object of specific item id
      responses:
        200:
          body:
            application/json:
              example: !include examples/v1-item.json


updated searchable trait

updated searchable trait

description: Searchable feature for method that returns filtered collection.
queryParameters:
  q:
    description: |
      The list of semicolon-separated properties used to filter the collection.
      Use it only if you want filter the collection for selected parameters.
      Some collections may have required parameters in filter query. These
      parameters are with leading ! in example doc.
      General example: (color=blue;wheels=15; ...)
      Required param: (!color=blue)
    type: string
    required: false
    example: <<searchableDoc>>

description: Searchable feature for method that returns filtered collection.
queryParameters:
  q:
    description: |
      The list of semicolon-separated properties used to filter the collection.
      Use it only if you want filter the collection for selected parameters.
      Some collections may have required parameters in filter query. These
      parameters are UPPERCASE in example doc. In real query use lowercase parameters.
      General example: (color=blue;wheels=15; ...)
      Required param in doc: (COLOR=blue)
      Required param in real query: (color=blue)
    type: string
    required: false
    example: <<searchableDoc>>