blob: 2cdec9c45fa9be6eb4d102ac2782f13bf88b81f0 [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:
must-exist:
type: boolean
default: false
description: Allow to reference existing models in TOSCA recipes
{% 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 %}