#
# 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.
#
tosca_definitions_version: tosca_simple_yaml_1_1
imports:
- data.yml
group_types:
  tosca.groups.Root:
    description: The TOSCA Group Type all other TOSCA Group Types derive from
    interfaces:
      Standard:
        type: tosca.interfaces.node.lifecycle.Standard
  org.openecomp.groups.heat.HeatStack:
    derived_from: tosca.groups.Root
    description: Grouped all heat resources which are in the same heat stack
    properties:
      heat_file:
        type: string
        description: Heat file which associate to this group/heat stack
        required: true
        status: SUPPORTED
      description:
        type: string
        description: group description
        required: true
        status: SUPPORTED
  org.openecomp.groups.VfModule:
    derived_from: tosca.groups.Root
    description: Grouped all heat resources which are in the same VF Module
    properties:
      isBase:
        type: boolean
        description: Whether this module should be deployed before other modules
        required: true
        default: false
        status: SUPPORTED
      vf_module_label:
        type: string
        required: true
        description: |
          Alternate textual key used to reference this VF-Module model.  Must be unique within the VNF model
      vf_module_description:
        type: string
        required: true
        description: |
          Description of the VF-modules contents and purpose   (e.g. "Front-End" or "Database Cluster")
      min_vf_module_instances:
        type: integer
        required: true
        description: The minimum instances of this VF-Module
      max_vf_module_instances:
        type: integer
        required: false
        description: The maximum instances of this VF-Module
      initial_count:
        type: integer
        required: false
        description: |
          The initial count of instances of the VF-Module. The value must be in the  range between min_vfmodule_instances and max_vfmodule_instances. If no value provided the initial count is the min_vfmodule_instances.
      vf_module_type:
        type: string
        required: true
        constraint:
        - valid_values:
          - Base
          - Expansion
      volume_group:
        type: boolean
        required: true
        default: false
        description: |
          "true" indicates that this VF Module model requires attachment to a Volume   Group.  VID operator must select the Volume Group instance to attach to a VF-Module  at deployment time.
      availability_zone_count:
        type: integer
        required: false
        description: |
          Quantity of Availability Zones needed for this VF-Module     (source: Extracted from VF-Module HEAT template)
      vfc_list:
        type: map
        entry_schema:
          description: <vfc_id>:<count>
          type: string
        required: false
        description: |
          Identifies the set of VM types and their count included in the VF-Module
  org.openecomp.groups.NetworkCollection:
    derived_from: tosca.groups.Root
    description: groups l3-networks in network collection
    properties:
      network_collection_function:
        type: string
        required: true
        description: network collection function
      network_collection_description:
        type: string
        required: true
        description: network collection description, free format text
  org.openecomp.groups.VfcInstanceGroup:
    derived_from: tosca.groups.Root
    description: groups VFCs with same parent port role
    properties:
      vfc_instance_group_function:
        type: string
        required: true
        description: function of this VFC group
      vfc_parent_port_role:
        type: string
        required: true
        description: common role of parent ports of VFCs in this group
      network_collection_function:
        type: string
        required: true
        description: network collection function assigned to this group
      subinterface_role:
        type: string
        required: true
        description: common role of subinterfaces of VFCs in this group, criteria the group is created
    capabilities:
      vlan_assignment:
        type: org.openecomp.capabilities.VLANAssignment
        properties:
          vfc_instance_group_reference:
            type: string