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.