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

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

tosca_definitions_version: tosca_simple_yaml_1_0
imports:
  - custom_types/rcordsubscriber.yaml

description: Pre-provsion subscribers

topology_template:
  node_templates:

    # EdgeCore OLT subscribers
    edgecore_alpha_subscriber:
      type: tosca.nodes.RCORDSubscriber
      properties:
        name: Sub_ALPHe3d1cee9
        status: pre-provisioned
        c_tag: 11
        s_tag: 111
        onu_device: ALPHe3d1cee9
        nas_port_id : "PON 1/1/03/1:1.1.1"
        circuit_id: edgecore_alpha_circuit
        remote_id: edgecore_alpha_remote

    edgecore_iskratel_subscriber:
      type: tosca.nodes.RCORDSubscriber
      properties:
        name: Sub_ISKT71e81130
        status: pre-provisioned
        c_tag: 12
        s_tag: 111
        onu_device: ISKT71e81130
        nas_port_id : "PON 1/1/04/1:1.1.1"
        circuit_id: edgecore_iskratel_circuit
        remote_id: edgecore_iskratel_remote

    # Adtran OLT subscribers
    adtran_subscriber_1:
      type: tosca.nodes.RCORDSubscriber
      properties:
        name: Sub_ADTN17510028
        status: pre-provisioned
        c_tag: 21
        s_tag: 222
        onu_device: ADTN17510028
        nas_port_id : "PON 1/1/05/1:1.1.1"
        circuit_id: adtran_sub1_circuit
        remote_id: adtran_sub1_remote

    # adtran_subscriber_2:
    #   type: tosca.nodes.RCORDSubscriber
    #   properties:
    #     name: Sub_ADTN16180345
    #     status: pre-provisioned
    #     c_tag: 22
    #     s_tag: 222
    #     onu_device: ADTN16180345
    #     nas_port_id : "PON 1/1/05/1:1.1.1"
    #     circuit_id: adtran_sub2_circuit
    #     remote_id: adtran_sub2_remote

    # CIG OLT subscribers
    cig_subscriber_1:
      type: tosca.nodes.RCORDSubscriber
      properties:
        name: Sub_CIGG18a00002
        status: pre-provisioned
        c_tag: 31
        s_tag: 333
        onu_device: CIGG18a00002
        nas_port_id : "PON 1/1/05/1:1.1.1"
        circuit_id: cig_sub1_circuit
        remote_id: cig_sub1_remote

    # Iskratel XGS-PON OLT subscribers
    iskratelx_subscriber_1:
      type: tosca.nodes.RCORDSubscriber
      properties:
        name: Sub_ISKT71e81070
        status: pre-provisioned
        c_tag: 41
        s_tag: 444
        onu_device: ISKT71e81070
        nas_port_id : "PON 1/1/05/1:1.1.1"
        circuit_id: iskx_sub1_circuit
        remote_id: iskx_sub1_remote

    # iskratelx_subscriber_2:
    #   type: tosca.nodes.RCORDSubscriber
    #   properties:
    #     name: Sub_ISKT71e81071
    #     status: pre-provisioned
    #     c_tag: 42
    #     s_tag: 444
    #     onu_device: ISKT71e81071
    #     nas_port_id : "PON 1/1/05/1:1.1.1"
    #     circuit_id: iskx_sub2_circuit
    #     remote_id: iskx_sub2_remote

    # Iskratel GPON OLT subscribers
    iskratelg_subscriber_1:
      type: tosca.nodes.RCORDSubscriber
      properties:
        name: Sub_ISKT45f2c688
        status: pre-provisioned
        c_tag: 51
        s_tag: 555
        onu_device: ISKT45f2c688
        nas_port_id : "PON 1/1/05/1:1.1.1"
        circuit_id: iskg_sub1_circuit
        remote_id: iskg_sub1_remote

    # iskratelg_subscriber_2:
    #   type: tosca.nodes.RCORDSubscriber
    #   properties:
    #     name: Sub_ISKT45f2bd61
    #     status: pre-provisioned
    #     c_tag: 52
    #     s_tag: 555
    #     onu_device: ISKT45f2bd61
    #     nas_port_id : "PON 1/1/05/1:1.1.1"
    #     circuit_id: iskg_sub2_circuit
    #     remote_id: iskg_sub2_remote

    # iskratelg_subscriber_3:
    #   type: tosca.nodes.RCORDSubscriber
    #   properties:
    #     name: Sub_ISKT45f2c1e4
    #     status: pre-provisioned
    #     c_tag: 53
    #     s_tag: 555
    #     onu_device: ISKT45f2c1e4
    #     nas_port_id : "PON 1/1/05/1:1.1.1"
    #     circuit_id: iskg_sub3_circuit
    #     remote_id: iskg_sub3_remote
