blob: 313874bf5cac60ea9d4270c97a64554eb11c3e70 [file] [log] [blame]
tosca_definitions_version: tosca_simple_yaml_1_0
node_types:
{% for m in proto.messages %}
tosca.nodes.{{ m.name }}:
derived_from: tosca.nodes.Root
description: {% if m.options.tosca_description -%}{{ m.options.tosca_description}}{% else%}"An XOS {{ m.name }}"{%- endif %}
capabilities:
{{ m.name|lower }}:
type: tosca.capabilities.xos.{{ m.name }}
properties:
no-delete:
type: boolean
default: false
description: Do not allow Tosca to delete this object
no-create:
type: boolean
default: false
description: Do not allow Tosca to create this object
no-update:
type: boolean
default: false
description: Do not allow Tosca to update this object
replaces:
type: string
required: false
descrption: Replaces/renames this object
{% for f in m.fields %}
{%- if not f.link -%}
{{ f.name }}:
type: {{ xproto_tosca_field_type(f.type) }}
required: {{ xproto_tosca_required(f.options.null, f.options.blank, f.options.default) }}
description: {{ f.options.help_text }}
{% endif %}
{%- endfor %}
{% for l in m.links %}
{%- if l.link_type == "manytoone" -%}
tosca.relationships.BelongsToOne:
derived_from: tosca.relationships.Root
valid_target_types: [ tosca.capabilities.xos.{{ l.peer.name }} ]
{%- endif%}
{%- if l.link_type == "manytomany" -%}
tosca.relationships.BelongsToMany:
derived_from: tosca.relationships.Root
valid_target_types: [ tosca.capabilities.xos.{{ l.peer.name }} ]
{%- endif%}
{% endfor %}
tosca.capabilities.xos.{{ m.name }}:
derived_from: tosca.capabilities.Root
description: {{ m.name }}
{%- endfor %}