diff --git a/schemas/common/storage/v1.schema.json b/schemas/common/storage/v1.schema.json new file mode 100644 index 00000000..4ecb2fc0 --- /dev/null +++ b/schemas/common/storage/v1.schema.json @@ -0,0 +1,20 @@ +{ + "$id": "https://mapcolonies.com/common/storage/v1", + "type": "object", + "title": "commonStorageSchemaV1", + "description": "Common storage schema", + "required": ["sourceDir"], + "properties": { + "sourceDir": { + "$ref": "#/definitions/sourceDir" + } + }, + "definitions": { + "sourceDir": { + "type": "string", + "description": "Data source directory", + "minLength": 1, + "x-env-value": "STORAGE_SOURCE_DIR" + } + } +} diff --git a/schemas/common/storageExplorer/v1.schema.json b/schemas/common/storageExplorer/v1.schema.json new file mode 100644 index 00000000..e52abd24 --- /dev/null +++ b/schemas/common/storageExplorer/v1.schema.json @@ -0,0 +1,30 @@ +{ + "$id": "https://mapcolonies.com/common/storageExplorer/v1", + "type": "object", + "title": "commonStorageExplorerSchemaV1", + "description": "Storage explorer middleware configuration schema", + "unevaluatedProperties": false, + "required": ["displayNameDir", "validFileExtensions"], + "allOf": [ + { + "$ref": "https://mapcolonies.com/common/storage/v1" + } + ], + "properties": { + "displayNameDir": { + "type": "string", + "minLength": 1, + "default": "\\layerSources", + "x-env-value": "STORAGE_DISPLAY_NAME_DIR" + }, + "validFileExtensions": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + }, + "minItems": 1, + "x-env-value": "STORAGE_VALID_FILE_EXTENSIONS" + } + } +} diff --git a/schemas/dem/demGateway/v1.schema.json b/schemas/dem/demGateway/v1.schema.json new file mode 100644 index 00000000..77e75373 --- /dev/null +++ b/schemas/dem/demGateway/v1.schema.json @@ -0,0 +1,146 @@ +{ + "$id": "https://mapcolonies.com/dem/demGateway/v1", + "type": "object", + "title": "demGatewaySchemaV1", + "description": "DEM gateway schema", + "allOf": [ + { + "$ref": "https://mapcolonies.com/common/boilerplate/v3" + }, + { + "type": "object", + "required": ["jobnik"], + "properties": { + "jobnik": { + "type": "object", + "$ref": "https://mapcolonies.com/infra/jobnik/sdk/full/v1", + "unevaluatedProperties": false + } + } + }, + { + "type": "object", + "required": ["storageExplorer"], + "properties": { + "storageExplorer": { + "$ref": "#/definitions/storageExplorer" + } + } + }, + { + "type": "object", + "required": ["application"], + "properties": { + "application": { + "$ref": "#/definitions/application" + } + } + } + ], + "definitions": { + "application": { + "type": "object", + "description": "Application configuration", + "unevaluatedProperties": false, + "required": ["supportedFormatsMap", "validation"], + "properties": { + "supportedFormatsMap": { + "type": "object", + "description": "Supported formats map. Maps common format identifier to internal identifier supported for usage", + "examples": [ + { + "geotiff": "gtiff" + } + ], + "unevaluatedProperties": false, + "patternProperties": { + "^[a-z][a-z0-9_]*$": { + "type": "string", + "minLength": 1 + } + }, + "minProperties": 1, + "x-env-value": "SUPPORTED_FORMATS_MAP" + }, + "validation": { + "type": "object", + "description": "Validation configurations", + "unevaluatedProperties": false, + "required": ["blockSize", "compression", "resolutionDegree", "resolutionMeter", "supportedSrsIds"], + "properties": { + "blockSize": { + "type": "integer", + "description": "DEM internal block size", + "default": 256, + "minimum": 16, + "multipleOf": 16, + "x-env-value": "BLOCK_SIZE" + }, + "compression": { + "type": "string", + "description": "DEM compression", + "default": "LZW", + "minLength": 1, + "x-env-value": "COMPRESSION" + }, + "resolutionDegree": { + "type": "object", + "description": "DEM resolution in degrees", + "required": ["min", "max"], + "unevaluatedProperties": false, + "properties": { + "min": { + "type": "number", + "default": 0.00000009060870470168063430786, + "exclusiveMinimum": 0, + "x-env-value": "RESOLUTION_DEGREE_MIN" + }, + "max": { + "type": "number", + "default": 0.08982, + "exclusiveMinimum": 0, + "x-env-value": "RESOLUTION_DEGREE_MAX" + } + } + }, + "resolutionMeter": { + "type": "object", + "description": "DEM resolution in meters", + "required": ["min", "max"], + "unevaluatedProperties": false, + "properties": { + "min": { + "type": "number", + "default": 0.01, + "exclusiveMinimum": 0, + "x-env-value": "RESOLUTION_METER_MIN" + }, + "max": { + "type": "number", + "default": 10000, + "exclusiveMinimum": 0, + "x-env-value": "RESOLUTION_METER_MAX" + } + } + }, + "supportedSrsIds": { + "type": "array", + "description": "Supported projection codes as registered by EPSG", + "uniqueItems": true, + "items": { + "type": "integer", + "minimum": 0 + }, + "minItems": 1, + "x-env-value": "SUPPORTED_SRS_IDS" + } + } + } + } + }, + "storageExplorer": { + "description": "DEM storage explorer middleware configuration schema", + "$ref": "https://mapcolonies.com/common/storageExplorer/v1" + } + } +}