Commit d431452c authored by Frank Fransen's avatar Frank Fransen Committed by Mark Canterbury
Browse files

TS 103 705 CR010 - Adding an approach for nesting Subscriber Data Records

parent f110fabb
Loading
Loading
Loading
Loading
+0 −0

Empty file added.

+44 −0
Original line number Diff line number Diff line
{
  "$id": "urn:etsi:li:103705:record-schema-id:v1.5.1",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "CSP Record Schema",
  "description": "Defines the valid set of Subscriber Data Records that may appear in a RecordSet (see ETSI TS 103 705 clause 6.2.4)",
  "cspSchemaID": "csp.example_8",
  "cspName": "csp.example.com",
  "dateIssued": "2026-04-29T09:15:01Z",
  "version": "1.1.1",
  "$defs": {
    "record": {
      "oneOf": [
        {
          "allOf": [
            {
              "$ref": "csp_example_types#/$defs/CSPSubscriberRecordsCollectionRecord"
            },
            {
              "properties": {
                "type": {
                  "const": "csp_example_types#/$defs/CSPSubscriberRecordsCollectionRecord"
                }
              }
            }
          ]
        },
        {
          "allOf": [
            {
              "$ref": "csp_example_types#/$defs/CSPSubscriptionRecordsCollectionRecord"
            },
            {
              "properties": {
                "type": {
                  "const": "csp_example_types#/$defs/CSPSubscriptionRecordsCollectionRecord"
                }
              }
            }
          ]
        }
      ]
    }
  }
}
 No newline at end of file
+142 −0
Original line number Diff line number Diff line
{
  "recordSetDescription": {
    "etsiSchemaId": "urn:etsi:li:103705:response-schema-id:v1.5.1",
    "etsiSpecificationVersion": "1.5.1",
    "cspName": "csp.example.com",
    "cspSchemaId": "csp.example_8",
    "cspSchemaVersion": "1.0.0",
    "resultSetId": "9a25db0c-d0f3-4ae5-b618-bd1a9a0056c2",
    "requestReference": "LDID",
    "created": "2026-04-29T09:31:56.000000Z"
  },
  "recordSet": [
    {
      "id": "1da91ade-f526-4e55-b5da-00000000000001",
      "type": "csp_example_types#/$defs/CSPSubscriberRecordsCollectionRecord",
      "subscriberInformationRecord": {
        "id": "1da91ade-f526-4e55-b5da-0c8178f25001",
        "type": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/SubscriberInformationRecord",
        "validityPeriod": {
          "begin": "2025-12-01T12:00:01.000000Z",
          "end": "2026-01-01T17:00:00.000000Z"
        },
        "subscriber": {
          "person": {
            "surname": "Doe",
            "givenNames": "John",
            "initials": "J",
            "sex": "M",
            "dateOfBirth": "1999-03-21",
            "addresses": [
              {
                "street": "streetname",
                "houseNumber": "13",
                "city": "City name",
                "postalCode": "12345",
                "typeOfAddress": "residence"
              }
            ]
          }
        }
      },
      "serviceInformationRecords": [
        {
          "id": "3be3fc6b-a2dd-4104-9af1-d6b1f7008003",
          "type": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/ServiceInformationRecord",
          "validityPeriod": {
            "begin": "2025-12-01T12:00:01.000000Z",
            "end": "2026-01-01T17:00:00.000000Z"
          },
          "typeOfService": "Telephony",
          "startDate": "2026-01-01",
          "endDate": "2026-02-01",
          "serviceIdentifiers": [
            {
              "phoneNumber": "441632960124"
            },
            {
              "iMSI": "99999123456789"
            }
          ]
        }
      ]
    },
    {
      "id": "1da91ade-f526-4e55-b5da-00000000000002",
      "type": "csp_example_types#/$defs/CSPSubscriberRecordsCollectionRecord",
      "subscriberInformationRecord": {
        "id": "2da91ade-f526-4e55-b5da-0c8178f25002",
        "type": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/SubscriberInformationRecord",
        "validityPeriod": {
          "begin": "2025-12-01T12:00:01.000000Z",
          "end": "2026-01-01T17:00:00.000000Z"
        },
        "subscriber": {
          "person": {
            "surname": "Doe",
            "givenNames": "Jane",
            "initials": "J",
            "sex": "F",
            "dateOfBirth": "1999-07-11",
            "addresses": [
              {
                "street": "streetname",
                "houseNumber": "13",
                "city": "City name",
                "postalCode": "12345",
                "typeOfAddress": "residence"
              },
              {
                "street": "streetname",
                "houseNumber": "13",
                "city": "City name",
                "postalCode": "12345",
                "typeOfAddress": "installation"
              }
            ]
          }
        }
      },
      "serviceInformationRecords": [
        {
          "id": "4be3fc6b-a2dd-4104-9af1-d6b1f7008004",
          "type": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/ServiceInformationRecord",
          "validityPeriod": {
            "begin": "2025-12-01T12:00:01.000000Z",
            "end": "2026-01-01T17:00:00.000000Z"
          },
          "typeOfService": "Telephony",
          "startDate": "2026-01-01",
          "endDate": "2026-02-01",
          "serviceIdentifiers": [
            {
              "phoneNumber": "441632960567"
            },
            {
              "iMSI": "99999123456001"
            }
          ]
        },
        {
          "id": "5be3fc6b-a2dd-4104-9af1-d6b1f7008005",
          "type": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/ServiceInformationRecord",
          "validityPeriod": {
            "begin": "2025-12-01T12:00:01.000000Z",
            "end": "2026-01-01T17:00:00.000000Z"
          },
          "typeOfService": "DataAccess",
          "startDate": "2025-01-01",
          "endDate": "2026-12-31",
          "serviceIdentifiers": [
            {
              "iPv4Address": "203.0.113.0"
            },
            {
              "iPv6Address": "2001:0db8:0000:0000:0000:0000:0002:0001"
            }
          ]
        }
      ]
    }
  ]
}
 No newline at end of file
+78 −0
Original line number Diff line number Diff line
{
  "$id": "csp_example_types",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "CSP Supplementary Schema",
  "description": "JSON schema for CSP defined types (see clause 6.1 and Annex A). Two collection records are defined for collecting subscriber data records using nesting (see Clause 5.5)",
  "$defs": {
    "CSPSubscriberRecordsCollectionRecord": {
      "type": "object",
      "title": "Subscriber collection record",
      "description": "Nesting record to cluster records related to a single subscriber (see clause 5.5). This record is used to cluster Subscriber Data records when the record set contains records of multiple subscribers.",
      "properties": {
        "subscriberInformationRecord": {
          "$ref": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/SubscriberInformationRecord",
          "description": "Information about a natural person or organisation in this CollectionRecord"
        },
        "registrationInformationRecords": {
          "type": "array",
          "items": {
            "$ref": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/RegistrationInformationRecord",
            "description": "One or more registration information records for the subscriber in this CollectionRecord"
          }
        },
        "serviceInformationRecords": {
          "type": "array",
          "items": {
            "$ref": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/ServiceInformationRecord",
            "description": "One or more service information records for the subscriber in this CollectionRecord"
          }
        },
        "paymentInformationRecords": {
          "type": "array",
          "items": {
            "$ref": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/PaymentInformationRecord",
            "description": "One or more payment information records for the subscriber in this CollectionRecord"
          }
        },
        "required": [
          "subscriberInformationRecord"
        ]
      }
    },
    "CSPSubscriptionRecordsCollectionRecord": {
      "type": "object",
      "title": "Subscription collection record",
      "description": "Nesting record to cluster records related to a single subscription (see clause 5.5). This record is used to cluster Subscriber Data records when the record set contains records of multiple subscriptions.",
      "properties": {
        "serviceInformationRecord": {
          "$ref": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/ServiceInformationRecord",
          "description": "Information about the service for the subscription in this CollectionRecord"
        },
        "subscriberInformationRecords": {
          "type": "array",
          "items": {
            "$ref": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/SubscriberInformationRecord",
            "description": "One or more subscriber information records for this CollectionRecord"
          }
        },
        "registrationInformationRecords": {
          "type": "array",
          "items": {
            "$ref": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/RegistrationInformationRecord",
            "description": "One or more registration information records for the subscription in this CollectionRecord"
          }
        },
        "paymentInformationRecords": {
          "type": "array",
          "items": {
            "$ref": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/PaymentInformationRecord",
            "description": "Information about the payment for the subscription in this CollectionRecord"
          }
        },
        "required": [
          "serviceInformationRecord"
        ]
      }
    }
  }
}
+15 −0
Original line number Diff line number Diff line
This example demonstrates how a CSP can use Nesting of records (see Clause 5.5). The example shows the result of a 
LD request with as the target identifier a postalcode and a house number. Since multiple people could be a residence 
at this address and have one or more services at the CSP, the resulted Record Set would contain multiple 
SubscriberInformationRecords of the different subscribers, and multiple ServiceInformationRecords for the services of 
these subscribers. To ensure that that recipient of the Record Set can determine which service belongs to which subscriber, 
the CSP uses Nesting (see Clause 5.5). 

In this particular example John Doe and Jane Doe live at the same address. John has a telephony subscription with phone 
number +44 1632960124. Jane has a telephony subscription with phone number +44 1632960567, and a data access subscription.

In the CSP supplementary type schema two Nesting records are defined: 
- CSPSubscriberRecordsCollectionRecord - for collecting records belonging to a subscriber 
- CSPSubscriptionRecordsCollectionRecord - for collecting records belonging to a subscription

The CSP record schema for this example only inports the CSPSubscriberRecordsCollectionRecord.
 No newline at end of file
Loading