{ "components": { "schemas": { "attribute": { "description": "An attribute represents a key/value pair that is optionally used to provide additional instructions / data to the code generator. An example could be an attribute to specify the root import path for a go client..", "properties": { "name": { "type": "string" }, "value": { "type": "string" } }, "required": [ "name", "value" ], "type": "object" }, "error": { "properties": { "code": { "type": "string", "description": "Machine readable code for this specific error message" }, "message": { "type": "string", "description": "Description of the error" } }, "required": [ "code", "message" ], "type": "object" }, "file": { "description": "Represents a source file", "properties": { "name": { "type": "string", "description": "The recommended name for the file.", "example": "ApiCollectiveApiBuilderApiClient.scala" }, "dir": { "type": "string", "description": "The recommended directory path for the file where appropriate.", "example": "io/apicollective/apibuilder" }, "contents": { "type": "string", "description": "The actual source code." }, "flags": { "items": { "$ref": "#/components/schemas/file_flag" }, "type": "array" } }, "required": [ "name", "contents" ], "type": "object" }, "generator": { "description": "The generator metadata.", "properties": { "key": { "type": "string" }, "name": { "type": "string" }, "language": { "type": "string", "description": "A comma separate list of the programming language(s) that this generator produces", "example": "scala" }, "description": { "type": "string" }, "attributes": { "items": { "type": "string" }, "type": "array", "description": "The list of attributes that this code generator can use. You can find the full list of available attributes and their descriptions at http://apibuilder.io/doc/attributes", "default": "[]" } }, "required": [ "key", "name", "attributes" ], "type": "object" }, "healthcheck": { "properties": { "status": { "type": "string", "example": "healthy" } }, "required": [ "status" ], "type": "object" }, "invocation": { "description": "The result of invoking a generator.", "properties": { "source": { "type": "string", "description": "The actual source code.", "deprecated": true }, "files": { "items": { "$ref": "#/components/schemas/file" }, "type": "array", "description": "A collection of source files" } }, "required": [ "source", "files" ], "type": "object" }, "invocation_form": { "description": "The invocation form is the payload send to the code generators when requesting generation of client code.", "properties": { "service": {}, "attributes": { "items": { "$ref": "#/components/schemas/attribute" }, "type": "array", "default": "[]" }, "user_agent": { "type": "string" }, "imported_services": { "items": {}, "type": "array" } }, "required": [ "service", "attributes" ], "type": "object" }, "file_flag": { "description": "Allows generator authors to flag files with special characteristics. It is up to the client (i.e. the cli) to decide how to interpret them. Possible values: scaffolding.", "enum": [ "scaffolding" ], "type": "string" } } }, "info": { "contact": { "name": "Michael Bryzek", "url": "http://twitter.com/mbryzek", "email": "mbryzek@alum.mit.edu" }, "description": "Documentation for an apibuilder code generator API", "license": { "name": "MIT", "url": "http://opensource.org/licenses/MIT" }, "termsOfService": "", "title": "apibuilder generator", "version": "0.16.74" }, "openapi": "3.0.2", "paths": { "/generators": { "get": { "description": "Get all available generators", "operationId": "get--generators", "parameters": [ { "deprecated": false, "in": "query", "required": false, "schema": { "type": "string" }, "description": "Filter generators with this key", "name": "key" }, { "deprecated": false, "example": "100", "in": "query", "required": true, "schema": { "type": "integer" }, "description": "The number of records to return", "name": "limit" }, { "deprecated": false, "example": "0", "in": "query", "required": true, "schema": { "type": "integer" }, "description": "Used to paginate. First page of results is 0.", "name": "offset" } ], "responses": { "200": { "description": "[io.apibuilder.generator.v0.models.generator]", "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/generator" }, "type": "array" } } }, "headers": {} } }, "tags": [ "generator" ] } }, "/generators/:key": { "get": { "description": "Get generator with this key", "operationId": "get--generators-key", "parameters": [ { "deprecated": false, "in": "path", "required": true, "schema": { "type": "string" }, "name": "key" } ], "responses": { "200": { "description": "io.apibuilder.generator.v0.models.generator", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/generator" } } }, "headers": {} }, "404": { "description": "unit", "content": { "application/json": { "schema": { "type": "integer", "nullable": true } } }, "headers": {} } }, "tags": [ "generator" ] } }, "/_internal_/healthcheck": { "get": { "operationId": "get--_internal_-healthcheck", "parameters": [], "responses": { "200": { "description": "io.apibuilder.generator.v0.models.healthcheck", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/healthcheck" } } }, "headers": {} } }, "tags": [ "healthcheck" ] } }, "/invocations/:key": { "post": { "description": "Invoke a generator", "operationId": "post--invocations-key", "parameters": [ { "deprecated": false, "in": "path", "required": true, "schema": { "type": "string" }, "name": "key" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/invocation_form" } } } }, "responses": { "200": { "description": "io.apibuilder.generator.v0.models.invocation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/invocation" } } }, "headers": {} }, "409": { "description": "[io.apibuilder.generator.v0.models.error]", "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/error" }, "type": "array" } } }, "headers": {} } }, "tags": [ "invocation" ] } } }, "servers": [ { "url": "https://api.apibuilder.io" } ] }