openapi: 3.0.0
servers:
  - url: http://otoroshi-api.oto.tools/
  - url: http://maif.local
info:
  contact:
    email: oss@maif.fr
    name: Otoroshi Team
  description: Admin API of the Otoroshi reverse proxy
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  title: Otoroshi Admin API
  version: 1.5.0-dev
  x-apisguru-categories:
    - developer_tools
  x-logo:
    backgroundColor: "#FFFFFF"
    url: https://maif.github.io/otoroshi/assets/images/svg/otoroshi_logo.svg
  x-origin:
    - format: openapi
      url: https://raw.githubusercontent.com/MAIF/otoroshi/master/docs/manual/code/swagger.json
      version: "3.0"
  x-providerName: maif.local
  x-serviceName: otoroshi
externalDocs:
  description: Find out more about Otoroshi
  url: https://maif.github.io/otoroshi/
tags:
  - description: Everything about Otoroshi global configuration
    name: configuration
  - description: Everything about Otoroshi import/export
    name: import
  - description: Everything about Otoroshi entities templates
    name: templates
  - description: Everything about Otoroshi Environments
    name: environments
  - description: Everything about Otoroshi service groups
    name: groups
  - description: Everything about Otoroshi api keys
    name: apikeys
  - description: Everything about Otoroshi service descriptors
    name: services
  - description: Everything about Otoroshi stats
    name: stats
  - description: Everything about Otoroshi Snow Monkey
    name: snowmonkey
  - description: Everything about Otoroshi health status
    name: health
  - description: Everything about Otoroshi global JWT token verifiers
    name: jwt-verifiers
  - description: Everything about Otoroshi global auth. module config
    name: auth-config
  - description: Everything about Otoroshi request transformer scripts
    name: scripts
  - description: Everything about Otoroshi SSL/TLS certificates
    name: certificates
  - description: Everything about Otoroshi validation authorities
    name: validation-authorities
  - description: Everything about Otoroshi data exporters
    name: data-exporter-configs
paths:
  /api/apikeys:
    get:
      deprecated: false
      description: Get all api keys
      operationId: allApiKeys
      parameters: []
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/ApiKey"
                type: array
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Get all api keys
      tags:
        - apikeys
  /api/auths:
    get:
      deprecated: false
      description: Get all global auth. module configs
      operationId: findAllGlobalAuthModules
      parameters: []
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  oneOf:
                    - $ref: "#/components/schemas/LdapAuthModuleConfig"
                    - $ref: "#/components/schemas/InMemoryAuthModuleConfig"
                    - $ref: "#/components/schemas/GenericOauth2ModuleConfig"
                type: array
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Get all global auth. module configs
      tags:
        - auth-config
    post:
      deprecated: false
      description: Create one global auth. module config
      operationId: createGlobalAuthModule
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
                - $ref: "#/components/schemas/LdapAuthModuleConfig"
                - $ref: "#/components/schemas/InMemoryAuthModuleConfig"
                - $ref: "#/components/schemas/GenericOauth2ModuleConfig"
      responses:
        "200":
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: "#/components/schemas/LdapAuthModuleConfig"
                  - $ref: "#/components/schemas/InMemoryAuthModuleConfig"
                  - $ref: "#/components/schemas/GenericOauth2ModuleConfig"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Create one global auth. module config
      tags:
        - auth-config
  "/api/auths/{id}":
    delete:
      deprecated: false
      description: Delete one global auth. module config
      operationId: deleteGlobalAuthModule
      parameters:
        - description: The auth. config id id
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Deleted"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Delete one global auth. module config
      tags:
        - auth-config
    get:
      deprecated: false
      description: Get one global auth. module configs
      operationId: findGlobalAuthModuleById
      parameters:
        - description: The auth. config id
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: "#/components/schemas/LdapAuthModuleConfig"
                  - $ref: "#/components/schemas/InMemoryAuthModuleConfig"
                  - $ref: "#/components/schemas/GenericOauth2ModuleConfig"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Get one global auth. module configs
      tags:
        - auth-config
    patch:
      deprecated: false
      description: Update one global auth. module config
      operationId: patchGlobalAuthModule
      parameters:
        - description: The auth. config id
          in: path
          name: id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Patch"
      responses:
        "200":
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: "#/components/schemas/LdapAuthModuleConfig"
                  - $ref: "#/components/schemas/InMemoryAuthModuleConfig"
                  - $ref: "#/components/schemas/GenericOauth2ModuleConfig"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Update one global auth. module config
      tags:
        - auth-config
    put:
      deprecated: false
      description: Update one global auth. module config
      operationId: updateGlobalAuthModule
      parameters:
        - description: The auth. config id
          in: path
          name: id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
                - $ref: "#/components/schemas/LdapAuthModuleConfig"
                - $ref: "#/components/schemas/InMemoryAuthModuleConfig"
                - $ref: "#/components/schemas/GenericOauth2ModuleConfig"
      responses:
        "200":
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: "#/components/schemas/LdapAuthModuleConfig"
                  - $ref: "#/components/schemas/InMemoryAuthModuleConfig"
                  - $ref: "#/components/schemas/GenericOauth2ModuleConfig"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Update one global auth. module config
      tags:
        - auth-config
  /api/certificates:
    get:
      deprecated: false
      description: Get all certificates
      operationId: allCerts
      parameters: []
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Certificate"
                type: array
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Get all certificates
      tags:
        - certificates
    post:
      deprecated: false
      description: Create one certificate
      operationId: createCert
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Certificate"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Certificate"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Create one certificate
      tags:
        - certificates
  "/api/certificates/{id}":
    delete:
      deprecated: false
      description: Delete one certificate by id
      operationId: deleteCert
      parameters:
        - description: The certificate id
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Deleted"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Delete one certificate by id
      tags:
        - certificates
    get:
      deprecated: false
      description: Get one certificate by id
      operationId: oneCert
      parameters:
        - description: The auth. config id
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Certificate"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Get one certificate by id
      tags:
        - certificates
    patch:
      deprecated: false
      description: Update one certificate by id
      operationId: patchCert
      parameters:
        - description: The certificate id
          in: path
          name: id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Patch"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Certificate"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Update one certificate by id
      tags:
        - certificates
    put:
      deprecated: false
      description: Update one certificate by id
      operationId: putCert
      parameters:
        - description: The certificate id
          in: path
          name: id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Certificate"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Certificate"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Update one certificate by id
      tags:
        - certificates
  /api/client-validators:
    get:
      deprecated: false
      description: Get all validation authoritiess
      operationId: findAllClientValidators
      parameters: []
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/ValidationAuthority"
                type: array
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Get all validation authoritiess
      tags:
        - validation-authorities
    post:
      deprecated: false
      description: Create one validation authorities
      operationId: createClientValidator
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ValidationAuthority"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ValidationAuthority"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Create one validation authorities
      tags:
        - validation-authorities
  "/api/client-validators/{id}":
    delete:
      deprecated: false
      description: Delete one validation authorities by id
      operationId: deleteClientValidator
      parameters:
        - description: The validation authorities id
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Deleted"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Delete one validation authorities by id
      tags:
        - validation-authorities
    get:
      deprecated: false
      description: Get one validation authorities by id
      operationId: findClientValidatorById
      parameters:
        - description: The auth. config id
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ValidationAuthority"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Get one validation authorities by id
      tags:
        - validation-authorities
    patch:
      deprecated: false
      description: Update one validation authorities by id
      operationId: patchClientValidator
      parameters:
        - description: The validation authorities id
          in: path
          name: id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Patch"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ValidationAuthority"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Update one validation authorities by id
      tags:
        - validation-authorities
    put:
      deprecated: false
      description: Update one validation authorities by id
      operationId: updateClientValidator
      parameters:
        - description: The validation authorities id
          in: path
          name: id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ValidationAuthority"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ValidationAuthority"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Update one validation authorities by id
      tags:
        - validation-authorities
  /api/data-exporter-configs:
    get:
      deprecated: false
      description: Get all data exporter configs
      operationId: findAllDataExporters
      parameters: []
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/DataExporterConfig"
                type: array
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Get all data exporter configs
      tags:
        - data-exporter-configs
    post:
      deprecated: false
      description: Create a new data exporter config
      operationId: createDataExporterConfig
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DataExporterConfig"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataExporterConfig"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Create a new data exporter config
      tags:
        - data-exporter-configs
  /api/data-exporter-configs/_bulk:
    delete:
      deprecated: false
      description: Delete a data exporter config
      operationId: deletebulkDataExporterConfig
      parameters: []
      requestBody:
        content:
          application/ndjson:
            schema:
              $ref: "#/components/schemas/Patch"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  description: The bulk response
                  properties:
                    deleted:
                      description: Whether the action was carried out correctly or not
                      example: true
                      type: boolean
                    id:
                      description: Data exporter id
                      example: true
                      type: boolean
                    status:
                      description: Status
                      enum:
                        - "200"
                      type: string
                  type: object
                type: array
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Delete a data exporter config
      tags:
        - data-exporter-configs
    patch:
      deprecated: false
      description: Update a data exporter configs with a diff
      operationId: patchBulkDataExporterConfig
      parameters: []
      requestBody:
        content:
          application/ndjson:
            schema:
              $ref: "#/components/schemas/Patch"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  description: The bulk response
                  properties:
                    id:
                      description: Data exporter id
                      example: true
                      type: boolean
                    status:
                      description: Status
                      enum:
                        - "200"
                      type: string
                    updated:
                      description: Whether the action was carried out correctly or not
                      example: true
                      type: boolean
                  type: object
                type: array
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Update a data exporter configs with a diff
      tags:
        - data-exporter-configs
    post:
      deprecated: false
      description: Create a new data exporter configs
      operationId: createBulkDataExporterConfigs
      parameters: []
      requestBody:
        content:
          application/ndjson:
            schema:
              $ref: "#/components/schemas/DataExporterConfig"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  description: The bulk response
                  properties:
                    created:
                      description: Whether the action was carried out correctly or not
                      example: true
                      type: boolean
                    id:
                      description: Data exporter id
                      example: true
                      type: boolean
                    status:
                      description: Status
                      enum:
                        - "201"
                      type: string
                  type: object
                type: array
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Create a new data exporter configs
      tags:
        - data-exporter-configs
    put:
      deprecated: false
      description: Update a data exporter configs
      operationId: updateBulkDataExporterConfig
      parameters: []
      requestBody:
        content:
          application/ndjson:
            schema:
              $ref: "#/components/schemas/DataExporterConfig"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  description: The bulk response
                  properties:
                    id:
                      description: Data exporter id
                      example: true
                      type: boolean
                    status:
                      description: Status
                      enum:
                        - "200"
                      type: string
                    updated:
                      description: Whether the action was carried out correctly or not
                      example: true
                      type: boolean
                  type: object
                type: array
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Update a data exporter configs
      tags:
        - data-exporter-configs
  /api/data-exporter-configs/_template:
    get:
      deprecated: false
      description: Get all data exporter configs
      operationId: DataExporterTemplate
      parameters:
        - description: The data exporter config type
          in: query
          name: type
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataExporterConfig"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Get all data exporter configs
      tags:
        - data-exporter-configs
  "/api/data-exporter-configs/{dataExporterConfigId}":
    delete:
      deprecated: false
      description: Delete a data exporter config
      operationId: deleteDataExporterConfig
      parameters:
        - description: The data exporter config id
          in: path
          name: dataExporterConfigId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Deleted"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Delete a data exporter config
      tags:
        - data-exporter-configs
    get:
      deprecated: false
      description: Get a data exporter config
      operationId: findDataExporterConfigById
      parameters:
        - description: The data exporter config id
          in: path
          name: dataExporterConfigId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataExporterConfig"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Get a data exporter config
      tags:
        - data-exporter-configs
    patch:
      deprecated: false
      description: Update a data exporter config with a diff
      operationId: patchDataExporterConfig
      parameters:
        - description: The data exporter config id
          in: path
          name: dataExporterConfigId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Patch"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataExporterConfig"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Update a data exporter config with a diff
      tags:
        - data-exporter-configs
    put:
      deprecated: false
      description: Update a data exporter config
      operationId: updateDataExporterConfig
      parameters:
        - description: The data exporter config id
          in: path
          name: dataExporterConfigId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DataExporterConfig"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataExporterConfig"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Update a data exporter config
      tags:
        - data-exporter-configs
  /api/globalconfig:
    get:
      deprecated: false
      description: Get the full configuration of Otoroshi
      operationId: globalConfig
      parameters: []
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GlobalConfig"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Get the full configuration of Otoroshi
      tags:
        - configuration
    patch:
      deprecated: false
      description: Update the global configuration with a diff
      operationId: patchGlobalConfig
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Patch"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GlobalConfig"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Update the global configuration with a diff
      tags:
        - configuration
    put:
      deprecated: false
      description: Update the global configuration
      operationId: putGlobalConfig
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GlobalConfig"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GlobalConfig"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Update the global configuration
      tags:
        - configuration
  /api/groups:
    get:
      deprecated: false
      description: Get all service groups
      operationId: allServiceGroups
      parameters: []
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Group"
                type: array
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Get all service groups
      tags:
        - groups
    post:
      deprecated: false
      description: Create a new service group
      operationId: createGroup
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Group"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Group"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Create a new service group
      tags:
        - groups
  "/api/groups/{groupId}/apikeys":
    get:
      deprecated: false
      description: Get all api keys for the group of a service
      operationId: apiKeysFromGroup
      parameters:
        - description: The api key group id
          in: path
          name: groupId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/ApiKey"
                type: array
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Get all api keys for the group of a service
      tags:
        - apikeys
    post:
      deprecated: false
      description: Create a new api key for a group
      operationId: createApiKeyFromGroup
      parameters:
        - description: The api key group id
          in: path
          name: groupId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ApiKey"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiKey"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Create a new api key for a group
      tags:
        - apikeys
  "/api/groups/{groupId}/apikeys/{clientId}":
    delete:
      deprecated: false
      description: Delete an api key for a specified service group
      operationId: deleteApiKeyFromGroup
      parameters:
        - description: The api key group id
          in: path
          name: groupId
          required: true
          schema:
            type: string
        - description: the api key id
          in: path
          name: clientId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Deleted"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Delete an api key
      tags:
        - apikeys
    get:
      deprecated: false
      description: Get an api key for a specified service group
      operationId: apiKeyFromGroup
      parameters:
        - description: The api key group id
          in: path
          name: groupId
          required: true
          schema:
            type: string
        - description: the api key id
          in: path
          name: clientId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiKey"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Get an api key
      tags:
        - apikeys
    patch:
      deprecated: false
      description: Update an api key for a specified service descriptor with a diff
      operationId: patchApiKeyFromGroup
      parameters:
        - description: The api key group id
          in: path
          name: groupId
          required: true
          schema:
            type: string
        - description: the api key id
          in: path
          name: clientId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Patch"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiKey"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Update an api key with a diff
      tags:
        - apikeys
    put:
      deprecated: false
      description: Update an api key for a specified service group
      operationId: updateApiKeyFromGroup
      parameters:
        - description: The api key group id
          in: path
          name: groupId
          required: true
          schema:
            type: string
        - description: the api key id
          in: path
          name: clientId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ApiKey"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiKey"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Update an api key
      tags:
        - apikeys
  "/api/groups/{groupId}/apikeys/{clientId}/quotas":
    delete:
      deprecated: false
      description: Reset the quota state of an api key
      operationId: resetApiKeyFromGroupQuotas
      parameters:
        - description: The api key group id
          in: path
          name: groupId
          required: true
          schema:
            type: string
        - description: the api key id
          in: path
          name: clientId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Quotas"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Reset the quota state of an api key
      tags:
        - apikeys
    get:
      deprecated: false
      description: Get the quota state of an api key
      operationId: apiKeyFromGroupQuotas
      parameters:
        - description: The api key group id
          in: path
          name: groupId
          required: true
          schema:
            type: string
        - description: the api key id
          in: path
          name: clientId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Quotas"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Get the quota state of an api key
      tags:
        - apikeys
  "/api/groups/{serviceGroupId}":
    delete:
      deprecated: false
      description: Delete a service group
      operationId: deleteGroup
      parameters:
        - description: The service group id
          in: path
          name: serviceGroupId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Deleted"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Delete a service group
      tags:
        - groups
    get:
      deprecated: false
      description: Get a service group
      operationId: serviceGroup
      parameters:
        - description: The service group id
          in: path
          name: serviceGroupId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Group"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Get a service group
      tags:
        - groups
    patch:
      deprecated: false
      description: Update a service group with a diff
      operationId: patchGroup
      parameters:
        - description: The service group id
          in: path
          name: serviceGroupId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Patch"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Group"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Update a service group with a diff
      tags:
        - groups
    put:
      deprecated: false
      description: Update a service group
      operationId: updateGroup
      parameters:
        - description: The service group id
          in: path
          name: serviceGroupId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Group"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Group"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Update a service group
      tags:
        - groups
  "/api/groups/{serviceGroupId}/services":
    get:
      deprecated: false
      description: Get all services descriptor for a group
      operationId: serviceGroupServices
      parameters:
        - description: The service group id
          in: path
          name: serviceGroupId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/ApiKey"
                type: array
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Get all services descriptor for a group
      tags:
        - services
  /api/import:
    post:
      deprecated: false
      description: Import the full state of Otoroshi as a file
      operationId: fullImportFromFile
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ImportExport"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Done"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Import the full state of Otoroshi as a file
      tags:
        - import
  /api/live:
    get:
      deprecated: false
      description: Get global otoroshi stats
      operationId: globalLiveStats
      parameters: []
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Stats"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Get global otoroshi stats
      tags:
        - stats
  "/api/live/{id}":
    get:
      deprecated: false
      description: Get live feed of global otoroshi stats (global) or for a service {id}
      operationId: serviceLiveStats
      parameters:
        - description: The service id or global for otoroshi stats
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Stats"
            text/event-stream:
              schema:
                $ref: "#/components/schemas/Stats"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Get live feed of otoroshi stats
      tags:
        - stats
  /api/otoroshi.json:
    get:
      deprecated: false
      description: Export the full state of Otoroshi
      operationId: fullExport
      parameters: []
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ImportExport"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Export the full state of Otoroshi
      tags:
        - import
    post:
      deprecated: false
      description: Import the full state of Otoroshi
      operationId: fullImport
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ImportExport"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Done"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Import the full state of Otoroshi
      tags:
        - import
  /api/scripts:
    get:
      deprecated: false
      description: Get all scripts
      operationId: findAllScripts
      parameters: []
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Script"
                type: array
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Get all scripts
      tags:
        - scripts
    post:
      deprecated: false
      description: Create a new script
      operationId: createScript
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Script"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Script"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Create a new script
      tags:
        - scripts
  /api/scripts/_compile:
    post:
      deprecated: false
      description: Compile a script
      operationId: compileScript
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Script"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ScriptCompilationResult"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Compile a script
      tags:
        - scripts
  "/api/scripts/{scriptId}":
    delete:
      deprecated: false
      description: Delete a script
      operationId: deleteScript
      parameters:
        - description: The script id
          in: path
          name: scriptId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Deleted"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Delete a script
      tags:
        - scripts
    get:
      deprecated: false
      description: Get a script
      operationId: findScriptById
      parameters:
        - description: The script id
          in: path
          name: scriptId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Script"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Get a script
      tags:
        - scripts
    patch:
      deprecated: false
      description: Update a script with a diff
      operationId: patchScript
      parameters:
        - description: The script id
          in: path
          name: scriptId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Patch"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Script"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Update a script with a diff
      tags:
        - scripts
    put:
      deprecated: false
      description: Update a script
      operationId: updateScript
      parameters:
        - description: The script id
          in: path
          name: scriptId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Script"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Script"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Update a script
      tags:
        - scripts
  /api/services:
    get:
      deprecated: false
      description: Get all services
      operationId: allServices
      parameters: []
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Service"
                type: array
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Get all services
      tags:
        - services
    post:
      deprecated: false
      description: Create a new service descriptor
      operationId: createService
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Service"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Service"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Create a new service descriptor
      tags:
        - services
  "/api/services/{serviceId}":
    delete:
      deprecated: false
      description: Delete a service descriptor
      operationId: deleteService
      parameters:
        - description: The service id
          in: path
          name: serviceId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Deleted"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Delete a service descriptor
      tags:
        - services
    get:
      deprecated: false
      description: Get a service descriptor
      operationId: service
      parameters:
        - description: The service id
          in: path
          name: serviceId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Service"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Get a service descriptor
      tags:
        - services
    patch:
      deprecated: false
      description: Update a service descriptor with a diff
      operationId: patchService
      parameters:
        - description: The service id
          in: path
          name: serviceId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Patch"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Service"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Update a service descriptor with a diff
      tags:
        - services
    put:
      deprecated: false
      description: Update a service descriptor
      operationId: updateService
      parameters:
        - description: The service id
          in: path
          name: serviceId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Service"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Service"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Update a service descriptor
      tags:
        - services
  "/api/services/{serviceId}/apikeys":
    get:
      deprecated: false
      description: Get all api keys for the group of a service
      operationId: apiKeys
      parameters:
        - description: The api key service id
          in: path
          name: serviceId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/ApiKey"
                type: array
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Get all api keys for the group of a service
      tags:
        - apikeys
    post:
      deprecated: false
      description: ""
      operationId: createApiKey
      parameters:
        - description: The api key service id
          in: path
          name: serviceId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ApiKey"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiKey"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Create a new api key for a service
      tags:
        - apikeys
  "/api/services/{serviceId}/apikeys/{clientId}":
    delete:
      deprecated: false
      description: Delete an api key for a specified service descriptor
      operationId: deleteApiKey
      parameters:
        - description: The api key service id
          in: path
          name: serviceId
          required: true
          schema:
            type: string
        - description: the api key id
          in: path
          name: clientId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Deleted"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Delete an api key
      tags:
        - apikeys
    get:
      deprecated: false
      description: Get an api key for a specified service descriptor
      operationId: apiKey
      parameters:
        - description: The api key service id
          in: path
          name: serviceId
          required: true
          schema:
            type: string
        - description: the api key id
          in: path
          name: clientId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiKey"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Get an api key
      tags:
        - apikeys
    patch:
      deprecated: false
      description: Update an api key for a specified service descriptor with a diff
      operationId: patchApiKey
      parameters:
        - description: The api key service id
          in: path
          name: serviceId
          required: true
          schema:
            type: string
        - description: the api key id
          in: path
          name: clientId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Patch"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiKey"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Update an api key with a diff
      tags:
        - apikeys
    put:
      deprecated: false
      description: Update an api key for a specified service descriptor
      operationId: updateApiKey
      parameters:
        - description: The api key service id
          in: path
          name: serviceId
          required: true
          schema:
            type: string
        - description: the api key id
          in: path
          name: clientId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ApiKey"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiKey"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Update an api key
      tags:
        - apikeys
  "/api/services/{serviceId}/apikeys/{clientId}/group":
    get:
      deprecated: false
      description: Get the group of an api key
      operationId: apiKeyGroup
      parameters:
        - description: The api key service id
          in: path
          name: serviceId
          required: true
          schema:
            type: string
        - description: the api key id
          in: path
          name: clientId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Group"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Get the group of an api key
      tags:
        - apikeys
  "/api/services/{serviceId}/apikeys/{clientId}/quotas":
    delete:
      deprecated: false
      description: Reset the quota state of an api key
      operationId: resetApiKeyQuotas
      parameters:
        - description: The api key service id
          in: path
          name: serviceId
          required: true
          schema:
            type: string
        - description: the api key id
          in: path
          name: clientId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Quotas"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Reset the quota state of an api key
      tags:
        - apikeys
    get:
      deprecated: false
      description: Get the quota state of an api key
      operationId: apiKeyQuotas
      parameters:
        - description: The api key service id
          in: path
          name: serviceId
          required: true
          schema:
            type: string
        - description: the api key id
          in: path
          name: clientId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Quotas"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Get the quota state of an api key
      tags:
        - apikeys
  "/api/services/{serviceId}/targets":
    delete:
      deprecated: false
      description: Delete a service descriptor target
      operationId: serviceDeleteTarget
      parameters:
        - description: The service id
          in: path
          name: serviceId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Target"
                type: array
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Delete a service descriptor target
      tags:
        - services
    get:
      deprecated: false
      description: Get a service descriptor targets
      operationId: serviceTargets
      parameters:
        - description: The service id
          in: path
          name: serviceId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Target"
                type: array
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Get a service descriptor targets
      tags:
        - services
    patch:
      deprecated: false
      description: Update a service descriptor targets
      operationId: updateServiceTargets
      parameters:
        - description: The service id
          in: path
          name: serviceId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Patch"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Target"
                type: array
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Update a service descriptor targets
      tags:
        - services
    post:
      deprecated: false
      description: Add a target to a service descriptor
      operationId: serviceAddTarget
      parameters:
        - description: The service id
          in: path
          name: serviceId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Target"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Target"
                type: array
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Add a target to a service descriptor
      tags:
        - services
  "/api/services/{serviceId}/template":
    delete:
      deprecated: false
      description: Delete a service descriptor error template
      operationId: deleteServiceTemplate
      parameters:
        - description: The service id
          in: path
          name: serviceId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Deleted"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Delete a service descriptor error template
      tags:
        - services
    get:
      deprecated: false
      description: Get a service descriptor error template
      operationId: serviceTemplate
      parameters:
        - description: The service id
          in: path
          name: serviceId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorTemplate"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Get a service descriptor error template
      tags:
        - services
    post:
      deprecated: false
      description: Update a service descriptor targets
      operationId: createServiceTemplate
      parameters:
        - description: The service id
          in: path
          name: serviceId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ErrorTemplate"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorTemplate"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Create a service descriptor error template
      tags:
        - services
    put:
      deprecated: false
      description: Update an error template to a service descriptor
      operationId: updateServiceTemplate
      parameters:
        - description: The service id
          in: path
          name: serviceId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ErrorTemplate"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorTemplate"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Update an error template to a service descriptor
      tags:
        - services
  /api/snowmonkey/_start:
    post:
      deprecated: false
      description: Start the Snow Monkey
      operationId: startSnowMonkey
      parameters: []
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Done"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Start the Snow Monkey
      tags:
        - snowmonkey
  /api/snowmonkey/_stop:
    post:
      deprecated: false
      description: Stop the Snow Monkey
      operationId: stopSnowMonkey
      parameters: []
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Done"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Stop the Snow Monkey
      tags:
        - snowmonkey
  /api/snowmonkey/config:
    get:
      deprecated: false
      description: Get current Snow Monkey config
      operationId: getSnowMonkeyConfig
      parameters: []
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SnowMonkeyConfig"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Get current Snow Monkey config
      tags:
        - snowmonkey
    patch:
      deprecated: false
      description: Update current Snow Monkey config
      operationId: patchSnowMonkey
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Group"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SnowMonkeyConfig"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Update current Snow Monkey config
      tags:
        - snowmonkey
    put:
      deprecated: false
      description: Update current Snow Monkey config
      operationId: updateSnowMonkey
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Group"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SnowMonkeyConfig"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Update current Snow Monkey config
      tags:
        - snowmonkey
  /api/snowmonkey/outages:
    delete:
      deprecated: false
      description: Reset Snow Monkey Outages for the day
      operationId: resetSnowMonkey
      parameters: []
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Done"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Reset Snow Monkey Outages for the day
      tags:
        - snowmonkey
    get:
      deprecated: false
      description: Get all current Snow Monkey ourages
      operationId: getSnowMonkeyOutages
      parameters: []
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Outage"
                type: array
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Get all current Snow Monkey ourages
      tags:
        - snowmonkey
  /api/verifiers:
    get:
      deprecated: false
      description: Get all global JWT verifiers
      operationId: findAllGlobalJwtVerifiers
      parameters: []
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/GlobalJwtVerifier"
                type: array
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Get all global JWT verifiers
      tags:
        - jwt-verifiers
    post:
      deprecated: false
      description: Create one global JWT verifiers
      operationId: createGlobalJwtVerifier
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GlobalJwtVerifier"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GlobalJwtVerifier"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Create one global JWT verifiers
      tags:
        - jwt-verifiers
  "/api/verifiers/{verifierId}":
    delete:
      deprecated: false
      description: Delete one global JWT verifiers
      operationId: deleteGlobalJwtVerifier
      parameters:
        - description: The jwt verifier id
          in: path
          name: verifierId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Deleted"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Delete one global JWT verifiers
      tags:
        - jwt-verifiers
    get:
      deprecated: false
      description: Get one global JWT verifiers
      operationId: findGlobalJwtVerifiersById
      parameters:
        - description: The jwt verifier id
          in: path
          name: verifierId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GlobalJwtVerifier"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Get one global JWT verifiers
      tags:
        - jwt-verifiers
    patch:
      deprecated: false
      description: Update one global JWT verifiers
      operationId: patchGlobalJwtVerifier
      parameters:
        - description: The jwt verifier id
          in: path
          name: verifierId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Patch"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GlobalJwtVerifier"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Update one global JWT verifiers
      tags:
        - jwt-verifiers
    put:
      deprecated: false
      description: Update one global JWT verifiers
      operationId: updateGlobalJwtVerifier
      parameters:
        - description: The jwt verifier id
          in: path
          name: verifierId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GlobalJwtVerifier"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GlobalJwtVerifier"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Update one global JWT verifiers
      tags:
        - jwt-verifiers
  /health:
    get:
      deprecated: false
      description: Import the full state of Otoroshi as a file
      operationId: health
      parameters: []
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OtoroshiHealth"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "404":
          description: Resource not found or does not exist
      summary: Return current Otoroshi health
      tags:
        - health
  /lines:
    get:
      deprecated: false
      description: Get all environments provided by the current Otoroshi instance
      operationId: allLines
      parameters: []
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Environment"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Get all environments
      tags:
        - environments
  "/lines/{line}/services":
    get:
      deprecated: false
      description: Get all services for an environment provided by the current Otoroshi instance
      operationId: servicesForALine
      parameters:
        - description: The environment where to find services
          in: path
          name: line
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Service"
                type: array
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Get all services for an environment
      tags:
        - environments
  /new/apikey:
    get:
      deprecated: false
      description: Get a template of an Otoroshi Api Key. The generated entity is not persisted
      operationId: initiateApiKey
      parameters: []
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiKey"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Get a template of an Otoroshi Api Key
      tags:
        - templates
  /new/group:
    get:
      deprecated: false
      description: Get a template of an Otoroshi service group. The generated entity is not persisted
      operationId: initiateServiceGroup
      parameters: []
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Group"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Get a template of an Otoroshi service group
      tags:
        - templates
  /new/service:
    get:
      deprecated: false
      description: Get a template of an Otoroshi service descriptor. The generated entity is not persisted
      operationId: initiateService
      parameters: []
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Service"
          description: Successful operation
        "400":
          description: Bad resource format. Take another look to the swagger, or open an issue :)
        "401":
          description: You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication
        "404":
          description: Resource not found or does not exist
      security:
        - otoroshi_auth: []
      summary: Get a template of an Otoroshi service descriptor
      tags:
        - templates
components:
  schemas:
    ApiKey:
      description: An Otoroshi Api Key. An Api Key is defined for a group of services to allow usage of the same Api Key for multiple services.
      properties:
        authorizedEntities:
          description: The group/service ids (prefixed by group_ or service_ on which the key is authorized
          example:
            - a string value
          items:
            example: a string value
            type: string
          type: array
        clientId:
          description: The unique id of the Api Key. Usually 16 random alpha numerical characters, but can be anything
          example: a string value
          type: string
        clientName:
          description: The name of the api key, for humans ;-)
          example: a string value
          type: string
        clientSecret:
          description: The secret of the Api Key. Usually 64 random alpha numerical characters, but can be anything
          example: a string value
          type: string
        dailyQuota:
          description: Authorized number of calls per day
          example: 123
          format: int64
          type: integer
        enabled:
          description: Whether or not the key is enabled. If disabled, resources won't be available to calls using this key
          example: true
          type: boolean
        metadata:
          additionalProperties:
            type: string
          description: Bunch of metadata for the key
          example:
            key: value
          type: object
        monthlyQuota:
          description: Authorized number of calls per month
          example: 123
          format: int64
          type: integer
        throttlingQuota:
          description: Authorized number of calls per second, measured on 10 seconds
          example: 123
          format: int64
          type: integer
      required:
        - clientId
        - clientSecret
        - clientName
        - authorizedEntities
        - enabled
      type: object
    Auth0Config:
      description: Configuration for Auth0 domain
      properties:
        callbackUrl:
          description: Auth0 callback URL
          example: a string value
          type: string
        clientId:
          description: Auth0 client id
          example: a string value
          type: string
        clientSecret:
          description: Auth0 client secret
          example: a string value
          type: string
        domain:
          description: Auth0 domain
          example: a string value
          type: string
      required:
        - clientId
        - clientSecret
        - domain
        - callbackUrl
      type: object
    BadResponse:
      description: An HTTP response that is not supposed to be returned by a service
      properties:
        body:
          description: The body of the HTTP response
          example: a string value
          type: string
        headers:
          additionalProperties:
            type: string
          description: The HTTP headers of the response
          example:
            key: value
          type: object
        status:
          description: The HTTP status for the response
          example: 123123
          format: int32
          type: integer
      required:
        - status
        - body
        - headers
      type: object
    BadResponsesFaultConfig:
      description: Config for bad requests injection fault
      properties:
        ratio:
          description: The percentage of requests affected by this fault. Value should be between 0.0 and 1.0
          example: 42.2
          format: double
          type: number
        responses:
          description: The possibles responses
          items:
            $ref: "#/components/schemas/BadResponse"
          type: array
      required:
        - ratio
        - responses
      type: object
    Canary:
      description: The configuration of the canary mode for a service descriptor
      properties:
        enabled:
          description: Use canary mode for this service
          example: true
          type: boolean
        root:
          description: Otoroshi will append this root to any target choosen. If the specified root is '/api/foo', then a request to https://yyyyyyy/bar will actually hit https://xxxxxxxxx/api/foo/bar
          example: a string value
          type: string
        targets:
          description: The list of target that Otoroshi will proxy and expose through the subdomain defined before. Otoroshi will do round-robin load balancing between all those targets with circuit breaker mecanism to avoid cascading failures
          items:
            $ref: "#/components/schemas/Target"
          type: array
        traffic:
          description: Ratio of traffic that will be sent to canary targets.
          example: 123123
          format: int32
          type: integer
      required:
        - enabled
        - traffic
        - targets
        - root
      type: object
    Certificate:
      description: A SSL/TLS X509 certificate
      properties:
        autoRenew:
          description: Allow Otoroshi to renew the certificate (if self signed)
          example: a string value
          type: string
        ca:
          description: Certificate is a CA (read only)
          example: a string value
          type: string
        caRef:
          description: Reference for a CA certificate in otoroshi
          example: a string value
          type: string
        chain:
          description: Certificate chain of trust in PEM format
          example: a string value
          type: string
        domain:
          description: Domain of the certificate (read only)
          example: a string value
          type: string
        from:
          description: Start date of validity
          example: a string value
          type: string
        id:
          description: Id of the certificate
          example: a string value
          type: string
        privateKey:
          description: PKCS8 private key in PEM format
          example: a string value
          type: string
        selfSigned:
          description: Certificate is self signed  read only)
          example: a string value
          type: string
        subject:
          description: Subject of the certificate (read only)
          example: a string value
          type: string
        to:
          description: End date of validity
          example: a string value
          type: string
        valid:
          description: Certificate is valid (read only)
          example: a string value
          type: string
      required:
        - id
        - chain
        - privateKey
        - caRef
        - domain
        - selfSigned
        - ca
        - valid
        - autoRenew
        - subject
        - from
        - to
      type: object
    ChaosConfig:
      description: Configuration for the faults that can be injected in requests
      properties:
        badResponsesFaultConfig:
          $ref: "#/components/schemas/BadResponsesFaultConfig"
        enabled:
          description: Whether or not this config is enabled
          example: true
          type: boolean
        largeRequestFaultConfig:
          $ref: "#/components/schemas/LargeRequestFaultConfig"
        largeResponseFaultConfig:
          $ref: "#/components/schemas/LargeResponseFaultConfig"
        latencyInjectionFaultConfig:
          $ref: "#/components/schemas/LatencyInjectionFaultConfig"
      required:
        - enabled
      type: object
    CleverSettings:
      description: Configuration for CleverCloud client
      properties:
        consumerKey:
          description: CleverCloud consumer key
          example: a string value
          type: string
        consumerSecret:
          description: CleverCloud consumer token
          example: a string value
          type: string
        orgaId:
          description: CleverCloud organization id
          example: a string value
          type: string
        secret:
          description: CleverCloud oauth secret
          example: a string value
          type: string
        token:
          description: CleverCloud oauth token
          example: a string value
          type: string
      required:
        - consumerKey
        - consumerSecret
        - token
        - secret
        - orgaId
      type: object
    ClientConfig:
      description: The configuration of the circuit breaker for a service descriptor
      properties:
        backoffFactor:
          description: Specify the factor to multiply the delay for each retry
          example: 123123
          format: int32
          type: integer
        callTimeout:
          description: Specify how long each call should last at most in milliseconds
          example: 123123
          format: int32
          type: integer
        globalTimeout:
          description: Specify how long the global call (with retries) should last at most in milliseconds
          example: 123123
          format: int32
          type: integer
        maxErrors:
          description: Specify how many errors can pass before opening the circuit breaker
          example: 123123
          format: int32
          type: integer
        retries:
          description: Specify how many times the client will try to fetch the result of the request after an error before giving up.
          example: 123123
          format: int32
          type: integer
        retryInitialDelay:
          description: Specify the delay between two retries. Each retry, the delay is multiplied by the backoff factor
          example: 123123
          format: int32
          type: integer
        sampleInterval:
          description: Specify the sliding window time for the circuit breaker in milliseconds, after this time, error count will be reseted
          example: 123123
          format: int32
          type: integer
        useCircuitBreaker:
          description: Use a circuit breaker to avoid cascading failure when calling chains of services. Highly recommended !
          example: true
          type: boolean
      required:
        - useCircuitBreaker
        - retries
        - maxErrors
        - retryInitialDelay
        - backoffFactor
        - callTimeout
        - globalTimeout
        - sampleInterval
      type: object
    ConsoleDataExporterConfig:
      properties: {}
      type: object
    CorsSettings:
      description: The configuration for cors support
      properties:
        allowCredentials:
          description: Allow to pass credentials
          example: true
          type: boolean
        allowHeaders:
          description: The cors allowed headers
          items:
            example: a string value
            type: string
          type: array
        allowMethods:
          description: The cors allowed methods
          items:
            example: a string value
            type: string
          type: array
        allowOrigin:
          description: The cors allowed origin
          example: a string value
          type: string
        enabled:
          description: Whether or not cors is enabled
          example: true
          type: boolean
        excludedPatterns:
          description: The cors excluded patterns
          items:
            example: a string value
            type: string
          type: array
        exposeHeaders:
          description: The cors exposed header
          items:
            example: a string value
            type: string
          type: array
        maxAge:
          description: Cors max age
          example: 123123
          format: int32
          type: integer
      required:
        - enabled
        - allowOrigin
        - exposeHeaders
        - allowHeaders
        - allowMethods
        - excludedPatterns
        - maxAge
        - allowCredentials
      type: object
    CustomDataExporterConfig:
      properties:
        config:
          additionalProperties:
            type: string
          description: Custom data exporter config
          example:
            key: value
          type: object
        ref:
          description: Script Ref
          example: a string value
          type: string
      required:
        - ref
        - config
      type: object
    DataExporterConfig:
      description: Settings to export Otorshi events
      properties:
        bufferSize:
          description: buffer size
          example: 123123
          format: int32
          type: integer
        config:
          description: Data Exporter config
          oneOf:
            - $ref: "#/components/schemas/ElasticConfig"
            - $ref: "#/components/schemas/KafkaConfig"
            - $ref: "#/components/schemas/PulsarDataExporterConfig"
            - $ref: "#/components/schemas/FileDataExporterConfig"
            - $ref: "#/components/schemas/MailerGenericExporterConfig"
            - $ref: "#/components/schemas/MailerConsoleExporterConfig"
            - $ref: "#/components/schemas/MailerMailgunExporterConfig"
            - $ref: "#/components/schemas/MailerMailjetExporterConfig"
            - $ref: "#/components/schemas/MailerSendgridExporterConfig"
            - $ref: "#/components/schemas/ConsoleDataExporterConfig"
            - $ref: "#/components/schemas/CustomDataExporterConfig"
        desc:
          description: Description
          example: a string value
          type: string
        enabled:
          description: Boolean
          example: a string value
          type: string
        filtering:
          $ref: "#/components/schemas/Filtering"
          description: filtering
        groupDuration:
          description: duration
          example: 123
          format: int64
          type: integer
        groupSize:
          description: Group size
          example: 123123
          format: int32
          type: integer
        id:
          description: Id
          example: a string value
          type: string
        jsonWorkers:
          description: nb workers
          example: 123123
          format: int32
          type: integer
        location:
          $ref: "#/components/schemas/Location"
          description: location
        metadata:
          additionalProperties:
            type: string
          description: Metadata
          example:
            key: value
          type: object
        name:
          description: Name
          example: a string value
          type: string
        projection:
          additionalProperties:
            type: string
          description: projection
          example:
            key: value
          type: object
        sendWorkers:
          description: send workers
          example: 123123
          format: int32
          type: integer
        typ:
          description: Type of data exporter
          enum:
            - kafka
            - pulsar
            - file
            - mailer
            - elastic
            - console
            - custom
          type: string
      type: object
    Deleted:
      properties:
        deleted:
          example: true
          type: boolean
      required:
        - deleted
      type: object
    Done:
      properties:
        done:
          example: true
          type: boolean
      required:
        - done
      type: object
    ESAlgoSettings:
      description: Settings for an EC + SHA signing algorithm
      properties:
        privateKey:
          description: The private key for the RSA function
          example: a string value
          type: string
        publicKey:
          description: The public key for the RSA function
          example: a string value
          type: string
        size:
          description: Size for SHA function. can be 256, 384 or 512
          example: 123123
          format: int32
          type: integer
        type:
          description: String with value ESAlgoSettings
          example: a string value
          type: string
      required:
        - type
        - size
        - publicKey
      type: object
    ElasticConfig:
      description: The configuration for elastic access
      properties:
        clusterUri:
          description: URL of the elastic cluster
          example: a string value
          type: string
        headers:
          additionalProperties:
            type: string
          description: Additionnal http headers
          example:
            key: value
          type: object
        index:
          description: Index for events. Default is otoroshi-events
          example: a string value
          type: string
        password:
          description: Optional password
          example: a string value
          type: string
        type:
          description: Type of events. Default is event
          example: a string value
          type: string
        user:
          description: Optional user
          example: a string value
          type: string
      required:
        - clusterUri
        - index
        - type
        - user
        - password
        - headers
      type: object
    Environment:
      description: The name of the environment for service descriptors
      example: prod
      type: string
    ErrorTemplate:
      description: Error templates for a service descriptor
      properties:
        messages:
          additionalProperties:
            type: string
          description: Map for custom messages
          example:
            key: value
          type: object
        serviceId:
          description: The Id of the service for which the error template is enabled
          example: a string value
          type: string
        template40x:
          description: The html template for 40x errors
          example: a string value
          type: string
        template50x:
          description: The html template for 50x errors
          example: a string value
          type: string
        templateBuild:
          description: The html template for build page
          example: a string value
          type: string
        templateMaintenance:
          description: The html template for maintenance page
          example: a string value
          type: string
      required:
        - serviceId
        - template40x
        - template50x
        - templateBuild
        - templateMaintenance
        - messages
      type: object
    ExposedApi:
      description: The Open API configuration for your service (if one)
      properties:
        exposeApi:
          description: Whether or not the current service expose an API with an Open API descriptor
          example: true
          type: boolean
        openApiDescriptorUrl:
          description: The URL of the Open API descriptor
          example: http://www.google.com
          format: uri
          type: string
      required:
        - exposeApi
      type: object
    FileDataExporterConfig:
      properties:
        path:
          description: Path to file
          example: a string value
          type: string
      required:
        - path
      type: object
    Filtering:
      properties:
        exclude:
          description: Excluding pattern
          items:
            additionalProperties:
              type: string
            example:
              key: value
            type: object
          type: array
        include:
          description: Including pattern
          items:
            additionalProperties:
              type: string
            example:
              key: value
            type: object
          type: array
      required:
        - include, exclude
      type: object
    GenericOauth2ModuleConfig:
      description: Settings to authenticate users using a generic OAuth2 provider
      properties:
        accessTokenField:
          description: Field name to get access token
          example: a string value
          type: string
        authorizeUrl:
          description: OAuth authorize URL
          example: a string value
          type: string
        callbackUrl:
          description: Otoroshi callback URL
          example: a string value
          type: string
        claims:
          description: The claims of the token
          example: a string value
          type: string
        clientId:
          description: OAuth Client id
          example: a string value
          type: string
        clientSecret:
          description: OAuth Client secret
          example: a string value
          type: string
        desc:
          description: Description of the config
          example: a string value
          type: string
        emailField:
          description: Field name to get email from user profile
          example: a string value
          type: string
        id:
          description: Unique id of the config
          example: a string value
          type: string
        jwtVerifier:
          description: Algo. settings to verify JWT token
          oneOf:
            - $ref: "#/components/schemas/HSAlgoSettings"
            - $ref: "#/components/schemas/RSAlgoSettings"
            - $ref: "#/components/schemas/ESAlgoSettings"
            - $ref: "#/components/schemas/JWKSAlgoSettings"
        loginUrl:
          description: OAuth login URL
          example: a string value
          type: string
        logoutUrl:
          description: OAuth logout URL
          example: a string value
          type: string
        name:
          description: Name of the config
          example: a string value
          type: string
        nameField:
          description: Field name to get name from user profile
          example: a string value
          type: string
        oidConfig:
          description: URL of the OIDC config. file
          example: a string value
          type: string
        otoroshiDataField:
          description: Field name to get otoroshi metadata from. You can specify sub fields using | as separator
          example: a string value
          type: string
        readProfileFromToken:
          description: The user profile will be read from the JWT token in id_token
          example: true
          type: boolean
        scope:
          description: The scope of the token
          example: a string value
          type: string
        sessionMaxAge:
          description: Max age of the session
          example: 123123
          format: int32
          type: integer
        tokenUrl:
          description: OAuth token URL
          example: a string value
          type: string
        type:
          description: Type of settings. value is oauth2
          example: a string value
          type: string
        useCookies:
          description: Use for redirection to actual service
          example: true
          type: boolean
        useJson:
          description: Use JSON or URL Form Encoded as payload with the OAuth provider
          example: true
          type: boolean
        userInfoUrl:
          description: OAuth userinfo to get user profile
          example: a string value
          type: string
      required:
        - type
        - id
        - name
        - desc
        - sessionMaxAge
        - clientId
        - clientSecret
        - authorizeUrl
        - tokenUrl
        - userInfoUrl
        - loginUrl
        - logoutUrl
        - callbackUrl
        - accessTokenField
        - nameField
        - emailField
        - otoroshiDataField
      type: object
    GlobalConfig:
      description: The global config object of Otoroshi, used to customize settings of the current Otoroshi instance
      properties:
        alertsEmails:
          description: Email addresses that will receive all Otoroshi alert events
          items:
            example: admin@otoroshi.io
            format: email
            type: string
          type: array
        alertsWebhooks:
          description: Webhook that will receive all Otoroshi alert events
          items:
            $ref: "#/components/schemas/Webhook"
          type: array
        analyticsWebhooks:
          description: Webhook that will receive all internal Otoroshi events
          items:
            $ref: "#/components/schemas/Webhook"
          type: array
        apiReadOnly:
          description: If enabled, Admin API won't be able to write/update/delete entities
          example: true
          type: boolean
        autoLinkToDefaultGroup:
          description: If not defined, every new service descriptor will be added to the default group
          example: true
          type: boolean
        backofficeAuth0Config:
          $ref: "#/components/schemas/Auth0Config"
          description: Optional configuration for the backoffice Auth0 domain
        cleverSettings:
          $ref: "#/components/schemas/CleverSettings"
          description: Optional CleverCloud configuration
        elasticReadsConfig:
          $ref: "#/components/schemas/ElasticConfig"
          description: Config. for elastic reads
        elasticWritesConfigs:
          description: Configs. for Elastic writes
          items:
            $ref: "#/components/schemas/ElasticConfig"
          type: array
        endlessIpAddresses:
          description: IP addresses for which any request to Otoroshi will respond with 128 Gb of zeros
          items:
            example: 192.192.192.192
            format: ipv4
            type: string
          type: array
        ipFiltering:
          $ref: "#/components/schemas/IpFiltering"
        limitConcurrentRequests:
          description: If enabled, Otoroshi will reject new request if too much at the same time
          example: true
          type: boolean
        lines:
          description: Possibles lines for Otoroshi
          items:
            example: a string value
            type: string
          type: array
        mailerSettings:
          $ref: "#/components/schemas/MailerSettings"
          description: Optional mailer configuration
        maxConcurrentRequests:
          description: The number of authorized request processed at the same time
          example: 123
          format: int64
          type: integer
        maxHttp10ResponseSize:
          description: The max size in bytes of an HTTP 1.0 response
          example: 123
          format: int64
          type: integer
        maxLogsSize:
          description: Number of events kept locally
          example: 123123
          format: int32
          type: integer
        middleFingers:
          description: Use middle finger emoji as a response character for endless HTTP responses
          example: true
          type: boolean
        perIpThrottlingQuota:
          description: Authorized number of calls per second globally per IP address, measured on 10 seconds
          example: 123
          format: int64
          type: integer
        privateAppsAuth0Config:
          $ref: "#/components/schemas/Auth0Config"
          description: Optional configuration for the private apps Auth0 domain
        streamEntityOnly:
          description: HTTP will be streamed only. Doesn't work with old browsers
          example: true
          type: boolean
        throttlingQuota:
          description: Authorized number of calls per second globally, measured on 10 seconds
          example: 123
          format: int64
          type: integer
        u2fLoginOnly:
          description: If enabled, login to backoffice through Auth0 will be disabled
          example: true
          type: boolean
        useCircuitBreakers:
          description: If enabled, services will be authorized to use circuit breakers
          example: true
          type: boolean
      required:
        - streamEntityOnly
        - autoLinkToDefaultGroup
        - limitConcurrentRequests
        - maxConcurrentRequests
        - useCircuitBreakers
        - apiReadOnly
        - u2fLoginOnly
        - ipFiltering
        - throttlingQuota
        - perIpThrottlingQuota
        - analyticsWebhooks
        - alertsWebhooks
        - alertsEmails
        - endlessIpAddresses
      type: object
    GlobalJwtVerifier:
      description: A JWT verifier used by multiple service descriptor
      properties:
        algoSettings:
          oneOf:
            - $ref: "#/components/schemas/HSAlgoSettings"
            - $ref: "#/components/schemas/RSAlgoSettings"
            - $ref: "#/components/schemas/ESAlgoSettings"
            - $ref: "#/components/schemas/JWKSAlgoSettings"
        desc:
          description: Verifier description
          example: a string value
          type: string
        enabled:
          description: Is it enabled
          example: true
          type: boolean
        id:
          description: Verifier id
          example: a string value
          type: string
        name:
          description: Verifier name
          example: a string value
          type: string
        source:
          oneOf:
            - $ref: "#/components/schemas/InQueryParam"
            - $ref: "#/components/schemas/InHeader"
            - $ref: "#/components/schemas/InCookie"
        strategy:
          oneOf:
            - $ref: "#/components/schemas/PassThrough"
            - $ref: "#/components/schemas/Sign"
            - $ref: "#/components/schemas/Transform"
        strict:
          description: Does it fail if JWT not found
          example: true
          type: boolean
      required:
        - type
        - id
        - name
        - desc
        - enabled
        - strict
        - source
        - algoSettings
        - strategy
      type: object
    Group:
      description: An Otoroshi service group is just a group of service descriptor. It is useful to be able to define Api Keys for the whole group
      properties:
        description:
          description: The descriptoin of the group
          example: a string value
          type: string
        id:
          description: The unique id of the group. Usually 64 random alpha numerical characters, but can be anything
          example: a string value
          type: string
        name:
          description: The name of the group
          example: a string value
          type: string
      required:
        - id
        - name
      type: object
    Gzip:
      description: Configuration for gzip of service responses
      properties:
        blackList:
          description: Blacklisted mime types. Wildcard supported
          items:
            example: a string value
            type: string
          type: array
        bufferSize:
          description: Size of the GZip buffer
          example: 123
          format: int64
          type: integer
        chunkedThreshold:
          description: Threshold for chunking data
          example: 123
          format: int64
          type: integer
        compressionLevel:
          description: Compression level. From 0 to 9
          example: 123123
          format: int32
          type: integer
        enabled:
          description: Whether gzip compression is enabled or not
          example: true
          type: boolean
        excludedPatterns:
          description: Patterns that are excluded from gzipping
          items:
            example: a string value
            type: string
          type: array
        whiteList:
          description: Whitelisted mime types. Wildcard supported
          items:
            example: a string value
            type: string
          type: array
      required:
        - enabled
        - excludedPatterns
        - whiteList
        - blackList
        - bufferSize
        - chunkedThreshold
        - compressionLevel
      type: object
    HSAlgoSettings:
      description: Settings for an HMAC + SHA signing algorithm
      properties:
        secret:
          description: The secret value for the HMAC function
          example: a string value
          type: string
        size:
          description: Size for SHA function. can be 256, 384 or 512
          example: 123123
          format: int32
          type: integer
        type:
          description: String with value HSAlgoSettings
          example: a string value
          type: string
      required:
        - type
        - size
        - secret
      type: object
    HealthCheck:
      description: The configuration for checking health of a service. Otoroshi will perform GET call on the URL to check if the service is still alive
      properties:
        enabled:
          description: Whether or not healthcheck is enabled on the current service descriptor
          example: true
          type: boolean
        url:
          description: The URL to check
          example: http://www.google.com
          format: uri
          type: string
      required:
        - enabled
      type: object
    ImportExport:
      description: The structure that can be imported to or exported from Otoroshi. It represent the memory state of Otoroshi
      properties:
        admins:
          description: Current U2F admin at the time of export
          items:
            description: Administrator using FIDO U2F device to access Otoroshi
            properties:
              createdAt:
                description: The creation date of the user
                example: 123
                format: int64
                type: integer
              label:
                description: The label for the user
                example: a string value
                type: string
              password:
                description: The hashed password of the user
                example: a string value
                type: string
              registration:
                additionalProperties:
                  type: string
                description: The U2F registration slug
                example:
                  key: value
                type: object
              username:
                description: The email address of the user
                example: a string value
                type: string
            required:
              - username
              - label
              - password
              - createdAt
              - registration
            type: object
          type: array
        apiKeys:
          description: Current apik keys at the time of export
          items:
            description: An Otoroshi Api Key. An Api Key is defined for a group of services to allow usage of the same Api Key for multiple services.
            properties:
              authorizedEntities:
                description: The group/service ids (prefixed by group_ or service_ on which the key is authorized
                example:
                  - a string value
                items:
                  example: a string value
                  type: string
                type: array
              clientId:
                description: The unique id of the Api Key. Usually 16 random alpha numerical characters, but can be anything
                example: a string value
                type: string
              clientName:
                description: The name of the api key, for humans ;-)
                example: a string value
                type: string
              clientSecret:
                description: The secret of the Api Key. Usually 64 random alpha numerical characters, but can be anything
                example: a string value
                type: string
              dailyQuota:
                description: Authorized number of calls per day
                example: 123
                format: int64
                type: integer
              enabled:
                description: Whether or not the key is enabled. If disabled, resources won't be available to calls using this key
                example: true
                type: boolean
              metadata:
                additionalProperties:
                  type: string
                description: Bunch of metadata for the key
                example:
                  key: value
                type: object
              monthlyQuota:
                description: Authorized number of calls per month
                example: 123
                format: int64
                type: integer
              throttlingQuota:
                description: Authorized number of calls per second, measured on 10 seconds
                example: 123
                format: int64
                type: integer
            required:
              - clientId
              - clientSecret
              - clientName
              - authorizedEntities
              - enabled
            type: object
          type: array
        appConfig:
          additionalProperties:
            type: string
          description: Current env variables at the time of export
          example:
            key: value
          type: object
        config:
          $ref: "#/components/schemas/GlobalConfig"
          description: Current global config at the time of export
        date:
          example: 2017-07-21T17:32:28Z
          format: date-time
          type: string
        dateRaw:
          example: 123
          format: int64
          type: integer
        errorTemplates:
          description: Current error templates at the time of export
          items:
            description: Error templates for a service descriptor
            properties:
              messages:
                additionalProperties:
                  type: string
                description: Map for custom messages
                example:
                  key: value
                type: object
              serviceId:
                description: The Id of the service for which the error template is enabled
                example: a string value
                type: string
              template40x:
                description: The html template for 40x errors
                example: a string value
                type: string
              template50x:
                description: The html template for 50x errors
                example: a string value
                type: string
              templateBuild:
                description: The html template for build page
                example: a string value
                type: string
              templateMaintenance:
                description: The html template for maintenance page
                example: a string value
                type: string
            required:
              - serviceId
              - template40x
              - template50x
              - templateBuild
              - templateMaintenance
              - messages
            type: object
          type: array
        label:
          example: a string value
          type: string
        serviceDescriptors:
          description: Current service descriptors at the time of export
          items:
            description: An otoroshi service descriptor. Represent a forward HTTP call on a domain to another location with some optional api management mecanism
            properties:
              Canary:
                $ref: "#/components/schemas/Canary"
              additionalHeaders:
                additionalProperties:
                  type: string
                description: Specify headers that will be added to each client request. Useful to add authentication
                example:
                  key: value
                type: object
              api:
                $ref: "#/components/schemas/ExposedApi"
              authConfigRef:
                description: A reference to a global auth module config
                example: a string value
                type: string
              buildMode:
                description: Display a construction page when a user try to use the service
                example: true
                type: boolean
              chaosConfig:
                $ref: "#/components/schemas/ChaosConfig"
              clientConfig:
                $ref: "#/components/schemas/ClientConfig"
              clientValidatorRef:
                description: A reference to validation authority
                example: a string value
                type: string
              cors:
                $ref: "#/components/schemas/CorsSettings"
              domain:
                description: The domain on which the service is available.
                example: a string value
                type: string
              enabled:
                description: Activate or deactivate your service. Once disabled, users will get an error page saying the service does not exist
                example: true
                type: boolean
              enforceSecureCommunication:
                description: When enabled, Otoroshi will try to exchange headers with downstream service to ensure no one else can use the service from outside
                example: true
                type: boolean
              env:
                description: The line on which the service is available. Based on that value, the name of the line will be appended to the subdomain. For line prod, nothing will be appended. For example, if the subdomain is 'foo' and line is 'preprod', then the exposed service will be available at 'foo.preprod.mydomain'
                example: a string value
                type: string
              forceHttps:
                description: Will force redirection to https:// if not present
                example: true
                type: boolean
              groups:
                description: Each service descriptor is attached to groups. A group can have one or more services. Each API key is linked to a group and allow access to every service in the group
                example:
                  - a string value
                items:
                  example: a string value
                  type: string
                type: array
              gzip:
                $ref: "#/components/schemas/Gzip"
              headersVerification:
                additionalProperties:
                  type: string
                description: Specify headers that will be verified after routing.
                example:
                  key: value
                type: object
              healthCheck:
                $ref: "#/components/schemas/HealthCheck"
              id:
                description: A unique random string to identify your service
                example: 110e8400-e29b-11d4-a716-446655440000
                format: uuid
                type: string
              ipFiltering:
                $ref: "#/components/schemas/IpFiltering"
              jwtVerifier:
                oneOf:
                  - $ref: "#/components/schemas/LocalJwtVerifier"
                  - $ref: "#/components/schemas/RefJwtVerifier"
              localHost:
                description: The host used localy, mainly localhost:xxxx
                example: a string value
                type: string
              localScheme:
                description: The scheme used localy, mainly http
                example: a string value
                type: string
              maintenanceMode:
                description: Display a maintainance page when a user try to use the service
                example: true
                type: boolean
              matchingHeaders:
                additionalProperties:
                  type: string
                description: Specify headers that MUST be present on client request to route it. Useful to implement versioning
                example:
                  key: value
                type: object
              matchingRoot:
                description: The root path on which the service is available
                example: a string value
                type: string
              metadata:
                additionalProperties:
                  type: string
                description: Just a bunch of random properties
                example:
                  key: value
                type: object
              name:
                description: The name of your service. Only for debug and human readability purposes
                example: a string value
                type: string
              overrideHost:
                description: Host header will be overriden with Host of the target
                example: true
                type: boolean
              privateApp:
                description: When enabled, user will be allowed to use the service (UI) only if they are registered users of the private apps domain
                example: true
                type: boolean
              privatePatterns:
                description: If you define a public pattern that is a little bit too much, you can make some of public URL private again
                items:
                  example: a string value
                  type: string
                type: array
              publicPatterns:
                description: By default, every services are private only and you'll need an API key to access it. However, if you want to expose a public UI, you can define one or more public patterns (regex) to allow access to anybody. For example if you want to allow anybody on any URL, just use '/.*'
                items:
                  example: a string value
                  type: string
                type: array
              redirectToLocal:
                description: If you work locally with Otoroshi, you may want to use that feature to redirect one particuliar service to a local host. For example, you can relocate https://foo.preprod.bar.com to http://localhost:8080 to make some tests
                example: true
                type: boolean
              redirection:
                $ref: "#/components/schemas/RedirectionSettings"
              root:
                description: Otoroshi will append this root to any target choosen. If the specified root is '/api/foo', then a request to https://yyyyyyy/bar will actually hit https://xxxxxxxxx/api/foo/bar
                example: a string value
                type: string
              secComExcludedPatterns:
                description: URI patterns excluded from secured communications
                items:
                  example: a string value
                  type: string
                type: array
              secComSettings:
                oneOf:
                  - $ref: "#/components/schemas/HSAlgoSettings"
                  - $ref: "#/components/schemas/RSAlgoSettings"
                  - $ref: "#/components/schemas/ESAlgoSettings"
                  - $ref: "#/components/schemas/JWKSAlgoSettings"
              sendOtoroshiHeadersBack:
                description: When enabled, Otoroshi will send headers to consumer like request id, client latency, overhead, etc ...
                example: true
                type: boolean
              statsdConfig:
                $ref: "#/components/schemas/StatsdConfig"
              subdomain:
                description: The subdomain on which the service is available
                example: a string value
                type: string
              targets:
                description: The list of target that Otoroshi will proxy and expose through the subdomain defined before. Otoroshi will do round-robin load balancing between all those targets with circuit breaker mecanism to avoid cascading failures
                items:
                  $ref: "#/components/schemas/Target"
                type: array
              transformerRef:
                description: A reference to a request transformer
                example: a string value
                type: string
              userFacing:
                description: The fact that this service will be seen by users and cannot be impacted by the Snow Monkey
                example: true
                type: boolean
              xForwardedHeaders:
                description: Send X-Forwarded-* headers
                example: true
                type: boolean
            required:
              - id
              - groups
              - name
              - env
              - domain
              - subdomain
              - targets
              - root
              - enabled
              - privateApp
              - forceHttps
              - maintenanceMode
              - buildMode
              - enforceSecureCommunication
            type: object
          type: array
        serviceGroups:
          description: Current service groups at the time of export
          items:
            description: An Otoroshi service group is just a group of service descriptor. It is useful to be able to define Api Keys for the whole group
            properties:
              description:
                description: The descriptoin of the group
                example: a string value
                type: string
              id:
                description: The unique id of the group. Usually 64 random alpha numerical characters, but can be anything
                example: a string value
                type: string
              name:
                description: The name of the group
                example: a string value
                type: string
            required:
              - id
              - name
            type: object
          type: array
        simpleAdmins:
          description: Current simple admins at the time of export
          items:
            description: Administrator using just login/password tuple to access Otoroshi
            properties:
              createdAt:
                description: The creation date of the user
                example: 123
                format: int64
                type: integer
              label:
                description: The label for the user
                example: a string value
                type: string
              password:
                description: The hashed password of the user
                example: a string value
                type: string
              username:
                description: The email address of the user
                example: a string value
                type: string
            required:
              - username
              - label
              - password
              - createdAt
            type: object
          type: array
        stats:
          $ref: "#/components/schemas/ImportExportStats"
          description: Current global stats at the time of export
      required:
        - label
        - dateRaw
        - date
        - stats
        - config
        - admins
        - simpleAdmins
        - serviceGroups
        - apiKeys
        - serviceDescriptors
        - errorTemplates
      type: object
    ImportExportStats:
      description: Global stats for the current Otoroshi instances
      properties:
        calls:
          description: Number of calls to Otoroshi globally
          example: 123
          format: int64
          type: integer
        dataIn:
          description: The amount of data sent to Otoroshi globally
          example: 123
          format: int64
          type: integer
        dataOut:
          description: The amount of data sent from Otoroshi globally
          example: 123
          format: int64
          type: integer
      required:
        - calls
        - dataIn
        - dataOut
      type: object
    InCookie:
      description: JWT location in a cookie
      properties:
        name:
          description: Name of the cookie
          example: a string value
          type: string
        type:
          description: String with value InCookie
          example: a string value
          type: string
      required:
        - type
        - name
      type: object
    InHeader:
      description: JWT location in a header
      properties:
        name:
          description: Name of the header
          example: a string value
          type: string
        remove:
          description: Remove regex inside the value, like 'Bearer '
          example: a string value
          type: string
        type:
          description: String with value InHeader
          example: a string value
          type: string
      required:
        - type
        - name
        - remove
      type: object
    InMemoryAuthModuleConfig:
      description: Settings to authenticate users using the in memory user store
      properties:
        desc:
          description: Description of the config
          example: a string value
          type: string
        id:
          description: Unique id of the config
          example: a string value
          type: string
        name:
          description: Name of the config
          example: a string value
          type: string
        sessionMaxAge:
          description: Max age of the session
          example: a string value
          type: string
        type:
          description: Type of settings. value is basic
          example: a string value
          type: string
        users:
          description: List of users
          items:
            $ref: "#/components/schemas/InMemoryUser"
          type: array
      required:
        - type
        - id
        - name
        - desc
        - users
        - sessionMaxAge
      type: object
    InMemoryUser:
      description: A user
      properties:
        email:
          description: Email of the user
          example: a string value
          type: string
        metadata:
          additionalProperties:
            type: string
          description: Metadata of the user
          example:
            key: value
          type: object
        name:
          description: Name of the user
          example: a string value
          type: string
        password:
          description: Password of the user (BCrypt hash)
          example: a string value
          type: string
      required:
        - name
        - password
        - email
        - metadata
      type: object
    InQueryParam:
      description: JWT location in a query param
      properties:
        name:
          description: Name of the query param
          example: a string value
          type: string
        type:
          description: String with value InQueryParam
          example: a string value
          type: string
      required:
        - type
        - name
      type: object
    IpFiltering:
      description: The filtering configuration block for a service of globally.
      properties:
        blacklist:
          description: Blacklisted IP addresses
          items:
            example: 192.192.192.192
            format: ipv4
            type: string
          type: array
        whitelist:
          description: Whitelisted IP addresses
          items:
            example: 192.192.192.192
            format: ipv4
            type: string
          type: array
      required:
        - whitelist
        - blacklist
      type: object
    JWKSAlgoSettings:
      description: Settings for a JWK set
      properties:
        headers:
          additionalProperties:
            type: string
          description: The headers for the http call
          example:
            key: value
          type: object
        kty:
          description: "The type of key: RSA or EC"
          example: a string value
          type: string
        timeout:
          description: The timeout of the http call
          example: 123
          format: int64
          type: integer
        ttl:
          description: The ttl of the keyset
          example: 123
          format: int64
          type: integer
        type:
          description: String with value JWKSAlgoSettings
          example: a string value
          type: string
        url:
          description: The url for the http call
          example: a string value
          type: string
      required:
        - type
        - size
        - publicKey
      type: object
    KafkaConfig:
      description: The configuration for kafka access
      properties:
        keyPass:
          description: Optional keypass
          example: a string value
          type: string
        keyStore:
          description: Optional path to keystore
          example: a string value
          type: string
        servers:
          description: URLs of the kafka servers
          items:
            example: a string value
            type: string
          type: array
        topic:
          description: Optional kafka topic (otoroshi-events by default)
          example: a string value
          type: string
        trustore:
          description: Optional path to trustore
          example: a string value
          type: string
      required:
        - servers
      type: object
    LargeRequestFaultConfig:
      description: Config for large request injection fault
      properties:
        additionalRequestSize:
          description: The size added to the request body in bytes. Added payload will be spaces only.
          example: 123123
          format: int32
          type: integer
        ratio:
          description: The percentage of requests affected by this fault. Value should be between 0.0 and 1.0
          example: 42.2
          format: double
          type: number
      required:
        - ratio
        - additionalRequestSize
      type: object
    LargeResponseFaultConfig:
      description: Config for large response injection fault
      properties:
        additionalRequestSize:
          description: The size added to the response body in bytes. Added payload will be spaces only.
          example: 123123
          format: int32
          type: integer
        ratio:
          description: The percentage of requests affected by this fault. Value should be between 0.0 and 1.0
          example: 42.2
          format: double
          type: number
      required:
        - ratio
        - additionalResponseSize
      type: object
    LatencyInjectionFaultConfig:
      description: Config for large latency injection fault
      properties:
        from:
          description: The start range of latency added to the request
          example: 123123
          format: int32
          type: integer
        ratio:
          description: The percentage of requests affected by this fault. Value should be between 0.0 and 1.0
          example: 42.2
          format: double
          type: number
        to:
          description: The end range of latency added to the request
          example: 123123
          format: int32
          type: integer
      required:
        - ratio
        - from
        - to
      type: object
    LdapAuthModuleConfig:
      description: Settings to authenticate users using a generic OAuth2 provider
      properties:
        adminPassword:
          description: The admin password
          example: a string value
          type: string
        adminUsername:
          description: The admin username
          example: a string value
          type: string
        desc:
          description: Description of the config
          example: a string value
          type: string
        emailField:
          description: Field name to get email from user profile
          example: a string value
          type: string
        groupFilter:
          description: Filter for groups
          example: a string value
          type: string
        id:
          description: Unique id of the config
          example: a string value
          type: string
        name:
          description: Name of the config
          example: a string value
          type: string
        nameField:
          description: Field name to get name from user profile
          example: a string value
          type: string
        otoroshiDataField:
          description: Field name to get otoroshi metadata from. You can specify sub fields using | as separator
          example: a string value
          type: string
        searchBase:
          description: LDAP search base
          example: a string value
          type: string
        searchFilter:
          description: Filter for users
          example: a string value
          type: string
        serverUrl:
          description: URL of the ldap server
          example: a string value
          type: string
        sessionMaxAge:
          description: Max age of the session
          example: 123123
          format: int32
          type: integer
        type:
          description: Type of settings. value is ldap
          example: a string value
          type: string
        userBase:
          description: LDAP user base DN
          example: a string value
          type: string
      required:
        - type
        - id
        - name
        - desc
        - sessionMaxAge
        - serverUrl
        - searchBase
        - userBase
        - groupFilter
        - searchFilter
        - adminUsername
        - adminPassword
        - nameField
        - emailField
        - metadataField
      type: object
    LdapUser:
      description: A user
      properties:
        email:
          description: Email of the user
          example: a string value
          type: string
        metadata:
          additionalProperties:
            type: string
          description: Metadata of the user
          example:
            key: value
          type: object
        name:
          description: Name of the user
          example: a string value
          type: string
      required:
        - name
        - email
        - metadata
      type: object
    LocalJwtVerifier:
      description: A JWT verifier used only for the current service descriptor
      properties:
        algoSettings:
          oneOf:
            - $ref: "#/components/schemas/HSAlgoSettings"
            - $ref: "#/components/schemas/RSAlgoSettings"
            - $ref: "#/components/schemas/ESAlgoSettings"
            - $ref: "#/components/schemas/JWKSAlgoSettings"
        enabled:
          description: Is it enabled
          example: true
          type: boolean
        source:
          oneOf:
            - $ref: "#/components/schemas/InQueryParam"
            - $ref: "#/components/schemas/InHeader"
            - $ref: "#/components/schemas/InCookie"
        strategy:
          oneOf:
            - $ref: "#/components/schemas/PassThrough"
            - $ref: "#/components/schemas/Sign"
            - $ref: "#/components/schemas/Transform"
        strict:
          description: Does it fail if JWT not found
          example: true
          type: boolean
        type:
          description: A string with value 'local'
          example: a string value
          type: string
      required:
        - type
        - enabled
        - strict
        - source
        - algoSettings
        - strategy
      type: object
    Location:
      properties:
        teams:
          description: Team ids
          items:
            additionalProperties:
              type: string
            example:
              key: value
            type: object
          type: array
        tenant:
          description: Tenant id
          example: a string value
          type: string
      required:
        - tenant
        - teams
      type: object
    MailerConsoleExporterConfig:
      properties:
        type:
          description: Type of mailer
          enum:
            - generic
          type: string
      type: object
    MailerGenericExporterConfig:
      properties:
        headers:
          additionalProperties:
            type: string
          description: Optional headers
          example:
            key: value
          type: object
        to:
          description: Email adresses of recipents
          items:
            example: a string value
            type: string
          type: array
        type:
          description: Type of mailer
          enum:
            - generic
          type: string
        url:
          description: Url of mailer
          example: a string value
          type: string
      required:
        - type
      type: object
    MailerMailgunExporterConfig:
      properties:
        apiKey:
          description: Mailgun apiKey
          example: a string value
          type: string
        domain:
          description: Mailgun domain
          example: a string value
          type: string
        eu:
          description: Whether the mailgun server is european
          example: true
          type: boolean
        to:
          description: Email adresses of recipents
          items:
            example: admin@otoroshi.io
            format: email
            type: string
          type: array
        type:
          description: Type of mailer
          enum:
            - mailgun
          type: string
      required:
        - type
      type: object
    MailerMailjetExporterConfig:
      properties:
        apiKeyPrivate:
          description: Mailjet private apiKey
          example: a string value
          type: string
        apiKeyPublic:
          description: Mailjet public apiKey
          example: a string value
          type: string
        to:
          description: Email adresses of recipents
          items:
            example: admin@otoroshi.io
            format: email
            type: string
          type: array
        type:
          description: Type of mailer
          enum:
            - mailjet
          type: string
      required:
        - type
      type: object
    MailerSendgridExporterConfig:
      properties:
        apiKeyPublic:
          description: Sendgrid apiKey
          example: a string value
          type: string
        to:
          description: Email adresses of recipents
          items:
            example: admin@otoroshi.io
            format: email
            type: string
          type: array
        type:
          description: Type of mailer
          enum:
            - sendgrid
          type: string
      required:
        - type
      type: object
    MailerSettings:
      description: Configuration for mailgun api client
      properties:
        apiKey:
          description: Mailgun mailer api key
          example: a string value
          type: string
        apiKeyPrivate:
          description: Mailjet mailer private api key
          example: a string value
          type: string
        apiKeyPublic:
          description: Mailjet mailer public api key
          example: a string value
          type: string
        domain:
          description: Mailgun mailer domain
          example: a string value
          type: string
        eu:
          description: Mailgun mailer, use EU tenant api
          example: true
          type: boolean
        header:
          additionalProperties:
            type: string
          description: Generic mailer headers
          example:
            key: value
          type: object
        type:
          description: "Type of the mailer: console, generic, mailgun, mailjet"
          example: a string value
          type: string
        url:
          description: Generic mailer url
          example: a string value
          type: string
      required:
        - apiKey
        - domain
      type: object
    MappingSettings:
      description: Settings to change fields of a JWT token
      properties:
        map:
          additionalProperties:
            type: string
          description: Fields to rename
          example:
            key: value
          type: object
        remove:
          description: Fields to remove
          items:
            example: a string value
            type: string
          type: array
        values:
          additionalProperties:
            type: string
          description: Fields to set
          example:
            key: value
          type: object
      required:
        - map
        - values
        - remove
      type: object
    OtoroshiHealth:
      description: The structure that represent current Otoroshi health
      properties:
        datastore:
          enum:
            - healthy
            - unhealthy
            - unreachable
          type: string
        otoroshi:
          enum:
            - healthy
            - unhealthy
            - down
          type: string
      required:
        - label
        - otoroshi
        - datastore
      type: object
    Outage:
      description: An outage by the Snow Monkey on a service
      properties:
        descriptorId:
          description: The service impacted by outage
          example: a string value
          type: string
        descriptorName:
          description: The name of service impacted by outage
          example: a string value
          type: string
        duration:
          description: The duration of the outage
          example: 123123
          format: int32
          type: integer
        until:
          description: The end of the outage
          example: 17:32:28.000
          format: time
          type: string
      required:
        - descriptorId
        - descriptorName
        - until
        - duration
      type: object
    OutageStrategy:
      enum:
        - OneServicePerGroup
        - AllServicesPerGroup
      type: string
    PassThrough:
      description: Strategy where only signature and field values are verified
      properties:
        type:
          description: String with value PassThrough
          example: a string value
          type: string
        verificationSettings:
          $ref: "#/components/schemas/VerificationSettings"
      required:
        - type
        - verificationSettings
      type: object
    Patch:
      description: "A set of changes described in JSON Patch format: http://jsonpatch.com/ (RFC 6902)"
      items:
        properties:
          op:
            enum:
              - add
              - replace
              - remove
              - copy
              - test
            type: string
          path:
            example: a string value
            type: string
          value: {}
        required:
          - op
          - path
        type: object
      type: array
    PulsarDataExporterConfig:
      description: The configuration for kafka access
      properties:
        namespace:
          description: Namespace
          example: a string value
          type: string
        tenant:
          description: Tenant
          example: a string value
          type: string
        topic:
          description: Topic
          example: a string value
          type: string
        uri:
          description: URI of the pulsar server
          items:
            example: a string value
            type: string
          type: array
      required:
        - uri
        - tenant
        - namespace
        - topic
      type: object
    Quotas:
      description: Quotas state for an api key on a service group
      properties:
        authorizedCallsPerDay:
          description: The number of authorized calls per day
          example: 123
          format: int64
          type: integer
        authorizedCallsPerMonth:
          description: The number of authorized calls per month
          example: 123
          format: int64
          type: integer
        authorizedCallsPerSec:
          description: The number of authorized calls per second
          example: 123
          format: int64
          type: integer
        currentCallsPerDay:
          description: The current number of calls per day
          example: 123
          format: int64
          type: integer
        currentCallsPerMonth:
          description: The current number of calls per month
          example: 123
          format: int64
          type: integer
        currentCallsPerSec:
          description: The current number of calls per second
          example: 123
          format: int64
          type: integer
        remainingCallsPerDay:
          description: The remaining number of calls per day
          example: 123
          format: int64
          type: integer
        remainingCallsPerMonth:
          description: The number of authorized calls per month
          example: 123
          format: int64
          type: integer
        remainingCallsPerSec:
          description: The remaining number of calls per second
          example: 123
          format: int64
          type: integer
      required:
        - authorizedCallsPerSec
        - currentCallsPerSec
        - remainingCallsPerSec
        - authorizedCallsPerDay
        - currentCallsPerDay
        - remainingCallsPerDay
        - authorizedCallsPerMonth
        - currentCallsPerMonth
        - remainingCallsPerMonth
      type: object
    RSAlgoSettings:
      description: Settings for an HMAC + SHA signing algorithm
      properties:
        privateKey:
          description: The private key for the RSA function
          example: a string value
          type: string
        publicKey:
          description: The public key for the RSA function
          example: a string value
          type: string
        size:
          description: Size for SHA function. can be 256, 384 or 512
          example: 123123
          format: int32
          type: integer
        type:
          description: String with value RSAlgoSettings
          example: a string value
          type: string
      required:
        - type
        - size
        - publicKey
      type: object
    RedirectionSettings:
      description: The configuration for redirection per service
      properties:
        code:
          description: The http redirect code
          example: 123123
          format: int32
          type: integer
        enabled:
          description: Whether or not redirection is enabled
          example: true
          type: boolean
        to:
          description: The location for redirection
          example: a string value
          type: string
      required:
        - enabled
        - to
        - code
      type: object
    RefJwtVerifier:
      description: Reference to a global JWT verifier
      properties:
        enabled:
          description: Is it enabled
          example: true
          type: boolean
        id:
          description: The id of the GlobalJWTVerifier
          example: a string value
          type: string
        type:
          description: A string with value 'ref'
          example: a string value
          type: string
      required:
        - type
        - id
        - enabled
      type: object
    Script:
      description: "A script to transformer otoroshi requests "
      properties:
        code:
          additionalProperties:
            type: string
          description: The code of the script
          example:
            key: value
          type: object
        desc:
          additionalProperties:
            type: string
          description: The description of the script
          example:
            key: value
          type: object
        id:
          description: The id of the script
          example: a string value
          type: string
        name:
          description: The name of the script
          example: a string value
          type: string
      required:
        - id
        - name
        - desc
        - code
      type: object
    ScriptCompilationError:
      description: The error of the compilation of a Script
      properties:
        column:
          description: The column of the error
          example: a string value
          type: string
        file:
          additionalProperties:
            type: string
          description: The file where the error is located
          example:
            key: value
          type: object
        line:
          description: The line of the error
          example: a string value
          type: string
        message:
          additionalProperties:
            type: string
          description: The message to display for the error
          example:
            key: value
          type: object
        rawMessage:
          additionalProperties:
            type: string
          description: The raw message from the compiler
          example:
            key: value
          type: object
      required:
        - line
        - column
        - file
        - rawMessage
        - message
      type: object
    ScriptCompilationResult:
      description: The result of the compilation of a Script
      properties:
        done:
          description: Is the task done or not
          example: true
          type: boolean
        error:
          $ref: "#/components/schemas/ScriptCompilationError"
      required:
        - done
      type: object
    Service:
      description: An otoroshi service descriptor. Represent a forward HTTP call on a domain to another location with some optional api management mecanism
      properties:
        Canary:
          $ref: "#/components/schemas/Canary"
        additionalHeaders:
          additionalProperties:
            type: string
          description: Specify headers that will be added to each client request. Useful to add authentication
          example:
            key: value
          type: object
        api:
          $ref: "#/components/schemas/ExposedApi"
        authConfigRef:
          description: A reference to a global auth module config
          example: a string value
          type: string
        buildMode:
          description: Display a construction page when a user try to use the service
          example: true
          type: boolean
        chaosConfig:
          $ref: "#/components/schemas/ChaosConfig"
        clientConfig:
          $ref: "#/components/schemas/ClientConfig"
        clientValidatorRef:
          description: A reference to validation authority
          example: a string value
          type: string
        cors:
          $ref: "#/components/schemas/CorsSettings"
        domain:
          description: The domain on which the service is available.
          example: a string value
          type: string
        enabled:
          description: Activate or deactivate your service. Once disabled, users will get an error page saying the service does not exist
          example: true
          type: boolean
        enforceSecureCommunication:
          description: When enabled, Otoroshi will try to exchange headers with downstream service to ensure no one else can use the service from outside
          example: true
          type: boolean
        env:
          description: The line on which the service is available. Based on that value, the name of the line will be appended to the subdomain. For line prod, nothing will be appended. For example, if the subdomain is 'foo' and line is 'preprod', then the exposed service will be available at 'foo.preprod.mydomain'
          example: a string value
          type: string
        forceHttps:
          description: Will force redirection to https:// if not present
          example: true
          type: boolean
        groups:
          description: Each service descriptor is attached to groups. A group can have one or more services. Each API key is linked to a group and allow access to every service in the group
          example:
            - a string value
          items:
            example: a string value
            type: string
          type: array
        gzip:
          $ref: "#/components/schemas/Gzip"
        headersVerification:
          additionalProperties:
            type: string
          description: Specify headers that will be verified after routing.
          example:
            key: value
          type: object
        healthCheck:
          $ref: "#/components/schemas/HealthCheck"
        id:
          description: A unique random string to identify your service
          example: 110e8400-e29b-11d4-a716-446655440000
          format: uuid
          type: string
        ipFiltering:
          $ref: "#/components/schemas/IpFiltering"
        jwtVerifier:
          oneOf:
            - $ref: "#/components/schemas/LocalJwtVerifier"
            - $ref: "#/components/schemas/RefJwtVerifier"
        localHost:
          description: The host used localy, mainly localhost:xxxx
          example: a string value
          type: string
        localScheme:
          description: The scheme used localy, mainly http
          example: a string value
          type: string
        maintenanceMode:
          description: Display a maintainance page when a user try to use the service
          example: true
          type: boolean
        matchingHeaders:
          additionalProperties:
            type: string
          description: Specify headers that MUST be present on client request to route it. Useful to implement versioning
          example:
            key: value
          type: object
        matchingRoot:
          description: The root path on which the service is available
          example: a string value
          type: string
        metadata:
          additionalProperties:
            type: string
          description: Just a bunch of random properties
          example:
            key: value
          type: object
        name:
          description: The name of your service. Only for debug and human readability purposes
          example: a string value
          type: string
        overrideHost:
          description: Host header will be overriden with Host of the target
          example: true
          type: boolean
        privateApp:
          description: When enabled, user will be allowed to use the service (UI) only if they are registered users of the private apps domain
          example: true
          type: boolean
        privatePatterns:
          description: If you define a public pattern that is a little bit too much, you can make some of public URL private again
          items:
            example: a string value
            type: string
          type: array
        publicPatterns:
          description: By default, every services are private only and you'll need an API key to access it. However, if you want to expose a public UI, you can define one or more public patterns (regex) to allow access to anybody. For example if you want to allow anybody on any URL, just use '/.*'
          items:
            example: a string value
            type: string
          type: array
        redirectToLocal:
          description: If you work locally with Otoroshi, you may want to use that feature to redirect one particuliar service to a local host. For example, you can relocate https://foo.preprod.bar.com to http://localhost:8080 to make some tests
          example: true
          type: boolean
        redirection:
          $ref: "#/components/schemas/RedirectionSettings"
        root:
          description: Otoroshi will append this root to any target choosen. If the specified root is '/api/foo', then a request to https://yyyyyyy/bar will actually hit https://xxxxxxxxx/api/foo/bar
          example: a string value
          type: string
        secComExcludedPatterns:
          description: URI patterns excluded from secured communications
          items:
            example: a string value
            type: string
          type: array
        secComSettings:
          oneOf:
            - $ref: "#/components/schemas/HSAlgoSettings"
            - $ref: "#/components/schemas/RSAlgoSettings"
            - $ref: "#/components/schemas/ESAlgoSettings"
            - $ref: "#/components/schemas/JWKSAlgoSettings"
        sendOtoroshiHeadersBack:
          description: When enabled, Otoroshi will send headers to consumer like request id, client latency, overhead, etc ...
          example: true
          type: boolean
        statsdConfig:
          $ref: "#/components/schemas/StatsdConfig"
        subdomain:
          description: The subdomain on which the service is available
          example: a string value
          type: string
        targets:
          description: The list of target that Otoroshi will proxy and expose through the subdomain defined before. Otoroshi will do round-robin load balancing between all those targets with circuit breaker mecanism to avoid cascading failures
          items:
            $ref: "#/components/schemas/Target"
          type: array
        transformerRef:
          description: A reference to a request transformer
          example: a string value
          type: string
        userFacing:
          description: The fact that this service will be seen by users and cannot be impacted by the Snow Monkey
          example: true
          type: boolean
        xForwardedHeaders:
          description: Send X-Forwarded-* headers
          example: true
          type: boolean
      required:
        - id
        - groups
        - name
        - env
        - domain
        - subdomain
        - targets
        - root
        - enabled
        - privateApp
        - forceHttps
        - maintenanceMode
        - buildMode
        - enforceSecureCommunication
      type: object
    Sign:
      description: Strategy where signature and field values are verified, and then token si re-signed
      properties:
        algoSettings:
          oneOf:
            - $ref: "#/components/schemas/HSAlgoSettings"
            - $ref: "#/components/schemas/RSAlgoSettings"
            - $ref: "#/components/schemas/ESAlgoSettings"
            - $ref: "#/components/schemas/JWKSAlgoSettings"
        type:
          description: String with value Sign
          example: a string value
          type: string
        verificationSettings:
          $ref: "#/components/schemas/VerificationSettings"
      required:
        - type
        - verificationSettings
        - algoSettings
      type: object
    SimpleAdmin:
      description: Administrator using just login/password tuple to access Otoroshi
      properties:
        createdAt:
          description: The creation date of the user
          example: 123
          format: int64
          type: integer
        label:
          description: The label for the user
          example: a string value
          type: string
        password:
          description: The hashed password of the user
          example: a string value
          type: string
        username:
          description: The email address of the user
          example: a string value
          type: string
      required:
        - username
        - label
        - password
        - createdAt
      type: object
    SnowMonkeyConfig:
      description: Configuration for the faults that can be injected in requests. The name Snow Monkey is an hommage to Netflix's Chaos Monkey 😉
      properties:
        chaosConfig:
          $ref: "#/components/schemas/ChaosConfig"
        dryRun:
          description: Whether or not outages will actualy impact requests
          example: true
          type: boolean
        enabled:
          description: Whether or not this config is enabled
          example: true
          type: boolean
        includeUserFacingDescriptors:
          description: Whether or not user facing apps. will be impacted by Snow Monkey
          example: true
          type: boolean
        outageDurationFrom:
          description: Start of outage duration range
          example: 123123
          format: int32
          type: integer
        outageDurationTo:
          description: End of outage duration range
          example: 123123
          format: int32
          type: integer
        outageStrategy:
          $ref: "#/components/schemas/OutageStrategy"
          description: ""
        startTime:
          description: Start time of Snow Monkey each day
          example: 17:32:28.000
          format: time
          type: string
        stopTime:
          description: Stop time of Snow Monkey each day
          example: 17:32:28.000
          format: time
          type: string
        targetGroups:
          description: Groups impacted by Snow Monkey. If empty, all groups will be impacted
          items:
            example: a string value
            type: string
          type: array
        timesPerDay:
          description: Number of time per day each service will be outage
          example: 123123
          format: int32
          type: integer
      required:
        - enabled
        - outageStrategy
        - includeUserFacingDescriptors
        - dryRun
        - timesPerDay
        - startTime
        - stopTime
        - outageDurationFrom
        - outageDurationTo
        - targetGroups
        - chaosConfig
      type: object
    Stats:
      description: Live stats for a service or globally
      properties:
        calls:
          description: Number of calls on the specified service or globally
          example: 123
          format: int64
          type: integer
        concurrentHandledRequests:
          description: The number of concurrent request currently
          example: 123
          format: int64
          type: integer
        dataIn:
          description: The amount of data sent to the specified service or Otoroshi globally
          example: 123
          format: int64
          type: integer
        dataInRate:
          description: The rate of data sent to the specified service or Otoroshi globally
          example: 42.2
          format: double
          type: number
        dataOut:
          description: The amount of data sent from the specified service or Otoroshi globally
          example: 123
          format: int64
          type: integer
        dataOutRate:
          description: The rate of data sent from the specified service or Otoroshi globally
          example: 42.2
          format: double
          type: number
        duration:
          description: The average duration for a call
          example: 42.2
          format: double
          type: number
        overhead:
          description: The average overhead time induced by Otoroshi for each call
          example: 42.2
          format: double
          type: number
        rate:
          description: The rate of data sent from and to the specified service or Otoroshi globally
          example: 42.2
          format: double
          type: number
      required:
        - calls
        - dataIn
        - dataOut
        - rate
        - duration
        - overhead
        - dataInRate
        - dataOutRate
        - concurrentHandledRequests
      type: object
    StatsdConfig:
      description: The configuration for statsd metrics push
      properties:
        datadog:
          description: Datadog agent
          example: true
          type: boolean
        host:
          description: The host of the StatsD agent
          example: a string value
          type: string
        port:
          description: The port of the StatsD agent
          example: 123123
          format: int32
          type: integer
      required:
        - host
        - port
        - datadog
      type: object
    Target:
      description: A Target is where an HTTP call will be forwarded in the end from a service domain
      properties:
        host:
          description: The host on which the HTTP call will be forwarded. Can be a domain name, or an IP address. Can also have a port
          example: www.google.com
          format: hostname
          type: string
        scheme:
          description: The protocol used for communication. Can be http or https
          example: a string value
          type: string
      required:
        - host
        - scheme
      type: object
    Transform:
      description: Strategy where signature and field values are verified, trasnformed and then token si re-signed
      properties:
        algoSettings:
          oneOf:
            - $ref: "#/components/schemas/HSAlgoSettings"
            - $ref: "#/components/schemas/RSAlgoSettings"
            - $ref: "#/components/schemas/ESAlgoSettings"
            - $ref: "#/components/schemas/JWKSAlgoSettings"
        transformSettings:
          $ref: "#/components/schemas/TransformSettings"
        type:
          description: String with value Transform
          example: a string value
          type: string
        verificationSettings:
          $ref: "#/components/schemas/VerificationSettings"
      required:
        - type
        - verificationSettings
        - algoSettings
      type: object
    TransformSettings:
      description: Settings to transform a JWT token and its location
      properties:
        location:
          oneOf:
            - $ref: "#/components/schemas/InQueryParam"
            - $ref: "#/components/schemas/InHeader"
            - $ref: "#/components/schemas/InCookie"
        mappingSettings:
          $ref: "#/components/schemas/MappingSettings"
      required:
        - location
        - mappingSettings
      type: object
    U2FAdmin:
      description: Administrator using FIDO U2F device to access Otoroshi
      properties:
        createdAt:
          description: The creation date of the user
          example: 123
          format: int64
          type: integer
        label:
          description: The label for the user
          example: a string value
          type: string
        password:
          description: The hashed password of the user
          example: a string value
          type: string
        registration:
          additionalProperties:
            type: string
          description: The U2F registration slug
          example:
            key: value
          type: object
        username:
          description: The email address of the user
          example: a string value
          type: string
      required:
        - username
        - label
        - password
        - createdAt
        - registration
      type: object
    ValidationAuthority:
      description: Settings to access a validation authority server
      properties:
        alwaysValid:
          description: Bypass http calls, every certificates are valids
          example: true
          type: boolean
        badTtl:
          description: The TTL for invalid access response caching
          example: 123
          format: int64
          type: integer
        description:
          description: The description of the settings
          example: a string value
          type: string
        goodTtl:
          description: The TTL for valid access response caching
          example: 123
          format: int64
          type: integer
        headers:
          additionalProperties:
            type: string
          description: HTTP call headers
          example:
            key: value
          type: object
        host:
          description: The host of the server
          example: a string value
          type: string
        id:
          description: The id of the settings
          example: a string value
          type: string
        method:
          description: The HTTP method
          example: a string value
          type: string
        name:
          description: The name of the settings
          example: a string value
          type: string
        noCache:
          description: Avoid caching responses
          example: true
          type: boolean
        path:
          description: The URL path
          example: a string value
          type: string
        timeout:
          description: The call timeout
          example: 123
          format: int64
          type: integer
        url:
          description: The URL of the server
          example: a string value
          type: string
      required:
        - id
        - name
        - description
        - url
        - host
        - goodTtl
        - badTtl
        - method
        - path
        - timeout
        - noCache
        - alwaysValid
        - headers
      type: object
    VerificationSettings:
      description: Settings to verify the value of JWT token fields
      properties:
        fields:
          additionalProperties:
            type: string
          description: Fields to verify with their values
          example:
            key: value
          type: object
        mappingSettings:
          $ref: "#/components/schemas/MappingSettings"
      required:
        - fields
      type: object
    Webhook:
      description: A callback URL where events are posted
      properties:
        headers:
          additionalProperties:
            type: string
          description: Headers to authorize the call or whatever
          example:
            key: value
          type: object
        url:
          description: The URL where events are posted
          example: http://www.google.com
          format: uri
          type: string
      required:
        - url
        - headers
      type: object
    whebhookConfig:
      description: The configuration for webhook
      properties:
        headers:
          additionalProperties:
            type: string
          description: Optional headers
          example:
            key: value
          type: object
        url:
          description: URLs of the webhook
          items:
            example: a string value
            type: string
          type: array
      required:
        - servers
      type: object
  securitySchemes:
    otoroshi_auth:
      scheme: basic
      type: http
