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

description: Creates a CORD test subscriber, created by platform-install

imports:
  - custom_types/cordsubscriberroot.yaml
  - custom_types/site.yaml
  - custom_types/slice.yaml
  - custom_types/user.yaml
  - custom_types/voltservice.yaml
  - custom_types/volttenant.yaml
  - custom_types/serviceinstancelink.yaml

topology_template:
  node_templates:

# site, fully created in deployment.yaml
    {{ site_name }}:
      type: tosca.nodes.Site
      properties:
        name: {{ site_name }}
        must-exist: true

# vsg slice, volt service, fully created in cord-services.yaml
    {{ site_name }}_vsg:
      type: tosca.nodes.Slice
      properties:
        name: {{ site_name }}_vsg
        must-exist: true

    service#volt:
      type: tosca.nodes.VOLTService
      properties:
        name: volt
        must-exist: true

# Test subscriber

    # A subscriber
    my_house:
      type: tosca.nodes.CordSubscriberRoot
      properties:
        name: My House
        service_specific_id: "123"
        firewall_enable: false
        cdn_enable: false
        url_filter_enable: false
        url_filter_level: R
        s_tag: 222
        c_tag: 111

    # TODO needs to be moved to a new model (now they are JSON encoded)
    # Mom's PC:
    #   type: tosca.nodes.CORDUser
    #   properties:
    #     mac: 01:02:03:04:05:06
    #     level: PG_13
    #   requirements:
    #     - household:
    #         node: My House
    #         relationship: tosca.relationships.SubscriberDevice

    # Dad's PC:
    #   type: tosca.nodes.CORDUser
    #   properties:
    #     mac: 90:E2:BA:82:F9:75
    #     level: PG_13
    #   requirements:
    #     - household:
    #         node: My House
    #         relationship: tosca.relationships.SubscriberDevice

    # Jack's Laptop:
    #   type: tosca.nodes.CORDUser
    #   properties:
    #     mac: 68:5B:35:9D:91:D5
    #     level: PG_13
    #   requirements:
    #     - household:
    #         node: My House
    #         relationship: tosca.relationships.SubscriberDevice

    # Jill's Laptop:
    #   type: tosca.nodes.CORDUser
    #   properties:
    #     mac: 34:36:3B:C9:B6:A6
    #     level: PG_13
    #   requirements:
    #     - household:
    #         node: My House
    #         relationship: tosca.relationships.SubscriberDevice
