# Copyright © 2017 Amdocs, Bell Canada
# Modifications Copyright © 2021 Orange
# Modifications Copyright © 2023 Nordix Foundation
# Modifications Copyright © 2024 Deutsche Telekom Intellectual Property.
#
# 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: v2
description: ONAP Service Orchestrator
name: so
version: 13.0.2

dependencies:
  - name: common
    version: ~13.x-0
    # local reference to common chart, as it is
    # a part of this chart's package and will not
    # be published independently to a repo (at this point)
    repository: '@local'
  - name: readinessCheck
    version: ~13.x-0
    repository: '@local'
  - name: mariadb-galera
    version: ~13.x-0
    repository: '@local'
    condition: global.mariadbGalera.localCluster
  - name: repositoryGenerator
    version: ~13.x-0
    repository: '@local'
  - name: soHelpers
    version: ~13.x-0
    repository: 'file://components/soHelpers'
  - name: so-admin-cockpit
    version: ~13.x-0
    repository: 'file://components/so-admin-cockpit'
    condition: so-admin-cockpit.enabled
  - name: so-bpmn-infra
    version: ~13.x-0
    repository: 'file://components/so-bpmn-infra'
  - name: so-catalog-db-adapter
    version: ~13.x-0
    repository: 'file://components/so-catalog-db-adapter'
    condition: so-catalog-db-adapter.enabled
  - name: so-cnf-adapter
    version: ~13.x-0
    repository: "file://components/so-cnf-adapter"
    condition: so-cnf-adapter.enabled
  - name: so-cnfm-lcm
    version: ~13.x-0
    repository: 'file://components/so-cnfm-lcm'
    condition: so-cnfm-lcm.enabled
  - name: so-etsi-nfvo-ns-lcm
    version: ~13.x-0
    repository: 'file://components/so-etsi-nfvo-ns-lcm'
    condition: so-etsi-nfvo-ns-lcm.enabled
  - name: so-etsi-sol003-adapter
    version: ~13.x-0
    repository: 'file://components/so-etsi-sol003-adapter'
    condition: so-etsi-sol003-adapter.enabled
  - name: so-mariadb
    version: ~13.x-0
    repository: 'file://components/so-mariadb'
  - name: so-nssmf-adapter
    version: ~13.x-0
    repository: 'file://components/so-nssmf-adapter'
    condition: so-nssmf-adapter.enabled
  - name: so-oof-adapter
    version: ~13.x-0
    repository: 'file://components/so-oof-adapter'
    condition: so-oof-adapter.enabled
  - name: so-openstack-adapter
    version: ~13.x-0
    repository: 'file://components/so-openstack-adapter'
    condition: so-openstack-adapter.enabled
  - name: so-request-db-adapter
    version: ~13.x-0
    repository: 'file://components/so-request-db-adapter'
  - name: so-sdc-controller
    version: ~13.x-0
    repository: 'file://components/so-sdc-controller'
  - name: so-sdnc-adapter
    version: ~13.x-0
    repository: 'file://components/so-sdnc-adapter'
    condition: so-sdnc-adapter.enabled
  - name: so-ve-vnfm-adapter
    version: ~13.x-0
    repository: 'file://components/so-ve-vnfm-adapter'
    condition: so-ve-vnfm-adapter.enabled
  - name: so-etsi-sol005-adapter
    version: ~13.x-0
    repository: 'file://components/so-etsi-sol005-adapter'
    condition: so-etsi-sol005-adapter.enabled
  - name: serviceAccount
    version: ~13.x-0
    repository: '@local'
