From 62444f72424cf888f6b478ff591d5e06970238d7 Mon Sep 17 00:00:00 2001 From: Mandy Parson Date: Thu, 14 Nov 2024 14:55:58 -0700 Subject: [PATCH] Revert "MMT-3903: Running bin/download_schemas.sh" This reverts commit 5b9421e704c27f0779f5c043bac651ef76f82f68. --- static/src/js/schemas/umm/ummSSchema.js | 2944 ++++++++++----------- static/src/js/schemas/umm/ummTSchema.js | 1466 +++++----- static/src/js/schemas/umm/ummVarSchema.js | 1208 ++++----- 3 files changed, 2809 insertions(+), 2809 deletions(-) diff --git a/static/src/js/schemas/umm/ummSSchema.js b/static/src/js/schemas/umm/ummSSchema.js index 64c54ebd0..144e5e0be 100644 --- a/static/src/js/schemas/umm/ummSSchema.js +++ b/static/src/js/schemas/umm/ummSSchema.js @@ -1,1794 +1,1794 @@ const ummSSchema = { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "UMM-S", - "type": "object", - "additionalProperties": false, - "properties": { - "Name": { - "description": "The name of the service, software, or tool.", - "type": "string", - "minLength": 1, - "maxLength": 85 - }, - "LongName": { - "description": "The long name of the service, software, or tool.", - "type": "string", - "minLength": 1, - "maxLength": 1024 - }, - "Type": { - "description": "The type of the service, software, or tool.", - "$ref": "#/definitions/ServiceTypeEnum" - }, - "Version": { - "description": "The edition or version of the service.", - "type": "string", - "minLength": 1, - "maxLength": 20 - }, - "VersionDescription": { - "description": "This field provides users with information on what changes were included in the most recent version.", - "type": "string", - "minLength": 1, - "maxLength": 1024 - }, - "LastUpdatedDate": { - "description": "This element describes the latest date when the service was most recently pushed to production for support and maintenance. ", - "format": "date-time", - "type": "string" - }, - "URL": { - "description": "This element contains important information about the universal resource locator (URL) for the service.", - "$ref": "#/definitions/URLType" - }, - "RelatedURLs": { - "description": "Web addresses used to get supported documentation or other related information link to the service.", - "type": "array", - "items": { - "$ref": "#/definitions/RelatedURLType" + $schema: 'http://json-schema.org/draft-07/schema#', + title: 'UMM-S', + type: 'object', + additionalProperties: false, + properties: { + Name: { + description: 'The name of the service, software, or tool.', + type: 'string', + minLength: 1, + maxLength: 85 + }, + LongName: { + description: 'The long name of the service, software, or tool.', + type: 'string', + minLength: 1, + maxLength: 1024 + }, + Type: { + description: 'The type of the service, software, or tool.', + $ref: '#/definitions/ServiceTypeEnum' + }, + Version: { + description: 'The edition or version of the service.', + type: 'string', + minLength: 1, + maxLength: 20 + }, + VersionDescription: { + description: 'This field provides users with information on what changes were included in the most recent version.', + type: 'string', + minLength: 1, + maxLength: 1024 + }, + LastUpdatedDate: { + description: 'This element describes the latest date when the service was most recently pushed to production for support and maintenance. ', + format: 'date-time', + type: 'string' + }, + URL: { + description: 'This element contains important information about the universal resource locator (URL) for the service.', + $ref: '#/definitions/URLType' + }, + RelatedURLs: { + description: 'Web addresses used to get supported documentation or other related information link to the service.', + type: 'array', + items: { + $ref: '#/definitions/RelatedURLType' }, - "minItems": 1 - }, - "Description": { - "description": "A brief description of the service.", - "type": "string", - "minLength": 1, - "maxLength": 1024 - }, - "ServiceKeywords": { - "description": "Allows for the specification of Earth Science Service keywords that are representative of the service, software, or tool being described. The controlled vocabulary for Service Keywords is maintained in the Keyword Management System (KMS).", - "type": "array", - "items": { - "$ref": "#/definitions/ServiceKeywordType" + minItems: 1 + }, + Description: { + description: 'A brief description of the service.', + type: 'string', + minLength: 1, + maxLength: 1024 + }, + ServiceKeywords: { + description: 'Allows for the specification of Earth Science Service keywords that are representative of the service, software, or tool being described. The controlled vocabulary for Service Keywords is maintained in the Keyword Management System (KMS).', + type: 'array', + items: { + $ref: '#/definitions/ServiceKeywordType' }, - "minItems": 1 + minItems: 1 }, - "ServiceOrganizations": { - "description": "The service provider, or organization, or institution responsible for developing, archiving, and/or distributing the service, software, or tool.", - "type": "array", - "items": { - "$ref": "#/definitions/ServiceOrganizationType" + ServiceOrganizations: { + description: 'The service provider, or organization, or institution responsible for developing, archiving, and/or distributing the service, software, or tool.', + type: 'array', + items: { + $ref: '#/definitions/ServiceOrganizationType' }, - "minItems": 1 + minItems: 1 }, - "ContactGroups": { - "description": "This is the contact groups of the service.", - "type": "array", - "items": { - "$ref": "#/definitions/ContactGroupType" + ContactGroups: { + description: 'This is the contact groups of the service.', + type: 'array', + items: { + $ref: '#/definitions/ContactGroupType' }, - "minItems": 1 + minItems: 1 }, - "ContactPersons": { - "description": "This is the contact persons of the service.", - "type": "array", - "items": { - "$ref": "#/definitions/ContactPersonType" + ContactPersons: { + description: 'This is the contact persons of the service.', + type: 'array', + items: { + $ref: '#/definitions/ContactPersonType' }, - "minItems": 1 + minItems: 1 }, - "ServiceQuality": { - "description": "Information about the quality of the service, software, or tool, or any quality assurance procedures followed in development.", - "$ref": "#/definitions/ServiceQualityType" + ServiceQuality: { + description: 'Information about the quality of the service, software, or tool, or any quality assurance procedures followed in development.', + $ref: '#/definitions/ServiceQualityType' }, - "AccessConstraints": { - "description": "Information about any constraints for accessing the service, software, or tool.", - "$ref": "#/definitions/AccessConstraintsType" + AccessConstraints: { + description: 'Information about any constraints for accessing the service, software, or tool.', + $ref: '#/definitions/AccessConstraintsType' }, - "UseConstraints": { - "description": "Information on how the item (service, software, or tool) may or may not be used after access is granted. This includes any special restrictions, legal prerequisites, terms and conditions, and/or limitations on using the item. Providers may request acknowledgement of the item from users and claim no responsibility for quality and completeness.", - "$ref": "#/definitions/UseConstraintsType" + UseConstraints: { + description: 'Information on how the item (service, software, or tool) may or may not be used after access is granted. This includes any special restrictions, legal prerequisites, terms and conditions, and/or limitations on using the item. Providers may request acknowledgement of the item from users and claim no responsibility for quality and completeness.', + $ref: '#/definitions/UseConstraintsType' }, - "AncillaryKeywords": { - "description": "Words or phrases to further describe the service, software, or tool.", - "type": "array", - "items": { - "$ref": "#/definitions/AncillaryKeywordsType" + AncillaryKeywords: { + description: 'Words or phrases to further describe the service, software, or tool.', + type: 'array', + items: { + $ref: '#/definitions/AncillaryKeywordsType' }, - "minItems": 1 + minItems: 1 }, - "ServiceOptions": { - "description": "This element contains important information about the Unique Resource Locator for the service.", - "$ref": "#/definitions/ServiceOptionsType" + ServiceOptions: { + description: 'This element contains important information about the Unique Resource Locator for the service.', + $ref: '#/definitions/ServiceOptionsType' }, - "OperationMetadata": { - "description": "This class describes the signature of the operational metadata provided by the service.", - "type": "array", - "items": { - "$ref": "#/definitions/OperationMetadataType" + OperationMetadata: { + description: 'This class describes the signature of the operational metadata provided by the service.', + type: 'array', + items: { + $ref: '#/definitions/OperationMetadataType' }, - "minItems": 1 + minItems: 1 }, - "MetadataSpecification": { - "description": "Requires the user to add in schema information into every service record. It includes the schema's name, version, and URL location. The information is controlled through enumerations at the end of this schema.", - "$ref": "#/definitions/MetadataSpecificationType" + MetadataSpecification: { + description: "Requires the user to add in schema information into every service record. It includes the schema's name, version, and URL location. The information is controlled through enumerations at the end of this schema.", + $ref: '#/definitions/MetadataSpecificationType' } }, - "required": [ - "Name", - "LongName", - "Type", - "Version", - "URL", - "Description", - "ServiceKeywords", - "ServiceOrganizations", - "MetadataSpecification" + required: [ + 'Name', + 'LongName', + 'Type', + 'Version', + 'URL', + 'Description', + 'ServiceKeywords', + 'ServiceOrganizations', + 'MetadataSpecification' ], - "definitions": { - "ServiceOptionsType": { - "type": "object", - "additionalProperties": false, - "description": "This object describes service options, data transformations and output formats.", - "properties": { - "Subset": { - "description": "This element is used to identify the set of supported subsetting capabilities, Spatial, Temporal, and Variable.", - "$ref": "#/definitions/SubsetType" - }, - "Aggregation": { - "description": "This element describes what kinds of aggregations the service allows. When services pull data files, this option allows the service to put the result data into as few files as possible.", - "$ref": "#/definitions/AggregationType" - }, - "VariableAggregationSupportedMethods": { - "description": "This element is used to identify the list of supported methods of variable aggregation.", - "type": "array", - "items": { - "$ref": "#/definitions/VariableAggregationTypeEnum" + definitions: { + ServiceOptionsType: { + type: 'object', + additionalProperties: false, + description: 'This object describes service options, data transformations and output formats.', + properties: { + Subset: { + description: 'This element is used to identify the set of supported subsetting capabilities, Spatial, Temporal, and Variable.', + $ref: '#/definitions/SubsetType' + }, + Aggregation: { + description: 'This element describes what kinds of aggregations the service allows. When services pull data files, this option allows the service to put the result data into as few files as possible.', + $ref: '#/definitions/AggregationType' + }, + VariableAggregationSupportedMethods: { + description: 'This element is used to identify the list of supported methods of variable aggregation.', + type: 'array', + items: { + $ref: '#/definitions/VariableAggregationTypeEnum' }, - "minItems": 1 + minItems: 1 }, - "SupportedInputProjections": { - "description": "This element is used to identify the list of supported input projections types.", - "type": "array", - "items": { - "$ref": "#/definitions/SupportedProjectionType" + SupportedInputProjections: { + description: 'This element is used to identify the list of supported input projections types.', + type: 'array', + items: { + $ref: '#/definitions/SupportedProjectionType' }, - "minItems": 1 + minItems: 1 }, - "SupportedOutputProjections": { - "description": "This element is used to identify the list of supported output projections types.", - "type": "array", - "items": { - "$ref": "#/definitions/SupportedProjectionType" + SupportedOutputProjections: { + description: 'This element is used to identify the list of supported output projections types.', + type: 'array', + items: { + $ref: '#/definitions/SupportedProjectionType' }, - "minItems": 1 + minItems: 1 }, - "InterpolationTypes": { - "description": "This element is used to identify the list of supported interpolation types.", - "type": "array", - "items": { - "$ref": "#/definitions/InterpolationTypeEnum" + InterpolationTypes: { + description: 'This element is used to identify the list of supported interpolation types.', + type: 'array', + items: { + $ref: '#/definitions/InterpolationTypeEnum' }, - "minItems": 1 + minItems: 1 }, - "SupportedReformattings": { - "description": "The project element describes the list of format name combinations which explicitly state which re-formatting options are available. These are entered as pairs of values, e.g. if NetCDF-3 -> NetCDF-4 is a valid supported reformatting, these two values would be entered as a pair.", - "type": "array", - "items": { - "$ref": "#/definitions/SupportedReformattingsPairType" + SupportedReformattings: { + description: 'The project element describes the list of format name combinations which explicitly state which re-formatting options are available. These are entered as pairs of values, e.g. if NetCDF-3 -> NetCDF-4 is a valid supported reformatting, these two values would be entered as a pair.', + type: 'array', + items: { + $ref: '#/definitions/SupportedReformattingsPairType' }, - "minItems": 1 + minItems: 1 }, - "MaxGranules": { - "description": "This field indicates the maximum number of granules which this service can process with one request.", - "type": "number" + MaxGranules: { + description: 'This field indicates the maximum number of granules which this service can process with one request.', + type: 'number' } } }, - "SubsetType": { - "description": "This element is used to identify the set of supported subsetting capabilities, Spatial, Temporal, and Variable.", - "type": "object", - "additionalProperties": false, - "properties": { - "SpatialSubset": { - "description": "This element describes what kind of spatial subsetting the service provides. The sub elements provide the details.", - "$ref": "#/definitions/SpatialSubsetType" - }, - "TemporalSubset": { - "description": "This element describes that the service provides temporal subsetting.", - "$ref": "#/definitions/TemporalSubsetType" - }, - "VariableSubset": { - "description": "This element describes that the service provides variable subsetting.", - "$ref": "#/definitions/VariableSubsetType" + SubsetType: { + description: 'This element is used to identify the set of supported subsetting capabilities, Spatial, Temporal, and Variable.', + type: 'object', + additionalProperties: false, + properties: { + SpatialSubset: { + description: 'This element describes what kind of spatial subsetting the service provides. The sub elements provide the details.', + $ref: '#/definitions/SpatialSubsetType' + }, + TemporalSubset: { + description: 'This element describes that the service provides temporal subsetting.', + $ref: '#/definitions/TemporalSubsetType' + }, + VariableSubset: { + description: 'This element describes that the service provides variable subsetting.', + $ref: '#/definitions/VariableSubsetType' } }, - "anyOf": [ + anyOf: [ { - "required": [ - "SpatialSubset" + required: [ + 'SpatialSubset' ] }, { - "required": [ - "TemporalSubset" + required: [ + 'TemporalSubset' ] }, { - "required": [ - "VariableSubset" + required: [ + 'VariableSubset' ] } ] }, - "SpatialSubsetType": { - "description": "This element describes what kind of spatial subsetting the service provides. The sub elements provide the details.", - "type": "object", - "additionalProperties": false, - "properties": { - "Point": { - "description": "This element describes that the service provides a point spatial subsetting capability.", - "$ref": "#/definitions/SpatialSubsetPointType" - }, - "Circle": { - "description": "The described service provides a point and radius spatial subsetting capability where the point and radius describe a spatial circle.", - "$ref": "#/definitions/SpatialSubsetCircleType" - }, - "Line": { - "description": "This element describes that the service provides a line spatial subsetting capability.", - "$ref": "#/definitions/SpatialSubsetLineType" - }, - "BoundingBox": { - "description": "This element describes that the service provides a bounding box spatial subsetting capability.", - "$ref": "#/definitions/SpatialSubsetBoundingBoxType" - }, - "Polygon": { - "description": "This element describes that the service provides a polygon spatial subsetting capability.", - "$ref": "#/definitions/SpatialSubsetPolygonType" - }, - "Shapefile": { - "description": "This element describes that the service provides a shapefile spatial subsetting capability.", - "$ref": "#/definitions/SpatialSubsetShapefileType" + SpatialSubsetType: { + description: 'This element describes what kind of spatial subsetting the service provides. The sub elements provide the details.', + type: 'object', + additionalProperties: false, + properties: { + Point: { + description: 'This element describes that the service provides a point spatial subsetting capability.', + $ref: '#/definitions/SpatialSubsetPointType' + }, + Circle: { + description: 'The described service provides a point and radius spatial subsetting capability where the point and radius describe a spatial circle.', + $ref: '#/definitions/SpatialSubsetCircleType' + }, + Line: { + description: 'This element describes that the service provides a line spatial subsetting capability.', + $ref: '#/definitions/SpatialSubsetLineType' + }, + BoundingBox: { + description: 'This element describes that the service provides a bounding box spatial subsetting capability.', + $ref: '#/definitions/SpatialSubsetBoundingBoxType' + }, + Polygon: { + description: 'This element describes that the service provides a polygon spatial subsetting capability.', + $ref: '#/definitions/SpatialSubsetPolygonType' + }, + Shapefile: { + description: 'This element describes that the service provides a shapefile spatial subsetting capability.', + $ref: '#/definitions/SpatialSubsetShapefileType' } }, - "anyOf": [ + anyOf: [ { - "required": [ - "Point" + required: [ + 'Point' ] }, { - "required": [ - "Circle" + required: [ + 'Circle' ] }, { - "required": [ - "Line" + required: [ + 'Line' ] }, { - "required": [ - "BoundingBox" + required: [ + 'BoundingBox' ] }, { - "required": [ - "Polygon" + required: [ + 'Polygon' ] }, { - "required": [ - "Shapefile" + required: [ + 'Shapefile' ] } ] }, - "SpatialSubsetPointType": { - "description": "The described service provides a point spatial subsetting capability.", - "type": "object", - "additionalProperties": false, - "properties": { - "AllowMultipleValues": { - "description": "The described service will accept a list of values, such as an array of multiple points, if this element is true. A value of false or the element is not used means the service only accepts a single point.", - "type": "boolean" + SpatialSubsetPointType: { + description: 'The described service provides a point spatial subsetting capability.', + type: 'object', + additionalProperties: false, + properties: { + AllowMultipleValues: { + description: 'The described service will accept a list of values, such as an array of multiple points, if this element is true. A value of false or the element is not used means the service only accepts a single point.', + type: 'boolean' } }, - "required": [ - "AllowMultipleValues" + required: [ + 'AllowMultipleValues' ] }, - "SpatialSubsetCircleType": { - "description": "The described service provides a point and radius spatial subsetting capability where the point and radius describe a spatial circle.", - "type": "object", - "additionalProperties": false, - "properties": { - "AllowMultipleValues": { - "description": "The described service will accept a list of values, such as an array of multiple circles, if this element is true. A value of false or the element is not used means the service only accepts a single circle (point and radius).", - "type": "boolean" + SpatialSubsetCircleType: { + description: 'The described service provides a point and radius spatial subsetting capability where the point and radius describe a spatial circle.', + type: 'object', + additionalProperties: false, + properties: { + AllowMultipleValues: { + description: 'The described service will accept a list of values, such as an array of multiple circles, if this element is true. A value of false or the element is not used means the service only accepts a single circle (point and radius).', + type: 'boolean' } }, - "required": [ - "AllowMultipleValues" + required: [ + 'AllowMultipleValues' ] }, - "SpatialSubsetLineType": { - "description": "The described service provides a line spatial subsetting capability.", - "type": "object", - "additionalProperties": false, - "properties": { - "MaximumNumberOfPoints": { - "description": "The maximum number of points that can be used can be specified.", - "type": "number" - }, - "AllowMultipleValues": { - "description": "The described service will accept a list of values, such as an array of lines, if this element is true. A value of false or the element is not used means the service only accepts a single line.", - "type": "boolean" + SpatialSubsetLineType: { + description: 'The described service provides a line spatial subsetting capability.', + type: 'object', + additionalProperties: false, + properties: { + MaximumNumberOfPoints: { + description: 'The maximum number of points that can be used can be specified.', + type: 'number' + }, + AllowMultipleValues: { + description: 'The described service will accept a list of values, such as an array of lines, if this element is true. A value of false or the element is not used means the service only accepts a single line.', + type: 'boolean' } }, - "required": [ - "AllowMultipleValues" + required: [ + 'AllowMultipleValues' ] }, - "SpatialSubsetBoundingBoxType": { - "description": "The described service provides a bounding box spatial subsetting capability.", - "type": "object", - "additionalProperties": false, - "properties": { - "AllowMultipleValues": { - "description": "The described service will accept a list of values, such as an array of multiple bounding boxes, if this element is true. A value of false or the element is not used means the service only accepts a single bounding box.", - "type": "boolean" + SpatialSubsetBoundingBoxType: { + description: 'The described service provides a bounding box spatial subsetting capability.', + type: 'object', + additionalProperties: false, + properties: { + AllowMultipleValues: { + description: 'The described service will accept a list of values, such as an array of multiple bounding boxes, if this element is true. A value of false or the element is not used means the service only accepts a single bounding box.', + type: 'boolean' } }, - "required": [ - "AllowMultipleValues" + required: [ + 'AllowMultipleValues' ] }, - "SpatialSubsetPolygonType": { - "description": "The described service provides a polygon spatial subsetting capability.", - "type": "object", - "additionalProperties": false, - "properties": { - "MaximumNumberOfPoints": { - "description": "The maximum number of points that can be specified.", - "type": "number" - }, - "AllowMultipleValues": { - "description": "The described service will accept a list of values, such as an array of multiple polygons, if this element is true. A value of false or the element is not used means the service only accepts a single polygon.", - "type": "boolean" + SpatialSubsetPolygonType: { + description: 'The described service provides a polygon spatial subsetting capability.', + type: 'object', + additionalProperties: false, + properties: { + MaximumNumberOfPoints: { + description: 'The maximum number of points that can be specified.', + type: 'number' + }, + AllowMultipleValues: { + description: 'The described service will accept a list of values, such as an array of multiple polygons, if this element is true. A value of false or the element is not used means the service only accepts a single polygon.', + type: 'boolean' } }, - "required": [ - "AllowMultipleValues" + required: [ + 'AllowMultipleValues' ] }, - "SpatialSubsetShapefileType": { - "description": "The described service provides a shapefile spatial subsetting capability. Additional information should be provided for this type of subsetter which includes the shapefile format, maximum number of points and the maximum file size in bytes.", - "type": "array", - "items": { - "$ref": "#/definitions/SpatialSubsetShapefileInformationType" + SpatialSubsetShapefileType: { + description: 'The described service provides a shapefile spatial subsetting capability. Additional information should be provided for this type of subsetter which includes the shapefile format, maximum number of points and the maximum file size in bytes.', + type: 'array', + items: { + $ref: '#/definitions/SpatialSubsetShapefileInformationType' }, - "minItems": 1 - }, - "SpatialSubsetShapefileInformationType": { - "description": "Additional information should be provided for this type of subsetter which includes the shapefile format, maximum number of points and the maximum file size in bytes.", - "type": "object", - "additionalProperties": false, - "properties": { - "Format": { - "description": "This element is used to identify the file format used in the shapefile.", - "type": "string", - "enum": [ - "ESRI", - "KML", - "GeoJSON" + minItems: 1 + }, + SpatialSubsetShapefileInformationType: { + description: 'Additional information should be provided for this type of subsetter which includes the shapefile format, maximum number of points and the maximum file size in bytes.', + type: 'object', + additionalProperties: false, + properties: { + Format: { + description: 'This element is used to identify the file format used in the shapefile.', + type: 'string', + enum: [ + 'ESRI', + 'KML', + 'GeoJSON' ] }, - "MaximumFileSizeInBytes": { - "description": "This element describes the maximum file size in bytes of the shapefile that can be sent to the service.", - "type": "number" + MaximumFileSizeInBytes: { + description: 'This element describes the maximum file size in bytes of the shapefile that can be sent to the service.', + type: 'number' }, - "MaximumNumberOfPoints": { - "description": "This element describes the maximum number of points contained in the shapefile that can be sent to the service.", - "type": "number" + MaximumNumberOfPoints: { + description: 'This element describes the maximum number of points contained in the shapefile that can be sent to the service.', + type: 'number' } }, - "required": [ - "Format" + required: [ + 'Format' ] }, - "TemporalSubsetType": { - "description": "This element describes that the service provides temporal subsetting.", - "type": "object", - "additionalProperties": false, - "properties": { - "AllowMultipleValues": { - "description": "The described service will accept a list of values, such as an array of temporal values, if this element is true. A value of false or the element is not used means the service only accepts a temporal value.", - "type": "boolean" + TemporalSubsetType: { + description: 'This element describes that the service provides temporal subsetting.', + type: 'object', + additionalProperties: false, + properties: { + AllowMultipleValues: { + description: 'The described service will accept a list of values, such as an array of temporal values, if this element is true. A value of false or the element is not used means the service only accepts a temporal value.', + type: 'boolean' } }, - "required": [ - "AllowMultipleValues" + required: [ + 'AllowMultipleValues' ] }, - "VariableSubsetType": { - "description": "This element describes that the service provides variable subsetting.", - "type": "object", - "additionalProperties": false, - "properties": { - "AllowMultipleValues": { - "description": "The described service will accept a list of values, such as an array of variables, if this element is true. A value of false or the element is not used means the service only accepts a variable.", - "type": "boolean" + VariableSubsetType: { + description: 'This element describes that the service provides variable subsetting.', + type: 'object', + additionalProperties: false, + properties: { + AllowMultipleValues: { + description: 'The described service will accept a list of values, such as an array of variables, if this element is true. A value of false or the element is not used means the service only accepts a variable.', + type: 'boolean' } }, - "required": [ - "AllowMultipleValues" + required: [ + 'AllowMultipleValues' ] }, - "AggregationType": { - "type": "object", - "additionalProperties": false, - "description": "This element describes what kinds of aggregations the service allows. When services pull data files, this option allows the service to put the result data into as few files as possible.", - "properties": { - "Concatenate": { - "description": "The presence of this element describes that a service can concatenate data along a newly created dimension.", - "$ref": "#/definitions/ConcatenateType" + AggregationType: { + type: 'object', + additionalProperties: false, + description: 'This element describes what kinds of aggregations the service allows. When services pull data files, this option allows the service to put the result data into as few files as possible.', + properties: { + Concatenate: { + description: 'The presence of this element describes that a service can concatenate data along a newly created dimension.', + $ref: '#/definitions/ConcatenateType' } }, - "oneOf": [ + oneOf: [ { - "required": [ - "Concatenate" + required: [ + 'Concatenate' ] } ] }, - "ConcatenateType": { - "type": "object", - "additionalProperties": false, - "description": "The presence of this element describes that a service can concatenate data along a newly created dimension.", - "properties": { - "ConcatenateDefault": { - "description": "This element describes whether the default behavior of the service is to concatenate.", - "type": "boolean" + ConcatenateType: { + type: 'object', + additionalProperties: false, + description: 'The presence of this element describes that a service can concatenate data along a newly created dimension.', + properties: { + ConcatenateDefault: { + description: 'This element describes whether the default behavior of the service is to concatenate.', + type: 'boolean' } }, - "required": [ - "ConcatenateDefault" + required: [ + 'ConcatenateDefault' ] }, - "SupportedReformattingsPairType": { - "type": "object", - "additionalProperties": false, - "description": "This object describes the supported reformatting pairs, e.g. NetCDF4 -> [COG]. For every input there is 1 or more outputs.", - "properties": { - "SupportedInputFormat": { - "description": "This element is used to identify the name of the supported input format in the pair.", - "$ref": "#/definitions/SupportedFormatTypeEnum" - }, - "SupportedOutputFormats": { - "description": "This element is used to identify the name of all supported output formats for the provided input format.", - "type": "array", - "items": { - "$ref": "#/definitions/SupportedFormatTypeEnum" + SupportedReformattingsPairType: { + type: 'object', + additionalProperties: false, + description: 'This object describes the supported reformatting pairs, e.g. NetCDF4 -> [COG]. For every input there is 1 or more outputs.', + properties: { + SupportedInputFormat: { + description: 'This element is used to identify the name of the supported input format in the pair.', + $ref: '#/definitions/SupportedFormatTypeEnum' + }, + SupportedOutputFormats: { + description: 'This element is used to identify the name of all supported output formats for the provided input format.', + type: 'array', + items: { + $ref: '#/definitions/SupportedFormatTypeEnum' }, - "minItems": 1 + minItems: 1 } }, - "required": [ - "SupportedInputFormat", - "SupportedOutputFormats" + required: [ + 'SupportedInputFormat', + 'SupportedOutputFormats' ] }, - "SupportedProjectionType": { - "type": "object", - "additionalProperties": false, - "description": "This element is used to identify the input projection type of the variable.", - "properties": { - "ProjectionName": { - "description": "This element is used to identify the list of supported projection types.", - "type": "string", - "enum": [ - "Geographic", - "Military Grid Reference", - "MODIS Sinusoidal System", - "Sinusoidal", - "World Mollweide", - "Mercator", - "Space Oblique Mercator", - "Transverse Mercator", - "Universal Transverse Mercator", - "UTM Northern Hemisphere", - "UTM Southern Hemisphere", - "State Plane Coordinates", - "Albers Equal-Area Conic", - "Lambert Conic Conformal", - "Lambert Equal Area", - "Lambert Azimuthal Equal Area", - "Cylindrical", - "Cylindrical Equal Area", - "Polar Stereographic", - "EASE-Grid", - "EASE-Grid 2.0", - "WGS 84 / UPS North (N,E)", - "WGS84 - World Geodetic System 1984", - "NSIDC EASE-Grid North", - "NSIDC EASE-Grid Global", - "NSIDC Sea Ice Polar Stereographic North", - "WGS 84 / NSIDC Sea Ice Polar Stereographic North", - "NSIDC EASE Grid North and South (Lambert EA)", - "WGS 84 / North Pole LAEA Bering Sea", - "WGS 84 / North Pole LAEA Alaska", - "WGS 84 / North Pole LAEA Canada", - "WGS 84 / North Pole LAEA Atlantic", - "WGS 84 / North Pole LAEA Europe", - "WGS 84 / North Pole LAEA Russia", - "WGS 84 / NSIDC EASE-Grid North", - "WGS 84 / NSIDC EASE-Grid Global", - "WGS 84 / UTM zone 24N", - "Spherical Mercator", - "WGS 84 / Pseudo-Mercator -- Spherical Mercator, Google Maps, OpenStreetMap, Bing, ArcGIS, ESRI", - "Google Maps Global Mercator -- Spherical Mercator", - "WGS 84 / Antarctic Polar Stereographic", - "NSIDC EASE-Grid South", - "NSIDC Sea Ice Polar Stereographic South", - "WGS 84 / NSIDC EASE-Grid South", - "WGS 84 / NSIDC Sea Ice Polar Stereographic South", - "WGS 84 / UPS South (N,E)", - "NSIDC EASE Grid Global", - "EASE Grid 2.0 N. Polar", - "Plate Carree", - "WELD Albers Equal Area", - "Canadian Albers Equal Area Conic", - "NAD83 / UTM zone 17N" + SupportedProjectionType: { + type: 'object', + additionalProperties: false, + description: 'This element is used to identify the input projection type of the variable.', + properties: { + ProjectionName: { + description: 'This element is used to identify the list of supported projection types.', + type: 'string', + enum: [ + 'Geographic', + 'Military Grid Reference', + 'MODIS Sinusoidal System', + 'Sinusoidal', + 'World Mollweide', + 'Mercator', + 'Space Oblique Mercator', + 'Transverse Mercator', + 'Universal Transverse Mercator', + 'UTM Northern Hemisphere', + 'UTM Southern Hemisphere', + 'State Plane Coordinates', + 'Albers Equal-Area Conic', + 'Lambert Conic Conformal', + 'Lambert Equal Area', + 'Lambert Azimuthal Equal Area', + 'Cylindrical', + 'Cylindrical Equal Area', + 'Polar Stereographic', + 'EASE-Grid', + 'EASE-Grid 2.0', + 'WGS 84 / UPS North (N,E)', + 'WGS84 - World Geodetic System 1984', + 'NSIDC EASE-Grid North', + 'NSIDC EASE-Grid Global', + 'NSIDC Sea Ice Polar Stereographic North', + 'WGS 84 / NSIDC Sea Ice Polar Stereographic North', + 'NSIDC EASE Grid North and South (Lambert EA)', + 'WGS 84 / North Pole LAEA Bering Sea', + 'WGS 84 / North Pole LAEA Alaska', + 'WGS 84 / North Pole LAEA Canada', + 'WGS 84 / North Pole LAEA Atlantic', + 'WGS 84 / North Pole LAEA Europe', + 'WGS 84 / North Pole LAEA Russia', + 'WGS 84 / NSIDC EASE-Grid North', + 'WGS 84 / NSIDC EASE-Grid Global', + 'WGS 84 / UTM zone 24N', + 'Spherical Mercator', + 'WGS 84 / Pseudo-Mercator -- Spherical Mercator, Google Maps, OpenStreetMap, Bing, ArcGIS, ESRI', + 'Google Maps Global Mercator -- Spherical Mercator', + 'WGS 84 / Antarctic Polar Stereographic', + 'NSIDC EASE-Grid South', + 'NSIDC Sea Ice Polar Stereographic South', + 'WGS 84 / NSIDC EASE-Grid South', + 'WGS 84 / NSIDC Sea Ice Polar Stereographic South', + 'WGS 84 / UPS South (N,E)', + 'NSIDC EASE Grid Global', + 'EASE Grid 2.0 N. Polar', + 'Plate Carree', + 'WELD Albers Equal Area', + 'Canadian Albers Equal Area Conic', + 'NAD83 / UTM zone 17N' ] }, - "ProjectionLatitudeOfCenter": { - "description": "This element is used to identify the origin of the x-coordinates at the center of the projection.", - "type": "number" + ProjectionLatitudeOfCenter: { + description: 'This element is used to identify the origin of the x-coordinates at the center of the projection.', + type: 'number' }, - "ProjectionLongitudeOfCenter": { - "description": "This element is used to identify the origin of the y-coordinates at the center of the projection.", - "type": "number" + ProjectionLongitudeOfCenter: { + description: 'This element is used to identify the origin of the y-coordinates at the center of the projection.', + type: 'number' }, - "ProjectionFalseEasting": { - "description": "This element is used to identify the linear value applied to the origin of the y-coordinates. False easting and northing values are usually applied to ensure that all the x and y values are positive.", - "type": "number" + ProjectionFalseEasting: { + description: 'This element is used to identify the linear value applied to the origin of the y-coordinates. False easting and northing values are usually applied to ensure that all the x and y values are positive.', + type: 'number' }, - "ProjectionFalseNorthing": { - "description": "This element is used to identify the linear value applied to the origin of the x-coordinates. False easting and northing values are usually applied to ensure that all the x and y values are positive.", - "type": "number" + ProjectionFalseNorthing: { + description: 'This element is used to identify the linear value applied to the origin of the x-coordinates. False easting and northing values are usually applied to ensure that all the x and y values are positive.', + type: 'number' }, - "ProjectionAuthority": { - "description": "This element is used to identify the authority, expressed as the authority code, for the list of supported projection types.", - "type": "string" + ProjectionAuthority: { + description: 'This element is used to identify the authority, expressed as the authority code, for the list of supported projection types.', + type: 'string' }, - "ProjectionUnit": { - "description": "This element is used to identify the projection unit of measurement.", - "type": "string", - "enum": [ - "Meters", - "Degrees" + ProjectionUnit: { + description: 'This element is used to identify the projection unit of measurement.', + type: 'string', + enum: [ + 'Meters', + 'Degrees' ] }, - "ProjectionDatumName": { - "description": "This element is used to identify the projection datum name.", - "type": "string", - "enum": [ - "North American Datum (NAD) 1927", - "North American Datum (NAD) 1983", - "World Geodetic System (WGS) 1984" + ProjectionDatumName: { + description: 'This element is used to identify the projection datum name.', + type: 'string', + enum: [ + 'North American Datum (NAD) 1927', + 'North American Datum (NAD) 1983', + 'World Geodetic System (WGS) 1984' ] } } }, - "VariableAggregationTypeEnum": { - "description": "This element is used to identify the list of supported methods of variable aggregation.", - "type": "string", - "enum": [ - "AVG", - "COUNT", - "SUM", - "MIN", - "MAX", - "VAR", - "ANOMOLY" + VariableAggregationTypeEnum: { + description: 'This element is used to identify the list of supported methods of variable aggregation.', + type: 'string', + enum: [ + 'AVG', + 'COUNT', + 'SUM', + 'MIN', + 'MAX', + 'VAR', + 'ANOMOLY' ] }, - "InterpolationTypeEnum": { - "description": "This element is used to identify the interpolation type of the variable.", - "type": "string", - "enum": [ - "Bilinear Interpolation", - "Bicubic Interpolation", - "Distance-weighted average resampling", - "Nearest Neighbor", - "Elliptical Weighted Averaging" + InterpolationTypeEnum: { + description: 'This element is used to identify the interpolation type of the variable.', + type: 'string', + enum: [ + 'Bilinear Interpolation', + 'Bicubic Interpolation', + 'Distance-weighted average resampling', + 'Nearest Neighbor', + 'Elliptical Weighted Averaging' ] }, - "SupportedFormatTypeEnum": { - "description": "This element contains a list of file formats supported by the service.", - "type": "string", - "enum": [ - "HDF4", - "HDF5", - "HDF-EOS", - "HDF-EOS2", - "HDF-EOS5", - "NETCDF-3", - "NETCDF-4", - "GEOTIFF", - "GEOTIFFINT16", - "GEOTIFFFLOAT32", - "XML", - "ASCII", - "BINARY", - "ICARTT", - "PNG", - "JPEG", - "GIF", - "TIFF", - "XLSX", - "JSON", - "CSV", - "KML", - "PNG24", - "BMP", - "ZARR", - "Shapefile", - "Shapefile+zip", - "GeoJSON", - "COG", - "WKT" + SupportedFormatTypeEnum: { + description: 'This element contains a list of file formats supported by the service.', + type: 'string', + enum: [ + 'HDF4', + 'HDF5', + 'HDF-EOS', + 'HDF-EOS2', + 'HDF-EOS5', + 'NETCDF-3', + 'NETCDF-4', + 'GEOTIFF', + 'GEOTIFFINT16', + 'GEOTIFFFLOAT32', + 'XML', + 'ASCII', + 'BINARY', + 'ICARTT', + 'PNG', + 'JPEG', + 'GIF', + 'TIFF', + 'XLSX', + 'JSON', + 'CSV', + 'KML', + 'PNG24', + 'BMP', + 'ZARR', + 'Shapefile', + 'Shapefile+zip', + 'GeoJSON', + 'COG', + 'WKT' ] }, - "URLType": { - "type": "object", - "additionalProperties": false, - "description": "Represents the Internet site where you can directly access the back-end service.", - "properties": { - "Description": { - "description": "Description of the web page at this URL.", - "type": "string", - "minLength": 1, - "maxLength": 4000 - }, - "URLValue": { - "description": "The URL for the relevant online resource where you can directly access the back-end service.", - "type": "string", - "minLength": 1, - "maxLength": 1024 + URLType: { + type: 'object', + additionalProperties: false, + description: 'Represents the Internet site where you can directly access the back-end service.', + properties: { + Description: { + description: 'Description of the web page at this URL.', + type: 'string', + minLength: 1, + maxLength: 4000 + }, + URLValue: { + description: 'The URL for the relevant online resource where you can directly access the back-end service.', + type: 'string', + minLength: 1, + maxLength: 1024 } }, - "required": [ - "URLValue" + required: [ + 'URLValue' ] }, - "RelatedURLType": { - "type": "object", - "additionalProperties": false, - "description": "Web addresses used to get supported documentation or other related information link to the service. Examples include project home pages, related data archives/servers, metadata extensions, online software packages, web mapping services, and calibration/validation data, other supporting documentation.", - "properties": { - "Description": { - "description": "A Description meant for the end user of the web page at this URL.", - "type": "string", - "minLength": 1, - "maxLength": 4000 - }, - "URLContentType": { - "description": "A keyword describing the distinct content type of the online resource to this resource. This helps software present the information to the user. The valid values are contained in the KMS System: https://gcmd.earthdata.nasa.gov/KeywordViewer/scheme/all/8759ab63-ac04-4136-bc25-0c00eece1096/.", - "type": "string", - "minLength": 1, - "maxLength": 80 - }, - "Type": { - "description": "A keyword describing the type of the online resource to this resource. This helps software present the information to the user. The valid values are contained in the KMS System: https://gcmd.earthdata.nasa.gov/KeywordViewer/scheme/all/8759ab63-ac04-4136-bc25-0c00eece1096/.", - "type": "string", - "minLength": 1, - "maxLength": 80 - }, - "Subtype": { - "description": "A keyword describing the subtype of the online resource to this resource. This helps software present the information to the user. The valid values are contained in the KMS System: https://gcmd.earthdata.nasa.gov/KeywordViewer/scheme/all/8759ab63-ac04-4136-bc25-0c00eece1096/.", - "type": "string", - "minLength": 1, - "maxLength": 80 - }, - "URL": { - "description": "The web address for the relevant web page.", - "type": "string", - "minLength": 1, - "maxLength": 1024 - }, - "Format": { - "description": "Describes the organization of the data content so that users and applications know how to read and use the content. The controlled vocabulary for formats is maintained in the Keyword Management System (KMS): https://gcmd.earthdata.nasa.gov/KeywordViewer/scheme/DataFormat?gtm_scheme=DataFormat", - "type": "string", - "minLength": 1, - "maxLength": 80 - }, - "MimeType": { - "description": "The multi-purpose internet mail extensions indicates the nature and format of the data that is accessed through the URL. The controlled vocabulary for MimeTypes is maintained in the Keyword Management System (KMS): https://gcmd.earthdata.nasa.gov/KeywordViewer/scheme/MimeType?gtm_scheme=MimeType", - "type": "string", - "minLength": 1, - "maxLength": 80 + RelatedURLType: { + type: 'object', + additionalProperties: false, + description: 'Web addresses used to get supported documentation or other related information link to the service. Examples include project home pages, related data archives/servers, metadata extensions, online software packages, web mapping services, and calibration/validation data, other supporting documentation.', + properties: { + Description: { + description: 'A Description meant for the end user of the web page at this URL.', + type: 'string', + minLength: 1, + maxLength: 4000 + }, + URLContentType: { + description: 'A keyword describing the distinct content type of the online resource to this resource. This helps software present the information to the user. The valid values are contained in the KMS System: https://gcmd.earthdata.nasa.gov/KeywordViewer/scheme/all/8759ab63-ac04-4136-bc25-0c00eece1096/.', + type: 'string', + minLength: 1, + maxLength: 80 + }, + Type: { + description: 'A keyword describing the type of the online resource to this resource. This helps software present the information to the user. The valid values are contained in the KMS System: https://gcmd.earthdata.nasa.gov/KeywordViewer/scheme/all/8759ab63-ac04-4136-bc25-0c00eece1096/.', + type: 'string', + minLength: 1, + maxLength: 80 + }, + Subtype: { + description: 'A keyword describing the subtype of the online resource to this resource. This helps software present the information to the user. The valid values are contained in the KMS System: https://gcmd.earthdata.nasa.gov/KeywordViewer/scheme/all/8759ab63-ac04-4136-bc25-0c00eece1096/.', + type: 'string', + minLength: 1, + maxLength: 80 + }, + URL: { + description: 'The web address for the relevant web page.', + type: 'string', + minLength: 1, + maxLength: 1024 + }, + Format: { + description: 'Describes the organization of the data content so that users and applications know how to read and use the content. The controlled vocabulary for formats is maintained in the Keyword Management System (KMS): https://gcmd.earthdata.nasa.gov/KeywordViewer/scheme/DataFormat?gtm_scheme=DataFormat', + type: 'string', + minLength: 1, + maxLength: 80 + }, + MimeType: { + description: 'The multi-purpose internet mail extensions indicates the nature and format of the data that is accessed through the URL. The controlled vocabulary for MimeTypes is maintained in the Keyword Management System (KMS): https://gcmd.earthdata.nasa.gov/KeywordViewer/scheme/MimeType?gtm_scheme=MimeType', + type: 'string', + minLength: 1, + maxLength: 80 } }, - "required": [ - "URL", - "URLContentType", - "Type" + required: [ + 'URL', + 'URLContentType', + 'Type' ] }, - "OnlineResourceType": { - "type": "object", - "additionalProperties": false, - "description": "Describes the online resource pertaining to the data.", - "properties": { - "Linkage": { - "description": "The URL of the website related to the online resource.", - "type": "string", - "minLength": 1, - "maxLength": 1024 - }, - "Protocol": { - "description": "The protocol of the linkage for the online resource, such as https, svn, ftp, etc.", - "type": "string", - "minLength": 1, - "maxLength": 80 - }, - "ApplicationProfile": { - "description": "The application profile holds the name of the application that can service the data. For example if the URL points to a word document, then the applicationProfile is MS-Word.", - "type": "string", - "minLength": 1, - "maxLength": 1024 - }, - "Name": { - "description": "The name of the online resource.", - "type": "string", - "minLength": 1, - "maxLength": 80 - }, - "Description": { - "description": "The description of the online resource.", - "type": "string", - "minLength": 1, - "maxLength": 1024 - }, - "Function": { - "description": "The function of the online resource. In ISO where this class originated the valid values are: download, information, offlineAccess, order, and search.", - "type": "string", - "minLength": 1, - "maxLength": 1024 + OnlineResourceType: { + type: 'object', + additionalProperties: false, + description: 'Describes the online resource pertaining to the data.', + properties: { + Linkage: { + description: 'The URL of the website related to the online resource.', + type: 'string', + minLength: 1, + maxLength: 1024 + }, + Protocol: { + description: 'The protocol of the linkage for the online resource, such as https, svn, ftp, etc.', + type: 'string', + minLength: 1, + maxLength: 80 + }, + ApplicationProfile: { + description: 'The application profile holds the name of the application that can service the data. For example if the URL points to a word document, then the applicationProfile is MS-Word.', + type: 'string', + minLength: 1, + maxLength: 1024 + }, + Name: { + description: 'The name of the online resource.', + type: 'string', + minLength: 1, + maxLength: 80 + }, + Description: { + description: 'The description of the online resource.', + type: 'string', + minLength: 1, + maxLength: 1024 + }, + Function: { + description: 'The function of the online resource. In ISO where this class originated the valid values are: download, information, offlineAccess, order, and search.', + type: 'string', + minLength: 1, + maxLength: 1024 } }, - "required": [ - "Linkage", - "Name", - "Description" + required: [ + 'Linkage', + 'Name', + 'Description' ] }, - "ServiceKeywordType": { - "type": "object", - "additionalProperties": false, - "description": "Enables specification of Earth science service keywords related to the service. The Earth Science Service keywords are chosen from a controlled keyword hierarchy maintained in the Keyword Management System (KMS).", - "properties": { - "ServiceCategory": { - "$ref": "#/definitions/KeywordStringType" + ServiceKeywordType: { + type: 'object', + additionalProperties: false, + description: 'Enables specification of Earth science service keywords related to the service. The Earth Science Service keywords are chosen from a controlled keyword hierarchy maintained in the Keyword Management System (KMS).', + properties: { + ServiceCategory: { + $ref: '#/definitions/KeywordStringType' }, - "ServiceTopic": { - "$ref": "#/definitions/KeywordStringType" + ServiceTopic: { + $ref: '#/definitions/KeywordStringType' }, - "ServiceTerm": { - "$ref": "#/definitions/KeywordStringType" + ServiceTerm: { + $ref: '#/definitions/KeywordStringType' }, - "ServiceSpecificTerm": { - "$ref": "#/definitions/KeywordStringType" + ServiceSpecificTerm: { + $ref: '#/definitions/KeywordStringType' } }, - "required": [ - "ServiceCategory", - "ServiceTopic" + required: [ + 'ServiceCategory', + 'ServiceTopic' ] }, - "KeywordStringType": { - "type": "string", - "minLength": 1, - "maxLength": 80, - "pattern": "[\\w\\-&'()\\[\\]/.\"#$%\\^@!*+=,][\\w\\-&'()\\[\\]/.\"#$%\\^@!*+=, ]{1,79}" - }, - "ServiceOrganizationType": { - "type": "object", - "additionalProperties": false, - "description": "Defines a service organization which is either an organization or institution responsible for distributing, archiving, or processing the data via a service, etc.", - "properties": { - "Roles": { - "description": "This is the roles of the service organization.", - "type": "array", - "items": { - "$ref": "#/definitions/ServiceOrganizationRoleEnum" + KeywordStringType: { + type: 'string', + minLength: 1, + maxLength: 80, + pattern: "[\\w\\-&'()\\[\\]/.\"#$%\\^@!*+=,][\\w\\-&'()\\[\\]/.\"#$%\\^@!*+=, ]{1,79}" + }, + ServiceOrganizationType: { + type: 'object', + additionalProperties: false, + description: 'Defines a service organization which is either an organization or institution responsible for distributing, archiving, or processing the data via a service, etc.', + properties: { + Roles: { + description: 'This is the roles of the service organization.', + type: 'array', + items: { + $ref: '#/definitions/ServiceOrganizationRoleEnum' }, - "minItems": 1 + minItems: 1 }, - "ShortName": { - "description": "This is the short name of the service organization.", - "$ref": "#/definitions/ServiceOrganizationShortNameType" + ShortName: { + description: 'This is the short name of the service organization.', + $ref: '#/definitions/ServiceOrganizationShortNameType' }, - "LongName": { - "description": "This is the long name of the service organization.", - "$ref": "#/definitions/LongNameType" + LongName: { + description: 'This is the long name of the service organization.', + $ref: '#/definitions/LongNameType' }, - "OnlineResource": { - "description": "This is the URL of the service organization.", - "$ref": "#/definitions/OnlineResourceType" + OnlineResource: { + description: 'This is the URL of the service organization.', + $ref: '#/definitions/OnlineResourceType' } }, - "required": [ - "Roles", - "ShortName" + required: [ + 'Roles', + 'ShortName' ] }, - "ContactGroupType": { - "type": "object", - "additionalProperties": false, - "properties": { - "Roles": { - "description": "This is the roles of the service contact.", - "type": "array", - "items": { - "$ref": "#/definitions/ServiceContactRoleEnum" + ContactGroupType: { + type: 'object', + additionalProperties: false, + properties: { + Roles: { + description: 'This is the roles of the service contact.', + type: 'array', + items: { + $ref: '#/definitions/ServiceContactRoleEnum' }, - "minItems": 1 + minItems: 1 }, - "ContactInformation": { - "description": "This is the contact information of the service contact.", - "$ref": "#/definitions/ContactInformationType" + ContactInformation: { + description: 'This is the contact information of the service contact.', + $ref: '#/definitions/ContactInformationType' }, - "GroupName": { - "description": "This is the contact group name.", - "type": "string", - "minLength": 1, - "maxLength": 255 + GroupName: { + description: 'This is the contact group name.', + type: 'string', + minLength: 1, + maxLength: 255 } }, - "required": [ - "Roles", - "GroupName" + required: [ + 'Roles', + 'GroupName' ] }, - "ContactPersonType": { - "type": "object", - "properties": { - "Roles": { - "description": "This is the roles of the service contact.", - "type": "array", - "items": { - "$ref": "#/definitions/ServiceOrganizationRoleEnum" + ContactPersonType: { + type: 'object', + properties: { + Roles: { + description: 'This is the roles of the service contact.', + type: 'array', + items: { + $ref: '#/definitions/ServiceOrganizationRoleEnum' }, - "minItems": 1 - }, - "ContactInformation": { - "description": "This is the contact information of the service contact.", - "$ref": "#/definitions/ContactInformationType" - }, - "FirstName": { - "description": "First name of the individual.", - "type": "string", - "minLength": 1, - "maxLength": 255 - }, - "MiddleName": { - "description": "Middle name of the individual.", - "type": "string", - "minLength": 1, - "maxLength": 255 - }, - "LastName": { - "description": "Last name of the individual.", - "type": "string", - "minLength": 1, - "maxLength": 255 + minItems: 1 + }, + ContactInformation: { + description: 'This is the contact information of the service contact.', + $ref: '#/definitions/ContactInformationType' + }, + FirstName: { + description: 'First name of the individual.', + type: 'string', + minLength: 1, + maxLength: 255 + }, + MiddleName: { + description: 'Middle name of the individual.', + type: 'string', + minLength: 1, + maxLength: 255 + }, + LastName: { + description: 'Last name of the individual.', + type: 'string', + minLength: 1, + maxLength: 255 } }, - "required": [ - "Roles", - "LastName" + required: [ + 'Roles', + 'LastName' ] }, - "ContactInformationType": { - "type": "object", - "additionalProperties": false, - "description": "Defines the contact information of a service organization or service contact.", - "properties": { - "OnlineResources": { - "description": "A URL associated with the contact, e.g., the home page for the service provider which is responsible for the service.", - "type": "array", - "items": { - "$ref": "#/definitions/OnlineResourceType" + ContactInformationType: { + type: 'object', + additionalProperties: false, + description: 'Defines the contact information of a service organization or service contact.', + properties: { + OnlineResources: { + description: 'A URL associated with the contact, e.g., the home page for the service provider which is responsible for the service.', + type: 'array', + items: { + $ref: '#/definitions/OnlineResourceType' }, - "minItems": 1 - }, - "ServiceHours": { - "description": "Time period when the contact answers questions or provides services.", - "type": "string", - "minLength": 1, - "maxLength": 1024 - }, - "ContactInstruction": { - "description": "Supplemental instructions on how or when to contact the responsible party.", - "type": "string", - "minLength": 1, - "maxLength": 2048 - }, - "ContactMechanisms": { - "description": "Mechanisms of contacting.", - "type": "array", - "items": { - "$ref": "#/definitions/ContactMechanismType" + minItems: 1 + }, + ServiceHours: { + description: 'Time period when the contact answers questions or provides services.', + type: 'string', + minLength: 1, + maxLength: 1024 + }, + ContactInstruction: { + description: 'Supplemental instructions on how or when to contact the responsible party.', + type: 'string', + minLength: 1, + maxLength: 2048 + }, + ContactMechanisms: { + description: 'Mechanisms of contacting.', + type: 'array', + items: { + $ref: '#/definitions/ContactMechanismType' }, - "minItems": 1 + minItems: 1 }, - "Addresses": { - "description": "Contact addresses.", - "type": "array", - "items": { - "$ref": "#/definitions/AddressType" + Addresses: { + description: 'Contact addresses.', + type: 'array', + items: { + $ref: '#/definitions/AddressType' }, - "minItems": 1 + minItems: 1 } } }, - "ContactMechanismType": { - "type": "object", - "additionalProperties": false, - "description": "Method for contacting the service contact. A contact can be available via phone, email, Facebook, or Twitter.", - "properties": { - "Type": { - "description": "This is the method type for contacting the responsible party - phone, email, Facebook, or Twitter.", - "$ref": "#/definitions/ContactMechanismTypeEnum" - }, - "Value": { - "description": "This is the contact phone number, email address, Facebook address, or Twitter handle associated with the contact method.", - "type": "string", - "minLength": 1, - "maxLength": 1024 + ContactMechanismType: { + type: 'object', + additionalProperties: false, + description: 'Method for contacting the service contact. A contact can be available via phone, email, Facebook, or Twitter.', + properties: { + Type: { + description: 'This is the method type for contacting the responsible party - phone, email, Facebook, or Twitter.', + $ref: '#/definitions/ContactMechanismTypeEnum' + }, + Value: { + description: 'This is the contact phone number, email address, Facebook address, or Twitter handle associated with the contact method.', + type: 'string', + minLength: 1, + maxLength: 1024 } }, - "required": [ - "Type", - "Value" + required: [ + 'Type', + 'Value' ] }, - "ServiceOrganizationShortNameType": { - "description": "The unique name of the service organization.", - "type": "string", - "minLength": 1, - "maxLength": 85, - "pattern": "[\\w\\-&'()\\[\\]/.\"#$%\\^@!*+=,][\\w\\-&'()\\[\\]/.\"#$%\\^@!*+=, ]{1,84}" - }, - "ServiceOrganizationRoleEnum": { - "description": "Defines the possible values of a service provider role.", - "type": "string", - "enum": [ - "SERVICE PROVIDER", - "DEVELOPER", - "PUBLISHER", - "AUTHOR", - "ORIGINATOR" + ServiceOrganizationShortNameType: { + description: 'The unique name of the service organization.', + type: 'string', + minLength: 1, + maxLength: 85, + pattern: "[\\w\\-&'()\\[\\]/.\"#$%\\^@!*+=,][\\w\\-&'()\\[\\]/.\"#$%\\^@!*+=, ]{1,84}" + }, + ServiceOrganizationRoleEnum: { + description: 'Defines the possible values of a service provider role.', + type: 'string', + enum: [ + 'SERVICE PROVIDER', + 'DEVELOPER', + 'PUBLISHER', + 'AUTHOR', + 'ORIGINATOR' ] }, - "LongNameType": { - "description": "The expanded or long name related to the short name.", - "type": "string", - "minLength": 1, - "maxLength": 1024 - }, - "ServiceTypeEnum": { - "description": "This element is used to identify the type of the service.", - "type": "string", - "enum": [ - "OPeNDAP", - "THREDDS", - "WEB SERVICES", - "ESI", - "ECHO ORDERS", - "WCS", - "WMS", - "WMTS", - "EGI - No Processing", - "SOFTWARE PACKAGE", - "TOOL", - "WEB PORTAL", - "International Web Portal", - "MODEL", - "Harmony", - "ArcGIS Image Service", - "Web Feature Service", - "Web Geoprocessing Service", - "NOT PROVIDED", - "SWODLR" + LongNameType: { + description: 'The expanded or long name related to the short name.', + type: 'string', + minLength: 1, + maxLength: 1024 + }, + ServiceTypeEnum: { + description: 'This element is used to identify the type of the service.', + type: 'string', + enum: [ + 'OPeNDAP', + 'THREDDS', + 'WEB SERVICES', + 'ESI', + 'ECHO ORDERS', + 'WCS', + 'WMS', + 'WMTS', + 'EGI - No Processing', + 'SOFTWARE PACKAGE', + 'TOOL', + 'WEB PORTAL', + 'International Web Portal', + 'MODEL', + 'Harmony', + 'ArcGIS Image Service', + 'Web Feature Service', + 'Web Geoprocessing Service', + 'NOT PROVIDED', + 'SWODLR' ] }, - "ServiceQualityType": { - "type": "object", - "additionalProperties": false, - "description": "This object describes service quality, composed of the quality flag, the quality flagging system, traceability and lineage.", - "properties": { - "QualityFlag": { - "description": "The quality flag for the service.", - "$ref": "#/definitions/QualityFlagEnum" - }, - "Traceability": { - "description": "The quality traceability of the service.", - "type": "string", - "minLength": 1, - "maxLength": 100 - }, - "Lineage": { - "description": "The quality lineage of the service.", - "type": "string", - "minLength": 1, - "maxLength": 4000 + ServiceQualityType: { + type: 'object', + additionalProperties: false, + description: 'This object describes service quality, composed of the quality flag, the quality flagging system, traceability and lineage.', + properties: { + QualityFlag: { + description: 'The quality flag for the service.', + $ref: '#/definitions/QualityFlagEnum' + }, + Traceability: { + description: 'The quality traceability of the service.', + type: 'string', + minLength: 1, + maxLength: 100 + }, + Lineage: { + description: 'The quality lineage of the service.', + type: 'string', + minLength: 1, + maxLength: 4000 } }, - "required": [ - "QualityFlag" + required: [ + 'QualityFlag' ] }, - "QualityFlagEnum": { - "description": "Defines the possible quality flags.", - "type": "string", - "enum": [ - "Available", - "Unavailable", - "Reviewed", - "Not Reviewed", - "Other" + QualityFlagEnum: { + description: 'Defines the possible quality flags.', + type: 'string', + enum: [ + 'Available', + 'Unavailable', + 'Reviewed', + 'Not Reviewed', + 'Other' ] }, - "AccessConstraintsType": { - "description": "Information about any constraints for accessing the service, software, or tool.", - "type": "string", - "minLength": 1, - "maxLength": 4000 - }, - "UseConstraintsType": { - "type": "object", - "additionalProperties": false, - "description": "Information on how the item (service, software, or tool) may or may not be used after access is granted. This includes any special restrictions, legal prerequisites, terms and conditions, and/or limitations on using the item. Providers may request acknowledgement of the item from users and claim no responsibility for quality and completeness.", - "properties": { - "LicenseURL": { - "description": "The web address of the license associated with the service.", - "type": "string", - "minLength": 0, - "maxLength": 1024 - }, - "LicenseText": { - "description": "The text of the license associated with the service.", - "type": "string", - "minLength": 0, - "maxLength": 20000 + AccessConstraintsType: { + description: 'Information about any constraints for accessing the service, software, or tool.', + type: 'string', + minLength: 1, + maxLength: 4000 + }, + UseConstraintsType: { + type: 'object', + additionalProperties: false, + description: 'Information on how the item (service, software, or tool) may or may not be used after access is granted. This includes any special restrictions, legal prerequisites, terms and conditions, and/or limitations on using the item. Providers may request acknowledgement of the item from users and claim no responsibility for quality and completeness.', + properties: { + LicenseURL: { + description: 'The web address of the license associated with the service.', + type: 'string', + minLength: 0, + maxLength: 1024 + }, + LicenseText: { + description: 'The text of the license associated with the service.', + type: 'string', + minLength: 0, + maxLength: 20000 } } }, - "AncillaryKeywordsType": { - "description": "Words or phrases to further describe the service, software, or tool.", - "type": "string", - "minLength": 1, - "maxLength": 1024 - }, - "ServiceContactRoleEnum": { - "description": "Defines the possible values of a service provider role.", - "type": "string", - "enum": [ - "SERVICE PROVIDER CONTACT", - "TECHNICAL CONTACT", - "SCIENCE CONTACT", - "INVESTIGATOR", - "SOFTWARE AUTHOR", - "TOOL AUTHOR", - "USER SERVICES", - "SCIENCE SOFTWARE DEVELOPMENT", - "SERVICE PROVIDER" + AncillaryKeywordsType: { + description: 'Words or phrases to further describe the service, software, or tool.', + type: 'string', + minLength: 1, + maxLength: 1024 + }, + ServiceContactRoleEnum: { + description: 'Defines the possible values of a service provider role.', + type: 'string', + enum: [ + 'SERVICE PROVIDER CONTACT', + 'TECHNICAL CONTACT', + 'SCIENCE CONTACT', + 'INVESTIGATOR', + 'SOFTWARE AUTHOR', + 'TOOL AUTHOR', + 'USER SERVICES', + 'SCIENCE SOFTWARE DEVELOPMENT', + 'SERVICE PROVIDER' ] }, - "ContactMechanismTypeEnum": { - "description": "Defines the possible contact mechanism types.", - "type": "string", - "enum": [ - "Direct Line", - "Email", - "Facebook", - "Fax", - "Mobile", - "Modem", - "Primary", - "TDD/TTY Phone", - "Telephone", - "Twitter", - "U.S. toll free", - "Other" + ContactMechanismTypeEnum: { + description: 'Defines the possible contact mechanism types.', + type: 'string', + enum: [ + 'Direct Line', + 'Email', + 'Facebook', + 'Fax', + 'Mobile', + 'Modem', + 'Primary', + 'TDD/TTY Phone', + 'Telephone', + 'Twitter', + 'U.S. toll free', + 'Other' ] }, - "AddressType": { - "type": "object", - "additionalProperties": false, - "description": "This entity contains the physical address details for the contact.", - "properties": { - "StreetAddresses": { - "description": "An address line for the street address, used for mailing or physical addresses of organizations or individuals who serve as contacts for the service.", - "type": "array", - "items": { - "type": "string", - "minLength": 1, - "maxLength": 1024 + AddressType: { + type: 'object', + additionalProperties: false, + description: 'This entity contains the physical address details for the contact.', + properties: { + StreetAddresses: { + description: 'An address line for the street address, used for mailing or physical addresses of organizations or individuals who serve as contacts for the service.', + type: 'array', + items: { + type: 'string', + minLength: 1, + maxLength: 1024 }, - "minItems": 1 - }, - "City": { - "description": "The city portion of the physical address.", - "type": "string", - "minLength": 1, - "maxLength": 100 - }, - "StateProvince": { - "description": "The state or province portion of the physical address.", - "type": "string", - "minLength": 1, - "maxLength": 100 - }, - "Country": { - "description": "The country of the physical address.", - "type": "string", - "minLength": 1, - "maxLength": 100 - }, - "PostalCode": { - "description": "The zip or other postal code portion of the physical address.", - "type": "string", - "minLength": 1, - "maxLength": 20 + minItems: 1 + }, + City: { + description: 'The city portion of the physical address.', + type: 'string', + minLength: 1, + maxLength: 100 + }, + StateProvince: { + description: 'The state or province portion of the physical address.', + type: 'string', + minLength: 1, + maxLength: 100 + }, + Country: { + description: 'The country of the physical address.', + type: 'string', + minLength: 1, + maxLength: 100 + }, + PostalCode: { + description: 'The zip or other postal code portion of the physical address.', + type: 'string', + minLength: 1, + maxLength: 20 } } }, - "OperationMetadataType": { - "type": "object", - "additionalProperties": false, - "description": "This class describes the signature of the operational metadata provided by the service.", - "properties": { - "OperationName": { - "description": "This element contains the name of the operation(s) made possible via this service.", - "type": "string", - "enum": [ - "GetCapabilities", - "DescribeCoverage", - "GetCoverage", - "GetMap", - "GetLegendGraphic", - "GetTile", - "GetFeatureInfo", - "DescribeFeatureType", - "GetPropertyValue", - "GetFeature", - "GetFeatureWithLock", - "LockFeature", - "Transaction", - "CreateStoredQuery", - "DropStoredQuery", - "ListStoredQueries", - "DescribeStoredQueries", - "SPATIAL_SUBSETTING", - "TEMPORAL_SUBSETTING", - "VARIABLE_SUBSETTING", - "VARIABLE_AGGREGATION" + OperationMetadataType: { + type: 'object', + additionalProperties: false, + description: 'This class describes the signature of the operational metadata provided by the service.', + properties: { + OperationName: { + description: 'This element contains the name of the operation(s) made possible via this service.', + type: 'string', + enum: [ + 'GetCapabilities', + 'DescribeCoverage', + 'GetCoverage', + 'GetMap', + 'GetLegendGraphic', + 'GetTile', + 'GetFeatureInfo', + 'DescribeFeatureType', + 'GetPropertyValue', + 'GetFeature', + 'GetFeatureWithLock', + 'LockFeature', + 'Transaction', + 'CreateStoredQuery', + 'DropStoredQuery', + 'ListStoredQueries', + 'DescribeStoredQueries', + 'SPATIAL_SUBSETTING', + 'TEMPORAL_SUBSETTING', + 'VARIABLE_SUBSETTING', + 'VARIABLE_AGGREGATION' ] }, - "DistributedComputingPlatform": { - "description": "This element contains the distributed computing platform (protocol) for the operation(s) made possible via this service.", - "type": "array", - "items": { - "$ref": "#/definitions/DistributedComputingPlatformTypeEnum" + DistributedComputingPlatform: { + description: 'This element contains the distributed computing platform (protocol) for the operation(s) made possible via this service.', + type: 'array', + items: { + $ref: '#/definitions/DistributedComputingPlatformTypeEnum' }, - "minItems": 1 - }, - "OperationDescription": { - "description": "This element contains the description of the operation(s) made possible via this service.", - "type": "string", - "minLength": 1, - "maxLength": 1024 - }, - "InvocationName": { - "description": "This element contains the name of the invocation of the operation(s) made possible via this service.", - "type": "string", - "minLength": 1, - "maxLength": 1024 - }, - "ConnectPoint": { - "description": "This element contains the URL of the invocation of the operation(s) made possible via this service.", - "$ref": "#/definitions/ConnectPointType" - }, - "OperationChainedMetadata": { - "description": "This element contains the name of the chained operation(s) made possible via this service.", - "$ref": "#/definitions/OperationChainedMetadataType" - }, - "CoupledResource": { - "description": "This element contains important information about the resource(s) coupled to this service.", - "$ref": "#/definitions/CoupledResourceType" - }, - "Parameters": { - "description": "This element contains important information about the parameter associated with the resource(s) coupled to this service.", - "type": "array", - "items": { - "$ref": "#/definitions/ParameterType" + minItems: 1 + }, + OperationDescription: { + description: 'This element contains the description of the operation(s) made possible via this service.', + type: 'string', + minLength: 1, + maxLength: 1024 + }, + InvocationName: { + description: 'This element contains the name of the invocation of the operation(s) made possible via this service.', + type: 'string', + minLength: 1, + maxLength: 1024 + }, + ConnectPoint: { + description: 'This element contains the URL of the invocation of the operation(s) made possible via this service.', + $ref: '#/definitions/ConnectPointType' + }, + OperationChainedMetadata: { + description: 'This element contains the name of the chained operation(s) made possible via this service.', + $ref: '#/definitions/OperationChainedMetadataType' + }, + CoupledResource: { + description: 'This element contains important information about the resource(s) coupled to this service.', + $ref: '#/definitions/CoupledResourceType' + }, + Parameters: { + description: 'This element contains important information about the parameter associated with the resource(s) coupled to this service.', + type: 'array', + items: { + $ref: '#/definitions/ParameterType' }, - "minItems": 1 + minItems: 1 } } }, - "ConnectPointType": { - "type": "object", - "additionalProperties": false, - "description": "This element contains the URL of the invocation of the operation(s) made possible via this service.", - "properties": { - "ResourceName": { - "description": "This element contains the name of the resource(s) coupled to this service.", - "type": "string", - "minLength": 1, - "maxLength": 1024 - }, - "ResourceLinkage": { - "description": "This element contains the URL of the resource(s) coupled to this service.", - "type": "string", - "minLength": 1, - "maxLength": 1024 - }, - "ResourceDescription": { - "description": "This element contains the description of the resource(s) coupled to this service.", - "type": "string", - "minLength": 1, - "maxLength": 1024 + ConnectPointType: { + type: 'object', + additionalProperties: false, + description: 'This element contains the URL of the invocation of the operation(s) made possible via this service.', + properties: { + ResourceName: { + description: 'This element contains the name of the resource(s) coupled to this service.', + type: 'string', + minLength: 1, + maxLength: 1024 + }, + ResourceLinkage: { + description: 'This element contains the URL of the resource(s) coupled to this service.', + type: 'string', + minLength: 1, + maxLength: 1024 + }, + ResourceDescription: { + description: 'This element contains the description of the resource(s) coupled to this service.', + type: 'string', + minLength: 1, + maxLength: 1024 } }, - "required": [ - "ResourceLinkage" + required: [ + 'ResourceLinkage' ] }, - "OperationChainedMetadataType": { - "type": "object", - "additionalProperties": false, - "description": "This element contains the name of the chained operation(s) made possible via this service.", - "properties": { - "OperationChainName": { - "description": "TThis element contains the name of the operation chain made possible via this service.", - "type": "string", - "minLength": 1, - "maxLength": 1024 - }, - "OperationChainDescription": { - "description": "This element contains the description of the operation chain made possible via this service.", - "type": "string", - "minLength": 1, - "maxLength": 1024 + OperationChainedMetadataType: { + type: 'object', + additionalProperties: false, + description: 'This element contains the name of the chained operation(s) made possible via this service.', + properties: { + OperationChainName: { + description: 'TThis element contains the name of the operation chain made possible via this service.', + type: 'string', + minLength: 1, + maxLength: 1024 + }, + OperationChainDescription: { + description: 'This element contains the description of the operation chain made possible via this service.', + type: 'string', + minLength: 1, + maxLength: 1024 } }, - "required": [ - "OperationChainName" + required: [ + 'OperationChainName' ] }, - "CoupledResourceType": { - "type": "object", - "additionalProperties": false, - "description": "This element contains the name of the chained operation(s) made possible via this service.", - "properties": { - "ScopedName": { - "description": "This element contains the name of the resource(s) coupled to this service.", - "type": "string", - "minLength": 1, - "maxLength": 1024 - }, - "DataResourceDOI": { - "description": "This element contains the DOI for the resource(s) coupled to this service.", - "type": "string", - "minLength": 1, - "maxLength": 1024 - }, - "DataResource": { - "description": "This element contains the data identification and scope for the resource(s) coupled to this service.", - "$ref": "#/definitions/DataResourceType" - }, - "CouplingType": { - "description": "This element contains the coupling type for the resource(s) coupled to this service.", - "$ref": "#/definitions/CouplingTypeEnum" + CoupledResourceType: { + type: 'object', + additionalProperties: false, + description: 'This element contains the name of the chained operation(s) made possible via this service.', + properties: { + ScopedName: { + description: 'This element contains the name of the resource(s) coupled to this service.', + type: 'string', + minLength: 1, + maxLength: 1024 + }, + DataResourceDOI: { + description: 'This element contains the DOI for the resource(s) coupled to this service.', + type: 'string', + minLength: 1, + maxLength: 1024 + }, + DataResource: { + description: 'This element contains the data identification and scope for the resource(s) coupled to this service.', + $ref: '#/definitions/DataResourceType' + }, + CouplingType: { + description: 'This element contains the coupling type for the resource(s) coupled to this service.', + $ref: '#/definitions/CouplingTypeEnum' } } }, - "DataResourceType": { - "type": "object", - "additionalProperties": false, - "description": "The DataResource class describes the layers, feature types or coverages available from the service.", - "properties": { - "DataResourceIdentifier": { - "description": "The identifier of the layer, feature type or coverage available from the service.", - "type": "string", - "minLength": 1, - "maxLength": 100 - }, - "DataResourceSourceType": { - "description": "The resource type of the layer, feature type or coverage available from the service.", - "type": "string", - "enum": [ - "Map", - "Variable", - "Granule", - "Collection", - "Virtual" + DataResourceType: { + type: 'object', + additionalProperties: false, + description: 'The DataResource class describes the layers, feature types or coverages available from the service.', + properties: { + DataResourceIdentifier: { + description: 'The identifier of the layer, feature type or coverage available from the service.', + type: 'string', + minLength: 1, + maxLength: 100 + }, + DataResourceSourceType: { + description: 'The resource type of the layer, feature type or coverage available from the service.', + type: 'string', + enum: [ + 'Map', + 'Variable', + 'Granule', + 'Collection', + 'Virtual' ] }, - "DataResourceSpatialExtent": { - "description": "The spatial extent of the coverage available from the service. These are coordinate pairs which describe either the point, line string, or polygon representing the spatial extent. The bounding box is described by the west, south, east and north ordinates", - "$ref": "#/definitions/DataResourceSpatialExtentType" - }, - "SpatialResolution": { - "description": "The spatial resolution of the layer, feature type or coverage available from the service.", - "type": "number" - }, - "SpatialResolutionUnit": { - "description": "The unit of the spatial resolution of the layer, feature type or coverage available from the service.", - "type": "string", - "enum": [ - "Meters", - "KM", - "Degrees", - "Degrees_North", - "Degrees_East" + DataResourceSpatialExtent: { + description: 'The spatial extent of the coverage available from the service. These are coordinate pairs which describe either the point, line string, or polygon representing the spatial extent. The bounding box is described by the west, south, east and north ordinates', + $ref: '#/definitions/DataResourceSpatialExtentType' + }, + SpatialResolution: { + description: 'The spatial resolution of the layer, feature type or coverage available from the service.', + type: 'number' + }, + SpatialResolutionUnit: { + description: 'The unit of the spatial resolution of the layer, feature type or coverage available from the service.', + type: 'string', + enum: [ + 'Meters', + 'KM', + 'Degrees', + 'Degrees_North', + 'Degrees_East' ] }, - "DataResourceTemporalExtent": { - "description": "The temporal extent of the layer, feature type or coverage available from the service.", - "$ref": "#/definitions/DataResourceTemporalExtentType" - }, - "DataResourceTemporalType": { - "description": "The temporal extent of the layer, feature type or coverage available from the service.", - "$ref": "#/definitions/DataResourceTemporalTypeEnum" - }, - "TemporalResolution": { - "description": "TThe temporal resolution of the layer, feature type or coverage available from the service.", - "type": "number" - }, - "TemporalResolutionUnit": { - "description": "The unit of the temporal resolution of the layer, feature type or coverage available from the service.", - "type": "string", - "enum": [ - "DAY", - "TWICE_PER_DAY", - "WEEK", - "MONTH", - "YEAR" + DataResourceTemporalExtent: { + description: 'The temporal extent of the layer, feature type or coverage available from the service.', + $ref: '#/definitions/DataResourceTemporalExtentType' + }, + DataResourceTemporalType: { + description: 'The temporal extent of the layer, feature type or coverage available from the service.', + $ref: '#/definitions/DataResourceTemporalTypeEnum' + }, + TemporalResolution: { + description: 'TThe temporal resolution of the layer, feature type or coverage available from the service.', + type: 'number' + }, + TemporalResolutionUnit: { + description: 'The unit of the temporal resolution of the layer, feature type or coverage available from the service.', + type: 'string', + enum: [ + 'DAY', + 'TWICE_PER_DAY', + 'WEEK', + 'MONTH', + 'YEAR' ] }, - "RelativePath": { - "description": "Path relative to the root URL for the layer, feature type or coverage service.", - "type": "string", - "minLength": 1, - "maxLength": 1024 + RelativePath: { + description: 'Path relative to the root URL for the layer, feature type or coverage service.', + type: 'string', + minLength: 1, + maxLength: 1024 } } }, - "ParameterType": { - "type": "object", - "additionalProperties": false, - "description": "This element contains important information about the parameter associated with the resource(s) coupled to this service.", - "properties": { - "ParameterName": { - "description": "This element contains the name of the parameter associated with the resource(s) coupled to this service.", - "type": "string", - "minLength": 1, - "maxLength": 1024 - }, - "ParameterDirection": { - "description": "This element contains the direction of the parameter associated with the resource(s) coupled to this service.", - "type": "string", - "minLength": 1, - "maxLength": 1024 - }, - "ParameterDescription": { - "description": "This element contains the description of the parameter associated with the resource(s) coupled to this service.", - "type": "string", - "minLength": 1, - "maxLength": 1024 - }, - "ParameterOptionality": { - "description": "This element contains the optionality of the parameter associated with the resource(s) coupled to this service", - "type": "string", - "minLength": 1, - "maxLength": 1024 - }, - "ParameterRepeatability": { - "description": "This element contains the repeatability of the parameter associated with the resource(s) coupled to this service.", - "type": "string", - "minLength": 1, - "maxLength": 1024 + ParameterType: { + type: 'object', + additionalProperties: false, + description: 'This element contains important information about the parameter associated with the resource(s) coupled to this service.', + properties: { + ParameterName: { + description: 'This element contains the name of the parameter associated with the resource(s) coupled to this service.', + type: 'string', + minLength: 1, + maxLength: 1024 + }, + ParameterDirection: { + description: 'This element contains the direction of the parameter associated with the resource(s) coupled to this service.', + type: 'string', + minLength: 1, + maxLength: 1024 + }, + ParameterDescription: { + description: 'This element contains the description of the parameter associated with the resource(s) coupled to this service.', + type: 'string', + minLength: 1, + maxLength: 1024 + }, + ParameterOptionality: { + description: 'This element contains the optionality of the parameter associated with the resource(s) coupled to this service', + type: 'string', + minLength: 1, + maxLength: 1024 + }, + ParameterRepeatability: { + description: 'This element contains the repeatability of the parameter associated with the resource(s) coupled to this service.', + type: 'string', + minLength: 1, + maxLength: 1024 } }, - "required": [ - "ParameterName", - "ParameterDescription", - "ParameterDirection", - "ParameterOptionality", - "ParameterRepeatability" + required: [ + 'ParameterName', + 'ParameterDescription', + 'ParameterDirection', + 'ParameterOptionality', + 'ParameterRepeatability' ] }, - "CoordinatesType": { - "type": "object", - "additionalProperties": false, - "description": "The coordinates consist of a latitude and longitude.", - "properties": { - "Latitude": { - "description": "The latitude of the point.", - "type": "number" - }, - "Longitude": { - "description": "The longitude of the point.", - "type": "number" + CoordinatesType: { + type: 'object', + additionalProperties: false, + description: 'The coordinates consist of a latitude and longitude.', + properties: { + Latitude: { + description: 'The latitude of the point.', + type: 'number' + }, + Longitude: { + description: 'The longitude of the point.', + type: 'number' } }, - "required": [ - "Latitude", - "Longitude" + required: [ + 'Latitude', + 'Longitude' ] }, - "LineStringType": { - "type": "object", - "additionalProperties": false, - "description": "The line string consists of two points: a start point and an end ppint.", - "properties": { - "StartPoint": { - "description": "The start point of the line string.", - "$ref": "#/definitions/CoordinatesType" - }, - "EndPoint": { - "description": "The end point of the line string.", - "$ref": "#/definitions/CoordinatesType" + LineStringType: { + type: 'object', + additionalProperties: false, + description: 'The line string consists of two points: a start point and an end ppint.', + properties: { + StartPoint: { + description: 'The start point of the line string.', + $ref: '#/definitions/CoordinatesType' + }, + EndPoint: { + description: 'The end point of the line string.', + $ref: '#/definitions/CoordinatesType' } }, - "required": [ - "StartPoint", - "EndPoint" + required: [ + 'StartPoint', + 'EndPoint' ] }, - "SpatialBoundingBoxType": { - "type": "object", - "additionalProperties": false, - "description": "The bounding box consists of west bounding, south bounding, east bounding and north bounding coordinates and the CRS identifier.", - "properties": { - "CRSIdentifier": { - "description": "The CRS identifier of the bounding box.", - "$ref": "#/definitions/CRSIdentifierTypeEnum" - }, - "WestBoundingCoordinate": { - "description": "The west bounding coordinate of the bounding box.", - "type": "number" - }, - "SouthBoundingCoordinate": { - "description": "The south bounding coordinate of the bounding box.", - "type": "number" - }, - "EastBoundingCoordinate": { - "description": "The east bounding coordinate of the bounding box.", - "type": "number" - }, - "NorthBoundingCoordinate": { - "description": "The north bounding coordinate of the bounding box.", - "type": "number" + SpatialBoundingBoxType: { + type: 'object', + additionalProperties: false, + description: 'The bounding box consists of west bounding, south bounding, east bounding and north bounding coordinates and the CRS identifier.', + properties: { + CRSIdentifier: { + description: 'The CRS identifier of the bounding box.', + $ref: '#/definitions/CRSIdentifierTypeEnum' + }, + WestBoundingCoordinate: { + description: 'The west bounding coordinate of the bounding box.', + type: 'number' + }, + SouthBoundingCoordinate: { + description: 'The south bounding coordinate of the bounding box.', + type: 'number' + }, + EastBoundingCoordinate: { + description: 'The east bounding coordinate of the bounding box.', + type: 'number' + }, + NorthBoundingCoordinate: { + description: 'The north bounding coordinate of the bounding box.', + type: 'number' } }, - "required": [ - "CRSIdentifier", - "WestBoundingCoordinate", - "SouthBoundingCoordinate", - "EastBoundingCoordinate", - "NorthBoundingCoordinate" + required: [ + 'CRSIdentifier', + 'WestBoundingCoordinate', + 'SouthBoundingCoordinate', + 'EastBoundingCoordinate', + 'NorthBoundingCoordinate' ] }, - "GeneralGridType": { - "type": "object", - "additionalProperties": false, - "description": "The general grid consists of a CRS Identifier and an Axis.", - "properties": { - "CRSIdentifier": { - "description": "The CRS identifier (srsName) of the general grid.", - "$ref": "#/definitions/CRSIdentifierTypeEnum" - }, - "Axis": { - "description": "The grid axis identifiers, all distinct within a grid.", - "type": "array", - "items": { - "$ref": "#/definitions/AxisType" + GeneralGridType: { + type: 'object', + additionalProperties: false, + description: 'The general grid consists of a CRS Identifier and an Axis.', + properties: { + CRSIdentifier: { + description: 'The CRS identifier (srsName) of the general grid.', + $ref: '#/definitions/CRSIdentifierTypeEnum' + }, + Axis: { + description: 'The grid axis identifiers, all distinct within a grid.', + type: 'array', + items: { + $ref: '#/definitions/AxisType' }, - "minItems": 1 + minItems: 1 } }, - "required": [ - "CRSIdentifier", - "Axis" + required: [ + 'CRSIdentifier', + 'Axis' ] }, - "AxisType": { - "type": "object", - "additionalProperties": false, - "description": "The axis consists of an extent and grid information.", - "properties": { - "AxisLabel": { - "description": "The axis label of the general grid.", - "type": "string", - "minLength": 1, - "maxLength": 1024 - }, - "GridResolution": { - "description": "The resolution of the general grid.", - "type": "number" - }, - "Extent": { - "description": "The extent of the general grid.", - "$ref": "#/definitions/ExtentType" + AxisType: { + type: 'object', + additionalProperties: false, + description: 'The axis consists of an extent and grid information.', + properties: { + AxisLabel: { + description: 'The axis label of the general grid.', + type: 'string', + minLength: 1, + maxLength: 1024 + }, + GridResolution: { + description: 'The resolution of the general grid.', + type: 'number' + }, + Extent: { + description: 'The extent of the general grid.', + $ref: '#/definitions/ExtentType' } }, - "required": [ - "AxisLabel", - "Extent" + required: [ + 'AxisLabel', + 'Extent' ] }, - "ExtentType": { - "type": "object", - "additionalProperties": false, - "description": "The extent consists of .", - "properties": { - "ExtentLabel": { - "description": "The label of the extent.", - "type": "string", - "minLength": 1, - "maxLength": 1024 - }, - "LowerBound": { - "description": "The lowest value along this grid axis.", - "type": "number" - }, - "UpperBound": { - "description": "The highest value along this grid axis.", - "type": "number" - }, - "UOMLabel": { - "description": "The unit of measure in which values along this axis are expressed.", - "type": "string", - "minLength": 1, - "maxLength": 1024 + ExtentType: { + type: 'object', + additionalProperties: false, + description: 'The extent consists of .', + properties: { + ExtentLabel: { + description: 'The label of the extent.', + type: 'string', + minLength: 1, + maxLength: 1024 + }, + LowerBound: { + description: 'The lowest value along this grid axis.', + type: 'number' + }, + UpperBound: { + description: 'The highest value along this grid axis.', + type: 'number' + }, + UOMLabel: { + description: 'The unit of measure in which values along this axis are expressed.', + type: 'string', + minLength: 1, + maxLength: 1024 } }, - "required": [ - "LowerBound", - "UpperBound", - "UOMLabel" + required: [ + 'LowerBound', + 'UpperBound', + 'UOMLabel' ] }, - "DataResourceSpatialExtentType": { - "type": "object", - "description": "The spatial extent of the coverage available from the service. These are coordinate pairs which describe either the point, line string, or polygon representing the spatial extent. The bounding box is described by the west, south, east and north ordinates", - "oneOf": [ + DataResourceSpatialExtentType: { + type: 'object', + description: 'The spatial extent of the coverage available from the service. These are coordinate pairs which describe either the point, line string, or polygon representing the spatial extent. The bounding box is described by the west, south, east and north ordinates', + oneOf: [ { - "additionalProperties": false, - "title": "Points", - "properties": { - "SpatialPoints": { - "description": "The spatial extent of the layer, feature type or coverage described by a point.", - "type": "array", - "items": { - "$ref": "#/definitions/CoordinatesType" + additionalProperties: false, + title: 'Points', + properties: { + SpatialPoints: { + description: 'The spatial extent of the layer, feature type or coverage described by a point.', + type: 'array', + items: { + $ref: '#/definitions/CoordinatesType' }, - "minItems": 1 + minItems: 1 } }, - "required": [ - "SpatialPoints" + required: [ + 'SpatialPoints' ] }, { - "additionalProperties": false, - "title": "Line String", - "properties": { - "SpatialLineStrings": { - "description": "The spatial extent of the layer, feature type or coverage described by a line string.", - "type": "array", - "items": { - "$ref": "#/definitions/LineStringType" + additionalProperties: false, + title: 'Line String', + properties: { + SpatialLineStrings: { + description: 'The spatial extent of the layer, feature type or coverage described by a line string.', + type: 'array', + items: { + $ref: '#/definitions/LineStringType' }, - "minItems": 1 + minItems: 1 } }, - "required": [ - "SpatialLineStrings" + required: [ + 'SpatialLineStrings' ] }, { - "additionalProperties": false, - "title": "Bounding Box", - "properties": { - "SpatialBoundingBox": { - "description": "The spatial extent of the layer, feature type or coverage described by a bounding box.", - "$ref": "#/definitions/SpatialBoundingBoxType" + additionalProperties: false, + title: 'Bounding Box', + properties: { + SpatialBoundingBox: { + description: 'The spatial extent of the layer, feature type or coverage described by a bounding box.', + $ref: '#/definitions/SpatialBoundingBoxType' } }, - "required": [ - "SpatialBoundingBox" + required: [ + 'SpatialBoundingBox' ] }, { - "additionalProperties": false, - "title": "General Grid", - "properties": { - "GeneralGrid": { - "description": "The spatial extent of the layer, feature type or coverage described by a general grid.", - "$ref": "#/definitions/GeneralGridType" + additionalProperties: false, + title: 'General Grid', + properties: { + GeneralGrid: { + description: 'The spatial extent of the layer, feature type or coverage described by a general grid.', + $ref: '#/definitions/GeneralGridType' } }, - "required": [ - "GeneralGrid" + required: [ + 'GeneralGrid' ] }, { - "additionalProperties": false, - "title": "Polygon", - "properties": { - "SpatialPolygons": { - "description": "The spatial extent of the layer, feature type or coverage described by a polygon.", - "type": "array", - "items": { - "$ref": "#/definitions/CoordinatesType" + additionalProperties: false, + title: 'Polygon', + properties: { + SpatialPolygons: { + description: 'The spatial extent of the layer, feature type or coverage described by a polygon.', + type: 'array', + items: { + $ref: '#/definitions/CoordinatesType' }, - "minItems": 1 + minItems: 1 } }, - "required": [ - "SpatialPolygons" + required: [ + 'SpatialPolygons' ] } ] }, - "DataResourceTemporalExtentType": { - "type": "object", - "properties": { - "DataResourceTimePoints": { - "description": "Points in time representing the temporal extent of the layer or coverage.", - "type": "array", - "items": { - "$ref": "#/definitions/TimePointsType" + DataResourceTemporalExtentType: { + type: 'object', + properties: { + DataResourceTimePoints: { + description: 'Points in time representing the temporal extent of the layer or coverage.', + type: 'array', + items: { + $ref: '#/definitions/TimePointsType' }, - "minItems": 1 + minItems: 1 } } }, - "TimePointsType": { - "type": "object", - "properties": { - "TimeFormat": { - "description": "Time format representing time point of the temporal extent.", - "type": "string", - "minLength": 1, - "maxLength": 80 - }, - "TimeValue": { - "description": "Time value of the time point of temporal extent.", - "type": "string", - "minLength": 1, - "maxLength": 80 - }, - "Description": { - "description": "Description of the time value of the temporal extent.", - "type": "string", - "minLength": 1, - "maxLength": 80 + TimePointsType: { + type: 'object', + properties: { + TimeFormat: { + description: 'Time format representing time point of the temporal extent.', + type: 'string', + minLength: 1, + maxLength: 80 + }, + TimeValue: { + description: 'Time value of the time point of temporal extent.', + type: 'string', + minLength: 1, + maxLength: 80 + }, + Description: { + description: 'Description of the time value of the temporal extent.', + type: 'string', + minLength: 1, + maxLength: 80 } } }, - "CRSIdentifierTypeEnum": { - "description": "The CRS Identifier of the spatial extent, expressed as a code.", - "type": "string", - "enum": [ - "EPSG:4326", - "EPSG:3395", - "EPSG:3785", - "EPSG:9807", - "EPSG:2000.63", - "EPSG:2163", - "EPSG:3408", - "EPSG:3410", - "EPSG:6931", - "EPSG:6933", - "EPSG:3411", - "EPSG:9822", - "EPSG:54003", - "EPSG:54004", - "EPSG:54008", - "EPSG:54009", - "EPSG:26917", - "EPSG:900913", - "Other" + CRSIdentifierTypeEnum: { + description: 'The CRS Identifier of the spatial extent, expressed as a code.', + type: 'string', + enum: [ + 'EPSG:4326', + 'EPSG:3395', + 'EPSG:3785', + 'EPSG:9807', + 'EPSG:2000.63', + 'EPSG:2163', + 'EPSG:3408', + 'EPSG:3410', + 'EPSG:6931', + 'EPSG:6933', + 'EPSG:3411', + 'EPSG:9822', + 'EPSG:54003', + 'EPSG:54004', + 'EPSG:54008', + 'EPSG:54009', + 'EPSG:26917', + 'EPSG:900913', + 'Other' ] }, - "DataResourceTemporalTypeEnum": { - "description": "The temporal extent of the layer, feature type or coverage available from the service.", - "type": "string", - "enum": [ - "TIME_STAMP", - "TIME_RANGE", - "TIME_SERIES", - "TIME_AVERAGE" + DataResourceTemporalTypeEnum: { + description: 'The temporal extent of the layer, feature type or coverage available from the service.', + type: 'string', + enum: [ + 'TIME_STAMP', + 'TIME_RANGE', + 'TIME_SERIES', + 'TIME_AVERAGE' ] }, - "CouplingTypeEnum": { - "description": "This element contains the coupling type for the resource(s) coupled to this service. Examples are: 'LOOSE' - this is where a variety of data sources (which are not specified precisely) are used to generate the resource, 'MIXED' - this is where a combination of well-cited data sources are used to generate the resource, 'TIGHT - this is where a single well-cited data source is used to generate the resource.", - "type": "string", - "enum": [ - "LOOSE", - "MIXED", - "TIGHT" + CouplingTypeEnum: { + description: "This element contains the coupling type for the resource(s) coupled to this service. Examples are: 'LOOSE' - this is where a variety of data sources (which are not specified precisely) are used to generate the resource, 'MIXED' - this is where a combination of well-cited data sources are used to generate the resource, 'TIGHT - this is where a single well-cited data source is used to generate the resource.", + type: 'string', + enum: [ + 'LOOSE', + 'MIXED', + 'TIGHT' ] }, - "DistributedComputingPlatformTypeEnum": { - "description": "This element contains the distributed computing platform (protocol) for the operation(s) made possible via this service.", - "type": "string", - "enum": [ - "XML", - "CORBA", - "JAVA", - "COM", - "SQL", - "SOAP", - "Z3950", - "HTTP", - "HTTPS", - "FTP", - "WEBSERVICES" + DistributedComputingPlatformTypeEnum: { + description: 'This element contains the distributed computing platform (protocol) for the operation(s) made possible via this service.', + type: 'string', + enum: [ + 'XML', + 'CORBA', + 'JAVA', + 'COM', + 'SQL', + 'SOAP', + 'Z3950', + 'HTTP', + 'HTTPS', + 'FTP', + 'WEBSERVICES' ] }, - "MetadataSpecificationType": { - "type": "object", - "additionalProperties": false, - "description": "This object requires any metadata record that is validated by this schema to provide information about the schema.", - "properties": { - "URL": { - "description": "The web address of the metadata schema used to validate the service record.", - "type": "string", - "enum": [ - "https://cdn.earthdata.nasa.gov/umm/service/v1.5.3" + MetadataSpecificationType: { + type: 'object', + additionalProperties: false, + description: 'This object requires any metadata record that is validated by this schema to provide information about the schema.', + properties: { + URL: { + description: 'The web address of the metadata schema used to validate the service record.', + type: 'string', + enum: [ + 'https://cdn.earthdata.nasa.gov/umm/service/v1.5.3' ] }, - "Name": { - "description": "The name of the metadata schema.", - "type": "string", - "enum": [ - "UMM-S" + Name: { + description: 'The name of the metadata schema.', + type: 'string', + enum: [ + 'UMM-S' ] }, - "Version": { - "description": "The version of the metadata schema.", - "type": "string", - "enum": [ - "1.5.3" + Version: { + description: 'The version of the metadata schema.', + type: 'string', + enum: [ + '1.5.3' ] } }, - "required": [ - "URL", - "Name", - "Version" + required: [ + 'URL', + 'Name', + 'Version' ] } } diff --git a/static/src/js/schemas/umm/ummTSchema.js b/static/src/js/schemas/umm/ummTSchema.js index 85bd699a4..366922228 100644 --- a/static/src/js/schemas/umm/ummTSchema.js +++ b/static/src/js/schemas/umm/ummTSchema.js @@ -1,871 +1,871 @@ const ummTSchema = { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "UMM-T", - "type": "object", - "additionalProperties": false, - "properties": { - "Name": { - "description": "The name of the downloadable tool or web user interface.", - "type": "string", - "minLength": 1, - "maxLength": 85 - }, - "LongName": { - "description": "The long name of the downloadable tool or web user interface.", - "type": "string", - "minLength": 1, - "maxLength": 1024 - }, - "Type": { - "description": "The type of the downloadable tool or web user interface.", - "$ref": "#/definitions/ToolTypeEnum" - }, - "Version": { - "description": "The edition or version of the web user interface software, or tool. A value of 'NOT PROVIDED' may be used if the version is not available or unknown.", - "type": "string", - "minLength": 1, - "maxLength": 20 - }, - "VersionDescription": { - "description": "This field provides users with information on what changes were included in the most recent version.", - "type": "string", - "minLength": 1, - "maxLength": 1024 - }, - "LastUpdatedDate": { - "description": "This element describes the latest date when the tool was most recently pushed to production for support and maintenance. ", - "format": "date-time", - "type": "string" - }, - "Description": { - "description": "A brief description of the web user interface or downloadable tool. Note: This field allows lightweight markup language with plain text formatting syntax. Line breaks within the text are preserved.", - "type": "string", - "minLength": 1, - "maxLength": 1024 - }, - "URL": { - "description": "The URL where you can directly access the web user interface or downloadable tool.", - "$ref": "#/definitions/URLType" - }, - "DOI": { - "description": "The Digital Object Identifier (DOI) of the web user interface or downloadable tool.", - "type": "string", - "minLength": 1, - "maxLength": 1024 - }, - "RelatedURLs": { - "description": "A URL associated with the web user interface or downloadable tool, e.g., the home page for the tool provider which is responsible for the tool.", - "type": "array", - "items": { - "$ref": "#/definitions/RelatedURLType" + $schema: 'http://json-schema.org/draft-07/schema#', + title: 'UMM-T', + type: 'object', + additionalProperties: false, + properties: { + Name: { + description: 'The name of the downloadable tool or web user interface.', + type: 'string', + minLength: 1, + maxLength: 85 + }, + LongName: { + description: 'The long name of the downloadable tool or web user interface.', + type: 'string', + minLength: 1, + maxLength: 1024 + }, + Type: { + description: 'The type of the downloadable tool or web user interface.', + $ref: '#/definitions/ToolTypeEnum' + }, + Version: { + description: "The edition or version of the web user interface software, or tool. A value of 'NOT PROVIDED' may be used if the version is not available or unknown.", + type: 'string', + minLength: 1, + maxLength: 20 + }, + VersionDescription: { + description: 'This field provides users with information on what changes were included in the most recent version.', + type: 'string', + minLength: 1, + maxLength: 1024 + }, + LastUpdatedDate: { + description: 'This element describes the latest date when the tool was most recently pushed to production for support and maintenance. ', + format: 'date-time', + type: 'string' + }, + Description: { + description: 'A brief description of the web user interface or downloadable tool. Note: This field allows lightweight markup language with plain text formatting syntax. Line breaks within the text are preserved.', + type: 'string', + minLength: 1, + maxLength: 1024 + }, + URL: { + description: 'The URL where you can directly access the web user interface or downloadable tool.', + $ref: '#/definitions/URLType' + }, + DOI: { + description: 'The Digital Object Identifier (DOI) of the web user interface or downloadable tool.', + type: 'string', + minLength: 1, + maxLength: 1024 + }, + RelatedURLs: { + description: 'A URL associated with the web user interface or downloadable tool, e.g., the home page for the tool provider which is responsible for the tool.', + type: 'array', + items: { + $ref: '#/definitions/RelatedURLType' }, - "minItems": 0 + minItems: 0 }, - "SupportedOutputFormats": { - "description": "The project element describes the list of output format names supported by the web user interface or downloadable tool.", - "type": "array", - "items": { - "$ref": "#/definitions/SupportedFormatTypeEnum" + SupportedOutputFormats: { + description: 'The project element describes the list of output format names supported by the web user interface or downloadable tool.', + type: 'array', + items: { + $ref: '#/definitions/SupportedFormatTypeEnum' }, - "minItems": 0 + minItems: 0 }, - "SupportedInputFormats": { - "description": "The project element describes the list of input format names supported by the web user interface or downloadable tool.", - "type": "array", - "items": { - "$ref": "#/definitions/SupportedFormatTypeEnum" + SupportedInputFormats: { + description: 'The project element describes the list of input format names supported by the web user interface or downloadable tool.', + type: 'array', + items: { + $ref: '#/definitions/SupportedFormatTypeEnum' }, - "minItems": 0 + minItems: 0 }, - "SupportedOperatingSystems": { - "description": "The operating system(s) and associated version supported by the downloadable tool.", - "type": "array", - "items": { - "$ref": "#/definitions/SupportedOperatingSystemType" + SupportedOperatingSystems: { + description: 'The operating system(s) and associated version supported by the downloadable tool.', + type: 'array', + items: { + $ref: '#/definitions/SupportedOperatingSystemType' }, - "minItems": 0 + minItems: 0 }, - "SupportedBrowsers": { - "description": "The browser(s) and associated version supported by the web user interface.", - "type": "array", - "items": { - "$ref": "#/definitions/SupportedBrowserType" + SupportedBrowsers: { + description: 'The browser(s) and associated version supported by the web user interface.', + type: 'array', + items: { + $ref: '#/definitions/SupportedBrowserType' }, - "minItems": 0 + minItems: 0 }, - "SupportedSoftwareLanguages": { - "description": "The programming language(s) and associated version supported by the downloadable tool.", - "type": "array", - "items": { - "$ref": "#/definitions/SupportedSoftwareLanguageType" + SupportedSoftwareLanguages: { + description: 'The programming language(s) and associated version supported by the downloadable tool.', + type: 'array', + items: { + $ref: '#/definitions/SupportedSoftwareLanguageType' }, - "minItems": 0 + minItems: 0 }, - "ToolKeywords": { - "description": "Allows for the specification of Earth Science keywords that are representative of the service, software, or tool being described. The controlled vocabulary for Science Keywords is maintained in the Keyword Management System (KMS).", - "type": "array", - "items": { - "$ref": "#/definitions/ToolKeywordType" + ToolKeywords: { + description: 'Allows for the specification of Earth Science keywords that are representative of the service, software, or tool being described. The controlled vocabulary for Science Keywords is maintained in the Keyword Management System (KMS).', + type: 'array', + items: { + $ref: '#/definitions/ToolKeywordType' }, - "minItems": 1 + minItems: 1 }, - "Organizations": { - "description": "The tool provider, or organization, or institution responsible for developing, archiving, and/or distributing the web user interface, software, or tool.", - "type": "array", - "items": { - "$ref": "#/definitions/OrganizationType" + Organizations: { + description: 'The tool provider, or organization, or institution responsible for developing, archiving, and/or distributing the web user interface, software, or tool.', + type: 'array', + items: { + $ref: '#/definitions/OrganizationType' }, - "minItems": 1 + minItems: 1 }, - "Quality": { - "description": "Information about the quality of the downloadable tool or web user interface. This would include information about any quality assurance procedures followed in development. Note: This field allows lightweight markup language with plain text formatting syntax. Line breaks within the text are preserved.", - "$ref": "#/definitions/ToolQualityType" + Quality: { + description: 'Information about the quality of the downloadable tool or web user interface. This would include information about any quality assurance procedures followed in development. Note: This field allows lightweight markup language with plain text formatting syntax. Line breaks within the text are preserved.', + $ref: '#/definitions/ToolQualityType' }, - "AccessConstraints": { - "description": "Information about any constraints for accessing the downloadable tool or web user interface.", - "$ref": "#/definitions/AccessConstraintsType" + AccessConstraints: { + description: 'Information about any constraints for accessing the downloadable tool or web user interface.', + $ref: '#/definitions/AccessConstraintsType' }, - "UseConstraints": { - "description": "Information on how the item (downloadable tool or web user interface) may or may not be used after access is granted. This includes any special restrictions, legal prerequisites, terms and conditions, and/or limitations on using the item. Providers may request acknowledgement of the item from users and claim no responsibility for quality and completeness.", - "$ref": "#/definitions/UseConstraintsType" + UseConstraints: { + description: 'Information on how the item (downloadable tool or web user interface) may or may not be used after access is granted. This includes any special restrictions, legal prerequisites, terms and conditions, and/or limitations on using the item. Providers may request acknowledgement of the item from users and claim no responsibility for quality and completeness.', + $ref: '#/definitions/UseConstraintsType' }, - "AncillaryKeywords": { - "description": "Words or phrases to further describe the downloadable tool or web user interface.", - "type": "array", - "items": { - "$ref": "#/definitions/AncillaryKeywordsType" + AncillaryKeywords: { + description: 'Words or phrases to further describe the downloadable tool or web user interface.', + type: 'array', + items: { + $ref: '#/definitions/AncillaryKeywordsType' }, - "minItems": 0 + minItems: 0 }, - "ContactPersons": { - "description": "This is the contact persons of the downloadable tool or web user interface.", - "type": "array", - "items": { - "$ref": "#/definitions/ContactPersonType" + ContactPersons: { + description: 'This is the contact persons of the downloadable tool or web user interface.', + type: 'array', + items: { + $ref: '#/definitions/ContactPersonType' } }, - "ContactGroups": { - "description": "Group(s) to contact at an organization to get information about the web user interface or downloadable tool, including how the group may be contacted.", - "type": "array", - "items": { - "$ref": "#/definitions/ContactGroupType" + ContactGroups: { + description: 'Group(s) to contact at an organization to get information about the web user interface or downloadable tool, including how the group may be contacted.', + type: 'array', + items: { + $ref: '#/definitions/ContactGroupType' } }, - "PotentialAction": { - "description": "This element contains information about a smart handoff from one web user interface to another.", - "$ref": "#/definitions/PotentialActionType" + PotentialAction: { + description: 'This element contains information about a smart handoff from one web user interface to another.', + $ref: '#/definitions/PotentialActionType' }, - "MetadataSpecification": { - "description": "Requires the client, or user, to add in schema information into every tool record. It includes the schema's name, version, and URL location. The information is controlled through enumerations at the end of this schema.", - "$ref": "#/definitions/MetadataSpecificationType" + MetadataSpecification: { + description: "Requires the client, or user, to add in schema information into every tool record. It includes the schema's name, version, and URL location. The information is controlled through enumerations at the end of this schema.", + $ref: '#/definitions/MetadataSpecificationType' } }, - "required": [ - "Name", - "LongName", - "Type", - "Version", - "Description", - "ToolKeywords", - "Organizations", - "URL", - "MetadataSpecification" + required: [ + 'Name', + 'LongName', + 'Type', + 'Version', + 'Description', + 'ToolKeywords', + 'Organizations', + 'URL', + 'MetadataSpecification' ], - "definitions": { - "URLType": { - "type": "object", - "additionalProperties": false, - "description": "Represents the Internet site where you can directly access the tool or web user interface.", - "properties": { - "Description": { - "description": "Description of online resource at this URL.", - "type": "string", - "minLength": 1, - "maxLength": 4000 - }, - "URLContentType": { - "description": "A keyword describing the distinct content type of the online resource to this resource. This helps software present the information to the user. The valid values are contained in the KMS System: https://gcmd.earthdata.nasa.gov/KeywordViewer/scheme/all/8759ab63-ac04-4136-bc25-0c00eece1096/.", - "type": "string", - "minLength": 1, - "maxLength": 80 - }, - "Type": { - "description": "A keyword describing the type of the online resource to this resource. This helps software present the information to the user. The valid values are contained in the KMS System: https://gcmd.earthdata.nasa.gov/KeywordViewer/scheme/all/8759ab63-ac04-4136-bc25-0c00eece1096/.", - "type": "string", - "minLength": 1, - "maxLength": 80 - }, - "Subtype": { - "description": "A keyword describing the subtype of the online resource to this resource. This helps software present the information to the user. The valid values are contained in the KMS System: https://gcmd.earthdata.nasa.gov/KeywordViewer/scheme/all/8759ab63-ac04-4136-bc25-0c00eece1096/.", - "type": "string", - "minLength": 1, - "maxLength": 80 - }, - "URLValue": { - "description": "The URL for the relevant online resource where you can directly access the downloadable tool or web user interface.", - "type": "string", - "minLength": 1, - "maxLength": 1024 + definitions: { + URLType: { + type: 'object', + additionalProperties: false, + description: 'Represents the Internet site where you can directly access the tool or web user interface.', + properties: { + Description: { + description: 'Description of online resource at this URL.', + type: 'string', + minLength: 1, + maxLength: 4000 + }, + URLContentType: { + description: 'A keyword describing the distinct content type of the online resource to this resource. This helps software present the information to the user. The valid values are contained in the KMS System: https://gcmd.earthdata.nasa.gov/KeywordViewer/scheme/all/8759ab63-ac04-4136-bc25-0c00eece1096/.', + type: 'string', + minLength: 1, + maxLength: 80 + }, + Type: { + description: 'A keyword describing the type of the online resource to this resource. This helps software present the information to the user. The valid values are contained in the KMS System: https://gcmd.earthdata.nasa.gov/KeywordViewer/scheme/all/8759ab63-ac04-4136-bc25-0c00eece1096/.', + type: 'string', + minLength: 1, + maxLength: 80 + }, + Subtype: { + description: 'A keyword describing the subtype of the online resource to this resource. This helps software present the information to the user. The valid values are contained in the KMS System: https://gcmd.earthdata.nasa.gov/KeywordViewer/scheme/all/8759ab63-ac04-4136-bc25-0c00eece1096/.', + type: 'string', + minLength: 1, + maxLength: 80 + }, + URLValue: { + description: 'The URL for the relevant online resource where you can directly access the downloadable tool or web user interface.', + type: 'string', + minLength: 1, + maxLength: 1024 } }, - "required": [ - "URLContentType", - "Type", - "URLValue" + required: [ + 'URLContentType', + 'Type', + 'URLValue' ] }, - "RelatedURLType": { - "type": "object", - "additionalProperties": false, - "description": "Represents Internet sites that contain information related to the data, as well as related Internet sites such as project home pages, related data archives/servers, metadata extensions, online software packages, web mapping services, and calibration/validation data.", - "properties": { - "Description": { - "description": "Description of the web page at this URL.", - "type": "string", - "minLength": 1, - "maxLength": 4000 - }, - "URLContentType": { - "description": "A keyword describing the distinct content type of the online resource to this resource. This helps software present the information to the user. The valid values are contained in the KMS System: https://gcmd.earthdata.nasa.gov/KeywordViewer/scheme/all/8759ab63-ac04-4136-bc25-0c00eece1096/.", - "type": "string", - "minLength": 1, - "maxLength": 80 - }, - "Type": { - "description": "A keyword describing the type of the online resource to this resource. This helps software present the information to the user. The valid values are contained in the KMS System: https://gcmd.earthdata.nasa.gov/KeywordViewer/scheme/all/8759ab63-ac04-4136-bc25-0c00eece1096/.", - "type": "string", - "minLength": 1, - "maxLength": 80 - }, - "Subtype": { - "description": "A keyword describing the subtype of the online resource to this resource. This helps software present the information to the user. The valid values are contained in the KMS System: https://gcmd.earthdata.nasa.gov/KeywordViewer/scheme/all/8759ab63-ac04-4136-bc25-0c00eece1096/.", - "type": "string", - "minLength": 1, - "maxLength": 80 - }, - "URL": { - "description": "The web address for the relevant web page.", - "type": "string", - "minLength": 1, - "maxLength": 1024 - }, - "Format": { - "description": "Describes the organization of the data content so that users and applications know how to read and use the content. The controlled vocabulary for formats is maintained in the Keyword Management System (KMS): https://gcmd.earthdata.nasa.gov/KeywordViewer/scheme/DataFormat?gtm_scheme=DataFormat", - "type": "string", - "minLength": 1, - "maxLength": 80 - }, - "MimeType": { - "description": "The multi-purpose internet mail extensions indicates the nature and format of the data that is accessed through the URL. The controlled vocabulary for MimeTypes is maintained in the Keyword Management System (KMS): https://gcmd.earthdata.nasa.gov/KeywordViewer/scheme/MimeType?gtm_scheme=MimeType", - "type": "string", - "minLength": 1, - "maxLength": 80 + RelatedURLType: { + type: 'object', + additionalProperties: false, + description: 'Represents Internet sites that contain information related to the data, as well as related Internet sites such as project home pages, related data archives/servers, metadata extensions, online software packages, web mapping services, and calibration/validation data.', + properties: { + Description: { + description: 'Description of the web page at this URL.', + type: 'string', + minLength: 1, + maxLength: 4000 + }, + URLContentType: { + description: 'A keyword describing the distinct content type of the online resource to this resource. This helps software present the information to the user. The valid values are contained in the KMS System: https://gcmd.earthdata.nasa.gov/KeywordViewer/scheme/all/8759ab63-ac04-4136-bc25-0c00eece1096/.', + type: 'string', + minLength: 1, + maxLength: 80 + }, + Type: { + description: 'A keyword describing the type of the online resource to this resource. This helps software present the information to the user. The valid values are contained in the KMS System: https://gcmd.earthdata.nasa.gov/KeywordViewer/scheme/all/8759ab63-ac04-4136-bc25-0c00eece1096/.', + type: 'string', + minLength: 1, + maxLength: 80 + }, + Subtype: { + description: 'A keyword describing the subtype of the online resource to this resource. This helps software present the information to the user. The valid values are contained in the KMS System: https://gcmd.earthdata.nasa.gov/KeywordViewer/scheme/all/8759ab63-ac04-4136-bc25-0c00eece1096/.', + type: 'string', + minLength: 1, + maxLength: 80 + }, + URL: { + description: 'The web address for the relevant web page.', + type: 'string', + minLength: 1, + maxLength: 1024 + }, + Format: { + description: 'Describes the organization of the data content so that users and applications know how to read and use the content. The controlled vocabulary for formats is maintained in the Keyword Management System (KMS): https://gcmd.earthdata.nasa.gov/KeywordViewer/scheme/DataFormat?gtm_scheme=DataFormat', + type: 'string', + minLength: 1, + maxLength: 80 + }, + MimeType: { + description: 'The multi-purpose internet mail extensions indicates the nature and format of the data that is accessed through the URL. The controlled vocabulary for MimeTypes is maintained in the Keyword Management System (KMS): https://gcmd.earthdata.nasa.gov/KeywordViewer/scheme/MimeType?gtm_scheme=MimeType', + type: 'string', + minLength: 1, + maxLength: 80 } }, - "required": [ - "URL", - "URLContentType", - "Type" + required: [ + 'URL', + 'URLContentType', + 'Type' ] }, - "SupportedOperatingSystemType": { - "type": "object", - "additionalProperties": false, - "description": "This element describes the operating system(s) and associated version supported by the downloadable tool.", - "properties": { - "OperatingSystemName": { - "description": "The short name of the operating system associated with the downloadable tool.", - "type": "string", - "minLength": 1, - "maxLength": 1024 - }, - "OperatingSystemVersion": { - "description": "The version of the operating system associated with the downloadable tool.", - "type": "string", - "minLength": 0, - "maxLength": 80 + SupportedOperatingSystemType: { + type: 'object', + additionalProperties: false, + description: 'This element describes the operating system(s) and associated version supported by the downloadable tool.', + properties: { + OperatingSystemName: { + description: 'The short name of the operating system associated with the downloadable tool.', + type: 'string', + minLength: 1, + maxLength: 1024 + }, + OperatingSystemVersion: { + description: 'The version of the operating system associated with the downloadable tool.', + type: 'string', + minLength: 0, + maxLength: 80 } } }, - "SupportedBrowserType": { - "type": "object", - "additionalProperties": false, - "description": "This element describes the browser(s) and associated version supported by the downloadable tool.", - "properties": { - "BrowserName": { - "description": "The short name of the browser associated with the downloadable tool.", - "type": "string", - "minLength": 1, - "maxLength": 1024 - }, - "BrowserVersion": { - "description": "The version of the browser associated with the downloadable tool.", - "type": "string", - "minLength": 0, - "maxLength": 80 + SupportedBrowserType: { + type: 'object', + additionalProperties: false, + description: 'This element describes the browser(s) and associated version supported by the downloadable tool.', + properties: { + BrowserName: { + description: 'The short name of the browser associated with the downloadable tool.', + type: 'string', + minLength: 1, + maxLength: 1024 + }, + BrowserVersion: { + description: 'The version of the browser associated with the downloadable tool.', + type: 'string', + minLength: 0, + maxLength: 80 } } }, - "SupportedSoftwareLanguageType": { - "type": "object", - "additionalProperties": false, - "description": "This element describes the programming language(s) and associated version supported by the web user interface.", - "properties": { - "SoftwareLanguageName": { - "description": "The short name of the programming language associated with the downloadable tool.", - "type": "string", - "minLength": 0, - "maxLength": 1024 - }, - "SoftwareLanguageVersion": { - "description": "The version of the programming language associated with the downloadable tool.", - "type": "string", - "minLength": 0, - "maxLength": 80 + SupportedSoftwareLanguageType: { + type: 'object', + additionalProperties: false, + description: 'This element describes the programming language(s) and associated version supported by the web user interface.', + properties: { + SoftwareLanguageName: { + description: 'The short name of the programming language associated with the downloadable tool.', + type: 'string', + minLength: 0, + maxLength: 1024 + }, + SoftwareLanguageVersion: { + description: 'The version of the programming language associated with the downloadable tool.', + type: 'string', + minLength: 0, + maxLength: 80 } } }, - "SupportedFormatTypeEnum": { - "description": "This element contains a list of file formats supported by the tool.", - "type": "string", - "enum": [ - "HDF4", - "HDF5", - "HDF-EOS", - "HDF-EOS2", - "HDF-EOS5", - "NETCDF-3", - "NETCDF-4", - "GEOTIFF", - "GEOTIFFINT16", - "GEOTIFFFLOAT32", - "XML", - "ASCII", - "BINARY", - "ICARTT", - "PNG", - "JPEG", - "GIF", - "TIFF", - "XLSX", - "JSON", - "CSV", - "KML", - "PNG24", - "BMP" + SupportedFormatTypeEnum: { + description: 'This element contains a list of file formats supported by the tool.', + type: 'string', + enum: [ + 'HDF4', + 'HDF5', + 'HDF-EOS', + 'HDF-EOS2', + 'HDF-EOS5', + 'NETCDF-3', + 'NETCDF-4', + 'GEOTIFF', + 'GEOTIFFINT16', + 'GEOTIFFFLOAT32', + 'XML', + 'ASCII', + 'BINARY', + 'ICARTT', + 'PNG', + 'JPEG', + 'GIF', + 'TIFF', + 'XLSX', + 'JSON', + 'CSV', + 'KML', + 'PNG24', + 'BMP' ] }, - "ToolKeywordType": { - "type": "object", - "additionalProperties": false, - "description": "Enables specification of Earth science tool keywords related to the tool. The Earth Science Tool keywords are chosen from a controlled keyword hierarchy maintained in the Keyword Management System (KMS).", - "properties": { - "ToolCategory": { - "$ref": "#/definitions/KeywordStringType" + ToolKeywordType: { + type: 'object', + additionalProperties: false, + description: 'Enables specification of Earth science tool keywords related to the tool. The Earth Science Tool keywords are chosen from a controlled keyword hierarchy maintained in the Keyword Management System (KMS).', + properties: { + ToolCategory: { + $ref: '#/definitions/KeywordStringType' }, - "ToolTopic": { - "$ref": "#/definitions/KeywordStringType" + ToolTopic: { + $ref: '#/definitions/KeywordStringType' }, - "ToolTerm": { - "$ref": "#/definitions/KeywordStringType" + ToolTerm: { + $ref: '#/definitions/KeywordStringType' }, - "ToolSpecificTerm": { - "$ref": "#/definitions/KeywordStringType" + ToolSpecificTerm: { + $ref: '#/definitions/KeywordStringType' } }, - "required": [ - "ToolCategory", - "ToolTopic" + required: [ + 'ToolCategory', + 'ToolTopic' ] }, - "KeywordStringType": { - "type": "string", - "minLength": 1, - "maxLength": 80, - "pattern": "[\\w\\-&'()\\[\\]/.\"#$%\\^@!*+=,][\\w\\-&'()\\[\\]/.\"#$%\\^@!*+=, ]{1,79}" - }, - "OrganizationType": { - "type": "object", - "additionalProperties": false, - "description": "The organization or institution responsible for developing, archiving, and/or hosting the web user interface or downloadable tool.", - "properties": { - "Roles": { - "description": "This is the roles of the organization.", - "type": "array", - "items": { - "$ref": "#/definitions/ToolOrganizationRoleEnum" + KeywordStringType: { + type: 'string', + minLength: 1, + maxLength: 80, + pattern: "[\\w\\-&'()\\[\\]/.\"#$%\\^@!*+=,][\\w\\-&'()\\[\\]/.\"#$%\\^@!*+=, ]{1,79}" + }, + OrganizationType: { + type: 'object', + additionalProperties: false, + description: 'The organization or institution responsible for developing, archiving, and/or hosting the web user interface or downloadable tool.', + properties: { + Roles: { + description: 'This is the roles of the organization.', + type: 'array', + items: { + $ref: '#/definitions/ToolOrganizationRoleEnum' }, - "minItems": 1 + minItems: 1 }, - "ShortName": { - "description": "This is the short name of the organization.", - "$ref": "#/definitions/ToolOrganizationShortNameType" + ShortName: { + description: 'This is the short name of the organization.', + $ref: '#/definitions/ToolOrganizationShortNameType' }, - "LongName": { - "description": "This is the long name of the organization.", - "$ref": "#/definitions/LongNameType" + LongName: { + description: 'This is the long name of the organization.', + $ref: '#/definitions/LongNameType' }, - "URLValue": { - "description": "The URL of the organization.", - "type": "string", - "minLength": 1, - "maxLength": 1024 + URLValue: { + description: 'The URL of the organization.', + type: 'string', + minLength: 1, + maxLength: 1024 } }, - "required": [ - "Roles", - "ShortName" + required: [ + 'Roles', + 'ShortName' ] }, - "ContactGroupType": { - "type": "object", - "additionalProperties": false, - "properties": { - "Roles": { - "description": "This is the roles of the downloadable tool or web user interface contact.", - "type": "array", - "items": { - "$ref": "#/definitions/ToolOrganizationRoleEnum" + ContactGroupType: { + type: 'object', + additionalProperties: false, + properties: { + Roles: { + description: 'This is the roles of the downloadable tool or web user interface contact.', + type: 'array', + items: { + $ref: '#/definitions/ToolOrganizationRoleEnum' }, - "minItems": 1 + minItems: 1 }, - "ContactInformation": { - "description": "This is the contact information of the downloadable tool or web user interface contact.", - "$ref": "#/definitions/ContactInformationType" + ContactInformation: { + description: 'This is the contact information of the downloadable tool or web user interface contact.', + $ref: '#/definitions/ContactInformationType' }, - "GroupName": { - "description": "This is the contact group name.", - "type": "string", - "minLength": 1, - "maxLength": 255 + GroupName: { + description: 'This is the contact group name.', + type: 'string', + minLength: 1, + maxLength: 255 } }, - "required": [ - "Roles", - "GroupName" + required: [ + 'Roles', + 'GroupName' ] }, - "ContactPersonType": { - "type": "object", - "properties": { - "Roles": { - "description": "This is the roles of the downloadable tool or web user interface contact.", - "type": "array", - "items": { - "$ref": "#/definitions/ToolOrganizationRoleEnum" + ContactPersonType: { + type: 'object', + properties: { + Roles: { + description: 'This is the roles of the downloadable tool or web user interface contact.', + type: 'array', + items: { + $ref: '#/definitions/ToolOrganizationRoleEnum' }, - "minItems": 1 - }, - "ContactInformation": { - "description": "This is the contact information of the tool contact.", - "$ref": "#/definitions/ContactInformationType" - }, - "FirstName": { - "description": "First name of the individual.", - "type": "string", - "minLength": 1, - "maxLength": 255 - }, - "MiddleName": { - "description": "Middle name of the individual.", - "type": "string", - "minLength": 1, - "maxLength": 255 - }, - "LastName": { - "description": "Last name of the individual.", - "type": "string", - "minLength": 1, - "maxLength": 255 + minItems: 1 + }, + ContactInformation: { + description: 'This is the contact information of the tool contact.', + $ref: '#/definitions/ContactInformationType' + }, + FirstName: { + description: 'First name of the individual.', + type: 'string', + minLength: 1, + maxLength: 255 + }, + MiddleName: { + description: 'Middle name of the individual.', + type: 'string', + minLength: 1, + maxLength: 255 + }, + LastName: { + description: 'Last name of the individual.', + type: 'string', + minLength: 1, + maxLength: 255 } }, - "required": [ - "Roles", - "LastName" + required: [ + 'Roles', + 'LastName' ] }, - "ContactInformationType": { - "type": "object", - "additionalProperties": false, - "description": "Defines the contact information of a downloadable tool or web user interface.", - "properties": { - "ServiceHours": { - "description": "Time period when the contact answers questions or provides services.", - "type": "string", - "minLength": 1, - "maxLength": 1024 - }, - "ContactInstruction": { - "description": "Supplemental instructions on how or when to contact the responsible party.", - "type": "string", - "minLength": 1, - "maxLength": 2048 - }, - "ContactMechanisms": { - "description": "Mechanisms of contacting.", - "type": "array", - "items": { - "$ref": "#/definitions/ContactMechanismType" + ContactInformationType: { + type: 'object', + additionalProperties: false, + description: 'Defines the contact information of a downloadable tool or web user interface.', + properties: { + ServiceHours: { + description: 'Time period when the contact answers questions or provides services.', + type: 'string', + minLength: 1, + maxLength: 1024 + }, + ContactInstruction: { + description: 'Supplemental instructions on how or when to contact the responsible party.', + type: 'string', + minLength: 1, + maxLength: 2048 + }, + ContactMechanisms: { + description: 'Mechanisms of contacting.', + type: 'array', + items: { + $ref: '#/definitions/ContactMechanismType' } }, - "Addresses": { - "description": "Contact addresses.", - "type": "array", - "items": { - "$ref": "#/definitions/AddressType" + Addresses: { + description: 'Contact addresses.', + type: 'array', + items: { + $ref: '#/definitions/AddressType' } } } }, - "ContactMechanismType": { - "type": "object", - "additionalProperties": false, - "description": "Method for contacting the service or tool contact. A contact can be available via phone, email, Facebook, or Twitter.", - "properties": { - "Type": { - "description": "This is the method type for contacting the responsible party - phone, email, Facebook, or Twitter.", - "$ref": "#/definitions/ContactMechanismTypeEnum" - }, - "Value": { - "description": "This is the contact phone number, email address, Facebook address, or Twitter handle associated with the contact method.", - "type": "string", - "minLength": 1, - "maxLength": 1024 + ContactMechanismType: { + type: 'object', + additionalProperties: false, + description: 'Method for contacting the service or tool contact. A contact can be available via phone, email, Facebook, or Twitter.', + properties: { + Type: { + description: 'This is the method type for contacting the responsible party - phone, email, Facebook, or Twitter.', + $ref: '#/definitions/ContactMechanismTypeEnum' + }, + Value: { + description: 'This is the contact phone number, email address, Facebook address, or Twitter handle associated with the contact method.', + type: 'string', + minLength: 1, + maxLength: 1024 } }, - "required": [ - "Type", - "Value" + required: [ + 'Type', + 'Value' ] }, - "ToolOrganizationShortNameType": { - "description": "The unique name of the service organization.", - "type": "string", - "minLength": 1, - "maxLength": 85, - "pattern": "[\\w\\-&'()\\[\\]/.\"#$%\\^@!*+=,][\\w\\-&'()\\[\\]/.\"#$%\\^@!*+=, ]{1,84}" - }, - "ToolOrganizationRoleEnum": { - "description": "Defines the possible values of a service provider role.", - "type": "string", - "enum": [ - "SERVICE PROVIDER", - "DEVELOPER", - "PUBLISHER", - "AUTHOR", - "ORIGINATOR" + ToolOrganizationShortNameType: { + description: 'The unique name of the service organization.', + type: 'string', + minLength: 1, + maxLength: 85, + pattern: "[\\w\\-&'()\\[\\]/.\"#$%\\^@!*+=,][\\w\\-&'()\\[\\]/.\"#$%\\^@!*+=, ]{1,84}" + }, + ToolOrganizationRoleEnum: { + description: 'Defines the possible values of a service provider role.', + type: 'string', + enum: [ + 'SERVICE PROVIDER', + 'DEVELOPER', + 'PUBLISHER', + 'AUTHOR', + 'ORIGINATOR' ] }, - "LongNameType": { - "description": "The expanded or long name related to the short name.", - "type": "string", - "minLength": 1, - "maxLength": 1024 - }, - "ToolTypeEnum": { - "description": "This element is used to identify the type of the downloadable tool or web user interface.", - "type": "string", - "enum": [ - "Downloadable Tool", - "Web User Interface", - "Web Portal", - "Model", - "NOT PROVIDED" + LongNameType: { + description: 'The expanded or long name related to the short name.', + type: 'string', + minLength: 1, + maxLength: 1024 + }, + ToolTypeEnum: { + description: 'This element is used to identify the type of the downloadable tool or web user interface.', + type: 'string', + enum: [ + 'Downloadable Tool', + 'Web User Interface', + 'Web Portal', + 'Model', + 'NOT PROVIDED' ] }, - "ToolQualityType": { - "type": "object", - "additionalProperties": false, - "description": "This object describes tool quality, composed of the quality flag, the quality flagging system, traceability and lineage.", - "properties": { - "QualityFlag": { - "description": "The quality flag for the tool or web user interface.", - "$ref": "#/definitions/QualityFlagEnum" - }, - "Traceability": { - "description": "The quality traceability of the downloadable tool or web user interface.", - "type": "string", - "minLength": 1, - "maxLength": 100 - }, - "Lineage": { - "description": "The quality lineage of the downloadable tool or web user interface.", - "type": "string", - "minLength": 1, - "maxLength": 4000 + ToolQualityType: { + type: 'object', + additionalProperties: false, + description: 'This object describes tool quality, composed of the quality flag, the quality flagging system, traceability and lineage.', + properties: { + QualityFlag: { + description: 'The quality flag for the tool or web user interface.', + $ref: '#/definitions/QualityFlagEnum' + }, + Traceability: { + description: 'The quality traceability of the downloadable tool or web user interface.', + type: 'string', + minLength: 1, + maxLength: 100 + }, + Lineage: { + description: 'The quality lineage of the downloadable tool or web user interface.', + type: 'string', + minLength: 1, + maxLength: 4000 } }, - "required": [ - "QualityFlag" + required: [ + 'QualityFlag' ] }, - "QualityFlagEnum": { - "description": "Defines the possible quality flags.", - "type": "string", - "enum": [ - "Available", - "Unavailable", - "Reviewed", - "Not Reviewed", - "Other" + QualityFlagEnum: { + description: 'Defines the possible quality flags.', + type: 'string', + enum: [ + 'Available', + 'Unavailable', + 'Reviewed', + 'Not Reviewed', + 'Other' ] }, - "AccessConstraintsType": { - "description": "Information about any constraints for accessing the downloadable tool or web user interface.", - "type": "string", - "minLength": 1, - "maxLength": 4000 - }, - "UseConstraintsType": { - "type": "object", - "additionalProperties": false, - "description": "Information on how the downloadable tool or web user interface may or may not be used after access is granted. This includes any special restrictions, legal prerequisites, terms and conditions, and/or limitations on using the item. Providers may request acknowledgement of the item from users and claim no responsibility for quality and completeness.", - "properties": { - "LicenseURL": { - "description": "The web address of the license associated with the tool.", - "type": "string", - "minLength": 0, - "maxLength": 1024 - }, - "LicenseText": { - "description": "The text of the license associated with the tool.", - "type": "string", - "minLength": 0, - "maxLength": 20000 + AccessConstraintsType: { + description: 'Information about any constraints for accessing the downloadable tool or web user interface.', + type: 'string', + minLength: 1, + maxLength: 4000 + }, + UseConstraintsType: { + type: 'object', + additionalProperties: false, + description: 'Information on how the downloadable tool or web user interface may or may not be used after access is granted. This includes any special restrictions, legal prerequisites, terms and conditions, and/or limitations on using the item. Providers may request acknowledgement of the item from users and claim no responsibility for quality and completeness.', + properties: { + LicenseURL: { + description: 'The web address of the license associated with the tool.', + type: 'string', + minLength: 0, + maxLength: 1024 + }, + LicenseText: { + description: 'The text of the license associated with the tool.', + type: 'string', + minLength: 0, + maxLength: 20000 } } }, - "AncillaryKeywordsType": { - "description": "Words or phrases to further describe the downloadable tool or web user interface.", - "type": "string", - "minLength": 1, - "maxLength": 1024 - }, - "PotentialActionType": { - "type": "object", - "additionalProperties": false, - "description": "The HTTP API definition of this tool for use with smart-handoffs.", - "properties": { - "Type": { - "description": "The intent of action this tool supports. Does this tool provide a search? Does it create a resource? Does it consume a resource?", - "$ref": "#/definitions/ActionTypeEnum" - }, - "Target": { - "description": "The HTTP endpoint definition.", - "$ref": "#/definitions/ActionTargetType" - }, - "QueryInput": { - "type": "array", - "description": "A set of HTTP query parameter inputs. Each one indicates how a property should be filled in before initiating the action", - "items": { - "$ref": "#/definitions/PropertyValueSpecificationType" + AncillaryKeywordsType: { + description: 'Words or phrases to further describe the downloadable tool or web user interface.', + type: 'string', + minLength: 1, + maxLength: 1024 + }, + PotentialActionType: { + type: 'object', + additionalProperties: false, + description: 'The HTTP API definition of this tool for use with smart-handoffs.', + properties: { + Type: { + description: 'The intent of action this tool supports. Does this tool provide a search? Does it create a resource? Does it consume a resource?', + $ref: '#/definitions/ActionTypeEnum' + }, + Target: { + description: 'The HTTP endpoint definition.', + $ref: '#/definitions/ActionTargetType' + }, + QueryInput: { + type: 'array', + description: 'A set of HTTP query parameter inputs. Each one indicates how a property should be filled in before initiating the action', + items: { + $ref: '#/definitions/PropertyValueSpecificationType' }, - "minItems": 1 + minItems: 1 } }, - "required": [ - "Type", - "Target" + required: [ + 'Type', + 'Target' ] }, - "ActionTypeEnum": { - "type": "string", - "description": "The intent of action this tool supports. Does this tool provide a search? Does it create a resource? Does it consume a resource?", - "enum": [ - "SearchAction", - "CreateAction", - "ConsumeAction" + ActionTypeEnum: { + type: 'string', + description: 'The intent of action this tool supports. Does this tool provide a search? Does it create a resource? Does it consume a resource?', + enum: [ + 'SearchAction', + 'CreateAction', + 'ConsumeAction' ] }, - "ActionTargetType": { - "type": "object", - "description": "The definition of the tool's HTTP API.", - "additionalProperties": false, - "properties": { - "Type": { - "description": "The type of target. For example, is it an entry point into the application this record describes?", - "$ref": "#/definitions/TargetTypeEnum" - }, - "Description": { - "description": "Human readable text that answers the question of what this API can do", - "type": "string" - }, - "ResponseContentType": { - "type": "array", - "description": "The supported MIME type(s) of the response from the HTTP API.", - "items": { - "type": "string" + ActionTargetType: { + type: 'object', + description: "The definition of the tool's HTTP API.", + additionalProperties: false, + properties: { + Type: { + description: 'The type of target. For example, is it an entry point into the application this record describes?', + $ref: '#/definitions/TargetTypeEnum' + }, + Description: { + description: 'Human readable text that answers the question of what this API can do', + type: 'string' + }, + ResponseContentType: { + type: 'array', + description: 'The supported MIME type(s) of the response from the HTTP API.', + items: { + type: 'string' }, - "minItems": 1 - }, - "UrlTemplate": { - "type": "string", - "description": "An url template (RFC6570) that will be used to construct the target of the execution of the action.", - "minLength": 1, - "maxLength": 4094 - }, - "HttpMethod": { - "type": "array", - "description": "The accepted HTTP methods for this API.", - "items": { - "$ref": "#/definitions/HttpMethodEnum" + minItems: 1 + }, + UrlTemplate: { + type: 'string', + description: 'An url template (RFC6570) that will be used to construct the target of the execution of the action.', + minLength: 1, + maxLength: 4094 + }, + HttpMethod: { + type: 'array', + description: 'The accepted HTTP methods for this API.', + items: { + $ref: '#/definitions/HttpMethodEnum' }, - "minItems": 1 + minItems: 1 } }, - "required": [ - "Type", - "UrlTemplate", - "HttpMethod" + required: [ + 'Type', + 'UrlTemplate', + 'HttpMethod' ] }, - "TargetTypeEnum": { - "type": "string", - "description": "The type of target. For example, is it an entry point into the application this record describes?", - "enum": [ - "EntryPoint" + TargetTypeEnum: { + type: 'string', + description: 'The type of target. For example, is it an entry point into the application this record describes?', + enum: [ + 'EntryPoint' ] }, - "HttpMethodEnum": { - "description": "An HTTP method that specifies the appropriate HTTP method for a request to an HTTP Entrypoint. Values are capitalized strings as used in HTTP.", - "type": "string", - "enum": [ - "GET", - "POST" + HttpMethodEnum: { + description: 'An HTTP method that specifies the appropriate HTTP method for a request to an HTTP Entrypoint. Values are capitalized strings as used in HTTP.', + type: 'string', + enum: [ + 'GET', + 'POST' ] }, - "PropertyValueSpecificationType": { - "type": "object", - "description": "The definition of a query parameter for an HTTP API", - "additionalProperties": false, - "properties": { - "ValueType": { - "type": "string", - "description": "Note: not currently part of schema.org specification. This element references a standard describing the type and format of the query parameter value. For example, `https://schema.org/box` will describe a geo bounding box with the format `min Longitude, min Latitude, max Longitude, max Latitude`." - }, - "Description": { - "type": "string", - "description": "Provides information regarding the correct population of the url template parameter with respect to type, format and whether the parameter is required." - }, - "ValueName": { - "type": "string", - "description": "Indicates the name of the parameter this PropertyValue specification maps to in the URL template." - }, - "ValueRequired": { - "type": "boolean", - "description": "Whether the property must be filled in to complete the action. Default is false." + PropertyValueSpecificationType: { + type: 'object', + description: 'The definition of a query parameter for an HTTP API', + additionalProperties: false, + properties: { + ValueType: { + type: 'string', + description: 'Note: not currently part of schema.org specification. This element references a standard describing the type and format of the query parameter value. For example, `https://schema.org/box` will describe a geo bounding box with the format `min Longitude, min Latitude, max Longitude, max Latitude`.' + }, + Description: { + type: 'string', + description: 'Provides information regarding the correct population of the url template parameter with respect to type, format and whether the parameter is required.' + }, + ValueName: { + type: 'string', + description: 'Indicates the name of the parameter this PropertyValue specification maps to in the URL template.' + }, + ValueRequired: { + type: 'boolean', + description: 'Whether the property must be filled in to complete the action. Default is false.' } }, - "required": [ - "ValueType", - "ValueName" + required: [ + 'ValueType', + 'ValueName' ] }, - "ContactRoleEnum": { - "description": "Defines the possible values of a service provider role.", - "type": "string", - "enum": [ - "SERVICE PROVIDER CONTACT", - "TECHNICAL CONTACT", - "SCIENCE CONTACT", - "INVESTIGATOR", - "SOFTWARE AUTHOR", - "TOOL AUTHOR", - "USER SERVICES", - "SCIENCE SOFTWARE DEVELOPMENT", - "SERVICE PROVIDER" + ContactRoleEnum: { + description: 'Defines the possible values of a service provider role.', + type: 'string', + enum: [ + 'SERVICE PROVIDER CONTACT', + 'TECHNICAL CONTACT', + 'SCIENCE CONTACT', + 'INVESTIGATOR', + 'SOFTWARE AUTHOR', + 'TOOL AUTHOR', + 'USER SERVICES', + 'SCIENCE SOFTWARE DEVELOPMENT', + 'SERVICE PROVIDER' ] }, - "ContactMechanismTypeEnum": { - "description": "Defines the possible contact mechanism types.", - "type": "string", - "enum": [ - "Direct Line", - "Email", - "Facebook", - "Fax", - "Mobile", - "Modem", - "Primary", - "TDD/TTY Phone", - "Telephone", - "Twitter", - "U.S. toll free", - "Other" + ContactMechanismTypeEnum: { + description: 'Defines the possible contact mechanism types.', + type: 'string', + enum: [ + 'Direct Line', + 'Email', + 'Facebook', + 'Fax', + 'Mobile', + 'Modem', + 'Primary', + 'TDD/TTY Phone', + 'Telephone', + 'Twitter', + 'U.S. toll free', + 'Other' ] }, - "AddressType": { - "type": "object", - "additionalProperties": false, - "description": "This entity contains the physical address details for the contact.", - "properties": { - "StreetAddresses": { - "description": "An address line for the street address, used for mailing or physical addresses of organizations or individuals who serve as contacts for the service.", - "type": "array", - "items": { - "type": "string", - "minLength": 1, - "maxLength": 1024 + AddressType: { + type: 'object', + additionalProperties: false, + description: 'This entity contains the physical address details for the contact.', + properties: { + StreetAddresses: { + description: 'An address line for the street address, used for mailing or physical addresses of organizations or individuals who serve as contacts for the service.', + type: 'array', + items: { + type: 'string', + minLength: 1, + maxLength: 1024 }, - "minItems": 0 - }, - "City": { - "description": "The city portion of the physical address.", - "type": "string", - "minLength": 1, - "maxLength": 100 - }, - "StateProvince": { - "description": "The state or province portion of the physical address.", - "type": "string", - "minLength": 1, - "maxLength": 100 - }, - "Country": { - "description": "The country of the physical address.", - "type": "string", - "minLength": 1, - "maxLength": 100 - }, - "PostalCode": { - "description": "The zip or other postal code portion of the physical address.", - "type": "string", - "minLength": 1, - "maxLength": 20 + minItems: 0 + }, + City: { + description: 'The city portion of the physical address.', + type: 'string', + minLength: 1, + maxLength: 100 + }, + StateProvince: { + description: 'The state or province portion of the physical address.', + type: 'string', + minLength: 1, + maxLength: 100 + }, + Country: { + description: 'The country of the physical address.', + type: 'string', + minLength: 1, + maxLength: 100 + }, + PostalCode: { + description: 'The zip or other postal code portion of the physical address.', + type: 'string', + minLength: 1, + maxLength: 20 } } }, - "MetadataSpecificationType": { - "type": "object", - "additionalProperties": false, - "description": "This object requires any metadata record that is validated by this schema to provide information about the schema.", - "properties": { - "URL": { - "description": "This element represents the URL where the schema lives. The schema can be downloaded.", - "type": "string", - "enum": [ - "https://cdn.earthdata.nasa.gov/umm/tool/v1.2.0" + MetadataSpecificationType: { + type: 'object', + additionalProperties: false, + description: 'This object requires any metadata record that is validated by this schema to provide information about the schema.', + properties: { + URL: { + description: 'This element represents the URL where the schema lives. The schema can be downloaded.', + type: 'string', + enum: [ + 'https://cdn.earthdata.nasa.gov/umm/tool/v1.2.0' ] }, - "Name": { - "description": "This element represents the name of the schema.", - "type": "string", - "enum": [ - "UMM-T" + Name: { + description: 'This element represents the name of the schema.', + type: 'string', + enum: [ + 'UMM-T' ] }, - "Version": { - "description": "This element represents the version of the schema.", - "type": "string", - "enum": [ - "1.2.0" + Version: { + description: 'This element represents the version of the schema.', + type: 'string', + enum: [ + '1.2.0' ] } }, - "required": [ - "URL", - "Name", - "Version" + required: [ + 'URL', + 'Name', + 'Version' ] } } diff --git a/static/src/js/schemas/umm/ummVarSchema.js b/static/src/js/schemas/umm/ummVarSchema.js index 767a5a832..514709488 100644 --- a/static/src/js/schemas/umm/ummVarSchema.js +++ b/static/src/js/schemas/umm/ummVarSchema.js @@ -1,721 +1,721 @@ const ummVarSchema = { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "UMM-Var", - "type": "object", - "additionalProperties": false, - "properties": { - "Name": { - "description": "The name of a variable.", - "type": "string", - "minLength": 1, - "maxLength": 256 - }, - "StandardName": { - "description": "This is the more formal or scientific name, .e.g., the CF Standard Name.", - "type": "string", - "minLength": 1, - "maxLength": 256 - }, - "AdditionalIdentifiers": { - "description": "Any additional identifiers of a variable.", - "type": "array", - "items": { - "$ref": "#/definitions/AdditionalIdentifierType" + $schema: 'http://json-schema.org/draft-07/schema#', + title: 'UMM-Var', + type: 'object', + additionalProperties: false, + properties: { + Name: { + description: 'The name of a variable.', + type: 'string', + minLength: 1, + maxLength: 256 + }, + StandardName: { + description: 'This is the more formal or scientific name, .e.g., the CF Standard Name.', + type: 'string', + minLength: 1, + maxLength: 256 + }, + AdditionalIdentifiers: { + description: 'Any additional identifiers of a variable.', + type: 'array', + items: { + $ref: '#/definitions/AdditionalIdentifierType' }, - "minItems": 1 - }, - "LongName": { - "description": "The expanded or long name related to the variable Name.", - "$ref": "#/definitions/LongNameType" - }, - "Definition": { - "description": "The definition of the variable.", - "type": "string", - "minLength": 1, - "maxLength": 10000 - }, - "Units": { - "description": "The units associated with a variable.", - "type": "string", - "minLength": 1, - "maxLength": 100 - }, - "DataType": { - "description": "Specify data type of a variable. These types can be either: uint8, uint16, etc.", - "$ref": "#/definitions/DataTypeEnum" - }, - "Dimensions": { - "description": "A variable consists of one or more dimensions. An example of a dimension name is 'XDim'. An example of a dimension size is '1200'. Variables are rarely one dimensional.", - "type": "array", - "items": { - "$ref": "#/definitions/DimensionType" + minItems: 1 + }, + LongName: { + description: 'The expanded or long name related to the variable Name.', + $ref: '#/definitions/LongNameType' + }, + Definition: { + description: 'The definition of the variable.', + type: 'string', + minLength: 1, + maxLength: 10000 + }, + Units: { + description: 'The units associated with a variable.', + type: 'string', + minLength: 1, + maxLength: 100 + }, + DataType: { + description: 'Specify data type of a variable. These types can be either: uint8, uint16, etc.', + $ref: '#/definitions/DataTypeEnum' + }, + Dimensions: { + description: "A variable consists of one or more dimensions. An example of a dimension name is 'XDim'. An example of a dimension size is '1200'. Variables are rarely one dimensional.", + type: 'array', + items: { + $ref: '#/definitions/DimensionType' }, - "minItems": 1 + minItems: 1 }, - "ValidRanges": { - "description": "Valid ranges of variable data values.", - "type": "array", - "items": { - "$ref": "#/definitions/ValidRangeType" + ValidRanges: { + description: 'Valid ranges of variable data values.', + type: 'array', + items: { + $ref: '#/definitions/ValidRangeType' }, - "minItems": 0 + minItems: 0 }, - "Scale": { - "description": "The scale is the numerical factor by which all values in the stored data field are multiplied in order to obtain the original values. May be used together with Offset. An example of a scale factor is '0.002'", - "type": "number" + Scale: { + description: "The scale is the numerical factor by which all values in the stored data field are multiplied in order to obtain the original values. May be used together with Offset. An example of a scale factor is '0.002'", + type: 'number' }, - "Offset": { - "description": "The offset is the value which is either added to or subtracted from all values in the stored data field in order to obtain the original values. May be used together with Scale. An example of an offset is '0.49'.", - "type": "number" + Offset: { + description: "The offset is the value which is either added to or subtracted from all values in the stored data field in order to obtain the original values. May be used together with Scale. An example of an offset is '0.49'.", + type: 'number' }, - "FillValues": { - "description": "The fill value of the variable in the data file. It is generally a value which falls outside the valid range. For example, if the valid range is '0, 360', the fill value may be '-1'. The fill value type is data provider-defined. For example, 'Out of Valid Range'.", - "type": "array", - "items": { - "$ref": "#/definitions/FillValueType" + FillValues: { + description: "The fill value of the variable in the data file. It is generally a value which falls outside the valid range. For example, if the valid range is '0, 360', the fill value may be '-1'. The fill value type is data provider-defined. For example, 'Out of Valid Range'.", + type: 'array', + items: { + $ref: '#/definitions/FillValueType' }, - "minItems": 0 + minItems: 0 }, - "VariableType": { - "description": "Specify basic type of a variable.", - "$ref": "#/definitions/VariableTypeEnum" + VariableType: { + description: 'Specify basic type of a variable.', + $ref: '#/definitions/VariableTypeEnum' }, - "VariableSubType": { - "description": "Specifies the sub type of a variable.", - "$ref": "#/definitions/VariableSubTypeEnum" + VariableSubType: { + description: 'Specifies the sub type of a variable.', + $ref: '#/definitions/VariableSubTypeEnum' }, - "IndexRanges": { - "description": "This element describes the x and y dimension ranges for this variable. Typically these values are 2 latitude and longitude ranges, but they don't necessarily have to be.", - "$ref": "#/definitions/IndexRangesType" + IndexRanges: { + description: "This element describes the x and y dimension ranges for this variable. Typically these values are 2 latitude and longitude ranges, but they don't necessarily have to be.", + $ref: '#/definitions/IndexRangesType' }, - "MeasurementIdentifiers": { - "description": "The measurement information of a variable.", - "type": "array", - "items": { - "$ref": "#/definitions/MeasurementIdentifierType" + MeasurementIdentifiers: { + description: 'The measurement information of a variable.', + type: 'array', + items: { + $ref: '#/definitions/MeasurementIdentifierType' }, - "minItems": 0 + minItems: 0 }, - "SamplingIdentifiers": { - "description": "The sampling information of a variable.", - "type": "array", - "items": { - "$ref": "#/definitions/SamplingIdentifierType" + SamplingIdentifiers: { + description: 'The sampling information of a variable.', + type: 'array', + items: { + $ref: '#/definitions/SamplingIdentifierType' }, - "minItems": 0 + minItems: 0 }, - "ScienceKeywords": { - "description": "Controlled Science Keywords describing the measurements/variables. The controlled vocabulary for Science Keywords is maintained in the Keyword Management System (KMS). The valid values can be found at the KMS website: https://gcmdservices.gsfc.nasa.gov/kms/concepts/concept_scheme/sciencekeywords?format=csv.", - "type": "array", - "items": { - "$ref": "#/definitions/ScienceKeywordType" + ScienceKeywords: { + description: 'Controlled Science Keywords describing the measurements/variables. The controlled vocabulary for Science Keywords is maintained in the Keyword Management System (KMS). The valid values can be found at the KMS website: https://gcmdservices.gsfc.nasa.gov/kms/concepts/concept_scheme/sciencekeywords?format=csv.', + type: 'array', + items: { + $ref: '#/definitions/ScienceKeywordType' }, - "minItems": 0 + minItems: 0 }, - "Sets": { - "description": "The set information of a variable. The variable is grouped within a set. The set is defined by the name, type, size and index. For example, Name: 'Data_Fields', Type: 'General', Size: '15', Index: '7' for the case of the variable named 'LST_Day_1km'.", - "type": "array", - "items": { - "$ref": "#/definitions/SetType" + Sets: { + description: "The set information of a variable. The variable is grouped within a set. The set is defined by the name, type, size and index. For example, Name: 'Data_Fields', Type: 'General', Size: '15', Index: '7' for the case of the variable named 'LST_Day_1km'.", + type: 'array', + items: { + $ref: '#/definitions/SetType' }, - "minItems": 1 + minItems: 1 }, - "RelatedURLs": { - "description": "A described URL associated with the a web resource, or interface. e.g., the home page for the variable provider.", - "type": "array", - "items": { - "$ref": "#/definitions/RelatedURLType" + RelatedURLs: { + description: 'A described URL associated with the a web resource, or interface. e.g., the home page for the variable provider.', + type: 'array', + items: { + $ref: '#/definitions/RelatedURLType' }, - "minItems": 1 + minItems: 1 }, - "InstanceInformation": { - "description": "Describes a store (zarr) where a variable has been separated from its original data files and saved as its own entity.", - "$ref": "#/definitions/InstanceInformationType" + InstanceInformation: { + description: 'Describes a store (zarr) where a variable has been separated from its original data files and saved as its own entity.', + $ref: '#/definitions/InstanceInformationType' }, - "MetadataSpecification": { - "description": "Requires the client, or user, to add in schema information into every variable record. It includes the schema's name, version, and URL location. The information is controlled through enumerations at the end of this schema.", - "$ref": "#/definitions/MetadataSpecificationType" + MetadataSpecification: { + description: "Requires the client, or user, to add in schema information into every variable record. It includes the schema's name, version, and URL location. The information is controlled through enumerations at the end of this schema.", + $ref: '#/definitions/MetadataSpecificationType' } }, - "required": [ - "Name", - "LongName", - "Definition", - "MetadataSpecification" + required: [ + 'Name', + 'LongName', + 'Definition', + 'MetadataSpecification' ], - "definitions": { - "AdditionalIdentifierType": { - "type": "object", - "additionalProperties": false, - "description": "The elements of this section apply to an additional identifier.", - "properties": { - "Identifier": { - "description": "The actual identifier.", - "type": "string", - "minLength": 1, - "maxLength": 1024 - }, - "Description": { - "description": "This element describes to a person or machine what the identifier is called. e.g., if the identifier is 1057.2345/asfb then the Description should be DOI or Digital Object Identifier.", - "type": "string", - "minLength": 0, - "maxLength": 4000 + definitions: { + AdditionalIdentifierType: { + type: 'object', + additionalProperties: false, + description: 'The elements of this section apply to an additional identifier.', + properties: { + Identifier: { + description: 'The actual identifier.', + type: 'string', + minLength: 1, + maxLength: 1024 + }, + Description: { + description: 'This element describes to a person or machine what the identifier is called. e.g., if the identifier is 1057.2345/asfb then the Description should be DOI or Digital Object Identifier.', + type: 'string', + minLength: 0, + maxLength: 4000 } }, - "required": [ - "Identifier" + required: [ + 'Identifier' ] }, - "IndexRangesType": { - "type": "object", - "additionalProperties": false, - "description": "The index ranges consist of a LatRange and a LonRange.", - "properties": { - "LatRange": { - "description": "The LatRange consists of an index range for latitude.", - "type": "array", - "items": { - "type": "number" + IndexRangesType: { + type: 'object', + additionalProperties: false, + description: 'The index ranges consist of a LatRange and a LonRange.', + properties: { + LatRange: { + description: 'The LatRange consists of an index range for latitude.', + type: 'array', + items: { + type: 'number' }, - "minItems": 2, - "maxItems": 2 - }, - "LonRange": { - "description": "The LonRange consists of an index range for longitude.", - "type": "array", - "items": { - "type": "number" + minItems: 2, + maxItems: 2 + }, + LonRange: { + description: 'The LonRange consists of an index range for longitude.', + type: 'array', + items: { + type: 'number' }, - "minItems": 2, - "maxItems": 2 + minItems: 2, + maxItems: 2 } }, - "required": [ - "LatRange", - "LonRange" + required: [ + 'LatRange', + 'LonRange' ] }, - "MeasurementIdentifierType": { - "type": "object", - "additionalProperties": false, - "description": "The elements of this section allow authors to provide community sourced words or phrases to further describe the variable data.", - "properties": { - "MeasurementContextMedium": { - "description": "This element describes the context/medium within which the measurement was made.", - "type": "string", - "minLength": 1, - "maxLength": 1024 - }, - "MeasurementContextMediumURI": { - "description": "This element contains the URI for the context/medium.", - "type": "string", - "format": "uri", - "minLength": 1, - "maxLength": 4000 - }, - "MeasurementObject": { - "description": "This element describes the object which was measured.", - "type": "string", - "minLength": 1, - "maxLength": 1024 - }, - "MeasurementObjectURI": { - "description": "This element contains the URI for the object which was measured.", - "type": "string", - "format": "uri", - "minLength": 1, - "maxLength": 4000 - }, - "MeasurementQuantities": { - "description": "This element contains the quantity or quantities which was/were measured.", - "type": "array", - "items": { - "$ref": "#/definitions/MeasurementQuantityType" + MeasurementIdentifierType: { + type: 'object', + additionalProperties: false, + description: 'The elements of this section allow authors to provide community sourced words or phrases to further describe the variable data.', + properties: { + MeasurementContextMedium: { + description: 'This element describes the context/medium within which the measurement was made.', + type: 'string', + minLength: 1, + maxLength: 1024 + }, + MeasurementContextMediumURI: { + description: 'This element contains the URI for the context/medium.', + type: 'string', + format: 'uri', + minLength: 1, + maxLength: 4000 + }, + MeasurementObject: { + description: 'This element describes the object which was measured.', + type: 'string', + minLength: 1, + maxLength: 1024 + }, + MeasurementObjectURI: { + description: 'This element contains the URI for the object which was measured.', + type: 'string', + format: 'uri', + minLength: 1, + maxLength: 4000 + }, + MeasurementQuantities: { + description: 'This element contains the quantity or quantities which was/were measured.', + type: 'array', + items: { + $ref: '#/definitions/MeasurementQuantityType' }, - "minItems": 0 + minItems: 0 } }, - "required": [ - "MeasurementContextMedium", - "MeasurementObject" + required: [ + 'MeasurementContextMedium', + 'MeasurementObject' ] }, - "MeasurementQuantityType": { - "type": "object", - "additionalProperties": false, - "description": "The elements of this section apply to a measurement name. The measurement name is structured according to the form defined by Scott Peckham. This is: _.", - "properties": { - "Value": { - "description": "This element describes the value for the quantity which was measured.", - "type": "string", - "minLength": 1, - "maxLength": 1024 - }, - "MeasurementQuantityURI": { - "description": "This element contains the URI for the quantity which was measured.", - "type": "string", - "format": "uri", - "minLength": 1, - "maxLength": 4000 + MeasurementQuantityType: { + type: 'object', + additionalProperties: false, + description: 'The elements of this section apply to a measurement name. The measurement name is structured according to the form defined by Scott Peckham. This is: _.', + properties: { + Value: { + description: 'This element describes the value for the quantity which was measured.', + type: 'string', + minLength: 1, + maxLength: 1024 + }, + MeasurementQuantityURI: { + description: 'This element contains the URI for the quantity which was measured.', + type: 'string', + format: 'uri', + minLength: 1, + maxLength: 4000 } } }, - "SamplingIdentifierType": { - "type": "object", - "additionalProperties": false, - "description": "The elements of this section apply to a measurement.", - "properties": { - "SamplingMethod": { - "description": "The name of the sampling method used for the measurement. For example, 'radiometric detection within the visible and infra-red ranges of the electromagnetic spectrum.", - "type": "string", - "minLength": 1, - "maxLength": 4000 - }, - "MeasurementConditions": { - "description": "The measurement conditions of the variable. For example, 'Sampled Particle Size Range: 90 - 600 nm'.", - "type": "string", - "minLength": 0, - "maxLength": 4000 - }, - "ReportingConditions": { - "description": "The reporting conditions of the variable. The conditions over which the measurements of the variable are valid. For example, 'STP: 1013 mb and 273 K'.", - "type": "string", - "minLength": 0, - "maxLength": 4000 + SamplingIdentifierType: { + type: 'object', + additionalProperties: false, + description: 'The elements of this section apply to a measurement.', + properties: { + SamplingMethod: { + description: "The name of the sampling method used for the measurement. For example, 'radiometric detection within the visible and infra-red ranges of the electromagnetic spectrum.", + type: 'string', + minLength: 1, + maxLength: 4000 + }, + MeasurementConditions: { + description: "The measurement conditions of the variable. For example, 'Sampled Particle Size Range: 90 - 600 nm'.", + type: 'string', + minLength: 0, + maxLength: 4000 + }, + ReportingConditions: { + description: "The reporting conditions of the variable. The conditions over which the measurements of the variable are valid. For example, 'STP: 1013 mb and 273 K'.", + type: 'string', + minLength: 0, + maxLength: 4000 } }, - "required": [ - "SamplingMethod", - "MeasurementConditions" + required: [ + 'SamplingMethod', + 'MeasurementConditions' ] }, - "FillValueType": { - "description": "The fill value, fill value type and fill value description of the variable in the data file. The fill value is generally a value which falls outside the valid range. For example, if the valid range is '0, 360', the fill value may be '-1'. The elements of this section apply to the fill value of a variable.", - "type": "object", - "additionalProperties": false, - "properties": { - "Value": { - "description": "The fill value of the variable in the data file.", - "type": "number" - }, - "Type": { - "description": "Type of the fill value of the variable in the data file.", - "type": "string", - "enum": [ - "SCIENCE_FILLVALUE", - "QUALITY_FILLVALUE", - "ANCILLARY_FILLVALUE", - "OTHER" + FillValueType: { + description: "The fill value, fill value type and fill value description of the variable in the data file. The fill value is generally a value which falls outside the valid range. For example, if the valid range is '0, 360', the fill value may be '-1'. The elements of this section apply to the fill value of a variable.", + type: 'object', + additionalProperties: false, + properties: { + Value: { + description: 'The fill value of the variable in the data file.', + type: 'number' + }, + Type: { + description: 'Type of the fill value of the variable in the data file.', + type: 'string', + enum: [ + 'SCIENCE_FILLVALUE', + 'QUALITY_FILLVALUE', + 'ANCILLARY_FILLVALUE', + 'OTHER' ] }, - "Description": { - "description": "Description of the fill value of the variable in the data file.", - "type": "string", - "minLength": 1, - "maxLength": 160 + Description: { + description: 'Description of the fill value of the variable in the data file.', + type: 'string', + minLength: 1, + maxLength: 160 } }, - "required": [ - "Value", - "Type" + required: [ + 'Value', + 'Type' ] }, - "SetType": { - "type": "object", - "additionalProperties": false, - "description": "The elements of this section apply to variable sets.", - "properties": { - "Name": { - "description": "This element enables specification of set name. For example, 'Data_Fields'.", - "type": "string", - "minLength": 1, - "maxLength": 80 - }, - "Type": { - "description": "This element enables specification of set type. For example, if the variables have been grouped together based on a particular theme, such as wavelength, then the type should be set to that theme, otherwise it should be set to 'General'.", - "type": "string", - "minLength": 1, - "maxLength": 80 - }, - "Size": { - "description": "This element specifies the number of variables in the set. For example, if the number of variables in the set is fifteen, the size should be set to '15'.", - "type": "number" - }, - "Index": { - "description": "This element specifies the index value within the set for this variable, For example, if this varible is the third variable in the set, the index value should be set to '3'.", - "type": "number" + SetType: { + type: 'object', + additionalProperties: false, + description: 'The elements of this section apply to variable sets.', + properties: { + Name: { + description: "This element enables specification of set name. For example, 'Data_Fields'.", + type: 'string', + minLength: 1, + maxLength: 80 + }, + Type: { + description: "This element enables specification of set type. For example, if the variables have been grouped together based on a particular theme, such as wavelength, then the type should be set to that theme, otherwise it should be set to 'General'.", + type: 'string', + minLength: 1, + maxLength: 80 + }, + Size: { + description: "This element specifies the number of variables in the set. For example, if the number of variables in the set is fifteen, the size should be set to '15'.", + type: 'number' + }, + Index: { + description: "This element specifies the index value within the set for this variable, For example, if this varible is the third variable in the set, the index value should be set to '3'.", + type: 'number' } }, - "required": [ - "Name", - "Type", - "Size", - "Index" + required: [ + 'Name', + 'Type', + 'Size', + 'Index' ] }, - "ValidRangeType": { - "type": "object", - "additionalProperties": false, - "description": "Valid range data value of a variable: minimum and maximum values. For example, '-100, 5000'.", - "properties": { - "Min": { - "description": "Minimum data value of a variable. For example, '-100'.", - "type": "number" - }, - "Max": { - "description": "Maximum data value of a variable. For example, '5000'.", - "type": "number" - }, - "CodeSystemIdentifierMeaning": { - "description": "This element can be used to specify a code system identifier meaning. For example, 'Open Shrubland' corresponds to '7'.", - "type": "array", - "items": { - "type": "string", - "minLength": 1, - "maxLength": 60 + ValidRangeType: { + type: 'object', + additionalProperties: false, + description: "Valid range data value of a variable: minimum and maximum values. For example, '-100, 5000'.", + properties: { + Min: { + description: "Minimum data value of a variable. For example, '-100'.", + type: 'number' + }, + Max: { + description: "Maximum data value of a variable. For example, '5000'.", + type: 'number' + }, + CodeSystemIdentifierMeaning: { + description: "This element can be used to specify a code system identifier meaning. For example, 'Open Shrubland' corresponds to '7'.", + type: 'array', + items: { + type: 'string', + minLength: 1, + maxLength: 60 }, - "minItems": 0 - }, - "CodeSystemIdentifierValue": { - "description": "The code system identifier value is the textual or numerical value assigned to each meaning.", - "type": "array", - "items": { - "type": "string", - "minLength": 1, - "maxLength": 30 + minItems: 0 + }, + CodeSystemIdentifierValue: { + description: 'The code system identifier value is the textual or numerical value assigned to each meaning.', + type: 'array', + items: { + type: 'string', + minLength: 1, + maxLength: 30 }, - "minItems": 0 + minItems: 0 } } }, - "DataTypeEnum": { - "description": "This element is used to identify the data type of the variable.", - "type": "string", - "enum": [ - "byte", - "float", - "float32", - "float64", - "double", - "ubyte", - "ushort", - "uint", - "uchar", - "string", - "char8", - "uchar8", - "short", - "long", - "int", - "int8", - "int16", - "int32", - "int64", - "uint8", - "uint16", - "uint32", - "uint64", - "OTHER" + DataTypeEnum: { + description: 'This element is used to identify the data type of the variable.', + type: 'string', + enum: [ + 'byte', + 'float', + 'float32', + 'float64', + 'double', + 'ubyte', + 'ushort', + 'uint', + 'uchar', + 'string', + 'char8', + 'uchar8', + 'short', + 'long', + 'int', + 'int8', + 'int16', + 'int32', + 'int64', + 'uint8', + 'uint16', + 'uint32', + 'uint64', + 'OTHER' ] }, - "DimensionType": { - "type": "object", - "additionalProperties": false, - "description": "A variable consists of one or more dimensions. An example of a dimension name is 'XDim'. An example of a dimension size is '1200'. Variables are rarely one dimensional.", - "properties": { - "Name": { - "description": "The name of the dimension of the variable represented in the data field. For example, 'XDim.", - "type": "string", - "minLength": 1, - "maxLength": 80 - }, - "Size": { - "oneOf": [ + DimensionType: { + type: 'object', + additionalProperties: false, + description: "A variable consists of one or more dimensions. An example of a dimension name is 'XDim'. An example of a dimension size is '1200'. Variables are rarely one dimensional.", + properties: { + Name: { + description: "The name of the dimension of the variable represented in the data field. For example, 'XDim.", + type: 'string', + minLength: 1, + maxLength: 80 + }, + Size: { + oneOf: [ { - "description": "The size of the dimension of the variable represented in the data field. For example, '1200'.", - "title": "Enter the dimension size.", - "type": "number" + description: "The size of the dimension of the variable represented in the data field. For example, '1200'.", + title: 'Enter the dimension size.', + type: 'number' }, { - "description": "A value to designate that the dimension size of a variable in each granule is not uniform, but that it varies across granules.", - "title": "Dimension size varies.", - "type": "string", - "enum": [ - "Varies" + description: 'A value to designate that the dimension size of a variable in each granule is not uniform, but that it varies across granules.', + title: 'Dimension size varies.', + type: 'string', + enum: [ + 'Varies' ] } ] }, - "Type": { - "description": "The type of the dimension of the variable represented in the data field. For example, if the dimension has a special meaning, i.e., a latitude, longitude, pressure, height (or depth) or time, then the type should be set to either 'LATITUDE_DIMENSION', 'LONGITUDE_DIMENSION', 'PRESSURE_DIMENSION', 'HEIGHT_DIMENSION', 'DEPTH_DIMENSION' or 'TIME_DIMENSION', otherwise it should be set to 'OTHER'.", - "type": "string", - "enum": [ - "LATITUDE_DIMENSION", - "LONGITUDE_DIMENSION", - "ALONG_TRACK_DIMENSION", - "CROSS_TRACK_DIMENSION", - "PRESSURE_DIMENSION", - "HEIGHT_DIMENSION", - "DEPTH_DIMENSION", - "TIME_DIMENSION", - "OTHER" + Type: { + description: "The type of the dimension of the variable represented in the data field. For example, if the dimension has a special meaning, i.e., a latitude, longitude, pressure, height (or depth) or time, then the type should be set to either 'LATITUDE_DIMENSION', 'LONGITUDE_DIMENSION', 'PRESSURE_DIMENSION', 'HEIGHT_DIMENSION', 'DEPTH_DIMENSION' or 'TIME_DIMENSION', otherwise it should be set to 'OTHER'.", + type: 'string', + enum: [ + 'LATITUDE_DIMENSION', + 'LONGITUDE_DIMENSION', + 'ALONG_TRACK_DIMENSION', + 'CROSS_TRACK_DIMENSION', + 'PRESSURE_DIMENSION', + 'HEIGHT_DIMENSION', + 'DEPTH_DIMENSION', + 'TIME_DIMENSION', + 'OTHER' ] } }, - "required": [ - "Name", - "Size", - "Type" + required: [ + 'Name', + 'Size', + 'Type' ] }, - "VariableTypeEnum": { - "description": "This element is used to classify the variable. If a variable does not contain this field, it will be assumed to be a science variable.", - "type": "string", - "enum": [ - "SCIENCE_VARIABLE", - "QUALITY_VARIABLE", - "ANCILLARY_VARIABLE", - "COORDINATE", - "OTHER" + VariableTypeEnum: { + description: 'This element is used to classify the variable. If a variable does not contain this field, it will be assumed to be a science variable.', + type: 'string', + enum: [ + 'SCIENCE_VARIABLE', + 'QUALITY_VARIABLE', + 'ANCILLARY_VARIABLE', + 'COORDINATE', + 'OTHER' ] }, - "VariableSubTypeEnum": { - "description": "This element is used to further classify the variable. If a variable does not contain this field, it will be assumed to be a science vector.", - "type": "string", - "enum": [ - "SCIENCE_SCALAR", - "SCIENCE_VECTOR", - "SCIENCE_ARRAY", - "SCIENCE_EVENTFLAG", - "LATITUDE", - "LONGITUDE", - "TIME", - "OTHER" + VariableSubTypeEnum: { + description: 'This element is used to further classify the variable. If a variable does not contain this field, it will be assumed to be a science vector.', + type: 'string', + enum: [ + 'SCIENCE_SCALAR', + 'SCIENCE_VECTOR', + 'SCIENCE_ARRAY', + 'SCIENCE_EVENTFLAG', + 'LATITUDE', + 'LONGITUDE', + 'TIME', + 'OTHER' ] }, - "ScienceKeywordType": { - "type": "object", - "additionalProperties": false, - "description": "Enables specification of Earth science keywords related to the collection. The Earth Science keywords are chosen from a controlled keyword hierarchy maintained in the Keyword Management System (KMS). The valid values can be found at the KMS website: https://gcmdservices.gsfc.nasa.gov/kms/concepts/concept_scheme/sciencekeywords?format=csv.", - "properties": { - "Category": { - "$ref": "#/definitions/KeywordStringType" + ScienceKeywordType: { + type: 'object', + additionalProperties: false, + description: 'Enables specification of Earth science keywords related to the collection. The Earth Science keywords are chosen from a controlled keyword hierarchy maintained in the Keyword Management System (KMS). The valid values can be found at the KMS website: https://gcmdservices.gsfc.nasa.gov/kms/concepts/concept_scheme/sciencekeywords?format=csv.', + properties: { + Category: { + $ref: '#/definitions/KeywordStringType' }, - "Topic": { - "$ref": "#/definitions/KeywordStringType" + Topic: { + $ref: '#/definitions/KeywordStringType' }, - "Term": { - "$ref": "#/definitions/KeywordStringType" + Term: { + $ref: '#/definitions/KeywordStringType' }, - "VariableLevel1": { - "$ref": "#/definitions/KeywordStringType" + VariableLevel1: { + $ref: '#/definitions/KeywordStringType' }, - "VariableLevel2": { - "$ref": "#/definitions/KeywordStringType" + VariableLevel2: { + $ref: '#/definitions/KeywordStringType' }, - "VariableLevel3": { - "$ref": "#/definitions/KeywordStringType" + VariableLevel3: { + $ref: '#/definitions/KeywordStringType' }, - "DetailedVariable": { - "$ref": "#/definitions/KeywordStringType" + DetailedVariable: { + $ref: '#/definitions/KeywordStringType' } }, - "required": [ - "Category", - "Topic", - "Term" + required: [ + 'Category', + 'Topic', + 'Term' ] }, - "LongNameType": { - "description": "The expanded or long name related to the variable name main element.", - "type": "string", - "minLength": 1, - "maxLength": 1024 - }, - "KeywordStringType": { - "description": "The keyword string type for science keywords. The pattern below helps to minimize the types of characters allowed in the keywords to help users minimize keyword issues.", - "type": "string", - "minLength": 1, - "maxLength": 80, - "pattern": "[\\w\\-&'()\\[\\]/.\"#$%\\^@!*+=,][\\w\\-&'()\\[\\]/.\"#$%\\^@!*+=, ]{1,79}" - }, - "RelatedURLType": { - "type": "object", - "additionalProperties": false, - "description": "Represents Internet sites that contain information related to the data, as well as related Internet sites such as project home pages, variable colormaps, metadata extensions, etc.", - "properties": { - "Description": { - "description": "Description of the web resource at this URL.", - "type": "string", - "minLength": 1, - "maxLength": 4000 - }, - "URLContentType": { - "description": "A keyword describing the distinct content type of the online resource to this resource. (e.g., 'DATACENTER URL', 'DATA CONTACT URL', 'Visualization URL'). The valid values are contained in the KMS System: https://gcmd.earthdata.nasa.gov/KeywordViewer/scheme/all/8759ab63-ac04-4136-bc25-0c00eece1096", - "type": "string", - "minLength": 1, - "maxLength": 80 - }, - "Type": { - "description": "A keyword describing the type of the online resource to this resource. This helps the GUI to know what to do with this resource. (e.g., 'COLORMAP', 'GET VISUALIZATION'). The valid values are contained in the KMS System and are dependent on the URLContentType: https://gcmd.earthdata.nasa.gov/KeywordViewer/scheme/all/8759ab63-ac04-4136-bc25-0c00eece1096", - "type": "string", - "minLength": 1, - "maxLength": 80 - }, - "Subtype": { - "description": "A keyword describing the subtype of the online resource to this resource. This further helps the GUI to know what to do with this resource. (e.g., 'MEDIA', 'BROWSE', 'OPENDAP', 'OPENSEARCH', 'GITC', etc. ). The valid values are contained in the KMS System and are dependent on the Type: https://gcmd.earthdata.nasa.gov/KeywordViewer/scheme/all/8759ab63-ac04-4136-bc25-0c00eece1096", - "type": "string", - "minLength": 1, - "maxLength": 80 - }, - "URL": { - "description": "The URL for the relevant web page (e.g., the URL of the responsible organization's home page, the URL of the colormap server, etc.).", - "type": "string", - "format": "uri", - "minLength": 1, - "maxLength": 1024 - }, - "Format": { - "description": "Describes the organization of the data content so that users and applications know how to read and use the content. The controlled vocabulary for formats is maintained in the Keyword Management System (KMS): https://gcmd.earthdata.nasa.gov/KeywordViewer/scheme/DataFormat?gtm_scheme=DataFormat", - "type": "string", - "minLength": 1, - "maxLength": 80 - }, - "MimeType": { - "description": "The multi-purpose internet mail extensions indicates the nature and format of the data that is accessed through the URL. The controlled vocabulary for MimeTypes is maintained in the Keyword Management System (KMS): https://gcmd.earthdata.nasa.gov/KeywordViewer/scheme/MimeType?gtm_scheme=MimeType", - "type": "string", - "minLength": 1, - "maxLength": 80 + LongNameType: { + description: 'The expanded or long name related to the variable name main element.', + type: 'string', + minLength: 1, + maxLength: 1024 + }, + KeywordStringType: { + description: 'The keyword string type for science keywords. The pattern below helps to minimize the types of characters allowed in the keywords to help users minimize keyword issues.', + type: 'string', + minLength: 1, + maxLength: 80, + pattern: "[\\w\\-&'()\\[\\]/.\"#$%\\^@!*+=,][\\w\\-&'()\\[\\]/.\"#$%\\^@!*+=, ]{1,79}" + }, + RelatedURLType: { + type: 'object', + additionalProperties: false, + description: 'Represents Internet sites that contain information related to the data, as well as related Internet sites such as project home pages, variable colormaps, metadata extensions, etc.', + properties: { + Description: { + description: 'Description of the web resource at this URL.', + type: 'string', + minLength: 1, + maxLength: 4000 + }, + URLContentType: { + description: "A keyword describing the distinct content type of the online resource to this resource. (e.g., 'DATACENTER URL', 'DATA CONTACT URL', 'Visualization URL'). The valid values are contained in the KMS System: https://gcmd.earthdata.nasa.gov/KeywordViewer/scheme/all/8759ab63-ac04-4136-bc25-0c00eece1096", + type: 'string', + minLength: 1, + maxLength: 80 + }, + Type: { + description: "A keyword describing the type of the online resource to this resource. This helps the GUI to know what to do with this resource. (e.g., 'COLORMAP', 'GET VISUALIZATION'). The valid values are contained in the KMS System and are dependent on the URLContentType: https://gcmd.earthdata.nasa.gov/KeywordViewer/scheme/all/8759ab63-ac04-4136-bc25-0c00eece1096", + type: 'string', + minLength: 1, + maxLength: 80 + }, + Subtype: { + description: "A keyword describing the subtype of the online resource to this resource. This further helps the GUI to know what to do with this resource. (e.g., 'MEDIA', 'BROWSE', 'OPENDAP', 'OPENSEARCH', 'GITC', etc. ). The valid values are contained in the KMS System and are dependent on the Type: https://gcmd.earthdata.nasa.gov/KeywordViewer/scheme/all/8759ab63-ac04-4136-bc25-0c00eece1096", + type: 'string', + minLength: 1, + maxLength: 80 + }, + URL: { + description: "The URL for the relevant web page (e.g., the URL of the responsible organization's home page, the URL of the colormap server, etc.).", + type: 'string', + format: 'uri', + minLength: 1, + maxLength: 1024 + }, + Format: { + description: 'Describes the organization of the data content so that users and applications know how to read and use the content. The controlled vocabulary for formats is maintained in the Keyword Management System (KMS): https://gcmd.earthdata.nasa.gov/KeywordViewer/scheme/DataFormat?gtm_scheme=DataFormat', + type: 'string', + minLength: 1, + maxLength: 80 + }, + MimeType: { + description: 'The multi-purpose internet mail extensions indicates the nature and format of the data that is accessed through the URL. The controlled vocabulary for MimeTypes is maintained in the Keyword Management System (KMS): https://gcmd.earthdata.nasa.gov/KeywordViewer/scheme/MimeType?gtm_scheme=MimeType', + type: 'string', + minLength: 1, + maxLength: 80 } }, - "required": [ - "URLContentType", - "Type", - "URL" + required: [ + 'URLContentType', + 'Type', + 'URL' ] }, - "InstanceInformationType": { - "type": "object", - "additionalProperties": false, - "description": "This object describes a store for a variable instance. A variable instance is when the variable is extracted from the original data files and stored somewhere.", - "properties": { - "URL": { - "description": "The internet location of the variable instance store.", - "type": "string", - "format": "uri", - "minLength": 1, - "maxLength": 1024 - }, - "Format": { - "description": "Describes the format of the URL's data content so that users and applications know how to read and use the content. At this point in time, an industry standard mime-type does not exist, so a mime-type element will not be included. The controlled vocabulary for formats is maintained in the Keyword Management System (KMS): https://gcmd.earthdata.nasa.gov/KeywordViewer/scheme/DataFormat", - "type": "string", - "minLength": 1, - "maxLength": 80 - }, - "Description": { - "description": "Brief description of the store or any other useful information about the store.", - "type": "string", - "minLength": 1, - "maxLength": 1024 - }, - "DirectDistributionInformation": { - "description": "This element allows end users to get direct access to data products that are stored in the Amazon Web Service (AWS) S3 buckets. The sub elements include S3 credentials end point and a documentation URL as well as bucket prefix names and an AWS region.", - "$ref": "#/definitions/DirectDistributionInformationType" - }, - "ChunkingInformation": { - "description": "Description of the chunking strategy for the store. Chunking information such as the chunk sizes should be documented.", - "type": "string", - "minLength": 1, - "maxLength": 1024 + InstanceInformationType: { + type: 'object', + additionalProperties: false, + description: 'This object describes a store for a variable instance. A variable instance is when the variable is extracted from the original data files and stored somewhere.', + properties: { + URL: { + description: 'The internet location of the variable instance store.', + type: 'string', + format: 'uri', + minLength: 1, + maxLength: 1024 + }, + Format: { + description: "Describes the format of the URL's data content so that users and applications know how to read and use the content. At this point in time, an industry standard mime-type does not exist, so a mime-type element will not be included. The controlled vocabulary for formats is maintained in the Keyword Management System (KMS): https://gcmd.earthdata.nasa.gov/KeywordViewer/scheme/DataFormat", + type: 'string', + minLength: 1, + maxLength: 80 + }, + Description: { + description: 'Brief description of the store or any other useful information about the store.', + type: 'string', + minLength: 1, + maxLength: 1024 + }, + DirectDistributionInformation: { + description: 'This element allows end users to get direct access to data products that are stored in the Amazon Web Service (AWS) S3 buckets. The sub elements include S3 credentials end point and a documentation URL as well as bucket prefix names and an AWS region.', + $ref: '#/definitions/DirectDistributionInformationType' + }, + ChunkingInformation: { + description: 'Description of the chunking strategy for the store. Chunking information such as the chunk sizes should be documented.', + type: 'string', + minLength: 1, + maxLength: 1024 } }, - "required": [ - "URL", - "Format" + required: [ + 'URL', + 'Format' ] }, - "DirectDistributionInformationType": { - "type": "object", - "additionalProperties": false, - "description": "This element allows end users to get direct access to data products that are stored in the Amazon Web Service (AWS) S3 buckets. The sub elements include S3 credentials end point and a documentation URL as well as bucket prefix names and an AWS region.", - "properties": { - "Region": { - "description": "Defines the possible values for the Amazon Web Service US Regions where the data product resides.", - "$ref": "#/definitions/DirectDistributionInformationRegionEnum" - }, - "S3BucketAndObjectPrefixNames": { - "description": "Defines the possible values for the Amazon Web Service US S3 bucket and/or object prefix names.", - "type": "array", - "items": { - "type": "string", - "minLength": 1, - "maxLength": 1024, - "pattern": "[!-~]{1,1024}" + DirectDistributionInformationType: { + type: 'object', + additionalProperties: false, + description: 'This element allows end users to get direct access to data products that are stored in the Amazon Web Service (AWS) S3 buckets. The sub elements include S3 credentials end point and a documentation URL as well as bucket prefix names and an AWS region.', + properties: { + Region: { + description: 'Defines the possible values for the Amazon Web Service US Regions where the data product resides.', + $ref: '#/definitions/DirectDistributionInformationRegionEnum' + }, + S3BucketAndObjectPrefixNames: { + description: 'Defines the possible values for the Amazon Web Service US S3 bucket and/or object prefix names.', + type: 'array', + items: { + type: 'string', + minLength: 1, + maxLength: 1024, + pattern: '[!-~]{1,1024}' }, - "minItems": 1 - }, - "S3CredentialsAPIEndpoint": { - "description": "Defines the URL where the credentials are stored.", - "type": "string", - "format": "uri", - "minLength": 1, - "maxLength": 1024 - }, - "S3CredentialsAPIDocumentationURL": { - "description": "Defines the URL where the credential documentation are stored.", - "type": "string", - "format": "uri", - "minLength": 1, - "maxLength": 1024 + minItems: 1 + }, + S3CredentialsAPIEndpoint: { + description: 'Defines the URL where the credentials are stored.', + type: 'string', + format: 'uri', + minLength: 1, + maxLength: 1024 + }, + S3CredentialsAPIDocumentationURL: { + description: 'Defines the URL where the credential documentation are stored.', + type: 'string', + format: 'uri', + minLength: 1, + maxLength: 1024 } }, - "required": [ - "Region", - "S3CredentialsAPIEndpoint", - "S3CredentialsAPIDocumentationURL" + required: [ + 'Region', + 'S3CredentialsAPIEndpoint', + 'S3CredentialsAPIDocumentationURL' ] }, - "DirectDistributionInformationRegionEnum": { - "description": "Defines the possible values for the Amazon Web Service US Regions where the data product resides.", - "type": "string", - "enum": [ - "us-east-1", - "us-east-2", - "us-west-1", - "us-west-2" + DirectDistributionInformationRegionEnum: { + description: 'Defines the possible values for the Amazon Web Service US Regions where the data product resides.', + type: 'string', + enum: [ + 'us-east-1', + 'us-east-2', + 'us-west-1', + 'us-west-2' ] }, - "MetadataSpecificationType": { - "type": "object", - "additionalProperties": false, - "description": "This object requires any metadata record that is validated by this schema to provide information about the schema.", - "properties": { - "URL": { - "description": "This element represents the URL where the schema lives. The schema can be downloaded.", - "type": "string", - "enum": [ - "https://cdn.earthdata.nasa.gov/umm/variable/v1.9.0" + MetadataSpecificationType: { + type: 'object', + additionalProperties: false, + description: 'This object requires any metadata record that is validated by this schema to provide information about the schema.', + properties: { + URL: { + description: 'This element represents the URL where the schema lives. The schema can be downloaded.', + type: 'string', + enum: [ + 'https://cdn.earthdata.nasa.gov/umm/variable/v1.9.0' ] }, - "Name": { - "description": "This element represents the name of the schema.", - "type": "string", - "enum": [ - "UMM-Var" + Name: { + description: 'This element represents the name of the schema.', + type: 'string', + enum: [ + 'UMM-Var' ] }, - "Version": { - "description": "This element represents the version of the schema.", - "type": "string", - "enum": [ - "1.9.0" + Version: { + description: 'This element represents the version of the schema.', + type: 'string', + enum: [ + '1.9.0' ] } }, - "required": [ - "URL", - "Name", - "Version" + required: [ + 'URL', + 'Name', + 'Version' ] } }