-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathshipment__v3.yml
137 lines (137 loc) · 3.78 KB
/
shipment__v3.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
openapi: 3.0.0
info:
version: "3"
title: "Shipment"
description: >
Tracking shipments by tracknumber.
This version of manifest uses carriers APIs, but not easypost to track shipments.
servers:
- url: http://carriers/openapi/Shipment/v3
tags:
- name: Tracker
paths:
"/Tracker/{id}":
get:
tags:
- Tracker
summary: 'Get status of tracking'
description: "Return status of tracking by trackNumber and carrier"
parameters:
- in: path
name: id
description: Composite id. Format - trackNumber|carrier
required: true
schema:
type: string
responses:
"200":
description: 'Status of tracking'
content:
application/json:
schema:
$ref: '#/components/schemas/TrackerResponse'
"500":
description: 'Some error'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
components:
schemas:
ErrorResponse:
type: object
properties:
messages:
type: array
items:
$ref: "#/components/schemas/Message"
description: "message field is not required"
Message:
type: object
properties:
level:
type: string
enum:
- info
- warning
- error
type:
type: string
enum:
- UNSUPPORTED_CARRIER
- UNDEFINED
- INVALID_RESPONSE
- NOT_FOUND
description: >
UNSUPPORTED_CARRIER - Requested carrier is not supported
UNDEFINED - Any undefined message type
NOT_FOUND - Tracknumber not exist
text:
type: string
description: Message, that describes what went wrong
SuccessResponse:
allOf:
- $ref: '#/components/schemas/ErrorResponse'
type: object
properties:
data:
type: object
TrackerResponse:
allOf:
- $ref: '#/components/schemas/SuccessResponse'
type: object
properties:
data:
$ref: '#/components/schemas/Tracker'
Tracker:
type: object
required:
- trackNumber
- carrier
- shipStatus
properties:
trackNumber:
type: string
description: The tracking code provided by the carrier
example: '9400100000000000000000'
carrier:
type: string
description: The name of the carrier handling the shipment
enum:
- USPS
- FEDEX
- UPS
shipStatus:
type: string
description: The current status of the package
enum:
- pre_transit
- in_transit
- out_for_delivery
- delivered
- available_for_pickup
- return_to_sender
- failure
- cancelled
- error
- unknown
publicUrl:
type: string
format: url
example: 'https://google.com'
nullable: true
description: URL to a publicly-accessible html page that shows tracking details for this tracker
estDeliveryDate:
type: string
format: date-time
nullable: true
description: The estimated delivery date provided by the carrier (if available)
realDeliveryDate:
type: string
format: date-time
nullable: true
description: The actual delivery date provided by the carrier (if available)
rawResponse:
type: object
additionalProperties: true
description: Raw response from carrier with data related to specified tracking number