diff --git a/specs/codebuilder-cli.json b/specs/codebuilder-cli.json new file mode 100644 index 0000000..446ed9c --- /dev/null +++ b/specs/codebuilder-cli.json @@ -0,0 +1,204 @@ +{ + "name": "codebuilder-cli", + "description": "Spec for Codebuilder CLI.", + "info": { + "contact": { + "name": "Niclas Thobaben", + "email": "niclas@die-thobabens.de", + "url": "https://nclazz.de" + } + }, + "imports": [ + { + "uri": "https://app.apibuilder.io/nclazz/codebuilder/latest/service.json" + } + ], + "models": { + "settings": { + "description": "Settings for codebuilder cli.", + "fields": [ + { + "name": "servers", + "type": "[server]" + } + ] + }, + "server": { + "description": "Defines a codebuilder server to deploy and fetch generators.", + "fields": [ + { + "name": "id", + "type": "string", + "description": "A id of the server to reference in maven plugin or similar. *Note: This is not the login!*" + }, + { + "name": "url", + "type": "string", + "description": "The url under which the server is accessible." + }, + { + "name": "username", + "type": "string", + "description": "Username to login to the server." + }, + { + "name": "password", + "type": "string", + "description": "Password of the specified user." + } + ] + }, + "descriptor": { + "description": "Descriptor of a codebuilder project.", + "fields": [ + { + "name": "name", + "type": "string", + "description": "Name of the project. This maps to the generator key." + }, + { + "name": "description", + "type": "string", + "required": false + }, + { + "name": "templates", + "type": "[template_descriptor]", + "default": [], + "required": false + }, + { + "name": "reserved", + "type": "reserved_descriptor", + "required": false + }, + { + "name": "types", + "type": "[type_mapping_descriptor]", + "required": false, + "default": [] + } + ] + }, + "template_descriptor": { + "description": "Meta information for a template in the project.", + "fields": [ + { + "name": "name", + "type": "string", + "description": "Maps to a template file with a name in the format `.`." + }, + { + "name": "scaffolding", + "type": "boolean", + "default": false, + "required": false + }, + { + "name": "filename", + "type": "string", + "default": "{{item.name}}", + "required": false + }, + { + "name": "directory", + "type": "string", + "default": ".", + "required": false + } + ] + }, + "reserved_descriptor": { + "fields": [ + { + "name": "use", + "type": "string", + "description": "Use a predefined set of reserved words.", + "required": false + }, + { + "name": "reserve", + "type": "[de.nclazz.codebuilder.v0.model.reserved_word]", + "required": false + } + ] + }, + "type_mapping_descriptor": { + "fields": [ + { + "name": "boolean", + "type": "string", + "required": false, + "default": "boolean" + }, + { + "name": "date-iso8601", + "type": "string", + "required": false, + "default": "date-iso8601" + }, + { + "name": "date-time-iso8601", + "type": "string", + "required": false, + "default": "date-time-iso8601" + }, + { + "name": "decimal", + "type": "string", + "required": false, + "default": "decimal" + }, + { + "name": "double", + "type": "string", + "required": false, + "default": "double" + }, + { + "name": "integer", + "type": "string", + "required": false, + "default": "integer" + }, + { + "name": "json", + "type": "string", + "required": false, + "default": "json" + }, + { + "name": "long", + "type": "string", + "required": false, + "default": "long" + }, + { + "name": "object", + "type": "string", + "required": false, + "default": "object" + }, + { + "name": "string", + "type": "string", + "required": false, + "default": "string" + }, + { + "name": "unit", + "type": "string", + "required": false, + "default": "unit" + }, + { + "name": "uuid", + "type": "string", + "required": false, + "default": "uuid" + } + ] + } + + } +} \ No newline at end of file diff --git a/upload-specs.sh b/upload-specs.sh index 48a2ac2..0799076 100644 --- a/upload-specs.sh +++ b/upload-specs.sh @@ -8,6 +8,7 @@ SPECS=( "common-resources" "authentication" "codebuilder" + "codebuilder-cli" ) for file in "${SPECS[@]}"; do