CDM/schemaDocuments/schema.1.4.0.manifest.cdm.json

599 строки
24 KiB
JSON

{
"$id": "http://microsoft.com/cdm/schema.manifest.cdm.json",
"$schema": "http://json-schema.org/draft-06/schema#",
"$version": "1.4.0",
"type": "object",
"definitions": {
"import": {
"type": "object",
"description": "Used to bring referenced entity definitions into scope of this document.",
"properties": {
"corpusPath": {
"type": "string",
"description": "The relative or absolute (from the root of the corpus folder hierarchy) location of a document file and object."
},
"moniker": {
"type": "string",
"description": "A prefix that can be added to disambiguate different imported objects that may share a name. References to object defined in this imported document (or in the documents it further imports) must start with the moniker name such as myMoniker/MyEntity."
}
},
"additionalProperties": false,
"required": [
"corpusPath"
]
},
"traitOrTraitGroupClassReference": {
"oneOf": [
{
"$ref": "#/definitions/traitClassReference"
},
{
"$ref": "#/definitions/traitGroupClassReference"
}
]
},
"constant": {
"oneOf": [
{
"type": "string"
},
{
"$ref": "#/definitions/entityClassReference"
}
]
},
"traitArgument": {
"type": "object",
"description": "",
"properties": {
"explanation": {
"type": "string",
"description": "Used to document the usage or meaning of the 'argument' within the context of this entity definition system."
},
"name": {
"type": "string"
},
"value": {
"$ref": "#/definitions/constant"
}
},
"additionalProperties": false,
"required": [
"value"
]
},
"traitReference": {
"oneOf": [
{
"type": "string"
}
]
},
"traitGroupReference": {
"oneOf": [
{
"type": "string"
}
]
},
"traitClassReference": {
"type": "object",
"description": "",
"properties": {
"traitReference": {
"$ref": "#/definitions/traitReference"
},
"arguments": {
"type": "array",
"items": {
"oneOf": [
{
"$ref": "#/definitions/traitArgument"
},
{
"$ref": "#/definitions/constant"
}
]
}
},
"optional": {
"type": "boolean"
}
},
"additionalProperties": false,
"required": [
"traitReference"
]
},
"traitGroupClassReference": {
"type": "object",
"description": "A reference to a Trait Group definition",
"properties": {
"traitGroupReference": {
"$ref": "#/definitions/traitGroupReference"
},
"optional": {
"type": "boolean"
}
},
"additionalProperties": false,
"required": [
"traitGroupReference"
]
},
"entityReference": {
"oneOf": [
{
"type": "string"
},
{
"$ref": "#/definitions/constantEntity"
}
]
},
"entityClassReference": {
"type": "object",
"description": "",
"properties": {
"entityReference": {
"$ref": "#/definitions/entityReference"
},
"appliedTraits": {
"type": "array",
"items": {
"oneOf": [
{
"$ref": "#/definitions/traitOrTraitGroupClassReference"
},
{
"type": "string"
}
]
}
},
"optional": {
"type": "boolean"
}
},
"additionalProperties": false,
"required": [
"entityReference"
]
},
"constantEntity": {
"type": "object",
"description": "Used to structure and describe a set of related constant values that may be used as trait arguments.",
"properties": {
"explanation": {
"type": "string",
"description": "Used to document the usage or meaning of the 'constant entity' within the context of this entity definition system."
},
"constantEntityName": {
"type": "string"
},
"entityShape": {
"oneOf": [
{
"type": "string"
}
]
},
"constantValues": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"additionalProperties": false,
"required": [
"entityShape",
"constantValues"
]
},
"dataPartitionDefinition": {
"type": "object",
"description": "",
"properties": {
"explanation": {
"type": "string",
"description": "Used to document the usage or meaning of the 'dataPartition' within the context of this entity definition system."
},
"name": {
"type": "string",
"description": "A name for the partition."
},
"description": {
"type": "string",
"description": ""
},
"location": {
"type": "string",
"description": "A corpus path to the file of data."
},
"inferred": {
"type": "boolean",
"description": "True if this partition was discovered by a pattern in this session."
},
"arguments": {
"type": "array",
"description": "A list of name value pairs that give details about the meaning of this partition. These can be set by partition patterns.",
"items": {
"dataPartitionArgument" : {
"type": "object",
"additionalProperties": {"type": "string"}
}
}
},
"specializedSchema": {
"type": "string",
"description": "The corpus path to a document/entity to use as the schema for just this partition of data. Different than the default schema for the entity."
},
"refreshTime": {
"type": "string",
"description": "The last time the data from this partition was read and consumed."
},
"LastFileStatusCheckTime": {
"type": "string",
"description": "The date and time at which the file modified date and time status of this object was checked."
},
"LastFileModifiedTime": {
"type": "string",
"description": "The date and time of the last modification for this object's associated file at the last time this status was checked."
},
"LastChildFileModifiedTime": {
"type": "string",
"description": "The most recent date and time reported by any of the children objects of this object when it was last checked."
},
"exhibitsTraits": {
"type": "array",
"description": "A list of the trait references are ascribed to this object to lend it semantic meaning or better describe it.",
"items": {
"oneOf": [
{
"$ref": "#/definitions/traitOrTraitGroupClassReference"
},
{
"type": "string"
}
]
}
}
},
"additionalProperties": false,
"required": [
"location"
]
},
"dataPartitionPatternDefinition": {
"type": "object",
"description": "",
"properties": {
"explanation": {
"type": "string",
"description": "Used to document the usage or meaning of the 'dataPartitionPattern' within the context of this entity definition system."
},
"name": {
"type": "string",
"description": "A name for the pattern."
},
"rootLocation": {
"type": "string",
"description": "The starting point for searching with this pattern."
},
"regularExpression": {
"type": "string",
"description": "A regular expression (with capture groups) that will be used to locate new partitions. This expression is relative to the rootLocation value."
},
"globPattern": {
"type": "string",
"description": "A glob pattern that will be used to locate new partitions. This pattern is relative to the rootLocation value."
},
"parameters": {
"type": "array",
"description": "A list of names that line up with the replacement captures in the regularExpression. These turn into arguments on resulting partitions.",
"items": {
"type": "string"
}
},
"specializedSchema": {
"type": "string",
"description": "The corpus path to a document/entity to use as the schema for just the partitions that are found with this pattern."
},
"LastFileStatusCheckTime": {
"type": "string",
"description": "The date and time at which the file modified date and time status of this object was checked."
},
"LastFileModifiedTime": {
"type": "string",
"description": "The date and time of the last modification for this object's associated file at the last time this status was checked."
},
"LastChildFileModifiedTime": {
"type": "string",
"description": "The most recent date and time reported by any of the children objects of this object when it was last checked."
},
"exhibitsTraits": {
"type": "array",
"description": "A list of the trait references are ascribed to this object to lend it semantic meaning or better describe it.",
"items": {
"oneOf": [
{
"$ref": "#/definitions/traitOrTraitGroupClassReference"
},
{
"type": "string"
}
]
}
}
},
"additionalProperties": false,
"required": ["rootLocation", "regularExpression"]
},
"entityDeclarationDefinition": {
"type": "object",
"description": "Details about the use of an entity schema and data files.",
"properties": {
"type": {
"enum": [
"LocalEntity",
"ReferencedEntity"
],
"description": "",
"default": "LocalEntity"
},
"explanation": {
"type": "string",
"description": "Used to document the usage or meaning of the 'entityDeclaration' within the context of this entity definition system."
},
"entityName": {
"type": "string",
"description": "A name for this use of the entity."
},
"entityPath": {
"type": "string",
"description": "A corpus path to the document/entity for the detailed schema descriptions of the entity."
},
"LastFileStatusCheckTime": {
"type": "string",
"description": "The date and time at which the file modified date and time status of this object was checked."
},
"LastFileModifiedTime": {
"type": "string",
"description": "The date and time of the last modification for this object's associated file at the last time this status was checked."
},
"LastChildFileModifiedTime": {
"type": "string",
"description": "The most recent date and time reported by any of the children objects of this object when it was last checked."
},
"dataPartitions": {
"type": "array",
"description": "A list of known data partitions for the entity.",
"items": {
"$ref": "#/definitions/dataPartitionDefinition"
}
},
"dataPartitionPatterns": {
"type": "array",
"description": "A list of data partition patterns that should be searched to discover new partitions.",
"items": {
"$ref": "#/definitions/dataPartitionPatternDefinition"
}
},
"exhibitsTraits": {
"type": "array",
"description": "A list of the trait references are ascribed to this object to lend it semantic meaning or better describe it.",
"items": {
"oneOf": [
{
"$ref": "#/definitions/traitOrTraitGroupClassReference"
},
{
"type": "string"
}
]
}
}
},
"additionalProperties": false,
"required": [
"type",
"entityName",
"entityPath"
]
},
"entityRelationshipDefinition": {
"type": "object",
"description": "",
"properties": {
"explanation": {
"type": "string",
"description": "Used to document the usage or meaning of the 'relationship' within the context of this entity definition system."
},
"name": {
"type": "string",
"description": "A name for this relationship."
},
"fromEntity": {
"type": "string",
"description": "The name of the entity making a referenced in the relationship."
},
"fromEntityAttribute": {
"type": "string",
"description": "The name of the attribute in the entity making a referenced in the relationship."
},
"toEntity": {
"type": "string",
"description": "The name of the entity being referenced by the relationship."
},
"toEntityAttribute": {
"type": "string",
"description": "The name of the attribute in the entity being referenced by the relationship."
},
"exhibitsTraits": {
"type": "array",
"description": "A list of the trait references are ascribed to this object to lend it semantic meaning or better describe it.",
"items": {
"oneOf": [
{
"$ref": "#/definitions/traitOrTraitGroupClassReference"
},
{
"type": "string"
}
]
}
}
},
"additionalProperties": false,
"required": [
"fromEntity",
"fromEntityAttribute",
"toEntity",
"toEntityAttribute"
]
},
"manifestDeclarationDefinition": {
"type": "object",
"description": "",
"properties": {
"explanation": {
"type": "string",
"description": "Used to document the usage or meaning of the 'subManifest' within the context of this entity definition system."
},
"manifestName": {
"type": "string",
"description": "A display name for the sub manifest."
},
"definition": {
"type": "string",
"description": "A corpus path to the manifest document."
},
"LastFileStatusCheckTime": {
"type": "string",
"description": "The date and time at which the file modified date and time status of this object was checked."
},
"LastFileModifiedTime": {
"type": "string",
"description": "The date and time of the last modification for this object's associated file at the last time this status was checked."
},
"LastChildFileModifiedTime": {
"type": "string",
"description": "The most recent date and time reported by any of the children objects of this object when it was last checked."
},
"exhibitsTraits": {
"type": "array",
"description": "A list of the trait references are ascribed to this object to lend it semantic meaning or better describe it.",
"items": {
"oneOf": [
{
"$ref": "#/definitions/traitOrTraitGroupClassReference"
},
{
"type": "string"
}
]
}
}
},
"additionalProperties": false,
"required": [
"manifestName",
"definition"
]
}
},
"properties": {
"$schema": {
"type": "string",
"examples": [
"../schema.cdm.json"
]
},
"jsonSchemaSemanticVersion": {
"type": "string",
"description": "The semantic version (major.minor.patch) number of the $schema document dictating the shape of the json document describing the entity shapes.",
"examples": [
"1.3.0"
]
},
"documentVersion": {
"type": "string",
"description": "The version of the document. Should be the same as the version of the file or the latest version if the file is not versioned.",
"examples": [
"0.0.1"
]
},
"imports": {
"type": "array",
"description": "A list of references to other CDM documents that are being imported in order to make use of their defintions.",
"items": {
"$ref": "#/definitions/import"
}
},
"manifestName": {
"type": "string",
"description": "A name for the manifest."
},
"explanation": {
"type": "string",
"description": "Used to document the usage or meaning of the 'manifest' within the context of this entity definition system."
},
"LastFileStatusCheckTime": {
"type": "string",
"description": "The date and time at which the file modified date and time status of this object was checked."
},
"LastFileModifiedTime": {
"type": "string",
"description": "The date and time of the last modification for this object's associated file at the last time this status was checked."
},
"LastChildFileModifiedTime": {
"type": "string",
"description": "The most recent date and time reported by any of the children objects of this object when it was last checked."
},
"exhibitsTraits": {
"type": "array",
"description": "A list of the trait references are ascribed to this object to lend it semantic meaning or better describe it.",
"items": {
"oneOf": [
{
"$ref": "#/definitions/traitOrTraitGroupClassReference"
},
{
"type": "string"
}
]
}
},
"entities": {
"type": "array",
"description": "A list of the entity declarations for the entities that are contained within the scope of this manifest.",
"items": {
"$ref": "#/definitions/entityDeclarationDefinition"
}
},
"subManifests": {
"type": "array",
"description": "A list of child manifests.",
"items": {
"$ref": "#/definitions/manifestDeclarationDefinition"
}
},
"relationships": {
"type": "array",
"description": "A list of the entity to entity key to key relationships for the entities in this manifest.",
"items": {
"$ref": "#/definitions/entityRelationshipDefinition"
}
}
},
"additionalProperties": false,
"required": [
"jsonSchemaSemanticVersion",
"manifestName"
]
}