Commit ffe0325a authored by Mark Canterbury's avatar Mark Canterbury
Browse files

Merge branch 'meeting/LI66' of forge.etsi.org:li/schemas-definitions into meeting/LI66

parents 9f981102 faf508aa
Loading
Loading
Loading
Loading
+103 −0
Original line number Original line Diff line number Diff line
{
  "@xmlns": "http://uri.etsi.org/03120/common/2019/10/Core",
  "@xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
  "@xmlns:common": "http://uri.etsi.org/03120/common/2016/02/Common",
  "@xmlns:task": "http://uri.etsi.org/03120/common/2020/09/Task",
  "@xmlns:auth": "http://uri.etsi.org/03120/common/2020/09/Authorisation",
  "Header": {
    "SenderIdentifier": {
      "CountryCode": "XX",
      "UniqueIdentifier": "ACTOR01"
    },
    "ReceiverIdentifier": {
      "CountryCode": "XX",
      "UniqueIdentifier": "ACTOR02"
    },
    "TransactionIdentifier": "c02358b2-76cf-4ba4-a8eb-f6436ccaea2e",
    "Timestamp": "2019-09-30T13:37:00.000000Z",
    "Version": {
      "ETSIVersion": "V1.13.1",
      "NationalProfileOwner": "XX",
      "NationalProfileVersion": "v1.0"
    }
  },
  "Payload": {
    "RequestPayload": {
      "ActionRequests": {
        "ActionRequest": [
          {
            "ActionIdentifier": 0,
            "CREATE": {
              "HI1Object": {
                "@xsi:type": "{http://uri.etsi.org/03120/common/2020/09/Authorisation}AuthorisationObject",
                "ObjectIdentifier": "7dbbc880-8750-4d3c-abe7-ea4a17646045",
                "CountryCode": "XX",
                "OwnerIdentifier": "ACTOR01",
                "auth:AuthorisationReference": "W000001",
                "auth:AuthorisationTimespan": {
                  "auth:StartTime": "2019-09-30T12:00:00Z",
                  "auth:EndTime": "2019-12-01T12:00:00Z"
                }
              }
            }
          },
          {
            "ActionIdentifier": 1,
            "CREATE": {
              "HI1Object": {
                "@xsi:type": "{http://uri.etsi.org/03120/common/2020/09/Task}LDTaskObject",
                "ObjectIdentifier": "2b36a78b-b628-416d-bd22-404e68a0cd36",
                "CountryCode": "XX",
                "OwnerIdentifier": "ACTOR01",
                "AssociatedObjects": {
                  "AssociatedObject": [
                    "7dbbc880-8750-4d3c-abe7-ea4a17646045"
                  ]
                },
                "task:Reference": "XX-ACTOR01-1234",
                "task:RequestDetails": {
                  "task:Type": {
                    "common:Owner": "ETSI",
                    "common:Name": "RequestType",
                    "common:Value": "SubscriberData"
                  },
                  "task:StartTime": "2019-09-30T12:00:00Z",
                  "task:EndTime": "2019-12-30T12:00:00Z",
                  "task:RequestValues": {
                    "task:RequestValue": [
                      {
                        "task:FormatType": {
                          "task:FormatOwner": "ETSI",
                          "task:FormatName": "ServiceAccessIdentifier"
                        },
                        "task:Value": "123456789"
                      }
                    ]
                  },
                  "task:TargetIdentifierSubtype": {
                    "common:Owner": "ACTOR02",
                    "common:Name": "TargetIdentifierSubtype",
                    "common:Value": "AccountTypeB"
                  }
                },
                "task:DeliveryDetails": {
                  "task:LDDeliveryDestination": [
                    {
                      "task:DeliveryAddress": {
                        "task:IPv4Address": "192.0.2.0"
                      }
                    }
                  ]
                },
                "task:CSPID": {
                  "CountryCode": "XX",
                  "UniqueIdentifier": "ACTOR02"
                }
              }
            }
          }
        ]
      }
    }
  }
}
+36 −0
Original line number Original line Diff line number Diff line
{
  "@xmlns": "http://uri.etsi.org/03120/common/2019/10/Core",
  "@xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
  "@xmlns:common": "http://uri.etsi.org/03120/common/2016/02/Common",
  "@xmlns:task": "http://uri.etsi.org/03120/common/2020/09/Task",
  "@xmlns:auth": "http://uri.etsi.org/03120/common/2020/09/Authorisation",
  "Header": {
    "SenderIdentifier": {
      "CountryCode": "XX",
      "UniqueIdentifier": "ACTOR01"
    },
    "ReceiverIdentifier": {
      "CountryCode": "XX",
      "UniqueIdentifier": "ACTOR02"
    },
    "TransactionIdentifier": "eb6b002d-15c3-4c3b-af6c-27ede73641e5",
    "Timestamp": "2024-06-10T08:50:31.000000Z",
    "Version": {
      "ETSIVersion": "V1.16.1",
      "NationalProfileOwner": "XX",
      "NationalProfileVersion": "v1.0"
    }
  },
  "Payload": {
    "RequestPayload": {
      "ActionRequests": {
        "ActionRequest": [
          {
            "ActionIdentifier": 0,
            "GETCSPCONFIG": {}
          }
        ]
      }
    }
  }
}
+126 −0
Original line number Original line Diff line number Diff line
{
  "@xmlns": "http://uri.etsi.org/03120/common/2019/10/Core",
  "@xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
  "@xmlns:common": "http://uri.etsi.org/03120/common/2016/02/Common",
  "@xmlns:task": "http://uri.etsi.org/03120/common/2020/09/Task",
  "@xmlns:config": "http://uri.etsi.org/03120/common/2024/06/Config",
  "@xmlns:dictionaries": "http://uri.etsi.org/03280/common/2019/10/Dictionaries",
  "Header": {
    "SenderIdentifier": {
      "CountryCode": "XX",
      "UniqueIdentifier": "ACTOR01"
    },
    "ReceiverIdentifier": {
      "CountryCode": "XX",
      "UniqueIdentifier": "ACTOR02"
    },
    "TransactionIdentifier": "eb6b002d-15c3-4c3b-af6c-27ede73641e5",
    "Timestamp": "2024-06-10T08:50:31.000000Z",
    "Version": {
      "ETSIVersion": "V1.16.1",
      "NationalProfileOwner": "XX",
      "NationalProfileVersion": "v1.0"
    }
  },
  "Payload": {
    "ResponsePayload": {
      "ActionResponses": {
        "ActionResponse": [
          {
            "ActionIdentifier": 0,
            "GETCSPCONFIGResponse": {
              "LastChanged": "2024-05-10T08:52:32Z",
              "Dictionaries": {
                "dictionaries:Dictionary": [
                  {
                    "dictionaries:Owner": "ACTOR2",
                    "dictionaries:Name": "LIServiceTypes",
                    "dictionaries:DictionaryEntries": {
                      "dictionaries:DictionaryEntry": [
                        {
                          "dictionaries:Value": "ServiceA",
                          "dictionaries:Meaning": "This is a dictionary entry"
                        },
                        {
                          "dictionaries:Value": "ServiceB",
                          "dictionaries:Meaning": "This is a dictionary entry"
                        }
                      ]
                    }
                  }
                ]
              },
              "TargetFormatTypeDefinitions": {
                "config:FormatOwner": "ACTOR02",
                "config:TargetFormatTypeDefinitionEntries": {
                  "config:TargetFormatTypeDefinitionEntry": [
                    {
                      "config:FormatName": "ProprietaryIdentifier",
                      "config:Description": "This is an illustration of a proprietary identifier type specific to this CSP, which consists of the string \"CSP\" followed by 10 digits",
                      "config:FormatRegex": "^CSP[0-9]{10}$"
                    }
                  ]
                }
              },
              "TargetingConfigurations": {
                "config:TargetingConfiguration": [
                  {
                    "config:FormatName": "InternationalE164",
                    "config:FormatOwner": "ETSI",
                    "config:Guidance": "This configuration entry tells the LEA that they can use the ETSI standard format E164 number for LI of service A",
                    "config:AssociatedLIServiceTypes": {
                      "common:DictionaryEntry": [
                        {
                          "common:Owner": "ACTOR02",
                          "common:Name": "LIServiceTypes",
                          "common:Value": "ServiceA"
                        }
                      ]
                    },
                    "config:AssociatedLDRequestSubtypes": {},
                    "config:AssociatedLPRequestSubtypes": {}
                  },
                  {
                    "config:FormatName": "PropietaryIdentifier",
                    "config:FormatOwner": "ACTOR02",
                    "config:Guidance": "This configuration entry tells the LEA that they can use the propietary identifier format type described in the TargetFormatTypeDefinitions for LI of both Service A and Service B",
                    "config:AssociatedLIServiceTypes": {
                      "common:DictionaryEntry": [
                        {
                          "common:Owner": "ACTOR02",
                          "common:Name": "LIServiceTypes",
                          "common:Value": "ServiceA"
                        },
                        {
                          "common:Owner": "ACTOR02",
                          "common:Name": "LIServiceTypes",
                          "common:Value": "ServiceB"
                        }
                      ]
                    },
                    "config:AssociatedLDRequestSubtypes": {},
                    "config:AssociatedLPRequestSubtypes": {}
                  }
                ]
              },
              "SupportedLIWorkflowEndpoints": {
                "config:SupportedLIWorkflowEndpoint": [
                  {
                    "config:LIWorkflowEndpoint": {
                      "common:Owner": "ETSI",
                      "common:Name": "LIWorkflowEndpoint",
                      "common:Value": "NewAuthorisation"
                    },
                    "config:Guidance": "This tells the LEA what endpoint to use for new warrants. For brevity, in this example, this is the only endpoint specified.",
                    "config:URL": "https://ts103120.example.com/li/authorisation/new"
                  }
                ]
              },
              "SupportedLPWorkflowEndpoints": {}
            }
          }
        ]
      }
    }
  }
}
+23 −1
Original line number Original line Diff line number Diff line
@@ -66,7 +66,12 @@ coerce_to_list = [
    'task:LDTaskFlag',
    'task:LDTaskFlag',
    'task:TrafficPolicyReference',
    'task:TrafficPolicyReference',
    'tp:TrafficRuleReference',
    'tp:TrafficRuleReference',
    'tp:Criteria'
    'tp:Criteria',
    'common:DictionaryEntry',
    'dictionaries:Dictionary',
    'config:TargetFormatTypeDefinitionEntry',
    'config:SupportedLIWorkflowEndpoint',
    'config:SupportedLPWorkflowEndpoint',
]
]


coerce_to_int = [
coerce_to_int = [
@@ -81,6 +86,18 @@ coerce_to_bool = [
    'delivery:LastSequence'
    'delivery:LastSequence'
]
]


coerce_to_empty = [
    'GETCSPCONFIG'
]

coerce_null_to_empty = [
    'SupportedLIWorkflowEndpoints',
    'SupportedLPWorkflowEndpoints',
    'config:AssociatedLDRequestSubtypes',
    'config:AssociatedLPRequestSubtypes',
    'config:AssociatedLIRequestSubtypes',
]

def postprocessor (path, key, value):
def postprocessor (path, key, value):
    if key == "@xsi:type":
    if key == "@xsi:type":
        object_name = value.split(":")[-1]
        object_name = value.split(":")[-1]
@@ -91,6 +108,11 @@ def postprocessor (path, key, value):
        return key, int(value)
        return key, int(value)
    if key in coerce_to_bool:
    if key in coerce_to_bool:
        return key, bool(value)
        return key, bool(value)
    if key in coerce_to_empty:
        return key, {}
    if key in coerce_null_to_empty:
        if value is None:
            return key, {}
    return key, value
    return key, value


if __name__ == "__main__":
if __name__ == "__main__":