|
1 | | -# Template Extension Specification |
| 1 | +# Storage Extension Specification |
2 | 2 |
|
3 | | -- **Title:** Template |
4 | | -- **Identifier:** <https://stac-extensions.github.io/template/v1.0.0/schema.json> |
5 | | -- **Field Name Prefix:** template |
6 | | -- **Scope:** Item, Collection |
| 3 | +- **Title:** Storage |
| 4 | +- **Identifier:** <https://stac-extensions.github.io/storage/v1.0.0/schema.json> |
| 5 | +- **Field Name Prefix:** storage |
| 6 | +- **Scope:** Item, Asset |
7 | 7 | - **Extension [Maturity Classification](https://github.com/radiantearth/stac-spec/tree/master/extensions/README.md#extension-maturity):** Proposal |
8 | | -- **Owner**: @your-gh-handles @person2 |
| 8 | +- **Owner**: @davidraleigh |
9 | 9 |
|
10 | | -This document explains the Template Extension to the [SpatioTemporal Asset Catalog](https://github.com/radiantearth/stac-spec) (STAC) specification. |
11 | | -This is the place to add a short introduction. |
| 10 | +This document explains the Storage Extension to the [SpatioTemporal Asset Catalog](https://github.com/radiantearth/stac-spec) (STAC) specification. This extension adds fields to STAC Item and Asset objects, allowing for details related to cloud storage access and costs to be associated with a STAC Item. This extension does not cover NFS solutions provided by PaaS cloud companies. |
12 | 11 |
|
13 | 12 | - Examples: |
14 | | - - [Item example](examples/item.json): Shows the basic usage of the extension in a STAC Item |
15 | | - - [Collection example](examples/collection.json): Shows the basic usage of the extension in a STAC Collection |
| 13 | + - [Item example 1](examples/example-naip.json): Shows the basic usage of the extension in a STAC Item. |
| 14 | + - [Item example 2](examples/example-nsl.json): Another example of basic usage. |
16 | 15 | - [JSON Schema](json-schema/schema.json) |
17 | 16 | - [Changelog](./CHANGELOG.md) |
18 | 17 |
|
19 | | -## Item Properties and Collection Fields |
| 18 | +## Item Fields |
| 19 | +| Field Name | Type | Description | |
| 20 | +| ----------- | ------ | ----------- | |
| 21 | +| storage:min_tier_duration | integer | number of days for the shortest time tier restriction on access of an asset. | |
| 22 | +| storage:max_tier_duration | integer | number of days for the longest time tier restrictions on access of an asset. | |
| 23 | +| storage:archived | bool | descriptor for whether the data is "properly" archived according to implementers discretion | |
| 24 | + |
| 25 | +## Asset Fields |
20 | 26 |
|
21 | | -| Field Name | Type | Description | |
22 | | -| -------------------- | ------------------------- | ----------- | |
23 | | -| template:new_field | string | **REQUIRED**. Describe the required field... | |
24 | | -| template:xyz | [XYZ Object](#xyz-object) | Describe the field... | |
25 | | -| template:another_one | \[number] | Describe the field... | |
| 27 | +| Field Name | Type | Description | |
| 28 | +| ----------- | ------ | ----------- | |
| 29 | +| storage:platform | string | (REQUIRED) The [cloud provider](#providers) where data is stored | |
| 30 | +| storage:manager | string | The entity in charge of managing the data. | |
| 31 | +| storage:region | string | (REQUIRED) The region where the data is stored. Relevant to speed of access and inter region egress costs (as defined by PaaS provider) | |
| 32 | +| storage:bucket | string | The bucket for the asset, used along with object path | |
| 33 | +| storage:object_path | string | The object_path for the asset, used along with bucket | |
| 34 | +| storage:requester_pays | bool | (REQUIRED) Is the data requester pays or is it data manager/cloud provider pays | |
| 35 | +| storage:tier | string | The title for the tier type (as defined by PaaS provider) | |
| 36 | +| storage:tier_duration | integer | Minimum storage duration (in days) required before additional fees | |
| 37 | +| storage:date_stored | string | Date and time the corresponding asset placed into the current storage tier (relevant for tier_duration > 0). Format is RFC 3339. | |
| 38 | +| storage:first_byte_latency | string | approximate time unit (milliseconds, minutes or hours) for accessing first byte of data | |
26 | 39 |
|
27 | 40 | ### Additional Field Information |
28 | 41 |
|
29 | | -#### template:new_field |
| 42 | +#### Providers |
| 43 | +Currently this document is arranged to support object storage users of the following PaaS solutions: |
30 | 44 |
|
31 | | -This is a much more detailed description of the field `template:new_field`... |
| 45 | +- Alibaba |
| 46 | +- AWS |
| 47 | +- Azure |
| 48 | +- Google Cloud Platform |
| 49 | +- IBM |
| 50 | +- Oracle |
32 | 51 |
|
33 | | -### XYZ Object |
| 52 | +#### Cloud Provider Storage Tiers |
34 | 53 |
|
35 | | -This is the introduction for the purpose and the content of the XYZ Object... |
| 54 | +| Duration | Google Cloud | AWS | Azure | IBM | Oracle | Alibaba | |
| 55 | +| ------------- | ------------- | --------------------- | ------------- |------------- | --------- | --------- | |
| 56 | +| 0 days | STANDARD | Standard | Hot Tier | Standard | Standard | Standard | |
| 57 | +| 30 days | NEARLINE | Standard-IA | Cool Tier | Vault | N/A | Infrequent Access | |
| 58 | +| 60 days | N/A | N/A | N/A | N/A | N/A | Archive | |
| 59 | +| 90 days | COLDLINE | Glacier | N/A | Cold Vault | Archive | N/A | |
| 60 | +| 180 days | N/A | Glacier Deep Archive | Archive Tier | N/A | N/A | Cold Archive | |
| 61 | +| 365 days | ARCHIVE | N/A | N/A | N/A | N/A | N/A | |
36 | 62 |
|
37 | | -| Field Name | Type | Description | |
38 | | -| ----------- | ------ | ----------- | |
39 | | -| x | number | **REQUIRED**. Describe the required field... | |
40 | | -| y | number | **REQUIRED**. Describe the required field... | |
41 | | -| z | number | **REQUIRED**. Describe the required field... | |
| 63 | +References for the above table: |
| 64 | + |
| 65 | +IBM: <https://cloud.ibm.com/objectstorage/create#pricing> |
| 66 | + |
| 67 | +Google Cloud: <https://cloud.google.com/storage/docs/storage-classes> |
| 68 | + |
| 69 | +Microsoft: <https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers> |
| 70 | + |
| 71 | +AWS: <https://aws.amazon.com/s3/storage-classes/> |
42 | 72 |
|
43 | | -## Relation types |
| 73 | +Oracle: |
| 74 | +- <https://www.oracle.com/cloud/storage/pricing.html> |
| 75 | +- <https://www.oracle.com/cloud/storage/archive-storage-faq.html> |
44 | 76 |
|
45 | | -The following types should be used as applicable `rel` types in the |
46 | | -[Link Object](https://github.com/radiantearth/stac-spec/tree/master/item-spec/item-spec.md#link-object). |
| 77 | +Alibaba: |
| 78 | +- <https://www.alibabacloud.com/product/oss/pricing> |
| 79 | +- <https://www.alibabacloud.com/help/doc-detail/51374.htm> |
47 | 80 |
|
48 | | -| Type | Description | |
49 | | -| ------------------- | ----------- | |
50 | | -| fancy-rel-type | This link points to a fancy resource. | |
| 81 | +All timestamps MUST be formatted according to [RFC 3339, section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6). |
0 commit comments