
{#
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 a slice privilege on the pod
{% set relationship = {"admin": "tosca.relationships.AdminPrivilege", "access": "tosca.relationships.AccessPrivilege"}[role] | default("ERROR") -%}

imports:
   - custom_types/xos.yaml

topology_template:
  node_templates:

    {{ local_site }}:
      type: tosca.nodes.Site

    {{ user_name }}:
      type: tosca.nodes.User

    {{ local_site }}_{{ slice_name }}:
      type: tosca.nodes.Slice
      properties:
          no-create: true
          no-delete: true
      requirements:
          - privilege:
              node: {{ user_name }}
              relationship: {{ relationship }}
          - site:
              node: {{ local_site }}
              relationship: tosca.relationships.MemberOfSite
