# Copyright (C) 2018  AT&T Intellectual Property.  All rights reserved.
# Modifications Copyright © 2021 Orange
# Modifications Copyright © 2021 Nordix Foundation
#
# 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: Name Generation Micro Service
name: network-name-gen
version: 13.0.0

dependencies:
  - name: common
    version: ~13.x-0
    repository: 'file://../common'
  - name: repositoryGenerator
    version: ~13.x-0
    repository: 'file://../repositoryGenerator'
  - name: mariadb-galera
    version: ~13.x-0
    repository: 'file://../mariadb-galera'
    condition: global.mariadbGalera.localCluster
  - name: mariadb-init
    version: ~13.x-0
    repository: 'file://../mariadb-init'
    condition: global.mariadbGalera.globalCluster