A.1 Example data model

32.1583GPPDesign rules for REpresentational State Transfer (REST) Solution Sets (SS)Management and orchestrationRelease 17TS

The following JSON instance document is used for the examples in this clause.

{

"SubNetwork": [

{

"id": "SN1",

"objectClass": "SubNetwork",

"objectInstance": "SubNetwork=SN1",

"attributes": {

"userLabel": "Berlin NW",

"userDefinedNetworkType": "5G",

"plmnId": {

"mcc": 456,

"mnc": 789

}

},

"ManagedElement": [

{

"id": "ME1",

"objectClass": "ManagedElement",

"objectInstance": "SubNetwork=SN1,ManagedElement=ME1",

"attributes": {

"userLabel": "Berlin NW 1",

"vendorName": "Company XY",

"location": "TV Tower"

},

"XyzFunction": [

{

"id": "XYZF1",

"objectClass": "XyzFunction",

"objectInstance":"SubNetwork=SN1,ManagedElement=ME1,XyzFunction=XYZF1",

"attributes": {

"attrA": "xyz",

"attrB": 551

}

},

{

"id": "XYZF2",

"objectClass": "XyzFunction",

"objectInstance":"SubNetwork=SN1,ManagedElement=ME1,XyzFunction=XYZF2",

"attributes": {

"attrA": "abc",

"attrB": 552

}

}

]

},

{

"id": "ME2",

"objectClass": "ManagedElement",

"objectInstance": "SubNetwork=SN1,ManagedElement=ME2",

"attributes": {

"userLabel": "Berlin NW 2",

"vendorName": "Company XY",

"location": "Grunewald"

}

}

],

"PerfMetricJob": [

{

"id": "PMJ1",

"objectClass": "PerfMetricJob",

"objectInstance": "SubNetwork=SN1,PerfMetricJob=PMJ1",

"attributes": {

"granularityPeriod": "5",

"perfMetrics": [

"Metric1",

"Metric2"

],

"objectInstances": [

"Obj1",

"Obj2"

]

}

}

],

"ThresholdMonitor": [

{

"id": "TM1",

"objectClass": "ThresholdMonitor",

"objectInstance": "SubNetwork=SN1,ThresholdMonitor=TM1",

"attributes": {

"metric": "Metric1",

"thresholdLevels": [

{

"level": "1",

"thresholdValue": 10

},

{

"level": "2",

"thresholdValue": 20

},

{

"level": "3",

"thresholdValue": 30

}

]

}

}

]

}

]

}

The corresponding JSON schema is

{

"SubNetwork": {

"type": "array",

"items": {

"type": "object",

"properties": {

"id": {

"type": "string"

},

"objectClass": {

"type": "string"

},

"objectInstance": {

"type": "string"

},

"attributes": {

"type": "object",

"properties": {

"userLabel": {

"type": "string"

},

"userDefinedNetworkType": {

"type": "string"

},

"plmnId": {

"type": "object",

"properties": {

"mcc": {

"type": "integer"

},

"mnc": {

"type": "integer"

}

}

}

}

},

"ManagedElement": {

"type": "array",

"items": {

"type": "object",

"properties": {

"id": {

"type": "string"

},

"objectClass": {

"type": "string"

},

"objectInstance": {

"type": "string"

},

"attributes": {

"type": "object",

"properties": {

"userLabel": {

"type": "string"

},

"vendorName": {

"type": "string"

},

"location": {

"type": "string"

}

}

},

"XyzFunction": {

"type": "array",

"items": {

"type": "object",

"properties": {

"id": {

"type": "string"

},

"objectClass": {

"type": "string"

},

"objectInstance": {

"type": "string"

},

"attributes": {

"type": "object",

"properties": {

"attributeA": {

"type": "string"

},

"attributeB": {

"type": "integer"

}

}

},

"required": ["id"]

}

}

},

"required": ["id"]

}

}

},

"PerfMetricJob": {

"type": "array",

"items": {

"type": "object",

"properties": {

"id": {

"type": "string"

},

"objectClass": {

"type": "string"

},

"objectInstance": {

"type": "string"

},

"attributes": {

"type": "object",

"properties": {

"granularityPeriod": {

"type": "integerstring"

},

"perfMetrics": {

"type": "array",

"items": {

"type": "string"

}

}

},

"objectInstances": {

"type": "array",

"items": {

"type": "string"

}

}

},

"required": ["id"]

}

}

},

"ThresholdMonitor": {

"type": "array",

"items": {

"type": "object",

"properties": {

"id": {

"type": "string"

},

"objectClass": {

"type": "string"

},

"objectInstance": {

"type": "string"

},

"attributes": {

"type": "object",

"properties": {

"thresholdLevels": {

"type": "array",

"items": {

"type": "object",

"properties": {

"level": {

"type": "string"

},

"thresholdValue": {

"type": "integer"

}

}

}

}

}

},

"required": ["id"]

}

}

},

"required": ["id"]

}

}

}

}

The corresponding XML instance document is provided below as well. It can be helpful when evaluating XPath expressions.

<?xml version="1.0" encoding="UTF-8" ?>

<nrmRoot>

<SubNetwork>

<id>SN1</id>

<objectClass>SubNetwork</objectClass>

<objectInstance>SubNetwork=SN1</objectInstance>

<attributes>

<userLabel>Berlin NW</userLabel>

<userDefinedNetworkType>5G</userDefinedNetworkType>

<plmnId>

<mcc>456</mcc>

<mnc>789</mnc>

</plmnId>

</attributes>

<ManagedElement>

<id>ME1</id>

<objectClass>ManagedElement</objectClass>

<objectInstance>SubNetwork=SN1,ManagedElement=ME1</objectInstance>

<attributes>

<userLabel>Berlin NW 1</userLabel>

<vendorName>Company XY</vendorName>

<location>TV Tower</location>

</attributes>

<XyzFunction>

<id>XYZF1</id>

<objectClass>XyzFunction</objectClass>

<objectInstance>SubNetwork=SN1,ManagedElement=ME1,XyzFunction=XYZF1</objectInstance>

<attributes>

<attrA>xyz</attrA>

<attrB>551</attrB>

</attributes>

</XyzFunction>

<XyzFunction>

<id>XYZF2</id>

<objectClass>XyzFunction</objectClass>

<objectInstance>SubNetwork=SN1,ManagedElement=ME1,XyzFunction=XYZF2</objectInstance>

<attributes>

<attrA>abc</attrA>

<attrB>552</attrB>

</attributes>

</XyzFunction>

</ManagedElement>

<ManagedElement>

<id>ME2</id>

<objectClass>ManagedElement</objectClass>

<objectInstance>SubNetwork=SN1,ManagedElement=ME2</objectInstance>

<attributes>

<userLabel>Berlin NW 2</userLabel>

<vendorName>Company XY</vendorName>

<location>Grunewald</location>

</attributes>

</ManagedElement>

<PerfMetricJob>

<id>PMJ1</id>

<objectClass>PerfMetricJob</objectClass>

<objectInstance>SubNetwork=SN1,PerfMetricJob=PMJ1</objectInstance>

<attributes>

<granularityPeriod>5</granularityPeriod>

<perfMetrics>Metric1</perfMetrics>

<perfMetrics>Metric2</perfMetrics>

<objectInstances>Obj1</objectInstances>

<objectInstances>Obj2</objectInstances>

</attributes>

</PerfMetricJob>

<ThresholdMonitor>

<id>TM1</id>

<objectClass>ThresholdMonitor</objectClass>

<objectInstance>SubNetwork=SN1,ThresholdMonitor=TM1</objectInstance>

<attributes>

<ThresholdLevels>

<level>1</level>

<thresholdValue>10</thresholdValue>

</ThresholdLevels>

<ThresholdLevels>

<level>2</level>

<thresholdValue>20</thresholdValue>

</ThresholdLevels>

<ThresholdLevels>

<level>3</level>

<thresholdValue>30</thresholdValue>

</ThresholdLevels>

</attributes>

</ThresholdMonitor>

</SubNetwork>

</nrmRoot>

NOTE: Void

The following examples do not always follow the URI structure specified in clause 4.4. For simplicity reasons, the path component "/{MnSName}/{MnSVersion}" is often omitted. Also the Domain Component (DC) is omitted in DNs carried by "objectInstance" attributes. Though this is a valid implementation as per TS 32.300 [3], it is recommended to have "DC=example.org" or "DC=org, DC=example" as first components of DNs.