swagger: "2.0" info: description: "FaaS API documentation" version: "0.5.4" title: "FaaS API Gateway" license: name: "MIT" basePath: "/" schemes: - "http" paths: /system/functions: get: summary: "Get a list of deployed functions with: stats and image digest" description: "" consumes: - "application/json" produces: - "application/json" responses: 200: description: "List of deployed functions." examples: application/json: |- [ {"name":"func_payroll","image":"alexellis2/faas-payroll:latest@sha256:0bc2773613c76d9ee4906bf3887ea2527f135cb7a0d0f430743e7c6712949709","invocationCount":16,"replicas":1}, {"name":"func_fanclub","image":"alexellis2/fanclub:18-04-2017@sha256:37bb3fabee7e36abab7e6250bb7d13c9ab66e983782b35200470fe2a3aa14daa","invocationCount":1125,"replicas":1} ] post: summary: "Deploy a new function." description: "" consumes: - "application/json" produces: - "application/json" parameters: - in: "body" name: "body" description: "Function to deploy" required: true schema: $ref: "#/definitions/CreateFunctionRequest" responses: 200: description: "OK" delete: summary: "Remove a deployed function." description: "" consumes: - "application/json" produces: - "application/json" parameters: - in: "body" name: "body" description: "Function to delete" required: true schema: $ref: "#/definitions/DeleteFunctionRequest" responses: 200: description: "OK" 404: description: "Function not found in gateway" /system/alert: post: summary: "Event-sink for AlertManager, for auto-scaling" description: "Internal use for AlertManager, requires valid AlertManager alert JSON" consumes: - "application/json" produces: - "application/json" parameters: - in: "body" name: "body" description: "Function to delete" schema: type: object example: |- {"receiver": "scale-up", "status": "firing", "alerts": [{ "status": "firing", "labels": { "alertname": "APIHighInvocationRate", "code": "200", "function_name": "func_nodeinfo", "instance": "gateway:8080", "job": "gateway", "monitor": "faas-monitor", "service": "gateway", "severity": "major", "value": "8.998200359928017" }, "annotations": { "description": "High invocation total on gateway:8080", "summary": "High invocation total on gateway:8080" }, "startsAt": "2017-03-15T15:52:57.805Z", "endsAt": "0001-01-01T00:00:00Z", "generatorURL": "http://4156cb797423:9090/graph?g0.expr=rate%28gateway_function_invocation_total%5B10s%5D%29+%3E+5\u0026g0.tab=0" }], "groupLabels": { "alertname": "APIHighInvocationRate", "service": "gateway" }, "commonLabels": { "alertname": "APIHighInvocationRate", "code": "200", "function_name": "func_nodeinfo", "instance": "gateway:8080", "job": "gateway", "monitor": "faas-monitor", "service": "gateway", "severity": "major", "value": "8.998200359928017" }, "commonAnnotations": { "description": "High invocation total on gateway:8080", "summary": "High invocation total on gateway:8080" }, "externalURL": "http://f054879d97db:9093", "version": "3", "groupKey": 18195285354214864953 } responses: 200: description: "Alert handled successfully" 500: description: "Internal error with swarm or request JSON invalid" definitions: DeleteFunctionRequest: type: "object" properties: functionName: type: "string" description: "Name of deployed function" CreateFunctionRequest: type: "object" properties: service: type: "string" description: "Name of deployed function" network: type: "string" description: "Docker swarm network, usually func_functions" image: type: "string" description: "Docker image in accessible registry" envProcess: type: "string" description: "Process for watchdog to fork" envVars: type: "array" items: type: "string" description: "Overrides to environmental variables" registryAuth: type: "string" description: "Private registry base64-encoded basic auth (as present in ~/.docker/config.json)" externalDocs: description: "More documentation available on Github" url: "http://docs.get-faas.com"