All Downloads are FREE. Search and download functionalities are using the official Maven repository.

schema.json.metaschema-datatypes.json Maven / Gradle / Ivy

{
  "$schema" : "http://json-schema.org/draft-07/schema#",
  "$id" : "http://csrc.nist.gov/ns/oscal/1.0/metaschema-datatypes-schema.json",
  "$comment" : "OSCAL Unified Model of Models",
  "type" : "object",
  "definitions" : {
    "Base64Datatype": {
      "type": "string",
      "pattern": "^[0-9A-Fa-f]+$",
      "contentEncoding": "base64"
    },
    "BooleanDatatype": {
      "type": "boolean"
    },
    "DateDatatype": {
      "type": "string",
      "pattern": "^(((2000|2400|2800|(19|2[0-9](0[48]|[2468][048]|[13579][26])))-02-29)|(((19|2[0-9])[0-9]{2})-02-(0[1-9]|1[0-9]|2[0-8]))|(((19|2[0-9])[0-9]{2})-(0[13578]|10|12)-(0[1-9]|[12][0-9]|3[01]))|(((19|2[0-9])[0-9]{2})-(0[469]|11)-(0[1-9]|[12][0-9]|30)))(Z|[+-][0-9]{2}:[0-9]{2})?$"
    },
    "DateWithTimezoneDatatype": {
      "type": "string",
      "pattern": "^(((2000|2400|2800|(19|2[0-9](0[48]|[2468][048]|[13579][26])))-02-29)|(((19|2[0-9])[0-9]{2})-02-(0[1-9]|1[0-9]|2[0-8]))|(((19|2[0-9])[0-9]{2})-(0[13578]|10|12)-(0[1-9]|[12][0-9]|3[01]))|(((19|2[0-9])[0-9]{2})-(0[469]|11)-(0[1-9]|[12][0-9]|30)))(Z|[+-][0-9]{2}:[0-9]{2})$"
    },
    "DateTimeDatatype": {
      "type": "string",
      "pattern": "^(((2000|2400|2800|(19|2[0-9](0[48]|[2468][048]|[13579][26])))-02-29)|(((19|2[0-9])[0-9]{2})-02-(0[1-9]|1[0-9]|2[0-8]))|(((19|2[0-9])[0-9]{2})-(0[13578]|10|12)-(0[1-9]|[12][0-9]|3[01]))|(((19|2[0-9])[0-9]{2})-(0[469]|11)-(0[1-9]|[12][0-9]|30)))T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(\\.[0-9]+)?(Z|[+-][0-9]{2}:[0-9]{2})?$"
    },
    "DateTimeWithTimezoneDatatype": {
      "type": "string",
      "format": "date-time",
      "pattern": "^(((2000|2400|2800|(19|2[0-9](0[48]|[2468][048]|[13579][26])))-02-29)|(((19|2[0-9])[0-9]{2})-02-(0[1-9]|1[0-9]|2[0-8]))|(((19|2[0-9])[0-9]{2})-(0[13578]|10|12)-(0[1-9]|[12][0-9]|3[01]))|(((19|2[0-9])[0-9]{2})-(0[469]|11)-(0[1-9]|[12][0-9]|30)))T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(\\.[0-9]+)?(Z|[+-][0-9]{2}:[0-9]{2})$"
    },
    "DayTimeDurationDatatype": {
      "type": "string",
      "format": "duration",
      "pattern": "^[-+]?P([-+]?[0-9]+D)?(T([-+]?[0-9]+H)?([-+]?[0-9]+M)?([-+]?[0-9]+([.,][0-9]{0,9})?S)?)?$"
    },
    "DecimalDatatype": {
      "type": "number",
      "pattern": "^(\\+|-)?([0-9]+(\\.[0-9]*)?|\\.[0-9]+)$"
    },
    "EmailAddressDatatype": {
      "type": "string",
      "format": "email",
      "pattern": "^.+@.+$"
    },
    "HostnameDatatype": {
      "$ref": "#/definitions/StringDatatype",
      "format": "idn-hostname"
    },
    "IntegerDatatype": {
      "type": "integer"
    },
    "IPV4AddressDatatype": {
      "type": "string",
      "format": "ipv4",
      "pattern": "^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$"
    },
    "IPV6AddressDatatype": {
      "type": "string",
      "format": "ipv6",
      "pattern": "^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|[fF][eE]80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::([fF]{4}(:0{1,4}){0,1}:){0,1}((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9]).){3,3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9]).){3,3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9]))$"
    },
    "MarkupLineDatatype": {
      "type": "string",
      "pattern": "^[^\n]+$"
    },
    "MarkupMultilineDatatype": {
      "type": "string"
    },
    "NonNegativeIntegerDatatype": {
      "$ref": "#/definitions/IntegerDatatype",
      "minimum": 0
    },
    "PositiveIntegerDatatype": {
      "$ref": "#/definitions/IntegerDatatype",
      "minimum": 1
    },
    "StringDatatype": {
      "type": "string",
      "pattern": "^\\S(.*\\S)?$"
    },
    "TokenDatatype": {
      "type": "string",
      "pattern": "^(\\p{L}|_)(\\p{L}|\\p{N}|[.\\-_])*$"
    },
    "URIDatatype": {
      "type": "string",
      "format": "uri",
      "pattern": "^[a-zA-Z][a-zA-Z0-9+\\-.]+:.+$"
    },
    "URIReferenceDatatype": {
      "type": "string",
      "format": "uri-reference"
    },
    "UUIDDatatype": {
      "type": "string",
      "description": "A type 4 ('random' or 'pseudorandom') or type 5 UUID per RFC 4122.",
      "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[45][0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$"
    },
    "YearMonthDurationDatatype": {
      "type": "string",
      "format": "duration",
      "pattern": "^[-+]?P([-+]?[0-9]+Y)?([-+]?[0-9]+M)?([-+]?[0-9]+W)?([-+]?[0-9]+D)?$"
    }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy