Skip to content
ts_103120_TrafficPolicy.schema.json 5.06 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"
        },
        "TrafficPolicyName": {
          "$ref": "ts_103280_2017_07#/$defs/ShortString"
        },
        "TrafficRules": {
          "$ref": "#/$defs/ListOfTrafficRuleReferences"
        }
      },
      "required": [
        "@xsi:type",
        "ObjectIdentifier"
      ]
    },
    "ListOfTrafficRuleReferences": {
      "type": "object",
      "properties": {
        "TrafficRuleReference": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/TrafficRuleReference"
          },
          "minItems": 1
        }
      },
      "required": []
    },
    "TrafficRuleReference": {
      "type": "object",
      "properties": {
        "Order": {
          "type": "integer",
          "minimum": 1
        },
        "ObjectIdentifier": {
          "$ref": "ts_103120_Core_2019_10#/$defs/ObjectIdentifier"
        }
      },
      "required": [
        "Order",
        "ObjectIdentifier"
      ]
    },
    "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"
        },
        "Criteria": {
          "$ref": "#/$defs/ListOfTrafficCriteria"
        },
        "Action": {
          "$ref": "ts_103120_Common_2016_02#/$defs/DictionaryEntry"
        }
      },
      "required": [
        "@xsi:type",
        "ObjectIdentifier"
      ]
    },
    "ListOfTrafficCriteria": {
      "type": "object",
      "properties": {
        "Criteria": {
          "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": {
        "IPProtocol": {
          "type": "integer",
          "minimum": 0
        },
        "SourceIPRange": {
          "$ref": "ts_103280_2017_07#/$defs/IPCIDR"
        },
        "SourcePortRange": {
          "$ref": "ts_103280_2017_07#/$defs/PortRange"
        },
        "DestinationIPRange": {
          "$ref": "ts_103280_2017_07#/$defs/IPCIDR"
        },
        "DestinationPortRange": {
          "$ref": "ts_103280_2017_07#/$defs/PortRange"
        },
        "BothDirections": {
          "type": "boolean"
        }
      },
      "required": []
    },
    "MobileAccessPolicyCriteria": {
      "type": "object",
      "properties": {
        "APN": {
          "$ref": "ts_103280_2017_07#/$defs/ShortString"
        },
        "DNN": {
          "$ref": "ts_103280_2017_07#/$defs/ShortString"
        }
      },
      "required": []
    }
  }
}