Skip to content

Commit

Permalink
Publish JSON Schemas [ci skip]
Browse files Browse the repository at this point in the history
  • Loading branch information
STAC CI committed Aug 7, 2024
1 parent 7b590b9 commit c712f39
Show file tree
Hide file tree
Showing 11 changed files with 954 additions and 0 deletions.
57 changes: 57 additions & 0 deletions v1.1.0-beta.1/catalog-spec/json-schema/catalog.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://schemas.stacspec.org/v1.1.0-beta.1/catalog-spec/json-schema/catalog.json",
"title": "STAC Catalog Specification",
"description": "This object represents Catalogs in a SpatioTemporal Asset Catalog.",
"allOf": [
{
"$ref": "#/definitions/catalog"
},
{
"$ref": "../../item-spec/json-schema/common.json"
}
],
"definitions": {
"catalog": {
"title": "STAC Catalog",
"type": "object",
"$comment": "title and description is validated through the common metadata.",
"required": [
"stac_version",
"type",
"id",
"description",
"links"
],
"properties": {
"stac_version": {
"title": "STAC version",
"type": "string",
"const": "1.1.0-beta.1"
},
"stac_extensions": {
"title": "STAC extensions",
"type": "array",
"uniqueItems": true,
"items": {
"title": "Reference to a JSON Schema",
"type": "string",
"format": "iri"
}
},
"type": {
"title": "Type of STAC entity",
"const": "Catalog"
},
"id": {
"title": "Identifier",
"type": "string",
"minLength": 1
},
"links": {
"$ref": "../../item-spec/json-schema/item.json#/definitions/links"
}
}
}
}
}
228 changes: 228 additions & 0 deletions v1.1.0-beta.1/collection-spec/json-schema/collection.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,228 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://schemas.stacspec.org/v1.1.0-beta.1/collection-spec/json-schema/collection.json",
"title": "STAC Collection Specification",
"description": "This object represents Collections in a SpatioTemporal Asset Catalog.",
"allOf": [
{
"$ref": "#/definitions/collection"
},
{
"$ref": "../../item-spec/json-schema/common.json"
}
],
"definitions": {
"collection": {
"title": "STAC Collection",
"description": "These are the fields specific to a STAC Collection.",
"type": "object",
"$comment": "title, description, keywords, providers and license is validated through the common metadata.",
"required": [
"stac_version",
"type",
"id",
"description",
"license",
"extent",
"links"
],
"properties": {
"stac_version": {
"title": "STAC version",
"type": "string",
"const": "1.1.0-beta.1"
},
"stac_extensions": {
"title": "STAC extensions",
"type": "array",
"uniqueItems": true,
"items": {
"title": "Reference to a JSON Schema",
"type": "string",
"format": "iri"
}
},
"type": {
"title": "Type of STAC entity",
"const": "Collection"
},
"id": {
"title": "Identifier",
"type": "string",
"minLength": 1
},
"extent": {
"title": "Extents",
"type": "object",
"required": [
"spatial",
"temporal"
],
"properties": {
"spatial": {
"title": "Spatial extent object",
"type": "object",
"required": [
"bbox"
],
"properties": {
"bbox": {
"title": "Spatial extents",
"type": "array",
"oneOf": [
{
"minItems": 1,
"maxItems": 1
},
{
"minItems": 3
}
],
"items": {
"title": "Spatial extent",
"type": "array",
"oneOf": [
{
"minItems": 4,
"maxItems": 4
},
{
"minItems": 6,
"maxItems": 6
}
],
"items": {
"type": "number"
}
}
}
}
},
"temporal": {
"title": "Temporal extent object",
"type": "object",
"required": [
"interval"
],
"properties": {
"interval": {
"title": "Temporal extents",
"type": "array",
"minItems": 1,
"items": {
"title": "Temporal extent",
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
}
}
}
}
}
}
},
"assets": {
"$ref": "../../item-spec/json-schema/item.json#/definitions/assets"
},
"item_assets": {
"allOf": [
{
"type": "object",
"minProperties": 2,
"properties": {
"href": {
"title": "Disallow href",
"not": {}
},
"title": {
"title": "Asset title",
"type": "string"
},
"description": {
"title": "Asset description",
"type": "string"
},
"type": {
"title": "Asset type",
"type": "string"
},
"roles": {
"title": "Asset roles",
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"$ref": "../../item-spec/json-schema/common.json"
}
]
},
"links": {
"$ref": "../../item-spec/json-schema/item.json#/definitions/links"
},
"summaries": {
"$ref": "#/definitions/summaries"
}
}
},
"summaries": {
"type": "object",
"additionalProperties": {
"anyOf": [
{
"title": "JSON Schema",
"type": "object",
"minProperties": 1,
"allOf": [
{
"$ref": "http://json-schema.org/draft-07/schema"
}
]
},
{
"title": "Range",
"type": "object",
"required": [
"minimum",
"maximum"
],
"properties": {
"minimum": {
"title": "Minimum value",
"type": [
"number",
"string"
]
},
"maximum": {
"title": "Maximum value",
"type": [
"number",
"string"
]
}
}
},
{
"title": "Set of values",
"type": "array",
"minItems": 1,
"items": {
"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."
}
}
]
}
}
}
}
24 changes: 24 additions & 0 deletions v1.1.0-beta.1/item-spec/json-schema/bands.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://schemas.stacspec.org/v1.1.0-beta.1/item-spec/json-schema/bands.json",
"title": "Bands Field",
"type": "object",
"properties": {
"bands": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
}
},
"allOf": [
{
"$ref": "common.json"
}
]
}
}
}
}
34 changes: 34 additions & 0 deletions v1.1.0-beta.1/item-spec/json-schema/basics.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://schemas.stacspec.org/v1.1.0-beta.1/item-spec/json-schema/basics.json",
"title": "Basic Descriptive Fields",
"type": "object",
"properties": {
"title": {
"title": "Title",
"description": "A human-readable title describing the entity.",
"type": "string"
},
"description": {
"title": "Description",
"description": "Detailed multi-line description to fully explain the entity.",
"type": "string",
"minLength": 1
},
"keywords": {
"title": "Keywords",
"description": "List of keywords describing the entity.",
"type": "array",
"items": {
"type": "string"
}
},
"roles": {
"title": "Roles",
"type": "array",
"items": {
"type": "string"
}
}
}
}
30 changes: 30 additions & 0 deletions v1.1.0-beta.1/item-spec/json-schema/common.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://schemas.stacspec.org/v1.1.0-beta.1/item-spec/json-schema/commonjson",
"title": "STAC Common Metadata",
"type": "object",
"description": "This schema includes all common metadata fields.",
"allOf": [
{
"$ref": "basics.json"
},
{
"$ref": "bands.json"
},
{
"$ref": "datetime.json"
},
{
"$ref": "data-values.json"
},
{
"$ref": "instrument.json"
},
{
"$ref": "licensing.json"
},
{
"$ref": "provider.json"
}
]
}
Loading

0 comments on commit c712f39

Please sign in to comment.