# Copyright © 2017 Amdocs, Bell Canada
#
# 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: ~6.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: mariadb-galera
    version: ~6.x-0
    repository: '@local'
    condition: global.mariadbGalera.localCluster
  - name: soHelpers
    version: ~6.x-0
    repository: 'file://components/soHelpers'
  - name: so-appc-orchestrator
    version: ~6.x-0
    repository: 'file://components/so-appc-orchestrator'
    condition: so-appc-orchestrator.enabled
  - name: so-bpmn-infra
    version: ~6.x-0
    repository: 'file://components/so-bpmn-infra'
  - name: so-catalog-db-adapter
    version: ~6.x-0
    repository: 'file://components/so-catalog-db-adapter'
    condition: so-catalog-db-adapter.enabled
  - name: so-db-secrets
    version: ~6.x-0
    repository: 'file://components/so-db-secrets'
    condition: so-etsi-nfvo-ns-lcm.enabled
  - name: so-etsi-nfvo-ns-lcm
    version: ~6.x-0
    repository: 'file://components/so-etsi-nfvo-ns-lcm'
    condition: so-etsi-nfvo-ns-lcm.enabled
  - name: so-mariadb
    version: ~6.x-0
    repository: 'file://components/so-mariadb'
  - name: so-monitoring
    version: ~6.x-0
    repository: 'file://components/so-monitoring'
    condition: so-monitoring.enabled
  - name: so-nssmf-adapter
    version: ~6.x-0
    repository: 'file://components/so-nssmf-adapter'
    condition: so-nssmf-adapter.enabled
  - name: so-oof-adapter
    version: ~6.x-0
    repository: 'file://components/so-oof-adapter'
    condition: so-oof-adapter.enabled
  - name: so-openstack-adapter
    version: ~6.x-0
    repository: 'file://components/so-openstack-adapter'
    condition: so-openstack-adapter.enabled
  - name: so-request-db-adapter
    version: ~6.x-0
    repository: 'file://components/so-request-db-adapter'
  - name: so-sdc-controller
    version: ~6.x-0
    repository: 'file://components/so-sdc-controller'
  - name: so-sdnc-adapter
    version: ~6.x-0
    repository: 'file://components/so-sdnc-adapter'
    condition: so-sdnc-adapter.enabled
  - name: so-secrets
    version: ~6.x-0
    repository: 'file://components/so-secrets'
  - name: so-ve-vnfm-adapter
    version: ~6.x-0
    repository: 'file://components/so-ve-vnfm-adapter'
    condition: so-ve-vnfm-adapter.enabled
  - name: so-vfc-adapter
    version: ~6.x-0
    repository: 'file://components/so-vfc-adapter'
    condition: so-vfc-adapter.enabled
  - name: so-vnfm-adapter
    version: ~6.x-0
    repository: 'file://components/so-vnfm-adapter'
    condition: so-vnfm-adapter.enabled
