cwl2ogc 0.10.0.dev4__tar.gz → 0.10.0.dev5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/PKG-INFO +1 -1
  2. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/src/cwl2ogc/__about__.py +1 -1
  3. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/src/cwl2ogc/__init__.py +15 -6
  4. cwl2ogc-0.10.0.dev5/src/cwl2ogc/stac_collection.py +682 -0
  5. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/.github/workflows/docs.yaml +0 -0
  6. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/.github/workflows/package.yaml +0 -0
  7. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/.gitignore +0 -0
  8. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/.vscode/settings.json +0 -0
  9. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/LICENSE +0 -0
  10. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/README.md +0 -0
  11. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/Taskfile.yaml +0 -0
  12. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/docs/array-inputs.ipynb +0 -0
  13. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/docs/complex-cwl-types.ipynb +0 -0
  14. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/docs/essential-input-parameters.ipynb +0 -0
  15. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/docs/exclusive-input-parameters-expressions.ipynb +0 -0
  16. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/docs/graph.ipynb +0 -0
  17. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/docs/imgs/icon-eoap.png +0 -0
  18. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/docs/imported-cwl-types.ipynb +0 -0
  19. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/docs/inclusive-exclusive-inputs.ipynb +0 -0
  20. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/docs/index.md +0 -0
  21. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/docs/schema.ipynb +0 -0
  22. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/docs/string-formats.ipynb +0 -0
  23. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/mkdocs.yaml +0 -0
  24. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/playground/Dockerfile +0 -0
  25. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/playground/playground.py +0 -0
  26. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/playground/resources/custom_buttons_bar_alt.json +0 -0
  27. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/pyproject.toml +0 -0
  28. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/src/cwl2ogc/stac_item.py +0 -0
  29. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/tests/__init__.py +0 -0
  30. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/tests/artifacts/app-water-body.1.1.0.cwl +0 -0
  31. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/tests/artifacts/cwl-types/app.cwl +0 -0
  32. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/tests/artifacts/cwl-types/app_inputs.json +0 -0
  33. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/tests/artifacts/cwl-types/app_outputs.json +0 -0
  34. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/tests/artifacts/cwl-types/array-inputs.cwl +0 -0
  35. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/tests/artifacts/cwl-types/array-inputs_inputs.json +0 -0
  36. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/tests/artifacts/cwl-types/array-inputs_outputs.json +0 -0
  37. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/tests/artifacts/cwl-types/complex-cwl-types.cwl +0 -0
  38. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/tests/artifacts/cwl-types/complex-cwl-types_inputs.json +0 -0
  39. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/tests/artifacts/cwl-types/complex-cwl-types_outputs.json +0 -0
  40. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/tests/artifacts/cwl-types/exclusive-parameter-expressions.cwl +0 -0
  41. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/tests/artifacts/cwl-types/exclusive-parameter-expressions_inputs.json +0 -0
  42. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/tests/artifacts/cwl-types/exclusive-parameter-expressions_outputs.json +0 -0
  43. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/tests/artifacts/cwl-types/inp.cwl +0 -0
  44. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/tests/artifacts/cwl-types/inp_inputs.json +0 -0
  45. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/tests/artifacts/cwl-types/inp_outputs.json +0 -0
  46. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/tests/artifacts/cwl-types/record.cwl +0 -0
  47. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/tests/artifacts/cwl-types/record_inputs.json +0 -0
  48. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/tests/artifacts/cwl-types/record_outputs.json +0 -0
  49. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/tests/artifacts/cwl-types/string-formats.cwl +0 -0
  50. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/tests/artifacts/cwl-types/string-formats_inputs.json +0 -0
  51. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/tests/artifacts/cwl-types/string-formats_outputs.json +0 -0
  52. {cwl2ogc-0.10.0.dev4 → cwl2ogc-0.10.0.dev5}/tests/test_conversion.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cwl2ogc
3
- Version: 0.10.0.dev4
3
+ Version: 0.10.0.dev5
4
4
  Summary: CWL Worflow inputs/outputs to OGC API Processes inputs/outputs
5
5
  Project-URL: Documentation, https://github.com/eoap/cwl2ogc#readme
6
6
  Project-URL: Issues, https://github.com/eoap/cwl2ogc/issues
@@ -10,4 +10,4 @@ You should have received a copy of the license along with this work.
10
10
  If not, see <https://creativecommons.org/licenses/by-sa/4.0/>.
11
11
  """
12
12
 
13
- __version__ = "0.10.0.dev4"
13
+ __version__ = "0.10.0.dev5"
@@ -9,6 +9,7 @@ If not, see <https://creativecommons.org/licenses/by-sa/4.0/>.
9
9
  """
10
10
 
11
11
  from .stac_item import STAC_ITEM_SCHEMA
12
+ from .stac_collection import STAC_COLLECTION_SCHEMA
12
13
  from abc import (
13
14
  ABC,
14
15
  abstractmethod
@@ -197,12 +198,20 @@ class BaseCWLtypes2OGCConverter(__CWLtypes2OGCConverter__):
197
198
  _map_type("boolean", lambda input : { "type": "boolean" })
198
199
  _map_type(["string", "stdout"], lambda input : { "type": "string" })
199
200
 
200
- _map_type(["File", File, "Directory", Directory], lambda input : {
201
- "oneOf": [
202
- { "type": "string", "format": "uri" },
203
- STAC_ITEM_SCHEMA
204
- ]
205
- })
201
+ _map_type(["File", File], lambda input : {
202
+ "oneOf": [
203
+ { "type": "string", "format": "uri" },
204
+ STAC_ITEM_SCHEMA
205
+ ]
206
+ })
207
+ _map_type(["Directory", Directory], lambda input : {
208
+ "oneOf": [
209
+ { "type": "string", "format": "uri" },
210
+ STAC_ITEM_SCHEMA,
211
+ STAC_COLLECTION_SCHEMA
212
+ ]
213
+ })
214
+
206
215
 
207
216
  # these are not correctly interpreted as CWL types
208
217
  _map_type("record", self._on_record)
@@ -0,0 +1,682 @@
1
+ """
2
+ CWL2OGC (c) 2025
3
+
4
+ CWL2OGC is licensed under
5
+ Creative Commons Attribution-ShareAlike 4.0 International.
6
+
7
+ You should have received a copy of the license along with this work.
8
+ If not, see <https://creativecommons.org/licenses/by-sa/4.0/>.
9
+ """
10
+
11
+ STAC_COLLECTION_SCHEMA = {
12
+ "title": "STAC Collection Specification",
13
+ "description": "This object represents Collections in a SpatioTemporal Asset Catalog.",
14
+ "$id": "https://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json#",
15
+ "$schema": "http://json-schema.org/draft-07/schema#",
16
+ "type": "object",
17
+ "required": [
18
+ "stac_version",
19
+ "type",
20
+ "id",
21
+ "description",
22
+ "license",
23
+ "extent",
24
+ "links",
25
+ ],
26
+ "properties": {
27
+ "title": {"title": "Title", "type": "string"},
28
+ "description": {"title": "Description", "type": "string", "minLength": 1},
29
+ "type": {"title": "Type of STAC entity", "const": "Collection"},
30
+ "assets": {
31
+ "title": "Asset links",
32
+ "description": "Links to assets",
33
+ "type": "object",
34
+ "additionalProperties": {
35
+ "title": "Basic Descriptive Fields",
36
+ "$id": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/basics.json#",
37
+ "$schema": "http://json-schema.org/draft-07/schema#",
38
+ "type": "object",
39
+ "required": ["href"],
40
+ "properties": {
41
+ "title": {
42
+ "title": "Asset title",
43
+ "description": "A human-readable title describing the Item.",
44
+ "type": "string",
45
+ },
46
+ "description": {
47
+ "title": "Asset description",
48
+ "description": "Detailed multi-line description to fully explain the Item.",
49
+ "type": "string",
50
+ },
51
+ "type": {"title": "Asset type", "type": "string"},
52
+ "constellation": {"title": "Constellation", "type": "string"},
53
+ "created": {
54
+ "title": "Creation Time",
55
+ "type": "string",
56
+ "format": "date-time",
57
+ "pattern": "(\\+00:00|Z)$",
58
+ },
59
+ "datetime": {
60
+ "title": "Date and Time",
61
+ "description": "The searchable date/time of the assets, in UTC (Formatted in RFC 3339) ",
62
+ "type": ["string", "null"],
63
+ "format": "date-time",
64
+ "pattern": "(\\+00:00|Z)$",
65
+ },
66
+ "end_datetime": {
67
+ "title": "End Date and Time",
68
+ "description": "The searchable end date/time of the assets, in UTC (Formatted in RFC 3339) ",
69
+ "type": "string",
70
+ "format": "date-time",
71
+ "pattern": "(\\+00:00|Z)$",
72
+ },
73
+ "gsd": {
74
+ "title": "Ground Sample Distance",
75
+ "type": "number",
76
+ "exclusiveMinimum": 0,
77
+ },
78
+ "href": {
79
+ "title": "Asset reference",
80
+ "type": "string",
81
+ "format": "iri-reference",
82
+ "minLength": 1,
83
+ },
84
+ "instruments": {
85
+ "title": "Instruments",
86
+ "type": "array",
87
+ "items": {"type": "string"},
88
+ },
89
+ "license": {"type": "string", "pattern": "^[\\w\\-\\.\\+]+$"},
90
+ "mission": {"title": "Mission", "type": "string"},
91
+ "platform": {"title": "Platform", "type": "string"},
92
+ "providers": {
93
+ "title": "Providers",
94
+ "type": "array",
95
+ "items": {
96
+ "type": "object",
97
+ "required": ["name"],
98
+ "properties": {
99
+ "description": {
100
+ "title": "Organization description",
101
+ "type": "string",
102
+ },
103
+ "name": {
104
+ "title": "Organization name",
105
+ "type": "string",
106
+ "minLength": 1,
107
+ },
108
+ "roles": {
109
+ "title": "Organization roles",
110
+ "type": "array",
111
+ "items": {
112
+ "type": "string",
113
+ "enum": [
114
+ "producer",
115
+ "licensor",
116
+ "processor",
117
+ "host",
118
+ ],
119
+ },
120
+ },
121
+ "url": {
122
+ "title": "Organization homepage",
123
+ "type": "string",
124
+ "format": "iri",
125
+ },
126
+ },
127
+ },
128
+ },
129
+ "roles": {
130
+ "title": "Asset roles",
131
+ "type": "array",
132
+ "items": {"type": "string"},
133
+ },
134
+ "start_datetime": {
135
+ "title": "Start Date and Time",
136
+ "description": "The searchable start date/time of the assets, in UTC (Formatted in RFC 3339) ",
137
+ "type": "string",
138
+ "format": "date-time",
139
+ "pattern": "(\\+00:00|Z)$",
140
+ },
141
+ "updated": {
142
+ "title": "Last Update Time",
143
+ "type": "string",
144
+ "format": "date-time",
145
+ "pattern": "(\\+00:00|Z)$",
146
+ },
147
+ },
148
+ "dependencies": {
149
+ "end_datetime": {"required": ["start_datetime"]},
150
+ "start_datetime": {"required": ["end_datetime"]},
151
+ },
152
+ },
153
+ },
154
+ "extent": {
155
+ "title": "Extents",
156
+ "type": "object",
157
+ "required": ["spatial", "temporal"],
158
+ "properties": {
159
+ "spatial": {
160
+ "title": "Spatial extent object",
161
+ "type": "object",
162
+ "required": ["bbox"],
163
+ "properties": {
164
+ "bbox": {
165
+ "title": "Spatial extents",
166
+ "type": "array",
167
+ "items": {
168
+ "title": "Spatial extent",
169
+ "type": "array",
170
+ "items": {"type": "number"},
171
+ "oneOf": [
172
+ {"maxItems": 4, "minItems": 4},
173
+ {"maxItems": 6, "minItems": 6},
174
+ ],
175
+ },
176
+ "minItems": 1,
177
+ }
178
+ },
179
+ },
180
+ "temporal": {
181
+ "title": "Temporal extent object",
182
+ "type": "object",
183
+ "required": ["interval"],
184
+ "properties": {
185
+ "interval": {
186
+ "title": "Temporal extents",
187
+ "type": "array",
188
+ "items": {
189
+ "title": "Temporal extent",
190
+ "type": "array",
191
+ "items": {
192
+ "type": ["string", "null"],
193
+ "format": "date-time",
194
+ "pattern": "(\\+00:00|Z)$",
195
+ },
196
+ "maxItems": 2,
197
+ "minItems": 2,
198
+ },
199
+ "minItems": 1,
200
+ }
201
+ },
202
+ },
203
+ },
204
+ },
205
+ "id": {"title": "Identifier", "type": "string", "minLength": 1},
206
+ "keywords": {"title": "Keywords", "type": "array", "items": {"type": "string"}},
207
+ "license": {
208
+ "title": "Collection License Name",
209
+ "type": "string",
210
+ "pattern": "^[\\w\\-\\.\\+]+$",
211
+ },
212
+ "links": {
213
+ "title": "Links",
214
+ "type": "array",
215
+ "items": {
216
+ "type": "object",
217
+ "required": ["rel", "href"],
218
+ "properties": {
219
+ "title": {"title": "Link title", "type": "string"},
220
+ "type": {"title": "Link type", "type": "string"},
221
+ "href": {
222
+ "title": "Link reference",
223
+ "type": "string",
224
+ "format": "iri-reference",
225
+ "minLength": 1,
226
+ },
227
+ "rel": {
228
+ "title": "Link relation type",
229
+ "type": "string",
230
+ "minLength": 1,
231
+ },
232
+ },
233
+ },
234
+ },
235
+ "providers": {
236
+ "type": "array",
237
+ "items": {
238
+ "type": "object",
239
+ "required": ["name"],
240
+ "properties": {
241
+ "description": {
242
+ "title": "Organization description",
243
+ "type": "string",
244
+ },
245
+ "name": {"title": "Organization name", "type": "string"},
246
+ "roles": {
247
+ "title": "Organization roles",
248
+ "type": "array",
249
+ "items": {
250
+ "type": "string",
251
+ "enum": ["producer", "licensor", "processor", "host"],
252
+ },
253
+ },
254
+ "url": {
255
+ "title": "Organization homepage",
256
+ "type": "string",
257
+ "format": "iri",
258
+ },
259
+ },
260
+ },
261
+ },
262
+ "stac_extensions": {
263
+ "title": "STAC extensions",
264
+ "type": "array",
265
+ "items": {
266
+ "title": "Reference to a JSON Schema",
267
+ "type": "string",
268
+ "format": "iri",
269
+ },
270
+ "uniqueItems": True,
271
+ },
272
+ "stac_version": {"title": "STAC version", "type": "string", "const": "1.0.0"},
273
+ "summaries": {
274
+ "type": "object",
275
+ "additionalProperties": {
276
+ "anyOf": [
277
+ {
278
+ "title": "JSON Schema",
279
+ "type": "object",
280
+ "minProperties": 1,
281
+ "allOf": {"$ref": "http://json-schema.org/draft-07/schema"},
282
+ },
283
+ {
284
+ "title": "Range",
285
+ "type": "object",
286
+ "required": ["minimum", "maximum"],
287
+ "properties": {
288
+ "maximum": {
289
+ "title": "Maximum value",
290
+ "type": ["number", "string"],
291
+ },
292
+ "minimum": {
293
+ "title": "Minimum value",
294
+ "type": ["number", "string"],
295
+ },
296
+ },
297
+ },
298
+ {
299
+ "title": "Set of values",
300
+ "type": "array",
301
+ "items": {
302
+ "description": "For each field only the original data type of the property can occur (except for arrays), but we can't validate that in JSON Schema yet. See the sumamry description in the STAC specification for details."
303
+ },
304
+ "minItems": 1,
305
+ },
306
+ ]
307
+ },
308
+ },
309
+ },
310
+ "definitions": {
311
+ "collection": {
312
+ "title": "STAC Collection",
313
+ "description": "These are the fields specific to a STAC Collection. All other fields are inherited from STAC Catalog.",
314
+ "type": "object",
315
+ "required": [
316
+ "stac_version",
317
+ "type",
318
+ "id",
319
+ "description",
320
+ "license",
321
+ "extent",
322
+ "links",
323
+ ],
324
+ "properties": {
325
+ "title": {"title": "Title", "type": "string"},
326
+ "description": {
327
+ "title": "Description",
328
+ "type": "string",
329
+ "minLength": 1,
330
+ },
331
+ "type": {"title": "Type of STAC entity", "const": "Collection"},
332
+ "assets": {
333
+ "title": "Asset links",
334
+ "description": "Links to assets",
335
+ "type": "object",
336
+ "additionalProperties": {
337
+ "title": "Basic Descriptive Fields",
338
+ "$id": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/basics.json#",
339
+ "$schema": "http://json-schema.org/draft-07/schema#",
340
+ "type": "object",
341
+ "required": ["href"],
342
+ "properties": {
343
+ "title": {
344
+ "title": "Asset title",
345
+ "description": "A human-readable title describing the Item.",
346
+ "type": "string",
347
+ },
348
+ "description": {
349
+ "title": "Asset description",
350
+ "description": "Detailed multi-line description to fully explain the Item.",
351
+ "type": "string",
352
+ },
353
+ "type": {"title": "Asset type", "type": "string"},
354
+ "constellation": {
355
+ "title": "Constellation",
356
+ "type": "string",
357
+ },
358
+ "created": {
359
+ "title": "Creation Time",
360
+ "type": "string",
361
+ "format": "date-time",
362
+ "pattern": "(\\+00:00|Z)$",
363
+ },
364
+ "datetime": {
365
+ "title": "Date and Time",
366
+ "description": "The searchable date/time of the assets, in UTC (Formatted in RFC 3339) ",
367
+ "type": ["string", "null"],
368
+ "format": "date-time",
369
+ "pattern": "(\\+00:00|Z)$",
370
+ },
371
+ "end_datetime": {
372
+ "title": "End Date and Time",
373
+ "description": "The searchable end date/time of the assets, in UTC (Formatted in RFC 3339) ",
374
+ "type": "string",
375
+ "format": "date-time",
376
+ "pattern": "(\\+00:00|Z)$",
377
+ },
378
+ "gsd": {
379
+ "title": "Ground Sample Distance",
380
+ "type": "number",
381
+ "exclusiveMinimum": 0,
382
+ },
383
+ "href": {
384
+ "title": "Asset reference",
385
+ "type": "string",
386
+ "format": "iri-reference",
387
+ "minLength": 1,
388
+ },
389
+ "instruments": {
390
+ "title": "Instruments",
391
+ "type": "array",
392
+ "items": {"type": "string"},
393
+ },
394
+ "license": {
395
+ "type": "string",
396
+ "pattern": "^[\\w\\-\\.\\+]+$",
397
+ },
398
+ "mission": {"title": "Mission", "type": "string"},
399
+ "platform": {"title": "Platform", "type": "string"},
400
+ "providers": {
401
+ "title": "Providers",
402
+ "type": "array",
403
+ "items": {
404
+ "type": "object",
405
+ "required": ["name"],
406
+ "properties": {
407
+ "description": {
408
+ "title": "Organization description",
409
+ "type": "string",
410
+ },
411
+ "name": {
412
+ "title": "Organization name",
413
+ "type": "string",
414
+ "minLength": 1,
415
+ },
416
+ "roles": {
417
+ "title": "Organization roles",
418
+ "type": "array",
419
+ "items": {
420
+ "type": "string",
421
+ "enum": [
422
+ "producer",
423
+ "licensor",
424
+ "processor",
425
+ "host",
426
+ ],
427
+ },
428
+ },
429
+ "url": {
430
+ "title": "Organization homepage",
431
+ "type": "string",
432
+ "format": "iri",
433
+ },
434
+ },
435
+ },
436
+ },
437
+ "roles": {
438
+ "title": "Asset roles",
439
+ "type": "array",
440
+ "items": {"type": "string"},
441
+ },
442
+ "start_datetime": {
443
+ "title": "Start Date and Time",
444
+ "description": "The searchable start date/time of the assets, in UTC (Formatted in RFC 3339) ",
445
+ "type": "string",
446
+ "format": "date-time",
447
+ "pattern": "(\\+00:00|Z)$",
448
+ },
449
+ "updated": {
450
+ "title": "Last Update Time",
451
+ "type": "string",
452
+ "format": "date-time",
453
+ "pattern": "(\\+00:00|Z)$",
454
+ },
455
+ },
456
+ "dependencies": {
457
+ "end_datetime": {"required": ["start_datetime"]},
458
+ "start_datetime": {"required": ["end_datetime"]},
459
+ },
460
+ },
461
+ },
462
+ "extent": {
463
+ "title": "Extents",
464
+ "type": "object",
465
+ "required": ["spatial", "temporal"],
466
+ "properties": {
467
+ "spatial": {
468
+ "title": "Spatial extent object",
469
+ "type": "object",
470
+ "required": ["bbox"],
471
+ "properties": {
472
+ "bbox": {
473
+ "title": "Spatial extents",
474
+ "type": "array",
475
+ "items": {
476
+ "title": "Spatial extent",
477
+ "type": "array",
478
+ "items": {"type": "number"},
479
+ "oneOf": [
480
+ {"maxItems": 4, "minItems": 4},
481
+ {"maxItems": 6, "minItems": 6},
482
+ ],
483
+ },
484
+ "minItems": 1,
485
+ }
486
+ },
487
+ },
488
+ "temporal": {
489
+ "title": "Temporal extent object",
490
+ "type": "object",
491
+ "required": ["interval"],
492
+ "properties": {
493
+ "interval": {
494
+ "title": "Temporal extents",
495
+ "type": "array",
496
+ "items": {
497
+ "title": "Temporal extent",
498
+ "type": "array",
499
+ "items": {
500
+ "type": ["string", "null"],
501
+ "format": "date-time",
502
+ "pattern": "(\\+00:00|Z)$",
503
+ },
504
+ "maxItems": 2,
505
+ "minItems": 2,
506
+ },
507
+ "minItems": 1,
508
+ }
509
+ },
510
+ },
511
+ },
512
+ },
513
+ "id": {"title": "Identifier", "type": "string", "minLength": 1},
514
+ "keywords": {
515
+ "title": "Keywords",
516
+ "type": "array",
517
+ "items": {"type": "string"},
518
+ },
519
+ "license": {
520
+ "title": "Collection License Name",
521
+ "type": "string",
522
+ "pattern": "^[\\w\\-\\.\\+]+$",
523
+ },
524
+ "links": {
525
+ "title": "Links",
526
+ "type": "array",
527
+ "items": {
528
+ "type": "object",
529
+ "required": ["rel", "href"],
530
+ "properties": {
531
+ "title": {"title": "Link title", "type": "string"},
532
+ "type": {"title": "Link type", "type": "string"},
533
+ "href": {
534
+ "title": "Link reference",
535
+ "type": "string",
536
+ "format": "iri-reference",
537
+ "minLength": 1,
538
+ },
539
+ "rel": {
540
+ "title": "Link relation type",
541
+ "type": "string",
542
+ "minLength": 1,
543
+ },
544
+ },
545
+ },
546
+ },
547
+ "providers": {
548
+ "type": "array",
549
+ "items": {
550
+ "type": "object",
551
+ "required": ["name"],
552
+ "properties": {
553
+ "description": {
554
+ "title": "Organization description",
555
+ "type": "string",
556
+ },
557
+ "name": {"title": "Organization name", "type": "string"},
558
+ "roles": {
559
+ "title": "Organization roles",
560
+ "type": "array",
561
+ "items": {
562
+ "type": "string",
563
+ "enum": [
564
+ "producer",
565
+ "licensor",
566
+ "processor",
567
+ "host",
568
+ ],
569
+ },
570
+ },
571
+ "url": {
572
+ "title": "Organization homepage",
573
+ "type": "string",
574
+ "format": "iri",
575
+ },
576
+ },
577
+ },
578
+ },
579
+ "stac_extensions": {
580
+ "title": "STAC extensions",
581
+ "type": "array",
582
+ "items": {
583
+ "title": "Reference to a JSON Schema",
584
+ "type": "string",
585
+ "format": "iri",
586
+ },
587
+ "uniqueItems": True,
588
+ },
589
+ "stac_version": {
590
+ "title": "STAC version",
591
+ "type": "string",
592
+ "const": "1.0.0",
593
+ },
594
+ "summaries": {
595
+ "type": "object",
596
+ "additionalProperties": {
597
+ "anyOf": [
598
+ {
599
+ "title": "JSON Schema",
600
+ "type": "object",
601
+ "minProperties": 1,
602
+ },
603
+ {
604
+ "title": "Range",
605
+ "type": "object",
606
+ "required": ["minimum", "maximum"],
607
+ "properties": {
608
+ "maximum": {
609
+ "title": "Maximum value",
610
+ "type": ["number", "string"],
611
+ },
612
+ "minimum": {
613
+ "title": "Minimum value",
614
+ "type": ["number", "string"],
615
+ },
616
+ },
617
+ },
618
+ {
619
+ "title": "Set of values",
620
+ "type": "array",
621
+ "items": {
622
+ "description": "For each field only the original data type of the property can occur (except for arrays), but we can't validate that in JSON Schema yet. See the sumamry description in the STAC specification for details."
623
+ },
624
+ "minItems": 1,
625
+ },
626
+ ]
627
+ },
628
+ },
629
+ },
630
+ },
631
+ "link": {
632
+ "type": "object",
633
+ "required": ["rel", "href"],
634
+ "properties": {
635
+ "title": {"title": "Link title", "type": "string"},
636
+ "type": {"title": "Link type", "type": "string"},
637
+ "href": {
638
+ "title": "Link reference",
639
+ "type": "string",
640
+ "format": "iri-reference",
641
+ "minLength": 1,
642
+ },
643
+ "rel": {
644
+ "title": "Link relation type",
645
+ "type": "string",
646
+ "minLength": 1,
647
+ },
648
+ },
649
+ },
650
+ "summaries": {
651
+ "type": "object",
652
+ "additionalProperties": {
653
+ "anyOf": [
654
+ {"title": "JSON Schema", "type": "object", "minProperties": 1},
655
+ {
656
+ "title": "Range",
657
+ "type": "object",
658
+ "required": ["minimum", "maximum"],
659
+ "properties": {
660
+ "maximum": {
661
+ "title": "Maximum value",
662
+ "type": ["number", "string"],
663
+ },
664
+ "minimum": {
665
+ "title": "Minimum value",
666
+ "type": ["number", "string"],
667
+ },
668
+ },
669
+ },
670
+ {
671
+ "title": "Set of values",
672
+ "type": "array",
673
+ "items": {
674
+ "description": "For each field only the original data type of the property can occur (except for arrays), but we can't validate that in JSON Schema yet. See the sumamry description in the STAC specification for details."
675
+ },
676
+ "minItems": 1,
677
+ },
678
+ ]
679
+ },
680
+ },
681
+ },
682
+ }
File without changes
File without changes
File without changes
File without changes