# Copyright (c) 2021 J. F. Lucas.  All rights reserved.
# Copyright (c) 2021 AT&T. All rights reserved.
# Modifications Copyright (C) 2021 Nordix Foundation.
# 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
    repository: '@local'
  - name: dcae-bbs-eventprocessor-ms
    version: ~9.x-0
    repository: '@local'
    condition: dcae-bbs-eventprocessor-ms.enabled
  - name: dcae-datafile-collector
    version: ~9.x-0
    repository: '@local'
    condition: dcae-datafile-collector.enabled
  - name: dcae-datalake-admin-ui
    version: ~9.x-0
    repository: '@local'
    condition: dcae-datalake-admin-ui.enabled
  - name: dcae-datalake-des
    version: ~9.x-0
    repository: '@local'
    condition: dcae-datalake-des.enabled
  - name: dcae-datalake-feeder
    version: ~9.x-0
    repository: '@local'
    condition: dcae-datalake-feeder.enabled
  - name: dcae-heartbeat
    version: ~9.x-0
    repository: '@local'
    condition: dcae-heartbeat.enabled
  - name: dcae-hv-ves-collector
    version: ~9.x-0
    repository: '@local'
    condition: dcae-hv-ves-collector.enabled
  - name: dcae-kpi-ms
    version: ~9.x-0
    repository: '@local'
    condition: dcae-kpi-ms.enabled
  - name: dcae-ms-healthcheck
    version: ~9.x-0
    repository: '@local'
    condition: dcae-ms-healthcheck.enabled
  - name: dcae-pm-mapper
    version: ~9.x-0
    repository: '@local'
    condition: dcae-pm-mapper.enabled
  - name: dcae-pmsh
    version: ~9.x-0
    repository: '@local'
    condition: dcae-pmsh.enabled
  - name: dcae-prh
    version: ~9.x-0
    repository: '@local'
    condition: dcae-prh.enabled
  - name: dcae-restconf-collector
    version: ~9.x-0
    repository: '@local'
    condition: dcae-restconf-collector.enabled
  - name: dcae-slice-analysis-ms
    version: ~9.x-0
    repository: '@local'
    condition: dcae-slice-analysis-ms.enabled
  - name: dcae-snmptrap-collector
    version: ~9.x-0
    repository: '@local'
    condition: dcae-snmptrap-collector.enabled
  - name: dcae-son-handler
    version: ~9.x-0
    repository: '@local'
    condition: dcae-son-handler.enabled
  - name: dcae-tcagen2
    version: ~9.x-0
    repository: '@local'
    condition: dcae-tcagen2.enabled
  - name: dcae-ves-collector
    version: ~9.x-0
    repository: '@local'
    condition: dcae-ves-collector.enabled
  - name: dcae-ves-mapper
    version: ~9.x-0
    repository: '@local'
    condition: dcae-ves-mapper.enabled
