Skip to content
Commits on Source (17)
{
"@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": "da735c3f-3ab9-4e9e-810e-daf84d973505",
"Timestamp": "2025-05-14T15:21:00.000000Z",
"Version": {
"ETSIVersion": "V1.18.1",
"NationalProfileOwner": "XX",
"NationalProfileVersion": "v1.0"
}
},
"Payload": {
"RequestPayload": {
"ActionRequests": {
"ActionRequest": [
{
"ActionIdentifier": 0,
"GETCSPCONFIG": {}
}
]
}
}
}
}
\ No newline at end of file
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
"Dictionaries": { "Dictionaries": {
"dictionaries:Dictionary": [ "dictionaries:Dictionary": [
{ {
"dictionaries:Owner": "ACTOR2", "dictionaries:Owner": "ACTOR02",
"dictionaries:Name": "LIServiceTypes", "dictionaries:Name": "LIServiceTypes",
"dictionaries:DictionaryEntries": { "dictionaries:DictionaryEntries": {
"dictionaries:DictionaryEntry": [ "dictionaries:DictionaryEntry": [
......
{
"@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": "da735c3f-3ab9-4e9e-810e-daf84d973505",
"Timestamp": "2025-05-14T15:21:03.000000Z",
"Version": {
"ETSIVersion": "V1.18.1",
"NationalProfileOwner": "XX",
"NationalProfileVersion": "v1.0"
}
},
"Payload": {
"ResponsePayload": {
"ActionResponses": {
"ActionResponse": [
{
"ActionIdentifier": 0,
"GETCSPCONFIGResponse": {
"LastChanged": "2025-04-03T07:25:21Z",
"Dictionaries": {
"dictionaries:Dictionary": [
{
"dictionaries:Owner": "ACTOR02",
"dictionaries:Name": "LDRequestSubtype",
"dictionaries:DictionaryEntries": {
"dictionaries:DictionaryEntry": [
{
"dictionaries:Value": "ServiceA",
"dictionaries:Meaning": "Service A allows users to ..."
},
{
"dictionaries:Value": "ServiceB",
"dictionaries:Meaning": "Service B allows users to ..."
}
]
}
},
{
"dictionaries:Owner": "ACTOR02",
"dictionaries:Name": "LPRequestSubtype",
"dictionaries:DictionaryEntries": {
"dictionaries:DictionaryEntry": [
{
"dictionaries:Value": "ServiceA",
"dictionaries:Meaning": "Service A allows users to ..."
},
{
"dictionaries:Value": "ServiceB",
"dictionaries:Meaning": "Service B allows users to ..."
}
]
}
}
]
},
"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": "PropietaryIdentifier",
"config:FormatOwner": "ACTOR02",
"config:Guidance": "This targeting configuration defines that the service provider accepts lawful disclosure and lawful preservation requests for the propietary identifier format type described in the TargetFormatTypeDefinitions, associated with Service A for the \"Subscriber Data\" category only",
"config:AssociatedLIServiceTypes": {},
"config:AssociatedLDRequestTypes": {
"common:DictionaryEntry": [
{
"common:Owner": "ETSI",
"common:Name": "RequestType",
"common:Value": "SubscriberData"
}
]
},
"config:AssociatedLDRequestSubtypes": {
"common:DictionaryEntry": [
{
"common:Owner": "ACTOR02",
"common:Name": "LDRequestSubtype",
"common:Value": "ServiceA"
}
]
},
"config:AssociatedLPRequestTypes": {
"common:DictionaryEntry": [
{
"common:Owner": "ETSI",
"common:Name": "RequestType",
"common:Value": "SubscriberData"
}
]
},
"config:AssociatedLPRequestSubtypes": {
"common:DictionaryEntry": [
{
"common:Owner": "ACTOR02",
"common:Name": "LPRequestSubtype",
"common:Value": "ServiceA"
}
]
}
},
{
"config:FormatName": "InternationalE164",
"config:FormatOwner": "ETSI",
"config:Guidance": "This targeting configuration defines that the service provider accepts lawful disclosure and lawful preservation requests for a telephone number (as ETSI standard format E164 number) associated with Service A and Service B for the \"Traffic Data\" and \"Content Data\" categories",
"config:AssociatedLIServiceTypes": {},
"config:AssociatedLDRequestTypes": {
"common:DictionaryEntry": [
{
"common:Owner": "ETSI",
"common:Name": "RequestType",
"common:Value": "TrafficData"
},
{
"common:Owner": "ETSI",
"common:Name": "RequestType",
"common:Value": "StoredContentData"
}
]
},
"config:AssociatedLDRequestSubtypes": {
"common:DictionaryEntry": [
{
"common:Owner": "ACTOR02",
"common:Name": "LDRequestSubtype",
"common:Value": "ServiceA"
},
{
"common:Owner": "ACTOR02",
"common:Name": "LDRequestSubtype",
"common:Value": "ServiceB"
}
]
},
"config:AssociatedLPRequestTypes": {
"common:DictionaryEntry": [
{
"common:Owner": "ETSI",
"common:Name": "RequestType",
"common:Value": "TrafficData"
},
{
"common:Owner": "ETSI",
"common:Name": "RequestType",
"common:Value": "StoredContentData"
}
]
},
"config:AssociatedLPRequestSubtypes": {
"common:DictionaryEntry": [
{
"common:Owner": "ACTOR02",
"common:Name": "LPRequestSubtype",
"common:Value": "ServiceA"
},
{
"common:Owner": "ACTOR02",
"common:Name": "LPRequestSubtype",
"common:Value": "ServiceB"
}
]
}
}
]
},
"SupportedLIWorkflowEndpoints": {},
"SupportedLPWorkflowEndpoints": {
"config:SupportedLPWorkflowEndpoint": [
{
"config:LPWorkflowEndpoint": {
"common:Owner": "ETSI",
"common:Name": "LPWorkflowEndpoint",
"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/lp/authorisation/new"
}
]
}
}
}
]
}
}
}
}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!-- Example of a GETCSPCONFIG request to a CSP (Comunications Service Provider). -->
<HI1Message 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</CountryCode>
<UniqueIdentifier>ACTOR01</UniqueIdentifier>
</SenderIdentifier>
<ReceiverIdentifier>
<CountryCode>XX</CountryCode>
<UniqueIdentifier>ACTOR02</UniqueIdentifier>
</ReceiverIdentifier>
<TransactionIdentifier>da735c3f-3ab9-4e9e-810e-daf84d973505</TransactionIdentifier>
<Timestamp>2025-05-14T15:21:00.000000Z</Timestamp>
<Version>
<ETSIVersion>V1.18.1</ETSIVersion>
<NationalProfileOwner>XX</NationalProfileOwner>
<NationalProfileVersion>v1.0</NationalProfileVersion>
</Version>
</Header>
<Payload>
<RequestPayload>
<ActionRequests>
<ActionRequest>
<ActionIdentifier>0</ActionIdentifier>
<GETCSPCONFIG/>
</ActionRequest>
</ActionRequests>
</RequestPayload>
</Payload>
</HI1Message>
\ No newline at end of file
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
<LastChanged>2024-05-10T08:52:32Z</LastChanged> <LastChanged>2024-05-10T08:52:32Z</LastChanged>
<Dictionaries> <Dictionaries>
<dictionaries:Dictionary> <dictionaries:Dictionary>
<dictionaries:Owner>ACTOR2</dictionaries:Owner> <dictionaries:Owner>ACTOR02</dictionaries:Owner>
<dictionaries:Name>LIServiceTypes</dictionaries:Name> <dictionaries:Name>LIServiceTypes</dictionaries:Name>
<dictionaries:DictionaryEntries> <dictionaries:DictionaryEntries>
<dictionaries:DictionaryEntry> <dictionaries:DictionaryEntry>
......
<?xml version="1.0" encoding="UTF-8"?>
<!-- Example of a CSP (Comunications Service Provider) response to a GETCSPCONFIG request. -->
<HI1Message 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</CountryCode>
<!-- ACTOR01 is the request Issuing Authority -->
<UniqueIdentifier>ACTOR01</UniqueIdentifier>
</SenderIdentifier>
<ReceiverIdentifier>
<CountryCode>XX</CountryCode>
<!-- ACTOR02 is the CSP (Comunications Service Provider) -->
<UniqueIdentifier>ACTOR02</UniqueIdentifier>
</ReceiverIdentifier>
<TransactionIdentifier>da735c3f-3ab9-4e9e-810e-daf84d973505</TransactionIdentifier>
<Timestamp>2025-05-14T15:21:03.000000Z</Timestamp>
<Version>
<ETSIVersion>V1.18.1</ETSIVersion>
<NationalProfileOwner>XX</NationalProfileOwner>
<NationalProfileVersion>v1.0</NationalProfileVersion>
</Version>
</Header>
<Payload>
<ResponsePayload>
<ActionResponses>
<ActionResponse>
<ActionIdentifier>0</ActionIdentifier>
<GETCSPCONFIGResponse>
<LastChanged>2025-04-03T07:25:21Z</LastChanged>
<!-- ACTOR02 defines 2 new services, ServiceA and Service B, both for LD (Lawful Disclosure) and LP (Lawful Preservation). -->
<Dictionaries>
<dictionaries:Dictionary>
<dictionaries:Owner>ACTOR02</dictionaries:Owner>
<dictionaries:Name>LDRequestSubtype</dictionaries:Name>
<dictionaries:DictionaryEntries>
<dictionaries:DictionaryEntry>
<dictionaries:Value>ServiceA</dictionaries:Value>
<dictionaries:Meaning>Service A allows users to ...</dictionaries:Meaning>
</dictionaries:DictionaryEntry>
<dictionaries:DictionaryEntry>
<dictionaries:Value>ServiceB</dictionaries:Value>
<dictionaries:Meaning>Service B allows users to ...</dictionaries:Meaning>
</dictionaries:DictionaryEntry>
</dictionaries:DictionaryEntries>
</dictionaries:Dictionary>
<dictionaries:Dictionary>
<dictionaries:Owner>ACTOR02</dictionaries:Owner>
<dictionaries:Name>LPRequestSubtype</dictionaries:Name>
<dictionaries:DictionaryEntries>
<dictionaries:DictionaryEntry>
<dictionaries:Value>ServiceA</dictionaries:Value>
<dictionaries:Meaning>Service A allows users to ...</dictionaries:Meaning>
</dictionaries:DictionaryEntry>
<dictionaries:DictionaryEntry>
<dictionaries:Value>ServiceB</dictionaries:Value>
<dictionaries:Meaning>Service B allows users to ...</dictionaries:Meaning>
</dictionaries:DictionaryEntry>
</dictionaries:DictionaryEntries>
</dictionaries:Dictionary>
</Dictionaries>
<!-- ACTOR02 defines a new type of target identifier. -->
<TargetFormatTypeDefinitions>
<config:FormatOwner>ACTOR02</config:FormatOwner>
<config:TargetFormatTypeDefinitionEntries>
<config:TargetFormatTypeDefinitionEntry>
<config:FormatName>ProprietaryIdentifier</config:FormatName>
<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:Description>
<config:FormatRegex>^CSP[0-9]{10}$</config:FormatRegex>
</config:TargetFormatTypeDefinitionEntry>
</config:TargetFormatTypeDefinitionEntries>
</TargetFormatTypeDefinitions>
<!-- ACTOR02 defines the possible targeting configuration acceptable. -->
<TargetingConfigurations>
<config:TargetingConfiguration>
<!-- First Targeting Configuration -->
<config:FormatName>PropietaryIdentifier</config:FormatName>
<config:FormatOwner>ACTOR02</config:FormatOwner>
<config:Guidance>This targeting configuration defines that the service provider accepts lawful disclosure and lawful preservation requests for the propietary identifier format type described in the TargetFormatTypeDefinitions, associated with Service A for the "Subscriber Data" category only</config:Guidance>
<config:AssociatedLIServiceTypes/> <!-- In this example, no LI types are supported -->
<config:AssociatedLDRequestTypes>
<common:DictionaryEntry>
<common:Owner>ETSI</common:Owner>
<common:Name>RequestType</common:Name>
<common:Value>SubscriberData</common:Value>
</common:DictionaryEntry>
</config:AssociatedLDRequestTypes>
<config:AssociatedLDRequestSubtypes>
<common:DictionaryEntry>
<common:Owner>ACTOR02</common:Owner>
<common:Name>LDRequestSubtype</common:Name>
<common:Value>ServiceA</common:Value>
</common:DictionaryEntry>
</config:AssociatedLDRequestSubtypes>
<config:AssociatedLPRequestTypes>
<common:DictionaryEntry>
<common:Owner>ETSI</common:Owner>
<common:Name>RequestType</common:Name>
<common:Value>SubscriberData</common:Value>
</common:DictionaryEntry>
</config:AssociatedLPRequestTypes>
<config:AssociatedLPRequestSubtypes>
<common:DictionaryEntry>
<common:Owner>ACTOR02</common:Owner>
<common:Name>LPRequestSubtype</common:Name>
<common:Value>ServiceA</common:Value>
</common:DictionaryEntry>
</config:AssociatedLPRequestSubtypes>
</config:TargetingConfiguration>
<!-- Second Targeting Configuration -->
<config:TargetingConfiguration>
<config:FormatName>InternationalE164</config:FormatName>
<config:FormatOwner>ETSI</config:FormatOwner>
<config:Guidance>This targeting configuration defines that the service provider accepts lawful disclosure and lawful preservation requests for a telephone number (as ETSI standard format E164 number) associated with Service A and Service B for the "Traffic Data" and "Content Data" categories</config:Guidance>
<config:AssociatedLIServiceTypes/> <!-- In this example, no LI types are supported -->
<config:AssociatedLDRequestTypes>
<common:DictionaryEntry>
<common:Owner>ETSI</common:Owner>
<common:Name>RequestType</common:Name>
<common:Value>TrafficData</common:Value>
</common:DictionaryEntry>
<common:DictionaryEntry>
<common:Owner>ETSI</common:Owner>
<common:Name>RequestType</common:Name>
<common:Value>StoredContentData</common:Value>
</common:DictionaryEntry>
</config:AssociatedLDRequestTypes>
<config:AssociatedLDRequestSubtypes>
<common:DictionaryEntry>
<common:Owner>ACTOR02</common:Owner>
<common:Name>LDRequestSubtype</common:Name>
<common:Value>ServiceA</common:Value>
</common:DictionaryEntry>
<common:DictionaryEntry>
<common:Owner>ACTOR02</common:Owner>
<common:Name>LDRequestSubtype</common:Name>
<common:Value>ServiceB</common:Value>
</common:DictionaryEntry>
</config:AssociatedLDRequestSubtypes>
<config:AssociatedLPRequestTypes>
<common:DictionaryEntry>
<common:Owner>ETSI</common:Owner>
<common:Name>RequestType</common:Name>
<common:Value>TrafficData</common:Value>
</common:DictionaryEntry>
<common:DictionaryEntry>
<common:Owner>ETSI</common:Owner>
<common:Name>RequestType</common:Name>
<common:Value>StoredContentData</common:Value>
</common:DictionaryEntry>
</config:AssociatedLPRequestTypes>
<config:AssociatedLPRequestSubtypes>
<common:DictionaryEntry>
<common:Owner>ACTOR02</common:Owner>
<common:Name>LPRequestSubtype</common:Name>
<common:Value>ServiceA</common:Value>
</common:DictionaryEntry>
<common:DictionaryEntry>
<common:Owner>ACTOR02</common:Owner>
<common:Name>LPRequestSubtype</common:Name>
<common:Value>ServiceB</common:Value>
</common:DictionaryEntry>
</config:AssociatedLPRequestSubtypes>
</config:TargetingConfiguration>
</TargetingConfigurations>
<SupportedLIWorkflowEndpoints/>
<SupportedLPWorkflowEndpoints>
<config:SupportedLPWorkflowEndpoint>
<config:LPWorkflowEndpoint>
<common:Owner>ETSI</common:Owner>
<common:Name>LPWorkflowEndpoint</common:Name>
<common:Value>NewAuthorisation</common:Value>
</config:LPWorkflowEndpoint>
<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:Guidance>
<config:URL>https://ts103120.example.com/lp/authorisation/new</config:URL>
</config:SupportedLPWorkflowEndpoint>
</SupportedLPWorkflowEndpoints>
</GETCSPCONFIGResponse>
</ActionResponse>
</ActionResponses>
</ResponsePayload>
</Payload>
</HI1Message>
...@@ -79,9 +79,15 @@ ...@@ -79,9 +79,15 @@
"config:AssociatedLIServiceTypes": { "config:AssociatedLIServiceTypes": {
"$ref": "ts_103120_Common_2016_02#/$defs/DictionaryEntries" "$ref": "ts_103120_Common_2016_02#/$defs/DictionaryEntries"
}, },
"config:AssociatedLDRequestTypes": {
"$ref": "ts_103120_Common_2016_02#/$defs/DictionaryEntries"
},
"config:AssociatedLDRequestSubtypes": { "config:AssociatedLDRequestSubtypes": {
"$ref": "ts_103120_Common_2016_02#/$defs/DictionaryEntries" "$ref": "ts_103120_Common_2016_02#/$defs/DictionaryEntries"
}, },
"config:AssociatedLPRequestTypes": {
"$ref": "ts_103120_Common_2016_02#/$defs/DictionaryEntries"
},
"config:AssociatedLPRequestSubtypes": { "config:AssociatedLPRequestSubtypes": {
"$ref": "ts_103120_Common_2016_02#/$defs/DictionaryEntries" "$ref": "ts_103120_Common_2016_02#/$defs/DictionaryEntries"
} }
...@@ -140,7 +146,7 @@ ...@@ -140,7 +146,7 @@
"SupportedLPWorkflowEndpoint": { "SupportedLPWorkflowEndpoint": {
"type": "object", "type": "object",
"properties": { "properties": {
"config:LIWorkflowEndpoint": { "config:LPWorkflowEndpoint": {
"$ref": "ts_103120_Common_2016_02#/$defs/DictionaryEntry" "$ref": "ts_103120_Common_2016_02#/$defs/DictionaryEntry"
}, },
"config:Guidance": { "config:Guidance": {
...@@ -151,7 +157,7 @@ ...@@ -151,7 +157,7 @@
} }
}, },
"required": [ "required": [
"config:LIWorkflowEndpoint", "config:LPWorkflowEndpoint",
"config:URL" "config:URL"
], ],
"additionalProperties": false "additionalProperties": false
......
...@@ -31,7 +31,9 @@ ...@@ -31,7 +31,9 @@
<xs:element name="FormatOwner" type="etsi:ShortString"/> <xs:element name="FormatOwner" type="etsi:ShortString"/>
<xs:element name="Guidance" type="etsi:LongString" minOccurs="0"/> <xs:element name="Guidance" type="etsi:LongString" minOccurs="0"/>
<xs:element name="AssociatedLIServiceTypes" type="common:DictionaryEntries" minOccurs="0"/> <xs:element name="AssociatedLIServiceTypes" type="common:DictionaryEntries" minOccurs="0"/>
<xs:element name="AssociatedLDRequestTypes" type="common:DictionaryEntries" minOccurs="0"/>
<xs:element name="AssociatedLDRequestSubtypes" type="common:DictionaryEntries" minOccurs="0"/> <xs:element name="AssociatedLDRequestSubtypes" type="common:DictionaryEntries" minOccurs="0"/>
<xs:element name="AssociatedLPRequestTypes" type="common:DictionaryEntries" minOccurs="0"/>
<xs:element name="AssociatedLPRequestSubtypes" type="common:DictionaryEntries" minOccurs="0"/> <xs:element name="AssociatedLPRequestSubtypes" type="common:DictionaryEntries" minOccurs="0"/>
</xs:sequence> </xs:sequence>
</xs:complexType> </xs:complexType>
...@@ -54,7 +56,8 @@ ...@@ -54,7 +56,8 @@
</xs:complexType> </xs:complexType>
<xs:complexType name="SupportedLPWorkflowEndpoint"> <xs:complexType name="SupportedLPWorkflowEndpoint">
<xs:sequence> <xs:sequence>
<xs:element name="LIWorkflowEndpoint" type="common:DictionaryEntry"/> <!-- Implementers should note that the naming of this element was corrected from LIWorkflowEndpoint in v1.20.1 -->
<xs:element name="LPWorkflowEndpoint" type="common:DictionaryEntry"/>
<xs:element name="Guidance" type="etsi:LongString" minOccurs="0"/> <xs:element name="Guidance" type="etsi:LongString" minOccurs="0"/>
<xs:element name="URL" type="etsi:LongString"/> <xs:element name="URL" type="etsi:LongString"/>
</xs:sequence> </xs:sequence>
......
...@@ -94,9 +94,11 @@ coerce_to_empty = [ ...@@ -94,9 +94,11 @@ coerce_to_empty = [
coerce_null_to_empty = [ coerce_null_to_empty = [
'SupportedLIWorkflowEndpoints', 'SupportedLIWorkflowEndpoints',
'SupportedLPWorkflowEndpoints', 'SupportedLPWorkflowEndpoints',
'config:AssociatedLDRequestTypes',
'config:AssociatedLDRequestSubtypes', 'config:AssociatedLDRequestSubtypes',
'config:AssociatedLPRequestTypes',
'config:AssociatedLPRequestSubtypes', 'config:AssociatedLPRequestSubtypes',
'config:AssociatedLIRequestSubtypes', 'config:AssociatedLIServiceTypes',
] ]
def postprocessor (path, key, value): def postprocessor (path, key, value):
......