blob: 5faafee687703f187ae52cf07fef5a96153fc251 [file] [log] [blame]
{% for m in proto.messages %}
tosca_definitions_version: tosca_simple_yaml_1_0
node_types:
tosca.nodes.{{ m.name }}:
derived_from: tosca.nodes.Root
description: {% if m.options.description -%}{{ m.options.description}}{% else%}"An XOS {{ m.name }}"{%- endif %}
capabilities:
{{ m.name|lower }}:
type: tosca.capabilities.xos.{{ m.name }}
properties:
must-exist:
type: boolean
default: false
description: Allow to reference existing models in TOSCA recipes
{% for f in (m.fields + xproto_base_fields(m, proto.message_table)) | sort(attribute='name') %}
{%- 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 }}
+++ {{ m.name }}.yaml
{%- endfor %}