Skip to content

Commit 2948d11

Browse files
committed
Clean-up
1 parent ec567cc commit 2948d11

File tree

2 files changed

+64
-80
lines changed

2 files changed

+64
-80
lines changed

README.md

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,28 +3,36 @@
33
- **Title:** Storage
44
- **Identifier:** <https://stac-extensions.github.io/storage/v1.0.0/schema.json>
55
- **Field Name Prefix:** storage
6-
- **Scope:** Item, Asset
6+
- **Scope:** Item, Collection
77
- **Extension [Maturity Classification](https://github.com/radiantearth/stac-spec/tree/master/extensions/README.md#extension-maturity):** Pilot
88
- **Owner**: @davidraleigh @matthewhanson
99

1010
This document explains the Storage Extension to the [SpatioTemporal Asset Catalog](https://github.com/radiantearth/stac-spec) (STAC) specification.
11-
This extension adds fields to STAC Item and Asset objects, allowing for details related to cloud storage access and costs to be associated
12-
with a STAC Item. This extension does not cover NFS solutions provided by PaaS cloud companies.
11+
It allows adding details related to cloud storage access and costs to be associated with STAC Assets.
12+
This extension does not cover NFS solutions provided by PaaS cloud companies.
1313

1414
- Examples:
1515
- [Item example 1](examples/item-naip.json): Shows the basic usage of the extension in a STAC Item.
1616
- [Item example 2](examples/item-nsl.json): Another example of basic usage.
1717
- [JSON Schema](json-schema/schema.json)
1818
- [Changelog](./CHANGELOG.md)
1919

20-
## Item Fields
20+
## Fields
2121

22-
| Field Name | Type | Description |
23-
| ----------- | ------ | ----------- |
24-
| storage:platform | string | The [cloud provider](#providers) where data is stored |
25-
| storage:region | string | The region where the data is stored. Relevant to speed of access and inter region egress costs (as defined by PaaS provider) |
26-
| storage:requester_pays | bool | Is the data requester pays or is it data manager/cloud provider pays. *Defaults to false* |
27-
| storage:tier | string | The title for the tier type (as defined by PaaS provider) |
22+
The fields in the table below can be used in these parts of STAC documents:
23+
24+
- [ ] Catalogs
25+
- [ ] Collections
26+
- [x] Item Properties (incl. Summaries in Collections)
27+
- [x] Assets (for both Collections and Items, incl. Item Asset Definitions in Collections)
28+
- [ ] Links
29+
30+
| Field Name | Type | Description |
31+
| ---------------------- | --------- | ----------- |
32+
| storage:platform | string | The [cloud provider](#providers) where data is stored |
33+
| storage:region | string | The region where the data is stored. Relevant to speed of access and inter region egress costs (as defined by PaaS provider) |
34+
| storage:requester_pays | boolean | Is the data requester pays or is it data manager/cloud provider pays. *Defaults to false* |
35+
| storage:tier | string | The title for the tier type (as defined by PaaS provider) |
2836

2937
While these are all valid properties on an Item, they will typically be defined per-asset. If a field applies equally
3038
to all assets (e.g., storage:platform=AWS if all assets are on AWS), then it should be specified in Item properties.

json-schema/schema.json

Lines changed: 46 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -3,92 +3,68 @@
33
"$id": "https://stac-extensions.github.io/storage/v1.0.0/schema.json",
44
"title": "Storage Extension",
55
"description": "STAC Storage Extension to a STAC Item and STAC Assets.",
6+
"type": "object",
7+
"required": [
8+
"stac_extensions"
9+
],
10+
"properties": {
11+
"stac_extensions": {
12+
"type": "array",
13+
"contains": {
14+
"const": "https://stac-extensions.github.io/storage/v1.0.0/schema.json"
15+
}
16+
}
17+
},
618
"oneOf": [
719
{
820
"$comment": "This is the schema for STAC Items.",
9-
"allOf": [
10-
{
21+
"type": "object",
22+
"required": [
23+
"type",
24+
"properties",
25+
"assets"
26+
],
27+
"properties": {
28+
"type": {
29+
"const": "Feature"
30+
},
31+
"properties": {
32+
"$ref": "#/definitions/fields"
33+
},
34+
"assets": {
1135
"type": "object",
12-
"required": [
13-
"type",
14-
"properties",
15-
"assets"
16-
],
17-
"properties": {
18-
"type": {
19-
"const": "Feature"
20-
},
21-
"properties": {
22-
"allOf": [
23-
{
24-
"$comment": "Require fields here for item properties.",
25-
"required": []
26-
},
27-
{
28-
"$ref": "#/definitions/fields"
29-
}
30-
]
31-
},
32-
"assets": {
33-
"type": "object",
34-
"additionalProperties": {
35-
"$ref": "#/definitions/fields"
36-
}
37-
}
36+
"additionalProperties": {
37+
"$ref": "#/definitions/fields"
3838
}
39-
},
40-
{
41-
"$ref": "#/definitions/stac_extensions"
4239
}
43-
]
40+
}
4441
},
4542
{
4643
"$comment": "This is the schema for STAC Collections",
47-
"allOf": [
48-
{
49-
"type": "object",
50-
"required": [
51-
"type"
52-
],
53-
"properties": {
54-
"type": {
55-
"const": "Collection"
56-
},
57-
"assets": {
58-
"type": "object",
59-
"additionalProperties": {
60-
"$ref": "#/definitions/fields"
61-
}
62-
},
63-
"item_assets": {
64-
"type": "object",
65-
"additionalProperties": {
66-
"$ref": "#/definitions/fields"
67-
}
68-
}
69-
}
70-
},
71-
{
72-
"$ref": "#/definitions/stac_extensions"
73-
}
74-
]
75-
}
76-
],
77-
"definitions": {
78-
"stac_extensions": {
7944
"type": "object",
8045
"required": [
81-
"stac_extensions"
46+
"type"
8247
],
8348
"properties": {
84-
"stac_extensions": {
85-
"type": "array",
86-
"contains": {
87-
"const": "https://stac-extensions.github.io/storage/v1.0.0/schema.json"
49+
"type": {
50+
"const": "Collection"
51+
},
52+
"assets": {
53+
"type": "object",
54+
"additionalProperties": {
55+
"$ref": "#/definitions/fields"
56+
}
57+
},
58+
"item_assets": {
59+
"type": "object",
60+
"additionalProperties": {
61+
"$ref": "#/definitions/fields"
8862
}
8963
}
9064
}
91-
},
65+
}
66+
],
67+
"definitions": {
9268
"fields": {
9369
"type": "object",
9470
"properties": {

0 commit comments

Comments
 (0)