Skip to content
ts_103120_TrafficPolicy.schema.json 5.11 KiB
Newer Older
canterburym's avatar
canterburym committed
{
  "$id": "ts_103120_TrafficPolicy_2022_07",
  "$defs": {
    "TrafficPolicyObject": {
      "type": "object",
      "properties": {
        "@xsi:type": {
          "type": "string",
          "enum": "{http://uri.etsi.org/03120/common/2022/07/TrafficPolicy}TrafficPolicyObject"
        },
        "ObjectIdentifier": {
          "$ref": "ts_103120_Core_2019_10#/$defs/ObjectIdentifier"
        },
        "CountryCode": {
          "$ref": "ts_103280_2017_07#/$defs/ISOCountryCode"
        },
        "OwnerIdentifier": {
          "$ref": "ts_103280_2017_07#/$defs/ShortString"
        },
        "Generation": {
          "type": "integer",
          "minimum": 0
        },
        "ExternalIdentifier": {
          "$ref": "ts_103280_2017_07#/$defs/LongString"
        },
        "AssociatedObjects": {
          "$ref": "ts_103120_Core_2019_10#/$defs/AssociatedObjects"
        },
        "LastChanged": {
          "$ref": "ts_103280_2017_07#/$defs/QualifiedDateTime"
        },
        "NationalHandlingParameters": {
          "$ref": "ts_103120_Core_2019_10#/$defs/NationalHandlingParameters"
        },
        "tp:TrafficPolicyName": {
canterburym's avatar
canterburym committed
          "$ref": "ts_103280_2017_07#/$defs/ShortString"
        },
        "tp:TrafficRules": {
canterburym's avatar
canterburym committed
          "$ref": "#/$defs/ListOfTrafficRuleReferences"
        }
      },
      "required": [
        "@xsi:type",
        "ObjectIdentifier"
      ]
    },
    "ListOfTrafficRuleReferences": {
      "type": "object",
      "properties": {
        "tp:TrafficRuleReference": {
canterburym's avatar
canterburym committed
          "type": "array",
          "items": {
            "$ref": "#/$defs/TrafficRuleReference"
          },
          "minItems": 1
        }
      },
      "required": []
    },
    "TrafficRuleReference": {
      "type": "object",
      "properties": {
        "tp:Order": {
canterburym's avatar
canterburym committed
          "type": "integer",
          "minimum": 1
        },
        "tp:ObjectIdentifier": {
canterburym's avatar
canterburym committed
          "$ref": "ts_103120_Core_2019_10#/$defs/ObjectIdentifier"
        }
      },
      "required": [
        "tp:Order",
        "tp:ObjectIdentifier"
canterburym's avatar
canterburym committed
      ]
    },
    "TrafficRuleObject": {
      "type": "object",
      "properties": {
        "@xsi:type": {
          "type": "string",
          "enum": "{http://uri.etsi.org/03120/common/2022/07/TrafficPolicy}TrafficRuleObject"
        },
        "ObjectIdentifier": {
          "$ref": "ts_103120_Core_2019_10#/$defs/ObjectIdentifier"
        },
        "CountryCode": {
          "$ref": "ts_103280_2017_07#/$defs/ISOCountryCode"
        },
        "OwnerIdentifier": {
          "$ref": "ts_103280_2017_07#/$defs/ShortString"
        },
        "Generation": {
          "type": "integer",
          "minimum": 0
        },
        "ExternalIdentifier": {
          "$ref": "ts_103280_2017_07#/$defs/LongString"
        },
        "AssociatedObjects": {
          "$ref": "ts_103120_Core_2019_10#/$defs/AssociatedObjects"
        },
        "LastChanged": {
          "$ref": "ts_103280_2017_07#/$defs/QualifiedDateTime"
        },
        "NationalHandlingParameters": {
          "$ref": "ts_103120_Core_2019_10#/$defs/NationalHandlingParameters"
        },
        "tp:Criteria": {
canterburym's avatar
canterburym committed
          "$ref": "#/$defs/ListOfTrafficCriteria"
        },
        "tp:Action": {
canterburym's avatar
canterburym committed
          "$ref": "ts_103120_Common_2016_02#/$defs/DictionaryEntry"
        }
      },
      "required": [
        "@xsi:type",
        "ObjectIdentifier"
      ]
    },
    "ListOfTrafficCriteria": {
      "type": "object",
      "properties": {
        "tp:Criteria": {
canterburym's avatar
canterburym committed
          "type": "array",
          "items": {
            "$ref": "#/$defs/TrafficCriteria"
          },
          "minItems": 1
        }
      },
      "required": []
    },
    "TrafficCriteria": {
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "IPPolicyCriteria": {
              "$ref": "#/$defs/IPPolicyCriteria"
            }
          },
          "required": [
            "IPPolicyCriteria"
          ]
        },
        {
          "type": "object",
          "properties": {
            "MobileAccessPolicyCriteria": {
              "$ref": "#/$defs/MobileAccessPolicyCriteria"
            }
          },
          "required": [
            "MobileAccessPolicyCriteria"
          ]
        }
      ]
    },
    "IPPolicyCriteria": {
      "type": "object",
      "properties": {
        "tp:IPProtocol": {
canterburym's avatar
canterburym committed
          "type": "integer",
          "minimum": 0
        },
        "tp:SourceIPRange": {
canterburym's avatar
canterburym committed
          "$ref": "ts_103280_2017_07#/$defs/IPCIDR"
        },
        "tp:SourcePortRange": {
canterburym's avatar
canterburym committed
          "$ref": "ts_103280_2017_07#/$defs/PortRange"
        },
        "tp:DestinationIPRange": {
canterburym's avatar
canterburym committed
          "$ref": "ts_103280_2017_07#/$defs/IPCIDR"
        },
        "tp:DestinationPortRange": {
canterburym's avatar
canterburym committed
          "$ref": "ts_103280_2017_07#/$defs/PortRange"
        },
        "tp:BothDirections": {
canterburym's avatar
canterburym committed
          "type": "boolean"
        }
      },
      "required": []
    },
    "MobileAccessPolicyCriteria": {
      "type": "object",
      "properties": {
        "tp:APN": {
canterburym's avatar
canterburym committed
          "$ref": "ts_103280_2017_07#/$defs/ShortString"
        },
        "tp:DNN": {
canterburym's avatar
canterburym committed
          "$ref": "ts_103280_2017_07#/$defs/ShortString"
        }
      },
      "required": []
    }
  }
}