/************************************************************************ * Copyright 2022 highstreet technologies GmbH * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. ************************************************************************/ package main // TapiContext is a view of the TAPI Context, augmented with TAPI Topology // https://mholt.github.io/json-to-go/ used to transform the JSON into Go struct type TapiContext struct { TapiCommonContext struct { UUID string `json:"uuid"` Name []struct { ValueName string `json:"value-name"` Value string `json:"value"` } `json:"name"` TapiTopologyTopologyContext struct { Topology []struct { UUID string `json:"uuid"` Name []struct { ValueName string `json:"value-name"` Value string `json:"value"` } `json:"name"` LayerProtocolName []string `json:"layer-protocol-name"` Node []struct { UUID string `json:"uuid"` Name []struct { ValueName string `json:"value-name"` Value string `json:"value"` } `json:"name"` OwnedNodeEdgePoint []struct { UUID string `json:"uuid"` Name []struct { ValueName string `json:"value-name"` Value string `json:"value"` } `json:"name"` AdministrativeState string `json:"administrative-state"` OperationalState string `json:"operational-state"` LifecycleState string `json:"lifecycle-state"` LinkPortRole string `json:"link-port-role"` LayerProtocolName string `json:"layer-protocol-name"` SupportedCepLayerProtocolQualifier []string `json:"supported-cep-layer-protocol-qualifier"` LinkPortDirection string `json:"link-port-direction"` TerminationState string `json:"termination-state"` TerminationDirection string `json:"termination-direction"` } `json:"owned-node-edge-point"` AdministrativeState string `json:"administrative-state"` OperationalState string `json:"operational-state"` LifecycleState string `json:"lifecycle-state"` LayerProtocolName []string `json:"layer-protocol-name"` CostCharacteristic []struct { CostName string `json:"cost-name"` CostAlgorithm string `json:"cost-algorithm"` CostValue string `json:"cost-value"` } `json:"cost-characteristic"` LatencyCharacteristic []struct { TrafficPropertyName string `json:"traffic-property-name"` QueingLatencyCharacteristic string `json:"queing-latency-characteristic"` FixedLatencyCharacteristic string `json:"fixed-latency-characteristic"` JitterCharacteristic string `json:"jitter-characteristic"` WanderCharacteristic string `json:"wander-characteristic"` } `json:"latency-characteristic"` ORanScTopologyFunction string `json:"o-ran-sc-topology:function"` ORanScTopologyGeolocation struct { Longitude string `json:"longitude"` Latitude string `json:"latitude"` Altitude string `json:"altitude"` } `json:"o-ran-sc-topology:geolocation"` } `json:"node"` Link []struct { UUID string `json:"uuid"` Name []struct { ValueName string `json:"value-name"` Value string `json:"value"` } `json:"name"` TransitionedLayerProtocolName []string `json:"transitioned-layer-protocol-name"` AdministrativeState string `json:"administrative-state"` OperationalState string `json:"operational-state"` Direction string `json:"direction"` LifecycleState string `json:"lifecycle-state"` NodeEdgePoint []struct { TopologyUUID string `json:"topology-uuid"` NodeUUID string `json:"node-uuid"` NodeEdgePointUUID string `json:"node-edge-point-uuid"` } `json:"node-edge-point"` LatencyCharacteristic []struct { TrafficPropertyName string `json:"traffic-property-name"` QueingLatencyCharacteristic string `json:"queing-latency-characteristic"` FixedLatencyCharacteristic string `json:"fixed-latency-characteristic"` JitterCharacteristic string `json:"jitter-characteristic"` WanderCharacteristic string `json:"wander-characteristic"` } `json:"latency-characteristic"` LayerProtocolName []string `json:"layer-protocol-name"` RiskCharacteristic []struct { RiskCharacteristicName string `json:"risk-characteristic-name"` RiskIdentifierList []string `json:"risk-identifier-list"` } `json:"risk-characteristic"` ValidationMechanism []struct { ValidationMechanism string `json:"validation-mechanism"` ValidationRobustness string `json:"validation-robustness"` LayerProtocolAdjacencyValidated string `json:"layer-protocol-adjacency-validated"` } `json:"validation-mechanism"` CostCharacteristic []struct { CostName string `json:"cost-name"` CostAlgorithm string `json:"cost-algorithm"` CostValue string `json:"cost-value"` } `json:"cost-characteristic"` } `json:"link"` } `json:"topology"` } `json:"tapi-topology:topology-context"` } `json:"tapi-common:context"` }