-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathordering-openapi.yml
More file actions
182 lines (182 loc) · 5.04 KB
/
Copy pathordering-openapi.yml
File metadata and controls
182 lines (182 loc) · 5.04 KB
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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
openapi: 3.0.3
info:
title: Maxar Geospatial Platform Ordering API
description: >-
Order management API for placing, tracking and retrieving deliveries of
Maxar archive imagery against WorldView, GeoEye and WorldView Legion
sources. Profile derived from MGP_SDK `Interface.ordering` surface; field
shapes follow common Maxar ordering conventions and should be confirmed
against live responses.
version: '1.0.0'
servers:
- url: https://api.maxar.com/order/v1
security:
- bearerAuth: []
tags:
- name: Orders
- name: Deliveries
- name: Estimates
paths:
/orders:
get:
tags: [Orders]
summary: List Orders
operationId: listOrders
parameters:
- { name: status, in: query, schema: { type: string, enum: [pending, in_progress, complete, failed, cancelled] } }
- { name: limit, in: query, schema: { type: integer, default: 25 } }
responses:
'200':
description: Orders
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Order'
post:
tags: [Orders]
summary: Place Order
operationId: placeOrder
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/OrderRequest'
responses:
'201':
description: Order created
content:
application/json:
schema:
$ref: '#/components/schemas/Order'
/orders/{orderId}:
get:
tags: [Orders]
summary: Get Order
operationId: getOrder
parameters:
- { name: orderId, in: path, required: true, schema: { type: string } }
responses:
'200':
description: Order
content:
application/json:
schema:
$ref: '#/components/schemas/Order'
delete:
tags: [Orders]
summary: Cancel Order
operationId: cancelOrder
parameters:
- { name: orderId, in: path, required: true, schema: { type: string } }
responses:
'204':
description: Cancelled
/orders/{orderId}/deliveries:
get:
tags: [Deliveries]
summary: List Deliveries
operationId: listDeliveries
parameters:
- { name: orderId, in: path, required: true, schema: { type: string } }
responses:
'200':
description: Deliveries
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Delivery'
/estimates:
post:
tags: [Estimates]
summary: Estimate Order Cost
operationId: estimateOrder
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/OrderRequest'
responses:
'200':
description: Estimate
content:
application/json:
schema:
type: object
properties:
estimated_cost:
type: number
currency:
type: string
example: USD
area_km2:
type: number
rate_per_km2:
type: number
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
schemas:
OrderRequest:
type: object
required: [aoi, items]
properties:
name:
type: string
aoi:
type: object
description: GeoJSON geometry
items:
type: array
items:
type: object
properties:
catalog_id:
type: string
collection:
type: string
delivery:
type: object
properties:
type:
type: string
enum: [s3, gcs, download]
destination:
type: string
output_format:
type: string
enum: [geotiff, jpeg2000, nitf]
Order:
type: object
properties:
id: { type: string }
name: { type: string }
status: { type: string, enum: [pending, in_progress, complete, failed, cancelled] }
created_at: { type: string, format: date-time }
updated_at: { type: string, format: date-time }
cost: { type: number }
currency: { type: string }
items:
type: array
items:
type: object
properties:
catalog_id: { type: string }
status: { type: string }
Delivery:
type: object
properties:
id: { type: string }
order_id: { type: string }
status: { type: string, enum: [pending, in_progress, complete, failed] }
url: { type: string }
format: { type: string }
size_bytes: { type: integer }
delivered_at: { type: string, format: date-time }