
{#
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: Setup CORD-related services -- vOLT, vCPE, vBNG.

imports:
   - custom_types/xos.yaml
   - custom_types/monitoring_tosca_types.yaml
   - custom_types/exampleservice.yaml

topology_template:
  node_templates:
    service_ceilometer:
      type: tosca.nodes.CeilometerService
      properties:
          no-create: true
          no-update: true
          no-delete: true

    service#exampleservice:
      type: tosca.nodes.ExampleService
      properties:
          no-create: true
          no-update: true
          no-delete: true

    exampleservice_monitoring_publisher_tenant:
      description: Monitoring Publisher Tenant for Example service
      type: tosca.nodes.UserServiceMonitoringPublisher
      requirements:
          - provider_service:
              node: service_ceilometer
              relationship: tosca.relationships.TenantOfService
          - target_service:
              node: service#exampleservice
              relationship: tosca.relationships.PublishesMonitoringData

