{#
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:

    enterpriselocation#onlab:
      type: tosca.nodes.EnterpriseLocation
      requirements:
      properties:
        name: onlab
        cord_site_ip: 127.0.0.1
        cord_site_port: 8181
        cord_site_username: onos
        cord_site_password: rocks
        cord_site_type: onos


    enterpriselocation#onlab1:
      type: tosca.nodes.EnterpriseLocation
      requirements:
      properties:
        name: onlab1
        cord_site_ip: 127.0.0.2
        cord_site_port: 8181
        cord_site_username: onos
        cord_site_password: rocks
        cord_site_type: onos

    onosmodel#onlab:
      type: tosca.nodes.OnosModel
      requirements:
      properties:
        name: onlabT
        onos_ip: onos-cord.{{ site_suffix }}
        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

    usernetworkinterface#UserNetworkInterface1:
      type: tosca.nodes.UserNetworkInterface
      requirements:
      properties:
        tenant: onlab
        name: uni1
        latlng: [37.973535, -122.531087]
        cpe_id: netconf:192.168.56.10:830/0

    usernetworkinterface#UserNetworkInterface2:
      type: tosca.nodes.UserNetworkInterface
      requirements:
      properties:
        tenant: onlab
        name: uni2
        latlng: [37.773972, -122.431297]
        cpe_id: netconf:192.168.56.20:830/0

    usernetworkinterface#UserNetworkInterface3:
      type: tosca.nodes.UserNetworkInterface
      requirements:
      properties:
        tenant: onlab
        name: uni3
        latlng: [37.871637, -122.259750]
        cpe_id: netconf:192.168.56.30:830/0

#     eline#testeline:
#       type: tosca.nodes.ELine
#       requirements:
#       properties:
#         name: testeline
#         connect_point_1_id: netconf:192.168.56.10:830/0
#         connect_point_2_id: netconf:192.168.56.20:830/0
#         vlanids: 100
#         cord_site_name: onlabT
#         bwp: gold
