influencemapping/whos_got_dirt-gem

View on GitHub
schemas/schema.json

Summary

Maintainability
Test Coverage
{
  "$schema": "http://json-schema.org/draft-03/schema#",
  "definitions": {
    "entity": {
      "$schema": "http://json-schema.org/draft-03/schema#",
      "type": "object",
      "properties": {
        "@type": {
          "type": "string",
          "enum": ["Entity"]
        },
        "type": {
          "description": "An entity type, e.g. organization",
          "type": [
            "string",
            "null"
          ]
        },
        "name": {
          "description": "A primary name, e.g. a legally recognized name",
          "type": [
            "string",
            "null"
          ]
        },
        "description": {
          "description": "A description of the entity",
          "type": [
            "string",
            "null"
          ]
        },
        "classification": {
          "description": "An entity category, e.g. committee",
          "type": [
            "string",
            "null"
          ]
        },
        "birth_date": {
          "description": "A date of birth",
          "type": [
            "string",
            "null"
          ],
          "pattern": "^[0-9]{4}(-[0-9]{2}){0,2}$"
        },
        "death_date": {
          "description": "A date of death",
          "type": [
            "string",
            "null"
          ],
          "pattern": "^[0-9]{4}(-[0-9]{2}){0,2}$"
        },
        "founding_date": {
          "description": "A date of founding",
          "type": [
            "string",
            "null"
          ],
          "pattern": "^[0-9]{4}(-[0-9]{2}){0,2}$"
        },
        "dissolution_date": {
          "description": "A date of dissolution",
          "type": [
            "string",
            "null"
          ],
          "pattern": "^[0-9]{4}(-[0-9]{2}){0,2}$"
        },
        "parent_id": {
          "description": "The ID of the organization that contains this organization",
          "type": [
            "string",
            "null"
          ]
        },
        "other_names": {
          "description": "Alternate or former names",
          "type": "array",
          "items": {
            "$ref": "#/definitions/other_name"
          }
        },
        "identifiers": {
          "description": "Issued identifiers",
          "type": "array",
          "items": {
            "$ref": "#/definitions/identifier"
          }
        },
        "contact_details": {
          "description": "Means of contacting the entity",
          "type": "array",
          "items": {
            "$ref": "#/definitions/contact_detail"
          }
        },
        "links": {
          "description": "URLs to documents about the entity",
          "type": "array",
          "items": {
            "$ref": "#/definitions/link"
          }
        },
        "sources": {
          "description": "URLs to documents from which the resource is derived",
          "type": "array",
          "items": {
            "$ref": "#/definitions/link"
          }
        },
        "created_at": {
          "description": "The time at which the resource was created",
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "updated_at": {
          "description": "The time at which the resource was last modified",
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        }
      }
    },
    "relation": {
      "$schema": "http://json-schema.org/draft-03/schema#",
      "type": "object",
      "properties": {
        "@type": {
          "type": "string",
          "enum": ["Relation"]
        },
        "subject": {
          "description": "The subject of the relation",
          "type": "array",
          "items": {
            "$ref": "#/definitions/entity"
          }
        },
        "object": {
          "description": "The object of the relation",
          "$ref": "#/definitions/entity"
        },
        "name": {
          "description": "The name of the relation",
          "type": [
            "string",
            "null"
          ]
        },
        "start_date": {
          "description": "The date on which the relationship began",
          "type": [
            "string",
            "null"
          ],
          "pattern": "^[0-9]{4}((-[0-9]{2}){0,2}|(-[0-9]{2}){2}(T[0-9]{2}(:[0-9]{2}(:[0-9]{2})?)?Z)?)$"
        },
        "end_date": {
          "description": "The date on which the relationship ended",
          "type": [
            "string",
            "null"
          ],
          "pattern": "^[0-9]{4}((-[0-9]{2}){0,2}|(-[0-9]{2}){2}(T[0-9]{2}(:[0-9]{2}(:[0-9]{2})?)?Z)?)$"
        },
        "identifiers": {
          "description": "Issued identifiers",
          "type": "array",
          "items": {
            "$ref": "#/definitions/identifier"
          }
        },
        "links": {
          "description": "URLs to documents about the list",
          "type": "array",
          "items": {
            "$ref": "#/definitions/link"
          }
        },
        "sources": {
          "description": "URLs to documents from which the resource is derived",
          "type": "array",
          "items": {
            "$ref": "#/definitions/link"
          }
        },
        "created_at": {
          "description": "The time at which the resource was created",
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "updated_at": {
          "description": "The time at which the resource was last modified",
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        }
      }
    },
    "list": {
      "$schema": "http://json-schema.org/draft-03/schema#",
      "type": "object",
      "properties": {
        "@type": {
          "type": "string",
          "enum": ["List"]
        },
        "name": {
          "description": "The name of the list",
          "type": [
            "string",
            "null"
          ]
        },
        "description": {
          "description": "A description of the list",
          "type": [
            "string",
            "null"
          ]
        },
        "number_of_items": {
          "description": "The number of items in the list",
          "type": [
            "integer",
            "null"
          ]
        },
        "item_list_order": {
          "description": "The type of ordering (e.g. ascending, descending, unordered)",
          "type": [
            "string",
            "null"
          ],
          "enum": [
            "ascending",
            "descending",
            "unordered"
          ]
        },
        "identifiers": {
          "description": "Issued identifiers",
          "type": "array",
          "items": {
            "$ref": "#/definitions/identifier"
          }
        },
        "links": {
          "description": "URLs to documents about the list",
          "type": "array",
          "items": {
            "$ref": "#/definitions/link"
          }
        },
        "sources": {
          "description": "URLs to documents from which the resource is derived",
          "type": "array",
          "items": {
            "$ref": "#/definitions/link"
          }
        },
        "created_at": {
          "description": "The time at which the resource was created",
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "updated_at": {
          "description": "The time at which the resource was last modified",
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        }
      }
    },
    "other_name": {
      "$schema": "http://json-schema.org/draft-03/schema#",
      "title": "Other name",
      "description": "An alternate or former name",
      "type": "object",
      "properties": {
        "name": {
          "description": "An alternate or former name",
          "type": "string"
        },
        "start_date": {
          "description": "The date on which the name was adopted",
          "type": [
            "string",
            "null"
          ],
          "pattern": "^[0-9]{4}(-[0-9]{2}){0,2}$"
        },
        "end_date": {
          "description": "The date on which the name was abandoned",
          "type": [
            "string",
            "null"
          ],
          "pattern": "^[0-9]{4}(-[0-9]{2}){0,2}$"
        },
        "note": {
          "description": "A note, e.g. 'Birth name'",
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "identifier": {
      "$schema": "http://json-schema.org/draft-03/schema#",
      "title": "Identifier",
      "description": "An issued identifier",
      "type": "object",
      "properties": {
        "identifier": {
          "description": "An issued identifier, e.g. a DUNS number",
          "type": "string",
          "required": true
        },
        "scheme": {
          "description": "An identifier scheme, e.g. DUNS",
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "contact_detail": {
      "$schema": "http://json-schema.org/draft-03/schema#",
      "title": "Contact detail",
      "description": "A means of contacting an entity",
      "type": "object",
      "properties": {
        "type": {
          "description": "A type of medium, e.g. 'fax' or 'email'",
          "type": "string",
          "required": true
        },
        "value": {
          "description": "A value, e.g. a phone number or email address",
          "type": "string",
          "required": true
        }
      }
    },
    "link": {
      "$schema": "http://json-schema.org/draft-03/schema#",
      "title": "Link",
      "description": "A URL",
      "type": "object",
      "properties": {
        "url": {
          "description": "A URL",
          "type": "string",
          "format": "uri",
          "required": true
        },
        "note": {
          "description": "A note, e.g. 'Wikipedia page'",
          "type": [
            "string",
            "null"
          ]
        }
      }
    }
  }
}