# Copyright © 2017 Amdocs, Bell Canada
# Modifications Copyright © 2021 Orange
#
# 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.
dependencies:
  - name: common
    version: ~9.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: certInitializer
    version: ~9.x-0
    repository: '@local'
  - name: readinessCheck
    version: ~9.x-0
    repository: '@local'
  - name: mariadb-galera
    version: ~9.x-0
    repository: '@local'
    condition: global.mariadbGalera.localCluster
  - name: repositoryGenerator
    version: ~9.x-0
    repository: '@local'
  - name: soHelpers
    version: ~9.x-0
    repository: 'file://components/soHelpers'
  - name: so-admin-cockpit
    version: ~9.x-0
    repository: 'file://components/so-admin-cockpit'
    condition: so-admin-cockpit.enabled
  - name: so-appc-orchestrator
    version: ~9.x-0
    repository: 'file://components/so-appc-orchestrator'
    condition: so-appc-orchestrator.enabled
  - name: so-bpmn-infra
    version: ~9.x-0
    repository: 'file://components/so-bpmn-infra'
  - name: so-catalog-db-adapter
    version: ~9.x-0
    repository: 'file://components/so-catalog-db-adapter'
    condition: so-catalog-db-adapter.enabled
  - name: so-cnf-adapter
    version: ~9.x-0
    repository: "file://components/so-cnf-adapter"
    condition: so-cnf-adapter.enabled
  - name: so-etsi-nfvo-ns-lcm
    version: ~9.x-0
    repository: 'file://components/so-etsi-nfvo-ns-lcm'
    condition: so-etsi-nfvo-ns-lcm.enabled
  - name: so-etsi-sol003-adapter
    version: ~9.x-0
    repository: 'file://components/so-etsi-sol003-adapter'
    condition: so-etsi-sol003-adapter.enabled
  - name: so-mariadb
    version: ~9.x-0
    repository: 'file://components/so-mariadb'
  - name: so-nssmf-adapter
    version: ~9.x-0
    repository: 'file://components/so-nssmf-adapter'
    condition: so-nssmf-adapter.enabled
  - name: so-oof-adapter
    version: ~9.x-0
    repository: 'file://components/so-oof-adapter'
    condition: so-oof-adapter.enabled
  - name: so-openstack-adapter
    version: ~9.x-0
    repository: 'file://components/so-openstack-adapter'
    condition: so-openstack-adapter.enabled
  - name: so-request-db-adapter
    version: ~9.x-0
    repository: 'file://components/so-request-db-adapter'
  - name: so-sdc-controller
    version: ~9.x-0
    repository: 'file://components/so-sdc-controller'
  - name: so-sdnc-adapter
    version: ~9.x-0
    repository: 'file://components/so-sdnc-adapter'
    condition: so-sdnc-adapter.enabled
  - name: so-ve-vnfm-adapter
    version: ~9.x-0
    repository: 'file://components/so-ve-vnfm-adapter'
    condition: so-ve-vnfm-adapter.enabled
  - name: so-etsi-sol005-adapter
    version: ~9.x-0
    repository: 'file://components/so-etsi-sol005-adapter'
    condition: so-etsi-sol005-adapter.enabled
  - name: serviceAccount
    version: ~9.x-0
    repository: '@local'
