# Copyright 2017-2023 Open Networking Foundation (ONF) and the ONF Contributors
#
# 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.

# curl -H "xos-username: admin@opencord.org" -H "xos-password: letmein" -X POST --data-binary @onf-demo-pod-subscriber.yaml http://192.168.100.1:30007/run

tosca_definitions_version: tosca_simple_yaml_1_0
imports:
  - custom_types/rcordsubscriber.yaml
  - custom_types/bandwidthprofile.yaml

description: Pre-provsion subscribers

topology_template:
  node_templates:

    default:
      type: tosca.nodes.BandwidthProfile
      properties:
        name: Default
        must-exist: true
        air: 100000
        cbs: 30
        cir: 600
        ebs: 30
        eir: 400

    high_speed_bp:
      type: tosca.nodes.BandwidthProfile
      properties:
         air: 100000
         cbs: 2000
         cir: 5000
         ebs: 2000
         eir: 3000
         name: Bronze

    # EdgeCore OLT subscribers
    edgecore_iskratel_subscriber:
      type: tosca.nodes.RCORDSubscriber
      properties:
        name: Sub_ISKT71e801a0
        status: pre-provisioned
        c_tag: 12
        s_tag: 111
        onu_device: ISKT71e801a0
        nas_port_id : "PON 1/1/04/1:1.1.1"
        circuit_id: edgecore_iskratel_circuit
        remote_id: edgecore_iskratel_remote
        tech_profile_id: 64
      requirements:
       - upstream_bps:
           node: high_speed_bp
           relationship: tosca.relationships.BelongsToOne
       - downstream_bps:
           node: high_speed_bp
           relationship: tosca.relationships.BelongsToOne

    edgecore_brcm_subscriber:
      type: tosca.nodes.RCORDSubscriber
      properties:
        name: Sub_BRCM22222222
        status: pre-provisioned
        c_tag: 11
        s_tag: 111
        onu_device: BRCM22222222
        nas_port_id : "PON 1/1/04/1:1.1.2"
        circuit_id: edgecore_brcm_circuit
        remote_id: edgecore_brcm_remote
        tech_profile_id: 64
      requirements:
       - upstream_bps:
           node: high_speed_bp
           relationship: tosca.relationships.BelongsToOne
       - downstream_bps:
           node: high_speed_bp
           relationship: tosca.relationships.BelongsToOne
