| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214 | #%RAML 0.8title: BookingbaseUri: http://dddsample.marcusoncode.se/booking/{version}version: v1/cargos:  get:    description: All booked cargos    responses:      200:        body:          application/json:            example: |              {                  "cargos": [                      {                          "arrival_deadline": "0001-01-01T00:00:00Z",                          "destination": "CNHKG",                          "misrouted": false,                          "origin": "SESTO",                          "routed": false,                          "tracking_id": "ABC123"                      },                      {                          "arrival_deadline": "0001-01-01T00:00:00Z",                          "destination": "SESTO",                          "misrouted": false,                          "origin": "AUMEL",                          "routed": false,                          "tracking_id": "FTL456"                      }                  ]              }  post:    description: Book a new cargo.    body:      application/json:        example: |          {              "origin": "SESTO",              "destination": "DEHAM",              "arrival_deadline": "2016-03-24T23:00:00Z"          }          responses:      200:        body:          application/json:            example: |              {                  "tracking_id": "ABC123"              }  /{trackingId}:    uriParameters:      trackingId:        description: The tracking id of the cargo        type: string    get:      description: A specific cargo      responses:        200:          body:            application/json:              example: |                {                    "cargo": {                        "arrival_deadline": "2016-03-30T22:00:00Z",                        "destination": "DEHAM",                        "legs": [                            {                                "voyage_number": "0300A",                                "from": "CNHKG",                                "to": "SESTO",                                "load_time": "2016-03-06T18:12:11.01579612Z",                                "unload_time": "2016-03-08T02:13:11.01579612Z"                            },                            {                                "voyage_number": "0400S",                                "from": "SESTO",                                "to": "FIHEL",                                "load_time": "2016-03-10T01:42:11.01579612Z",                                "unload_time": "2016-03-11T04:21:11.01579612Z"                            },                            {                                "voyage_number": "0100S",                                "from": "FIHEL",                                "to": "NLRTM",                                "load_time": "2016-03-13T08:42:11.01579612Z",                                "unload_time": "2016-03-14T01:38:11.01579612Z"                            }                        ],                        "misrouted": true,                        "origin": "CNHKG",                        "routed": true,                        "tracking_id": "D0909E1C"                    }                }    /assign_to_route:      post:        description: Assign given route to the cargo.        body:          application/json:            example: |              {                  "legs": [                      {                          "voyage_number": "0301S",                          "from": "SESTO",                          "to": "FIHEL",                          "load_time": "2015-11-14T14:10:29.173391809Z",                          "unload_time": "2015-11-15T21:55:29.173391809Z"                      },                      {                          "voyage_number": "0100S",                          "from": "FIHEL",                          "to": "CNHKG",                          "load_time": "2015-11-18T02:19:29.173391809Z",                          "unload_time": "2015-11-19T04:11:29.173391809Z"                      }                  ]              }    /change_destination:      post:        description: Change destination of the cargo. May result in a misrouted cargo.        body:          application/json:            example: |              {                  "destination": "CNHKG"               }    /request_routes:      get:        description: Requests routes based on current specification. Uses an external routing service provided by the routing package.        responses:          200:            body:              application/json:                example: |                  {                      "routes": [                          {                              "legs": [                                  {                                      "voyage_number": "0301S",                                      "from": "SESTO",                                      "to": "FIHEL",                                      "load_time": "2015-11-14T14:10:29.173391809Z",                                      "unload_time": "2015-11-15T21:55:29.173391809Z"                                  },                                  {                                      "voyage_number": "0100S",                                      "from": "FIHEL",                                      "to": "CNHKG",                                      "load_time": "2015-11-18T02:19:29.173391809Z",                                      "unload_time": "2015-11-19T04:11:29.173391809Z"                                  }                              ]                          },                          {                              "legs": [                                  {                                      "voyage_number": "0400S",                                      "from": "SESTO",                                      "to": "JNTKO",                                      "load_time": "2015-11-14T06:22:29.173415471Z",                                      "unload_time": "2015-11-15T10:22:29.173415471Z"                                  },                                  {                                      "voyage_number": "0200T",                                      "from": "JNTKO",                                      "to": "CNHKG",                                      "load_time": "2015-11-17T10:45:29.173415471Z",                                      "unload_time": "2015-11-18T11:48:29.173415471Z"                                  }                              ]                          }                      ]                  }/locations:  get:    description: All registered locations.    responses:      200:        body:          application/json:            example: |              {                  "locations": [                      {                          "locode": "DEHAM",                          "name": "Hamburg"                      },                      {                          "locode": "SESTO",                          "name": "Stockholm"                      },                      {                          "locode": "AUMEL",                          "name": "Melbourne"                      },                      {                          "locode": "CNHKG",                          "name": "Hongkong"                      },                      {                          "locode": "JNTKO",                          "name": "Tokyo"                      },                      {                          "locode": "NLRTM",                          "name": "Rotterdam"                      }                  ]              }
 |