1 /************************************************************************
2 * Copyright 2022 highstreet technologies GmbH
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 ************************************************************************/
19 // TapiContext is a view of the TAPI Context, augmented with TAPI Topology
20 // https://mholt.github.io/json-to-go/ used to transform the JSON into Go struct
21 type TapiContext struct {
22 TapiCommonContext struct {
23 UUID string `json:"uuid"`
25 ValueName string `json:"value-name"`
26 Value string `json:"value"`
28 TapiTopologyTopologyContext struct {
30 UUID string `json:"uuid"`
32 ValueName string `json:"value-name"`
33 Value string `json:"value"`
35 LayerProtocolName []string `json:"layer-protocol-name"`
37 UUID string `json:"uuid"`
39 ValueName string `json:"value-name"`
40 Value string `json:"value"`
42 OwnedNodeEdgePoint []struct {
43 UUID string `json:"uuid"`
45 ValueName string `json:"value-name"`
46 Value string `json:"value"`
48 AdministrativeState string `json:"administrative-state"`
49 OperationalState string `json:"operational-state"`
50 LifecycleState string `json:"lifecycle-state"`
51 LinkPortRole string `json:"link-port-role"`
52 LayerProtocolName string `json:"layer-protocol-name"`
53 SupportedCepLayerProtocolQualifier []string `json:"supported-cep-layer-protocol-qualifier"`
54 LinkPortDirection string `json:"link-port-direction"`
55 TerminationState string `json:"termination-state"`
56 TerminationDirection string `json:"termination-direction"`
57 } `json:"owned-node-edge-point"`
58 AdministrativeState string `json:"administrative-state"`
59 OperationalState string `json:"operational-state"`
60 LifecycleState string `json:"lifecycle-state"`
61 LayerProtocolName []string `json:"layer-protocol-name"`
62 CostCharacteristic []struct {
63 CostName string `json:"cost-name"`
64 CostAlgorithm string `json:"cost-algorithm"`
65 CostValue string `json:"cost-value"`
66 } `json:"cost-characteristic"`
67 LatencyCharacteristic []struct {
68 TrafficPropertyName string `json:"traffic-property-name"`
69 QueingLatencyCharacteristic string `json:"queing-latency-characteristic"`
70 FixedLatencyCharacteristic string `json:"fixed-latency-characteristic"`
71 JitterCharacteristic string `json:"jitter-characteristic"`
72 WanderCharacteristic string `json:"wander-characteristic"`
73 } `json:"latency-characteristic"`
74 ORanScTopologyFunction string `json:"o-ran-sc-topology:function"`
75 ORanScTopologyGeolocation struct {
76 Longitude string `json:"longitude"`
77 Latitude string `json:"latitude"`
78 Altitude string `json:"altitude"`
79 } `json:"o-ran-sc-topology:geolocation"`
82 UUID string `json:"uuid"`
84 ValueName string `json:"value-name"`
85 Value string `json:"value"`
87 TransitionedLayerProtocolName []string `json:"transitioned-layer-protocol-name"`
88 AdministrativeState string `json:"administrative-state"`
89 OperationalState string `json:"operational-state"`
90 Direction string `json:"direction"`
91 LifecycleState string `json:"lifecycle-state"`
92 NodeEdgePoint []struct {
93 TopologyUUID string `json:"topology-uuid"`
94 NodeUUID string `json:"node-uuid"`
95 NodeEdgePointUUID string `json:"node-edge-point-uuid"`
96 } `json:"node-edge-point"`
97 LatencyCharacteristic []struct {
98 TrafficPropertyName string `json:"traffic-property-name"`
99 QueingLatencyCharacteristic string `json:"queing-latency-characteristic"`
100 FixedLatencyCharacteristic string `json:"fixed-latency-characteristic"`
101 JitterCharacteristic string `json:"jitter-characteristic"`
102 WanderCharacteristic string `json:"wander-characteristic"`
103 } `json:"latency-characteristic"`
104 LayerProtocolName []string `json:"layer-protocol-name"`
105 RiskCharacteristic []struct {
106 RiskCharacteristicName string `json:"risk-characteristic-name"`
107 RiskIdentifierList []string `json:"risk-identifier-list"`
108 } `json:"risk-characteristic"`
109 ValidationMechanism []struct {
110 ValidationMechanism string `json:"validation-mechanism"`
111 ValidationRobustness string `json:"validation-robustness"`
112 LayerProtocolAdjacencyValidated string `json:"layer-protocol-adjacency-validated"`
113 } `json:"validation-mechanism"`
114 CostCharacteristic []struct {
115 CostName string `json:"cost-name"`
116 CostAlgorithm string `json:"cost-algorithm"`
117 CostValue string `json:"cost-value"`
118 } `json:"cost-characteristic"`
121 } `json:"tapi-topology:topology-context"`
122 } `json:"tapi-common:context"`