Skip to content
Snippets Groups Projects
swagger.yml 7.43 KiB
Newer Older
  • Learn to ignore specific revisions
  • swagger: '2.0'
    
      description: FaaS API documentation
    
      version: 0.6.5
    
      title: FaaS API Gateway
    
        name: MIT
    basePath: /
    
    paths:
      /system/functions:
    
    Alex Ellis's avatar
    Alex Ellis committed
        get:
    
          summary: 'Get a list of deployed functions with: stats and image digest'
          description: ''
    
    Alex Ellis's avatar
    Alex Ellis committed
          consumes:
    
            - application/json
    
    Alex Ellis's avatar
    Alex Ellis committed
          produces:
    
            - application/json
    
    Alex Ellis's avatar
    Alex Ellis committed
          responses:
    
            '200':
              description: List of deployed functions.
    
    Alex Ellis's avatar
    Alex Ellis committed
              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}
                  ]
    
          summary: Deploy a new function.
          description: ''
    
            - application/json
    
            - application/json
    
            - in: body
              name: body
              description: Function to deploy
              required: true
              schema:
                $ref: '#/definitions/CreateFunctionRequest'
    
            '200':
              description: OK
    
        put:
          summary: Update a function.
          description: ''
          consumes:
            - application/json
          produces:
            - application/json
          parameters:
            - in: body
              name: body
              description: Function to update
              required: true
              schema:
                $ref: '#/definitions/CreateFunctionRequest'
          responses:
            '200':
              description: OK
    
    Alex Ellis's avatar
    Alex Ellis committed
        delete:
    
          summary: Remove a deployed function.
          description: ''
    
    Alex Ellis's avatar
    Alex Ellis committed
          consumes:
    
            - application/json
    
    Alex Ellis's avatar
    Alex Ellis committed
          produces:
    
            - application/json
    
    Alex Ellis's avatar
    Alex Ellis committed
          parameters:
    
            - in: body
              name: body
              description: Function to delete
              required: true
              schema:
                $ref: '#/definitions/DeleteFunctionRequest'
    
    Alex Ellis's avatar
    Alex Ellis committed
          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
    
      '/async-function/{functionName}':
    
    Elliott Beach's avatar
    Elliott Beach committed
          summary: 'Invoke a function asynchronously in OpenFaaS'
          description: >-
    
    Elliott Beach's avatar
    Elliott Beach committed
            ### This endpoint requires the asynchronous stack.
    
    Elliott Beach's avatar
    Elliott Beach committed
            See https://github.com/openfaas/faas/blob/master/guide/asynchronous.md.
    
          parameters:
            - in: path
              name: functionName
              description: Function name
              type: string
              required: true
    
            - in: body
              name: input
              description: (Optional) data to pass to function
              schema:
                type: string
                format: binary
                example:
                  '{"hello": "world"}'
              required: false
    
          responses:
            '202':
              description: Request accepted and queued
            '404':
              description: Requested function not found
    
            '500':
              description: Internal server error
      '/function/{functionName}':
    
          summary: Invoke a function defined in OpenFaaS
    
          parameters:
            - in: path
              name: functionName
              description: Function name
              type: string
              required: true
    
            - in: body
              name: input
              description: (Optional) data to pass to function
              schema:
                type: string
                format: binary
                example:
                  '{"hello": "world"}'
              required: false
    
          responses:
            '200':
              description: Value returned from function
            '404':
              description: Function not found
    
            '500':
              description: Error connecting to function
    
    Alex Ellis's avatar
    Alex Ellis committed
      DeleteFunctionRequest:
    
        type: object
    
    Alex Ellis's avatar
    Alex Ellis committed
        properties:
          functionName:
    
            type: string
            description: Name of deployed function
    
      CreateFunctionRequest:
    
        type: object
    
            type: string
            description: Name of deployed function
    
            type: string
            description: 'Docker swarm network, usually func_functions'
    
            type: string
            description: Docker image in accessible registry
    
            type: string
            description: Process for watchdog to fork
    
          envVars:
    
              type: string
            description: Overrides to environmental variables
    
          secrets:
            type: array
            items:
              type: string
    
            type: string
            description: >-
              Private registry base64-encoded basic auth (as present in
              ~/.docker/config.json)
    
      description: More documentation available on Github
    
      url: 'https://github.com/openfaas/faas'