################################################################################
# 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
#
#     https://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.
#

################################################################################
# Configuration for interface tests

################################################################################
# DCAE VES Collector communication end point
vesEndpoint:
  # url: https://localhost:8443/eventListener/v7
  url: https://ves-collector.oam.smo.o-ran-sc.org/eventListener/v7
  username: sample1
  password: sample1
  verify: False

################################################################################
# common generated event settings, please don't touch

settings:
  eventType: O_RAN_COMPONENT
  sequence: 357

################################################################################
# Information from document: SDN-R System Requirements
#
# a. VendorA   pnf2 BestInClass    (pnf2)
# b. VendorA   FancyNextGeneration (FYNG)
# c. VendorB   R2D2 NewFuture      (R2D2)
# d. VendorB   7200DEV             (7DEV)
# e. VendorC   TheSkyIsTheLimit    (nSky)
# f. VendorC   OpenSourceFirst     (1OSF)

# g. VendorA   PNF5G               (NO5G)
# h. VendorB   PNF5G               (VB5G)
# i. VendorC   NGCell              (NGCE)
# j. VendorC   O-RU                (SCRU)
#
# z. SDN-R     Controller itself   (SDNR)

pnfType:
  pnf2:
    id: f2030d4a-8f0e-11eb-8dcd-0242ac130003
    model: "pnf2 BestInClass"
    oamIpv4: 10.10.10.11
    vendor: VendorA
  fyng:
    id: f2030f70-8f0e-11eb-8dcd-0242ac130003
    model: FancyNextGeneration
    oamIpv4: 10.10.10.11
    vendor: VendorA
  r2d2:
    id: f203111e-8f0e-11eb-8dcd-0242ac130003
    model: R2D2 NewFuture
    oamIpv4: 10.10.10.11
    vendor: VendorB
  7dev:
    id: f203136c-8f0e-11eb-8dcd-0242ac130003
    model: 7200DEV
    oamIpv4: 10.10.10.11
    vendor: VendorB
  nsky:
    id: f203143e-8f0e-11eb-8dcd-0242ac130003
    model: TheSkyIsTheLimit
    oamIpv4: 10.10.10.11
    vendor: VendorC
  1OSF:
    id: f20317e0-8f0e-11eb-8dcd-0242ac130003
    model: OpenSourceFirst
    oamIpv4: 10.10.10.11
    vendor: VendorC
  no5g:
    id: f20318b2-8f0e-11eb-8dcd-0242ac130003
    model: PNF5G
    oamIpv4: 10.10.10.11
    vendor: VendorA
  vb5g:
    id: f2031966-8f0e-11eb-8dcd-0242ac130003
    model: PNF5G
    oamIpv4: 10.10.10.11
    vendor: VendorB
  ngce:
    id: f2031a2e-8f0e-11eb-8dcd-0242ac130003
    model: NGCell
    oamIpv4: 10.10.10.11
    vendor: VendorC
  scru:
    id: 4365333e-8f0f-11eb-8dcd-0242ac130003
    model: O-RU
    oamIpv4: 10.10.10.11
    vendor: VendorC
    interface: 4af8681f-f2e4-4058-8052-4e9343ee7bf2
  sdnr:
    id: 4365360e-8f0f-11eb-8dcd-0242ac130003
    model: "ONAP SDN Controller for Radio"
    oamIpv4: 127.0.0.1
    vendor: ONAP
    interface: northbound-interface
