Skip to content
TS_103_280.schema.json 8.74 KiB
Newer Older
canterburym's avatar
canterburym committed
{
  "$id": "ts_103280_2017_07",
  "$defs": {
    "ShortString": {
      "type": "string",
      "maxLength": 255
    },
    "LongString": {
      "type": "string",
      "maxLength": 65535
    },
    "LIID": {
      "type": "string",
      "pattern": "^([!-~]{1,25})|([0-9a-f]{26,50})$"
    },
    "UTCDateTime": {
      "type": "string",
      "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$"
    },
    "UTCMicrosecondDateTime": {
      "type": "string",
      "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}\\.[0-9]{6}Z$"
    },
    "QualifiedDateTime": {
      "type": "string",
      "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(Z|[+-][0-9]{2}:[0-9]{2})$"
    },
    "QualifiedMicrosecondDateTime": {
      "type": "string",
      "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}\\.[0-9]{6}(Z|[+-][0-9]{2}:[0-9]{2})$"
    },
    "InternationalE164": {
      "type": "string",
      "pattern": "^[0-9]{1,15}$"
    },
    "IMSI": {
      "type": "string",
      "pattern": "^[0-9]{6,15}$"
    },
    "IMEI": {
      "type": "string",
      "pattern": "^[0-9]{14}$"
    },
    "IMEICheckDigit": {
      "type": "string",
      "pattern": "^[0-9]{15}$"
    },
    "IMEISV": {
      "type": "string",
      "pattern": "^[0-9]{16}$"
    },
    "IPv4Address": {
      "type": "string",
      "pattern": "^((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])$"
    },
    "IPv4CIDR": {
      "type": "string",
      "pattern": "^((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])/([1-2]?[0-9]|3[0-2])$"
    },
    "IPv6Address": {
      "type": "string",
      "pattern": "^([0-9a-f]{4}:){7}([0-9a-f]{4})$"
    },
    "IPv6CIDR": {
      "type": "string",
      "pattern": "^([0-9a-f]{4}:){7}([0-9a-f]{4})/(([1-9][0-9]?)|(1[0-1][0-9])|(12[0-8]))$"
    },
    "TCPPort": {
      "type": "integer",
      "exclusiveMinimum": 1,
      "maximum": 65535
    },
    "UDPPort": {
      "type": "integer",
      "minimum": 0,
      "maximum": 65535
    },
    "MACAddress": {
      "type": "string",
      "pattern": "^([a-f0-9]{2}:){5}[a-f0-9]{2}$"
    },
    "EmailAddress": {
      "allOf": [
        {
          "$ref": "#/$defs/ShortString"
        },
        {
          "type": "string",
          "pattern": "^[a-zA-Z0-9\\.!#$%&'\\*\\+\\\\/=\\?\\^_`\\{\\|\\}~\\-]+@[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$"
        }
      ]
    },
    "UUID": {
      "type": "string",
      "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"
    },
    "ISOCountryCode": {
      "type": "string",
      "pattern": "^[A-Z]{2}$"
    },
    "SIPURI": {
      "type": "string",
      "pattern": "^sips?:[a-zA-Z0-9!#$&-;=?-\\[\\]_~%]+$"
    },
    "TELURI": {
      "type": "string",
      "pattern": "^tel:[a-zA-Z0-9!#$&-;=?-\\[\\]_~%]+$"
    },
    "WGS84LatitudeDecimal": {
      "type": "string",
      "pattern": "^[NS][0-9]{2}\\.[0-9]{6}$"
    },
    "WGS84LongitudeDecimal": {
      "type": "string",
      "pattern": "^[EW][0-9]{3}\\.[0-9]{6}$"
    },
    "WGS84LatitudeAngular": {
      "type": "string",
      "pattern": "^[NS][0-9]{6}\\.[0-9]{2}$"
    },
    "WGS84LongitudeAngular": {
      "type": "string",
      "pattern": "^[EW][0-9]{7}\\.[0-9]{2}$"
    },
    "SUPIIMSI": {
      "$ref": "#/$defs/IMSI"
    },
    "SUPINAI": {
      "$ref": "#/$defs/NAI"
    },
    "SUCI": {
      "type": "string",
      "pattern": "^([a-fA-F0-9]{2})*$"
    },
    "PEIIMEI": {
      "$ref": "#/$defs/IMEI"
    },
    "PEIIMEICheckDigit": {
      "$ref": "#/$defs/IMEICheckDigit"
    },
    "PEIIMEISV": {
      "$ref": "#/$defs/IMEISV"
    },
    "GPSIMSISDN": {
      "type": "string",
      "pattern": "^[0-9]{1,15}$"
    },
    "GPSINAI": {
      "$ref": "#/$defs/NAI"
    },
    "NAI": {
      "type": "string"
    },
    "LDID": {
      "type": "string",
      "pattern": "^([A-Z]{2}-.+-.+)$"
    },
    "InternationalizedEmailAddress": {
      "allOf": [
        {
          "$ref": "#/$defs/ShortString"
        },
        {
          "type": "string",
          "pattern": "^.+@.+$"
        }
      ]
    },
    "EUI64": {
      "type": "string",
      "pattern": "^([a-f0-9]{2}:){7}[a-f0-9]{2}$"
    },
    "CGI": {
      "type": "string",
      "pattern": "^[0-9]{3}-[0-9]{2,3}-[a-f0-9]{4}-[a-f0-9]{4}$"
    },
    "ECGI": {
      "type": "string",
      "pattern": "^[0-9]{3}-[0-9]{2,3}-[a-f0-9]{7}$"
    },
    "NCGI": {
      "type": "string",
      "pattern": "^[0-9]{3}-[0-9]{2,3}-[a-f0-9]{9}$"
    },
    "ICCID": {
      "type": "string",
      "pattern": "^[0-9]{19,20}$"
    },
    "IPProtocol": {
      "type": "integer",
      "minimum": 0,
      "maximum": 255
    },
    "IPAddress": {
      "oneOf": [
        {
          "type": "object",
          "properties": {
canterburym's avatar
canterburym committed
            "etsi280:IPv4Address": {
canterburym's avatar
canterburym committed
              "$ref": "#/$defs/IPv4Address"
            }
          },
          "required": [
canterburym's avatar
canterburym committed
            "etsi280:IPv4Address"
canterburym's avatar
canterburym committed
        {
          "type": "object",
          "properties": {
canterburym's avatar
canterburym committed
            "etsi280:IPv6Address": {
canterburym's avatar
canterburym committed
              "$ref": "#/$defs/IPv6Address"
            }
          },
          "required": [
canterburym's avatar
canterburym committed
            "etsi280:IPv6Address"
canterburym's avatar
canterburym committed
        }
      ]
    },
    "IPCIDR": {
      "oneOf": [
        {
          "type": "object",
          "properties": {
canterburym's avatar
canterburym committed
            "etsi280:IPv4CIDR": {
canterburym's avatar
canterburym committed
              "$ref": "#/$defs/IPv4CIDR"
canterburym's avatar
canterburym committed
          },
          "required": [
canterburym's avatar
canterburym committed
            "etsi280:IPv4CIDR"
canterburym's avatar
canterburym committed
        {
          "type": "object",
          "properties": {
canterburym's avatar
canterburym committed
            "etsi280:IPv6CIDR": {
canterburym's avatar
canterburym committed
              "$ref": "#/$defs/IPv6CIDR"
canterburym's avatar
canterburym committed
          },
          "required": [
canterburym's avatar
canterburym committed
            "etsi280:IPv6CIDR"
canterburym's avatar
canterburym committed
        }
      ]
    },
    "TCPPortRange": {
      "type": "object",
      "properties": {
canterburym's avatar
canterburym committed
        "etsi280:start": {
canterburym's avatar
canterburym committed
          "$ref": "#/$defs/TCPPort"
        },
canterburym's avatar
canterburym committed
        "etsi280:end": {
canterburym's avatar
canterburym committed
          "$ref": "#/$defs/TCPPort"
        }
      },
      "required": [
canterburym's avatar
canterburym committed
        "etsi280:start",
        "etsi280:end"
canterburym's avatar
canterburym committed
      ]
    },
    "UDPPortRange": {
      "type": "object",
      "properties": {
canterburym's avatar
canterburym committed
        "etsi280:start": {
canterburym's avatar
canterburym committed
          "$ref": "#/$defs/UDPPort"
        },
canterburym's avatar
canterburym committed
        "etsi280:end": {
canterburym's avatar
canterburym committed
          "$ref": "#/$defs/UDPPort"
        }
      },
      "required": [
canterburym's avatar
canterburym committed
        "etsi280:start",
        "etsi280:end"
canterburym's avatar
canterburym committed
      ]
    },
    "Port": {
      "oneOf": [
        {
          "type": "object",
          "properties": {
canterburym's avatar
canterburym committed
            "etsi280:TCPPort": {
canterburym's avatar
canterburym committed
              "$ref": "#/$defs/TCPPort"
            }
          },
          "required": [
canterburym's avatar
canterburym committed
            "etsi280:TCPPort"
canterburym's avatar
canterburym committed
        {
          "type": "object",
          "properties": {
canterburym's avatar
canterburym committed
            "etsi280:UDPPort": {
canterburym's avatar
canterburym committed
              "$ref": "#/$defs/UDPPort"
            }
          },
          "required": [
canterburym's avatar
canterburym committed
            "etsi280:UDPPort"
canterburym's avatar
canterburym committed
        }
      ]
    },
    "PortRange": {
      "oneOf": [
        {
          "type": "object",
          "properties": {
canterburym's avatar
canterburym committed
            "etsi280:TCPPortRange": {
canterburym's avatar
canterburym committed
              "$ref": "#/$defs/TCPPortRange"
            }
          },
          "required": [
canterburym's avatar
canterburym committed
            "etsi280:TCPPortRange"
canterburym's avatar
canterburym committed
        {
          "type": "object",
          "properties": {
canterburym's avatar
canterburym committed
            "etsi280:UDPPortRange": {
canterburym's avatar
canterburym committed
              "$ref": "#/$defs/UDPPortRange"
            }
          },
          "required": [
canterburym's avatar
canterburym committed
            "etsi280:UDPPortRange"
canterburym's avatar
canterburym committed
      ]
    },
    "IPAddressPort": {
      "type": "object",
      "properties": {
canterburym's avatar
canterburym committed
        "etsi280:address": {
canterburym's avatar
canterburym committed
          "$ref": "#/$defs/IPAddress"
        },
canterburym's avatar
canterburym committed
        "etsi280:port": {
canterburym's avatar
canterburym committed
          "$ref": "#/$defs/Port"
        }
      },
      "required": [
canterburym's avatar
canterburym committed
        "etsi280:address",
        "etsi280:port"
canterburym's avatar
canterburym committed
      ]
    },
    "IPAddressPortRange": {
      "type": "object",
      "properties": {
canterburym's avatar
canterburym committed
        "etsi280:address": {
canterburym's avatar
canterburym committed
          "$ref": "#/$defs/IPAddress"
        },
canterburym's avatar
canterburym committed
        "etsi280:portRange": {
canterburym's avatar
canterburym committed
          "$ref": "#/$defs/PortRange"
        }
      },
      "required": [
canterburym's avatar
canterburym committed
        "etsi280:address",
        "etsi280:portRange"
canterburym's avatar
canterburym committed
      ]
    },
    "WGS84CoordinateDecimal": {
      "type": "object",
      "properties": {
canterburym's avatar
canterburym committed
        "etsi280:latitude": {
canterburym's avatar
canterburym committed
          "$ref": "#/$defs/WGS84LatitudeDecimal"
        },
canterburym's avatar
canterburym committed
        "etsi280:longitude": {
canterburym's avatar
canterburym committed
          "$ref": "#/$defs/WGS84LongitudeDecimal"
        }
      },
      "required": [
canterburym's avatar
canterburym committed
        "etsi280:latitude",
        "etsi280:longitude"
canterburym's avatar
canterburym committed
      ]
    },
    "WGS84CoordinateAngular": {
      "type": "object",
      "properties": {
canterburym's avatar
canterburym committed
        "etsi280:latitude": {
canterburym's avatar
canterburym committed
          "$ref": "#/$defs/WGS84LatitudeAngular"
        },
canterburym's avatar
canterburym committed
        "etsi280:longitude": {
canterburym's avatar
canterburym committed
          "$ref": "#/$defs/WGS84LongitudeAngular"
        }
      },
      "required": [
canterburym's avatar
canterburym committed
        "etsi280:latitude",
        "etsi280:longitude"
canterburym's avatar
canterburym committed
      ]
    }
  }