Merge "[COMMON] Get rid of "x-hack" in shell scripts"
authorSylvain Desbureaux <sylvain.desbureaux@orange.com>
Tue, 15 Jun 2021 14:57:53 +0000 (14:57 +0000)
committerGerrit Code Review <gerrit@onap.org>
Tue, 15 Jun 2021 14:57:53 +0000 (14:57 +0000)
153 files changed:
kubernetes/appc/values.yaml
kubernetes/cds/components/cds-blueprints-processor/requirements.yaml
kubernetes/cds/components/cds-blueprints-processor/templates/deployment.yaml
kubernetes/cds/components/cds-blueprints-processor/values.yaml
kubernetes/cds/components/cds-command-executor/requirements.yaml
kubernetes/cds/components/cds-command-executor/templates/deployment.yaml
kubernetes/cds/components/cds-command-executor/values.yaml
kubernetes/cds/components/cds-py-executor/requirements.yaml
kubernetes/cds/components/cds-py-executor/templates/deployment.yaml
kubernetes/cds/components/cds-py-executor/values.yaml
kubernetes/cds/components/cds-sdc-listener/requirements.yaml
kubernetes/cds/components/cds-sdc-listener/templates/deployment.yaml
kubernetes/cds/components/cds-sdc-listener/values.yaml
kubernetes/cds/components/cds-ui/requirements.yaml
kubernetes/cds/components/cds-ui/templates/deployment.yaml
kubernetes/cds/components/cds-ui/values.yaml
kubernetes/common/cmpv2Certificate/templates/_certServiceClient.tpl [deleted file]
kubernetes/common/cmpv2Config/values.yaml
kubernetes/common/dgbuilder/requirements.yaml
kubernetes/common/dgbuilder/templates/deployment.yaml
kubernetes/common/dgbuilder/values.yaml
kubernetes/common/etcd-init/.helmignore [new file with mode: 0644]
kubernetes/common/etcd-init/Chart.yaml [moved from kubernetes/common/cmpv2Certificate/Chart.yaml with 83% similarity]
kubernetes/common/etcd-init/requirements.yaml [moved from kubernetes/common/cmpv2Certificate/requirements.yaml with 87% similarity]
kubernetes/common/etcd-init/templates/job.yaml [new file with mode: 0644]
kubernetes/common/etcd-init/templates/secret.yaml [moved from kubernetes/common/cmpv2Certificate/values.yaml with 86% similarity]
kubernetes/common/etcd-init/values.yaml [new file with mode: 0644]
kubernetes/common/etcd/templates/statefulset.yaml
kubernetes/common/repositoryGenerator/templates/_repository.tpl
kubernetes/common/repositoryGenerator/values.yaml
kubernetes/dcaegen2-services/common/dcaegen2-services-common/templates/_deployment.tpl
kubernetes/dcaegen2-services/components/dcae-hv-ves-collector/values.yaml
kubernetes/dcaegen2-services/components/dcae-tcagen2/values.yaml
kubernetes/dcaegen2-services/components/dcae-ves-collector/values.yaml
kubernetes/dcaegen2-services/resources/external/map/schema-map.json [new file with mode: 0644]
kubernetes/dcaegen2-services/resources/external/schemas/sa91-rel16/5gcNrm.yaml [new file with mode: 0644]
kubernetes/dcaegen2-services/resources/external/schemas/sa91-rel16/FileDataReportingMnS.yaml [moved from kubernetes/dcaegen2/resources/external/schema/rel16/PerDataFileReportMnS.yaml with 88% similarity]
kubernetes/dcaegen2-services/resources/external/schemas/sa91-rel16/comDefs.yaml [new file with mode: 0644]
kubernetes/dcaegen2-services/resources/external/schemas/sa91-rel16/faultMnS.yaml [moved from kubernetes/dcaegen2/resources/external/schema/rel16/faultMnS.yaml with 82% similarity]
kubernetes/dcaegen2-services/resources/external/schemas/sa91-rel16/genericNrm.yaml [new file with mode: 0644]
kubernetes/dcaegen2-services/resources/external/schemas/sa91-rel16/heartbeatNtf.yaml [moved from kubernetes/dcaegen2/resources/external/schema/rel16/heartbeatNtf.yaml with 52% similarity]
kubernetes/dcaegen2-services/resources/external/schemas/sa91-rel16/nrNrm.yaml [new file with mode: 0644]
kubernetes/dcaegen2-services/resources/external/schemas/sa91-rel16/perfMnS.yaml [new file with mode: 0644]
kubernetes/dcaegen2-services/resources/external/schemas/sa91-rel16/provMnS.yaml [moved from kubernetes/dcaegen2/resources/external/schema/rel16/provMnS.yaml with 65% similarity]
kubernetes/dcaegen2-services/resources/external/schemas/sa91-rel16/sliceNrm.yaml [new file with mode: 0644]
kubernetes/dcaegen2-services/templates/configmap.yaml
kubernetes/dcaegen2/components/dcae-bootstrap/values.yaml
kubernetes/dcaegen2/components/dcae-cloudify-manager/resources/config/plugins/k8s-plugin.json
kubernetes/dcaegen2/components/dcae-cloudify-manager/values.yaml
kubernetes/dcaegen2/components/dcae-ves-openapi-manager/templates/deployment.yaml
kubernetes/dcaegen2/resources/external/map/schema-map.json [deleted file]
kubernetes/dcaegen2/templates/configmap.yaml
kubernetes/onap/resources/overrides/onap-all.yaml
kubernetes/onap/resources/overrides/oom-cert-service-environment.yaml
kubernetes/onap/values.yaml
kubernetes/oof/components/oof-has/components/oof-has-api/templates/deployment.yaml
kubernetes/oof/components/oof-has/components/oof-has-api/values.yaml
kubernetes/oof/components/oof-has/components/oof-has-controller/templates/deployment.yaml
kubernetes/oof/components/oof-has/components/oof-has-controller/values.yaml
kubernetes/oof/components/oof-has/components/oof-has-data/templates/deployment.yaml
kubernetes/oof/components/oof-has/components/oof-has-data/values.yaml
kubernetes/oof/components/oof-has/components/oof-has-reservation/templates/deployment.yaml
kubernetes/oof/components/oof-has/components/oof-has-reservation/values.yaml
kubernetes/oof/components/oof-has/components/oof-has-solver/templates/deployment.yaml
kubernetes/oof/components/oof-has/components/oof-has-solver/values.yaml
kubernetes/oof/components/oof-has/requirements.yaml
kubernetes/oof/components/oof-has/resources/config/conductor.conf
kubernetes/oof/components/oof-has/resources/config/healthcheck.json [deleted file]
kubernetes/oof/components/oof-has/resources/config/onboard.json [deleted file]
kubernetes/oof/components/oof-has/templates/job-healthcheck.yaml [deleted file]
kubernetes/oof/components/oof-has/templates/job-onboard.yaml [deleted file]
kubernetes/oof/components/oof-has/values.yaml
kubernetes/oof/components/oof-templates/templates/_secret.tpl [new file with mode: 0644]
kubernetes/platform/components/cmpv2-cert-provider/templates/configuration.yaml
kubernetes/platform/components/cmpv2-cert-provider/templates/deployment.yaml
kubernetes/platform/components/cmpv2-cert-provider/templates/roles.yaml
kubernetes/platform/components/cmpv2-cert-provider/templates/service.yaml
kubernetes/platform/components/cmpv2-cert-provider/values.yaml
kubernetes/platform/values.yaml
kubernetes/sdc/components/sdc-be/requirements.yaml
kubernetes/sdc/components/sdc-be/templates/deployment.yaml
kubernetes/sdc/components/sdc-be/values.yaml
kubernetes/sdc/components/sdc-cs/requirements.yaml
kubernetes/sdc/components/sdc-cs/templates/job.yaml
kubernetes/sdc/components/sdc-cs/values.yaml
kubernetes/sdc/components/sdc-fe/requirements.yaml
kubernetes/sdc/components/sdc-fe/templates/deployment.yaml
kubernetes/sdc/components/sdc-fe/values.yaml
kubernetes/sdc/components/sdc-onboarding-be/requirements.yaml
kubernetes/sdc/components/sdc-onboarding-be/templates/deployment.yaml
kubernetes/sdc/components/sdc-onboarding-be/values.yaml
kubernetes/sdc/components/sdc-wfd-be/requirements.yaml
kubernetes/sdc/components/sdc-wfd-be/templates/deployment.yaml
kubernetes/sdc/components/sdc-wfd-be/values.yaml
kubernetes/sdc/components/sdc-wfd-fe/requirements.yaml
kubernetes/sdc/components/sdc-wfd-fe/templates/deployment.yaml
kubernetes/sdc/components/sdc-wfd-fe/values.yaml
kubernetes/sdnc/requirements.yaml
kubernetes/sdnc/resources/config/conf/mountpoint-registrar.properties
kubernetes/sdnc/templates/certificates.yaml
kubernetes/sdnc/templates/statefulset.yaml
kubernetes/sdnc/values.yaml
kubernetes/so/components/so-admin-cockpit/requirements.yaml
kubernetes/so/components/so-admin-cockpit/templates/deployment.yaml
kubernetes/so/components/so-admin-cockpit/values.yaml
kubernetes/so/components/so-appc-orchestrator/requirements.yaml
kubernetes/so/components/so-appc-orchestrator/templates/deployment.yaml
kubernetes/so/components/so-appc-orchestrator/values.yaml
kubernetes/so/components/so-bpmn-infra/requirements.yaml
kubernetes/so/components/so-bpmn-infra/templates/deployment.yaml
kubernetes/so/components/so-bpmn-infra/values.yaml
kubernetes/so/components/so-catalog-db-adapter/requirements.yaml
kubernetes/so/components/so-catalog-db-adapter/templates/deployment.yaml
kubernetes/so/components/so-catalog-db-adapter/values.yaml
kubernetes/so/components/so-cnf-adapter/requirements.yaml
kubernetes/so/components/so-cnf-adapter/templates/deployment.yaml
kubernetes/so/components/so-cnf-adapter/values.yaml
kubernetes/so/components/so-etsi-nfvo-ns-lcm/requirements.yaml
kubernetes/so/components/so-etsi-nfvo-ns-lcm/templates/deployment.yaml
kubernetes/so/components/so-etsi-nfvo-ns-lcm/values.yaml
kubernetes/so/components/so-etsi-sol003-adapter/requirements.yaml
kubernetes/so/components/so-etsi-sol003-adapter/templates/deployment.yaml
kubernetes/so/components/so-etsi-sol003-adapter/values.yaml
kubernetes/so/components/so-etsi-sol005-adapter/requirements.yaml
kubernetes/so/components/so-etsi-sol005-adapter/templates/deployment.yaml
kubernetes/so/components/so-etsi-sol005-adapter/values.yaml
kubernetes/so/components/so-mariadb/requirements.yaml
kubernetes/so/components/so-mariadb/templates/job.yaml
kubernetes/so/components/so-mariadb/values.yaml
kubernetes/so/components/so-nssmf-adapter/requirements.yaml
kubernetes/so/components/so-nssmf-adapter/templates/deployment.yaml
kubernetes/so/components/so-nssmf-adapter/values.yaml
kubernetes/so/components/so-oof-adapter/requirements.yaml
kubernetes/so/components/so-oof-adapter/templates/deployment.yaml
kubernetes/so/components/so-oof-adapter/values.yaml
kubernetes/so/components/so-openstack-adapter/requirements.yaml
kubernetes/so/components/so-openstack-adapter/templates/deployment.yaml
kubernetes/so/components/so-openstack-adapter/values.yaml
kubernetes/so/components/so-request-db-adapter/requirements.yaml
kubernetes/so/components/so-request-db-adapter/templates/deployment.yaml
kubernetes/so/components/so-request-db-adapter/values.yaml
kubernetes/so/components/so-sdc-controller/requirements.yaml
kubernetes/so/components/so-sdc-controller/templates/deployment.yaml
kubernetes/so/components/so-sdc-controller/values.yaml
kubernetes/so/components/so-sdnc-adapter/requirements.yaml
kubernetes/so/components/so-sdnc-adapter/templates/deployment.yaml
kubernetes/so/components/so-sdnc-adapter/values.yaml
kubernetes/so/components/so-ve-vnfm-adapter/requirements.yaml
kubernetes/so/components/so-ve-vnfm-adapter/templates/deployment.yaml
kubernetes/so/components/so-ve-vnfm-adapter/values.yaml
kubernetes/so/requirements.yaml
kubernetes/so/templates/deployment.yaml
kubernetes/so/values.yaml

index 83d00a7..e3f88b1 100644 (file)
@@ -143,7 +143,8 @@ dgbuilder:
     dbServiceName: *appc-db
   service:
     name: appc-dgbuilder
-
+  serviceAccount:
+    nameOverride: appc-dgbuilder
   ingress:
     enabled: false
     service:
index d0ff623..7a3a920 100755 (executable)
@@ -19,3 +19,6 @@ dependencies:
   - name: repositoryGenerator
     version: ~8.x-0
     repository: '@local'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index c2e0342..fd5265d 100755 (executable)
@@ -190,6 +190,7 @@ spec:
         affinity:
 {{ toYaml .Values.affinity | indent 10 }}
         {{- end }}
+      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
       volumes:
         - name: localtime
           hostPath:
index fe60b80..71f934f 100755 (executable)
@@ -178,3 +178,9 @@ resources:
       cpu: 2
       memory: 4Gi
   unlimited: {}
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: cds-blueprints-processor
+  roles:
+    - read
index bd647a6..96ce828 100755 (executable)
@@ -19,3 +19,6 @@ dependencies:
   - name: repositoryGenerator
     version: ~8.x-0
     repository: '@local'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index 40238c2..523339c 100755 (executable)
@@ -86,6 +86,7 @@ spec:
         affinity:
 {{ toYaml .Values.affinity | indent 10 }}
         {{- end }}
+      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
       volumes:
         - name: localtime
           hostPath:
index f867565..12a7fe9 100755 (executable)
@@ -91,3 +91,9 @@ resources:
       cpu: 2
       memory: 4Gi
   unlimited: {}
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: cds-command-executor
+  roles:
+    - read
index 626de2f..6b7064c 100755 (executable)
@@ -19,3 +19,6 @@ dependencies:
   - name: repositoryGenerator
     version: ~8.x-0
     repository: '@local'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index d7b2959..754e0d0 100755 (executable)
@@ -78,6 +78,7 @@ spec:
         affinity:
 {{ toYaml .Values.affinity | nindent 10 }}
         {{- end }}
+      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
       volumes:
         - name: localtime
           hostPath:
index af042c1..b7338f8 100755 (executable)
@@ -110,3 +110,9 @@ resources:
       cpu: 2
       memory: 4Gi
   unlimited: {}
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: cds-py-executor
+  roles:
+    - read
index bd647a6..96ce828 100755 (executable)
@@ -19,3 +19,6 @@ dependencies:
   - name: repositoryGenerator
     version: ~8.x-0
     repository: '@local'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index 7dca49c..4ac8470 100644 (file)
@@ -94,6 +94,7 @@ spec:
         affinity:
 {{ toYaml .Values.affinity | indent 10 }}
         {{- end }}
+      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
       volumes:
         - name: {{ include "common.fullname" . }}-config
           configMap:
index e46539f..4a67317 100644 (file)
@@ -99,3 +99,9 @@ resources:
       cpu: 2
       memory: 4Gi
   unlimited: {}
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: cds-sdc-listener
+  roles:
+    - read
index a4e5fe5..8f6d158 100644 (file)
@@ -22,3 +22,6 @@ dependencies:
   - name: repositoryGenerator
     version: ~8.x-0
     repository: '@local'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index 359c713..6457ce3 100644 (file)
@@ -99,6 +99,7 @@ spec:
         affinity:
 {{ toYaml .Values.affinity | indent 10 }}
         {{- end }}
+      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
       volumes: {{ include "common.certInitializer.volumes" . | nindent 8 }}
         - name: localtime
           hostPath:
index 697602f..e91e999 100644 (file)
@@ -127,3 +127,9 @@ resources:
       cpu: 200m
       memory: 200Mi
   unlimited: {}
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: cds-ui
+  roles:
+    - read
diff --git a/kubernetes/common/cmpv2Certificate/templates/_certServiceClient.tpl b/kubernetes/common/cmpv2Certificate/templates/_certServiceClient.tpl
deleted file mode 100644 (file)
index f80b06b..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
-{{/*
-# Copyright Â© 2021 Nokia
-#
-# 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.
-*/}}
-
-{{/*
-In order to use certServiceClient it is needed do define certificates array in target component values.yaml. Each
-certificate will be requested from separate init container
-
-Minimum example of array in target component values.yaml:
-certificates:
-  - mountPath:  /var/custom-certs
-    commonName: common-name
-
-Full example (other fields are ignored):
-certificates:
-  - mountPath:  /var/custom-certs
-    caName: RA
-    keystore:
-      outputType:
-        - jks
-    commonName: common-name
-    dnsNames:
-      - dns-name-1
-      - dns-name-2
-    ipAddresses:
-      - 192.168.0.1
-      - 192.168.0.2
-    emailAddresses:
-      - email-1@onap.org
-      - email-2@onap.org
-    uris:
-      - http://uri-1.onap.org
-      - http://uri-2.onap.org
-    subject:
-      organization: Linux-Foundation
-      country: US
-      locality: San Francisco
-      province: California
-      organizationalUnit: ONAP
-
-There also need to be some includes used in a target component deployment (indent values may need to be adjusted):
-  1. In initContainers section:
-    {{ include "common.certServiceClient.initContainer" . | indent 6 }}
-  2. In volumeMounts section of container using certificates:
-    {{ include "common.certServiceClient.volumeMounts" . | indent 10 }}
-  3. In volumes section:
-    {{ include "common.certServiceClient.volumes" . | indent 8 }}
-
-*/}}
-
-{{- define "common.certServiceClient.initContainer" -}}
-{{- $dot := default . .dot -}}
-{{- $initRoot := default $dot.Values.cmpv2Certificate.cmpv2Config .initRoot -}}
-{{- $subchartGlobal := mergeOverwrite (deepCopy $initRoot.global) $dot.Values.global -}}
-{{- if and $subchartGlobal.cmpv2Enabled (not $subchartGlobal.CMPv2CertManagerIntegration) -}}
-{{- range $index, $certificate := $dot.Values.certificates -}}
-{{/*# General certifiacate attributes  #*/}}
-{{- $commonName     := (required "'commonName' for Certificate is required." $certificate.commonName) -}}
-{{/*# SAN's #*/}}
-{{- $dnsNames       := default (list)    $certificate.dnsNames       -}}
-{{- $ipAddresses    := default (list)    $certificate.ipAddresses    -}}
-{{- $uris           := default (list)    $certificate.uris           -}}
-{{- $emailAddresses := default (list)    $certificate.emailAddresses   -}}
-{{- $sansList := concat $dnsNames $ipAddresses $uris $emailAddresses   -}}
-{{- $sans := join "," $sansList }}
-{{/*# Subject #*/}}
-{{- $organization   := $subchartGlobal.certificate.default.subject.organization        -}}
-{{- $country        := $subchartGlobal.certificate.default.subject.country             -}}
-{{- $locality       := $subchartGlobal.certificate.default.subject.locality            -}}
-{{- $province       := $subchartGlobal.certificate.default.subject.province            -}}
-{{- $orgUnit        := $subchartGlobal.certificate.default.subject.organizationalUnit  -}}
-{{- if $certificate.subject -}}
-{{- $organization   := $certificate.subject.organization -}}
-{{- $country        := $certificate.subject.country -}}
-{{- $locality       := $certificate.subject.locality -}}
-{{- $province       := $certificate.subject.province -}}
-{{- $orgUnit        := $certificate.subject.organizationalUnit -}}
-{{- end -}}
-{{- $caName := default $subchartGlobal.platform.certServiceClient.envVariables.caName $certificate.caName -}}
-{{- $outputType := $subchartGlobal.platform.certServiceClient.envVariables.outputType -}}
-{{- if $certificate.keystore -}}
-{{- $outputTypeList := (required "'outputType' in 'keystore' section is required." $certificate.keystore.outputType) -}}
-{{- $outputType = mustFirst ($outputTypeList) | upper -}}
-{{- end -}}
-{{- $requestUrl := $subchartGlobal.platform.certServiceClient.envVariables.requestURL -}}
-{{- $certPath := $subchartGlobal.platform.certServiceClient.envVariables.certPath -}}
-{{- $requestTimeout := $subchartGlobal.platform.certServiceClient.envVariables.requestTimeout -}}
-{{- $certificatesSecret:= $subchartGlobal.platform.certServiceClient.clientSecretName -}}
-{{- $certificatesSecretMountPath := $subchartGlobal.platform.certServiceClient.certificatesSecretMountPath -}}
-{{- $keystorePath := (printf "%s%s" $subchartGlobal.platform.certServiceClient.certificatesSecretMountPath $subchartGlobal.platform.certificates.keystoreKeyRef ) -}}
-{{- $keystorePasswordSecret := $subchartGlobal.platform.certificates.keystorePasswordSecretName -}}
-{{- $keystorePasswordSecretKey := $subchartGlobal.platform.certificates.keystorePasswordSecretKey -}}
-{{- $truststorePath := (printf "%s%s" $subchartGlobal.platform.certServiceClient.certificatesSecretMountPath $subchartGlobal.platform.certificates.truststoreKeyRef ) -}}
-{{- $truststorePasswordSecret := $subchartGlobal.platform.certificates.truststorePasswordSecretName -}}
-{{- $truststorePasswordSecretKey := $subchartGlobal.platform.certificates.truststorePasswordSecretKey -}}
-- name: certs-init-{{ $index }}
-  image: {{ include "repositoryGenerator.image.certserviceclient" $dot }}
-  imagePullPolicy: {{ $dot.Values.global.pullPolicy | default $dot.Values.pullPolicy }}
-  env:
-    - name: REQUEST_URL
-      value: {{ $requestUrl | quote }}
-    - name: REQUEST_TIMEOUT
-      value: {{ $requestTimeout | quote }}
-    - name: OUTPUT_PATH
-      value: {{ $certPath | quote }}
-    - name: OUTPUT_TYPE
-      value: {{ $outputType | quote }}
-    - name: CA_NAME
-      value: {{ $caName | quote }}
-    - name: COMMON_NAME
-      value: {{ $commonName | quote }}
-    - name: SANS
-      value: {{ $sans | quote }}
-    - name: ORGANIZATION
-      value: {{ $organization | quote }}
-    - name: ORGANIZATION_UNIT
-      value: {{ $orgUnit | quote }}
-    - name: LOCATION
-      value: {{ $locality | quote }}
-    - name: STATE
-      value: {{ $province | quote }}
-    - name: COUNTRY
-      value: {{ $country | quote }}
-    - name: KEYSTORE_PATH
-      value: {{ $keystorePath | quote }}
-    - name: KEYSTORE_PASSWORD
-      valueFrom:
-        secretKeyRef:
-          name: {{ $keystorePasswordSecret | quote}}
-          key: {{ $keystorePasswordSecretKey | quote}}
-    - name: TRUSTSTORE_PATH
-      value: {{ $truststorePath | quote }}
-    - name: TRUSTSTORE_PASSWORD
-      valueFrom:
-        secretKeyRef:
-          name: {{ $truststorePasswordSecret | quote}}
-          key: {{ $truststorePasswordSecretKey | quote}}
-  terminationMessagePath: /dev/termination-log
-  terminationMessagePolicy: File
-  volumeMounts:
-    - mountPath: {{ $certPath }}
-      name: cmpv2-certs-volume-{{ $index }}
-    - mountPath: {{ $certificatesSecretMountPath }}
-      name: certservice-tls-volume
-{{- end -}}
-{{- end -}}
-{{- end -}}
-
-{{- define "common.certServiceClient.volumes" -}}
-{{- $dot := default . .dot -}}
-{{- $initRoot := default $dot.Values.cmpv2Certificate.cmpv2Config .initRoot -}}
-{{- $subchartGlobal := mergeOverwrite (deepCopy $initRoot.global) $dot.Values.global -}}
-{{- if and $subchartGlobal.cmpv2Enabled (not $subchartGlobal.CMPv2CertManagerIntegration) -}}
-{{- $certificatesSecretName := $subchartGlobal.platform.certificates.clientSecretName -}}
-- name: certservice-tls-volume
-  secret:
-    secretName: {{ $certificatesSecretName }}
-{{ range $index, $certificate := $dot.Values.certificates -}}
-- name: cmpv2-certs-volume-{{ $index }}
-  emptyDir:
-    medium: Memory
-{{- end -}}
-{{- end -}}
-{{- end -}}
-
-{{- define "common.certServiceClient.volumeMounts" -}}
-{{- $dot := default . .dot -}}
-{{- $initRoot := default $dot.Values.cmpv2Certificate.cmpv2Config .initRoot -}}
-{{- $subchartGlobal := mergeOverwrite (deepCopy $initRoot.global) $dot.Values.global -}}
-{{- if and $subchartGlobal.cmpv2Enabled (not $subchartGlobal.CMPv2CertManagerIntegration) -}}
-{{- range $index, $certificate := $dot.Values.certificates -}}
-{{- $mountPath := $certificate.mountPath -}}
-- mountPath: {{ $mountPath }}
-  name: cmpv2-certs-volume-{{ $index }}
-{{ end -}}
-{{- end -}}
-{{- end -}}
index 695e406..02595b3 100644 (file)
@@ -15,7 +15,6 @@ global:
 
   # Enabling CMPv2
   cmpv2Enabled: true
-  CMPv2CertManagerIntegration: false
 
   certificate:
     default:
@@ -35,17 +34,6 @@ global:
       keystorePasswordSecretKey: password
       truststorePasswordSecretName: oom-cert-service-truststore-password
       truststorePasswordSecretKey: password
-    certServiceClient:
-      image: onap/org.onap.oom.platform.cert-service.oom-certservice-client:2.3.3
-      certificatesSecretMountPath: /etc/onap/oom/certservice/certs/
-      envVariables:
-        certPath: "/var/custom-certs"
-        # Certificate related
-        caName: "RA"
-        # Client configuration related
-        requestURL: "https://oom-cert-service:8443/v1/certificate/"
-        requestTimeout: "30000"
-        outputType: "P12"
     certPostProcessor:
       image: onap/org.onap.oom.platform.cert-service.oom-certservice-post-processor:2.3.3
 
index 0157b70..1bbab11 100644 (file)
@@ -22,3 +22,6 @@ dependencies:
   - name: repositoryGenerator
     version: ~8.x-0
     repository: 'file://../repositoryGenerator'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: 'file://../serviceAccount'
index ad3e4cf..6538ad0 100644 (file)
@@ -128,6 +128,7 @@ spec:
         affinity:
 {{ toYaml .Values.affinity | indent 10 }}
         {{- end }}
+      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
       volumes:
 {{ include "common.certInitializer.volumes" . | nindent 8 }}
         - name: localtime
index ae1d857..0f91bbd 100644 (file)
@@ -186,3 +186,8 @@ resources:
       memory: 4Gi
   unlimited: {}
 
+#Pods Service Account
+serviceAccount:
+  nameOverride: dgbuilder
+  roles:
+    - read
diff --git a/kubernetes/common/etcd-init/.helmignore b/kubernetes/common/etcd-init/.helmignore
new file mode 100644 (file)
index 0000000..f0c1319
--- /dev/null
@@ -0,0 +1,21 @@
+# Patterns to ignore when building packages.
+# This supports shell glob matching, relative path matching, and
+# negation (prefixed with !). Only one pattern per line.
+.DS_Store
+# Common VCS dirs
+.git/
+.gitignore
+.bzr/
+.bzrignore
+.hg/
+.hgignore
+.svn/
+# Common backup files
+*.swp
+*.bak
+*.tmp
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
similarity index 83%
rename from kubernetes/common/cmpv2Certificate/Chart.yaml
rename to kubernetes/common/etcd-init/Chart.yaml
index 6641ec6..20f5ac4 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright Â© 2021 Nokia
+# Copyright (C) 2021 Wipro Limited.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -13,6 +13,6 @@
 # limitations under the License.
 
 apiVersion: v1
-description: Template used to add cmpv2 certificates to components
-name: cmpv2Certificate
+description: Chart for etcd init job
+name: etcd-init
 version: 8.0.0
@@ -1,4 +1,4 @@
-# Copyright Â© 2021 Nokia
+# Copyright (C) 2021 Wipro Limited.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -19,6 +19,3 @@ dependencies:
   - name: repositoryGenerator
     version: ~8.x-0
     repository: 'file://../repositoryGenerator'
-  - name: cmpv2Config
-    version: ~8.x-0
-    repository: 'file://../cmpv2Config'
diff --git a/kubernetes/common/etcd-init/templates/job.yaml b/kubernetes/common/etcd-init/templates/job.yaml
new file mode 100644 (file)
index 0000000..69bcfaa
--- /dev/null
@@ -0,0 +1,104 @@
+{{/*
+# Copyright (C) 2021 Wipro Limited.
+#
+# 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.
+*/}}
+apiVersion: batch/v1
+kind: Job
+metadata:
+  name: {{ include "common.fullname" . }}-job
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ include "common.release" . }}
+    heritage: {{ .Release.Service }}
+spec:
+  backoffLimit: {{ .Values.backoffLimit }}
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}
+        release: {{ include "common.release" . }}
+      name: {{ include "common.name" . }}
+    spec:
+      initContainers:
+      - name: {{ include "common.name" . }}-readiness
+        command:
+        - /app/ready.py
+        args:
+        - --container-name
+        - {{ .Values.etcd.containerName }}
+        env:
+        - name: NAMESPACE
+          valueFrom:
+            fieldRef:
+              apiVersion: v1
+              fieldPath: metadata.namespace
+        image: {{ include "repositoryGenerator.image.readiness" . }}
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+      containers:
+      - name: {{ include "common.name" . }}
+        image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.image }}
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        command:
+          - /bin/sh
+          - -ec
+          - |
+            # Create users
+            export ETCDCTL_ENDPOINTS=http://${ETCD_HOST}:${ETCD_PORT}
+            export ETCDCTL_API=3
+            echo "${ROOT_PASSWORD}" | etcdctl user add root --interactive=false
+            echo "${APP_PASSWORD}" | etcdctl user add ${APP_USER} --interactive=false
+
+            # Create roles
+            etcdctl role add ${APP_ROLE}
+            etcdctl role grant-permission ${APP_ROLE} --prefix=true readwrite ${KEY_PREFIX}
+
+            etcdctl user grant-role ${APP_USER} ${APP_ROLE}
+            etcdctl auth enable
+        env:
+        - name: ALLOW_NONE_AUTHENTICATION
+          value: "yes"
+        - name: ETCD_HOST
+          value: "{{ .Values.etcd.serviceName }}.{{ include "common.namespace" . }}"
+        - name: ETCD_PORT
+          value: "{{ .Values.etcd.port }}"
+        - name: ROOT_PASSWORD
+          {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "root-password" "key" "password" ) | indent 10 }}
+        - name: APP_USER
+          {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "app-creds" "key" "login") | indent 10 }}
+        - name: APP_PASSWORD
+          {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "app-creds" "key" "password") | indent 10 }}
+        - name: APP_ROLE
+          value: "{{ .Values.config.appRole }}"
+        - name: KEY_PREFIX
+          value: "{{ .Values.config.keyPrefix }}"
+        volumeMounts:
+        - mountPath: /etc/localtime
+          name: localtime
+          readOnly: true
+        resources: {{ include "common.resources" . | nindent 12 }}
+      {{- if .Values.nodeSelector }}
+      nodeSelector: {{ toYaml .Values.nodeSelector | nindent 10 }}
+      {{- end -}}
+      {{- if .Values.affinity }}
+      affinity: {{ toYaml .Values.affinity | nindent 10 }}
+      {{- end }}
+      volumes:
+      - name: localtime
+        hostPath:
+          path: /etc/localtime
+      restartPolicy: Never
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
@@ -1,4 +1,5 @@
-# Copyright Â© 2021 Nokia
+{{/*
+# Copyright (C) 2021 Wipro Limited.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -11,3 +12,6 @@
 # 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.
+*/}}
+
+{{ include "common.secretFast" . }}
diff --git a/kubernetes/common/etcd-init/values.yaml b/kubernetes/common/etcd-init/values.yaml
new file mode 100644 (file)
index 0000000..c99c9f1
--- /dev/null
@@ -0,0 +1,74 @@
+# Copyright (C) 2021 Wipro Limited.
+#
+# 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.
+
+#################################################################
+# Global configuration defaults.
+#################################################################
+global: {}
+
+#################################################################
+# Secrets metaconfig
+#################################################################
+secrets:
+  - uid: root-password
+    type: password
+    externalSecret: '{{ tpl (default "" .Values.config.userRootSecret) . }}'
+    password: '{{  .Values.config.userRootPassword }}'
+  - uid: app-creds
+    type: basicAuth
+    externalSecret: '{{ tpl (default "" .Values.config.userCredentialsExternalSecret) . }}'
+    login: '{{ .Values.config.appUser }}'
+    password: '{{ .Values.config.appPassword }}'
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+
+image: bitnami/etcd:3.3.15
+pullPolicy: Always
+backoffLimit: 20
+
+nodeSelector: {}
+
+affinity: {}
+
+etcd:
+  serviceName: k8s-etcd
+  port : 2379
+  containerName: k8s-etcd
+
+config:
+  userRootSecret: root
+#  userCredentialsExternalSecret:
+  appUser: user
+  appRole: role
+  keyPrefix: key
+
+flavor: small
+resources:
+  small:
+    limits:
+      cpu: 100m
+      memory: 500Mi
+    requests:
+      cpu: 10m
+      memory: 10Mi
+  large:
+    limits:
+      cpu: 200m
+      memory: 500Mi
+    requests:
+      cpu: 20m
+      memory: 20Mi
+  unlimited: {}
index a343d4f..48c8b6d 100644 (file)
@@ -49,7 +49,7 @@ spec:
 {{ toYaml .Values.tolerations | indent 8 }}
 {{- end }}
       containers:
-      - name: {{ include "common.fullname" .  }}
+      - name: {{ include "common.name" .  }}
         image: {{ include "repositoryGenerator.googleK8sRepository" . }}/{{ .Values.image }}
         imagePullPolicy: "{{ .Values.pullPolicy }}"
         ports:
index 91f21ab..87dd5c2 100644 (file)
   {{- include "repositoryGenerator.image._helper" (merge (dict "image" "curlImage") .) }}
 {{- end -}}
 
-{{- define "repositoryGenerator.image.certserviceclient" -}}
-  {{- include "repositoryGenerator.image._helper" (merge (dict "image" "certServiceClientImage") .) }}
-{{- end -}}
-
 {{- define "repositoryGenerator.image.dcaepolicysync" -}}
   {{- include "repositoryGenerator.image._helper" (merge (dict "image" "dcaePolicySyncImage") .) }}
 {{- end -}}
index 8a68f6d..bf21e2d 100644 (file)
@@ -23,7 +23,6 @@ global:
   # common global images
   busyboxImage: busybox:1.32
   curlImage: curlimages/curl:7.69.1
-  certServiceClientImage: onap/org.onap.oom.platform.cert-service.oom-certservice-client:2.3.3
   envsubstImage: dibi/envsubst:1
   # there's only latest image for htpasswd
   htpasswdImage: xmartlabs/htpasswd:latest
@@ -56,7 +55,6 @@ global:
 imageRepoMapping:
   busyboxImage: dockerHubRepository
   curlImage: dockerHubRepository
-  certServiceClientImage: repository
   envsubstImage: dockerHubRepository
   htpasswdImage: dockerHubRepository
   jreImage: repository
index 310d9ae..328a4c6 100644 (file)
@@ -495,7 +495,7 @@ spec:
 */}}
 {{- define "dcaegen2-services-common.shouldUseCmpv2Certificates" -}}
   {{- $certDir := default "" .Values.certDirectory . -}}
-  {{- if (and $certDir .Values.certificates .Values.global.cmpv2Enabled .Values.global.CMPv2CertManagerIntegration .Values.useCmpv2Certificates) -}}
+  {{- if (and $certDir .Values.certificates .Values.global.cmpv2Enabled .Values.useCmpv2Certificates) -}}
   true
   {{- end -}}
 {{- end -}}
index 223789a..64e4ba9 100644 (file)
@@ -68,7 +68,6 @@ secrets:
 # It is used only when:
 # - certDirectory is set
 # - global cmpv2Enabled flag is set to true
-# - global CertManagerIntegration flag is set to true
 # - flag useCmpv2Certificates is set to true
 # Disabled by default
 useCmpv2Certificates: false
index 89cf134..f4516ed 100644 (file)
@@ -41,7 +41,7 @@ consulLoaderImage: onap/org.onap.dcaegen2.deployments.consul-loader-container:1.
 # Application configuration defaults.
 #################################################################
 # application image
-image: onap/org.onap.dcaegen2.analytics.tca-gen2.dcae-analytics-tca-web:1.2.1
+image: onap/org.onap.dcaegen2.analytics.tca-gen2.dcae-analytics-tca-web:1.3.0
 pullPolicy: Always
 
 # log directory where logging sidecar should look for log files
index 9e08ea1..982d770 100644 (file)
@@ -61,7 +61,6 @@ tlsServer: true
 # It is used only when:
 # - certDirectory is set
 # - global cmpv2Enabled flag is set to true
-# - global CertManagerIntegration flag is set to true
 # - flag useCmpv2Certificates is set to true
 # Disabled by default
 useCmpv2Certificates: false
diff --git a/kubernetes/dcaegen2-services/resources/external/map/schema-map.json b/kubernetes/dcaegen2-services/resources/external/map/schema-map.json
new file mode 100644 (file)
index 0000000..498521c
--- /dev/null
@@ -0,0 +1,18 @@
+[
+  {
+    "publicURL": "https://forge.3gpp.org/rep/sa5/MnS/blob/Rel-16-SA-91/OpenAPI/faultMnS.yaml",
+    "localURL": "3gpp/rep/sa5/MnS/blob/Rel-16-SA-91/OpenAPI/faultMnS.yaml"
+  },
+  {
+    "publicURL": "https://forge.3gpp.org/rep/sa5/MnS/blob/Rel-16-SA-91/OpenAPI/FileDataReportingMnS.yaml",
+    "localURL": "3gpp/rep/sa5/MnS/blob/Rel-16-SA-91/OpenAPI/FileDataReportingMnS.yaml"
+  },
+  {
+    "publicURL": "https://forge.3gpp.org/rep/sa5/MnS/blob/Rel-16-SA-91/OpenAPI/heartbeatNtf.yaml",
+    "localURL": "3gpp/rep/sa5/MnS/blob/Rel-16-SA-91/OpenAPI/heartbeatNtf.yaml"
+  },
+  {
+    "publicURL": "https://forge.3gpp.org/rep/sa5/MnS/blob/Rel-16-SA-91/OpenAPI/provMnS.yaml",
+    "localURL": "3gpp/rep/sa5/MnS/blob/Rel-16-SA-91/OpenAPI/provMnS.yaml"
+  }
+]
\ No newline at end of file
diff --git a/kubernetes/dcaegen2-services/resources/external/schemas/sa91-rel16/5gcNrm.yaml b/kubernetes/dcaegen2-services/resources/external/schemas/sa91-rel16/5gcNrm.yaml
new file mode 100644 (file)
index 0000000..eb40832
--- /dev/null
@@ -0,0 +1,1980 @@
+openapi: 3.0.1
+info:
+  title: 3GPP 5GC NRM
+  version: 16.6.0
+  description: >-
+    OAS 3.0.1 specification of the 5GC NRM
+    Â© 2020, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).
+    All rights reserved.
+externalDocs:
+  description: 3GPP TS 28.541 V16.6.0; 5G NRM, 5GC NRM
+  url: http://www.3gpp.org/ftp/Specs/archive/28_series/28.541/
+paths: {}
+components:
+  schemas:
+
+#-------- Definition of types-----------------------------------------------------
+
+    AmfIdentifier:
+      type: object
+      description: 'AmfIdentifier comprise of amfRegionId, amfSetId and amfPointer'
+      properties:
+        amfRegionId:
+          $ref: '#/components/schemas/AmfRegionId'
+        amfSetId:
+          $ref: '#/components/schemas/AmfSetId'
+        amfPointer:
+          $ref: '#/components/schemas/AmfPointer'
+    AmfRegionId:
+      type: integer
+      description: AmfRegionId is defined in TS 23.003
+      maximum: 255
+    AmfSetId:
+      type: string
+      description: AmfSetId is defined in TS 23.003
+      maximum: 1023
+    AmfPointer:
+      type: integer
+      description: AmfPointer is defined in TS 23.003
+      maximum: 63
+    IpEndPoint:
+      type: object
+      properties:
+        ipv4Address:
+          $ref: 'genericNrm.yaml#/components/schemas/Ipv4Addr'
+        ipv6Address:
+          $ref: 'genericNrm.yaml#/components/schemas/Ipv6Addr'
+        ipv6Prefix:
+          $ref: 'genericNrm.yaml#/components/schemas/Ipv6Prefix'
+        transport:
+          $ref: 'genericNrm.yaml#/components/schemas/TransportProtocol'
+        port:
+          type: integer
+    NFProfileList:
+      type: array
+      description: List of NF profile
+      items:
+        $ref: '#/components/schemas/NFProfile'
+    NFProfile:
+      type: object
+      description: 'NF profile stored in NRF, defined in TS 29.510'
+      properties:
+        nFInstanceId:
+          type: string
+          description: uuid of NF instance
+        nFType:
+          $ref: 'genericNrm.yaml#/components/schemas/NFType'
+        nFStatus:
+          $ref: '#/components/schemas/NFStatus'
+        plmn:
+          $ref: 'nrNrm.yaml#/components/schemas/PlmnId'
+        sNssais:
+          $ref: 'nrNrm.yaml#/components/schemas/Snssai'
+        fqdn:
+          $ref: 'genericNrm.yaml#/components/schemas/Fqdn'
+        interPlmnFqdn:
+          $ref: 'genericNrm.yaml#/components/schemas/Fqdn'
+        nfServices:
+          type: array
+          items:
+            $ref: '#/components/schemas/NFService'
+    NFService:
+      type: object
+      description: NF Service is defined in TS 29.510
+      properties:
+        serviceInstanceId:
+          type: string
+        serviceName:
+          type: string
+        version:
+          type: string
+        schema:
+          type: string
+        fqdn:
+          $ref: 'genericNrm.yaml#/components/schemas/Fqdn'
+        interPlmnFqdn:
+          $ref: 'genericNrm.yaml#/components/schemas/Fqdn'
+        ipEndPoints:
+          type: array
+          items:
+            $ref: '#/components/schemas/IpEndPoint'
+        apiPrfix:
+          type: string
+        allowedPlmns:
+          $ref: 'nrNrm.yaml#/components/schemas/PlmnId'
+        allowedNfTypes:
+          type: array
+          items:
+            $ref: 'genericNrm.yaml#/components/schemas/NFType'
+        allowedNssais:
+          type: array
+          items:
+            $ref: 'nrNrm.yaml#/components/schemas/Snssai'
+    NFStatus:
+      type: string
+      description: any of enumrated value
+      enum:
+        - REGISTERED
+        - SUSPENDED
+    CNSIIdList:
+      type: array
+      items:
+        $ref: '#/components/schemas/CNSIId'
+    CNSIId:
+      type: string
+      description: CNSI Id is defined in TS 29.531, only for Core Network
+    TACList:
+      type: array
+      items:
+        $ref: 'nrNrm.yaml#/components/schemas/NrTac'
+    WeightFactor:
+      type: integer
+    UdmInfo:
+      type: object
+      properties:
+        nFSrvGroupId:
+          type: string
+    AusfInfo:
+      type: object
+      properties:
+        nFSrvGroupId:
+          type: string
+    UpfInfo:
+      type: object
+      properties:
+        smfServingAreas:
+          type: string
+    AmfInfo:
+      type: object
+      properties:
+        priority:
+          type: integer
+    SupportedDataSetId:
+      type: string
+      description: any of enumrated value
+      enum:
+        - SUBSCRIPTION
+        - POLICY
+        - EXPOSURE
+        - APPLICATION
+    Udrinfo:
+      type: object
+      properties:
+        supportedDataSetIds:
+          type: array
+          items:
+            $ref: '#/components/schemas/SupportedDataSetId'
+        nFSrvGroupId:
+          type: string
+    NFInfo:
+      oneOf:
+        - $ref: '#/components/schemas/UdmInfo'
+        - $ref: '#/components/schemas/AusfInfo'
+        - $ref: '#/components/schemas/UpfInfo'
+        - $ref: '#/components/schemas/AmfInfo'
+        - $ref: '#/components/schemas/Udrinfo'
+    ManagedNFProfile:
+      type: object
+      properties:
+        nfInstanceID:
+          type: string
+        nfType:
+          $ref: 'genericNrm.yaml#/components/schemas/NFType'
+        authzInfo:
+          type: string
+        hostAddr:
+          $ref: 'genericNrm.yaml#/components/schemas/HostAddr'
+        locality:
+          type: string
+        nFInfo:
+          $ref: '#/components/schemas/NFInfo'
+        capacity:
+          type: integer
+    SEPPType:
+      type: string
+      description: any of enumrated value
+      enum:
+        - CSEPP
+        - PSEPP
+    SupportedFunc:
+      type: object
+      properties:
+        function:
+          type: string
+        policy:
+          type: string
+    SupportedFuncList:
+      type: array
+      items:
+        $ref: '#/components/schemas/SupportedFunc'
+    CommModelType:
+      type: string
+      description: any of enumrated value
+      enum:
+        - DIRECT_COMMUNICATION_WO_NRF
+        - DIRECT_COMMUNICATION_WITH_NRF
+        - INDIRECT_COMMUNICATION_WO_DEDICATED_DISCOVERY
+        - INDIRECT_COMMUNICATION_WITH_DEDICATED_DISCOVERY
+    CommModel:
+      type: object
+      properties:
+        groupId:
+          type: integer
+        commModelType:
+          $ref: '#/components/schemas/CommModelType'
+        targetNFServiceList:
+          $ref: 'comDefs.yaml#/components/schemas/DnList'
+        commModelConfiguration:
+          type: string
+    CommModelList:
+      type: array
+      items:
+        $ref: '#/components/schemas/CommModel'
+    CapabilityList:
+      type: array
+      items:
+        type: string
+    FiveQiDscpMapping:
+      type: object
+      properties:
+        fiveQIValues:
+          type: array
+          items:
+            type: integer
+        dscp:
+          type: integer
+
+    PacketErrorRate:
+      type: object
+      properties:
+        scalar:
+          type: integer
+        exponent:
+          type: integer
+    FiveQICharacteristics:
+      type: object
+      properties:
+        fiveQIValue:
+          type: integer
+        resourceType:
+          type: string
+          enum:
+            - GBR
+            - NonGBR
+        priorityLevel:
+          type: integer
+        packetDelayBudget:
+          type: integer
+        packetErrorRate:
+          $ref: '#/components/schemas/PacketErrorRate'
+        averagingWindow:
+          type: integer
+        maximumDataBurstVolume:
+          type: integer
+
+
+    GtpUPathDelayThresholdsType:
+      type: object
+      properties:
+        n3AveragePacketDelayThreshold:
+          type: integer
+        n3MinPacketDelayThreshold:
+          type: integer
+        n3MaxPacketDelayThreshold:
+          type: integer
+        n9AveragePacketDelayThreshold:
+          type: integer
+        n9MinPacketDelayThreshold:
+          type: integer
+        n9MaxPacketDelayThreshold:
+          type: integer
+    QFPacketDelayThresholdsType:
+      type: object
+      properties:
+        thresholdDl:
+          type: integer
+        thresholdUl:
+          type: integer
+        thresholdRtt:
+          type: integer
+
+    QosData:
+      type: object
+      properties:
+        qosId:
+          type: string
+        fiveQIValue:
+          type: integer
+        maxbrUl:
+          $ref: 'https://forge.3gpp.org/rep/all/5G_APIs/raw/REL-16/TS29571_CommonData.yaml#/components/schemas/BitRateRm'
+        maxbrDl:
+          $ref: 'https://forge.3gpp.org/rep/all/5G_APIs/raw/REL-16/TS29571_CommonData.yaml#/components/schemas/BitRateRm'
+        gbrUl:
+          $ref: 'https://forge.3gpp.org/rep/all/5G_APIs/raw/REL-16/TS29571_CommonData.yaml#/components/schemas/BitRateRm'
+        gbrDl:
+          $ref: 'https://forge.3gpp.org/rep/all/5G_APIs/raw/REL-16/TS29571_CommonData.yaml#/components/schemas/BitRateRm'
+        arp:
+          $ref: 'https://forge.3gpp.org/rep/all/5G_APIs/raw/REL-16/TS29571_CommonData.yaml#/components/schemas/Arp'
+        qosNotificationControl:
+          type: boolean
+        reflectiveQos:
+          type: boolean
+        sharingKeyDl:
+          type: string
+        sharingKeyUl:
+          type: string
+        maxPacketLossRateDl:
+          $ref: 'https://forge.3gpp.org/rep/all/5G_APIs/raw/REL-16/TS29571_CommonData.yaml#/components/schemas/PacketLossRateRm'
+        maxPacketLossRateUl:
+          $ref: 'https://forge.3gpp.org/rep/all/5G_APIs/raw/REL-16/TS29571_CommonData.yaml#/components/schemas/PacketLossRateRm'
+        extMaxDataBurstVol:
+          $ref: 'https://forge.3gpp.org/rep/all/5G_APIs/raw/REL-16/TS29571_CommonData.yaml#/components/schemas/ExtMaxDataBurstVolRm'
+
+    QosDataList:
+      type: array
+      items:
+        $ref: '#/components/schemas/QosData'
+
+    SteeringMode:
+      type: object
+      properties:
+        steerModeValue:
+          $ref: 'https://forge.3gpp.org/rep/all/5G_APIs/raw/REL-16/TS29512_Npcf_SMPolicyControl.yaml#/components/schemas/SteerModeValue'
+        active:
+          $ref: 'https://forge.3gpp.org/rep/all/5G_APIs/raw/REL-16/TS29571_CommonData.yaml#/components/schemas/AccessType'
+        standby:
+          $ref: 'https://forge.3gpp.org/rep/all/5G_APIs/raw/REL-16/TS29571_CommonData.yaml#/components/schemas/AccessTypeRm'
+        threeGLoad:
+          $ref: 'https://forge.3gpp.org/rep/all/5G_APIs/raw/REL-16/TS29571_CommonData.yaml#/components/schemas/Uinteger'
+        prioAcc:
+          $ref: 'https://forge.3gpp.org/rep/all/5G_APIs/raw/REL-16/TS29571_CommonData.yaml#/components/schemas/AccessType'
+
+    TrafficControlData:
+      type: object
+      properties:
+        tcId:
+          type: string
+        flowStatus:
+          $ref: 'https://forge.3gpp.org/rep/all/5G_APIs/raw/REL-16/TS29514_Npcf_PolicyAuthorization.yaml#/components/schemas/FlowStatus'
+        redirectInfo:
+          $ref: 'https://forge.3gpp.org/rep/all/5G_APIs/raw/REL-16/TS29512_Npcf_SMPolicyControl.yaml#/components/schemas/RedirectInformation'
+        addRedirectInfo:
+          type: array
+          items:
+            $ref: 'https://forge.3gpp.org/rep/all/5G_APIs/raw/REL-16/TS29512_Npcf_SMPolicyControl.yaml#/components/schemas/RedirectInformation'
+          minItems: 1
+        muteNotif:
+          type: boolean
+        trafficSteeringPolIdDl:
+          type: string
+          nullable: true
+        trafficSteeringPolIdUl:
+          type: string
+          nullable: true
+        routeToLocs:
+          type: array
+          items:
+            $ref: 'https://forge.3gpp.org/rep/all/5G_APIs/raw/REL-16/TS29571_CommonData.yaml#/components/schemas/RouteToLocation'
+        traffCorreInd:
+          type: boolean
+        upPathChgEvent:
+          $ref: 'https://forge.3gpp.org/rep/all/5G_APIs/raw/REL-16/TS29512_Npcf_SMPolicyControl.yaml#/components/schemas/UpPathChgEvent'
+        steerFun:
+          $ref: 'https://forge.3gpp.org/rep/all/5G_APIs/raw/REL-16/TS29512_Npcf_SMPolicyControl.yaml#/components/schemas/SteeringFunctionality'
+        steerModeDl:
+          $ref: '#/components/schemas/SteeringMode'
+        steerModeUl:
+          $ref: '#/components/schemas/SteeringMode'
+        mulAccCtrl:
+          $ref: 'https://forge.3gpp.org/rep/all/5G_APIs/raw/REL-16/TS29512_Npcf_SMPolicyControl.yaml#/components/schemas/MulticastAccessControl'
+
+    TrafficControlDataList:
+      type: array
+      items:
+        $ref: '#/components/schemas/TrafficControlData'
+
+    PccRule:
+      type: object
+      properties:
+        pccRuleId:
+          type: string
+          description: Univocally identifies the PCC rule within a PDU session.
+        flowInfoList:
+          type: array
+          items:
+            $ref: 'https://forge.3gpp.org/rep/all/5G_APIs/raw/REL-16/TS29512_Npcf_SMPolicyControl.yaml#/components/schemas/FlowInformation'
+        applicationId:
+          type: string
+        appDescriptor:
+          $ref: 'https://forge.3gpp.org/rep/all/5G_APIs/raw/REL-16/TS29512_Npcf_SMPolicyControl.yaml#/components/schemas/ApplicationDescriptor'
+        contentVersion:
+          $ref: 'https://forge.3gpp.org/rep/all/5G_APIs/raw/REL-16/TS29514_Npcf_PolicyAuthorization.yaml#/components/schemas/ContentVersion'
+        precedence:
+          $ref: 'https://forge.3gpp.org/rep/all/5G_APIs/raw/REL-16/TS29571_CommonData.yaml#/components/schemas/Uinteger'
+        afSigProtocol:
+          $ref: 'https://forge.3gpp.org/rep/all/5G_APIs/raw/REL-16/TS29512_Npcf_SMPolicyControl.yaml#/components/schemas/AfSigProtocol'
+        isAppRelocatable:
+          type: boolean
+        isUeAddrPreserved:
+          type: boolean
+        qosData:
+          type: array
+          items:
+            $ref: '#/components/schemas/QosDataList'
+        altQosParams:
+          type: array
+          items:
+            $ref: '#/components/schemas/QosDataList'
+        trafficControlData:
+          type: array
+          items:
+            $ref: '#/components/schemas/TrafficControlDataList'
+        conditionData:
+            $ref: 'https://forge.3gpp.org/rep/all/5G_APIs/raw/REL-16/TS29512_Npcf_SMPolicyControl.yaml#/components/schemas/ConditionData'
+        tscaiInputDl:
+          $ref: 'https://forge.3gpp.org/rep/all/5G_APIs/raw/REL-16/TS29514_Npcf_PolicyAuthorization.yaml#/components/schemas/TscaiInputContainer'
+        tscaiInputUl:
+          $ref: 'https://forge.3gpp.org/rep/all/5G_APIs/raw/REL-16/TS29514_Npcf_PolicyAuthorization.yaml#/components/schemas/TscaiInputContainer'
+
+
+#-------- Definition of concrete IOCs --------------------------------------------
+
+    SubNetwork-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/SubNetwork-Attr'
+        - $ref: 'genericNrm.yaml#/components/schemas/SubNetwork-ncO'
+        - type: object
+          properties:
+            SubNetwork:
+              $ref: '#/components/schemas/SubNetwork-Multiple'
+            ManagedElement:
+              $ref: '#/components/schemas/ManagedElement-Multiple'
+            ExternalAmfFunction:
+              $ref: '#/components/schemas/ExternalAmfFunction-Multiple'
+            ExternalNrfFunction:
+              $ref: '#/components/schemas/ExternalNrfFunction-Multiple'
+            ExternalNssfFunction:
+                $ref: '#/components/schemas/ExternalNssfFunction-Multiple'
+            AmfSet:
+              $ref: '#/components/schemas/AmfSet-Multiple'
+            AmfRegion:
+              $ref: '#/components/schemas/AmfRegion-Multiple'
+            Configurable5QISet:
+              $ref: '#/components/schemas/Configurable5QISet-Multiple'
+            Dynamic5QISet:
+              $ref: '#/components/schemas/Dynamic5QISet-Multiple'
+
+    ManagedElement-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/ManagedElement-Attr'
+        - $ref: 'genericNrm.yaml#/components/schemas/ManagedElement-ncO'
+        - type: object
+          properties:
+            AmfFunction:
+              $ref: '#/components/schemas/AmfFunction-Multiple'
+            SmfFunction:
+              $ref: '#/components/schemas/SmfFunction-Multiple'
+            UpfFunction:
+              $ref: '#/components/schemas/UpfFunction-Multiple'
+            N3iwfFunction:   
+              $ref: '#/components/schemas/N3iwfFunction-Multiple'
+            PcfFunction:
+              $ref: '#/components/schemas/PcfFunction-Multiple'
+            AusfFunction:
+              $ref: '#/components/schemas/AusfFunction-Multiple'
+            UdmFunction:
+              $ref: '#/components/schemas/UdmFunction-Multiple'
+            UdrFunction:
+              $ref: '#/components/schemas/UdrFunction-Multiple'
+            UdsfFunction:
+              $ref: '#/components/schemas/UdsfFunction-Multiple'
+            NrfFunction:
+              $ref: '#/components/schemas/NrfFunction-Multiple'
+            NssfFunction:
+              $ref: '#/components/schemas/NssfFunction-Multiple'
+            SmsfFunction:
+              $ref: '#/components/schemas/SmsfFunction-Multiple'
+            LmfFunction:
+              $ref: '#/components/schemas/LmfFunction-Multiple'
+            NgeirFunction:
+              $ref: '#/components/schemas/NgeirFunction-Multiple'
+            SeppFunction:
+              $ref: '#/components/schemas/SeppFunction-Multiple'
+            NwdafFunction:
+              $ref: '#/components/schemas/NwdafFunction-Multiple'
+            ScpFunction:
+              $ref: '#/components/schemas/ScpFunction-Multiple'
+            NefFunction:
+              $ref: '#/components/schemas/NefFunction-Multiple'
+            Configurable5QISet:
+              $ref: '#/components/schemas/Configurable5QISet-Multiple'
+            Dynamic5QISet:
+              $ref: '#/components/schemas/Dynamic5QISet-Multiple'
+    AmfFunction-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-Attr'
+                - type: object
+                  properties:
+                    plmnIdList:
+                      $ref: 'nrNrm.yaml#/components/schemas/PlmnIdList'
+                    amfIdentifier:
+                      $ref: '#/components/schemas/AmfIdentifier'
+                    sBIFqdn:
+                      type: string
+                    weightFactor:
+                      $ref: '#/components/schemas/WeightFactor'
+                    snssaiList:
+                      $ref: 'nrNrm.yaml#/components/schemas/SnssaiList'
+                    amfSet:
+                      $ref: 'comDefs.yaml#/components/schemas/Dn'
+                    managedNFProfile:
+                      $ref: '#/components/schemas/ManagedNFProfile'
+                    commModelList:
+                      $ref: '#/components/schemas/CommModelList'
+        - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-ncO'
+        - type: object
+          properties:
+            EP_N2:
+              $ref: '#/components/schemas/EP_N2-Multiple'
+            EP_N8:
+              $ref: '#/components/schemas/EP_N8-Multiple'
+            EP_N11:
+              $ref: '#/components/schemas/EP_N11-Multiple'
+            EP_N12:
+              $ref: '#/components/schemas/EP_N12-Multiple'
+            EP_N14:
+              $ref: '#/components/schemas/EP_N14-Multiple'
+            EP_N15:
+              $ref: '#/components/schemas/EP_N15-Multiple'
+            EP_N17:
+              $ref: '#/components/schemas/EP_N17-Multiple'
+            EP_N20:
+              $ref: '#/components/schemas/EP_N20-Multiple'
+            EP_N22:
+              $ref: '#/components/schemas/EP_N22-Multiple'
+            EP_N26:
+              $ref: '#/components/schemas/EP_N26-Multiple'
+            EP_NLS:
+              $ref: '#/components/schemas/EP_NLS-Multiple'
+            EP_NLG:
+              $ref: '#/components/schemas/EP_NLG-Multiple'
+    AmfSet-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-Attr'
+                - type: object
+                  properties:
+                    plmnIdList:
+                      $ref: 'nrNrm.yaml#/components/schemas/PlmnIdList'
+                    nRTACList:
+                      $ref: '#/components/schemas/TACList'
+                    amfSetId:
+                      $ref: '#/components/schemas/AmfSetId'
+                    snssaiList:
+                      $ref: 'nrNrm.yaml#/components/schemas/SnssaiList'
+    AmfRegion-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-Attr'
+                - type: object
+                  properties:
+                    plmnIdList:
+                      $ref: 'nrNrm.yaml#/components/schemas/PlmnIdList'
+                    nRTACList:
+                      $ref: '#/components/schemas/TACList'
+                    amfRegionId:
+                      $ref: '#/components/schemas/AmfRegionId'
+                    snssaiList:
+                      $ref: 'nrNrm.yaml#/components/schemas/SnssaiList'
+    SmfFunction-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-Attr'
+                - type: object
+                  properties:
+                    plmnIdList:
+                      $ref: 'nrNrm.yaml#/components/schemas/PlmnIdList'
+                    nRTACList:
+                      $ref: '#/components/schemas/TACList'
+                    sBIFqdn:
+                      type: string
+                    snssaiList:
+                      $ref: 'nrNrm.yaml#/components/schemas/SnssaiList'
+                    managedNFProfile:
+                      $ref: '#/components/schemas/ManagedNFProfile'
+                    commModelList:
+                      $ref: '#/components/schemas/CommModelList'
+                    configurable5QISetRef:
+                      $ref: 'comDefs.yaml#/components/schemas/Dn'
+                    dynamic5QISetRef:
+                      $ref: 'comDefs.yaml#/components/schemas/Dn'
+
+        - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-ncO'
+        - type: object
+          properties:
+            EP_N4:
+              $ref: '#/components/schemas/EP_N4-Multiple'
+            EP_N7:
+              $ref: '#/components/schemas/EP_N7-Multiple'
+            EP_N10:
+              $ref: '#/components/schemas/EP_N10-Multiple'
+            EP_N11:
+              $ref: '#/components/schemas/EP_N11-Multiple'
+            EP_N16:
+              $ref: '#/components/schemas/EP_N16-Multiple'
+            EP_S5C:
+              $ref: '#/components/schemas/EP_S5C-Multiple'
+            FiveQiDscpMappingSet:
+              $ref: '#/components/schemas/FiveQiDscpMappingSet-Single'
+            GtpUPathQoSMonitoringControl:
+              $ref: '#/components/schemas/GtpUPathQoSMonitoringControl-Single'
+            QFQoSMonitoringControl:
+              $ref: '#/components/schemas/QFQoSMonitoringControl-Single'
+            PredefinedPccRuleSet:
+              $ref: '#/components/schemas/PredefinedPccRuleSet-Single'
+
+    UpfFunction-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-Attr'
+                - type: object
+                  properties:
+                    plmnIdList:
+                      $ref: 'nrNrm.yaml#/components/schemas/PlmnIdList'
+                    nRTACList:
+                      $ref: '#/components/schemas/TACList'
+                    snssaiList:
+                      $ref: 'nrNrm.yaml#/components/schemas/SnssaiList'
+                    managedNFProfile:
+                      $ref: '#/components/schemas/ManagedNFProfile'
+                    commModelList:
+                      $ref: '#/components/schemas/CommModelList'
+        - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-ncO'
+        - type: object
+          properties:
+            EP_N3:
+              $ref: '#/components/schemas/EP_N3-Multiple'
+            EP_N4:
+              $ref: '#/components/schemas/EP_N4-Multiple'
+            EP_N6:
+              $ref: '#/components/schemas/EP_N6-Multiple'
+            EP_N9:
+              $ref: '#/components/schemas/EP_N9-Multiple'
+            EP_S5U:
+              $ref: '#/components/schemas/EP_S5U-Multiple'
+    N3iwfFunction-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-Attr'
+                - type: object
+                  properties:
+                    plmnIdList:
+                      $ref: 'nrNrm.yaml#/components/schemas/PlmnIdList'
+                    commModelList:
+                      $ref: '#/components/schemas/CommModelList'
+        - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-ncO'
+        - type: object
+          properties:
+            EP_N3:
+              $ref: '#/components/schemas/EP_N3-Multiple'
+            EP_N4:
+              $ref: '#/components/schemas/EP_N4-Multiple'
+    PcfFunction-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-Attr'
+                - type: object
+                  properties:
+                    plmnIdList:
+                      $ref: 'nrNrm.yaml#/components/schemas/PlmnIdList'
+                    sBIFqdn:
+                      type: string
+                    snssaiList:
+                      $ref: 'nrNrm.yaml#/components/schemas/SnssaiList'
+                    managedNFProfile:
+                      $ref: '#/components/schemas/ManagedNFProfile'
+                    commModelList:
+                      $ref: '#/components/schemas/CommModelList'
+                    configurable5QISetRef:
+                      $ref: 'comDefs.yaml#/components/schemas/Dn'
+                    dynamic5QISetRef:
+                      $ref: 'comDefs.yaml#/components/schemas/Dn'
+
+        - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-ncO'
+        - type: object
+          properties:
+            EP_N5:
+              $ref: '#/components/schemas/EP_N5-Multiple'
+            EP_N7:
+              $ref: '#/components/schemas/EP_N7-Multiple'
+            EP_N15:
+              $ref: '#/components/schemas/EP_N15-Multiple'
+            EP_N16:
+              $ref: '#/components/schemas/EP_N16-Multiple'
+            EP_Rx:
+              $ref: '#/components/schemas/EP_Rx-Multiple'
+            PredefinedPccRuleSet:
+              $ref: '#/components/schemas/PredefinedPccRuleSet-Single'
+
+    AusfFunction-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-Attr'
+                - type: object
+                  properties:
+                    plmnIdList:
+                      $ref: 'nrNrm.yaml#/components/schemas/PlmnIdList'
+                    sBIFqdn:
+                      type: string
+                    snssaiList:
+                      $ref: 'nrNrm.yaml#/components/schemas/SnssaiList'
+                    managedNFProfile:
+                      $ref: '#/components/schemas/ManagedNFProfile'
+                    commModelList:
+                      $ref: '#/components/schemas/CommModelList'
+        - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-ncO'
+        - type: object
+          properties:
+            EP_N12:
+              $ref: '#/components/schemas/EP_N12-Multiple'
+            EP_N13:
+              $ref: '#/components/schemas/EP_N13-Multiple'
+    UdmFunction-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-Attr'
+                - type: object
+                  properties:
+                    plmnIdList:
+                      $ref: 'nrNrm.yaml#/components/schemas/PlmnIdList'
+                    sBIFqdn:
+                      type: string
+                    snssaiList:
+                      $ref: 'nrNrm.yaml#/components/schemas/SnssaiList'
+                    managedNFProfile:
+                      $ref: '#/components/schemas/ManagedNFProfile'
+                    commModelList:
+                      $ref: '#/components/schemas/CommModelList'
+        - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-ncO'
+        - type: object
+          properties:
+            EP_N8:
+              $ref: '#/components/schemas/EP_N8-Multiple'
+            EP_N10:
+              $ref: '#/components/schemas/EP_N10-Multiple'
+            EP_N13:
+              $ref: '#/components/schemas/EP_N13-Multiple'
+    UdrFunction-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-Attr'
+                - type: object
+                  properties:
+                    plmnIdList:
+                      $ref: 'nrNrm.yaml#/components/schemas/PlmnIdList'
+                    sBIFqdn:
+                      type: string
+                    snssaiList:
+                      $ref: 'nrNrm.yaml#/components/schemas/SnssaiList'
+                    managedNFProfile:
+                      $ref: '#/components/schemas/ManagedNFProfile'
+    UdsfFunction-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-Attr'
+                - type: object
+                  properties:
+                    plmnIdList:
+                      $ref: 'nrNrm.yaml#/components/schemas/PlmnIdList'
+                    sBIFqdn:
+                      type: string
+                    snssaiList:
+                      $ref: 'nrNrm.yaml#/components/schemas/SnssaiList'
+                    managedNFProfile:
+                      $ref: '#/components/schemas/ManagedNFProfile'
+    NrfFunction-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-Attr'
+                - type: object
+                  properties:
+                    plmnIdList:
+                      $ref: 'nrNrm.yaml#/components/schemas/PlmnIdList'
+                    sBIFqdn:
+                      type: string
+                    cNSIIdList:
+                      $ref: '#/components/schemas/CNSIIdList'
+                    nFProfileList:
+                      $ref: '#/components/schemas/NFProfileList'
+                    snssaiList:
+                      $ref: 'nrNrm.yaml#/components/schemas/SnssaiList'
+        - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-ncO'
+        - type: object
+          properties:
+            EP_N27:
+              $ref: '#/components/schemas/EP_N27-Multiple'
+    NssfFunction-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-Attr'
+                - type: object
+                  properties:
+                    plmnIdList:
+                      $ref: 'nrNrm.yaml#/components/schemas/PlmnIdList'
+                    sBIFqdn:
+                      type: string
+                    cNSIIdList:
+                      $ref: '#/components/schemas/CNSIIdList'
+                    nFProfileList:
+                      $ref: '#/components/schemas/NFProfileList'
+                    snssaiList:
+                      $ref: 'nrNrm.yaml#/components/schemas/SnssaiList'
+                    commModelList:
+                      $ref: '#/components/schemas/CommModelList'
+        - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-ncO'
+        - type: object
+          properties:
+            EP_N22:
+              $ref: '#/components/schemas/EP_N22-Multiple'
+            EP_N31:
+              $ref: '#/components/schemas/EP_N31-Multiple'
+    SmsfFunction-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-Attr'
+                - type: object
+                  properties:
+                    plmnIdList:
+                      $ref: 'nrNrm.yaml#/components/schemas/PlmnIdList'
+                    sBIFqdn:
+                      type: string
+                    managedNFProfile:
+                      $ref: '#/components/schemas/ManagedNFProfile'
+                    commModelList:
+                      $ref: '#/components/schemas/CommModelList'
+        - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-ncO'
+        - type: object
+          properties:
+            EP_N20:
+              $ref: '#/components/schemas/EP_N20-Multiple'
+            EP_N21:
+              $ref: '#/components/schemas/EP_N21-Multiple'
+            EP_MAP_SMSC:
+              $ref: '#/components/schemas/EP_MAP_SMSC-Multiple'
+    LmfFunction-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-Attr'
+                - type: object
+                  properties:
+                    plmnIdList:
+                      $ref: 'nrNrm.yaml#/components/schemas/PlmnIdList'
+                    managedNFProfile:
+                      $ref: '#/components/schemas/ManagedNFProfile'
+                    commModelList:
+                      $ref: '#/components/schemas/CommModelList'
+        - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-ncO'
+        - type: object
+          properties:
+            EP_NLS:
+              $ref: '#/components/schemas/EP_NLS-Multiple'
+    NgeirFunction-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-Attr'
+                - type: object
+                  properties:
+                    plmnIdList:
+                      $ref: 'nrNrm.yaml#/components/schemas/PlmnIdList'
+                    sBIFqdn:
+                      type: string
+                    snssaiList:
+                      $ref: 'nrNrm.yaml#/components/schemas/SnssaiList'
+                    managedNFProfile:
+                      $ref: '#/components/schemas/ManagedNFProfile'
+                    commModelList:
+                      $ref: '#/components/schemas/CommModelList'
+        - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-ncO'
+        - type: object
+          properties:
+            EP_N17:
+              $ref: '#/components/schemas/EP_N17-Multiple'
+    SeppFunction-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-Attr'
+                - type: object
+                  properties:
+                    plmnId:
+                      $ref: 'nrNrm.yaml#/components/schemas/PlmnId'
+                    sEPPType:
+                      $ref: '#/components/schemas/SEPPType'
+                    sEPPId:
+                      type: integer
+                    fqdn:
+                      $ref: 'genericNrm.yaml#/components/schemas/Fqdn'
+        - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-ncO'
+        - type: object
+          properties:
+            EP_N32:
+              $ref: '#/components/schemas/EP_N32-Multiple'
+    NwdafFunction-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-Attr'
+                - type: object
+                  properties:
+                    plmnIdList:
+                      $ref: 'nrNrm.yaml#/components/schemas/PlmnIdList'
+                    sBIFqdn:
+                      type: string
+                    snssaiList:
+                      $ref: 'nrNrm.yaml#/components/schemas/SnssaiList'
+                    managedNFProfile:
+                      $ref: '#/components/schemas/ManagedNFProfile'
+                    commModelList:
+                      $ref: '#/components/schemas/CommModelList'
+    ScpFunction-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-Attr'
+                - type: object
+                  properties:
+                    supportedFuncList:
+                      $ref: '#/components/schemas/SupportedFuncList'
+                    address:
+                      $ref: 'genericNrm.yaml#/components/schemas/HostAddr'
+        - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-ncO'
+    NefFunction-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-Attr'
+                - type: object
+                  properties:
+                    sBIFqdn:
+                      type: string
+                    snssaiList:
+                      $ref: 'nrNrm.yaml#/components/schemas/SnssaiList'
+                    managedNFProfile:
+                      $ref: '#/components/schemas/ManagedNFProfile'
+                    capabilityList:
+                      $ref: '#/components/schemas/CapabilityList'
+                    isINEF:
+                      type: boolean
+                    isCAPIFSup:
+                      type: boolean
+        - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-ncO'
+
+    ExternalAmfFunction-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-Attr'
+                - type: object
+                  properties:
+                    plmnIdList:
+                      $ref: 'nrNrm.yaml#/components/schemas/PlmnIdList'
+                    amfIdentifier:
+                      $ref: '#/components/schemas/AmfIdentifier'
+    ExternalNrfFunction-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-Attr'
+                - type: object
+                  properties:
+                    plmnIdList:
+                      $ref: 'nrNrm.yaml#/components/schemas/PlmnIdList'
+    ExternalNssfFunction-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-Attr'
+                - type: object
+                  properties:
+                    plmnIdList:
+                      $ref: 'nrNrm.yaml#/components/schemas/PlmnIdList'
+    ExternalSeppFunction-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-Attr'
+                - type: object
+                  properties:
+                    plmnId:
+                      $ref: 'nrNrm.yaml#/components/schemas/PlmnId'
+                    sEPPId:
+                      type: integer
+                    fqdn:
+                      $ref: 'genericNrm.yaml#/components/schemas/Fqdn'
+
+
+    EP_N2-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/EP_RP-Attr'
+                - type: object
+                  properties:
+                    localAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/LocalAddress'
+                    remoteAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/RemoteAddress'
+    EP_N3-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/EP_RP-Attr'
+                - type: object
+                  properties:
+                    localAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/LocalAddress'
+                    remoteAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/RemoteAddress'
+                    epTransportRefs:
+                      $ref: 'comDefs.yaml#/components/schemas/DnList'
+    EP_N4-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/EP_RP-Attr'
+                - type: object
+                  properties:
+                    localAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/LocalAddress'
+                    remoteAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/RemoteAddress'
+    EP_N5-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/EP_RP-Attr'
+                - type: object
+                  properties:
+                    localAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/LocalAddress'
+                    remoteAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/RemoteAddress'
+    EP_N6-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/EP_RP-Attr'
+                - type: object
+                  properties:
+                    localAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/LocalAddress'
+                    remoteAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/RemoteAddress'
+    EP_N7-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/EP_RP-Attr'
+                - type: object
+                  properties:
+                    localAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/LocalAddress'
+                    remoteAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/RemoteAddress'
+    EP_N8-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/EP_RP-Attr'
+                - type: object
+                  properties:
+                    localAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/LocalAddress'
+                    remoteAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/RemoteAddress'
+    EP_N9-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/EP_RP-Attr'
+                - type: object
+                  properties:
+                    localAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/LocalAddress'
+                    remoteAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/RemoteAddress'
+    EP_N10-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/EP_RP-Attr'
+                - type: object
+                  properties:
+                    localAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/LocalAddress'
+                    remoteAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/RemoteAddress'
+    EP_N11-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/EP_RP-Attr'
+                - type: object
+                  properties:
+                    localAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/LocalAddress'
+                    remoteAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/RemoteAddress'
+    EP_N12-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/EP_RP-Attr'
+                - type: object
+                  properties:
+                    localAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/LocalAddress'
+                    remoteAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/RemoteAddress'
+    EP_N13-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/EP_RP-Attr'
+                - type: object
+                  properties:
+                    localAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/LocalAddress'
+                    remoteAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/RemoteAddress'
+    EP_N14-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/EP_RP-Attr'
+                - type: object
+                  properties:
+                    localAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/LocalAddress'
+                    remoteAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/RemoteAddress'
+    EP_N15-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/EP_RP-Attr'
+                - type: object
+                  properties:
+                    localAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/LocalAddress'
+                    remoteAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/RemoteAddress'
+    EP_N16-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/EP_RP-Attr'
+                - type: object
+                  properties:
+                    localAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/LocalAddress'
+                    remoteAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/RemoteAddress'
+    EP_N17-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/EP_RP-Attr'
+                - type: object
+                  properties:
+                    localAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/LocalAddress'
+                    remoteAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/RemoteAddress'
+
+    EP_N20-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/EP_RP-Attr'
+                - type: object
+                  properties:
+                    localAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/LocalAddress'
+                    remoteAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/RemoteAddress'
+
+    EP_N21-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/EP_RP-Attr'
+                - type: object
+                  properties:
+                    localAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/LocalAddress'
+                    remoteAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/RemoteAddress'
+    EP_N22-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/EP_RP-Attr'
+                - type: object
+                  properties:
+                    localAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/LocalAddress'
+                    remoteAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/RemoteAddress'
+
+    EP_N26-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/EP_RP-Attr'
+                - type: object
+                  properties:
+                    localAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/LocalAddress'
+                    remoteAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/RemoteAddress'
+    EP_N27-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/EP_RP-Attr'
+                - type: object
+                  properties:
+                    localAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/LocalAddress'
+                    remoteAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/RemoteAddress'
+
+
+    EP_N31-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/EP_RP-Attr'
+                - type: object
+                  properties:
+                    localAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/LocalAddress'
+                    remoteAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/RemoteAddress'
+    EP_N32-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/EP_RP-Attr'
+                - type: object
+                  properties:
+                    remotePlmnId:
+                      $ref: 'nrNrm.yaml#/components/schemas/PlmnId'
+                    remoteSeppAddress:
+                      $ref: 'genericNrm.yaml#/components/schemas/HostAddr'
+                    remoteSeppId:
+                      type: integer
+                    n32cParas:
+                      type: string
+                    n32fPolicy:
+                      type: string
+                    withIPX:
+                      type: boolean
+
+    EP_S5C-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/EP_RP-Attr'
+                - type: object
+                  properties:
+                    localAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/LocalAddress'
+                    remoteAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/RemoteAddress'
+    EP_S5U-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/EP_RP-Attr'
+                - type: object
+                  properties:
+                    localAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/LocalAddress'
+                    remoteAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/RemoteAddress'
+    EP_Rx-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/EP_RP-Attr'
+                - type: object
+                  properties:
+                    localAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/LocalAddress'
+                    remoteAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/RemoteAddress'
+    EP_MAP_SMSC-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/EP_RP-Attr'
+                - type: object
+                  properties:
+                    localAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/LocalAddress'
+                    remoteAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/RemoteAddress'
+    EP_NLS-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/EP_RP-Attr'
+                - type: object
+                  properties:
+                    localAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/LocalAddress'
+                    remoteAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/RemoteAddress'
+    EP_NLG-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/EP_RP-Attr'
+                - type: object
+                  properties:
+                    localAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/LocalAddress'
+                    remoteAddress:
+                      $ref: 'nrNrm.yaml#/components/schemas/RemoteAddress'
+
+    FiveQiDscpMappingSet-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - type: object
+                  properties:
+                    FiveQiDscpMappingList:
+                      type: array
+                      items:
+                        $ref: '#/components/schemas/FiveQiDscpMapping'
+
+    Configurable5QISet-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - type: object
+                  properties:
+                    configurable5QIs:
+                      type: array
+                      items:
+                        $ref: '#/components/schemas/FiveQICharacteristics'  
+   
+    Dynamic5QISet-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - type: object
+                  properties:
+                    dynamic5QIs:
+                      type: array
+                      items:
+                        $ref: '#/components/schemas/FiveQICharacteristics'                           
+                      
+    GtpUPathQoSMonitoringControl-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - type: object
+                  properties:
+                    gtpUPathQoSMonitoringState:
+                      type: string
+                      enum:
+                        - ENABLED
+                        - DISABLED
+                    gtpUPathMonitoredSNSSAIs:
+                      type: array
+                      items:
+                        $ref: 'nrNrm.yaml#/components/schemas/Snssai'
+                    monitoredDSCPs:
+                      type: array
+                      items:
+                        type: integer
+                        minimum: 0
+                        maximum: 255
+                    isEventTriggeredGtpUPathMonitoringSupported:
+                      type: boolean
+                    isPeriodicGtpUMonitoringSupported:
+                      type: boolean
+                    isImmediateGtpUMonitoringSupported:
+                      type: boolean
+                    gtpUPathDelayThresholds:
+                      $ref: '#/components/schemas/GtpUPathDelayThresholdsType'
+                    gtpUPathMinimumWaitTime:
+                      type: integer
+                    gtpUPathMeasurementPeriod:
+                      type: integer
+
+    QFQoSMonitoringControl-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - type: object
+                  properties:
+                    qFQoSMonitoringState:
+                      type: string
+                      enum:
+                        - ENABLED
+                        - DISABLED
+                    qFMonitoredSNSSAIs:
+                      type: array
+                      items:
+                        $ref: 'nrNrm.yaml#/components/schemas/Snssai'
+                    qFMonitored5QIs:
+                      type: array
+                      items:
+                        type: integer
+                        minimum: 0
+                        maximum: 255
+                    isEventTriggeredQFMonitoringSupported:
+                      type: boolean
+                    isPeriodicQFMonitoringSupported:
+                      type: boolean
+                    isSessionReleasedQFMonitoringSupported:
+                      type: boolean
+                    qFPacketDelayThresholds:
+                      $ref: '#/components/schemas/QFPacketDelayThresholdsType'
+                    qFMinimumWaitTime:
+                      type: integer
+                    qFMeasurementPeriod:
+                      type: integer
+
+    PredefinedPccRuleSet-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - type: object
+                  properties:
+                    predefinedPccRules:
+                      type: array
+                      items:
+                        $ref: '#/components/schemas/PccRule'                           
+
+#-------- Definition of JSON arrays for name-contained IOCs ----------------------
+
+    SubNetwork-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/SubNetwork-Single'
+    ManagedElement-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/ManagedElement-Single'
+    AmfFunction-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/AmfFunction-Single'
+    SmfFunction-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/SmfFunction-Single'
+    UpfFunction-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/UpfFunction-Single'
+    N3iwfFunction-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/N3iwfFunction-Single'
+    PcfFunction-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/PcfFunction-Single'
+    AusfFunction-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/AusfFunction-Single'
+    UdmFunction-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/UdmFunction-Single'
+    UdrFunction-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/UdrFunction-Single'
+    UdsfFunction-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/UdsfFunction-Single'
+    NrfFunction-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/NrfFunction-Single'
+    NssfFunction-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/NssfFunction-Single'
+    SmsfFunction-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/SmsfFunction-Single'
+    LmfFunction-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/LmfFunction-Single'
+    NgeirFunction-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/NgeirFunction-Single'
+    SeppFunction-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/SeppFunction-Single'
+    NwdafFunction-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/NwdafFunction-Single'
+    ScpFunction-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/ScpFunction-Single'
+    NefFunction-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/NefFunction-Single'
+
+    ExternalAmfFunction-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/ExternalAmfFunction-Single'
+    ExternalNrfFunction-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/ExternalNrfFunction-Single'
+    ExternalNssfFunction-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/ExternalNssfFunction-Single'
+    ExternalSeppFunction-Nultiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/ExternalSeppFunction-Single'
+
+    AmfSet-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/AmfSet-Single'
+    AmfRegion-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/AmfRegion-Single'
+  
+    EP_N2-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/EP_N2-Single'
+    EP_N3-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/EP_N3-Single'
+    EP_N4-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/EP_N4-Single'
+    EP_N5-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/EP_N5-Single'
+    EP_N6-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/EP_N6-Single'
+    EP_N7-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/EP_N7-Single'
+    EP_N8-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/EP_N8-Single'
+    EP_N9-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/EP_N9-Single'
+    EP_N10-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/EP_N10-Single'
+    EP_N11-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/EP_N11-Single'
+    EP_N12-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/EP_N12-Single'
+    EP_N13-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/EP_N13-Single'
+    EP_N14-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/EP_N14-Single'
+    EP_N15-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/EP_N15-Single'
+    EP_N16-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/EP_N16-Single'
+    EP_N17-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/EP_N17-Single'
+
+    EP_N20-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/EP_N20-Single'
+    EP_N21-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/EP_N21-Single'
+    EP_N22-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/EP_N22-Single'
+
+    EP_N26-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/EP_N26-Single'
+    EP_N27-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/EP_N27-Single'
+
+    EP_N31-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/EP_N31-Single'
+    EP_N32-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/EP_N32-Single'
+
+    EP_S5C-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/EP_S5C-Single'
+    EP_S5U-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/EP_S5U-Single'
+    EP_Rx-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/EP_Rx-Single'
+    EP_MAP_SMSC-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/EP_MAP_SMSC-Single'
+    EP_NLS-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/EP_NLS-Single'
+    EP_NLG-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/EP_NLG-Single'
+    Configurable5QISet-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/Configurable5QISet-Single'
+    Dynamic5QISet-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/Dynamic5QISet-Single'
+
+
+
+#------------ Definitions in TS 28.541 for TS 28.532 -----------------------------
+
+    resources-5gcNrm:
+      oneOf:
+       - $ref: '#/components/schemas/SubNetwork-Single'
+       - $ref: '#/components/schemas/ManagedElement-Single'
+       - $ref: '#/components/schemas/AmfFunction-Single'
+       - $ref: '#/components/schemas/SmfFunction-Single'
+       - $ref: '#/components/schemas/UpfFunction-Single'
+       - $ref: '#/components/schemas/N3iwfFunction-Single'
+       - $ref: '#/components/schemas/PcfFunction-Single'
+       - $ref: '#/components/schemas/AusfFunction-Single'
+       - $ref: '#/components/schemas/UdmFunction-Single'
+       - $ref: '#/components/schemas/UdrFunction-Single'
+       - $ref: '#/components/schemas/UdsfFunction-Single'
+       - $ref: '#/components/schemas/NrfFunction-Single'
+       - $ref: '#/components/schemas/NssfFunction-Single'
+       - $ref: '#/components/schemas/SmsfFunction-Single'
+       - $ref: '#/components/schemas/LmfFunction-Single'
+       - $ref: '#/components/schemas/NgeirFunction-Single'
+       - $ref: '#/components/schemas/SeppFunction-Single'
+       - $ref: '#/components/schemas/NwdafFunction-Single'
+       - $ref: '#/components/schemas/ScpFunction-Single'
+       - $ref: '#/components/schemas/NefFunction-Single'
+
+       - $ref: '#/components/schemas/ExternalAmfFunction-Single'
+       - $ref: '#/components/schemas/ExternalNrfFunction-Single'
+       - $ref: '#/components/schemas/ExternalNssfFunction-Single'
+       - $ref: '#/components/schemas/ExternalSeppFunction-Single'
+
+       - $ref: '#/components/schemas/AmfSet-Single'
+       - $ref: '#/components/schemas/AmfRegion-Single'
+       - $ref: '#/components/schemas/QFQoSMonitoringControl-Single'
+       - $ref: '#/components/schemas/GtpUPathQoSMonitoringControl-Single'
+
+       - $ref: '#/components/schemas/EP_N2-Single'
+       - $ref: '#/components/schemas/EP_N3-Single'
+       - $ref: '#/components/schemas/EP_N4-Single'
+       - $ref: '#/components/schemas/EP_N5-Single'
+       - $ref: '#/components/schemas/EP_N6-Single'
+       - $ref: '#/components/schemas/EP_N7-Single'
+       - $ref: '#/components/schemas/EP_N8-Single'
+       - $ref: '#/components/schemas/EP_N9-Single'
+       - $ref: '#/components/schemas/EP_N10-Single'
+       - $ref: '#/components/schemas/EP_N11-Single'
+       - $ref: '#/components/schemas/EP_N12-Single'
+       - $ref: '#/components/schemas/EP_N13-Single'
+       - $ref: '#/components/schemas/EP_N14-Single'
+       - $ref: '#/components/schemas/EP_N15-Single'
+       - $ref: '#/components/schemas/EP_N16-Single'
+       - $ref: '#/components/schemas/EP_N17-Single'
+
+       - $ref: '#/components/schemas/EP_N20-Single'
+       - $ref: '#/components/schemas/EP_N21-Single'
+       - $ref: '#/components/schemas/EP_N22-Single'
+
+       - $ref: '#/components/schemas/EP_N26-Single'
+       - $ref: '#/components/schemas/EP_N27-Single'
+
+       - $ref: '#/components/schemas/EP_N31-Single'
+       - $ref: '#/components/schemas/EP_N31-Single'
+
+       - $ref: '#/components/schemas/EP_S5C-Single'
+       - $ref: '#/components/schemas/EP_S5U-Single'
+       - $ref: '#/components/schemas/EP_Rx-Single'
+       - $ref: '#/components/schemas/EP_MAP_SMSC-Single'
+       - $ref: '#/components/schemas/EP_NLS-Single'
+       - $ref: '#/components/schemas/EP_NLG-Single'
+       - $ref: '#/components/schemas/Configurable5QISet-Single'
+       - $ref: '#/components/schemas/FiveQiDscpMappingSet-Single'
+       - $ref: '#/components/schemas/PredefinedPccRuleSet-Single'
+       - $ref: '#/components/schemas/Dynamic5QISet-Single'
@@ -1,41 +1,47 @@
 openapi: 3.0.1
 info:
-  title: TS 28.532 Performance data file reporting Service
-  version: 16.4.0
+  title: TS 28.532 File data reporting Service
+  version: 16.6.0
   description: >-
-    OAS 3.0.1 specification of the Performance data file reporting Management Service Â© 2020,
+    OAS 3.0.1 specification of the File data reporting Management Service Â© 2020,
     3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All
     rights reserved.
 externalDocs:
-  description: 3GPP TS 28.532 V16.4.0; Generic management services
+  description: 3GPP TS 28.532 V16.5.0; Generic management services
   url: 'http://www.3gpp.org/ftp/Specs/archive/28_series/28.532/'
 servers:
-  - url: '{MnSRoot}/PerfDataFileReportMnS/v1640'
+  - url: '{MnSRoot}/FileDataReportingMnS/{MnSversion}'
     variables:
       MnSRoot:
         description: See subclause 4.4 of TS 32.158
-        default: http://example.com/3GPPManagement
+        default: http://example.com/3GPPManagement 
+      version:
+        description: Indicates the current version of the specification
+        default: 16.5.0
 paths:
   /Files:
     get:
       summary: Read resources of information of available files
-      description: 'With HTTP GET, resources of information of available files are read. The resources to be read are identified with the path component (base resource) and the query component (managementDataType, beginTime and endTime) of the URI. The fields query component allows to select the resource properties to be returned.'
+      description: With HTTP GET, resources of information of available files are read. The resources to be read are identified with the path component (base resource) and the query component (fileaType, beginTime and endTime) of the URI. The fields query component allows to select the resource properties to be returned.
       parameters:
-        - name: managementDataType
+        - name: fileType
           in: query
           description: This parameter identifies the type of management data that the file contains to select the resources from the collection resources identified with the path component of the URI.
           required: true
-          $ref: '#/components/schemas/managementDataType-Type'
+          schema:
+            $ref: '#/components/schemas/fileType-Type'
         - name: beginTime
           in: query
           description: This parameter identifies the time stamp no later than which the file became available to select the resources from the collection resources identified with the path component of the URI.
           required: true
-          $ref: '#/components/schemas/dateTime-Type'
+          schema:
+            $ref: '#/components/schemas/dateTime-Type'
         - name: endTime
           in: query
           description: This parameter identifies the time stamp no earlier than which the file became available to select the resources from the collection resources identified with the path component of the URI.
           required: true
-          $ref: '#/components/schemas/dateTime-Type'
+          schema:
+            $ref: '#/components/schemas/dateTime-Type'
       responses:
         '200':
           description: 'Success case ("200 OK"). The resources identified in the request for retrieval are returned in the response message body. In case the fields query parameter is used, the selected resources are returned.'
@@ -184,6 +190,8 @@ components:
           type: string
         fileFormat:
           type: string
+        fileType:
+          $ref: '#/components/schemas/fileType-Type'
     error-ResponseType:
       type: object
       properties:
@@ -192,10 +200,13 @@ components:
           properties:
             errorInfo:
               type: string
-    managementDataType-Type:
+    fileType-Type:
       type: string
       enum:
-        - PM
+        - PERFORMANCE
+        - TRACE
+        - ANALYTICS
+        - PROPRIETARY
     header-Type:
       description: Header used in notifications as notification header
       type: object
diff --git a/kubernetes/dcaegen2-services/resources/external/schemas/sa91-rel16/comDefs.yaml b/kubernetes/dcaegen2-services/resources/external/schemas/sa91-rel16/comDefs.yaml
new file mode 100644 (file)
index 0000000..fb6d7f4
--- /dev/null
@@ -0,0 +1,152 @@
+openapi: 3.0.1
+info:
+  title: Common Type Definitions
+  version: 16.6.0
+  description: >-
+    OAS 3.0.1 specification of common type definitions in the Generic NRM
+    Â© 2020, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).
+    All rights reserved.
+externalDocs:
+  description: 3GPP TS 28.623; Generic NRM; Common type definitions
+  url: http://www.3gpp.org/ftp/Specs/archive/28_series/28.623/
+paths: {}
+components:
+  schemas:
+  
+    Float:
+      type: number
+      format: float
+    DateTime:
+      type: string
+      format: date-Time
+
+    Dn:
+      type: string
+    DnList:
+      type: array
+      items:
+        $ref: '#/components/schemas/Dn'
+
+    Mcc:
+      type: string
+      pattern: '^[0-9]{3}$'
+    Mnc:
+      type: string
+      pattern: '^[0-9]{2,3}$'
+    PlmnId:
+      type: object
+      properties:
+        mcc:
+          $ref: '#/components/schemas/Mcc'
+        mnc:
+          $ref: '#/components/schemas/Mnc'
+      required:
+        - mcc
+        - mnc
+
+    Fqdn:
+      type: string
+    Uri:
+      type: string
+
+    Ipv4Addr:
+      type: string
+      pattern: '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$'
+      example: '198.51.100.1'
+    Ipv6Addr:
+      type: string
+      allOf:
+        - pattern: '^((:|(0?|([1-9a-f][0-9a-f]{0,3}))):)((0?|([1-9a-f][0-9a-f]{0,3})):){0,6}(:|(0?|([1-9a-f][0-9a-f]{0,3})))$'
+        - pattern: '^((([^:]+:){7}([^:]+))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?))$'
+      example: '2001:db8:85a3::8a2e:370:7334'
+    Ipv6Prefix:
+      type: string
+      allOf:
+        - pattern: '^((:|(0?|([1-9a-f][0-9a-f]{0,3}))):)((0?|([1-9a-f][0-9a-f]{0,3})):){0,6}(:|(0?|([1-9a-f][0-9a-f]{0,3})))(\/(([0-9])|([0-9]{2})|(1[0-1][0-9])|(12[0-8])))$'
+        - pattern: '^((([^:]+:){7}([^:]+))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?))(\/.+)$'
+      example: '2001:db8:abcd:12::0/64'
+
+    AdministrativeState:
+      type: string
+      enum:
+        - LOCKED
+        - UNLOCKED
+    OperationalState:
+      type: string
+      enum:
+        - ENABLED
+        - DISABLED
+    UsageState:
+      type: string
+      enum:
+        - IDEL
+        - ACTIVE
+        - BUSY
+
+    AttributeNameValuePairSet:
+      description: >-
+        The key of this map is the attribute name, and the value the attribute value.
+      type: object
+      minProperties: 1
+      additionalProperties:
+        nullable: true
+    AttributeValueChangeSet:
+      description: >-
+        The first array item contains the attribute name value pairs with the new values,
+        and the second array item the attribute name value pairs with the optional old values.
+      type: array
+      items:
+        $ref: '#/components/schemas/AttributeNameValuePairSet'
+        minItems: 1
+        maxItems: 2
+
+    Filter:
+      type: string
+    SystemDN:
+      type: string
+
+    NotificationId:
+      type: integer
+    NotificationType:
+      oneOf:
+        - $ref: 'faultMnS.yaml#/components/schemas/AlarmNotificationTypes'
+        - $ref: 'provMnS.yaml#/components/schemas/CmNotificationTypes'
+        - $ref: 'perfMnS.yaml#/components/schemas/PerfNotificationTypes'
+        - $ref: 'heartbeatNtf.yaml#/components/schemas/HeartbeatNotificationTypes'
+        # The enum below will be replaced by a reference once notification
+        # types are defined in "FileDataReportingMnS.yaml"
+        - type: string
+          enum:
+            - notifyFileReady
+            - notifyFilePreparationError
+    NotificationHeader:
+      type: object
+      properties:
+        href:
+          $ref: '#/components/schemas/Uri'
+        notificationId:
+          $ref: '#/components/schemas/NotificationId'
+        notificationType:
+          $ref: '#/components/schemas/NotificationType'
+        eventTime:
+          $ref: '#/components/schemas/DateTime'
+        systemDN:
+          $ref: '#/components/schemas/SystemDN'
+      required:
+        - href
+        - notificationId
+        - notificationType
+        - eventTime
+        - systemDN
+
+    ErrorResponse:
+      description: >-
+        Default schema for the response message body in case the request
+        is not successful.
+      type: object
+      properties:
+        error:
+          type: object
+          properties:
+            errorInfo:
+              type: string
@@ -1,22 +1,22 @@
 openapi: 3.0.1
 info:
   title: Fault Supervision MnS
-  version: 16.4.0
+  version: 16.6.0
   description: >-
     OAS 3.0.1 definition of the Fault Supervision MnS
     Â© 2020, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).
     All rights reserved.
 externalDocs:
-  description: 3GPP TS 28.532 V16.4.0; Generic management services
+  description: 3GPP TS 28.532; Generic management services
   url: http://www.3gpp.org/ftp/Specs/archive/28_series/28.532/
 servers:
-  - url: '{MnSRoot}/FaultSupervisionMnS/{version}'
+  - url: '{MnSRoot}/FaultSupervisionMnS/{MnSversion}'
     variables:
       MnSRoot:
         description: See subclause 4.4.3 of TS 32.158
         default: http://example.com/3GPPManagement
-      version:
-        description: Versi      on number of the OpenAPI definition
+      MnSversion:
+        description: Version number of the OpenAPI definition
         default: XXX
 paths:
   /alarms:
@@ -35,12 +35,12 @@ paths:
           in: query
           required: false
           schema:
-            $ref: '#/components/schemas/Dn'
+            $ref: 'comDefs.yaml#/components/schemas/Dn'
         - name: filter
           in: query
           required: false
           schema:
-            $ref: '#/components/schemas/Filter'
+            $ref: 'comDefs.yaml#/components/schemas/Filter'
       responses:
         '200':
           description: >-
@@ -57,7 +57,7 @@ paths:
                       - type: object
                         properties:
                           lastNotificationHeader:
-                            $ref: '#/components/schemas/NotificationHeader'
+                            $ref: 'comDefs.yaml#/components/schemas/NotificationHeader'
                       - $ref: '#/components/schemas/AlarmRecord'
                       - type: object
                         properties:
@@ -68,7 +68,7 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/ErrorResponse'
+                $ref: 'comDefs.yaml#/components/schemas/ErrorResponse'
     patch:
       summary: 'Clear, acknowledge or unacknowledge multiple alarms'
       description: >-
@@ -130,7 +130,7 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/ErrorResponse'
+                $ref: 'comDefs.yaml#/components/schemas/ErrorResponse'
   /alarms/{alarmId}:
     patch:
       summary: 'Clear, acknowledge or unacknowledge a single alarm'
@@ -163,7 +163,7 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/ErrorResponse'
+                $ref: 'comDefs.yaml#/components/schemas/ErrorResponse'
   /alarms/{alarmId}/comments:
     post:
       summary: Add a comment to a single alarm
@@ -203,7 +203,7 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/ErrorResponse'
+                $ref: 'comDefs.yaml#/components/schemas/ErrorResponse'
 
   /subscriptions:
     post:
@@ -238,7 +238,7 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/ErrorResponse'
+                $ref: 'comDefs.yaml#/components/schemas/ErrorResponse'
       callbacks:
         notifyNewAlarm:
           '{request.body#/consumerReference}':
@@ -262,7 +262,7 @@ paths:
                   content:
                     application/json:
                       schema:
-                        $ref: '#/components/schemas/ErrorResponse'
+                        $ref: 'comDefs.yaml#/components/schemas/ErrorResponse'
         notifyClearedAlarm:
           '{request.body#/consumerReference}':
             post:
@@ -283,7 +283,7 @@ paths:
                   content:
                     application/json:
                       schema:
-                        $ref: '#/components/schemas/ErrorResponse'
+                        $ref: 'comDefs.yaml#/components/schemas/ErrorResponse'
         notifyChangedAlarm:
           '{request.body#/consumerReference}':
             post:
@@ -304,7 +304,7 @@ paths:
                   content:
                     application/json:
                       schema:
-                        $ref: '#/components/schemas/ErrorResponse'
+                        $ref: 'comDefs.yaml#/components/schemas/ErrorResponse'
         notifyChangedAlarmGeneral:
           '{request.body#/consumerReference}':
             post:
@@ -327,7 +327,7 @@ paths:
                   content:
                     application/json:
                       schema:
-                        $ref: '#/components/schemas/ErrorResponse'
+                        $ref: 'comDefs.yaml#/components/schemas/ErrorResponse'
         notifyCorrelatedNotificationChanged:
           '{request.body#/consumerReference}':
             post:
@@ -348,7 +348,7 @@ paths:
                   content:
                     application/json:
                       schema:
-                        $ref: '#/components/schemas/ErrorResponse'
+                        $ref: 'comDefs.yaml#/components/schemas/ErrorResponse'
         notifyAckStateChanged:
           '{request.body#/consumerReference}':
             post:
@@ -369,7 +369,7 @@ paths:
                   content:
                     application/json:
                       schema:
-                        $ref: '#/components/schemas/ErrorResponse'
+                        $ref: 'comDefs.yaml#/components/schemas/ErrorResponse'
         notifyComments:
           '{request.body#/consumerReference}':
             post:
@@ -390,7 +390,7 @@ paths:
                   content:
                     application/json:
                       schema:
-                        $ref: '#/components/schemas/ErrorResponse'
+                        $ref: 'comDefs.yaml#/components/schemas/ErrorResponse'
         notifyPotentialFaultyAlarmList:
           '{request.body#/consumerReference}':
             post:
@@ -411,7 +411,7 @@ paths:
                   content:
                     application/json:
                       schema:
-                        $ref: '#/components/schemas/ErrorResponse'
+                        $ref: 'comDefs.yaml#/components/schemas/ErrorResponse'
         notifyAlarmListRebuilt:
           '{request.body#/consumerReference}':
             post:
@@ -432,7 +432,7 @@ paths:
                   content:
                     application/json:
                       schema:
-                        $ref: '#/components/schemas/ErrorResponse'
+                        $ref: 'comDefs.yaml#/components/schemas/ErrorResponse'
   /subscriptions/{subscriptionId}:
     delete:
       summary: Delete a subscription
@@ -458,91 +458,10 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/ErrorResponse'
+                $ref: 'comDefs.yaml#/components/schemas/ErrorResponse'
 
 components:
   schemas:
-  
-  #---- Definitions to be moved to comDefs.yaml --------------------------------------#
-
-    Long:
-      type: string
-      format: long
-    Float:
-      type: string
-      format: float
-    DateTime:
-      type: string
-      format: date-Time
-
-    Dn:
-      type: string
-    Uri:
-      type: string
-
-    AttributeNameValuePairSet:
-      type: object
-      minProperties: 1
-    AttributeValueChangeSet:
-      description: >-
-        The key in this map is the attribute name. The value of each key is an array.
-        When only one item is present in the array, it carries the new attribute
-        value. If two items are present, then the first item carries the old value
-        and the second item the new value. The items can be of any type including null.
-      type: object
-      additionalProperties:
-        type: array
-        minItems: 1
-        maxItems: 2
-        items:
-          nullable: true
-
-    Filter:
-      type: string
-    SystemDN:
-      type: string
-
-    NotificationId:
-      type: integer
-    NotificationHeader:
-      description: >-
-        Header used for all notification types
-      type: object
-      required:
-        - href
-        - notificationId
-        - notificationType
-        - eventTime
-        - systemDN
-      properties:
-        uri:
-          $ref: '#/components/schemas/Uri'
-        notificationId:
-          $ref: '#/components/schemas/NotificationId'
-        notificationType:
-          oneOf:
-            - $ref: '#/components/schemas/AlarmNotificationTypes'
-            #- $ref: 'faultMnS.yaml#/components/schemas/AlarmNotificationTypes'
-            #- $ref: 'provMnS.yaml#/components/schemas/CmNotificationTypes'
-            # more to be added
-        eventTime:
-          $ref: '#/components/schemas/DateTime'
-        systemDN:
-          $ref: '#/components/schemas/SystemDN'
-
-    ErrorResponse:
-      description: >-
-        Default schema for the response message body in case the request is not
-        successful.
-      type: object
-      properties:
-        error:
-          type: object
-          properties:
-            errorInfo:
-              type: string
-
-  #---- End of definitions to be moved to comDefs.yaml -------------------------------#
 
   #---- Definition of AlarmRecord ----------------------------------------------------#
  
@@ -608,46 +527,47 @@ components:
         high:
           oneOf:
             - type: integer
-            - $ref: '#/components/schemas/Float'
+            - $ref: 'comDefs.yaml#/components/schemas/Float'
         low:
-          $ref: '#/components/schemas/Float'
+          $ref: 'comDefs.yaml#/components/schemas/Float'
     ThresholdLevelInd:
-      type: object
-      required:
-        - up
-      properties:
-        up:
-          $ref: '#/components/schemas/ThresholdHysteresis'
-        low:
-          $ref: '#/components/schemas/ThresholdHysteresis'
+      oneOf:
+        - type: object
+          properties:
+            up:
+              $ref: '#/components/schemas/ThresholdHysteresis'
+        - type: object
+          properties:
+            down:
+              $ref: '#/components/schemas/ThresholdHysteresis'
     ThresholdInfo:
       type: object
-      required:
-        - observedMeasurement
-        - observedValue
       properties:
         observedMeasurement:
           type: string
         observedValue:
           oneOf:
             - type: integer
-            - $ref: '#/components/schemas/Float'
-        thresholdLevelInd:
+            - $ref: 'comDefs.yaml#/components/schemas/Float'
+        thresholdLevel:
           $ref: '#/components/schemas/ThresholdLevelInd'
         armTime:
-          $ref: '#/components/schemas/DateTime'
+          $ref: 'comDefs.yaml#/components/schemas/DateTime'
+      required:
+        - observedMeasurement
+        - observedValue
     CorrelatedNotification:
       type: object
-      required:
-        - source
-        - notificationId
       properties:
         sourceObjectInstance:
-          $ref: '#/components/schemas/Dn'
+          $ref: 'comDefs.yaml#/components/schemas/Dn'
         notificationIds:
           type: array
           items:
-            $ref: '#/components/schemas/NotificationId'
+            $ref: 'comDefs.yaml#/components/schemas/NotificationId'
+      required:
+        - sourceObjectInstance
+        - notificationIds
     CorrelatedNotifications:
       type: array
       items:
@@ -667,15 +587,15 @@ components:
         # alarmId:
         #  $ref: '#/components/schemas/AlarmId'
         objectInstance:
-          $ref: '#/components/schemas/Dn'
+          $ref: 'comDefs.yaml#/components/schemas/Dn'
         notificationId:
-          $ref: '#/components/schemas/NotificationId'
+          $ref: 'comDefs.yaml#/components/schemas/NotificationId'
         alarmRaisedTime:
-          $ref: '#/components/schemas/DateTime'
+          $ref: 'comDefs.yaml#/components/schemas/DateTime'
         alarmChangedTime:
-          $ref: '#/components/schemas/DateTime'
+          $ref: 'comDefs.yaml#/components/schemas/DateTime'
         alarmClearedTime:
-          $ref: '#/components/schemas/DateTime'
+          $ref: 'comDefs.yaml#/components/schemas/DateTime'
         alarmType:
           $ref: '#/components/schemas/AlarmType'
         probableCause:
@@ -687,7 +607,7 @@ components:
         backedUpStatus:
           type: boolean
         backUpObject:
-          $ref: '#/components/schemas/Dn'
+          $ref: 'comDefs.yaml#/components/schemas/Dn'
         trendIndication:
           $ref: '#/components/schemas/TrendIndication'
         thresholdinfo:
@@ -695,21 +615,21 @@ components:
         correlatedNotifications:
           $ref: '#/components/schemas/CorrelatedNotifications'
         stateChangeDefinition:
-          $ref: '#/components/schemas/AttributeValueChangeSet'
+          $ref: 'comDefs.yaml#/components/schemas/AttributeValueChangeSet'
         monitoredAttributes:
-          $ref: '#/components/schemas/AttributeNameValuePairSet'
+          $ref: 'comDefs.yaml#/components/schemas/AttributeNameValuePairSet'
         proposedRepairActions:
           type: string
         additionalText:
           type: string
         additionalInformation:
-          $ref: '#/components/schemas/AttributeNameValuePairSet'
+          $ref: 'comDefs.yaml#/components/schemas/AttributeNameValuePairSet'
 
         rootCauseIndicator:
           type: boolean
 
         ackTime:
-          $ref: '#/components/schemas/DateTime'
+          $ref: 'comDefs.yaml#/components/schemas/DateTime'
         ackUserId:
           type: string
         ackSystemId:
@@ -750,7 +670,7 @@ components:
 
     NotifyNewAlarm:
       allOf:
-        - $ref: '#/components/schemas/NotificationHeader'
+        - $ref: 'comDefs.yaml#/components/schemas/NotificationHeader'
         - type: object
           required:
             - alarmId
@@ -771,7 +691,7 @@ components:
             backedUpStatus:
               type: boolean
             backUpObject:
-              $ref: '#/components/schemas/Dn'
+              $ref: 'comDefs.yaml#/components/schemas/Dn'
             trendIndication:
               $ref: '#/components/schemas/TrendIndication'
             thresholdInfo:
@@ -779,20 +699,20 @@ components:
             correlatedNotifications:
               $ref: '#/components/schemas/CorrelatedNotifications'
             stateChangeDefinition:
-              $ref: '#/components/schemas/AttributeValueChangeSet'
+              $ref: 'comDefs.yaml#/components/schemas/AttributeValueChangeSet'
             monitoredAttributes:
-              $ref: '#/components/schemas/AttributeNameValuePairSet'
+              $ref: 'comDefs.yaml#/components/schemas/AttributeNameValuePairSet'
             proposedRepairActions:
               type: string
             additionalText:
               type: string
             additionalInformation:
-              $ref: '#/components/schemas/AttributeNameValuePairSet'
+              $ref: 'comDefs.yaml#/components/schemas/AttributeNameValuePairSet'
             rootCauseIndicator:
               type: boolean
     NotifyNewSecAlarm:
       allOf:
-        - $ref: '#/components/schemas/NotificationHeader'
+        - $ref: 'comDefs.yaml#/components/schemas/NotificationHeader'
         - type: object
           required:
             - alarmId
@@ -816,7 +736,7 @@ components:
             additionalText:
               type: string
             additionalInformation:
-              $ref: '#/components/schemas/AttributeNameValuePairSet'
+              $ref: 'comDefs.yaml#/components/schemas/AttributeNameValuePairSet'
             rootCauseIndicator:
               type: boolean
             serviceUser:
@@ -827,7 +747,7 @@ components:
               type: string
     NotifyClearedAlarm:
       allOf:
-        - $ref: '#/components/schemas/NotificationHeader'
+        - $ref: 'comDefs.yaml#/components/schemas/NotificationHeader'
         - type: object
           required:
             - alarmId
@@ -851,7 +771,7 @@ components:
               type: string
     NotifyChangedAlarm:
       allOf:
-        - $ref: '#/components/schemas/NotificationHeader'
+        - $ref: 'comDefs.yaml#/components/schemas/NotificationHeader'
         - type: object
           required:
             - alarmId
@@ -869,14 +789,11 @@ components:
               $ref: '#/components/schemas/PerceivedSeverity'
     NotifyChangedAlarmGeneral:
       allOf:
-        - $ref: '#/components/schemas/NotificationHeader'
+        - $ref: 'comDefs.yaml#/components/schemas/NotificationHeader'
         - type: object
           required:
             - alarmId
             - alarmType
-            - probableCause
-            - perceivedSeverity
-            - changedAlarmAttributes
           properties:
             alarmId:
               $ref: '#/components/schemas/AlarmId'
@@ -893,38 +810,35 @@ components:
             backedUpStatus:
               type: boolean
             backUpObject:
-              $ref: '#/components/schemas/Dn'
+              $ref: 'comDefs.yaml#/components/schemas/Dn'
             trendIndication:
               $ref: '#/components/schemas/TrendIndication'
             thresholdInfo:
               $ref: '#/components/schemas/ThresholdInfo'
             stateChangeDefinition:
-              $ref: '#/components/schemas/AttributeValueChangeSet'
+              $ref: 'comDefs.yaml#/components/schemas/AttributeValueChangeSet'
             monitoredAttributes:
-              $ref: '#/components/schemas/AttributeNameValuePairSet'
+              $ref: 'comDefs.yaml#/components/schemas/AttributeNameValuePairSet'
             proposedRepairActions:
               type: string
             additionalText:
               type: string
             additionalInformation:
-              $ref: '#/components/schemas/AttributeNameValuePairSet'
+              $ref: 'comDefs.yaml#/components/schemas/AttributeNameValuePairSet'
             rootCauseIndicator:
               type: boolean
             changedAlarmAttributes:
-              $ref: '#/components/schemas/AttributeNameValuePairSet'
+              $ref: 'comDefs.yaml#/components/schemas/AttributeNameValuePairSet'
     NotifyChangedSecAlarmGeneral:
       allOf:
-        - $ref: '#/components/schemas/NotificationHeader'
+        - $ref: 'comDefs.yaml#/components/schemas/NotificationHeader'
         - type: object
           required:
             - alarmId
             - alarmType
-            - probableCause
-            - perceivedSeverity
             - serviceUser
             - serviceProvider
             - securityAlarmDetector
-            - changedAlarmAttributes
           properties:
             alarmId:
               $ref: '#/components/schemas/AlarmId'
@@ -939,7 +853,7 @@ components:
             additionalText:
               type: string
             additionalInformation:
-              $ref: '#/components/schemas/AttributeNameValuePairSet'
+              $ref: 'comDefs.yaml#/components/schemas/AttributeNameValuePairSet'
             rootCauseIndicator:
               type: boolean
             serviceUser:
@@ -949,10 +863,10 @@ components:
             securityAlarmDetector:
               type: string
             changedAlarmAttributes:
-              $ref: '#/components/schemas/AttributeNameValuePairSet'
+              $ref: 'comDefs.yaml#/components/schemas/AttributeNameValuePairSet'
     NotifyCorrelatedNotificationChanged:
       allOf:
-        - $ref: '#/components/schemas/NotificationHeader'
+        - $ref: 'comDefs.yaml#/components/schemas/NotificationHeader'
         - type: object
           required:
             - alarmId
@@ -966,7 +880,7 @@ components:
               type: boolean
     NotifyAckStateChanged:
       allOf:
-        - $ref: '#/components/schemas/NotificationHeader'
+        - $ref: 'comDefs.yaml#/components/schemas/NotificationHeader'
         - type: object
           required:
             - alarmId
@@ -992,7 +906,7 @@ components:
               type: string
     NotifyComments:
       allOf:
-        - $ref: '#/components/schemas/NotificationHeader'
+        - $ref: 'comDefs.yaml#/components/schemas/NotificationHeader'
         - type: object
           required:
             - alarmId
@@ -1013,7 +927,7 @@ components:
               $ref: '#/components/schemas/Comments'
     NotifyPotentialFaultyAlarmList:
       allOf:
-        - $ref: '#/components/schemas/NotificationHeader'
+        - $ref: 'comDefs.yaml#/components/schemas/NotificationHeader'
         - type: object
           required:
             - reason
@@ -1022,7 +936,7 @@ components:
               type: string
     NotifyAlarmListRebuilt:
       allOf:
-        - $ref: '#/components/schemas/NotificationHeader'
+        - $ref: 'comDefs.yaml#/components/schemas/NotificationHeader'
         - type: object
           required:
             - reason
@@ -1119,7 +1033,7 @@ components:
       type: object
       properties:
         commentTime:
-          $ref: '#/components/schemas/DateTime'
+          $ref: 'comDefs.yaml#/components/schemas/DateTime'
         commentUserId:
           type: string
         commentSystemId:
@@ -1137,8 +1051,8 @@ components:
       type: object
       properties:
         consumerReference:
-          $ref: '#/components/schemas/Uri'
+          $ref: 'comDefs.yaml#/components/schemas/Uri'
         timeTick:
-          $ref: '#/components/schemas/Long'
+          type: integer
         filter:
-          $ref: '#/components/schemas/Filter'
+          $ref: 'comDefs.yaml#/components/schemas/Filter'
diff --git a/kubernetes/dcaegen2-services/resources/external/schemas/sa91-rel16/genericNrm.yaml b/kubernetes/dcaegen2-services/resources/external/schemas/sa91-rel16/genericNrm.yaml
new file mode 100644 (file)
index 0000000..aedf3c4
--- /dev/null
@@ -0,0 +1,1516 @@
+openapi: 3.0.1
+info:
+  title: Generic NRM
+  version: 16.6.0
+  description: >-
+    OAS 3.0.1 definition of the Generic NRM
+    Â© 2020, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).
+    All rights reserved.
+externalDocs:
+  description: 3GPP TS 28.623 V16.5.0; Generic NRM
+  url: http://www.3gpp.org/ftp/Specs/archive/28_series/28.623/
+paths: {}
+components:
+  schemas:
+
+#-------- Definition of types-----------------------------------------------------
+
+    RegistrationState:
+      type: string
+      enum:
+        - REGISTERED
+        - DEREGISTERED
+    VnfParameter:
+      type: object
+      properties:
+        vnfInstanceId:
+          type: string
+        vnfdId:
+          type: string
+        flavourId:
+          type: string
+        autoScalable:
+          type: boolean
+    SiteLatitude:
+      type: number
+      format: float
+      minimum: -90
+      maximum: 90
+    SiteLongitude:
+      type: number
+      format: float
+      minimum: -180
+      maximum: 180
+    PeeParameter:
+      type: object
+      properties:
+        siteIdentification:
+          type: string
+        siteDescription:
+          type: string
+        siteLatitude:
+          $ref: '#/components/schemas/SiteLatitude'
+        siteLongitude:
+          $ref: '#/components/schemas/SiteLongitude'
+        equipmentType:
+          type: string
+        environmentType:
+          type: string
+        powerInterface:
+          type: string
+    ThresholdInfo:
+      type: object
+      properties:
+        thresholdDirection:
+          type: string
+          enum:
+            - UP
+            - DOWN
+            - UP_AND_DOWN
+        thresholdValue:
+          oneOf:
+            - type: integer
+            - $ref: 'comDefs.yaml#/components/schemas/Float'
+        hysteresis:
+          oneOf:
+            - type: integer
+              minimum: 0
+            - type: number
+              format: float
+              minimum: 0
+    Operation:
+      type: object
+      properties:
+        name:
+          type: string
+        allowedNFTypes:
+          $ref: '#/components/schemas/NFType'
+        operationSemantics:
+          $ref: '#/components/schemas/OperationSemantics'
+    NFType:
+      type: string
+      description: ' NF name defined in TS 23.501'
+      enum:
+        - NRF
+        - UDM
+        - AMF
+        - SMF
+        - AUSF
+        - NEF
+        - PCF
+        - SMSF
+        - NSSF
+        - UDR
+        - LMF
+        - GMLC
+        - 5G_EIR
+        - SEPP
+        - UPF
+        - N3IWF
+        - AF
+        - UDSF
+        - DN
+    Fqdn:
+      type: string
+    OperationSemantics:
+      type: string
+      enum:
+        - REQUEST_RESPONSE
+        - SUBSCRIBE_NOTIFY
+    SAP:
+      type: object
+      properties:
+        host:
+          $ref: '#/components/schemas/HostAddr'
+        port:
+          type: integer
+    NFServiceType:
+      type: string
+      enum:
+        - Namf_Communication
+        - Namf_EventExposure
+        - Namf_MT
+        - Namf_Location
+        - Nsmf_PDUSession
+        - Nsmf_EventExposure
+        - Others
+    HostAddr:
+      oneOf:
+        - $ref: '#/components/schemas/Ipv4Addr'
+        - $ref: '#/components/schemas/Ipv6Addr'
+        - $ref: '#/components/schemas/Fqdn'
+    Ipv4Addr:
+      type: string
+      pattern: '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$'
+      example: '198.51.100.1'
+    Ipv6Addr:
+      type: string
+      allOf:
+        - pattern: '^((:|(0?|([1-9a-f][0-9a-f]{0,3}))):)((0?|([1-9a-f][0-9a-f]{0,3})):){0,6}(:|(0?|([1-9a-f][0-9a-f]{0,3})))$'
+        - pattern: '^((([^:]+:){7}([^:]+))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?))$'
+      example: '2001:db8:85a3::8a2e:370:7334'
+    Ipv6Prefix:
+      type: string
+      allOf:
+        - pattern: '^((:|(0?|([1-9a-f][0-9a-f]{0,3}))):)((0?|([1-9a-f][0-9a-f]{0,3})):){0,6}(:|(0?|([1-9a-f][0-9a-f]{0,3})))(\/(([0-9])|([0-9]{2})|(1[0-1][0-9])|(12[0-8])))$'
+        - pattern: '^((([^:]+:){7}([^:]+))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?))(\/.+)$'
+      example: '2001:db8:abcd:12::0/64'
+    TransportProtocol:
+      anyOf:
+        - type: string
+          enum:
+            - TCP
+        - type: string
+    SupportedPerfMetricGroup:
+      type: object
+      properties:
+        performanceMetrics:
+          type: array
+          items:
+            type: string
+        granularityPeriods:
+          type: array
+          items:
+            type: integer
+            minimum: 1
+        reportingMethods:
+          type: array
+          items:
+            type: string
+            enum:
+             - FILE_BASED_LOC_SET_BY_PRODUCER
+             - FILE_BASED_LOC_SET_BY_CONSUMER
+             - STREAM_BASED 
+        monitorGranularityPeriods:
+          type: array
+          items:
+            type: integer
+            minimum: 1
+    ReportingCtrl:
+      oneOf:
+        - type: object
+          properties:
+            fileReportingPeriod:
+              type: integer
+        - type: object
+          properties:
+            fileReportingPeriod:
+              type: integer
+            fileLocation:
+              $ref: 'comDefs.yaml#/components/schemas/Uri'
+        - type: object
+          properties:
+            streamTarget:
+              $ref: 'comDefs.yaml#/components/schemas/Uri'
+    Scope:
+      type: object
+      properties:
+        scopeType:
+          type: string
+          enum:
+            - BASE_ONLY
+            - BASE_ALL
+            - BASE_NTH_LEVEL
+            - BASE_SUBTREE
+        scopeLevel:
+          type: integer
+
+#-------- Definition of types used in Trace control NRM fragment------------------
+                
+    tjJobType-Type:
+      type: string
+      description: Specifies whether the TraceJob represents only MDT, Logged MBSFN MDT, Trace or a combined Trace and MDT job. Applicable for Trace, MDT, RCEF and RLF reporting. See 3GPP TS 32.422 clause 5.9a for additional details.
+      enum:
+        - IMMEDIATE_MDT_ONLY
+        - LOGGED_MDT_ONLY
+        - TRACE_ONLY
+        - IMMEDIATE_MDT AND TRACE
+        - RLF_REPORT_ONLY
+        - RCEF_REPORT_ONLY
+        - LOGGED_MBSFN_MDT
+
+    tjListOfInterfaces-Type:
+      description: The interfaces to be recorded in the Network Element. See 3GPP TS 32.422 clause 5.5 for additional details.
+      type: object
+      properties:
+        MSCServerInterfaces:
+          type: array
+          items:
+            type: string
+            enum:
+              - A
+              - Iu-CS
+              - Mc
+              - MAP-G
+              - MAP-B
+              - MAP-E
+              - MAP-F
+              - MAP-D
+              - MAP-C
+              - CAP
+        MGWInterfaces:
+          type: array
+          items:
+            type: string
+            enum:
+              - Mc
+              - Nb-UP
+              - Iu-UP
+        RNCInterfaces:
+          type: array
+          items:
+            type: string
+            enum:
+              - Iu-CS
+              - Iu-PS
+              - Iur
+              - Iub
+              - Uu
+        SGSNInterfaces:
+          type: array
+          items:
+            type: string
+            enum:
+              - Gb
+              - Iu-PS
+              - Gn
+              - MAP-Gr
+              - MAP-Gd
+              - MAP-Gf
+              - Ge
+              - Gs
+              - S6d
+              - S4
+              - S3
+              - S13
+        GGSNInterfaces:
+          type: array
+          items:
+            type: string
+            enum:
+              - Gn
+              - Gi
+              - Gmb
+        S-CSCFInterfaces:
+          type: array
+          items:
+            type: string
+            enum:
+              - Mw
+              - Mg
+              - Mr
+              - Mi
+        P-CSCFInterfaces:
+          type: array
+          items:
+            type: string
+            enum:
+              - Gm
+              - Mw
+        I-CSCFInterfaces:
+          type: array
+          items:
+            type: string
+            enum:
+              - Cx
+              - Dx
+              - Mg
+              - Mw
+        MRFCInterfaces:
+          type: array
+          items:
+            type: string
+            enum:
+              - Mp
+              - Mr
+        MGCFInterfaces:
+          type: array
+          items:
+            type: string
+            enum:
+              - Mg
+              - Mj
+              - Mn
+        IBCFInterfaces:
+          type: array
+          items:
+            type: string
+            enum:
+              - Ix
+              - Mx
+        E-CSCFInterfaces:
+          type: array
+          items:
+            type: string
+            enum:
+              - Mw
+              - Ml
+              - Mm
+              - Mi/Mg
+        BGCFInterfaces:
+          type: array
+          items:
+            type: string
+            enum:
+              - Mi
+              - Mj
+              - Mk
+        ASInterfaces:
+          type: array
+          items:
+            type: string
+            enum:
+              - Dh
+              - Sh
+              - ISC
+              - Ut
+        HSSInterfaces:
+          type: array
+          items:
+            type: string
+            enum:
+              - MAP-C
+              - MAP-D
+              - Gc
+              - Gr
+              - Cx
+              - S6d
+              - S6a
+              - Sh
+        EIRInterfaces:
+          type: array
+          items:
+            type: string
+            enum:
+              - MAP-F
+              - S13
+              - MAP-Gf
+        BM-SCInterfaces:
+          type: array
+          items:
+            type: string
+            enum:
+              - Gmb
+        MMEInterfaces:
+          type: array
+          items:
+            type: string
+            enum:
+              - S1-MME
+              - S3
+              - S6a
+              - S10
+              - S11
+              - S13
+        SGWInterfaces:
+          type: array
+          items:
+            type: string
+            enum:
+              - S4
+              - S5
+              - S8
+              - S11
+              - Gxc
+        PDN_GWInterfaces:
+          type: array
+          items:
+            type: string
+            enum:
+              - S2a
+              - S2b
+              - S2c
+              - S5
+              - S6b
+              - Gx
+              - S8
+              - SGi
+        eNBInterfaces:
+          type: array
+          items:
+            type: string
+            enum:
+              - S1-MME
+              - X2
+        en-gNBInterfaces:
+          type: array
+          items:
+            type: string
+            enum:
+              - S1-MME
+              - X2
+              - Uu
+              - F1-C
+              - E1
+        AMFInterfaces:
+          type: array
+          items:
+            type: string
+            enum:
+              - N1
+              - N2
+              - N8
+              - N11
+              - N12
+              - N14
+              - N15
+              - N20
+              - N22
+              - N26
+        AUSFInterfaces:
+          type: array
+          items:
+            type: string
+            enum:
+              - N12
+              - N13
+        NEFInterfaces:
+          type: array
+          items:
+            type: string
+            enum:
+              - N29
+              - N30
+              - N33
+        NRFInterfaces:
+          type: array
+          items:
+            type: string
+            enum:
+              - N27
+        NSSFInterfaces:
+          type: array
+          items:
+            type: string
+            enum:
+              - N22
+              - N31
+        PCFInterfaces:
+          type: array
+          items:
+            type: string
+            enum:
+              - N5
+              - N7
+              - N15
+        SMFInterfaces:
+          type: array
+          items:
+            type: string
+            enum:
+              - N4
+              - N7
+              - N10
+              - N11
+              - S5-C
+        SMSFInterfaces:
+          type: array
+          items:
+            type: string
+            enum:
+              - N20
+              - N21
+        UDMInterfaces:
+          type: array
+          items:
+            type: string
+            enum:
+              - N8
+              - N10
+              - N13
+              - N21
+        UPFInterfaces:
+          type: array
+          items:
+            type: string
+            enum:
+              - N4
+        ng-eNBInterfaces:
+          type: array
+          items:
+            type: string
+            enum:
+              - NG-C
+              - Xn-C
+              - Uu
+        gNB-CU-CPInterfaces:
+          type: array
+          items:
+            type: string
+            enum:
+              - NG-C
+              - Xn-C
+              - Uu
+              - F1-C
+              - E1
+              - X2-C
+        gNB-CU-UPInterfaces:
+          type: array
+          items:
+            type: string
+            enum:
+              - E1
+        gNB-DUInterfaces:
+          type: array
+          items:
+            type: string
+            enum:
+              - F1-C
+
+    tjListOfNeTypes-Type:
+      description: The Network Element types where Trace Session activation is needed. See 3GPP TS 32.422 clause 5.4 for additional details.
+      type: array
+      items:
+        type: string
+        enum:
+          - MSC_SERVER
+          - SGSN
+          - MGW
+          - GGSN
+          - RNC
+          - BM_SC
+          - MME
+          - SGW
+          - PGW
+          - ENB
+          - EN_GNB
+          - GNB_CU_CP
+          - GNB_CU_UP
+          - GNB_DU
+
+    tjPLMNTaget-Type:
+      type: object
+      description: The PLMN for which sessions shall be selected in the Trace Session in case of management based activation when several PLMNs are supported in the RAN (this means that shared cells and not shared cells are allowed for the specified PLMN. Note that the PLMN Target might differ from the PLMN specified in the Trace Reference, as that specifies the PLMN that is containing the management system requesting the Trace Session from the NE. See 3GPP TS 32.422 clause 5.9b for additional details.
+      properties:
+        mcc:
+          $ref: 'comDefs.yaml#/components/schemas/Mcc'
+        mnc:
+          $ref: 'comDefs.yaml#/components/schemas/Mnc'
+      required:
+        - mcc
+        - mnc
+
+    tjStreamingTraceConsumerURI-Type:
+      type: string
+      description: The URI of the Trace Reporting MnS consumer (see 3GPP TS 28.532) to which the Trace records shall be sent. See 3GPP TS 32.422 clause 5.9 for additional details.
+      format: uri
+
+    tjTraceCollectionEntityAddress-Type:
+      description: The IP address to which the Trace records shall be transferred. See 3GPP TS 32.422 clause 5.9 for additional details.
+      oneOf:
+        - $ref: '#/components/schemas/Ipv4Addr'
+        - $ref: '#/components/schemas/Ipv6Addr'
+
+    tjTraceDepth-Type:
+      description: Specifies how detailed information should be recorded in the Network Element. The Trace Depth is a paremeter for Trace Session level, i.e., the Trace Depth is the same for all of the NEs to be traced in the same Trace Session. See 3GPP TS 32.422 clause 5.3 for additional details.
+      type: string
+      enum:
+        - MINIMUM
+        - MEDIUM
+        - MAXIMUM
+        - VENDORMINIMUM
+        - VENDORMEDIUM
+        - VENDORMAXIMUM
+
+    tjTraceReference-Type:
+      type: object
+      description: The Trace Reference parameter shall be globally unique, therefore the Trace Reference shall compose as follows - MCC+MNC+Trace ID, where the MCC and MNC are coming with the Trace activation request from the management system to identify one PLMN containing the management system, and Trace ID is a 3 byte Octet String. See 3GPP TS 32.422 clause 5.6 for additional details.
+      properties:
+        mcc:
+          $ref: 'comDefs.yaml#/components/schemas/Mcc'
+        mnc:
+          $ref: 'comDefs.yaml#/components/schemas/Mnc'
+        traceId:
+          type: integer
+      required:
+        - mcc
+        - mnc
+        - traceId
+
+    tjTraceReportingFormat-Type:
+      type: string
+      description: Specifies whether file-based or streaming reporting shall be used for this Trace Session. See 3GPP TS 32.422 clause 5.11 for additional details.
+      enum:
+        - FILE-BASED
+        - STREAMING
+
+    tjTraceTarget-Type:
+      type: object
+      description: Trace target conveying both the type and value of the target ID. For additional details see 3GPP TS 32.422
+      properties:
+        TargetIdType:
+          type: string
+          enum:
+            - IMSI
+            - IMEI
+            - IMEISV
+            - PUBLIC_ID
+            - UTRAN_CELL
+            - E-UTRAN_CELL
+            - NG-RAN_CELL
+            - eNB
+            - RNC
+            - gNB
+            - SUPI
+        TargetIdValue:
+          type: string
+      required:
+        - TargetIdType
+        - TargetIdValue
+    
+    tjTriggeringEvent-Type:
+      type: object
+      description: Specifies when to start a Trace Recording Session and which message shall be recorded first, when to stop a Trace Recording Session and which message shall be recorded last respectively. See 3GPP TS 32.422 clause 5.1 for additional detials.
+      properties:
+        NetworkElement:
+          type: string
+          enum:
+            - MSC_SERVER
+            - SGSN
+            - MGW
+            - GGSN
+            - BM_SC
+            - MME
+            - SGW
+            - PGW
+            - AMF
+            - SMF
+            - PCF
+            - UPF
+        EventBitmap:
+          type: integer
+      required:
+        - NetworkElement
+        - EventBitmap
+    
+    tjMDTAnonymizationOfData-Type:
+      description: Specifies level of MDT anonymization. For additional details see 3GPP TS 32.422 clause 5.10.12.
+      type: string
+      enum:
+        - NO_IDENTITY
+        - TAC_OF_IMEI
+    
+    tjMDTAreaConfigurationForNeighCell-Type:
+      description: Used for logged NR MDT and defines the area for which UE is requested to perform measurement logging for neighbour cells which have list of frequencies. For additional details see 3GPP TS 32.422 clause 5.10.26.
+      type: array
+      items:
+        type: object
+        properties:
+          frequency:
+            type: string
+          cell:
+            type: string
+      
+    tjMDTAreaScope-Type:
+      description: defines the area in terms or Cells or Tracking Area/Routing Area/Location Area where the MDT data collection shall take place. For additional details see 3GPP TS 32.422 clause 5.10.2.
+      allOf:
+        - $ref: 'comDefs.yaml#/components/schemas/DnList'
+        
+    tjMDTCollectionPeriodRrmLte-Type:
+      description: See details in 3GPP TS 32.422 clause 5.10.20.
+      type: string
+      enum:
+        - 250ms
+        - 500ms
+        - 1000ms
+        - 2000ms
+        - 3000ms
+        - 4000ms
+        - 6000ms
+        - 8000ms
+        - 12000ms
+        - 16000ms
+        - 20000ms
+        - 24000ms
+        - 28000ms
+        - 32000ms
+        - 64000ms
+
+    tjMDTCollectionPeriodRrmUmts-Type:
+      description: See details in 3GPP TS 32.422 clause 5.10.21.
+      type: string
+      enum:
+        - 1024ms
+        - 1280ms
+        - 2048ms
+        - 2560ms
+        - 5120ms
+        - 10240ms
+        - 1min
+    
+    tjMDTCollectionPeriodRrmNR-Type:
+      description: See details in 3GPP TS 32.422 clause 5.10.30.
+      type: string
+      enum:
+        - 1024ms
+        - 1280ms
+        - 2048ms
+        - 5120ms
+        - 10240ms
+        - 60000ms
+
+    tjMDTEventListForTriggeredMeasurement-Type:
+      description: See details in 3GPP TS 32.422 clause 5.10.28.
+      type: string
+      enum:
+        - OUT_OF_COVERAGE
+        - A2_EVENT
+
+    tjMDTEventThreshold-Type:
+      description: See details in 3GPP TS 32.422 clause 5.10.7, 5.10.7a, 5.10.13 and 5.10.14.
+      type: object
+      properties:
+        EventThresholdRSRP:
+          type: integer
+          minimum: 0
+          maximum: 97
+        EventThresholdRSRQ:      
+          type: integer
+          minimum: 0
+          maximum: 34
+        EventThreshold1F:
+          type: object
+          properties:
+            CPICH_RSCP:
+              type: integer
+              minimum: -120
+              maximum: 25
+            CPICH_EcNo:
+              type: integer
+              minimum: -24
+              maximum: 0
+            PathLoss:
+              type: integer
+              minimum: 30
+              maximum: 165
+        EventThreshold1I:
+          type: integer
+          minimum: -120
+          maximum: 25
+
+    tjMDTListOfMeasurements-Type:
+      description: See details in 3GPP TS 32.422 clause 5.10.3 for details.
+      type: object
+      properties:
+        UMTS:
+          type: array
+          items:
+            type: string
+            enum:
+              - M1
+              - M2
+              - M3
+              - M4
+              - M5
+              - M6_DL
+              - M6_UL
+              - M7_DL
+              - M7_UL
+        LTE:
+          type: array
+          items:
+            type: string
+            enum:
+              - M1
+              - M2
+              - M3
+              - M4
+              - M5
+              - M1_EVENT_TRIGGERED
+              - M6
+              - M7
+              - M8
+              - M9
+        NR:
+          type: array
+          items:
+            type: string
+            enum:
+              - M1
+              - M2
+              - M3
+              - M4
+              - M5
+              - M6
+              - M7
+              - M8
+              - M9
+
+    tjMDTLoggingDuration-Type:
+      description: See details in 3GPP TS 32.422 clause 5.10.9.
+      type: string
+      enum:
+        - 600s
+        - 1200s
+        - 2400s
+        - 3600s
+        - 5400s
+        - 7200s
+    
+    tjMDTLoggingInterval-Type:
+      description: See details in 3GPP TS 32.422 clause 5.10.8.
+      type: string
+      enum:
+        - 1.28s
+        - 2.56s
+        - 5.12s
+        - 10.24s
+        - 20.48s
+        - 30.72s
+        - 40.96s
+        - 61.44s
+
+    tjMDTMBSFNAreaList-Type:
+      description: See details in 3GPP TS 32.422 clause 5.10.25.
+      type: array
+      items:
+        type: object
+        properties:
+          mbsfnAreaId:
+            type: integer
+            minimum: 1
+          earfcn:
+            type: integer
+            minimum: 1
+        required:
+          - mbsfnAreaId
+          - earfcn
+
+    tjMDTMeasurementPeriodLTE-Type:
+      description: See details in 3GPP TS 32.422 clause 5.10.23.
+      type: string
+      enum:
+        - 1024ms
+        - 1280ms
+        - 2048ms
+        - 2560ms
+        - 5120ms
+        - 10240ms
+        - 1min
+
+    tjMDTMeasurementPeriodUMTS-Type:
+      description: See details in 3GPP TS 32.422 clause 5.10.22.
+      type: string
+      enum:
+        - 250ms
+        - 500ms
+        - 1000ms
+        - 2000ms
+        - 3000ms
+        - 4000ms
+        - 6000ms
+        - 8000ms
+        - 12000ms
+        - 16000ms
+        - 20000ms
+        - 24000ms
+        - 28000ms
+        - 32000ms
+        - 64000ms
+
+    tjMDTMeasurementQuantity-Type:
+      description: See details in 3GPP TS 32.422 clause 5.10.15.
+      type: string
+      enum:
+        - CPICH_EcNo
+        - CPICH_RSCP
+        - PathLoss
+
+    tjMDTPLMList-Type:
+      description: See details in 3GPP TS 32.422 clause 5.10.24.
+      type: array
+      items:
+        type: object
+        properties:
+          mcc:
+            $ref: 'comDefs.yaml#/components/schemas/Mcc'
+          mnc:
+            $ref: 'comDefs.yaml#/components/schemas/Mnc'
+        required:
+          - mcc
+          - mnc
+      maxItems: 16
+
+    tjMDTPositioningMethod-Type:
+      description: See details in 3GPP TS 32.422 clause 5.10.19.
+      type: string
+      enum:
+        - GNSS
+        - E-CELL_ID
+
+    tjMDTReportAmount-Type:
+      description: See details in 3GPP TS 32.422 clause 5.10.6.
+      type: string
+      enum:
+        - 1
+        - 2
+        - 4
+        - 8
+        - 16
+        - 32
+        - 64
+        - INFINITY
+
+    tjMDTReportingTrigger-Type:
+      description: See details in 3GPP TS 32.422 clause 5.10.4.
+      type: array
+      items:
+        type: string
+        enum:
+          - PERIODICAL
+          - A2_FOR_LTE
+          - 1F_FOR_UMTS
+          - 1I_FOR_UMTS_MCPS_TDD
+          - A2_TRIGGERED_PERIODIC_FOR_LTE
+          - ALL_CONFIGURED_RRM_FOR_LTE
+          - ALL_CONFIGURED_RRM_FOR_UMTS
+
+    tjMDTReportInterval-Type:
+      description: See details in 3GPP TS 32.422 clause 5.10.5.
+      type: string
+      enum:
+        - 250ms
+        - 500ms
+        - 1000ms
+        - 2000ms
+        - 3000ms
+        - 4000ms
+        - 6000ms
+        - 8000ms
+        - 12000ms
+        - 16000ms
+        - 20000ms
+        - 24000ms
+        - 28000ms
+        - 32000ms
+        - 64000ms
+        - 120ms
+        - 240ms
+        - 480ms
+        - 640ms
+        - 1024ms
+        - 2048ms
+        - 5120ms
+        - 10240ms
+        - 60000ms
+        - 360000ms
+        - 720000ms
+        - 1800000ms
+        - 3600000ms
+
+    tjMDTReportType-Type:
+      description: Report type for logged NR MDT. See details in 3GPP TS 32.422 clause 5.10.27.
+      type: string
+      enum:
+        - PERIODICAL
+        - EVENT_TRIGGERED
+
+    tjMDTSensorInformation-Type:
+      description: See details in 3GPP TS 32.422 clause 5.10.29.
+      type: array
+      items:
+        type: string
+        enum:
+          - BAROMETRIC_PRESSURE
+          - UE_SPEED
+          - UE_ORIENTATION
+
+    tjMDTTraceCollectionEntityID-Type:
+      description: See details in 3GPP TS 32.422 clause 5.10.11. Only tceID value may be sent over the air to the UE being configured for Logged MDT.
+      type: object
+      properties:
+        tceID:
+          type: integer
+        tcePLMN:
+          type: object
+          properties:
+            mcc:
+              $ref: 'comDefs.yaml#/components/schemas/Mcc'
+            mnc:
+              $ref: 'comDefs.yaml#/components/schemas/Mnc'
+          required:
+            - mcc
+            - mnc
+        tceAddress:
+          oneOf:
+            - $ref: '#/components/schemas/tjTraceCollectionEntityAddress-Type'
+            - $ref: '#/components/schemas/tjStreamingTraceConsumerURI-Type'
+      required:
+        - tceID
+        - tcePLMN
+        - tceAddress
+
+
+#-------- end of Definition of types used in Trace control NRM fragment ----------
+
+
+#-------- Definition of abstract IOC Top -----------------------------------------
+
+    Top-Attr:
+      #  This definition will be deprecated, when all occurances of Top-Attr
+      #  are replaced by Top.
+      type: object
+      properties:
+        id:
+          type: string
+        VsDataContainer:
+          $ref: '#/components/schemas/VsDataContainer-Multiple'
+    Top:
+      type: object
+      properties:
+        id:
+          type: string
+        VsDataContainer:
+          $ref: '#/components/schemas/VsDataContainer-Multiple'
+
+#-------- Definition of IOCs with new name-containments defined in other TS ------
+
+    SubNetwork-Attr:
+      type: object
+      properties:
+        dnPrefix:
+          type: string
+        userLabel:
+          type: string
+        userDefinedNetworkType:
+          type: string
+        setOfMcc:
+          type: array
+          items:
+            $ref: 'comDefs.yaml#/components/schemas/Mcc'
+        priorityLabel:
+          type: integer
+        supportedPerfMetricGroups:
+          type: array
+          items:
+            $ref: '#/components/schemas/SupportedPerfMetricGroup'
+    ManagedElement-Attr:
+      type: object
+      properties:
+        dnPrefix:
+          type: string
+        managedElementTypeList:
+          type: array
+          items:
+            type: string
+        userLabel:
+          type: string
+        locationName:
+          type: string
+        managedBy:
+          $ref: 'comDefs.yaml#/components/schemas/DnList'
+        vendorName:
+          type: string
+        userDefinedState:
+          type: string
+        swVersion:
+          type: string
+        priorityLabel:
+          type: integer
+        supportedPerfMetricGroups:
+          type: array
+          items:
+            $ref: '#/components/schemas/SupportedPerfMetricGroup'
+
+    SubNetwork-ncO:
+      type: object
+      properties:
+        ManagementNode:
+          $ref: '#/components/schemas/ManagementNode-Multiple'
+        MeContext:
+          $ref: '#/components/schemas/MeContext-Multiple'
+        PerfMetricJob:
+          $ref: '#/components/schemas/PerfMetricJob-Multiple'
+        ThresholdMonitor:
+          $ref: '#/components/schemas/ThresholdMonitor-Multiple'
+        NtfSubscriptionControl:
+          $ref: '#/components/schemas/NtfSubscriptionControl-Multiple'
+        TraceJob:
+          $ref: '#/components/schemas/TraceJob-Multiple'
+        AlarmList:
+          $ref: '#/components/schemas/AlarmList-Single'
+    ManagedElement-ncO:
+      type: object
+      properties:
+        PerfMetricJob:
+          $ref: '#/components/schemas/PerfMetricJob-Multiple'
+        ThresholdMonitor:
+          $ref: '#/components/schemas/ThresholdMonitor-Multiple'
+        NtfSubscriptionControl:
+          $ref: '#/components/schemas/NtfSubscriptionControl-Multiple'
+        TraceJob:
+          $ref: '#/components/schemas/TraceJob-Multiple'
+        AlarmList:
+          $ref: '#/components/schemas/AlarmList-Single'
+
+#-------- Definition of abstract IOCs --------------------------------------------
+
+    ManagedFunction-Attr:
+      type: object
+      properties:
+        userLabel:
+          type: string
+        vnfParametersList:
+          type: array
+          items:
+            $ref: '#/components/schemas/VnfParameter'
+        peeParametersList:
+          type: array
+          items:
+            $ref: '#/components/schemas/PeeParameter'
+        priorityLabel:
+          type: integer
+        supportedPerfMetricGroups:
+          type: array
+          items:
+            $ref: '#/components/schemas/SupportedPerfMetricGroup'
+    EP_RP-Attr:
+      type: object
+      properties:
+        userLabel:
+          type: string
+        farEndEntity:
+          type: string
+        supportedPerfMetricGroups:
+          type: array
+          items:
+            $ref: '#/components/schemas/SupportedPerfMetricGroup'
+
+    TraceJob-Attr:
+      type: object
+      description: abstract class used as a container of all TraceJob attributes
+      properties:
+        tjJobType:
+          $ref: '#/components/schemas/tjJobType-Type'
+        tjListOfInterfaces:
+          $ref: '#/components/schemas/tjListOfInterfaces-Type'                  
+        tjListOfNeTypes:
+          $ref: '#/components/schemas/tjListOfNeTypes-Type'
+        tjPLMNTarget:
+          $ref: '#/components/schemas/tjPLMNTaget-Type'
+        tjTraceConsumer:
+          oneOf:
+            - $ref: '#/components/schemas/tjStreamingTraceConsumerURI-Type'
+            - $ref: '#/components/schemas/tjTraceCollectionEntityAddress-Type'
+        tjTraceDepth:
+          $ref: '#/components/schemas/tjTraceDepth-Type'
+        tjTraceReference:
+          $ref: '#/components/schemas/tjTraceReference-Type'
+        tjTraceReportingFormat:
+          $ref: '#/components/schemas/tjTraceReportingFormat-Type'
+        tjTraceTarget:
+          $ref: '#/components/schemas/tjTraceTarget-Type'
+        tjTriggeringEvent:
+          $ref: '#/components/schemas/tjTriggeringEvent-Type'
+        tjMDTAnonymizationOfData:
+          $ref: '#/components/schemas/tjMDTAnonymizationOfData-Type'
+        tjMDTAreaConfigurationForNeighCell:
+          $ref: '#/components/schemas/tjMDTAreaConfigurationForNeighCell-Type'
+        tjMDTAreaScope:
+          $ref: '#/components/schemas/tjMDTAreaScope-Type'
+        tjMDTCollectionPeriodRrmLte:
+          $ref: '#/components/schemas/tjMDTCollectionPeriodRrmLte-Type'
+        tjMDTCollectionPeriodRrmUmts:
+          $ref: '#/components/schemas/tjMDTCollectionPeriodRrmUmts-Type'
+        tjMDTCollectionPeriodRrmNR:
+          $ref: '#/components/schemas/tjMDTCollectionPeriodRrmNR-Type'
+        tjMDTEventListForTriggeredMeasurement:
+          $ref: '#/components/schemas/tjMDTEventListForTriggeredMeasurement-Type'
+        tjMDTEventThreshold:
+          $ref: '#/components/schemas/tjMDTEventThreshold-Type'
+        tjMDTListOfMeasurements:
+          $ref: '#/components/schemas/tjMDTListOfMeasurements-Type'
+        tjMDTLoggingDuration:
+          $ref: '#/components/schemas/tjMDTLoggingDuration-Type'
+        tjMDTLoggingInterval:
+          $ref: '#/components/schemas/tjMDTLoggingInterval-Type'
+        tjMDTMBSFNAreaList:
+          $ref: '#/components/schemas/tjMDTMBSFNAreaList-Type'
+        tjMDTMeasurementPeriodLTE:
+          $ref: '#/components/schemas/tjMDTMeasurementPeriodLTE-Type'
+        tjMDTMeasurementPeriodUMTS:
+          $ref: '#/components/schemas/tjMDTMeasurementPeriodUMTS-Type'
+        tjMDTMeasurementQuantity:
+          $ref: '#/components/schemas/tjMDTMeasurementQuantity-Type'
+        tjMDTPLMList:
+          $ref: '#/components/schemas/tjMDTPLMList-Type'
+        tjMDTPositioningMethod:
+          $ref: '#/components/schemas/tjMDTPositioningMethod-Type'
+        tjMDTReportAmount:
+          $ref: '#/components/schemas/tjMDTReportAmount-Type'
+        tjMDTReportingTrigger:
+          $ref: '#/components/schemas/tjMDTReportingTrigger-Type'
+        tjMDTReportInterval:
+          $ref: '#/components/schemas/tjMDTReportInterval-Type'
+        tjMDTReportType:
+          $ref: '#/components/schemas/tjMDTReportType-Type'
+        tjMDTSensorInformation:
+          $ref: '#/components/schemas/tjMDTSensorInformation-Type'
+        tjMDTTraceCollectionEntityID:
+          $ref: '#/components/schemas/tjMDTTraceCollectionEntityID-Type'
+      required:
+        - tjJobType
+        - tjTraceReference
+        - tjTraceConsumer
+        - tjTraceReportingFormat
+        - tjTraceTarget
+
+    ManagedFunction-ncO:
+      type: object
+      properties:
+        PerfMetricJob:
+          $ref: '#/components/schemas/PerfMetricJob-Multiple'
+        ThresholdMonitor:
+          $ref: '#/components/schemas/ThresholdMonitor-Multiple'
+        ManagedNFService:
+          $ref: '#/components/schemas/ManagedNFService-Multiple'
+        TraceJob:
+          $ref: '#/components/schemas/TraceJob-Multiple'
+
+#-------- Definition of concrete IOCs --------------------------------------------
+
+    VsDataContainer-Single:
+      type: object
+      properties:
+        id:
+          type: string
+        attributes:
+          type: object
+          properties:
+            vsDataType:
+              type: string
+            vsDataFormatVersion:
+              type: string
+            vsData:
+              nullable: true
+        VsDataContainer:
+          $ref: '#/components/schemas/VsDataContainer-Multiple'
+    ManagedNFService-Single:
+      allOf:
+        - $ref: '#/components/schemas/Top'
+        - type: object
+          properties:
+            attributes:
+              type: object
+              properties:
+                userLabel:
+                  type: string
+                nFServiceType:
+                  $ref: '#/components/schemas/NFServiceType'
+                sAP:
+                  $ref: '#/components/schemas/SAP'
+                operations:
+                  type: array
+                  items:
+                    $ref: '#/components/schemas/Operation'
+                administrativeState:
+                  $ref: 'comDefs.yaml#/components/schemas/AdministrativeState'
+                operationalState:
+                  $ref: 'comDefs.yaml#/components/schemas/OperationalState'
+                usageState:
+                  $ref: 'comDefs.yaml#/components/schemas/UsageState'
+                registrationState:
+                  $ref: '#/components/schemas/RegistrationState'
+    ManagementNode-Single:
+      allOf:
+        - $ref: '#/components/schemas/Top'
+        - type: object
+          properties:
+            attributes:
+              type: object
+              properties:
+                userLabel:
+                  type: string
+                managedElements:
+                  $ref: 'comDefs.yaml#/components/schemas/DnList'
+                vendorName:
+                  type: string
+                userDefinedState:
+                  type: string
+                locationName:
+                  type: string
+                swVersion:
+                  type: string
+    MeContext-Single:
+      allOf:
+        - $ref: '#/components/schemas/Top'
+        - type: object
+          properties:
+            attributes:
+              type: object
+              properties:
+                dnPrefix:
+                  type: string
+    PerfMetricJob-Single:
+      allOf:
+        - $ref: '#/components/schemas/Top'
+        - type: object
+          properties:
+            attributes:
+              type: object
+              properties:
+                administrativeState:
+                  $ref: 'comDefs.yaml#/components/schemas/AdministrativeState'
+                operationalState:
+                  $ref: 'comDefs.yaml#/components/schemas/OperationalState'
+                jobId:
+                  type: string
+                performanceMetrics:
+                  type: array
+                  items:
+                    type: string
+                granularityPeriod:
+                  type: integer
+                  minimum: 1
+                objectInstances:
+                  $ref: 'comDefs.yaml#/components/schemas/DnList'
+                rootObjectInstances:
+                  $ref: 'comDefs.yaml#/components/schemas/DnList'
+                reportingCtrl:
+                  $ref: '#/components/schemas/ReportingCtrl'
+    ThresholdMonitor-Single:
+      allOf:
+        - $ref: '#/components/schemas/Top'
+        - type: object
+          properties:
+            attributes:
+              type: object
+              properties:
+                administrativeState:
+                  $ref: 'comDefs.yaml#/components/schemas/AdministrativeState'
+                operationalState:
+                  $ref: 'comDefs.yaml#/components/schemas/OperationalState'
+                performanceMetrics:
+                  type: array
+                  items:
+                    type: string
+                thresholdInfoList:
+                  type: array
+                  items:
+                    $ref: '#/components/schemas/ThresholdInfo'
+                monitorGranularityPeriod:
+                  type: integer
+                  minimum: 1
+                objectInstances:
+                  $ref: 'comDefs.yaml#/components/schemas/DnList'
+                rootObjectInstances:
+                  $ref: 'comDefs.yaml#/components/schemas/DnList'
+    NtfSubscriptionControl-Single:
+      allOf:
+        - $ref: '#/components/schemas/Top'
+        - type: object
+          properties:
+            attributes:
+              type: object
+              properties:
+                notificationRecipientAddress:
+                  $ref: 'comDefs.yaml#/components/schemas/Uri'
+                notificationTypes:
+                  type: array
+                  items:
+                    $ref: 'comDefs.yaml#/components/schemas/NotificationType'
+                scope:
+                  $ref: '#/components/schemas/Scope'
+                notificationFilter:
+                  type: string
+            HeartbeatControl:
+              $ref: '#/components/schemas/HeartbeatControl-Single'
+    HeartbeatControl-Single:
+      allOf:
+        - $ref: '#/components/schemas/Top'
+        - type: object
+          properties:
+            attributes:
+              type: object
+              properties:
+                heartbeatNtfPeriod:
+                  type: integer
+                triggerHeartbeatNtf:
+                  type: boolean
+    TraceJob-Single:
+      allOf:
+        - $ref: '#/components/schemas/Top'
+        - type: object
+          properties:
+            attributes:
+              $ref: '#/components/schemas/TraceJob-Attr'
+
+    AlarmList-Single:
+      allOf:
+        - $ref: '#/components/schemas/Top'
+        - type: object
+          properties:
+            attributes:
+              type: object
+              properties:
+                administrativeState:
+                  $ref: 'comDefs.yaml#/components/schemas/AdministrativeState'
+                operationalState:
+                  $ref: 'comDefs.yaml#/components/schemas/OperationalState'
+                numOfAlarmRecords:
+                  type: integer
+                lastModification:
+                  $ref: 'comDefs.yaml#/components/schemas/DateTime'
+                alarmRecords:
+                  description: >-
+                     This resource represents a map of alarm records.
+                     The alarmIds are used as keys in the map.
+                  type: object
+                  additionalProperties:
+                    $ref: 'faultMnS.yaml#/components/schemas/AlarmRecord'
+
+#-------- Definition of YAML arrays for name-contained IOCs ----------------------
+
+    VsDataContainer-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/VsDataContainer-Single'
+    ManagedNFService-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/ManagedNFService-Single'
+    ManagementNode-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/ManagementNode-Single'
+    MeContext-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/MeContext-Single'
+    PerfMetricJob-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/PerfMetricJob-Single'
+    ThresholdMonitor-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/ThresholdMonitor-Single'
+    TraceJob-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/TraceJob-Single'
+    NtfSubscriptionControl-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/NtfSubscriptionControl-Single'
+
+#-------- Definitions in TS 28.623 for TS 28.532 ---------------------------------
+
+    resources-genericNrm:
+      oneOf:
+
+       - $ref: '#/components/schemas/VsDataContainer-Single'
+
+       - $ref: '#/components/schemas/ManagementNode-Single'
+       - $ref: '#/components/schemas/MeContext-Single'
+
+       - $ref: '#/components/schemas/ManagedNFService-Single'
+
+       - $ref: '#/components/schemas/PerfMetricJob-Single'
+       - $ref: '#/components/schemas/ThresholdMonitor-Single'
+       - $ref: '#/components/schemas/TraceJob-Single'
+
+       - $ref: '#/components/schemas/NtfSubscriptionControl-Single'
+       - $ref: '#/components/schemas/HeartbeatControl-Single'
+
+       - $ref: '#/components/schemas/AlarmList-Single'
@@ -1,23 +1,25 @@
 openapi: 3.0.1
 info:
   title: Heartbeat notification
-  version: 16.3.0
+  version: 16.6.0
   description: >-
-    OAS 3.0.1 specification of the heartbeat notification
+    OAS 3.0.1 definition of the heartbeat notification
     Â© 2020, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).
     All rights reserved.
 externalDocs:
-  description: 3GPP TS 28.532 V16.3.0; Heartbeat notification
+  description: 3GPP TS 28.532 V16.6.0; Generic management services
   url: http://www.3gpp.org/ftp/Specs/archive/28_series/28.6532/
 paths: {}
 components:
   schemas:
-    hearbeatNtfPeriod-Type:
-      type: integer
-    notifyHeartbeat-NotifType:
+    HeartbeatNotificationTypes:
+      type: string
+      enum:
+        - notifyHeartbeat
+    NotifyHeartbeat:
       allOf:
-        - $ref: 'provMnS.yaml#/components/schemas/header-Type'
+        - $ref: 'comDefs.yaml#/components/schemas/NotificationHeader'
         - type: object
           properties:
             heartbeatNtfPeriod:
-              $ref: '#/components/schemas/hearbeatNtfPeriod-Type'
+              type: integer
diff --git a/kubernetes/dcaegen2-services/resources/external/schemas/sa91-rel16/nrNrm.yaml b/kubernetes/dcaegen2-services/resources/external/schemas/sa91-rel16/nrNrm.yaml
new file mode 100644 (file)
index 0000000..3de2c63
--- /dev/null
@@ -0,0 +1,1868 @@
+openapi: 3.0.1
+info:
+  title: NR NRM
+  version: 16.6.0
+  description: >-
+    OAS 3.0.1 specification of the NR NRM
+    Â© 2020, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).
+    All rights reserved.
+externalDocs:
+  description: 3GPP TS 28.541 V16.6.0; 5G NRM, NR NRM
+  url: http://www.3gpp.org/ftp/Specs/archive/28_series/28.541/
+paths: {}
+components:
+  schemas:
+
+#-------- Definition of types-----------------------------------------------------
+
+    GnbId:
+      type: string
+    GnbIdLength:
+      type: integer
+      minimum: 22
+      maximum: 32
+    GnbName:
+      type: string
+      maxLength: 150
+    GnbDuId:
+      type: number
+      minimum: 0
+      maximum: 68719476735
+    GnbCuUpId:
+      type: number
+      minimum: 0
+      maximum: 68719476735
+
+    Sst:
+      type: integer
+      maximum: 255
+    Snssai:
+      type: object
+      properties:
+        sst:
+          $ref: '#/components/schemas/Sst'
+        sd:
+          type: string
+    SnssaiList:
+      type: array
+      items:
+        $ref: '#/components/schemas/Snssai'
+
+    Mnc:
+      type: string
+      pattern: '[0-9]{3}|[0-9]{2}'
+    PlmnId:
+      type: object
+      properties:
+        mcc:
+          $ref: 'comDefs.yaml#/components/schemas/Mcc'
+        mnc:
+          $ref: '#/components/schemas/Mnc'
+    PlmnIdList:
+      type: array
+      items:
+        $ref: '#/components/schemas/PlmnId'
+    PlmnInfo:
+      type: object
+      properties:
+        plmnId":
+          $ref: '#/components/schemas/PlmnId'
+        snssai:
+          $ref: '#/components/schemas/Snssai'
+    PlmnInfoList:
+      type: array
+      items:
+        $ref: '#/components/schemas/PlmnInfo'
+    GGnbId:
+        type: string
+        pattern: '^[0-9]{3}[0-9]{2,3}-(22|23|24|25|26|27|28|29|30|31|32)-[0-9]{1,10}'
+    GEnbId:
+        type: string
+        pattern: '^[0-9]{3}[0-9]{2,3}-(18|20|21|22)-[0-9]{1,7}'
+
+    GGnbIdList:
+        type: array
+        items: 
+          $ref: '#/components/schemas/GGnbId'
+
+    GEnbIdList:
+        type: array
+        items: 
+          $ref: '#/components/schemas/GEnbId'
+
+    NrPci:
+      type: integer
+      maximum: 503
+    NrTac:
+      type: integer
+      maximum: 16777215
+    Tai:
+      type: object
+      properties:
+        plmnId:
+          $ref: '#/components/schemas/PlmnId'
+        nrTac:
+          $ref: '#/components/schemas/NrTac'
+
+    BackhaulAddress:
+      type: object
+      properties:
+        gnbId:
+          $ref: '#/components/schemas/GnbId'
+        tai:
+          $ref: "#/components/schemas/Tai"
+    MappingSetIDBackhaulAddress:
+      type: object
+      properties:
+        setID:
+          type: integer
+        backhaulAddress:
+          $ref: '#/components/schemas/BackhaulAddress'
+    IntraRatEsActivationOriginalCellLoadParameters:
+      type: object
+      properties:
+        loadThreshold:
+          type: integer
+        timeDuration:
+          type: integer
+    IntraRatEsActivationCandidateCellsLoadParameters:
+      type: object
+      properties:
+        loadThreshold:
+          type: integer
+        timeDuration:
+          type: integer
+    IntraRatEsDeactivationCandidateCellsLoadParameters:
+      type: object
+      properties:
+        loadThreshold:
+          type: integer
+        timeDuration:
+          type: integer
+    EsNotAllowedTimePeriod:
+      type: object
+      properties:
+        startTimeandendTime:
+          type: string
+        periodOfDay:
+          type: string
+        daysOfWeekList:
+          type: string
+        listoftimeperiods:
+          type: string
+    InterRatEsActivationOriginalCellParameters:
+      type: object
+      properties:
+        loadThreshold:
+          type: integer
+        timeDuration:
+          type: integer
+    InterRatEsActivationCandidateCellParameters:
+      type: object
+      properties:
+        loadThreshold:
+          type: integer
+        timeDuration:
+          type: integer
+    InterRatEsDeactivationCandidateCellParameters:
+      type: object
+      properties:
+        loadThreshold:
+          type: integer
+        timeDuration:
+          type: integer
+
+    UeAccProbilityDist:
+      type: object
+      properties:
+        targetProbability:
+          type: integer
+        numberofpreamblessent:
+          type: integer
+
+    UeAccDelayProbilityDist:
+      type: object
+      properties:
+        targetProbability:
+          type: integer
+        accessdelay:
+          type: integer
+
+    NRPciList:
+      type: object
+      properties:
+        NRPci:
+          type: integer
+
+    CSonPciList:
+      type: object
+      properties:
+        NRPci:
+          type: integer
+
+    MaximumDeviationHoTrigger:
+      type: integer
+      minimum: -20
+      maximum: 20
+
+    MinimumTimeBetweenHoTriggerChange:
+      type: integer
+      minimum: 0
+      maximum: 604800
+
+    TstoreUEcntxt:
+      type: integer
+      minimum: 0
+      maximum: 1023
+
+    CellState:
+      type: string
+      enum:
+        - IDLE
+        - INACTIVE
+        - ACTIVE
+    CyclicPrefix:
+      type: string
+      enum:
+        - '15'
+        - '30'
+        - '60'
+        - '120'
+    TxDirection:
+      type: string
+      enum:
+        - DL
+        - UL
+        - DL and UL
+    BwpContext:
+      type: string
+      enum:
+        - DL
+        - UL
+        - SUL
+    IsInitialBwp:
+      type: string
+      enum:
+        - INITIAL
+        - OTHER
+        - SUL
+    QuotaType:
+      type: string
+      enum:
+        - STRICT
+        - FLOAT
+    IsESCoveredBy:
+      type: string
+      enum:
+        - NO
+        - PARTIAL
+        - FULL
+    RrmPolicyMember:
+      type: object
+      properties:
+        plmnId:
+          $ref: '#/components/schemas/PlmnId'
+        snssai:
+          $ref: '#/components/schemas/Snssai'
+    RrmPolicyMemberList:
+      type: array
+      items:
+        $ref: '#/components/schemas/RrmPolicyMember'
+    AddressWithVlan:
+      type: object
+      properties:
+        ipv4Address:
+          $ref: 'genericNrm.yaml#/components/schemas/Ipv4Addr'
+        ipv6Address:
+          $ref: 'genericNrm.yaml#/components/schemas/Ipv6Addr'
+        vlanId:
+          type: integer
+          minimum: 0
+          maximum: 4096
+    LocalAddress:
+      type: object
+      properties:
+        addressWithVlan:
+          $ref: '#/components/schemas/AddressWithVlan'
+        port:
+          type: integer
+          minimum: 0
+          maximum: 65535
+    RemoteAddress:
+      type: object
+      properties:
+        ipv4Address:
+          $ref: 'genericNrm.yaml#/components/schemas/Ipv4Addr'
+        ipv6Address:
+          $ref: 'genericNrm.yaml#/components/schemas/Ipv6Addr'
+
+    CellIndividualOffset:
+      type: object
+      properties:
+        rsrpOffsetSSB:
+          type: integer
+        rsrqOffsetSSB:
+          type: integer
+        sinrOffsetSSB:
+          type: integer
+        rsrpOffsetCSI-RS:
+          type: integer
+        rsrqOffsetCSI-RS:
+          type: integer
+        sinrOffsetCSI-RS:
+          type: integer
+    QOffsetRange:
+      type: integer
+      enum:
+        - -24
+        - -22
+        - -20
+        - -18
+        - -16
+        - -14
+        - -12
+        - -10
+        - -8
+        - -6
+        - -5
+        - -4
+        - -3
+        - -2
+        - -1
+        - 0
+        - 24
+        - 22
+        - 20
+        - 18
+        - 16
+        - 14
+        - 12
+        - 10
+        - 8
+        - 6
+        - 5
+        - 4
+        - 3
+        - 2
+        - 1
+    QOffsetRangeList:
+      type: object
+      properties:
+        rsrpOffsetSSB:
+          $ref: '#/components/schemas/QOffsetRange'
+        rsrqOffsetSSB:
+          $ref: '#/components/schemas/QOffsetRange'
+        sinrOffsetSSB:
+          $ref: '#/components/schemas/QOffsetRange'
+        rsrpOffsetCSI-RS:
+          $ref: '#/components/schemas/QOffsetRange'
+        rsrqOffsetCSI-RS:
+          $ref: '#/components/schemas/QOffsetRange'
+        sinrOffsetCSI-RS:
+          $ref: '#/components/schemas/QOffsetRange'
+    QOffsetFreq:
+      type: number
+    TReselectionNRSf:
+      type: integer
+      enum:
+        - 25
+        - 50
+        - 75
+        - 100
+    SsbPeriodicity:
+      type: integer
+      enum:
+        - 5
+        - 10
+        - 20
+        - 40
+        - 80
+        - 160
+    SsbDuration:
+      type: integer
+      enum:
+        - 1
+        - 2
+        - 3
+        - 4
+        - 5
+    SsbSubCarrierSpacing:
+      type: integer
+      enum:
+        - 15
+        - 30
+        - 120
+        - 240
+    CoverageShape:
+      type: integer
+      maximum: 65535
+    DigitalTilt:
+      type: integer
+      minimum: -900
+      maximum: 900
+    DigitalAzimuth:
+      type: integer
+      minimum: -1800
+      maximum: 1800
+
+    RSSetId:
+      type: integer
+      maximum: 4194303
+    
+    RSSetType:
+      type: string
+      enum:
+        - RS1
+        - RS2
+
+    FrequencyDomainPara:
+      type: object
+      properties:
+        rimRSSubcarrierSpacing:
+          type: integer
+        rIMRSBandwidth:
+         type: integer
+        nrofGlobalRIMRSFrequencyCandidates:
+          type: integer
+        rimRSCommonCarrierReferencePoint:
+         type: integer
+        rimRSStartingFrequencyOffsetIdList:
+          type: array
+          items:
+            type: integer
+
+    SequenceDomainPara:
+      type: object
+      properties:
+        nrofRIMRSSequenceCandidatesofRS1:
+         type: integer
+        rimRSScrambleIdListofRS1:
+          type: array
+          items:
+            type: integer
+        nrofRIMRSSequenceCandidatesofRS2:
+         type: integer
+        rimRSScrambleIdListofRS2:
+          type: array
+          items:
+            type: integer
+        enableEnoughNotEnoughIndication:
+          type: string
+          enum:
+            - ENABLE
+            - DISABLE          
+        RIMRSScrambleTimerMultiplier:
+          type: integer
+        RIMRSScrambleTimerOffset:
+          type: integer
+
+    TimeDomainPara:
+      type: object
+      properties:
+        dlULSwitchingPeriod1:
+          type: string
+          enum:
+           - MS0P5
+           - MS0P625
+           - MS1
+           - MS1P25
+           - MS2
+           - MS2P5
+           - MS3
+           - MS4
+           - MS5
+           - MS10
+           - MS20
+        symbolOffsetOfReferencePoint1:
+           type: integer
+        dlULSwitchingPeriod2:
+          type: string
+          enum:
+           - MS0P5
+           - MS0P625
+           - MS1
+           - MS1P25
+           - MS2
+           - MS2P5
+           - MS3
+           - MS4
+           - MS5
+           - MS10
+           - MS20
+        symbolOffsetOfReferencePoint2:
+          type: integer
+        totalnrofSetIdofRS1:
+          type: integer
+        totalnrofSetIdofRS2:
+          type: integer
+        nrofConsecutiveRIMRS1:
+          type: integer
+        nrofConsecutiveRIMRS2:
+          type: integer
+        consecutiveRIMRS1List:
+          type: array
+          items:
+            type: integer
+        consecutiveRIMRS2List:
+          type: array
+          items:
+            type: integer
+        enablenearfarIndicationRS1:
+          type: string
+          enum:
+            - ENABLE
+            - DISABLE          
+        enablenearfarIndicationRS2:
+          type: string
+          enum:
+            - ENABLE
+            - DISABLE          
+
+    RimRSReportInfo:
+      type: object
+      properties:
+        detectedSetID:
+          type: integer
+        propagationDelay:
+          type: integer
+        functionalityOfRIMRS:
+          type: string
+          enum:
+            - RS1
+            - RS2
+            - RS1forEnoughMitigation
+            - RS1forNotEnoughMitigation          
+
+    RimRSReportConf:
+      type: object
+      properties:
+        reportIndicator:
+          type: string
+          enum:
+            - ENABLE
+            - DISABLE          
+        reportInterval:
+           type: integer
+        nrofRIMRSReportInfo:
+          type: integer
+        maxPropagationDelay:
+          type: integer
+        rimRSReportInfoList:
+          type: array
+          items:
+            $ref: '#/components/schemas/RimRSReportInfo'
+    TceMappingInfo:
+      type: object
+      properties:
+        TceIPAddress:
+          oneOf:
+            - $ref: 'genericNrm.yaml#/components/schemas/Ipv4Addr'
+            - $ref: 'genericNrm.yaml#/components/schemas/Ipv6Addr'
+        TceID:
+          type: integer
+        PlmnTarget:
+          $ref: '#/components/schemas/PlmnId'
+    TceMappingInfoList:
+      type: array
+      items:
+        $ref: '#/components/schemas/TceMappingInfo'
+
+
+#-------- Definition of abstract IOCs --------------------------------------------
+
+    RrmPolicy_-Attr:
+      type: object
+      properties:
+        resourceType:
+          type: string
+        rRMPolicyMemberList:
+          $ref: '#/components/schemas/RrmPolicyMemberList'
+
+
+#-------- Definition of concrete IOCs --------------------------------------------
+
+    SubNetwork-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              $ref: 'genericNrm.yaml#/components/schemas/SubNetwork-Attr'
+        - $ref: 'genericNrm.yaml#/components/schemas/SubNetwork-ncO'
+        - type: object
+          properties:
+            SubNetwork:
+              $ref: '#/components/schemas/SubNetwork-Multiple'
+            ManagedElement:
+              $ref: '#/components/schemas/ManagedElement-Multiple'
+            NRFrequency:
+              $ref: '#/components/schemas/NRFrequency-Multiple'
+            ExternalGnbCuCpFunction:
+              $ref: '#/components/schemas/ExternalGnbCuCpFunction-Multiple'
+            ExternalENBFunction:
+              $ref: '#/components/schemas/ExternalENBFunction-Multiple'
+            EUtranFrequency:
+              $ref: '#/components/schemas/EUtranFrequency-Multiple'
+            DESManagementFunction:
+              $ref: '#/components/schemas/DESManagementFunction-Single'
+            DRACHOptimizationFunction:
+              $ref: '#/components/schemas/DRACHOptimizationFunction-Single'
+            DMROFunction:
+              $ref: '#/components/schemas/DMROFunction-Single'
+            DPCIConfigurationFunction:
+              $ref: '#/components/schemas/DPCIConfigurationFunction-Single'
+            CPCIConfigurationFunction:
+              $ref: '#/components/schemas/CPCIConfigurationFunction-Single'
+            CESManagementFunction:
+              $ref: '#/components/schemas/CESManagementFunction-Single'
+            Configurable5QISet:
+              $ref: '5gcNrm.yaml#/components/schemas/Configurable5QISet-Multiple'
+            RimRSGlobal:
+              $ref: '#/components/schemas/RimRSGlobal-Single'
+            Dynamic5QISet:
+              $ref: '5gcNrm.yaml#/components/schemas/Dynamic5QISet-Multiple'
+
+    ManagedElement-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              $ref: 'genericNrm.yaml#/components/schemas/ManagedElement-Attr'
+        - $ref: 'genericNrm.yaml#/components/schemas/ManagedElement-ncO'
+        - type: object
+          properties:
+            GnbDuFunction:
+              $ref: '#/components/schemas/GnbDuFunction-Multiple'
+            GnbCuUpFunction:
+              $ref: '#/components/schemas/GnbCuUpFunction-Multiple'
+            GnbCuCpFunction:
+              $ref: '#/components/schemas/GnbCuCpFunction-Multiple'
+            DESManagementFunction:
+              $ref: '#/components/schemas/DESManagementFunction-Single'
+            DRACHOptimizationFunction:
+              $ref: '#/components/schemas/DRACHOptimizationFunction-Single'
+            DMROFunction:
+              $ref: '#/components/schemas/DMROFunction-Single'
+            DPCIConfigurationFunction:
+              $ref: '#/components/schemas/DPCIConfigurationFunction-Single'
+            CPCIConfigurationFunction:
+              $ref: '#/components/schemas/CPCIConfigurationFunction-Single'
+            CESManagementFunction:
+              $ref: '#/components/schemas/CESManagementFunction-Single'
+            Configurable5QISet:
+              $ref: '5gcNrm.yaml#/components/schemas/Configurable5QISet-Multiple'
+            Dynamic5QISet:
+              $ref: '5gcNrm.yaml#/components/schemas/Dynamic5QISet-Multiple'
+
+    GnbDuFunction-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-Attr'
+                - type: object
+                  properties:
+                    gnbDuId:
+                      $ref: '#/components/schemas/GnbDuId'
+                    gnbDuName:
+                      $ref: '#/components/schemas/GnbName'
+                    gnbId:
+                      $ref: '#/components/schemas/GnbId'
+                    gnbIdLength:
+                      $ref: '#/components/schemas/GnbIdLength'
+                    rimRSReportConf:
+                      $ref: '#/components/schemas/RimRSReportConf'
+        - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-ncO'
+        - type: object
+          properties:
+            RRMPolicyRatio:
+              $ref: '#/components/schemas/RRMPolicyRatio-Multiple'
+            NrCellDu:
+              $ref: '#/components/schemas/NrCellDu-Multiple'
+            Bwp-Multiple:
+              $ref: '#/components/schemas/Bwp-Multiple'
+            NrSectorCarrier-Multiple:
+              $ref: '#/components/schemas/NrSectorCarrier-Multiple'
+            EP_F1C:
+              $ref: '#/components/schemas/EP_F1C-Single'
+            EP_F1U:
+              $ref: '#/components/schemas/EP_F1U-Multiple'
+            DRACHOptimizationFunction:
+              $ref: '#/components/schemas/DRACHOptimizationFunction-Single'
+    GnbCuUpFunction-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-Attr'
+                - type: object
+                  properties:
+                    gnbId:
+                      $ref: '#/components/schemas/GnbId'
+                    gnbIdLength:
+                      $ref: '#/components/schemas/GnbIdLength'
+                    gnbCuUpId:
+                      $ref: '#/components/schemas/GnbCuUpId'
+                    plmnInfoList:
+                      $ref: '#/components/schemas/PlmnInfoList'
+                    configurable5QISetRef:
+                      $ref: 'comDefs.yaml#/components/schemas/Dn'
+                    dynamic5QISetRef:
+                      $ref: 'comDefs.yaml#/components/schemas/Dn'
+        - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-ncO'
+        - type: object
+          properties:
+            RRMPolicyRatio:
+              $ref: '#/components/schemas/RRMPolicyRatio-Multiple'
+            EP_E1:
+              $ref: '#/components/schemas/EP_E1-Single'
+            EP_XnU:
+              $ref: '#/components/schemas/EP_XnU-Multiple'
+            EP_F1U:
+              $ref: '#/components/schemas/EP_F1U-Multiple'
+            EP_NgU:
+              $ref: '#/components/schemas/EP_NgU-Multiple'
+            EP_X2U:
+              $ref: '#/components/schemas/EP_X2U-Multiple'
+            EP_S1U:
+              $ref: '#/components/schemas/EP_S1U-Multiple'
+    GnbCuCpFunction-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-Attr'
+                - type: object
+                  properties:
+                    gnbId:
+                      $ref: '#/components/schemas/GnbId'
+                    gnbIdLength:
+                      $ref: '#/components/schemas/GnbIdLength'
+                    gnbCuName:
+                      $ref: '#/components/schemas/GnbName'
+                    plmnId:
+                      $ref: '#/components/schemas/PlmnId'
+                    x2BlackList:
+                      $ref: '#/components/schemas/GGnbIdList'
+                    xnBlackList:
+                      $ref: '#/components/schemas/GGnbIdList'
+                    x2WhiteList:
+                      $ref: '#/components/schemas/GGnbIdList'
+                    xnWhiteList:
+                      $ref: '#/components/schemas/GGnbIdList'
+                    x2XnHOBlackList:
+                      $ref: '#/components/schemas/GEnbIdList'
+                    mappingSetIDBackhaulAddress:
+                      $ref: '#/components/schemas/MappingSetIDBackhaulAddress'
+                    tceMappingInfoList:
+                      $ref: '#/components/schemas/TceMappingInfoList'
+                    configurable5QISetRef:
+                      $ref: 'comDefs.yaml#/components/schemas/Dn'
+                    dynamic5QISetRef:
+                      $ref: 'comDefs.yaml#/components/schemas/Dn'
+        - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-ncO'
+        - type: object
+          properties:
+            RRMPolicyRatio:
+              $ref: '#/components/schemas/RRMPolicyRatio-Multiple'
+            NrCellCu:
+              $ref: '#/components/schemas/NrCellCu-Multiple'
+            EP_XnC:
+              $ref: '#/components/schemas/EP_XnC-Multiple'
+            EP_E1:
+              $ref: '#/components/schemas/EP_E1-Multiple'
+            EP_F1C:
+              $ref: '#/components/schemas/EP_F1C-Multiple'
+            EP_NgC:
+              $ref: '#/components/schemas/EP_NgC-Multiple'
+            EP_X2C:
+              $ref: '#/components/schemas/EP_X2C-Multiple'
+            DANRManagementFunction:
+              $ref: '#/components/schemas/DANRManagementFunction-Single'
+            DESManagementFunction:
+              $ref: '#/components/schemas/DESManagementFunction-Single'
+            DMROFunction:
+              $ref: '#/components/schemas/DMROFunction-Single'
+
+    NrCellCu-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-Attr'
+                - type: object
+                  properties:
+                    cellLocalId:
+                      type: integer
+                    plmnInfoList:
+                      $ref: '#/components/schemas/PlmnInfoList'
+                    nRFrequencyRef:
+                      $ref: 'comDefs.yaml#/components/schemas/Dn'
+        - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-ncO'
+        - type: object
+          properties:
+            RRMPolicyRatio:
+              $ref: '#/components/schemas/RRMPolicyRatio-Multiple'
+            NRCellRelation:
+              $ref: '#/components/schemas/NRCellRelation-Multiple'
+            EUtranCellRelation:
+              $ref: '#/components/schemas/EUtranCellRelation-Multiple'
+            NRFreqRelation:
+              $ref: '#/components/schemas/NRFreqRelation-Multiple'
+            EUtranFreqRelation:
+              $ref: '#/components/schemas/EUtranFreqRelation-Multiple'
+            DESManagementFunction:
+              $ref: '#/components/schemas/DESManagementFunction-Single'
+            DMROFunction:
+              $ref: '#/components/schemas/DMROFunction-Single'
+            CESManagementFunction:
+              $ref: '#/components/schemas/CESManagementFunction-Single'
+            DPCIConfigurationFunction:
+              $ref: '#/components/schemas/DPCIConfigurationFunction-Single'
+
+    NrCellDu-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-Attr'
+                - type: object
+                  properties:
+                    administrativeState:
+                      $ref: 'comDefs.yaml#/components/schemas/AdministrativeState'
+                    operationalState:
+                      $ref: 'comDefs.yaml#/components/schemas/OperationalState'
+                    cellLocalId:
+                      type: integer
+                    cellState:
+                      $ref: '#/components/schemas/CellState'
+                    plmnInfoList:
+                      $ref: '#/components/schemas/PlmnInfoList'
+                    nrPci:
+                      $ref: '#/components/schemas/NrPci'
+                    nrTac:
+                      $ref: '#/components/schemas/NrTac'
+                    arfcnDL:
+                      type: integer
+                    arfcnUL:
+                      type: integer
+                    arfcnSUL:
+                      type: integer
+                    bSChannelBwDL:
+                      type: integer
+                    bSChannelBwUL:
+                      type: integer
+                    bSChannelBwSUL:
+                      type: integer
+                    ssbFrequency:
+                      type: integer
+                      minimum: 0
+                      maximum: 3279165
+                    ssbPeriodicity:
+                      $ref: '#/components/schemas/SsbPeriodicity'
+                    ssbSubCarrierSpacing:
+                      $ref: '#/components/schemas/SsbSubCarrierSpacing'
+                    ssbOffset:
+                      type: integer
+                      minimum: 0
+                      maximum: 159
+                    ssbDuration:
+                      $ref: '#/components/schemas/SsbDuration'
+                    nrSectorCarrierRef:
+                      type: array
+                      items:
+                        $ref: 'comDefs.yaml#/components/schemas/Dn'
+                    bwpRef:
+                      type: array
+                      items:
+                        $ref: 'comDefs.yaml#/components/schemas/Dn'
+                    nRFrequencyRef:
+                      $ref: 'comDefs.yaml#/components/schemas/Dn'
+                    victimSetRef:
+                      $ref: 'comDefs.yaml#/components/schemas/Dn'
+                    aggressorSetRef:
+                      $ref: 'comDefs.yaml#/components/schemas/Dn'
+        - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-ncO'
+        - type: object
+          properties:
+            RRMPolicyRatio:
+              $ref: '#/components/schemas/RRMPolicyRatio-Multiple'
+            CPCIConfigurationFunction:
+              $ref: '#/components/schemas/CPCIConfigurationFunction-Single'
+            DRACHOptimizationFunction:
+              $ref: '#/components/schemas/DRACHOptimizationFunction-Single'
+
+    NRFrequency-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+                type: object
+                properties:
+                  absoluteFrequencySSB:
+                    type: integer
+                    minimum: 0
+                    maximum: 3279165
+                  ssbSubCarrierSpacing:
+                    $ref: '#/components/schemas/SsbSubCarrierSpacing'
+                  multiFrequencyBandListNR:
+                    type: integer
+                    minimum: 1
+                    maximum: 256
+    EUtranFrequency-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              type: object
+              properties:
+                earfcnDL:
+                  type: integer
+                  minimum: 0
+                  maximum: 262143
+                multiBandInfoListEutra:
+                  type: integer
+                  minimum: 1
+                  maximum: 256
+
+    NrSectorCarrier-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-Attr'
+                - type: object
+                  properties:
+                    txDirection:
+                      $ref: '#/components/schemas/TxDirection'
+                    configuredMaxTxPower:
+                      type: integer
+                    arfcnDL:
+                      type: integer
+                    arfcnUL:
+                      type: integer
+                    bSChannelBwDL:
+                      type: integer
+                    bSChannelBwUL:
+                      type: integer
+                    sectorEquipmentFunctionRef:
+                      $ref: 'comDefs.yaml#/components/schemas/Dn'
+        - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-ncO'
+        - type: object
+          properties:
+            CommonBeamformingFunction:
+              $ref: '#/components/schemas/CommonBeamformingFunction-Single'
+    Bwp-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-Attr'
+                - type: object
+                  properties:
+                    bwpContext:
+                      $ref: '#/components/schemas/BwpContext'
+                    isInitialBwp:
+                      $ref: '#/components/schemas/IsInitialBwp'
+                    subCarrierSpacing:
+                      type: integer
+                    cyclicPrefix:
+                      $ref: '#/components/schemas/CyclicPrefix'
+                    startRB:
+                      type: integer
+                    numberOfRBs:
+                      type: integer
+        - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-ncO'
+    CommonBeamformingFunction-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - type: object
+                  properties:
+                    coverageShape:
+                      $ref: '#/components/schemas/CoverageShape'
+                    digitalAzimuth:
+                      $ref: '#/components/schemas/DigitalAzimuth'
+                    digitalTilt:
+                      $ref: '#/components/schemas/DigitalTilt'
+        - type: object
+          properties:
+            Beam:
+              $ref: '#/components/schemas/Beam-Multiple'
+    Beam-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - type: object
+                  properties:
+                    beamIndex:
+                      type: integer
+                    beamType:
+                      type: string
+                      enum:
+                        - SSB-BEAM
+                    beamAzimuth:
+                      type: integer
+                      minimum: -1800
+                      maximum: 1800
+                    beamTilt:
+                      type: integer
+                      minimum: -900
+                      maximum: 900
+                    beamHorizWidth:
+                      type: integer
+                      minimum: 0
+                      maximum: 3599
+                    beamVertWidth:
+                      type: integer
+                      minimum: 0
+                      maximum: 1800
+    RRMPolicyRatio-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: '#/components/schemas/RrmPolicy_-Attr'
+                - type: object
+                  properties:
+                    rRMPolicyMaxRatio:
+                      type: integer
+                    rRMPolicyMinRatio:
+                      type: integer
+                    rRMPolicyDedicatedRatio:
+                      type: integer
+
+    NRCellRelation-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+                  type: object
+                  properties:
+                    nRTCI:
+                      type: integer
+                    cellIndividualOffset:
+                      $ref: '#/components/schemas/CellIndividualOffset'
+                    adjacentNRCellRef:
+                      $ref: 'comDefs.yaml#/components/schemas/Dn'
+                    nRFrequencyRef:
+                      $ref: 'comDefs.yaml#/components/schemas/Dn'
+                    isRemoveAllowed:
+                      type: boolean
+                    isHOAllowed:
+                      type: boolean
+                    isESCoveredBy:
+                      $ref: '#/components/schemas/IsESCoveredBy'
+                    isENDCAllowed:
+                      type: boolean
+    EUtranCellRelation-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-Attr'
+                - type: object
+                  properties:
+                    adjacentEUtranCellRef:
+                      $ref: 'comDefs.yaml#/components/schemas/Dn'
+        - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-ncO'
+    NRFreqRelation-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+                  type: object
+                  properties:
+                    offsetMO:
+                      $ref: '#/components/schemas/QOffsetRangeList'
+                    blackListEntry:
+                      type: array
+                      items:
+                        type: integer
+                        minimum: 0
+                        maximum: 1007
+                    blackListEntryIdleMode:
+                      type: integer
+                    cellReselectionPriority:
+                      type: integer
+                    cellReselectionSubPriority:
+                      type: number
+                      minimum: 0.2
+                      maximum: 0.8
+                      multipleOf: 0.2
+                    pMax:
+                      type: integer
+                      minimum: -30
+                      maximum: 33
+                    qOffsetFreq:
+                      $ref: '#/components/schemas/QOffsetFreq'
+                    qQualMin:
+                      type: number
+                    qRxLevMin:
+                      type: integer
+                      minimum: -140
+                      maximum: -44
+                    threshXHighP:
+                      type: integer
+                      minimum: 0
+                      maximum: 62
+                    threshXHighQ:
+                      type: integer
+                      minimum: 0
+                      maximum: 31
+                    threshXLowP:
+                      type: integer
+                      minimum: 0
+                      maximum: 62
+                    threshXLowQ:
+                      type: integer
+                      minimum: 0
+                      maximum: 31
+                    tReselectionNr:
+                      type: integer
+                      minimum: 0
+                      maximum: 7
+                    tReselectionNRSfHigh:
+                      $ref: '#/components/schemas/TReselectionNRSf'
+                    tReselectionNRSfMedium:
+                      $ref: '#/components/schemas/TReselectionNRSf'
+                    nRFrequencyRef:
+                      $ref: 'comDefs.yaml#/components/schemas/Dn'
+    EUtranFreqRelation-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              type: object
+              properties:
+                    cellIndividualOffset:
+                      $ref: '#/components/schemas/CellIndividualOffset'
+                    blackListEntry:
+                      type: array
+                      items:
+                        type: integer
+                        minimum: 0
+                        maximum: 1007
+                    blackListEntryIdleMode:
+                      type: integer
+                    cellReselectionPriority:
+                      type: integer
+                    cellReselectionSubPriority:
+                      type: number
+                      minimum: 0.2
+                      maximum: 0.8
+                      multipleOf: 0.2
+                    pMax:
+                      type: integer
+                      minimum: -30
+                      maximum: 33
+                    qOffsetFreq:
+                      $ref: '#/components/schemas/QOffsetFreq'
+                    qQualMin:
+                      type: number
+                    qRxLevMin:
+                      type: integer
+                      minimum: -140
+                      maximum: -44
+                    threshXHighP:
+                      type: integer
+                      minimum: 0
+                      maximum: 62
+                    threshXHighQ:
+                      type: integer
+                      minimum: 0
+                      maximum: 31
+                    threshXLowP:
+                      type: integer
+                      minimum: 0
+                      maximum: 62
+                    threshXLowQ:
+                      type: integer
+                      minimum: 0
+                      maximum: 31
+                    tReselectionEutran:
+                      type: integer
+                      minimum: 0
+                      maximum: 7
+                    tReselectionNRSfHigh:
+                      $ref: '#/components/schemas/TReselectionNRSf'
+                    tReselectionNRSfMedium:
+                      $ref: '#/components/schemas/TReselectionNRSf'
+                    eUTranFrequencyRef:
+                      $ref: 'comDefs.yaml#/components/schemas/Dn'
+    DANRManagementFunction-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+                  type: object
+                  properties:
+                    intrasystemANRManagementSwitch:
+                      type: boolean
+                    intersystemANRManagementSwitch:
+                      type: boolean
+
+    DESManagementFunction-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+                  type: object
+                  properties:
+                    desSwitch:
+                      type: boolean
+                    intraRatEsActivationOriginalCellLoadParameters:
+                      $ref: "#/components/schemas/IntraRatEsActivationOriginalCellLoadParameters"
+                    intraRatEsActivationCandidateCellsLoadParameters:
+                      $ref: "#/components/schemas/IntraRatEsActivationCandidateCellsLoadParameters"
+                    intraRatEsDeactivationCandidateCellsLoadParameters:
+                      $ref: "#/components/schemas/IntraRatEsDeactivationCandidateCellsLoadParameters"
+                    esNotAllowedTimePeriod:
+                      $ref: "#/components/schemas/EsNotAllowedTimePeriod"
+                    interRatEsActivationOriginalCellParameters:
+                      $ref: "#/components/schemas/IntraRatEsActivationOriginalCellLoadParameters"
+                    interRatEsActivationCandidateCellParameters:
+                      $ref: "#/components/schemas/IntraRatEsActivationOriginalCellLoadParameters"
+                    interRatEsDeactivationCandidateCellParameters:
+                      $ref: "#/components/schemas/IntraRatEsActivationOriginalCellLoadParameters"
+                    isProbingCapable:
+                      type: string
+                      enum:
+                         - yes
+                         - no
+                    energySavingState:
+                      type: string
+                      enum:
+                         - isNotEnergySaving
+                         - isEnergySaving
+
+    DRACHOptimizationFunction-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+                  type: object
+                  properties:
+                    drachOptimizationControl:
+                      type: boolean
+                    ueAccProbilityDist:
+                      $ref: "#/components/schemas/UeAccProbilityDist"
+                    ueAccDelayProbilityDist:
+                      $ref: "#/components/schemas/UeAccDelayProbilityDist"
+        - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-ncO'
+
+    DMROFunction-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes: 
+                  type: object
+                  properties:
+                    dmroControl:
+                      type: boolean
+                    maximumDeviationHoTrigger:
+                      $ref: '#/components/schemas/MaximumDeviationHoTrigger'
+                    minimumTimeBetweenHoTriggerChange:
+                      $ref: '#/components/schemas/MinimumTimeBetweenHoTriggerChange'
+                    tstoreUEcntxt:
+                      $ref: '#/components/schemas/TstoreUEcntxt'
+
+    DPCIConfigurationFunction-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+                  type: object
+                  properties:
+                    dPciConfigurationControl:
+                      type: boolean
+                    nRPciList:
+                      $ref: "#/components/schemas/NRPciList"
+
+    CPCIConfigurationFunction-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+                  type: object
+                  properties:
+                    cPciConfigurationControl:
+                      type: boolean
+                    cSonPciList:
+                      $ref: "#/components/schemas/CSonPciList"
+
+    CESManagementFunction-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+                  type: object
+                  properties:
+                    cesSwitch:
+                      type: boolean
+                    energySavingControl:
+                      type: string
+                      enum:
+                         - toBeEnergySaving
+                         - toBeNotEnergySaving
+                    energySavingState:
+                      type: string
+                      enum:
+                         - isNotEnergySaving
+                         - isEnergySaving
+
+    RimRSGlobal-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              type: object
+              properties:
+                frequencyDomainPara:
+                  $ref: '#/components/schemas/FrequencyDomainPara'
+                sequenceDomainPara:
+                  $ref: '#/components/schemas/SequenceDomainPara'
+                timeDomainPara:
+                  $ref: '#/components/schemas/TimeDomainPara'
+            RimRSSet:
+              $ref: '#/components/schemas/RimRSSet-Multiple'
+
+    RimRSSet-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              type: object
+              properties:
+                setId:
+                  $ref: '#/components/schemas/RSSetId'
+                setType:
+                  $ref: '#/components/schemas/RSSetType'
+                rimRSMonitoringStartTime:
+                  type: string
+                rimRSMonitoringStopTime:
+                  type: string
+                rimRSMonitoringWindowDuration:
+                  type: integer
+                rimRSMonitoringWindowStartingOffset:
+                  type: integer
+                rimRSMonitoringWindowPeriodicity:
+                  type: integer
+                rimRSMonitoringOccasionInterval:
+                  type: integer
+                rimRSMonitoringOccasionStartingOffset:
+                  type: integer
+                nRCellDURefs:
+                  $ref: 'comDefs.yaml#/components/schemas/DnList'
+
+    ExternalGnbDuFunction-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-Attr'
+                - type: object
+                  properties:
+                    gnbId:
+                      $ref: '#/components/schemas/GnbId'
+                    gnbIdLength:
+                      $ref: '#/components/schemas/GnbIdLength'
+        - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-ncO'
+        - type: object
+          properties:
+            EP_F1C:
+              $ref: '#/components/schemas/EP_F1C-Multiple'
+            EP_F1U:
+              $ref: '#/components/schemas/EP_F1U-Multiple'
+    ExternalGnbCuUpFunction-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-Attr'
+                - type: object
+                  properties:
+                    gnbId:
+                      $ref: '#/components/schemas/GnbId'
+                    gnbIdLength:
+                      $ref: '#/components/schemas/GnbIdLength'
+        - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-ncO'
+        - type: object
+          properties:
+            EP_E1:
+              $ref: '#/components/schemas/EP_E1-Multiple'
+            EP_F1U:
+              $ref: '#/components/schemas/EP_F1U-Multiple'
+            EP_XnU:
+              $ref: '#/components/schemas/EP_XnU-Multiple'
+    ExternalGnbCuCpFunction-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: >-
+                    genericNrm.yaml#/components/schemas/ManagedFunction-Attr
+                - type: object
+                  properties:
+                    gnbId:
+                      $ref: '#/components/schemas/GnbId'
+                    gnbIdLength:
+                      $ref: '#/components/schemas/GnbIdLength'
+                    plmnId:
+                      $ref: '#/components/schemas/PlmnId'
+        - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-ncO'
+        - type: object
+          properties:
+            ExternalNrCellCu:
+              $ref: '#/components/schemas/ExternalNrCellCu-Multiple'
+            EP_XnC:
+              $ref: '#/components/schemas/EP_XnC-Multiple'
+            EP_E1:
+              $ref: '#/components/schemas/EP_E1-Multiple'
+            EP_F1C:
+              $ref: '#/components/schemas/EP_F1C-Multiple'
+    ExternalNrCellCu-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-Attr'
+                - type: object
+                  properties:
+                    cellLocalId:
+                      type: integer
+                    nrPci:
+                      $ref: '#/components/schemas/NrPci'
+                    plmnIdList:
+                      $ref: '#/components/schemas/PlmnIdList'
+                    nRFrequencyRef:
+                      $ref: 'comDefs.yaml#/components/schemas/Dn'
+        - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-ncO'
+    ExternalENBFunction-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-Attr'
+                - type: object
+                  properties:
+                    eNBId:
+                      type: integer
+        - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-ncO'
+        - type: object
+          properties:
+            ExternalEUTranCell:
+              $ref: '#/components/schemas/ExternalEUTranCell-Multiple'
+    ExternalEUTranCell-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-Attr'
+                - type: object
+                  properties:
+                    EUtranFrequencyRef:
+                      $ref: 'comDefs.yaml#/components/schemas/Dn'
+        - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-ncO'
+
+    EP_XnC-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/EP_RP-Attr'
+                - type: object
+                  properties:
+                    localAddress:
+                      $ref: '#/components/schemas/LocalAddress'
+                    remoteAddress:
+                      $ref: '#/components/schemas/RemoteAddress'
+    EP_E1-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/EP_RP-Attr'
+                - type: object
+                  properties:
+                    localAddress:
+                      $ref: '#/components/schemas/LocalAddress'
+                    remoteAddress:
+                      $ref: '#/components/schemas/RemoteAddress'
+    EP_F1C-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/EP_RP-Attr'
+                - type: object
+                  properties:
+                    localAddress:
+                      $ref: '#/components/schemas/LocalAddress'
+                    remoteAddress:
+                      $ref: '#/components/schemas/RemoteAddress'
+    EP_NgC-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/EP_RP-Attr'
+                - type: object
+                  properties:
+                    localAddress:
+                      $ref: '#/components/schemas/LocalAddress'
+                    remoteAddress:
+                      $ref: '#/components/schemas/RemoteAddress'
+    EP_X2C-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/EP_RP-Attr'
+                - type: object
+                  properties:
+                    localAddress:
+                      $ref: '#/components/schemas/LocalAddress'
+                    remoteAddress:
+                      $ref: '#/components/schemas/RemoteAddress'
+    EP_XnU-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/EP_RP-Attr'
+                - type: object
+                  properties:
+                    localAddress:
+                      $ref: '#/components/schemas/LocalAddress'
+                    remoteAddress:
+                      $ref: '#/components/schemas/RemoteAddress'
+    EP_F1U-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/EP_RP-Attr'
+                - type: object
+                  properties:
+                    localAddress:
+                      $ref: '#/components/schemas/LocalAddress'
+                    remoteAddress:
+                      $ref: '#/components/schemas/RemoteAddress'
+    EP_NgU-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/EP_RP-Attr'
+                - type: object
+                  properties:
+                    localAddress:
+                      $ref: '#/components/schemas/LocalAddress'
+                    remoteAddress:
+                      $ref: '#/components/schemas/RemoteAddress'
+                    epTransportRefs:
+                      $ref: 'comDefs.yaml#/components/schemas/DnList'
+
+    EP_X2U-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/EP_RP-Attr'
+                - type: object
+                  properties:
+                    localAddress:
+                      $ref: '#/components/schemas/LocalAddress'
+                    remoteAddress:
+                      $ref: '#/components/schemas/RemoteAddress'
+    EP_S1U-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/EP_RP-Attr'
+                - type: object
+                  properties:
+                    localAddress:
+                      $ref: '#/components/schemas/LocalAddress'
+                    remoteAddress:
+                      $ref: '#/components/schemas/RemoteAddress'
+
+#-------- Definition of JSON arrays for name-contained IOCs ----------------------
+
+    SubNetwork-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/SubNetwork-Single'
+    ManagedElement-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/ManagedElement-Single'
+    GnbDuFunction-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/GnbDuFunction-Single'
+    GnbCuUpFunction-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/GnbCuUpFunction-Single'
+    GnbCuCpFunction-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/GnbCuCpFunction-Single'
+
+    NrCellDu-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/NrCellDu-Single'
+    NrCellCu-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/NrCellCu-Single'
+
+    NRFrequency-Multiple:
+      type: array
+      minItems: 1
+      items:
+        $ref: '#/components/schemas/NRFrequency-Single'
+    EUtranFrequency-Multiple:
+      type: array
+      minItems: 1
+      items:
+        $ref: '#/components/schemas/EUtranFrequency-Single'
+
+    NrSectorCarrier-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/NrSectorCarrier-Single'
+    Bwp-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/Bwp-Single'
+    Beam-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/Beam-Single'
+    RRMPolicyRatio-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/RRMPolicyRatio-Single'
+
+    NRCellRelation-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/NRCellRelation-Single'
+    EUtranCellRelation-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/EUtranCellRelation-Single'
+    NRFreqRelation-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/NRFreqRelation-Single'
+    EUtranFreqRelation-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/EUtranFreqRelation-Single'
+
+    RimRSSet-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/RimRSSet-Single'
+
+    ExternalGnbDuFunction-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/ExternalGnbDuFunction-Single'
+    ExternalGnbCuUpFunction-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/ExternalGnbCuUpFunction-Single'
+    ExternalGnbCuCpFunction-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/ExternalGnbCuCpFunction-Single'
+    ExternalNrCellCu-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/ExternalNrCellCu-Single'
+    
+    ExternalENBFunction-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/ExternalENBFunction-Single'
+    ExternalEUTranCell-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/ExternalEUTranCell-Single'
+
+    EP_E1-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/EP_E1-Single'
+    EP_XnC-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/EP_XnC-Single'
+    EP_F1C-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/EP_F1C-Single'
+    EP_NgC-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/EP_NgC-Single'
+    EP_X2C-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/EP_X2C-Single'
+    EP_XnU-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/EP_XnU-Single'
+    EP_F1U-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/EP_F1U-Single'
+    EP_NgU-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/EP_NgU-Single'
+    EP_X2U-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/EP_X2U-Single'
+    EP_S1U-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/EP_S1U-Single'
+
+#-------- Definitions in TS 28.541 for TS 28.532 ---------------------------------
+
+    resources-nrNrm:
+      oneOf:
+        - $ref: '#/components/schemas/SubNetwork-Single'
+        - $ref: '#/components/schemas/ManagedElement-Single'
+
+        - $ref: '#/components/schemas/GnbDuFunction-Single'
+        - $ref: '#/components/schemas/GnbCuUpFunction-Single'
+        - $ref: '#/components/schemas/GnbCuCpFunction-Single'
+
+        - $ref: '#/components/schemas/NrCellCu-Single'
+        - $ref: '#/components/schemas/NrCellDu-Single'
+
+        - $ref: '#/components/schemas/NRFrequency-Single'
+        - $ref: '#/components/schemas/EUtranFrequency-Single'
+
+        - $ref: '#/components/schemas/NrSectorCarrier-Single'
+        - $ref: '#/components/schemas/Bwp-Single'
+        - $ref: '#/components/schemas/CommonBeamformingFunction-Single'
+        - $ref: '#/components/schemas/Beam-Single'
+        - $ref: '#/components/schemas/RRMPolicyRatio-Single'
+        
+        - $ref: '#/components/schemas/NRCellRelation-Single'
+        - $ref: '#/components/schemas/EUtranCellRelation-Single'
+        - $ref: '#/components/schemas/NRFreqRelation-Single'
+        - $ref: '#/components/schemas/EUtranFreqRelation-Single'
+
+        - $ref: '#/components/schemas/DANRManagementFunction-Single'
+        - $ref: '#/components/schemas/DESManagementFunction-Single'
+        - $ref: '#/components/schemas/DRACHOptimizationFunction-Single'
+        - $ref: '#/components/schemas/DMROFunction-Single'
+        - $ref: '#/components/schemas/DPCIConfigurationFunction-Single'
+        - $ref: '#/components/schemas/CPCIConfigurationFunction-Single'
+        - $ref: '#/components/schemas/CESManagementFunction-Single'
+     
+        - $ref: '#/components/schemas/RimRSGlobal-Single'
+        - $ref: '#/components/schemas/RimRSSet-Single'
+        
+        - $ref: '#/components/schemas/ExternalGnbDuFunction-Single'
+        - $ref: '#/components/schemas/ExternalGnbCuUpFunction-Single'
+        - $ref: '#/components/schemas/ExternalGnbCuCpFunction-Single'
+        - $ref: '#/components/schemas/ExternalNrCellCu-Single'
+        - $ref: '#/components/schemas/ExternalENBFunction-Single'
+        - $ref: '#/components/schemas/ExternalEUTranCell-Single'
+
+        - $ref: '#/components/schemas/EP_XnC-Single'
+        - $ref: '#/components/schemas/EP_E1-Single'
+        - $ref: '#/components/schemas/EP_F1C-Single'
+        - $ref: '#/components/schemas/EP_NgC-Single'
+        - $ref: '#/components/schemas/EP_X2C-Single'
+        - $ref: '#/components/schemas/EP_XnU-Single'
+        - $ref: '#/components/schemas/EP_F1U-Single'
+        - $ref: '#/components/schemas/EP_NgU-Single'
+        - $ref: '#/components/schemas/EP_X2U-Single'
+        - $ref: '#/components/schemas/EP_S1U-Single'
diff --git a/kubernetes/dcaegen2-services/resources/external/schemas/sa91-rel16/perfMnS.yaml b/kubernetes/dcaegen2-services/resources/external/schemas/sa91-rel16/perfMnS.yaml
new file mode 100644 (file)
index 0000000..1fd64a7
--- /dev/null
@@ -0,0 +1,76 @@
+openapi: 3.0.1
+info:
+  title: TS 28.532 Performance Threshold Monitoring MnS
+  version: 16.6.0
+  description: >-
+    OAS 3.0.1 definition of the Performance Threshold Monitoring MnS
+    Â© 2020, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).
+    All rights reserved.
+externalDocs:
+  description: 3GPP TS 28.532 V16.6.0; Generic management services
+  url: http://www.3gpp.org/ftp/Specs/archive/28_series/28.532/
+servers:
+  - url: '{root}'
+    variables:
+      root:
+        description: >-
+          The open API server of the performance threshold monitoring service is
+          located in the consumer side, see monitoringNotifTarget attribute of
+          the IOC ThresholdMonitor defined in 3GPP TS 28.622 [11]. 
+        default: http://example.com/3GPPManagement
+paths:
+  /notificationSink:
+    post:
+      summary: Send notifications about performance threshold crossing
+      description: To send a notifyThresholdCrossing notification
+      requestBody:
+        required: true
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/NotifyThresholdCrossing'
+      responses:
+        '204':
+          description: >-
+            Success case ("204 No Content"). The notification is successfully
+            delivered. The response message body is absent.
+        default:
+          description: Error case.
+          content:
+            application/json:
+              schema:
+                $ref: 'comDefs.yaml#/components/schemas/ErrorResponse'
+components:
+  schemas:
+    PerfNotificationTypes:
+      type: string
+      enum:
+        - notifyThresholdCrossing
+    PerfMetricValue:
+      oneOf:
+        - type: integer
+        - $ref: 'comDefs.yaml#/components/schemas/Float'
+    PerfMetricDirection:
+      type: string
+      enum:
+        - UP
+        - DOWN
+    NotifyThresholdCrossing:
+      allOf:
+        - $ref: 'comDefs.yaml#/components/schemas/NotificationHeader'
+        - type: object
+          properties:
+            observedPerfMetricName:
+              type: string
+            observedPerfMetricValue:
+              $ref: '#/components/schemas/PerfMetricValue'
+            observedPerfMetricDirection:
+              $ref: '#/components/schemas/PerfMetricDirection'
+            thresholdValue:
+              $ref: '#/components/schemas/PerfMetricValue'
+            hysteresis:
+              $ref: '#/components/schemas/PerfMetricValue'
+            monitorGranularityPeriod:
+              type: integer
+            additionalText:
+              type: string
@@ -1,25 +1,25 @@
 openapi: 3.0.1
 info:
   title: Provisioning MnS
-  version: 16.4.0
+  version: 16.5.0
   description: >-
     OAS 3.0.1 definition of the Provisioning MnS
     Â© 2020, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).
     All rights reserved.
 externalDocs:
-  description: 3GPP TS 28.532 V16.4.0; Generic management services
+  description: 3GPP TS 28.532; Generic management services
   url: http://www.3gpp.org/ftp/Specs/archive/28_series/28.532/
 servers:
-  - url: 'http://{URI-DN-prefix}/{root}/ProvMnS/v1640/{LDN-first-part}'
+  - url: '{MnSRoot}/ProvMnS/{MnSVersion}/{URI-LDN-first-part}'
     variables:
-      URI-DN-prefix:
-        description: See subclause 4.4 of TS 32.158
-        default: example.com
-      root:
-        description: See subclause 4.4 of TS 32.158
-        default: 3GPPManagement
-      LDN-first-part:
-        description: See subclause 4.4 of TS 32.158
+      MnSRoot:
+        description: See clause 4.4.2 of TS 32.158
+        default: http://example.com/3GPPManagement
+      MnSVersion:
+        description: Version number of the OpenAPI definition
+        default: XXX
+      URI-LDN-first-part:
+        description: See clause 4.4.2 of TS 32.158
         default: ''
 paths:
   '/{className}={id}':
@@ -28,12 +28,12 @@ paths:
         in: path
         required: true
         schema:
-          $ref: '#/components/schemas/className-PathType'
+          type: string
       - name: id
         in: path
         required: true
         schema:
-          $ref: '#/components/schemas/id-PathType'
+          type: string
     put:
       summary: Replaces a complete single resource or creates it if it does not exist
       description: >-
@@ -44,7 +44,7 @@ paths:
         content:
           application/json:
             schema:
-              $ref: '#/components/schemas/resourcePut-RequestType'
+              $ref: '#/components/schemas/Resource'
       responses:
         '200':
           description: >-
@@ -60,7 +60,7 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/resourceUpdate-ResponseType'
+                $ref: '#/components/schemas/Resource'
         '201':
           description: >-
             Success case ("201 Created").
@@ -70,7 +70,7 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/resourceCreation-ResponseType'
+                $ref: '#/components/schemas/Resource'
         '204':
           description: >-
             Success case ("204 No Content").
@@ -82,7 +82,7 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/error-ResponseType'
+                $ref: 'comDefs.yaml#/components/schemas/ErrorResponse'
       callbacks:
         notifyMOICreation:
           '{request.body#/notificationRecipientAddress}':
@@ -92,7 +92,7 @@ paths:
                 content:
                   application/json:
                     schema:
-                      $ref: '#/components/schemas/notifyMOICreation-NotifType'
+                      $ref: '#/components/schemas/NotifyMoiCreation'
               responses:
                 '204':
                   description: >-
@@ -104,7 +104,7 @@ paths:
                   content:
                     application/json:
                       schema:
-                        $ref: '#/components/schemas/error-ResponseType'
+                        $ref: 'comDefs.yaml#/components/schemas/ErrorResponse'
         notifyMOIDeletion:
           '{request.body#/notificationRecipientAddress}':
             post:
@@ -113,7 +113,7 @@ paths:
                 content:
                   application/json:
                     schema:
-                      $ref: '#/components/schemas/notifyMOIDeletion-NotifType'
+                      $ref: '#/components/schemas/NotifyMoiDeletion'
               responses:
                 '204':
                   description: >-
@@ -125,8 +125,8 @@ paths:
                   content:
                     application/json:
                       schema:
-                        $ref: '#/components/schemas/error-ResponseType'
-        notifyMOIAttributeValueChange:
+                        $ref: 'comDefs.yaml#/components/schemas/ErrorResponse'
+        notifyMOIAttributeValueChanges:
           '{request.body#/notificationRecipientAddress}':
             post:
               requestBody:
@@ -134,7 +134,7 @@ paths:
                 content:
                   application/json:
                     schema:
-                      $ref: '#/components/schemas/notifyMOIAttributeValueChange-NotifType'
+                      $ref: '#/components/schemas/NotifyMoiAttributeValueChanges'
               responses:
                 '204':
                   description: >-
@@ -146,7 +146,7 @@ paths:
                   content:
                     application/json:
                       schema:
-                        $ref: '#/components/schemas/error-ResponseType'
+                        $ref: 'comDefs.yaml#/components/schemas/ErrorResponse'
         notifyMOIChanges:
           '{request.body#/notificationRecipientAddress}':
             post:
@@ -155,7 +155,7 @@ paths:
                 content:
                   application/json:
                     schema:
-                      $ref: '#/components/schemas/notifyMOIChanges-NotifType'
+                      $ref: '#/components/schemas/NotifyMoiChanges'
               responses:
                 '204':
                   description: >-
@@ -167,7 +167,7 @@ paths:
                   content:
                     application/json:
                       schema:
-                        $ref: '#/components/schemas/error-ResponseType'
+                        $ref: 'comDefs.yaml#/components/schemas/ErrorResponse'
     get:
       summary: Reads one or multiple resources
       description: >-
@@ -183,7 +183,7 @@ paths:
             mechanism is specified in the present document.
           required: false
           schema:
-            $ref: '#/components/schemas/scope-QueryType'
+            $ref: '#/components/schemas/Scope'
           style: form
           explode: true
         - name: filter
@@ -196,7 +196,7 @@ paths:
             document.
           required: false
           schema:
-            $ref: '#/components/schemas/filter-QueryType'
+            $ref: 'comDefs.yaml#/components/schemas/Filter'
         - name: attributes
           in: query
           description: >-
@@ -204,7 +204,9 @@ paths:
             are returned.
           required: true
           schema:
-            $ref: '#/components/schemas/attributes-QueryType'
+            type: array
+            items:
+              type: string
           style: form
           explode: false
         - name: fields
@@ -214,7 +216,9 @@ paths:
             that are returned.
           required: false
           schema:
-            $ref: '#/components/schemas/fields-QueryType'
+            type: array
+            items:
+              type: string
           style: form
           explode: false
       responses:
@@ -229,13 +233,13 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/resourceRetrieval-ResponseType'
+                $ref: '#/components/schemas/Resource'
         default:
           description: Error case.
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/error-ResponseType'
+                $ref: 'comDefs.yaml#/components/schemas/ErrorResponse'
     patch:
       summary: Patches one or multiple resources
       description: >-
@@ -254,16 +258,20 @@ paths:
         content:
           application/merge-patch+json:
             schema:
-              $ref: '#/components/schemas/jsonMergePatch-RequestType'
+              $ref: '#/components/schemas/Resource'
           application/3gpp-merge-patch+json:
             schema:
-              $ref: '#/components/schemas/3gppJsonMergePatch-RequestType'
+              $ref: '#/components/schemas/Resource'
           application/json-patch+json:
             schema:
-              $ref: '#/components/schemas/jsonPatch-RequestType'
+              type: array
+              items:
+                type: object
           application/3gpp-json-patch+json:
             schema:
-              $ref: '#/components/schemas/3gppJsonPatch-RequestType'
+              type: array
+              items:
+                type: object
       responses:
         '200':
           description: >-
@@ -276,7 +284,7 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/resourceUpdate-ResponseType'
+                $ref: '#/components/schemas/Resource'
         '204':
           description: >-
             Success case ("204 No Content").
@@ -288,7 +296,7 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/error-ResponseType'
+                $ref: 'comDefs.yaml#/components/schemas/ErrorResponse'
     delete:
       summary: Deletes one or multiple resources
       description: >-
@@ -303,7 +311,9 @@ paths:
             mechanism is specified in the present document.
           required: false
           schema:
-            $ref: '#/components/schemas/scope-QueryType'
+            $ref: '#/components/schemas/Scope'
+          style: form
+          explode: true
         - name: filter
           in: query
           description: >-
@@ -314,7 +324,7 @@ paths:
             document.
           required: false
           schema:
-            $ref: '#/components/schemas/filter-QueryType'
+            $ref: 'comDefs.yaml#/components/schemas/Filter'
       responses:
         '200':
           description: >-
@@ -331,136 +341,66 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/resourceDeletion-ResponseType'
+                type: array
+                items:
+                  $ref: 'comDefs.yaml#/components/schemas/Uri'
         default:
           description: Error case.
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/error-ResponseType'
+                $ref: 'comDefs.yaml#/components/schemas/ErrorResponse'
 components:
   schemas:
-    dateTime-Type:
-      type: string
-      format: date-time
-    long-Type:
-      type: integer
-      format: int64
-    uri-Type:
-      type: string
-    correlatedNotification-Type:
+    CorrelatedNotification:
       type: object
       properties:
         source:
-          $ref: '#/components/schemas/uri-Type'
+          $ref: 'comDefs.yaml#/components/schemas/Dn'
         notificationIds:
           type: array
           items:
-            $ref: '#/components/schemas/notificationId-Type'
-    notificationId-Type:
-      $ref: '#/components/schemas/long-Type'
-    notificationType-Type:
+            $ref: 'comDefs.yaml#/components/schemas/NotificationId'
+      required:
+        - source
+        - notificationIds
+    CmNotificationTypes:
       type: string
       enum:
         - notifyMOICreation
         - notifyMOIDeletion
-        - notifyMOIAttributeValueChange
-    systemDN-Type:
+        - notifyMOIAttributeValueChanges
+        - notifyMOIChanges
+    SourceIndicator:
       type: string
-    additionalText-Type:
-      type: string
-    sourceIndicator-Type:
+      enum:
+        - RESOURCE_OPERATION
+        - MANAGEMENT_OPERATION
+        - SON_OPERATION
+        - UNKNOWN
+    Operation:
       type: string
       enum:
-        - resourceOperation
-        - mangementOperation
-        - sONOperation
-        - unknown
-    header-Type:
-      type: object
-      properties:
-        href:
-          $ref: '#/components/schemas/uri-Type'
-        notificationId:
-          $ref: '#/components/schemas/notificationId-Type'
-        notificationType:
-          $ref: '#/components/schemas/notificationType-Type'
-        eventTime:
-          $ref: '#/components/schemas/dateTime-Type'
-        systemDN:
-          $ref: '#/components/schemas/systemDN-Type'
-      required:
-        - href
-        - notificationId
-        - notificationType
-        - eventTime
-        - systemDN
-    scopeType-Type:
+        - CREATE
+        - DELETE
+        - REPLACE
+    ScopeType:
       type: string
       enum:
         - BASE_ONLY
         - BASE_NTH_LEVEL
         - BASE_SUBTREE
         - BASE_ALL
-    scopeLevel-Type:
-      type: integer
-    className-PathType:
-      type: string
-    id-PathType:
-      type: string
-    attributes-QueryType:
-      type: array
-      items:
-        type: string
-    fields-QueryType:
-      type: array
-      items:
-        type: string
-    filter-QueryType:
-      type: string
-    scope-QueryType:
+    Scope:
       type: object
       properties:
         scopeType:
-          $ref: '#/components/schemas/scopeType-Type'
+          $ref: '#/components/schemas/ScopeType'
         scopeLevel:
-          $ref: '#/components/schemas/scopeLevel-Type'
+          type: integer
 
-    resourcePut-RequestType:
-      $ref: '#/components/schemas/resourceRepresentation-Type'
-    jsonMergePatch-RequestType:
-      $ref: '#/components/schemas/resourceRepresentation-Type'
-    3gppJsonMergePatch-RequestType:
-      $ref: '#/components/schemas/resourceRepresentation-Type'
-    jsonPatch-RequestType:
-      type: array
-      items:
-        type: object
-    3gppJsonPatch-RequestType:
-      type: array
-      items:
-        type: object
 
-    error-ResponseType:
-      type: object
-      properties:
-        error:
-          type: object
-          properties:
-            errorInfo:
-              type: string
-    resourceRetrieval-ResponseType:
-      $ref: '#/components/schemas/resourceRepresentation-Type'
-    resourceCreation-ResponseType:
-      $ref: '#/components/schemas/resourceRepresentation-Type'
-    resourceUpdate-ResponseType:
-      $ref: '#/components/schemas/resourceRepresentation-Type'
-    resourceDeletion-ResponseType:
-      type: array
-      items:
-        $ref: '#/components/schemas/uri-Type'
-
-    resourceRepresentation-Type:
+    Resource:
       oneOf:
         - type: object
           properties:
@@ -478,102 +418,83 @@ components:
             - $ref: '5gcNrm.yaml#/components/schemas/resources-5gcNrm'
             - $ref: 'sliceNrm.yaml#/components/schemas/resources-sliceNrm'
 
-    mOIChange-Type:
+    MoiChange:
       type: object
       properties:
         notificationId:
-          $ref: '#/components/schemas/notificationId-Type'
+          $ref: 'comDefs.yaml#/components/schemas/NotificationId'
         correlatedNotifications:
           type: array
           items:
-            $ref: '#/components/schemas/correlatedNotification-Type'
+            $ref: '#/components/schemas/CorrelatedNotification'
         additionalText:
-          $ref: '#/components/schemas/additionalText-Type'
+          type: string
         sourceIndicator:
-          $ref: '#/components/schemas/sourceIndicator-Type'
+          $ref: '#/components/schemas/SourceIndicator'
         path:
-          $ref: '#/components/schemas/uri-Type'
+          $ref: 'comDefs.yaml#/components/schemas/Uri'
         operation:
-          type: string
-          enum:
-            - CREATE
-            - DELETE
-            - REPLACE
+          $ref: '#/components/schemas/Operation'
         value:
           oneOf:
-            - type: object
-              additionalProperties:
-                nullable: true
-            - type: array
-              items:
-                type: object
-              minItems: 1
-              maxItems: 2
+            - $ref: 'comDefs.yaml#/components/schemas/AttributeNameValuePairSet'
+            - $ref: 'comDefs.yaml#/components/schemas/AttributeValueChangeSet'
 
-    notifyMOICreation-NotifType:
+    NotifyMoiCreation:
       allOf:
-        - $ref: '#/components/schemas/header-Type'
+        - $ref: 'comDefs.yaml#/components/schemas/NotificationHeader'
         - type: object
           properties:
             correlatedNotifications:
               type: array
               items:
-                $ref: '#/components/schemas/correlatedNotification-Type'
+                $ref: '#/components/schemas/CorrelatedNotification'
             additionalText:
-              $ref: '#/components/schemas/additionalText-Type'
+              type: string
             sourceIndicator:
-              $ref: '#/components/schemas/sourceIndicator-Type'
+              $ref: '#/components/schemas/SourceIndicator'
             attributeList:
-              type: object
-              additionalProperties:
-                nullable: true
-    notifyMOIDeletion-NotifType:
+              $ref: 'comDefs.yaml#/components/schemas/AttributeNameValuePairSet'
+    NotifyMoiDeletion:
       allOf:
-        - $ref: '#/components/schemas/header-Type'
+        - $ref: 'comDefs.yaml#/components/schemas/NotificationHeader'
         - type: object
           properties:
             correlatedNotifications:
               type: array
               items:
-                $ref: '#/components/schemas/correlatedNotification-Type'
+                $ref: '#/components/schemas/CorrelatedNotification'
             additionalText:
-              $ref: '#/components/schemas/additionalText-Type'
+              type: string
             sourceIndicator:
-              $ref: '#/components/schemas/sourceIndicator-Type'
+              $ref: '#/components/schemas/SourceIndicator'
             attributeList:
-              type: object
-              additionalProperties: true
-    notifyMOIAttributeValueChange-NotifType:
+              $ref: 'comDefs.yaml#/components/schemas/AttributeNameValuePairSet'
+    NotifyMoiAttributeValueChanges:
       allOf:
-        - $ref: '#/components/schemas/header-Type'
+        - $ref: 'comDefs.yaml#/components/schemas/NotificationHeader'
         - type: object
           properties:
             correlatedNotifications:
               type: array
               items:
-                $ref: '#/components/schemas/correlatedNotification-Type'
+                $ref: '#/components/schemas/CorrelatedNotification'
             additionalText:
-              $ref: '#/components/schemas/additionalText-Type'
+              type: string
             sourceIndicator:
-              $ref: '#/components/schemas/sourceIndicator-Type'
-            attributeValueChange:
-              type: object
-              additionalProperties:
-                type: array
-                minItems: 1
-                maxItems: 2
-                items:
-                  nullable: true
+              $ref: '#/components/schemas/SourceIndicator'
+            attributeListValueChanges:
+              $ref: 'comDefs.yaml#/components/schemas/AttributeValueChangeSet'
           required:
-            - attributeValueChange
-    notifyMOIChanges-NotifType:
+            - attributeListValueChanges
+    NotifyMoiChanges:
       allOf:
-        - $ref: '#/components/schemas/header-Type'
+        - $ref: 'comDefs.yaml#/components/schemas/NotificationHeader'
         - type: object
           properties:
-            mOIChanges:
+            moiChanges:
               type: array
               items:
-                $ref: '#/components/schemas/mOIChange-Type'
+                $ref: '#/components/schemas/MoiChange'
           required:
-            - mOIChanges
+            - moiChanges
diff --git a/kubernetes/dcaegen2-services/resources/external/schemas/sa91-rel16/sliceNrm.yaml b/kubernetes/dcaegen2-services/resources/external/schemas/sa91-rel16/sliceNrm.yaml
new file mode 100644 (file)
index 0000000..1fa8d70
--- /dev/null
@@ -0,0 +1,418 @@
+openapi: 3.0.1
+info:
+  title: Slice NRM
+  version: 16.8.0
+  description: >-
+    OAS 3.0.1 specification of the Slice NRM
+    @ 2020, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).
+    All rights reserved.
+externalDocs:
+  description: 3GPP TS 28.541 V16.4.0; 5G NRM, Slice NRM
+  url: http://www.3gpp.org/ftp/Specs/archive/28_series/28.541/
+paths: {}
+components:
+  schemas:
+
+#------------ Type definitions ---------------------------------------------------
+
+    Float:
+      type: number
+      format: float
+    MobilityLevel:
+      type: string
+      enum:
+        - STATIONARY
+        - NOMADIC
+        - RESTRICTED MOBILITY
+        - FULLY MOBILITY
+    SharingLevel:
+      type: string
+      enum:
+        - SHARED
+        - NON-SHARED
+    NetworkSliceSharingIndicator:
+      type: string
+      enum:
+        - SHARED
+        - NON-SHARED
+    PerfReqEmbb:
+      type: object
+      properties:
+        expDataRateDL:
+          type: number
+        expDataRateUL:
+          type: number
+        areaTrafficCapDL:
+          type: number
+        areaTrafficCapUL:
+          type: number
+        userDensity:
+          type: number
+        activityFactor:
+          type: number
+    PerfReqEmbbList:
+      type: array
+      items:
+        $ref: '#/components/schemas/PerfReqEmbb'
+    PerfReqUrllc:
+      type: object
+      properties:
+        cSAvailabilityTarget:
+          type: number
+        cSReliabilityMeanTime:
+          type: string
+        expDataRate:
+          type: number
+        msgSizeByte:
+          type: string
+        transferIntervalTarget:
+          type: string
+        survivalTime:
+          type: string
+    PerfReqUrllcList:
+      type: array
+      items:
+        $ref: '#/components/schemas/PerfReqUrllc'
+    PerfReq:
+      oneOf:
+        - $ref: '#/components/schemas/PerfReqEmbbList'
+        - $ref: '#/components/schemas/PerfReqUrllcList'
+    Category:
+      type: string
+      enum:
+        - CHARACTER
+        - SCALABILITY
+    Tagging:
+      type: array
+      items:
+        type: string
+        enum:
+          - PERFORMANCE
+          - FUNCTION
+          - OPERATION
+
+
+    Exposure:
+      type: string
+      enum:
+        - API
+        - KPI
+    ServAttrCom:
+      type: object
+      properties:
+        category:
+          $ref: '#/components/schemas/Category'
+        tagging:
+          $ref: '#/components/schemas/Tagging'
+        exposure:
+          $ref: '#/components/schemas/Exposure'
+    Support:
+      type: string
+      enum:
+        - NOT SUPPORTED
+        - SUPPORTED
+    DelayTolerance:
+      type: object
+      properties:
+        servAttrCom:
+          $ref: '#/components/schemas/ServAttrCom'
+        support:
+          $ref: '#/components/schemas/Support'
+    DeterministicComm:
+      type: object
+      properties:
+        servAttrCom:
+          $ref: '#/components/schemas/ServAttrCom'
+        availability:
+          $ref: '#/components/schemas/Support'
+        periodicityList:
+          type: string
+    DLThptPerSlice:
+      type: object
+      properties:
+        servAttrCom:
+          $ref: '#/components/schemas/ServAttrCom'
+        guaThpt:
+          $ref: '#/components/schemas/Float'
+        maxThpt:
+          $ref: '#/components/schemas/Float'
+    DLThptPerUE:
+      type: object
+      properties:
+        servAttrCom:
+          $ref: '#/components/schemas/ServAttrCom'
+        guaThpt:
+          $ref: '#/components/schemas/Float'
+        maxThpt:
+          $ref: '#/components/schemas/Float'
+    ULThptPerSlice:
+      type: object
+      properties:
+        servAttrCom:
+          $ref: '#/components/schemas/ServAttrCom'
+        guaThpt:
+          $ref: '#/components/schemas/Float'
+        maxThpt:
+          $ref: '#/components/schemas/Float'
+    ULThptPerUE:
+      type: object
+      properties:
+        servAttrCom:
+          $ref: '#/components/schemas/ServAttrCom'
+        guaThpt:
+          $ref: '#/components/schemas/Float'
+        maxThpt:
+          $ref: '#/components/schemas/Float'
+    MaxPktSize:
+      type: object
+      properties:
+        servAttrCom:
+          $ref: '#/components/schemas/ServAttrCom'
+        maxsize:
+          type: integer
+    MaxNumberofConns:
+      type: object
+      properties:
+        servAttrCom:
+          $ref: '#/components/schemas/ServAttrCom'
+        nOofConn:
+          type: integer
+    KPIMonitoring:
+      type: object
+      properties:
+        servAttrCom:
+          $ref: '#/components/schemas/ServAttrCom'
+        kPIList:
+          type: string
+    UserMgmtOpen:
+      type: object
+      properties:
+        servAttrCom:
+          $ref: '#/components/schemas/ServAttrCom'
+        support:
+          $ref: '#/components/schemas/Support'
+    V2XCommModels:
+      type: object
+      properties:
+        servAttrCom:
+          $ref: '#/components/schemas/ServAttrCom'
+        v2XMode:
+          $ref: '#/components/schemas/Support'
+    TermDensity:
+      type: object
+      properties:
+        servAttrCom:
+          $ref: '#/components/schemas/ServAttrCom'
+        density:
+          type: integer
+    NsInfo:
+      type: object
+      properties:
+        nsInstanceId:
+          type: string
+        nsName:
+          type: string
+    ServiceProfile:
+      type: object
+      properties:
+          serviceProfileId: 
+            type: string
+          plmnInfoList:
+            $ref: 'nrNrm.yaml#/components/schemas/PlmnInfoList'
+          maxNumberofUEs:
+            type: number
+          latency:
+            type: number
+          uEMobilityLevel:
+            $ref: '#/components/schemas/MobilityLevel'
+          sst:
+            $ref: 'nrNrm.yaml#/components/schemas/Sst'
+          networkSliceSharingIndicator:
+            $ref: '#/components/schemas/NetworkSliceSharingIndicator'
+          availability:
+            type: number
+          delayTolerance:
+            $ref: '#/components/schemas/DelayTolerance'
+          deterministicComm:
+            $ref: '#/components/schemas/DeterministicComm'
+          dLThptPerSlice:
+            $ref: '#/components/schemas/DLThptPerSlice'
+          dLThptPerUE:
+            $ref: '#/components/schemas/DLThptPerUE'
+          uLThptPerSlice:
+            $ref: '#/components/schemas/ULThptPerSlice'
+          uLThptPerUE:
+            $ref: '#/components/schemas/ULThptPerUE'
+          maxPktSize:
+            $ref: '#/components/schemas/MaxPktSize'
+          maxNumberofConns:
+            $ref: '#/components/schemas/MaxNumberofConns'
+          kPIMonitoring:
+            $ref: '#/components/schemas/KPIMonitoring'
+          userMgmtOpen:
+            $ref: '#/components/schemas/UserMgmtOpen'
+          v2XModels:
+            $ref: '#/components/schemas/V2XCommModels'
+          coverageArea:
+            type: string
+          termDensity:
+            $ref: '#/components/schemas/TermDensity'
+          activityFactor:
+            $ref: '#/components/schemas/Float'
+          uESpeed:
+            type: integer
+          jitter:
+            type: integer
+          survivalTime:
+            type: string
+          reliability:
+            type: string
+    SliceProfile:
+      type: object
+      properties:
+          sliceProfileId:
+            type: string
+
+          plmnInfoList:
+            $ref: 'nrNrm.yaml#/components/schemas/PlmnInfoList'
+          perfReq:
+            $ref: '#/components/schemas/PerfReq'
+          maxNumberofUEs:
+            type: number
+          coverageAreaTAList:
+            $ref: '5gcNrm.yaml#/components/schemas/TACList'
+          latency:
+            type: number
+          uEMobilityLevel:
+            $ref: '#/components/schemas/MobilityLevel'
+          resourceSharingLevel:
+            $ref: '#/components/schemas/SharingLevel'
+
+    IpAddress:
+      oneOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Ipv4Addr'
+        - $ref: 'genericNrm.yaml#/components/schemas/Ipv6Addr'
+    ServiceProfileList:
+       type: array
+       items:
+        $ref: '#/components/schemas/ServiceProfile'
+            
+    SliceProfileList:
+      type: array
+      items:
+        $ref: '#/components/schemas/SliceProfile'
+
+#------------ Definition of concrete IOCs ----------------------------------------
+
+    SubNetwork-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/SubNetwork-Attr'
+        - $ref: 'genericNrm.yaml#/components/schemas/SubNetwork-ncO'
+        - type: object
+          properties:
+            SubNetwork:
+              $ref: '#/components/schemas/SubNetwork-Multiple'
+            NetworkSlice:
+              $ref: '#/components/schemas/NetworkSlice-Multiple'
+            NetworkSliceSubnet:
+              $ref: '#/components/schemas/NetworkSliceSubnet-Multiple'
+            EP_Transport:
+              $ref: '#/components/schemas/EP_Transport-Multiple'
+
+    NetworkSlice-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/SubNetwork-Attr'
+                - type: object
+                  properties:
+                    networkSliceSubnetRef:
+                      $ref: 'comDefs.yaml#/components/schemas/Dn'
+                    operationalState:
+                      $ref: 'comDefs.yaml#/components/schemas/OperationalState'
+                    administrativeState:
+                      $ref: 'comDefs.yaml#/components/schemas/AdministrativeState'
+                    serviceProfileList:
+                      $ref: '#/components/schemas/ServiceProfileList'
+
+    NetworkSliceSubnet-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              allOf:
+                - $ref: 'genericNrm.yaml#/components/schemas/SubNetwork-Attr'
+                - type: object
+                  properties:
+                    managedFunctionRefList:
+                      $ref: 'comDefs.yaml#/components/schemas/DnList'
+                    networkSliceSubnetRefList:
+                      $ref: 'comDefs.yaml#/components/schemas/DnList'
+                    operationalState:
+                      $ref: 'comDefs.yaml#/components/schemas/OperationalState'
+                    administrativeState:
+                      $ref: 'comDefs.yaml#/components/schemas/AdministrativeState'
+                    nsInfo:
+                      $ref: '#/components/schemas/NsInfo'
+                    sliceProfileList:
+                      $ref: '#/components/schemas/SliceProfileList'
+                    epTransportRefList:
+                      $ref: 'comDefs.yaml#/components/schemas/DnList'
+
+    EP_Transport-Single:
+      allOf:
+        - $ref: 'genericNrm.yaml#/components/schemas/Top-Attr'
+        - type: object
+          properties:
+            attributes:
+              type: object
+              properties:
+                ipAddress:
+                  $ref: '#/components/schemas/IpAddress'
+                logicInterfaceId:
+                  type: string 
+                nextHopInfo:
+                  type: string 
+                qosProfile:
+                  type: string 
+                epApplicationRefs:
+                  $ref: 'comDefs.yaml#/components/schemas/DnList'
+                      
+#-------- Definition of JSON arrays for name-contained IOCs ----------------------
+    SubNetwork-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/SubNetwork-Single'
+
+    NetworkSlice-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/NetworkSlice-Single'
+
+    NetworkSliceSubnet-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/NetworkSliceSubnet-Single'
+
+    EP_Transport-Multiple:
+      type: array
+      items:
+        $ref: '#/components/schemas/EP_Transport-Single'
+
+#------------ Definitions in TS 28.541 for TS 28.532 -----------------------------
+
+    resources-sliceNrm:
+      oneOf:
+       - $ref: '#/components/schemas/SubNetwork-Single'
+       - $ref: '#/components/schemas/NetworkSlice-Single'
+       - $ref: '#/components/schemas/NetworkSliceSubnet-Single'
+       - $ref: '#/components/schemas/EP_Transport-Single'
index a2c7c56..92662a2 100644 (file)
@@ -24,4 +24,20 @@ metadata:
   name: {{ include "common.release" . }}-dcae-expected-microservices
   namespace: {{ include "common.namespace" . }}
 data:
-{{ tpl (.Files.Glob "resources/*").AsConfig . | indent 2 }}
\ No newline at end of file
+{{ tpl (.Files.Glob "resources/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.release" . }}-dcae-external-repo-configmap-schema-map
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ (.Files.Glob "resources/external/map/*").AsConfig | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.release" . }}-dcae-external-repo-configmap-sa91-rel16
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ (.Files.Glob "resources/external/schemas/sa91-rel16/*").AsConfig | indent 2 }}
\ No newline at end of file
index 694940e..0a97f9e 100644 (file)
@@ -110,7 +110,7 @@ default_k8s_location: central
 # DCAE component images to be deployed via Cloudify Manager
 # Use to override default setting in blueprints
 componentImages:
-  tcagen2: onap/org.onap.dcaegen2.analytics.tca-gen2.dcae-analytics-tca-web:1.2.1
+  tcagen2: onap/org.onap.dcaegen2.analytics.tca-gen2.dcae-analytics-tca-web:1.3.0
   ves: onap/org.onap.dcaegen2.collectors.ves.vescollector:1.9.2
   prh: onap/org.onap.dcaegen2.services.prh.prh-app-server:1.5.6
   hv_ves: onap/org.onap.dcaegen2.collectors.hv-ves.hv-collector-main:1.8.0
index 3c769fc..fb1a40e 100644 (file)
@@ -41,9 +41,6 @@
     "ca_cert_configmap": "{{ include "common.fullname" . }}-dcae-cacert"
   },
   "external_cert": {
-    "image_tag": "{{ include "repositoryGenerator.repository" . }}/{{ .Values.cmpv2Config.global.platform.certServiceClient.image }}",
-    "request_url": "{{ .Values.cmpv2Config.global.platform.certServiceClient.envVariables.requestURL }}",
-    "timeout": "{{ .Values.cmpv2Config.global.platform.certServiceClient.envVariables.requestTimeout }}",
     "country": "{{ .Values.cmpv2Config.global.certificate.default.subject.country }}",
     "organization": "{{ .Values.cmpv2Config.global.certificate.default.subject.organization }}",
     "state": "{{ .Values.cmpv2Config.global.certificate.default.subject.province }}",
@@ -61,7 +58,7 @@
     "image_tag": "{{ include "repositoryGenerator.repository" . }}/{{ .Values.cmpv2Config.global.platform.certPostProcessor.image }}"
   },
   "cmpv2_issuer": {
-    "enabled": "{{ .Values.global.CMPv2CertManagerIntegration }}",
+    "enabled": "true",
     "name": "{{ .Values.cmpv2issuer.name }}"
   }
 }
index fcc8f6d..313ac9b 100644 (file)
@@ -28,8 +28,6 @@ global:
   repositoryCred:
     user: docker
     password: docker
-  # Enabling CMPv2 with CertManager
-  CMPv2CertManagerIntegration: false
 
 cmpv2issuer:
   name: cmpv2-issuer-onap
index 929b380..f2826a7 100644 (file)
@@ -55,7 +55,7 @@ spec:
       volumes:
         - name: schema-map
           configMap:
-            name: dcae-external-repo-configmap-schema-map
+            name: {{ include "common.release" . }}-dcae-external-repo-configmap-schema-map
             defaultMode: 0755
             items:
               - key: {{ .Values.schemaMap.filename }}
diff --git a/kubernetes/dcaegen2/resources/external/map/schema-map.json b/kubernetes/dcaegen2/resources/external/map/schema-map.json
deleted file mode 100644 (file)
index a70c597..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-[
-  {
-    "publicURL": "https://forge.3gpp.org/rep/sa5/MnS/blob/SA88-Rel16/OpenAPI/faultMnS.yaml",
-    "localURL": "3gpp/rep/sa5/MnS/blob/SA88-Rel16/OpenAPI/faultMnS.yaml"
-  },
-  {
-    "publicURL": "https://forge.3gpp.org/rep/sa5/MnS/blob/SA88-Rel16/OpenAPI/heartbeatNtf.yaml",
-    "localURL": "3gpp/rep/sa5/MnS/blob/SA88-Rel16/OpenAPI/heartbeatNtf.yaml"
-  },
-  {
-    "publicURL": "https://forge.3gpp.org/rep/sa5/MnS/blob/SA88-Rel16/OpenAPI/PerDataFileReportMnS.yaml",
-    "localURL": "3gpp/rep/sa5/MnS/blob/SA88-Rel16/OpenAPI/PerDataFileReportMnS.yaml"
-  },
-  {
-    "publicURL": "https://forge.3gpp.org/rep/sa5/MnS/blob/SA88-Rel16/OpenAPI/provMnS.yaml",
-    "localURL": "3gpp/rep/sa5/MnS/blob/SA88-Rel16/OpenAPI/provMnS.yaml"
-  }
-]
\ No newline at end of file
index a9917a5..8a389ed 100644 (file)
@@ -24,19 +24,3 @@ metadata:
   namespace: {{ include "common.namespace" . }}
 data:
 {{ tpl (.Files.Glob "resources/*").AsConfig . | indent 2 }}
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: dcae-external-repo-configmap-schema-map
-  namespace: {{ include "common.namespace" . }}
-data:
-{{ (.Files.Glob "resources/external/map/*").AsConfig | indent 2 }}
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: dcae-external-repo-configmap-sa88-rel16
-  namespace: {{ include "common.namespace" . }}
-data:
-{{ (.Files.Glob "resources/external/schema/rel16/*").AsConfig | indent 2 }}
index d6c4472..521cf2f 100644 (file)
@@ -20,7 +20,6 @@
 global:
   addTestingComponents: &testing true
   centralizedLoggingEnabled: &centralizedLogging false
-  CMPv2CertManagerIntegration: false
 cassandra:
   enabled: true
 mariadb-galera:
index 643d306..7b3603c 100644 (file)
@@ -1,5 +1,5 @@
 # Copyright Â© 2020 Nordix Foundation
-# Modifications Copyright Â© 2020 Nokia
+# Modifications Copyright Â© 2020-2021 Nokia
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 #################################################################
 global:
   cmpv2Enabled: true
-  CMPv2CertManagerIntegration: true
-  platform:
-    certServiceClient:
-      envVariables:
-        # Certificate related
-        cmpv2Organization: "Linux-Foundation"
-        cmpv2OrganizationalUnit: "ONAP"
-        cmpv2Location: "San-Francisco"
-        cmpv2State: "California"
-        cmpv2Country: "US"
-        # Client configuration related
-        caName: "RA"
+  certificate:
+    default:
+      renewBefore: 720h #30 days
+      duration:    8760h #365 days
+      subject:
+        organization: "Linux-Foundation"
+        country: "US"
+        locality: "San-Francisco"
+        province: "California"
+        organizationalUnit: "ONAP"
+      issuer:
+        group: certmanager.onap.org
+        kind: CMPv2Issuer
+        name: cmpv2-issuer-onap
index d91284a..0e2b13b 100755 (executable)
@@ -194,7 +194,6 @@ global:
 
   # Enabling CMPv2
   cmpv2Enabled: true
-  CMPv2CertManagerIntegration: false
   platform:
     certificates:
       clientSecretName: oom-cert-service-client-tls-secret
@@ -204,17 +203,6 @@ global:
       keystorePasswordSecretKey: password
       truststorePasswordSecretName: oom-cert-service-certificates-password
       truststorePasswordSecretKey: password
-    certServiceClient:
-      image: onap/org.onap.oom.platform.cert-service.oom-certservice-client:2.3.3
-      certificatesSecretMountPath: /etc/onap/oom/certservice/certs/
-      envVariables:
-        certPath: "/var/custom-certs"
-        # Certificate related
-        caName: "RA"
-        # Client configuration related
-        requestURL: "https://oom-cert-service:8443/v1/certificate/"
-        requestTimeout: "30000"
-        outputType: "P12"
 
   # Indicates offline deployment build
   # Set to true if you are rendering helm charts for offline deployment
index 491250c..ba4a657 100755 (executable)
@@ -55,21 +55,6 @@ spec:
         image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
 
-      - name: {{ include "common.name" . }}-onboard-readiness
-        command:
-        - /app/ready.py
-        args:
-        - -j
-        - "{{ include "common.release" . }}-oof-has-onboard"
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: {{ include "repositoryGenerator.image.readiness" . }}
-        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-
       - name: {{ include "common.name" . }}-has-sms-readiness
         command:
         - sh
@@ -94,7 +79,7 @@ spec:
         - name: {{ include "common.name" . }}
           image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.global.image.optf_has }}
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-          command: ["/bin/bash","-c"]
+          command: ["/bin/sh","-c"]
           args: ["/usr/local/bin/uwsgi -s /run/conductor/uwsgi.sock --chmod-socket=777 --wsgi-file /etc/nginx/conductor.wsgi --callable application --set port={{ .Values.uwsgi.internalPort }} --die-on-term --exit-on-reload --pidfile /run/conductor/conductor-uwsgi.pid --enable-threads --workers 6 --master --vacuum --single-interpreter --socket-timeout 10 --max-worker-lifetime 300 --max-requests 100 --no-defer-accept --protocol=uwsgi --socket 0.0.0.0:{{ .Values.uwsgi.internalPort }}"]
           ports:
           - containerPort: {{ .Values.uwsgi.internalPort }}
@@ -112,7 +97,7 @@ spec:
               port: {{ .Values.uwsgi.internalPort }}
             initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
             periodSeconds: {{ .Values.readiness.periodSeconds }}
-          env:
+          env: {{ include "oof.etcd.env" . | nindent 10 }}
           volumeMounts:
           - mountPath: /etc/localtime
             name: localtime
index d6743cd..63461d9 100755 (executable)
@@ -16,7 +16,7 @@
 global: # global defaults
   nodePortPrefix: 302
   image:
-    optf_has: onap/optf-has:2.1.5
+    optf_has: onap/optf-has:2.2.0
 
 #################################################################
 # secrets metaconfig
@@ -26,6 +26,18 @@ secrets:
     externalSecret: '{{ tpl (default "" .Values.certSecret) . }}'
     type: generic
     filePaths: '{{ .Values.secretsFilePaths }}'
+  - uid: oof-has-etcd-secret
+    name: &user-creds '{{ include "common.release" . }}-oof-has-etcd-secret'
+    type: basicAuth
+    externalSecret: '{{ tpl (default "" .Values.config.etcd.userCredentialsExternalSecret) . }}'
+    login: '{{ .Values.config.etcd.appUser }}'
+    password: '{{ .Values.config.etcd.appPassword }}'
+    passwordPolicy: required
+
+config:
+  etcd:
+    appUser: user
+    appPassword: pass
 
 service:
   type: NodePort
index 8e0ff1a..895a305 100755 (executable)
@@ -41,8 +41,8 @@ spec:
         command:
         - /app/ready.py
         args:
-        - --container-name
-        - music-springboot
+        - --job-name
+        - {{ include "common.release" . }}-{{ .Values.config.etcd.configJobNameOverride }}-job
         - --container-name
         - aaf-sms
         env:
@@ -54,21 +54,6 @@ spec:
         image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
 
-      - name: {{ include "common.name" . }}-onboard-readiness
-        command:
-        - /app/ready.py
-        args:
-        - -j
-        - "{{ include "common.release" . }}-oof-has-onboard"
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: {{ include "repositoryGenerator.image.readiness" . }}
-        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-
       - name: {{ include "common.name" . }}-cont-sms-readiness
         command:
         - sh
@@ -114,7 +99,7 @@ spec:
               - /usr/local/bin/healthy.sh
             initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
             periodSeconds: {{ .Values.readiness.periodSeconds }}
-          env:
+          env: {{ include "oof.etcd.env" . | nindent 10 }}
           volumeMounts:
           - mountPath: /etc/localtime
             name: localtime
index 3cbf96a..9e799e1 100755 (executable)
@@ -14,7 +14,7 @@
 
 global:
   image:
-    optf_has: onap/optf-has:2.1.5
+    optf_has: onap/optf-has:2.2.0
 
 #################################################################
 # Secrets metaconfig
@@ -24,6 +24,18 @@ secrets:
     externalSecret: '{{ tpl (default "" .Values.certSecret) . }}'
     type: generic
     filePaths: '{{ .Values.secretsFilePaths }}'
+  - uid: oof-has-etcd-secret
+    name: &user-creds '{{ include "common.release" . }}-oof-has-etcd-secret'
+    type: basicAuth
+    externalSecret: '{{ tpl (default "" .Values.config.etcd.userCredentialsExternalSecret) . }}'
+    login: '{{ .Values.config.etcd.appUser }}'
+    password: '{{ .Values.config.etcd.appPassword }}'
+    passwordPolicy: required
+
+config:
+  etcd:
+    appUser: user
+    appPassword: pass
 
 ingress:
   enabled: false
index f4ccd57..cc4eaf0 100755 (executable)
@@ -41,38 +41,8 @@ spec:
         command:
         - /app/ready.py
         args:
-        - --container-name
-        - music-springboot
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: {{ include "repositoryGenerator.image.readiness" . }}
-        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-
-      - name: {{ include "common.name" . }}-onboard-readiness
-        command:
-        - /app/ready.py
-        args:
-        - -j
-        - "{{ include "common.release" . }}-oof-has-onboard"
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: {{ include "repositoryGenerator.image.readiness" . }}
-        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-
-      - name: {{ include "common.name" . }}-health-readiness
-        command:
-        - /app/ready.py
-        args:
-        - -j
-        - "{{ include "common.release" . }}-oof-has-healthcheck"
+        - --job-name
+        - {{ include "common.release" . }}-{{ .Values.config.etcd.configJobNameOverride }}-job
         env:
         - name: NAMESPACE
           valueFrom:
@@ -128,7 +98,7 @@ spec:
               - /usr/local/bin/healthy.sh
             initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
             periodSeconds: {{ .Values.readiness.periodSeconds }}
-          env:
+          env: {{ include "oof.etcd.env" . | nindent 10 }}
           volumeMounts:
           - mountPath: /etc/localtime
             name: localtime
index 0940a9d..915ffc0 100755 (executable)
@@ -14,7 +14,7 @@
 
 global:
   image:
-    optf_has: onap/optf-has:2.1.5
+    optf_has: onap/optf-has:2.2.0
 
 #################################################################
 # secrets metaconfig
@@ -24,6 +24,18 @@ secrets:
     externalSecret: '{{ tpl (default "" .Values.certSecret) . }}'
     type: generic
     filePaths: '{{ .Values.secretsFilePaths }}'
+  - uid: oof-has-etcd-secret
+    name: &user-creds '{{ include "common.release" . }}-oof-has-etcd-secret'
+    type: basicAuth
+    externalSecret: '{{ tpl (default "" .Values.config.etcd.userCredentialsExternalSecret) . }}'
+    login: '{{ .Values.config.etcd.appUser }}'
+    password: '{{ .Values.config.etcd.appPassword }}'
+    passwordPolicy: required
+
+config:
+  etcd:
+    appUser: user
+    appPassword: pass
 
 ingress:
   enabled: false
index 4d04b6f..095162b 100755 (executable)
@@ -41,38 +41,8 @@ spec:
         command:
         - /app/ready.py
         args:
-        - --container-name
-        - music-springboot
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: {{ include "repositoryGenerator.image.readiness" . }}
-        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-
-      - name: {{ include "common.name" . }}-onboard-readiness
-        command:
-        - /app/ready.py
-        args:
-        - -j
-        - "{{ include "common.release" . }}-oof-has-onboard"
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: {{ include "repositoryGenerator.image.readiness" . }}
-        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-
-      - name: {{ include "common.name" . }}-health-readiness
-        command:
-        - /app/ready.py
-        args:
-        - -j
-        - "{{ include "common.release" . }}-oof-has-healthcheck"
+        - --job-name
+        - {{ include "common.release" . }}-{{ .Values.config.etcd.configJobNameOverride }}-job
         env:
         - name: NAMESPACE
           valueFrom:
@@ -128,7 +98,7 @@ spec:
             initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
             periodSeconds: {{ .Values.readiness.periodSeconds }}
           {{ end -}}
-          env:
+          env: {{ include "oof.etcd.env" . | nindent 10 }}
           volumeMounts:
           - mountPath: /etc/localtime
             name: localtime
index 0940a9d..915ffc0 100755 (executable)
@@ -14,7 +14,7 @@
 
 global:
   image:
-    optf_has: onap/optf-has:2.1.5
+    optf_has: onap/optf-has:2.2.0
 
 #################################################################
 # secrets metaconfig
@@ -24,6 +24,18 @@ secrets:
     externalSecret: '{{ tpl (default "" .Values.certSecret) . }}'
     type: generic
     filePaths: '{{ .Values.secretsFilePaths }}'
+  - uid: oof-has-etcd-secret
+    name: &user-creds '{{ include "common.release" . }}-oof-has-etcd-secret'
+    type: basicAuth
+    externalSecret: '{{ tpl (default "" .Values.config.etcd.userCredentialsExternalSecret) . }}'
+    login: '{{ .Values.config.etcd.appUser }}'
+    password: '{{ .Values.config.etcd.appPassword }}'
+    passwordPolicy: required
+
+config:
+  etcd:
+    appUser: user
+    appPassword: pass
 
 ingress:
   enabled: false
index 6079dcf..d664ca0 100755 (executable)
@@ -41,38 +41,8 @@ spec:
         command:
         - /app/ready.py
         args:
-        - --container-name
-        - music-springboot
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: {{ include "repositoryGenerator.image.readiness" . }}
-        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-
-      - name: {{ include "common.name" . }}-onboard-readiness
-        command:
-        - /app/ready.py
-        args:
-        - -j
-        - "{{ include "common.release" . }}-oof-has-onboard"
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: {{ include "repositoryGenerator.image.readiness" . }}
-        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-
-      - name: {{ include "common.name" . }}-health-readiness
-        command:
-        - /app/ready.py
-        args:
-        - -j
-        - "{{ include "common.release" . }}-oof-has-healthcheck"
+        - --job-name
+        - {{ include "common.release" . }}-{{ .Values.config.etcd.configJobNameOverride }}-job
         env:
         - name: NAMESPACE
           valueFrom:
@@ -128,7 +98,7 @@ spec:
               - /usr/local/bin/healthy.sh
             initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
             periodSeconds: {{ .Values.readiness.periodSeconds }}
-          env:
+          env: {{ include "oof.etcd.env" . | nindent 10 }}
           volumeMounts:
           - mountPath: /etc/localtime
             name: localtime
index 0940a9d..915ffc0 100755 (executable)
@@ -14,7 +14,7 @@
 
 global:
   image:
-    optf_has: onap/optf-has:2.1.5
+    optf_has: onap/optf-has:2.2.0
 
 #################################################################
 # secrets metaconfig
@@ -24,6 +24,18 @@ secrets:
     externalSecret: '{{ tpl (default "" .Values.certSecret) . }}'
     type: generic
     filePaths: '{{ .Values.secretsFilePaths }}'
+  - uid: oof-has-etcd-secret
+    name: &user-creds '{{ include "common.release" . }}-oof-has-etcd-secret'
+    type: basicAuth
+    externalSecret: '{{ tpl (default "" .Values.config.etcd.userCredentialsExternalSecret) . }}'
+    login: '{{ .Values.config.etcd.appUser }}'
+    password: '{{ .Values.config.etcd.appPassword }}'
+    passwordPolicy: required
+
+config:
+  etcd:
+    appUser: user
+    appPassword: pass
 
 ingress:
   enabled: false
index 851211a..7310aac 100755 (executable)
@@ -20,6 +20,15 @@ dependencies:
   - name: music
     version: ~8.x-0
     repository: '@local'
+    condition: music.enabled
+  - name: etcd
+    version: ~8.x-0
+    repository: '@local'
+    condition: etcd.enabled
+  - name: etcd-init
+    version: ~8.x-0
+    repository: '@local'
+    condition: etcd-init.enabled
   - name: oof-has-api
     version: ~8.x-0
     repository: 'file://components/oof-has-api'
index ded979c..18b60bb 100755 (executable)
@@ -424,6 +424,30 @@ server_url = http://{{.Values.config.msb.serviceName}}.{{ include "common.namesp
 #server_url_version = v0
 
 
+[db_options]
+
+# db_backend to use
+db_backend = {{.Values.config.dbBackend}}
+
+# Use music mock api
+music_mock = False
+
+
+[etcd_api]
+
+# host/ip address of etcd server
+host = {{.Values.config.etcd.serviceName}}.{{ include "common.namespace" . }}
+
+# port of etcd server
+port = {{.Values.config.etcd.port}}
+
+# username for etcd authentication
+username =
+
+# password for etcd authentication
+password =
+
+
 [music_api]
 
 #
diff --git a/kubernetes/oof/components/oof-has/resources/config/healthcheck.json b/kubernetes/oof/components/oof-has/resources/config/healthcheck.json
deleted file mode 100755 (executable)
index 833fa0f..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-{
-  "consistencyInfo": {
-    "type": "eventual"
-  },
-  "values": {
-    "id": "healthcheck",
-    "created": 1479482603641,
-    "message": "",
-    "name": "foo",
-    "recommend_max": 1,
-    "solution": "{\"healthcheck\": \" healthcheck\"}",
-    "status": "solved",
-    "template": "{\"healthcheck\": \"healthcheck\"}",
-    "timeout": 3600,
-    "translation": "{\"healthcheck\": \" healthcheck\"}",
-    "updated": 1484324150629
-  }
-}
diff --git a/kubernetes/oof/components/oof-has/resources/config/onboard.json b/kubernetes/oof/components/oof-has/resources/config/onboard.json
deleted file mode 100755 (executable)
index 2c3d69b..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  "appname": "conductor",
-  "userId": "conductor",
-  "isAAF": "false",
-  "password": "c0nduct0r"
-}
diff --git a/kubernetes/oof/components/oof-has/templates/job-healthcheck.yaml b/kubernetes/oof/components/oof-has/templates/job-healthcheck.yaml
deleted file mode 100755 (executable)
index 49406ba..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-{{/*
-# Copyright 2018 Intel Corporation, Inc
-#
-# 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.
-*/}}
-
-apiVersion: batch/v1
-kind: Job
-metadata:
-  name: {{ include "common.fullname" . }}-healthcheck
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ include "common.release" . }}
-    heritage: {{ .Release.Service }}
-spec:
-  replicas: {{ .Values.replicaCount }}
-  template:
-    metadata:
-      labels:
-        app: {{ include "common.name" . }}
-        release: {{ include "common.release" . }}
-    spec:
-      initContainers:
-      - image:  {{ include "repositoryGenerator.image.readiness" . }}
-        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-        name: {{ include "common.name" . }}-readiness
-        command:
-        - /app/ready.py
-        args:
-        - --container-name
-        - oof-has-api
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-      containers:
-      - image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.global.image.optf_has }}
-        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-        name: {{ include "common.name" . }}-healthcheck
-        command:
-          - "/bin/sh"
-          - "-c"
-          - |
-             echo "INSERT HEALTHCHECK PLAN";
-             sleep 15;
-             resp="FAILURE";
-             until [ $resp = "200" ]; do
-             resp=$(curl -k -s -o /dev/null --write-out %{http_code} -X POST https://{{.Values.config.music.serviceName}}.{{ include "common.namespace" . }}:{{.Values.config.music.port}}/MUSIC/rest/v2/keyspaces/conductor/tables/plans/rows?id=healthcheck \
-             -H "Content-Type: application/json" \
-             -H "ns: conductor" \
-             -H "Authorization: Basic Y29uZHVjdG9yOmMwbmR1Y3Qwcg==" \
-             --data @healthcheck.json);
-             echo $resp;
-             sleep 2;
-             done;
-        workingDir: /has
-        volumeMounts:
-          - mountPath: /etc/localtime
-            name: localtime
-            readOnly: true
-          - mountPath: /has/healthcheck.json
-            name: {{ .Values.global.commonConfigPrefix }}-config
-            subPath: healthcheck.json
-        resources:
-{{ include "common.resources" . | indent 10 }}
-      nodeSelector:
-        {{- if .Values.nodeSelector }}
-{{ toYaml .Values.nodeSelector | indent 8 }}
-        {{- end -}}
-        {{- if .Values.affinity }}
-      affinity:
-{{ toYaml .Values.affinity | indent 8 }}
-        {{- end }}
-      volumes:
-      - name: localtime
-        hostPath:
-          path: /etc/localtime
-      - name: {{ .Values.global.commonConfigPrefix }}-config
-        configMap:
-          name: {{ .Values.global.commonConfigPrefix }}-configmap
-          items:
-          - key: healthcheck.json
-            path: healthcheck.json
-      restartPolicy: OnFailure
-      imagePullSecrets:
-      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/oof/components/oof-has/templates/job-onboard.yaml b/kubernetes/oof/components/oof-has/templates/job-onboard.yaml
deleted file mode 100755 (executable)
index e63aeb3..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-{{/*
-# Copyright 2018 Intel Corporation, Inc
-#
-# 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.
-*/}}
-
-apiVersion: batch/v1
-kind: Job
-metadata:
-  name: {{ include "common.fullname" . }}-onboard
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ include "common.release" . }}
-    heritage: {{ .Release.Service }}
-spec:
-  replicas: {{ .Values.replicaCount }}
-  template:
-    metadata:
-      labels:
-        app: {{ include "common.name" . }}
-        release: {{ include "common.release" . }}
-    spec:
-      initContainers:
-      - image:  {{ include "repositoryGenerator.image.readiness" . }}
-        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-        name: {{ include "common.name" . }}-readiness
-        command:
-        - /app/ready.py
-        args:
-        - --container-name
-        - "music-springboot"
-        - --container-name
-        - "music-cassandra"
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-      - command:
-        - /app/ready.py
-        args:
-        - -j
-        - "{{ include "common.release" . }}-music-cassandra-config"
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: {{ include "repositoryGenerator.image.readiness" . }}
-        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-        name: {{ include "common.name" . }}-music-db-readiness
-      containers:
-      - image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.global.image.optf_has }}
-        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-        name: {{ include "common.name" . }}-onboard
-        command:
-          - "/bin/sh"
-          - "-c"
-          - |
-             echo "job-onboard"
-        workingDir: /has
-        volumeMounts:
-          - mountPath: /etc/localtime
-            name: localtime
-            readOnly: true
-          - mountPath: /has/onboard.json
-            name: {{ .Values.global.commonConfigPrefix }}-config
-            subPath: onboard.json
-        resources:
-{{ include "common.resources" . | indent 10 }}
-      nodeSelector:
-        {{- if .Values.nodeSelector }}
-{{ toYaml .Values.nodeSelector | indent 8 }}
-        {{- end -}}
-        {{- if .Values.affinity }}
-      affinity:
-{{ toYaml .Values.affinity | indent 8 }}
-        {{- end }}
-      volumes:
-      - name: localtime
-        hostPath:
-          path: /etc/localtime
-      - name: {{ .Values.global.commonConfigPrefix }}-config
-        configMap:
-          name: {{ .Values.global.commonConfigPrefix }}-configmap
-          items:
-          - key: onboard.json
-            path: onboard.json
-      restartPolicy: OnFailure
-      imagePullSecrets:
-      - name: "{{ include "common.namespace" . }}-docker-registry-key"
index 3615a3b..9a8b605 100755 (executable)
@@ -19,7 +19,7 @@
 global:
   commonConfigPrefix: onap-oof-has
   image:
-    optf_has: onap/optf-has:2.1.5
+    optf_has: onap/optf-has:2.2.0
   persistence:
     enabled: true
 
@@ -32,11 +32,24 @@ secrets:
     externalSecret: '{{ tpl (default "" .Values.certSecret) . }}'
     type: generic
     filePaths: '{{ .Values.secretsFilePaths }}'
+  - uid: oof-has-etcd-root-password
+    name: &root-password '{{ include "common.release" . }}-has-etcd-root-password'
+    type: password
+    password: '{{ .Values.config.etcd.rootPassword }}'
+    policy: generate
+  - uid: oof-has-etcd-secret
+    name: &user-creds '{{ include "common.release" . }}-oof-has-etcd-secret'
+    type: basicAuth
+    externalSecret: '{{ tpl (default "" .Values.config.etcd.userCredentialsExternalSecret) . }}'
+    login: '{{ .Values.config.etcd.appUser }}'
+    password: '{{ .Values.config.etcd.appPassword }}'
+    passwordPolicy: generate
 
 pullPolicy: Always
 nodePortPrefix: 302
 dataRootDir: /dockerdata-nfs
 config:
+  dbBackend: etcd
   aaf:
     serviceName: aaf-service
     port: 8100
@@ -58,6 +71,13 @@ config:
   cps:
     service: cps-tbdmt
     port: 8080
+  etcd:
+    serviceName: &etcd-service oof-has-etcd
+    port: 2379
+    appUser: conductor
+#    rootPassword:
+#    appPassword:
+#    userCredentialsExternalSecret:
 # Resource Limit flavor -By Default using small
 flavor: small
 # Segregation for Different environment (Small and Large)
@@ -79,19 +99,59 @@ resources:
   unlimited: {}
 
 #component overrides
-oof-has-api:
+oof-has-api: &has-config
   enabled: true
   certSecret: *oof-certs
-oof-has-controller:
-  enabled: true
-  certSecret: *oof-certs
-oof-has-data:
-  enabled: true
-  certSecret: *oof-certs
-oof-has-reservation:
-  enabled: true
-  certSecret: *oof-certs
-oof-has-solver:
+  config:
+    etcd:
+      userCredentialsExternalSecret: *user-creds
+      configJobNameOverride: &job-name oof-has-etcd-config
+oof-has-controller: *has-config
+oof-has-data: *has-config
+oof-has-reservation: *has-config
+oof-has-solver: *has-config
+music:
+  enabled: false
+
+#etcd subchart configurations
+etcd:
   enabled: true
-  certSecret: *oof-certs
+  replicaCount: 3
+  nameOverride: &etcd-container oof-has-etcd
+  service:
+    name: *etcd-service
+  persistence:
+    mountSubPath: oof/etcd/data
+    enabled: true
+  flavor: &etcd-flavor large
+  resources: &etcd-resources
+    small:
+      limits:
+        cpu: 100m
+        memory: 300Mi
+      requests:
+        cpu: 10m
+        memory: 75Mi
+    large:
+      limits:
+        cpu: 200m
+        memory: 1Gi
+      requests:
+        cpu: 50m
+        memory: 300Mi
+    unlimited: {}
 
+etcd-init:
+  enabled: true
+  nameOverride: *job-name
+  etcd:
+    serviceName: *etcd-service
+    port : 2379
+    containerName: *etcd-container
+  config:
+    userRootSecret: *root-password
+    userCredentialsExternalSecret: *user-creds
+    appRole: conductor
+    keyPrefix: conductor
+  flavor: *etcd-flavor
+  resources: *etcd-resources
diff --git a/kubernetes/oof/components/oof-templates/templates/_secret.tpl b/kubernetes/oof/components/oof-templates/templates/_secret.tpl
new file mode 100644 (file)
index 0000000..0b04f71
--- /dev/null
@@ -0,0 +1,6 @@
+{{- define "oof.etcd.env" -}}
+- name: OS_ETCD_API__USERNAME
+  {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "oof-has-etcd-secret" "key" "login") | indent 2 }}
+- name: OS_ETCD_API__PASSWORD
+  {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "oof-has-etcd-secret" "key" "password") | indent 2 }}
+{{- end -}}
\ No newline at end of file
index 9ba61a5..ae4ae81 100644 (file)
@@ -1,4 +1,4 @@
-{{ if .Values.global.CMPv2CertManagerIntegration }}
+{{ if .Values.global.cmpv2Enabled }}
 
 # ============LICENSE_START=======================================================
 # Copyright (c) 2020 Nokia
index 3a99373..8bcbc1f 100644 (file)
@@ -1,4 +1,4 @@
-{{ if .Values.global.CMPv2CertManagerIntegration }}
+{{ if .Values.global.cmpv2Enabled }}
 
 # ============LICENSE_START=======================================================
 # Copyright (c) 2020 Nokia
index add5622..f976a80 100644 (file)
@@ -1,4 +1,4 @@
-{{ if .Values.global.CMPv2CertManagerIntegration }}
+{{ if .Values.global.cmpv2Enabled }}
 
 # ============LICENSE_START=======================================================
 # Copyright (c) 2020 Nokia
index 152bd68..bc689cc 100644 (file)
@@ -1,4 +1,4 @@
-{{ if .Values.global.CMPv2CertManagerIntegration }}
+{{ if .Values.global.cmpv2Enabled }}
 
 # ============LICENSE_START=======================================================
 # Copyright (c) 2020 Nokia
index fd34b1e..55c4d0b 100644 (file)
@@ -21,7 +21,6 @@ global:
   busyboxRepository: registry.hub.docker.com
   busyboxImage: library/busybox:latest
   repository: "nexus3.onap.org:10001"
-  CMPv2CertManagerIntegration: false
 
 namespace: onap
 
index d21fb79..a30dabb 100644 (file)
@@ -28,11 +28,6 @@ global:
   cmpv2Enabled: true
   addTestingComponents: false
 
-  certService:
-    certServiceClient:
-      secret:
-        name: oom-cert-service-client-tls-secret
-
 #################################################################
 # Application configuration defaults.
 #################################################################
index b36d051..b684a0e 100644 (file)
@@ -24,3 +24,6 @@ dependencies:
   - name: repositoryGenerator
     version: ~8.x-0
     repository: '@local'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index 346534c..d731a56 100644 (file)
@@ -197,6 +197,7 @@ spec:
             requests:
               cpu: 3m
               memory: 20Mi
+      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
       volumes: {{ include "common.certInitializer.volumes" . | nindent 6 }}
       - name: {{ include "common.fullname" . }}-localtime
         hostPath:
index 3e5c58b..070583b 100644 (file)
@@ -161,3 +161,9 @@ resources:
       cpu: 200m
       memory: 2Gi
   unlimited: {}
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: sdc-be
+  roles:
+    - read
index 8febe6f..7d9ea04 100644 (file)
@@ -24,3 +24,6 @@ dependencies:
   - name: repositoryGenerator
     version: ~8.x-0
     repository: '@local'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index bb218bb..fb849b9 100644 (file)
@@ -96,6 +96,7 @@ spec:
           requests:
             cpu: 200m
             memory: 300Mi
+      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
       volumes:
       - name: {{ include "common.fullname" . }}-environments
         configMap:
index 2308f95..fed4769 100644 (file)
@@ -103,3 +103,9 @@ persistence:
 
 ingress:
   enabled: false
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: sdc-cs
+  roles:
+    - read
index b36d051..b684a0e 100644 (file)
@@ -24,3 +24,6 @@ dependencies:
   - name: repositoryGenerator
     version: ~8.x-0
     repository: '@local'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index 407d61c..dcb17d0 100644 (file)
@@ -189,6 +189,7 @@ spec:
             requests:
               cpu: 3m
               memory: 20Mi
+      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
       volumes: {{ include "common.certInitializer.volumes" . | nindent 8 }}
         - name: {{ include "common.fullname" . }}-localtime
           hostPath:
index 82afc4d..e9b2eee 100644 (file)
@@ -143,3 +143,9 @@ resources:
       cpu: 80m
       memory: 2Gi
   unlimited: {}
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: sdc-fe
+  roles:
+    - read
index b36d051..b684a0e 100644 (file)
@@ -24,3 +24,6 @@ dependencies:
   - name: repositoryGenerator
     version: ~8.x-0
     repository: '@local'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index 257f8b7..2bd53ff 100644 (file)
@@ -213,6 +213,7 @@ spec:
             requests:
               cpu: 3m
               memory: 20Mi
+      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
       volumes: {{ include "common.certInitializer.volumes" . | nindent 6 }}
       - name: {{ include "common.fullname" . }}-localtime
         hostPath:
index f09958e..aa7d535 100644 (file)
@@ -175,3 +175,9 @@ resources:
       cpu: 80m
       memory: 2Gi
   unlimited: {}
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: sdc-onboarding-be
+  roles:
+    - read
index b36d051..b684a0e 100644 (file)
@@ -24,3 +24,6 @@ dependencies:
   - name: repositoryGenerator
     version: ~8.x-0
     repository: '@local'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index de75092..343bda8 100644 (file)
@@ -144,6 +144,7 @@ spec:
             value: "{{ .Values.config.serverSSLTrustStoreType }}"
           volumeMounts: {{ include "common.certInitializer.volumeMount" . | nindent 10 }}
           resources: {{ include "common.resources" . | nindent 12 }}
+      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
       volumes: {{ include "common.certInitializer.volumes" . | nindent 8 }}
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
index d4414f1..8b61567 100644 (file)
@@ -160,3 +160,9 @@ resources:
       cpu: 80m
       memory: 2Gi
   unlimited: {}
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: sdc-wfd-be
+  roles:
+    - read
index b36d051..b684a0e 100644 (file)
@@ -24,3 +24,6 @@ dependencies:
   - name: repositoryGenerator
     version: ~8.x-0
     repository: '@local'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index b8073d7..d221c07 100644 (file)
@@ -178,6 +178,7 @@ spec:
             requests:
               cpu: 3m
               memory: 20Mi
+      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
       volumes: {{ include "common.certInitializer.volumes" . | nindent 8 }}
         - name: {{ include "common.fullname" . }}-localtime
           hostPath:
index 3cc9b95..d8ee5c8 100644 (file)
@@ -139,3 +139,9 @@ resources:
       cpu: 80m
       memory: 2Gi
   unlimited: {}
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: sdc-wfd-fe
+  roles:
+    - read
index 0c82f95..ac0e6ed 100644 (file)
@@ -21,9 +21,6 @@ dependencies:
   - name: certInitializer
     version: ~8.x-0
     repository: '@local'
-  - name: cmpv2Certificate
-    version: ~8.x-0
-    repository: '@local'
   - name: certManagerCertificate
     version: ~8.x-0
     repository: '@local'
index 57a16bd..303e504 100644 (file)
@@ -23,7 +23,6 @@ topic=unauthenticated.SEC_FAULT_OUTPUT
 contenttype=application/json
 group=myG
 id=C1
-timeout=50000
 limit=10000
 
 [pnfRegistration]
@@ -41,5 +40,4 @@ topic=unauthenticated.VES_PNFREG_OUTPUT
 contenttype=application/json
 group=myG
 id=C1
-timeout=50000
 limit=10000
index c4eca61..acf9012 100644 (file)
@@ -14,6 +14,6 @@
 # limitations under the License.
 */}}
 
-{{ if and .Values.global.cmpv2Enabled .Values.global.CMPv2CertManagerIntegration }}
+{{ if .Values.global.cmpv2Enabled }}
 {{ include "certManagerCertificate.certificate" . }}
 {{ end }}
index 8a7259b..f0ee8a9 100644 (file)
@@ -155,7 +155,6 @@ spec:
         name: {{ include "common.name" . }}-readiness
         {{ end -}}
 {{ include "common.certInitializer.initContainer" . | indent 6 }}
-{{ include "common.certServiceClient.initContainer" . | indent 6 }}
       - name: {{ include "common.name" . }}-chown
         image: {{ include "repositoryGenerator.image.busybox" . }}
         command:
@@ -178,7 +177,7 @@ spec:
         - name: {{ include "common.name" . }}
           image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-          {{- if and .Values.global.cmpv2Enabled .Values.global.CMPv2CertManagerIntegration }}
+          {{- if .Values.global.cmpv2Enabled }}
           {{- $linkCommand := include "common.certManager.linkVolumeMounts" . }}
           lifecycle:
             postStart:
@@ -312,8 +311,7 @@ spec:
             value: "{{ .Values.config.sdnr.netconfCallHome.enabled | default "false" }}"
           volumeMounts:
 {{ include "common.certInitializer.volumeMount" . | indent 10 }}
-{{ include "common.certServiceClient.volumeMounts" . | indent 10 }}
-{{- if and .Values.global.cmpv2Enabled .Values.global.CMPv2CertManagerIntegration }}
+{{- if .Values.global.cmpv2Enabled }}
 {{ include "common.certManager.volumeMounts" . | indent 10 }}
 {{- end }}
           - mountPath: /etc/localtime
@@ -437,8 +435,7 @@ spec:
           emptyDir: {}
   {{ else }}
 {{ include "common.certInitializer.volumes" . | nindent 8 }}
-{{ include "common.certServiceClient.volumes" . | nindent 8 }}
-{{- if and .Values.global.cmpv2Enabled .Values.global.CMPv2CertManagerIntegration }}
+{{- if .Values.global.cmpv2Enabled }}
 {{ include "common.certManager.volumes" . | nindent 8 }}
 {{- end }}
   volumeClaimTemplates:
index b22b675..6ab96ad 100644 (file)
@@ -30,8 +30,6 @@ global:
     service: mariadb-galera
     internalPort: 3306
     nameOverride: mariadb-galera
-  # Enabling CMPv2 with CertManager
-  CMPv2CertManagerIntegration: false
 
 #################################################################
 # Secrets metaconfig
@@ -461,6 +459,8 @@ dgbuilder:
     dbServiceName: mariadb-galera
     # This should be revisited and changed to plain text
     dgUserPassword: cc03e747a6afbbcbf8be7668acfebee5
+  serviceAccount:
+    nameOverride: sdnc-dgbuilder
   mariadb-galera:
   service:
     name: sdnc-dgbuilder
index 730d75a..7245266 100755 (executable)
@@ -25,3 +25,6 @@ dependencies:
   - name: soHelpers
     version: ~8.x-0
     repository: 'file://../soHelpers'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index 9de1b50..4b46721 100644 (file)
@@ -118,6 +118,7 @@ spec:
         - containerPort: {{ index .Values.containerPort }}
           name: {{ .Values.service.portName }}
           protocol: TCP
+      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
       volumes: {{ include "so.certificate.volumes" . | nindent 6 }}
       - name: logs
         emptyDir: {}
index d59189b..6cba922 100644 (file)
@@ -159,3 +159,9 @@ ingress:
 nodeSelector: {}
 tolerations: []
 affinity: {}
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: so-admin-cockpit
+  roles:
+    - read
index f8b1d74..f8c29f8 100755 (executable)
@@ -24,3 +24,7 @@ dependencies:
   - name: soHelpers
     version: ~8.x-0
     repository: 'file://../soHelpers'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
+
index 142ae72..d658425 100644 (file)
@@ -81,6 +81,7 @@ spec:
           mountPath: /app/config
           readOnly: true
 {{ include "so.helpers.livenessProbe" .| indent 8 }}
+      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
       volumes: {{ include "so.certificate.volumes" . | nindent 6 }}
       - name: logs
         emptyDir: {}
index 310cb9f..724fcbd 100644 (file)
@@ -158,3 +158,9 @@ appc:
     key: VIlbtVl6YLhNUrtU
     secret: 64AG2hF4pYeG2pq7CT6XwUOT
     service: ueb
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: so-appc-orchestrator
+  roles:
+    - read
index ff6f19d..1ea0239 100755 (executable)
@@ -27,3 +27,6 @@ dependencies:
   - name: soHelpers
     version: ~8.x-0
     repository: 'file://../soHelpers'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index 6e117cd..2609e99 100755 (executable)
@@ -103,6 +103,7 @@ spec:
           mountPath: /var/log/onap/so
         - name: {{ include "common.fullname" . }}-logs
           mountPath: /var/log/onap
+      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
       volumes: {{ include "so.certificate.volumes" . | nindent 6 }}
       - name: logs
         emptyDir: {}
index 3e59cbf..09ad911 100755 (executable)
@@ -165,3 +165,9 @@ ingress:
 nodeSelector: {}
 tolerations: []
 affinity: {}
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: so-bpmn-infra
+  roles:
+    - read
index ff6f19d..1ea0239 100755 (executable)
@@ -27,3 +27,6 @@ dependencies:
   - name: soHelpers
     version: ~8.x-0
     repository: 'file://../soHelpers'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index f756448..30e5551 100755 (executable)
@@ -87,6 +87,7 @@ spec:
         - containerPort: {{ index .Values.containerPort }}
           name: {{ .Values.service.portName }}
           protocol: TCP
+      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
       volumes: {{ include "so.certificate.volumes" . | nindent 6 }}
       - name: logs
         emptyDir: {}
index 6308e9f..f3d6bdb 100755 (executable)
@@ -148,3 +148,9 @@ config:
 nodeSelector: {}
 tolerations: []
 affinity: {}
+
+serviceAccount:
+  nameOverride: so-catalog-db-adapter
+  roles:
+    - read
+
index ce29494..6f2b29e 100755 (executable)
@@ -28,3 +28,6 @@ dependencies:
   - name: soHelpers
     version: ~8.x-0
     repository: 'file://../soHelpers'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index 0d80b2a..340571a 100755 (executable)
@@ -104,6 +104,7 @@ spec:
             timeoutSeconds: {{ index .Values.livenessProbe.timeoutSeconds}}
             successThreshold: {{ index .Values.livenessProbe.successThreshold}}
             failureThreshold: {{ index .Values.livenessProbe.failureThreshold}}
+      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
       volumes: {{ include "so.certificate.volumes" . | nindent 8 }}
         - name: logs
           emptyDir: {}
index 2d6d57b..f3d53c9 100755 (executable)
@@ -165,3 +165,8 @@ nodeSelector: {}
 tolerations: []
 affinity: {}
 
+#Pods Service Account
+serviceAccount:
+  nameOverride: so-cnf-adapter
+  roles:
+    - read
index f8b1d74..421fe7e 100755 (executable)
@@ -24,3 +24,6 @@ dependencies:
   - name: soHelpers
     version: ~8.x-0
     repository: 'file://../soHelpers'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index c33dcb7..6465af4 100644 (file)
@@ -83,6 +83,7 @@ spec:
             successThreshold: {{ index .Values.livenessProbe.successThreshold}}
             failureThreshold: {{ index .Values.livenessProbe.failureThreshold}}
           ports: {{ include "common.containerPorts" . | nindent 12  }}
+      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
       volumes: {{ include "so.certificate.volumes" . | nindent 8 }}
         - name: logs
           emptyDir: {}
index 363ce40..57bf2f3 100644 (file)
@@ -161,3 +161,9 @@ nodeSelector: {}
 tolerations: []
 
 affinity: {}
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: so-etsi-nfvo-ns-lcm
+  roles:
+    - read
index f8b1d74..421fe7e 100755 (executable)
@@ -24,3 +24,6 @@ dependencies:
   - name: soHelpers
     version: ~8.x-0
     repository: 'file://../soHelpers'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index 29ebd97..3272bfd 100755 (executable)
@@ -78,6 +78,7 @@ spec:
         - containerPort: {{ .Values.containerPort }}
           name: {{ .Values.service.portName }}
           protocol: TCP
+      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
       volumes: {{ include "so.certificate.volumes" . | nindent 6 }}
       - name: logs
         emptyDir: {}
index b8a7776..42554bb 100755 (executable)
@@ -109,3 +109,9 @@ ingress:
 nodeSelector: {}
 tolerations: []
 affinity: {}
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: so-etsi-sol003-adapter
+  roles:
+    - read
index ff6f19d..1ea0239 100755 (executable)
@@ -27,3 +27,6 @@ dependencies:
   - name: soHelpers
     version: ~8.x-0
     repository: 'file://../soHelpers'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index c769961..4f8f4d9 100755 (executable)
@@ -96,6 +96,7 @@ spec:
         - containerPort: {{ .Values.containerPort }}
           name: {{ .Values.service.portName }}
           protocol: TCP
+      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
       volumes: {{ include "so.certificate.volumes" . | nindent 6 }}
       - name: logs
         emptyDir: {}
index d43bffd..31b9255 100755 (executable)
@@ -134,3 +134,9 @@ ingress:
 nodeSelector: {}
 tolerations: []
 affinity: {}
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: so-etsi-sol005-adapter
+  roles:
+    - read
index a9e9697..b182a70 100755 (executable)
@@ -24,3 +24,6 @@ dependencies:
   - name: readinessCheck
     version: ~8.x-0
     repository: '@local'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index 0eeba7b..178dff0 100644 (file)
@@ -60,6 +60,7 @@ spec:
           readOnly: true
         - name: backup-storage
           mountPath: /var/data/mariadb
+      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
       volumes:
       - name: localtime
         hostPath:
index 2dfd5b8..58e34b7 100755 (executable)
@@ -181,3 +181,9 @@ persistence:
 
   mountPath: /dockerdata-nfs
   mountSubPath: so/migration
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: so-mariadb
+  roles:
+    - read
index ff6f19d..1ea0239 100755 (executable)
@@ -27,3 +27,6 @@ dependencies:
   - name: soHelpers
     version: ~8.x-0
     repository: 'file://../soHelpers'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index dde03a4..f41352e 100755 (executable)
@@ -93,6 +93,7 @@ spec:
             timeoutSeconds: {{ index .Values.livenessProbe.timeoutSeconds}}
             successThreshold: {{ index .Values.livenessProbe.successThreshold}}
             failureThreshold: {{ index .Values.livenessProbe.failureThreshold}}
+      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
       volumes: {{ include "so.certificate.volumes" . | nindent 8 }}
         - name: logs
           emptyDir: {}
index c9f13b9..583f9ad 100755 (executable)
@@ -155,3 +155,9 @@ ingress:
 nodeSelector: {}
 tolerations: []
 affinity: {}
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: so-nssmf-adapter
+  roles:
+    - read
index 12f93f9..4d6d760 100644 (file)
@@ -25,3 +25,6 @@ dependencies:
   - name: soHelpers
     version: ~8.x-0
     repository: 'file://../soHelpers'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index 62ebfff..5e8869c 100755 (executable)
@@ -83,6 +83,7 @@ spec:
           mountPath: /var/log/onap/so
         - name: {{ include "common.fullname" . }}-logs
           mountPath: /var/log/onap
+      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
       volumes: {{ include "so.certificate.volumes" . | nindent 6 }}
       - name: logs
         emptyDir: {}
index 5de0866..240f05f 100755 (executable)
@@ -139,3 +139,9 @@ ingress:
 nodeSelector: {}
 tolerations: []
 affinity: {}
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: so-oof-adapter
+  roles:
+    - read
index ff6f19d..1ea0239 100755 (executable)
@@ -27,3 +27,6 @@ dependencies:
   - name: soHelpers
     version: ~8.x-0
     repository: 'file://../soHelpers'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index 6e117cd..2609e99 100755 (executable)
@@ -103,6 +103,7 @@ spec:
           mountPath: /var/log/onap/so
         - name: {{ include "common.fullname" . }}-logs
           mountPath: /var/log/onap
+      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
       volumes: {{ include "so.certificate.volumes" . | nindent 6 }}
       - name: logs
         emptyDir: {}
index 29fc50b..ff0277b 100755 (executable)
@@ -152,3 +152,9 @@ config:
 nodeSelector: {}
 tolerations: []
 affinity: {}
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: so-openstack-adapter
+  roles:
+    - read
index ff6f19d..1ea0239 100755 (executable)
@@ -27,3 +27,6 @@ dependencies:
   - name: soHelpers
     version: ~8.x-0
     repository: 'file://../soHelpers'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index f756448..30e5551 100755 (executable)
@@ -87,6 +87,7 @@ spec:
         - containerPort: {{ index .Values.containerPort }}
           name: {{ .Values.service.portName }}
           protocol: TCP
+      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
       volumes: {{ include "so.certificate.volumes" . | nindent 6 }}
       - name: logs
         emptyDir: {}
index c117a74..61ec26d 100755 (executable)
@@ -133,3 +133,9 @@ ingress:
 nodeSelector: {}
 tolerations: []
 affinity: {}
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: so-request-db-adapter
+  roles:
+    - read
index ff6f19d..1ea0239 100755 (executable)
@@ -27,3 +27,6 @@ dependencies:
   - name: soHelpers
     version: ~8.x-0
     repository: 'file://../soHelpers'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index 6e117cd..2609e99 100755 (executable)
@@ -103,6 +103,7 @@ spec:
           mountPath: /var/log/onap/so
         - name: {{ include "common.fullname" . }}-logs
           mountPath: /var/log/onap
+      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
       volumes: {{ include "so.certificate.volumes" . | nindent 6 }}
       - name: logs
         emptyDir: {}
index b1d7173..4b6ecee 100755 (executable)
@@ -141,3 +141,9 @@ ingress:
 nodeSelector: {}
 tolerations: []
 affinity: {}
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: so-sdc-controller
+  roles:
+    - read
index f8b1d74..421fe7e 100755 (executable)
@@ -24,3 +24,6 @@ dependencies:
   - name: soHelpers
     version: ~8.x-0
     repository: 'file://../soHelpers'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index 7b32cb6..703186e 100755 (executable)
@@ -107,6 +107,7 @@ spec:
           mountPath: /var/log/onap/so
         - name: {{ include "common.fullname" . }}-logs
           mountPath: /var/log/onap
+      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
       volumes: {{ include "so.certificate.volumes" . | nindent 6 }}
       - name: logs
         emptyDir: {}
index 9a67ef8..8f3565e 100755 (executable)
@@ -162,3 +162,9 @@ ingress:
 nodeSelector: {}
 tolerations: []
 affinity: {}
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: so-sdnc-adapter
+  roles:
+    - read
index ff6f19d..1ea0239 100755 (executable)
@@ -27,3 +27,6 @@ dependencies:
   - name: soHelpers
     version: ~8.x-0
     repository: 'file://../soHelpers'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index ac4f574..9a6b79c 100755 (executable)
@@ -48,6 +48,7 @@ spec:
             successThreshold: {{ .Values.livenessProbe.successThreshold}}
             failureThreshold: {{ .Values.livenessProbe.failureThreshold}}
           ports: {{- include "common.containerPorts" . | nindent 10 }}
+      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
       volumes: {{ include "so.certificate.volumes" . | nindent 8 }}
         - name: logs
           emptyDir: {}
index 83ec78d..8e8236c 100755 (executable)
@@ -84,3 +84,9 @@ livenessProbe:
 nodeSelector: {}
 tolerations: []
 affinity: {}
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: so-ve-vnfm-adapter
+  roles:
+    - read
index 06fc6e9..f2fc70c 100755 (executable)
@@ -91,3 +91,6 @@ dependencies:
     version: ~8.x-0
     repository: 'file://components/so-etsi-sol005-adapter'
     condition: so-etsi-sol005-adapter.enabled
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index 6e117cd..2609e99 100755 (executable)
@@ -103,6 +103,7 @@ spec:
           mountPath: /var/log/onap/so
         - name: {{ include "common.fullname" . }}-logs
           mountPath: /var/log/onap
+      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
       volumes: {{ include "so.certificate.volumes" . | nindent 6 }}
       - name: logs
         emptyDir: {}
index ba98c34..f0bb7d1 100755 (executable)
@@ -378,3 +378,9 @@ so-etsi-sol005-adapter:
 
 so-etsi-sol003-adapter:
   enabled: true
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: so
+  roles:
+    - read