---
# 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: Make a new Service and a ServicePort for it

imports:
  - custom_types/trustdomain.yaml
  - custom_types/site.yaml
  - custom_types/slice.yaml
  - custom_types/service.yaml
  - custom_types/serviceport.yaml
  - custom_types/kubernetesservice.yaml

topology_template:
  node_templates:
    mysite:
      type: tosca.nodes.Site
      properties:
        name: placeholder-sitename
        must-exist: true

    service#kubernetes:
          type: tosca.nodes.KubernetesService
          properties:
            name: kubernetes
            must-exist: true

    service#demo:
          type: tosca.nodes.Service
          properties:
            name: demo-service

    demo_trustdomain:
      type: tosca.nodes.TrustDomain
      properties:
        name: "demo-trust"
      requirements:
        - owner:
            node: service#kubernetes
            relationship: tosca.relationships.BelongsToOne

    mysite_demo1:
      type: tosca.nodes.Slice
      properties:
        name: "mysite_demo1"
      requirements:
        - site:
            node: mysite
            relationship: tosca.relationships.BelongsToOne
        - trust_domain:
            node: demo_trustdomain
            relationship: tosca.relationships.BelongsToOne
        - service:
            node: service#demo
            relationship: tosca.relationships.BelongsToOne

    demo_service_web_port:
      type: tosca.nodes.ServicePort
      properties:
        name: demo-service-web-port
        internal_port: 80
        external_port: 30080
        protocol: "TCP"
      requirements:
        - service:
            node: service#demo
            relationship: tosca.relationships.BelongsToOne