# 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 @onlab-pod1-subscriber.yaml http://10.90.0.101: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: 22
        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: 11
        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: 11
        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: 11
        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: 22
        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: 11
        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: 22
        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: 33
        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
