- SBUILDER_EXTENSION =
"\n# Load and configure sbuilder plugin extensions\n#\n# SCHEMA\n#\n# extend:\n# loaders:\n# - gem: <gem-name>\n# className: <class name>\n# configuration:\n# <configuration-value>\n# objects: \n# <named-object>\n#\n# WHERE <named-object> is a hash\n#\n# - objectName:\n# configuration:\n# <configuration-value>\n#\n#\n# COMMENTS:\n# - `objects` -property is optional\n# - `objectName` must be unique\n# - if 'className' is used, must also give 'gem'\n#\n# <class name>: name of interface loader in 'type' property in 'interfaces' array\n# <gem-name>: gem name to require, require only if <class name> not defined\n# <configuration-value>: a (hash) value passed to 'className'::configure' -method\n# or `className.new#configure` method for objects\n#\n#\n\nextend:\n loaders: \n\n # - className: Sbuilder::SnippetLoaderSimple\n # configuration:\n # src_dir: src/pet\n\n".unindent
- SBUILDER_SNIPPETS =
"\n# Load snippets to sbuilder code repository\n#\n# SCHEMA:\n#\n# \n# snippets:\n# - <snippet-loader>\n# - <snippet-loader>\n# - <snippet-loader>\n#\n# <snippet-loader>: an array element with the following mandatory properties\n#\n# className: name of the snippet loader object, \n# className used in 'extend.loaders'\n# objectName: name of the class of snippet loader object, \n# references 'objectName' in 'extend.loaders.objects',\n# must give either 'className' or 'objectName'\n# snippets: array of snippet load definitions, \n# content of the array varies for classNames\n#\n# \n# Special metatypes:\n# - service_implementation: defines a macro to call for the service\n# - service_completion: defines a macro to call when service\n# finishes. Intended use is check service status, and implementation\n# transaction semantics.\n#\n# Example for className: Sbuilder::SnippetLoaderSimple \n# \n# className: Sbuilder::SnippetLoaderSimple \n# configuration:\n# metatypes:\n# code: Example code\n# snippets:\n# - metatype: service_implementation\n# appName: \"/max2(post)\"\n# file: max2_post.tla\n# - metatype: service_implementation\n# appName: \"/dummy(post)\"\n# file: dummy_post.tla\n# - metatype: code\n# appName: max2\n# file: max2.tla\n".unindent
- SBUILDER_INVARIANTS =
"\n# Activate invariant operator defines in sBuilder code repository\n#\n# SCHEMA:\n# \n# invariants:\n# - <invariant-name>: <invariant description>\n#\n# \n# <invariant-name>: name of TlAplus operator defined in sBuilder code repository\n# <invariant description>: documentantion text for the invariant\n#\n".unindent
- SBUILDER_RESOLVERS =
"\n# Define how parameter names are mapped to domain\n#\n# SCHEMA:\n#\n# resolvers: \n# - file: <file name in cnf-dir>\n# url: <path or url>\n#\n# Give either 'file' or 'url'\n# <file name in cnf-dir>: file name in cnf-directory\n# <path or url>: path relative to cwd, or http url\n#\n#\n#\n\n".unindent
- SBUILBER_INTERFACES =
"\n# Define how to load interfaces configuration\n#\n# SCHEMA:\n# \n# interfaces: \n# - \n# className: <class name>\n# configuration: <configuration-value>\n# objectName: <object name>\n# \n# file: <file name in cnf-dir>\n# infrastructureServices: <is infrastructureService>\n# interfaceServices: <is interfaceService>\n# url: <path or url>\n# cache: <cache file path>\n#\n# WHERE\n#\n# <class name>: name of the snippet loader object, \n# className used in 'extend.loaders'\n#\n# <object name>: name of the class of api loader object, \n# references 'objectName' in 'extend.loaders.objects',\n# \n#\n# <configuration-value>: a (hash) value passed to 'className'::configure' -method\n# or `className.new#configure` method for objects\n# \n#\n# <is infrastructureService>: true generates the possibility for a\n# service set return response using 'InfrastructureServiceResponse' operator, and \n# the caller to access response status ( operator 'InfrastructureServiceGetStatus')\n# and response data ( operator #InfrastructureServiceGetResponse'), optional, defaults false\n#\n# <is interfaceService>: true generates interface process for the interface, which\n# environment can call (see 'step-extension', optional, defaults true\n#\n# <file name in cnf-dir> : file name in cnf-directory\n# <path or url> : path relative to cwd, or http url, \n# e.g https://cdn.rawgit.com/swagger-api/swagger-spec/master/examples/v2.0/yaml/petstore-expanded.yaml\n# <cache file path> : path relative to cwd, where interface file is cached\n# \n# COMMENTS:\n# - must give either 'className' or 'objectName'\n# - when 'className' given 'configuration' allowed\n# - must give either 'file' or 'url' \n# - property 'cache' optional, useful when http access slow\n# - infrastructureServices are modelled as procedures, which may modify state\n# or return values used in 'normal' interfaces\n# \n\n".unindent
- SBUILER_SETUPS =
"\n# Define environment setups\n#\n# SCHEMA:\n# setups:\n# - setupDirectory: <setupname>\n# extensions:\n# file: <file name in cnf-dir>\n# url: <path or url>\n# preferences:\n# <hash-values>\n# assumptions:\n# <assume-op-names>\n#\n# <setupname> : name of setup = sub directory under <gen_dir>\n# <file name in cnf-dir>: name extension configurion file in cnf-directory\n# <path or url> : relative name or url of configurion file\n# <hash-values> : optional properties overriding global generate preferences\n# <assume-op-names> : array of operator names to put into ASSUME directives\n#\n# COMMENTS:\n# - preferences property is optional\n".unindent
- SBUILDER_GENERATE =
"\n# Generate definitions\n# \n# SCHEMA:\n# generate:\n# - output: <path>\n# inputs: \n#\n# - desc: <description text>\n# modelData: none\n# template: markdown-header.mustache\n# input: <name-of-template>\n#\n# <path>: relative path under <gen-directory>\n# <description text>: text avaiblable for template in {{META.desc}} property\n# <name-of-template>: name of file to output into <path>\n#\n# COMMENTS:\n# - can be used to render also model data using mustache template \n# in this case \n# modelData : <model-data>, where\n# valid values for <model-data>: ['none', 'interfaces', 'steps',\n# 'definitions','domains' ], \n# see document <gen_dir>/<setup>/doc/data-model.md for content\n# template: <mustache-template>, where\n# <mustache-template> is a file <src_dir>\n#\n".unindent
- SBUILDER_PREFERENCES =
"\n# Generate preferences\n#\n# preferences:\n# <hash-values>\n#\n# <hash-values> key-value pairs passed to mustache templates in 'PREFERENCES' -property\n#\n# Default templates use following propeties\n# debug-output: <true/false>, output call message in interface processes, default 'true'\n#\n".unindent
" \n# Define extension for domains\n#\n# SCHEMA:\n# - domain-extension:\n# - domain: <domain-name>\n# cardinality: <cardinality>\n# values:\n# - <str-value>\n# type: <type-def>\n# range: <range-def>\n#\n# \n# <domain-name>: domain name resolved\n# <cardinality>: integer value for domain, default 1\n# <str-value>: fixed value for domain\n# <type-def>: Int|BOOLEAN\n# <rannge-def>: [low,high]\n#\n# COMMENTS:\n# - give one of 'cardinality', 'values','type', 'range'\n#\n\n".unindent
"\n# Modify setup preference\n#\n# SCHEMA:\n# - preferences-extension:\n# - preferences: \n# <hash-values>\n#\n# <hash-values> : optional properties overriding preferences given in 'sbuilder.yaml'\n#\n# \n# Example\n# - preferences-extension:\n# preferences: \n# debug-output: true\n#\n".unindent
"\n# Define name of extension point for interface\n#\n# SCHEMA:\n# - interface-extension:\n# - matcher: <string-or-regex>\n# implementation: <name-implmentation>\n#\n# <string-or-regex>: string or regexp matching inteface\n# example regex !ruby/regexp /customer?\\(post\\)/ matches\n# customers(post) and customer(post) \n# <name-of-implementation>: must define macro 'p_<name-of-implementation>'\n\n".unindent
"\n# Define environment steps \n#\n# SCHEMA:\n# - step-extension:\n# - interface: <interface-name>\n# bindExact: true\n# input: \n# <input> \n# inputs:\n# - input:\n# <input>\n#\n# \n# <interface-name>: name of interface to call in step, e.g. customer(post)\n# <input>: parameter bindings for interface. See 'sbuilder.rb example pet' \n# and `sbuilder.rb example customer` for examples.\n# \n# \n# COMMENTS:\n# - give 'inputs' xor 'input' (first level hash)\n# - 'bindExact' optional, \n# - use 'bindExact': true when input range for interface\n# becomes so big that TLA+ model checker slows down when \n# evaluating the input domain range. \n# - When 'bindExact': true all fields for 'input' property must \n# be given value. Hint use '_default' property in <input>\n# - Hint: use 'inputs' when 'bindExact': true use 'inputs' to\n# allow non-determinism in process input .\n#\n\n\n".unindent
"\n# Example of an YAML resolver\n#\n# Contains array of hashes\n# \n# - Name: <name of resolver>\n# Matcher: <string/regexp to match a paramset name to resolve>\n# Rules: <array of RULE-ELEMENTS>\n# \n# RULE-ELEMENT: MATCHER | INCLUDE-MAPPER\n#\n# INCLUDE-MAPPER: hash with Include attribute\n# Include: <name of mapper>\n# \n# MATCHER: hash of with Matcher/Domain attributes\n# Matcher: <string/regexpp to match paramenter id>\n# use !ruby/regexp modifier for a value to make it\n# to a regular expression. For exapmle\n#\n# Matcher: !ruby/regexp /.*/\n#\n# Domain: domain to assign to parameter\n#\n".unindent