# 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.

# Referencing a named repo called 'local'.
# Can add this repo by running commands like:
# > helm serve
# > helm repo add local http://127.0.0.1:8879
dependencies:
  - name: aaf
    version: ~1.1.0
    repository: '@local'
    condition: aaf.enabled
  - name: aai
    version: ~0.1.0
    repository: '@local'
    condition: aai.enabled
  - name: appc
    version: ~2.0.0
    repository: '@local'
    condition: appc.enabled
  - name: clamp
    version: ~2.0.0
    repository: '@local'
    condition: clamp.enabled
  - name: cli
    version: ~0.1.0
    repository: '@local'
    condition: cli.enabled
  - name: common
    version: ~2.0.0
    repository: '@local'
  - name: consul
    version: ~1.1.0
    repository: '@local'
    condition: consul.enabled
  - name: dcaegen2
    version: ~1.1.0
    repository: '@local'
    condition: dcaegen2.enabled
  - name: esr
    version: ~1.0.0
    repository: '@local'
    condition: esr.enabled
  - name: log
    version: ~0.1.0
    repository: '@local'
    condition: log.enabled
  - name: message-router
    version: ~0.1.0
    repository: '@local'
    condition: message-router.enabled
  - name: mock
    version: ~0.1.0
    repository: '@local'
    condition: mock.enabled
  - name: msb
    version: ~0.1.0
    repository: '@local'
    condition: msb.enabled
  - name: multicloud
    version: ~1.1.0
    repository: '@local'
    condition: multicloud.enabled
  - name: policy
    version: ~0.1.0
    repository: '@local'
    condition: policy.enabled
  - name: portal
    version: ~0.1.0
    repository: '@local'
    condition: portal.enabled
  - name: robot
    version: ~2.0.0
    repository: '@local'
    condition: robot.enabled
  - name: sdc
    version: ~0.1.0
    repository: '@local'
    condition: sdc.enabled
  - name: sdnc
    version: ~0.1.0
    repository: '@local'
    condition: sdnc.enabled
  - name: so
    version: ~2.0.0
    repository: '@local'
    condition: so.enabled
  - name: uui
    version: ~1.1.0
    repository: '@local'
    condition: uui.enabled
  - name: vfc
    version: ~0.1.0
    repository: '@local'
    condition: vfc.enabled
  - name: vid
    version: ~0.1.0
    repository: '@local'
    condition: vid.enabled
  - name: vnfsdk
    version: ~1.1.0
    repository: '@local'
    condition: vnfsdk.enabled
