---

# Copyright 2017-present Open Networking 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.

tosca_definitions_version: tosca_simple_yaml_1_0

imports:
   - custom_types/xos.yaml
   - custom_types/vnaas.yaml

description: vnaasglobal services, generated by platform-install

topology_template:
  node_templates:

    onosmodel#onf:
      type: tosca.nodes.OnosModel
      requirements:
      properties:
        name: onfGlobalONOS
        onos_ip: onos-cord
        onos_port: 8182
        onos_username: onos
        onos_password: rocks
        onos_type: global

    bandwidthprofile#bronze:
      type: tosca.nodes.BandwidthProfile
      requirements:
      properties:
        cbs: 1000
        ebs: 1200
        cir: 1000
        eir: 1200
        name: bronze

    bandwidthprofile#silver:
      type: tosca.nodes.BandwidthProfile
      requirements:
      properties:
        cbs: 1500
        ebs: 2000
        cir: 10000
        eir: 2000
        name: silver

    bandwidthprofile#gold:
      type: tosca.nodes.BandwidthProfile
      requirements:
      properties:
        cbs: 2000
        ebs: 2700
        cir: 20000
        eir: 5000
        name: gold

    bandwidthprofile#platinum:
      type: tosca.nodes.BandwidthProfile
      requirements:
      properties:
        cbs: 2500
        ebs: 3200
        cir: 100000
        eir: 10000
        name: platinum

    # eline#testeline:
    #   type: tosca.nodes.ELine
    #   requirements:
    #   properties:
    #     name: testeline
    #     connect_point_1_id: domain:10.90.1.30-cord-onos/1
    #     connect_point_2_id: domain:10.90.1.50-cord-onos/1
    #     vlanids: 100
    #     cord_site_name: onfGlobalONOS
    #     bwp: gold

